Skip to content

[DIFF] case sensitivity #96

Open
Open

Description

@wiesnerfriedman

SWMM Version
6.0.0.a2

** Difference between legacy and new engine**
The legacy engine treats names case-insensitively. The refactored engine currently performs case-sensitive lookups- at least for control rule names

Activity

  1. dickinsonre commented on Jul 18, 2026

    @dickinsonre

    yes, there are a lot of old swmm5 rules that are a mix of upper and lowercase,

  2. self-assigned this
    on Aug 11, 2026
  3. ddspot commented on Sep 7, 2026

    @ddspot

    Circling back on this one, from my side, it looks addressed in 6.0.0a3.

    I ran the repo's own namecase_* fixtures on the PyPI wheel openswmm-6.0.0a3-cp311-cp311-macosx_11_0_arm64.whl (Python 3.11.15, macOS Darwin arm64):

    • tests/unit/engine/data/namecase_ci_refs.inp — the exact control-rule case here: the same node referenced as ChestnuthillRes_IM vs ChestnutHillRes_IM, and ORIFICE or1 vs ORIFICE OR1. On a3 it runs clean, no RPT errors — the refs resolve case-insensitively like the legacy engine.
    • tests/unit/engine/data/namecase_controls_badref.inp — a genuinely undefined ref (IF NODE NoSuchNode …) is still rejected, so the lookup isn't just swallowing bad names.

    from openswmm.engine import run_with_callback
    run_with_callback("namecase_ci_refs.inp", "out.rpt", "out.out", None) # clean on 6.0.0a3

    Looks like the feat(names): … commits (case-insensitive object-name lookup, non-registry name paths, curve/timeseries namespace split) all made it into the a3 tag, so it ships in the current wheel.

    Mostly just curious: is there more name-handling refactoring still in flight here (other object types, the registry paths, etc.), or is the case-insensitivity work basically settled as of a3?

  4. cbuahin commented on Sep 8, 2026

    @cbuahin
    Member

    @ddspot, yes there is more to come. While we addressed the immediate issue you raised. Once we have finalized the alpha4 work, I want to do a more exhaustive review to see if there are additional gaps. Please give us some time to sort it out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions