cottax.consumers.surface.refusals module

Why what is written is no name: neither a place nor a node, several places where one is due, a purpose no word or several words name, or a role with no place.

class NotAPlace(role: str, written: str)[source]

Bases: Violation

role: str
written: str
template: AbstractClassVar[str] = '{role}: a place is a string, or a path written in full (`V.x`, a `VarPath`), and {written} is neither'

e.g. ‘output {place!r} is owned by both {other!r} and {node!r}’

Type:

Wording

class StandsForSeveral(role: str, written: str, places: tuple)[source]

Bases: Violation

role: str
written: str
places: tuple
template: AbstractClassVar[str] = '{role}: {written} stands for {places!r}, where one place is due -- name one'

e.g. ‘output {place!r} is owned by both {other!r} and {node!r}’

Type:

Wording

class NotANode(role: str, written: str)[source]

Bases: Violation

role: str
written: str
template: AbstractClassVar[str] = '{role}: a node is a string, a path written in full (`N.x`, a `NodePath`) or a declaration, and {written} is none of these'

e.g. ‘output {place!r} is owned by both {other!r} and {node!r}’

Type:

Wording

class NoPlaceFor(role: str)[source]

Bases: Violation

role: str
template: AbstractClassVar[str] = '{role} has no place: give it a rule in `role_places`, or pass its places to `Assign`'

e.g. ‘output {place!r} is owned by both {other!r} and {node!r}’

Type:

Wording