prozorro_sale.tools.environment module¶
Package to provide a wrapper for parsing, cleaning, checking environment variables.
- class prozorro_sale.tools.environment.Environment(prefix: str = '', spec: Optional[dict] = None, environ: Optional[dict] = None, default: Optional[dict] = None, strict: bool = False, dotenv: Optional[str] = None, **kw: Any)[source]
Bases:
object
Parser, cleaner, validator for Environment Variables.
- __getattr__(name)[source]
- __getitem__(key)[source]
- __init__(prefix: str = '', spec: Optional[dict] = None, environ: Optional[dict] = None, default: Optional[dict] = None, strict: bool = False, dotenv: Optional[str] = None, **kw: Any)[source]
Parser, cleaner, validator for Environment Variables.
- Parameters
prefix (str) – filtering environ variables on start prefix
spec (Union[dict, None]) – Validation rules
environ (Union[dict, None]) – predefined environ variables. If set None then os.environ is used
default (Union[dict, None]) – default environ variables.
strict (bool) – strict validation. Raise Error on invalid variables
dotenv (Union[str, bool, None]) – absolute or relative path to .env file.
**kw (kwargs) – for set Validation rules
Example
>>> pretend_os_environ = { >>> 'A': '42', >>> 'B': 'b', >>> 'C': 'yes', >>> 'yes': 'yes', >>> 'no': '', >>> 'D': 'd' >>> }
env = Environment(A=int, M=str, D=int, yes=booleans, no=booleans, environ=pretend_os_environ, strict=False)
- __setattr__(name, value)[source]
Implement setattr(self, name, value).
- __setitem__(key, value)[source]
- __slots__ = ('environ', 'spec', 'prefix', 'strict', 'missing', 'malformed', 'parsed')
- _parse(prefix=None, spec=None, environ=None)[source]
Parse and validate environment variables
- check_missing(spec=None, environ=None)[source]
Check for missing environment variables
- Returns
difference between expected environment variables and current
- Return type
list
- check_strict(spec=None, strict=None)[source]
Check current environment variables with expected
- Parameters
spec (dict) – expected environment variables
strict – bool
- Raises
ValueError – expected environment variables not defined
- clenup(value)[source]
Clears the values of environment variables from spaces and line breaks
- static dotenv(dotenv: Optional[Union[str, bool]] = None)[source]
Load environment variables from file. :param dotenv: File path, py.env by default. To disable loading, you must pass False :type dotenv: Union[str, bool, None]
- environ
- malformed
- missing
- parse(prefix=None, spec=None, environ=None)[source]
Parse environment variables
- parsed
- prefix
- spec
- strict
- prozorro_sale.tools.environment.booleans(value)[source]
Check value is boolean
- Parameters
value (Any) –
- Raises
ValueError – value isn’t boolean
- prozorro_sale.tools.environment.path_discover(value, discover=True)[source]
Validate string as folder path with provides support for Unix shell-style wildcards and auto discorever
- Raises
IOError – directory or file path not found
- prozorro_sale.tools.environment.url(value)[source]
Check value is url
- Raises
ValueError – value isn’t valid url format