mlshell.LoggerProducer

class mlshell.LoggerProducer(objects, oid, path_id='path__default')[source]

Bases: pycnfg.producer.Producer

Factory to produce logger.

Interface: make.

Parameters
  • objects (dict) – Dictionary with objects from previous executed producers: {‘section_id__config__id’, object,}.

  • oid (str) – Unique identifier of produced object.

  • path_id (str, optional (default='default')) – Project path identifier in objects.

objects

Dictionary with objects from previous executed producers: {‘section_id__config__id’, object,}.

Type

dict

oid

Unique identifier of produced object.

Type

str

project_path

Absolute path to project dir.

Type

str

Methods

dict_api(obj[, method])

Forwarding api for dictionary object.

dump_cache(obj[, prefix, cachedir, pkg])

Dump intermediate object state to IO.

load_cache(obj[, prefix, cachedir, pkg])

Load intermediate object state from IO.

make(logger_name[, fullpath, config, extra, …])

Create logger object and corresponding file descriptors.

run(init, steps)

Execute configuration steps.

update(obj, items)

Update key(s) for dictionary object.

__init__(objects, oid, path_id='path__default')[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(objects, oid[, path_id])

Initialize self.

dict_api(obj[, method])

Forwarding api for dictionary object.

dump_cache(obj[, prefix, cachedir, pkg])

Dump intermediate object state to IO.

load_cache(obj[, prefix, cachedir, pkg])

Load intermediate object state from IO.

make(logger_name[, fullpath, config, extra, …])

Create logger object and corresponding file descriptors.

run(init, steps)

Execute configuration steps.

update(obj, items)

Update key(s) for dictionary object.

make(logger_name, fullpath=None, config=None, extra=None, clean=None, **kwargs)[source]

Create logger object and corresponding file descriptors.

Parameters
  • logger_name (str) – Logger identifier in config .

  • fullpath (str, optional (default=None)) – Absolute path to dir for logs files or relative to ‘project_dir’ started with ‘./’. Created, if not exists. If None, used project_path/results .

  • config (dict, optional (default=None)) – Logger configuration to pass in logging.config.dictConfig() . If None, mlshell.LOGGER_CONFIG is used.

  • extra (dict, optional (default=None)) – Add extra to logging.LoggerAdapter . If None: {'delimiter': '='*79}.

  • clean (list of str, optional (default=None)) – List of handlers identifiers, for which clean corresponding files. If None, [“debug_handler”, “warning_handler”, “error_handler”, “critical_handler”].

  • **kwargs (dict) – User-defined params for handlers, updating config. For example: {‘http_hadler’: { ‘host’:’www.example.com’, ‘url’:’https://wwww.example.com/address’ }}

Notes

Logs files named “(logger_name)_(level).log”.

test_handler used only if program run with pytest.

http_handler used only if configuration provided in kwargs.

dict_api(obj, method='update', **kwargs)

Forwarding api for dictionary object.

Could be useful to add/pop keys via configuration steps. For example to proceed update: (‘dict_api’, {‘b’:7} )

dump_cache(obj, prefix=None, cachedir=None, pkg='pickle', **kwargs)

Dump intermediate object state to IO.

Parameters
  • obj (picklable) – Object to dump.

  • prefix (str, optional (default=None)) – File identifier, added to filename. If None, ‘self.oid’ is used.

  • cachedir (str, optional(default=None)) – Absolute path to dump dir or relative to ‘project_path’ started with ‘./’. Created, if not exists. If None, “sproject_path/ .temp/objects” is used.

  • pkg (str, optional (default='pickle')) – Import package and try pkg.dump(obj, file, **kwargs).

  • **kwargs (kwargs) – Additional parameters to pass in .dump().

Returns

obj – Unchanged input for compliance with producer logic.

Return type

picklable

load_cache(obj, prefix=None, cachedir=None, pkg='pickle', **kwargs)

Load intermediate object state from IO.

Parameters
  • obj (picklable) – Object template, for producer logic only (ignored).

  • prefix (str, optional (default=None)) – File identifier. If None, ‘self.oid’ is used.

  • pkg (str, optional default('pickle')) – Import package and try obj = pkg.load(file, **kwargs).

  • cachedir (str, optional(default=None)) – Absolute path to load dir or relative to ‘project_path’ started with ‘./’. If None, ‘project_path/.temp/objects’ is used.

  • **kwargs (kwargs) – Additional parameters to pass in .load().

Returns

obj – Loaded cache.

Return type

picklable object

run(init, steps)

Execute configuration steps.

Consecutive call (with decorators):

init = getattr(self, 'method_id')(init, objects=objects, **kwargs)

Parameters
  • init (object) – Will be passed as arg in each step and get back as result.

  • steps (list of tuples) – List of self methods to run consecutive with kwargs: (‘method_id’, kwargs, decorators ).

Returns

configs – List of configurations, prepared for execution: [(‘section_id__config__id’, config), …].

Return type

list of tuple

Notes

Object identifier oid auto added, if produced object has oid attribute.

update(obj, items)

Update key(s) for dictionary object.

Parameters
  • obj (dict) – Object to update.

  • items (dict, list, optional (default=None)) – Either dictionary or items [(key,val),] to update obj.

Returns

obj – Updated input.

Return type

dict