pyaccesskit.schema.names¶
pyaccesskit.schema.names ¶
Access naming rules, name comparison, identifier quoting and name linting.
Hard rules (violations raise :class:~pyaccesskit.errors.SpecError) follow Microsoft's Guidelines for
naming fields, controls, and objects: at most 64 characters; no period, exclamation point, accent grave or
brackets; no leading space; no control characters.
Soft rules (violations emit :class:~pyaccesskit.errors.AccessNameWarning) flag names that are legal but
cause trouble later: reserved words, spaces/special characters, names that shadow common form properties.
check_name ¶
check_name(name: object, *, what: str = 'name') -> str
Validate name against Access's hard naming rules and return it unchanged.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
object
|
The candidate name. |
required |
what
|
str
|
What is being named, used in error messages ( |
'name'
|
Raises:
| Type | Description |
|---|---|
SpecError
|
If the name is not a legal Access object name. |
lint_name ¶
lint_name(name: str, *, what: str = 'name') -> list[str]
Return human-readable warnings for a legal name that is likely to cause problems.
warn_name ¶
warn_name(
name: str, *, what: str = "name", stacklevel: int = 3
) -> None
Emit an :class:AccessNameWarning for every soft-rule problem found by :func:lint_name.
name_key ¶
name_key(name: str) -> str
Key for case-insensitive name comparison (Access object names are case-insensitive).
names_equal ¶
names_equal(left: str, right: str) -> bool
Whether two Access names refer to the same object.
quote_identifier ¶
quote_identifier(name: str) -> str
Bracket-quote a name for Access SQL and expressions: Order Details → [Order Details].