##// END OF EJS Templates
interfaces: convert the repository zope interfaces to Protocol classes...
interfaces: convert the repository zope interfaces to Protocol classes This is the same transformation as 382d9629cede did for dirstate. The same caveat applies- the code may not be valid, since the functions are missing the `self` arg, and the attrs should be plain attrs, not zope `Attribute`. These classes are pretty intertwined however, so making the same transformation to everything makes it easier to change and review. Additionally, there are some classes that subclass multiple protocol classes, and should themselves subclass `typing.Protocol` to be a protocol class. But defer that for now for clarity.

File last commit:

r53324:8c509a70 default
r53342:26dd402c default
Show More
__init__.py
46 lines | 929 B | text/x-python | PythonLexer
config: gather constant and type into the `__init__.py`...
r53322 # configuration related constants
from __future__ import annotations
from typing import (
List,
Tuple,
Union,
)
# keep typing simple for now
ConfigLevelT = str
config: include the component level when returning them...
r53323 LEVEL_BUNDLED_RESOURCE = 'RESOURCE'
LEVEL_ENV_OVERWRITE = 'ENV-HGRCPATH'
LEVEL_USER = 'user'
config: gather constant and type into the `__init__.py`...
r53322 LEVEL_LOCAL = 'local'
LEVEL_GLOBAL = 'global'
LEVEL_SHARED = 'shared'
LEVEL_NON_SHARED = 'non_shared'
config: include the component level when returning them...
r53323 # only include level that it make sense to edit
# note: "user" is the default level and never passed explicitly
config: gather constant and type into the `__init__.py`...
r53322 EDIT_LEVELS = (
LEVEL_USER,
LEVEL_LOCAL,
LEVEL_GLOBAL,
LEVEL_SHARED,
LEVEL_NON_SHARED,
)
config: gather the path to edit through rcutil...
r53324 # levels that can works without a repository
NO_REPO_EDIT_LEVELS = (
LEVEL_USER,
LEVEL_GLOBAL,
)
config: gather constant and type into the `__init__.py`...
r53322
ConfigItemT = Tuple[bytes, bytes, bytes, bytes]
ResourceIDT = Tuple[bytes, bytes]
FileRCT = bytes
ComponentT = Tuple[
config: include the component level when returning them...
r53323 ConfigLevelT,
config: gather constant and type into the `__init__.py`...
r53322 bytes,
Union[
List[ConfigItemT],
FileRCT,
ResourceIDT,
],
]