engforge.attr_slots.Slot

class Slot(name, default, validator, repr, cmp, hash, init, inherited, metadata=None, type=None, converter=None, kw_only=False, eq=None, eq_key=None, order=None, order_key=None, on_setattr=None, alias=None)[source]

Bases: ATTR_BASE

Slot defines a way to accept different components or systems in a system

Methods

class_validate

validates onetime A method to validate the kwargs passed to the define method

collect_attr_inst

collects all the attribute instances for a system

collect_cls

collects all the attributes for a system

configure_for_system

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

configure_instance

validates the instance given attr's init routine

create_instance

Create an instance of the instance_class

define

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

define_iterator

taking a type of component iterator, defines an interface that can be 'wide' where all items are executed in the same row on System.run().

define_validate

A method to validate the kwargs passed to the define method

evolve

Copy self and apply changes.

from_counting_attr

handle_instance

a passthrough

make_accepted

make_attribute

makes an attrs.Attribute for the class

make_factory

process_combos

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

unpack_atrs

Attributes

name

default

validator

repr

eq

eq_key

order

order_key

hash

init

metadata

type

converter

kw_only

inherited

on_setattr

alias

attr_prefix

default_ok

default_options

dflt_kw

instance_class

none_ok

template_class

accepted

config_cls

is_iter

wide

active

combos

classmethod class_validate(instance, **kwargs)

validates onetime A method to validate the kwargs passed to the define method

classmethod collect_attr_inst(system, handle_inst=True)

collects all the attribute instances for a system

Return type:

dict

classmethod collect_cls(system)

collects all the attributes for a system

Return type:

dict

classmethod configure_for_system(name, config_class, cb=None, **kwargs)

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

classmethod configure_instance(instance, attribute, value)[source]

validates the instance given attr’s init routine

classmethod create_instance(instance)

Create an instance of the instance_class

Return type:

AttributeInstance

Parameters:

instance (Configuration)

classmethod define(*component_or_systems, none_ok=False, default_ok=True, dflt_kw=None)[source]

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

Parameters:
  • none_ok – will allow no component on that item, oterwise will fail

  • default_ok – will create the slot class with no input if true

  • dflt_kw (dict) – a dictionary of input in factory for custom inits overrides defaults_ok

  • component_or_systems (Component | System)

#TODO: add default_args,default_kwargs

classmethod define_iterator(*component_or_systems, none_ok=False, default_ok=True, wide=True, dflt_kw=None)[source]

taking a type of component iterator, defines an interface that can be ‘wide’ where all items are executed in the same row on System.run().

Conversely if wide is false the system will loop over each item as if it was included in System.run(). Multiple ComponentIterators with wide=False will result in a outer join of the items.

Parameters:
  • none_ok (bool) – will allow no component on that item, otherwise will fail

  • default_ok (bool) – will create the slot class with no input if true

  • dflt_kw (dict) – a dictionary of input in factory for custom inits

  • wide (bool) – default is true, will determine if wide dataframe format, or outerproduct format when System.run() is called

  • component_or_systems (ComponentIterator)

classmethod define_validate(**kwargs)

A method to validate the kwargs passed to the define method

evolve(**changes)

Copy self and apply changes.

This works similarly to attrs.evolve but that function does not work with Attribute.

It is mainly meant to be used for transform-fields.

Added in version 20.3.0.

classmethod handle_instance(canidate)[source]

a passthrough

classmethod make_attribute(name, comp_class, **kwargs)

makes an attrs.Attribute for the class

classmethod subclasses(out=None)

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!