##// END OF EJS Templates
interfaces: move peer `capabilities()` to the `ipeercapabilities` interface...
interfaces: move peer `capabilities()` to the `ipeercapabilities` interface I'm not sure why this was on the `ipeercommands` interface. It appears to be because these interfaces started out as `_basewirecommands` to hold wire commands, back in 558f5b2ee10e. The capabilities interface wasn't split out until 98861a2298b5, when it pulled the capability related methods off of the `ipeerbase` interface. Perhaps it was an oversight to not look at the commands interface because, while this is a wire command, both `sshpeer` and `httppeer` now perform a handshake while instantiating the peer object, and cache a fixed list of capabilities in that object. Likewise, `localpeer` is given a fixed set of capabilities when instantiated. Back in 558f5b2ee10e, `httppeer` looks like it issued a wire command when this method was called, but `sshpeer` obtained and cached the capabilities when instantiated, and this method always returned a fixed value. There's a perfectly good interface with other capability related methods, and having it here makes it easier to implement the base `peer` mixin class.

File last commit:

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