userfs.config
index
/home/vkottler/src/vkottler/workspace/userfs/userfs/config/__init__.py

A module implementing a configuration interface for the package.

 
Package Contents
       
project
source

 
Classes
       
builtins.object
userfs.config.project.ProjectSpecification
userfs.config.source.SourceSpecification
enum.Enum(builtins.object)
userfs.config.project.ProjectInteraction
userfs.config.source.SourceKind
userfs.schemas.UserfsDictCodec(vcorelib.dict.codec.DictCodec)
Config(userfs.schemas.UserfsDictCodec, vcorelib.dict.codec.BasicDictCodec)
vcorelib.dict.codec.BasicDictCodec(vcorelib.dict.codec.DictCodec)
Config(userfs.schemas.UserfsDictCodec, vcorelib.dict.codec.BasicDictCodec)

 
class Config(userfs.schemas.UserfsDictCodec, vcorelib.dict.codec.BasicDictCodec)
    Config(data: Dict[str, Union[str, int, float, bool, NoneType, Dict[str, Union[str, int, float, bool, NoneType]], List[Union[str, int, float, bool, NoneType]]]] = None, schemas: vcorelib.schemas.base.SchemaMap = None, dest_attr: str = 'data', verify: bool = True) -> None
 
The top-level configuration object for the package.
 
 
Method resolution order:
Config
userfs.schemas.UserfsDictCodec
vcorelib.dict.codec.BasicDictCodec
vcorelib.dict.codec.DictCodec
vcorelib.dict.codec.JsonCodec
abc.ABC
vcorelib.schemas.mixins.SchemaMixin
builtins.object

Methods defined here:
init(self, data: Dict[str, Union[str, int, float, bool, NoneType, Dict[str, Union[str, int, float, bool, NoneType]], List[Union[str, int, float, bool, NoneType]]]]) -> None
Initialize this instance.

Data and other attributes defined here:
__abstractmethods__ = frozenset()
__annotations__ = {}

Data and other attributes inherited from userfs.schemas.UserfsDictCodec:
default_schemas = {'ProjectSpecification': <vcorelib.schemas.json....chemas.json.JsonSchema object at 0x7f29202c8500>}

Methods inherited from vcorelib.dict.codec.BasicDictCodec:
asdict(self) -> Dict[str, Union[str, int, float, bool, NoneType, Dict[str, Union[str, int, float, bool, NoneType]], List[Union[str, int, float, bool, NoneType]]]]
Obtain a dictionary representing this instance.

Methods inherited from vcorelib.dict.codec.DictCodec:
__init__(self, data: Dict[str, Union[str, int, float, bool, NoneType, Dict[str, Union[str, int, float, bool, NoneType]], List[Union[str, int, float, bool, NoneType]]]] = None, schemas: vcorelib.schemas.base.SchemaMap = None, dest_attr: str = 'data', verify: bool = True) -> None
Initialize this instance.

Class methods inherited from vcorelib.dict.codec.DictCodec:
create(data: Dict[str, Union[str, int, float, bool, NoneType, Dict[str, Union[str, int, float, bool, NoneType]], List[Union[str, int, float, bool, NoneType]]]] = None, schemas: vcorelib.schemas.base.SchemaMap = None, dest_attr: str = 'data', verify: bool = True) -> ~V from abc.ABCMeta
A factory method to create an instance.

Methods inherited from vcorelib.dict.codec.JsonCodec:
__copy__(self: ~T) -> ~T
Create another instance based on this instance's data.
__eq__(self, other) -> bool
Determine if this instance is equal to another.
__str__(self) -> str
Use the dictionary representation of this instance for string
representation.
encode(self, pathlike: Union[pathlib.Path, str, NoneType], arbiter: vcorelib.io.arbiter.DataArbiter = <vcorelib.io.arbiter.DataArbiter object at 0x7f291ffb51f0>, **kwargs) -> Tuple[bool, int]
Encode this object instance to a file.

Class methods inherited from vcorelib.dict.codec.JsonCodec:
decode(pathlike: Union[pathlib.Path, str, NoneType], arbiter: vcorelib.io.arbiter.DataArbiter = <vcorelib.io.arbiter.DataArbiter object at 0x7f291ffb51f0>, schemas: vcorelib.schemas.base.SchemaMap = None, dest_attr: str = 'data', verify: bool = True, require_success: bool = True, default_data: Dict[str, Union[str, int, float, bool, NoneType, Dict[str, Union[str, int, float, bool, NoneType]], List[Union[str, int, float, bool, NoneType]]]] = None, **kwargs) -> ~T from abc.ABCMeta
Decode an object instance from data loaded from a file.
file_cache(pathlike: Union[pathlib.Path, str, NoneType], arbiter: vcorelib.io.arbiter.DataArbiter = <vcorelib.io.arbiter.DataArbiter object at 0x7f291ffb51f0>, encode_kwargs: Dict[str, Any] = None, require_success: bool = False, **kwargs) -> Iterator[~T] from abc.ABCMeta
Manage an instance of this class as a disk-backed file.
normalize(data: Union[Dict[str, Union[str, int, float, bool, NoneType, Dict[str, Union[str, int, float, bool, NoneType]], List[Union[str, int, float, bool, NoneType]]]], ~T]) -> ~T from abc.ABCMeta
Ensure that some object is an instance of this class.

Data descriptors inherited from vcorelib.dict.codec.JsonCodec:
__dict__
dictionary for instance variables
__weakref__
list of weak references to the object

Data and other attributes inherited from vcorelib.dict.codec.JsonCodec:
__hash__ = None

Methods inherited from vcorelib.schemas.mixins.SchemaMixin:
validate(self, valid_attr: str = 'data') -> None
Validate an instance attribute based on this instance's schema.

Class methods inherited from vcorelib.schemas.mixins.SchemaMixin:
schema_name() -> str from abc.ABCMeta
A default name for this class's schema.

 
class ProjectInteraction(enum.Enum)
    ProjectInteraction(*values)
 
Kinds of project interactions.
 
 
Method resolution order:
ProjectInteraction
enum.Enum
builtins.object

Data and other attributes defined here:
BUILD = <ProjectInteraction.BUILD: 'build'>
CUSTOM = <ProjectInteraction.CUSTOM: 'custom'>
DEPLOY = <ProjectInteraction.DEPLOY: 'deploy'>
FETCH = <ProjectInteraction.FETCH: 'fetch'>
UPDATE = <ProjectInteraction.UPDATE: 'update'>

Data descriptors inherited from enum.Enum:
name
The name of the Enum member.
value
The value of the Enum member.

Methods inherited from enum.EnumType:
__contains__(value) from enum.EnumType
Return True if `value` is in `cls`.
 
`value` is in `cls` if:
1) `value` is a member of `cls`, or
2) `value` is the value of one of the `cls`'s members.
__getitem__(name) from enum.EnumType
Return the member matching `name`.
__iter__() from enum.EnumType
Return members in definition order.
__len__() from enum.EnumType
Return the number of members (no aliases)

Readonly properties inherited from enum.EnumType:
__members__
Returns a mapping of member name->value.
 
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.

 
class ProjectSpecification(builtins.object)
    ProjectSpecification(source: userfs.config.source.SourceSpecification, logger: Union[logging.Logger, logging.LoggerAdapter[Any]], path: str, repository: str, attributes: Dict[str, Any], options: Dict[userfs.config.project.ProjectInteraction, Dict[str, Any]]) -&gt; None
 
Information describing a software project and how to obtain it.
 
  Methods defined here:
__eq__(self, other)
Return self==value.
__init__(self, source: userfs.config.source.SourceSpecification, logger: Union[logging.Logger, logging.LoggerAdapter[Any]], path: str, repository: str, attributes: Dict[str, Any], options: Dict[userfs.config.project.ProjectInteraction, Dict[str, Any]]) -> None
Initialize self.  See help(type(self)) for accurate signature.
__repr__(self)
Return repr(self).
location(self, root: Union[pathlib.Path, str, NoneType] = None) -> pathlib.Path
Get a disk location for this project.

Static methods defined here:
from_json(data: Dict[str, Union[str, int, float, bool, NoneType, Dict[str, Union[str, int, float, bool, NoneType]], List[Union[str, int, float, bool, NoneType]]]], source: userfs.config.source.SourceSpecification, key: str) -> 'ProjectSpecification'
Create a project specification from JSON data.

Readonly properties defined here:
url
Get a URL to this project's source.

Data descriptors defined here:
__dict__
dictionary for instance variables
__weakref__
list of weak references to the object

Data and other attributes defined here:
__annotations__ = {'attributes': typing.Dict[str, typing.Any], 'logger': typing.Union[logging.Logger, logging.LoggerAdapter[typing.Any]], 'options': typing.Dict[userfs.config.project.ProjectInteraction, typing.Dict[str, typing.Any]], 'path': <class 'str'>, 'repository': <class 'str'>, 'source': <class 'userfs.config.source.SourceSpecification'>}
__dataclass_fields__ = {'attributes': Field(name='attributes',type=typing.Dict[str, ty...appingproxy({}),kw_only=False,_field_type=_FIELD), 'logger': Field(name='logger',type=typing.Union[logging.Lo...appingproxy({}),kw_only=False,_field_type=_FIELD), 'options': Field(name='options',type=typing.Dict[userfs.con...appingproxy({}),kw_only=False,_field_type=_FIELD), 'path': Field(name='path',type=<class 'str'>,default=<da...appingproxy({}),kw_only=False,_field_type=_FIELD), 'repository': Field(name='repository',type=<class 'str'>,defau...appingproxy({}),kw_only=False,_field_type=_FIELD), 'source': Field(name='source',type=<class 'userfs.config.s...appingproxy({}),kw_only=False,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,ord...rue,kw_only=False,slots=False,weakref_slot=False)
__hash__ = None
__match_args__ = ('source', 'logger', 'path', 'repository', 'attributes', 'options')

 
class SourceKind(enum.Enum)
    SourceKind(*values)
 
An enumeration describing kinds of sources.
 
 
Method resolution order:
SourceKind
enum.Enum
builtins.object

Data and other attributes defined here:
GIT = <SourceKind.GIT: 'git'>
SRC = <SourceKind.SRC: 'src'>

Data descriptors inherited from enum.Enum:
name
The name of the Enum member.
value
The value of the Enum member.

Methods inherited from enum.EnumType:
__contains__(value) from enum.EnumType
Return True if `value` is in `cls`.
 
`value` is in `cls` if:
1) `value` is a member of `cls`, or
2) `value` is the value of one of the `cls`'s members.
__getitem__(name) from enum.EnumType
Return the member matching `name`.
__iter__() from enum.EnumType
Return members in definition order.
__len__() from enum.EnumType
Return the number of members (no aliases)

Readonly properties inherited from enum.EnumType:
__members__
Returns a mapping of member name->value.
 
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.

 
class SourceSpecification(builtins.object)
    SourceSpecification(kind: userfs.config.source.SourceKind, suffix: str, protocol: str, user: str, port: Optional[int], host: str, attributes: Dict[str, Any]) -&gt; None
 
Informaiton describing a source specification.
 
  Methods defined here:
__eq__(self, other)
Return self==value.
__init__(self, kind: userfs.config.source.SourceKind, suffix: str, protocol: str, user: str, port: Optional[int], host: str, attributes: Dict[str, Any]) -> None
Initialize self.  See help(type(self)) for accurate signature.
__repr__(self)
Return repr(self).

Static methods defined here:
from_json(data: Dict[str, Union[str, int, float, bool, NoneType, Dict[str, Union[str, int, float, bool, NoneType]], List[Union[str, int, float, bool, NoneType]]]]) -> 'SourceSpecification'
Create a source specification from JSON data.

Data descriptors defined here:
__dict__
dictionary for instance variables
__weakref__
list of weak references to the object

Data and other attributes defined here:
__annotations__ = {'attributes': typing.Dict[str, typing.Any], 'host': <class 'str'>, 'kind': <enum 'SourceKind'>, 'port': typing.Optional[int], 'protocol': <class 'str'>, 'suffix': <class 'str'>, 'user': <class 'str'>}
__dataclass_fields__ = {'attributes': Field(name='attributes',type=typing.Dict[str, ty...appingproxy({}),kw_only=False,_field_type=_FIELD), 'host': Field(name='host',type=<class 'str'>,default=<da...appingproxy({}),kw_only=False,_field_type=_FIELD), 'kind': Field(name='kind',type=<enum 'SourceKind'>,defau...appingproxy({}),kw_only=False,_field_type=_FIELD), 'port': Field(name='port',type=typing.Optional[int],defa...appingproxy({}),kw_only=False,_field_type=_FIELD), 'protocol': Field(name='protocol',type=<class 'str'>,default...appingproxy({}),kw_only=False,_field_type=_FIELD), 'suffix': Field(name='suffix',type=<class 'str'>,default=<...appingproxy({}),kw_only=False,_field_type=_FIELD), 'user': Field(name='user',type=<class 'str'>,default=<da...appingproxy({}),kw_only=False,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,ord...rue,kw_only=False,slots=False,weakref_slot=False)
__hash__ = None
__match_args__ = ('kind', 'suffix', 'protocol', 'user', 'port', 'host', 'attributes')

 
Functions
       
load_config(root: Union[pathlib.Path, str, NoneType] = None, name: str = 'config.yaml') -> userfs.config.Config
Load this package's configuration as a managed context. If changed at
runtime, changes will be written back to disk.

 
Data
        Interact = typing.Callable[[pathlib.Path, userfs.config.pro...ng.Any], typing.Dict[str, typing.Any]], NoneType]
__all__ = ['ProjectInteraction', 'ProjectSpecification', 'SourceSpecification', 'Config', 'load_config', 'SourceKind', 'Interact']