Classes
DirectiveRegistry
11
▼
Immutable registry of directive handlers.
Maps directive names to their handlers for lookup during…
DirectiveRegistry
11
▼
Immutable registry of directive handlers.
Maps directive names to their handlers for lookup during parsing and rendering.
Thread Safety:
Truly immutable after creation (uses MappingProxyType).
Safe to share across threads.
Attributes
| Name | Type | Description |
|---|---|---|
_handlers |
tuple[DirectiveHandler, ...]
|
— |
_by_name |
Mapping[str, DirectiveHandler]
|
— |
_by_token_type |
Mapping[str, DirectiveHandler]
|
— |
Methods
names
0
frozenset[str]
▼
Get all registered directive names.
property
names
0
frozenset[str]
▼
def names(self) -> frozenset[str]
Returns
frozenset[str]
Get all registered handlers.
property
def handlers(self) -> tuple[DirectiveHandler, ...]
Returns
tuple[DirectiveHandler, ...]
Get handler for directive name.
def get(self, name: str) -> DirectiveHandler | None
Parameters
| Name | Type | Description |
|---|---|---|
name |
— |
Directive name (e.g., "note", "warning") |
Get handler by token type.
def get_by_token_type(self, token_type: str) -> DirectiveHandler | None
Parameters
| Name | Type | Description |
|---|---|---|
token_type |
— |
Token type identifier (e.g., "admonition") |
has
1
bool
▼
Check if directive name is registered.
has
1
bool
▼
def has(self, name: str) -> bool
Parameters
| Name | Type | Description |
|---|---|---|
name |
— |
Returns
bool
Internal Methods 3 ▼
__init__
3
▼
Initialize registry with pre-built mappings.
Use DirectiveRegistryBuilder to c…
__init__
3
▼
def __init__(self, handlers: tuple[DirectiveHandler, ...], by_name: dict[str, DirectiveHandler], by_token_type: dict[str, DirectiveHandler]) -> None
Initialize registry with pre-built mappings.
Use DirectiveRegistryBuilder to create instances.
Parameters
| Name | Type | Description |
|---|---|---|
handlers |
— |
|
by_name |
— |
|
by_token_type |
— |
__contains__
1
bool
▼
Support 'name in registry' syntax.
__contains__
1
bool
▼
def __contains__(self, name: str) -> bool
Parameters
| Name | Type | Description |
|---|---|---|
name |
— |
Returns
bool
__len__
0
int
▼
Number of registered directive names.
__len__
0
int
▼
def __len__(self) -> int
Returns
int
DirectiveRegistryBuilder
5
▼
Mutable builder for DirectiveRegistry.
Use this to register handlers, then call build() to create
…
DirectiveRegistryBuilder
5
▼
Mutable builder for DirectiveRegistry.
Use this to register handlers, then call build() to create an immutable registry.
Methods
Register a directive handler.
def register(self, handler: DirectiveHandler) -> DirectiveRegistryBuilder
Parameters
| Name | Type | Description |
|---|---|---|
handler |
— |
Handler implementing DirectiveHandler protocol |
Register multiple handlers.
def register_all(self, handlers: list[DirectiveHandler]) -> DirectiveRegistryBuilder
Parameters
| Name | Type | Description |
|---|---|---|
handlers |
— |
List of handlers to register |
Build immutable registry from registered handlers.
def build(self) -> DirectiveRegistry
Internal Methods 2 ▼
__init__
0
▼
Initialize empty builder.
__init__
0
▼
def __init__(self) -> None
__len__
0
int
▼
Number of registered handlers.
__len__
0
int
▼
def __len__(self) -> int
Returns
int
Functions
Build the default registry (internal, not cached).
def _build_default_registry() -> DirectiveRegistry
Returns
DirectiveRegistry
Get the default directive registry (cached singleton).
**Thread Safety:**
Retu…
def create_default_registry() -> DirectiveRegistry
Get the default directive registry (cached singleton).
Thread Safety: Returns a cached immutable registry. Safe for concurrent access. Uses lock-protected initialization to prevent import deadlocks in free-threaded Python (3.14t+).
Returns
DirectiveRegistry
Create a builder pre-populated with default directives.
**Use this to extend t…
def create_registry_with_defaults() -> DirectiveRegistryBuilder
Create a builder pre-populated with default directives.
Use this to extend the default set with custom directives:
>>> builder = create_registry_with_defaults()
>>> builder.register(MyCustomDirective())
>>> registry = builder.build()
Returns
DirectiveRegistryBuilder