aeat.domain.auth.apoderamientos._catalogue module

Apoderamiento scope catalogue loader and parser.

Defines ApoderadoScope and ApoderamientosCatalogue, loads the shipped registry through load_default_catalogue(), and validates operator-supplied tokens with parse_scope_tokens().

exception UnknownScopeError(message=None, *, context=None, suggestion=None, translated_message=None)[source]

Bases: AeatError

Raised when a CLI-supplied scope is not in the shipped catalogue.

Parameters:
  • message (str | None)

  • context (dict[str, object] | None)

  • suggestion (str | None)

  • translated_message (str | None)

Return type:

None

code: ClassVar[ErrorCode]
class ApoderadoScope(**data)[source]

Bases: BaseModel

One scope entry: code plus localized names plus optional modelo binding.

Parameters:
code: str
name_es: str
name_en: str
modelo_codes: tuple[str, ...]
class ApoderamientosCatalogue(**data)[source]

Bases: BaseModel

Loaded scope catalogue with version metadata.

Parameters:
catalogue_version: str
scopes: tuple[ApoderadoScope, ...]
code_set()[source]

Return the set of every scope code declared in this catalogue.

Return type:

frozenset[str]

get(code)[source]

Return the ApoderadoScope for code, or None if absent.

Return type:

ApoderadoScope | None

Parameters:

code (str)

load_default_catalogue(path=None)[source]

Load the shipped scope catalogue from disk.

Return type:

ApoderamientosCatalogue

Returns:

The validated ApoderamientosCatalogue with all registered scopes.

Parameters:

path (Path | None)

expand_all_token(catalogue)[source]

Expand the literal ALL into every catalogue code, alphabetically sorted.

Return type:

tuple[str, ...]

Parameters:

catalogue (ApoderamientosCatalogue)

parse_scope_tokens(raw_tokens, catalogue)[source]

Parse and validate a tuple of operator-supplied scope tokens.

Return type:

tuple[str, ...]

Parameters:
Rules:
  • each token must be uppercase (lower-case input is rejected)

  • comma-separated values rejected at this boundary

  • unknown codes refuse with UnknownScopeError

  • the literal ALL expands into every catalogue code

  • duplicates are silently deduplicated; order is preserved by first occurrence with ALL placed at expansion site