tri_declarative package

Module contents

tri_declarative.assert_kwargs_empty(kwargs)[source]
tri_declarative.class_shortcut(*decorator_args, **defaults)[source]
tri_declarative.declarative(member_class=None, parameter='members', add_init_kwargs=True, sort_key=None, is_member=None)[source]

Class decorator to enable classes to be defined in the style of django models. That is, @declarative classes will get an additional argument to constructor, containing a dict with all class members matching the specified type.

Parameters:
  • member_class (class) – Class(es) to collect
  • is_member ((object) -> bool) – Function to determine if an object should be collected
  • parameter (str) – Name of constructor parameter to inject
  • add_init_kwargs (bool) – If constructor parameter should be injected (Default: True)
  • sort_key ((object) -> object) – Function to invoke on members to obtain ordering (Default is to use ordering from creation_ordered)
tri_declarative.dispatch(*function, **defaults)[source]
tri_declarative.evaluate(func_or_value, __signature=None, __strict=False, **kwargs)[source]
tri_declarative.evaluate_strict(func_or_value, __signature=None, **kwargs)[source]
tri_declarative.evaluate_recursive(func_or_value, __signature=None, __strict=False, **kwargs)[source]
tri_declarative.evaluate_recursive_strict(func_or_value, __signature=None, **kwargs)[source]

Like evaluate_recursive but won’t allow un-evaluated callables to slip through.

tri_declarative.filter_show_recursive(item)[source]
tri_declarative.flatten(namespace)[source]
tri_declarative.flatten_items(namespace)[source]
tri_declarative.full_function_name(f)[source]
tri_declarative.get_shortcuts_by_name(class_)[source]
tri_declarative.getattr_path(obj, path, default=<object object>)[source]

Get an attribute path, as defined by a string separated by ‘__’. getattr_path(foo, ‘a__b__c’) is roughly equivalent to foo.a.b.c but will short circuit to return None if something on the path is None. If no default value is provided AttributeError is raised if an attribute is missing somewhere along the path. If a default value is provided that value is returned.

tri_declarative.get_members(cls, member_class=None, is_member=None, sort_key=None, _parameter=None)[source]

Collect all class level attributes matching the given criteria.

Parameters:
  • cls – Class to traverse
  • member_class (class) – Class(es) to collect
  • is_member ((object) -> bool) – Function to determine if an object should be collected
  • sort_key ((object) -> object) – Function to invoke on members to obtain ordering (Default is to use ordering from creation_ordered)
tri_declarative.is_shortcut(x)[source]
tri_declarative.matches(caller_parameters, callee_parameters)[source]
class tri_declarative.Namespace(*dicts, **kwargs)[source]

Bases: tri_struct.Struct

setitem_path(path, value)[source]
tri_declarative.remove_show_recursive(item)[source]
tri_declarative.refinable(f)[source]
class tri_declarative.Refinable[source]

Bases: object

class tri_declarative.RefinableObject(**kwargs)[source]

Bases: object

classmethod get_declared(parameter='members')

Get the dict value of the parameter collected by the @declarative class decorator. This is the same value that would be submitted to the __init__ invocation in the members argument (or another name if overridden by the parameter specification)

Return type:dict
classmethod set_declared(value, parameter='members')
tri_declarative.setattr_path(obj, path, value)[source]

Set an attribute path, as defined by a string separated by ‘__’. setattr_path(foo, ‘a__b__c’, value) is equivalent to “foo.a.b.c = value”.

tri_declarative.setdefaults_path(__target__, *defaults, **kwargs)[source]
tri_declarative.shortcut(f)[source]
class tri_declarative.Shortcut(*dicts, **kwargs)[source]

Bases: tri_declarative.namespace.Namespace

shortcut = True
tri_declarative.should_show(item)[source]
tri_declarative.sort_after(items)[source]
tri_declarative.with_meta(class_to_decorate=None, add_init_kwargs=True)[source]

Class decorator to enable a class (and it’s sub-classes) to have a ‘Meta’ class attribute.

Parameters:add_init_kwargs (bool) – Pass Meta class members to constructor
Return type:class