ScopedId
ScopedId(scope, local)An identifier with a scope prefix and local part.
Format: “{scope}:{local}” or just “{local}” if scope is empty.
The scope typically represents the source (e.g., “midi”, “score”) while the local part is the original ID from that source.
Attributes
| Name | Type | Description |
|---|---|---|
| scope | str |
The namespace/source prefix (e.g., “midi”, “score:track1”) |
| local | str |
The local identifier within that scope |
Examples
>>> ScopedId("midi", "n42")
ScopedId(scope='midi', local='n42')>>> str(ScopedId("midi", "n42"))
'midi:n42'>>> ScopedId.parse("midi:n42")
ScopedId(scope='midi', local='n42')>>> ScopedId.parse("bare_id")
ScopedId(scope='', local='bare_id')Methods
| Name | Description |
|---|---|
| nested | Create a nested scope by appending to the current scope. |
| parse | Parse a scoped ID string. |
| with_local | Return a new ScopedId with a different local part. |
| with_scope | Return a new ScopedId with a different scope. |
nested
ScopedId.nested(child_scope)Create a nested scope by appending to the current scope.
Example
ScopedId(“midi”, “note”).nested(“track1”) ScopedId(scope=‘midi.track1’, local=‘note’)
parse
ScopedId.parse(id_str)Parse a scoped ID string.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| id_str | str |
A string like “scope:local” or just “local” | required |
Returns
| Name | Type | Description |
|---|---|---|
| ScopedId | A ScopedId instance |
Examples
>>> ScopedId.parse("midi:n42")
ScopedId(scope='midi', local='n42')>>> ScopedId.parse("bare_id")
ScopedId(scope='', local='bare_id')with_local
ScopedId.with_local(new_local)Return a new ScopedId with a different local part.
with_scope
ScopedId.with_scope(new_scope)Return a new ScopedId with a different scope.