estruttura package

class estruttura.Attribute(default=MissingType.MISSING, factory=MissingType.MISSING, relationship=Relationship(converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), extra_paths=(), builtin_paths=None), required=None, init=None, init_as=None, settable=None, deletable=None, serializable=None, serialize_as=None, serialize_default=True, constant=False, repr=None, eq=None, order=None, hash=None, doc='', metadata=None, namespace=None, callback=None, extra_paths=(), builtin_paths=None)

Bases: ImmutableBasicData, Generic[T_co]

Attribute descriptor for structures.

to_items(usecase=None)

Convert to items.

Parameters

usecase – Use case.

Returns

Items.

get_default_value()

Get default value.

Returns

Default value.

Raises

RuntimeError – No valid default value/factory defined.

process_value(value, location=MissingType.MISSING)

Process value (convert, check type, validate).

Parameters
  • value – Value.

  • location – Optional value location information.

Returns

Processed value.

Raises

ProcessingError – Error while processing value.

getter(*dependencies)

Define a getter delegate method by using a decorator.

Parameters

dependencies – Attribute dependencies.

Returns

Getter method decorator.

Raises
  • RuntimeError – Can’t define a delegate for a constant attribute.

  • ValueError – Attribute already named and owned by a class.

  • ValueError – Getter delegate already defined.

setter(maybe_func=None)

Define a setter delegate method by using a decorator.

Returns

Setter method decorator.

Raises
  • RuntimeError – Can’t define a delegate for a constant attribute.

  • ValueError – Attribute already named and owned by a class.

  • ValueError – Attribute is not settable.

  • ValueError – Need to define a getter before defining a setter.

  • ValueError – Setter delegate already defined.

deleter(maybe_func=None)

Define a deleter delegate method by using a decorator.

Returns

Deleter method decorator.

Raises
  • RuntimeError – Can’t define a delegate for a constant attribute.

  • ValueError – Attribute already named and owned by a class.

  • ValueError – Attribute is not deletable.

  • ValueError – Need to define a getter before defining a deleter.

  • ValueError – Deleter delegate already defined.

update(*args, **kwargs)

Make a new attribute with updates.

Params

Same parameters as dict.

Returns

Updated attribute.

property name

Attribute name.

property owner

Owner class.

property default

Default value.

property factory

Default factory.

property relationship

Relationship.

property required

Whether it is required to have a value.

property init

Whether to include in the __init__ method.

property init_as

Alternative attribute or name to use when initializing.

property settable

Whether the value can be changed after being set.

property deletable

Whether the value can be deleted.

property serializable

Whether it’s serializable.

property serialize_as

Alternative attribute or name to use when serializing.

property serialize_default

Whether to serialize default value.

property constant

Whether attribute is a class constant.

property repr

Whether to include in the __repr__ method (or a custom repr function).

property eq

Whether to include in the __eq__ method.

property order

Whether to include in the __lt__, __le__, __gt__, __ge__ methods.

property hash

Whether to include in the __hash__ method.

property doc

Documentation.

property metadata

User metadata.

property namespace

Namespace.

property extra_paths

Extra module paths in fallback order.

property builtin_paths

Builtin module paths in fallback order.

property constant_value

Constant value.

property dependencies

Getter dependencies.

property recursive_dependencies

Recursive getter dependencies.

property dependents

Dependents.

property recursive_dependents

Recursive dependents.

property fget

Getter function.

property fset

Setter function.

property fdel

Deleter function.

property count

Global count number for this attribute.

property owned

Whether attribute is owned by a class or not.

property named

Whether attribute is named by a class or not.

property delegated

Whether attribute has at least a getter delegate.

property has_default

Whehter attribute has a default value/default factory.

class estruttura.MutableAttribute(default=MissingType.MISSING, factory=MissingType.MISSING, relationship=Relationship(converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), extra_paths=(), builtin_paths=None), required=None, init=None, init_as=None, settable=None, deletable=None, serializable=None, serialize_as=None, serialize_default=True, constant=False, repr=None, eq=None, order=None, hash=None, doc='', metadata=None, namespace=None, callback=None, extra_paths=(), builtin_paths=None)

Bases: Attribute[T]

Mutable attribute descriptor.

estruttura.getter(attribute, dependencies=())

Decorator that sets a getter delegate for an attribute. The decorated function should be named as a single underscore: _.

Parameters
  • attribute – Attribute.

  • dependencies – Dependencies.

Returns

Delegate function decorator.

estruttura.setter(attribute)

Decorator that sets a setter delegate for an attribute. The decorated function should be named as a single underscore: _.

Parameters

attribute – Attribute.

Returns

Delegate function decorator.

estruttura.deleter(attribute)

Decorator that sets a deleter delegate for an attribute. The decorated function should be named as a single underscore: _.

Parameters

attribute – Attribute.

Returns

Delegate function decorator.

estruttura.get_global_attribute_count()

Get global number of initialized attributes.

Returns

Global attribute count.

class estruttura.BaseStructureMeta(name, bases, dct, **kwargs)

Bases: SlottedBaseMeta

Metaclass for BaseStructure.

class estruttura.BaseStructure

Bases: SlottedBase

Base structure.

abstract serialize()

Serialize.

Returns

Serialized.

Raises

SerializationError – Error while serializing.

abstract classmethod deserialize(serialized)

Deserialize.

Parameters

serialized – Serialized.

Returns

Structure.

Raises

SerializationError – Error while deserializing.

class estruttura.BaseUserStructure

Bases: BaseStructure

Base user structure.

class estruttura.BaseImmutableStructure

Bases: BaseStructure, SlottedHashable

Base immutable structure.

class estruttura.BaseUserImmutableStructure

Bases: BaseImmutableStructure, BaseUserStructure

Base user immutable structure.

class estruttura.BaseMutableStructure

Bases: BaseStructure

Base mutable structure.

class estruttura.BaseUserMutableStructure

Bases: BaseMutableStructure, BaseUserStructure

Base user mutable structure.

class estruttura.BaseCollectionStructure(*args, **kwds)

Bases: BaseStructure, SlottedCollection[T_co]

Base collection structure.

relationship = Relationship(converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), extra_paths=(), builtin_paths=None)

Relationship with values.

class estruttura.BaseUserCollectionStructure(*args, **kwds)

Bases: BaseCollectionStructure[T_co], BaseUserStructure

Base user collection structure.

class estruttura.BaseImmutableCollectionStructure(*args, **kwds)

Bases: BaseCollectionStructure[T_co], BaseImmutableStructure

Immutable collection structure.

class estruttura.BaseUserImmutableCollectionStructure(*args, **kwds)

Bases: BaseImmutableCollectionStructure[T_co], BaseUserCollectionStructure[T_co]

Base user immutable collection structure.

clear()

Clear.

Returns

Transformed.

class estruttura.BaseMutableCollectionStructure(*args, **kwds)

Bases: BaseCollectionStructure[T_co], BaseMutableStructure

Base mutable collection structure.

class estruttura.BaseUserMutableCollectionStructure(*args, **kwds)

Bases: BaseMutableCollectionStructure[T_co], BaseUserCollectionStructure[T_co]

Base user mutable collection structure.

clear()

Clear.

class estruttura.AttributeMap(ordered_attributes=())

Bases: SlottedBase, SlottedHashable, SlottedMapping[KT_str, AT_co]

Maps attributes by name.

ordered_items()
get_initial_values(args, kwargs, init_property='init', init_method='__init__')

Get initial/deserialized attribute values.

Parameters
  • args – Positional arguments.

  • kwargs – Keyword arguments.

  • init_property – Which boolean attribute property to use when considering it a init attribute.

  • init_method – The name of the initialization method receiving the values.

Returns

Initial attribute values.

get_update_values(updates, attributed=None)

Get values for an update.

Parameters
  • updates – Updated values.

  • attributed – Instance that holds attribute values.

Returns

New values and old values.

class estruttura.StructureMeta(name, bases, dct, **kwargs)

Bases: BaseStructureMeta

Metaclass for Structure.

class estruttura.Structure(*args, **kwargs)

Bases: BaseStructure

Attribute class structure.

attributes = Namespace(AttributeMap([]))
serialize()

Serialize.

Returns

Serialized dictionary.

Raises

SerializationError – Error while serializing.

classmethod deserialize(serialized)

Deserialize.

Parameters

serialized – Serialized dictionary.

Returns

Structure.

Raises

SerializationError – Error while deserializing.

class estruttura.UserStructure(*args, **kwargs)

Bases: Structure, BaseUserStructure

User attribute class structure.

attributes = Namespace(AttributeMap([]))
class estruttura.ImmutableStructure(*args, **kwargs)

Bases: Structure, BaseImmutableStructure

Immutable attribute class structure.

attributes = Namespace(AttributeMap([]))
class estruttura.UserImmutableStructure(*args, **kwargs)

Bases: ImmutableStructure, UserStructure, BaseUserImmutableStructure

User immutable attribute class structure.

discard(name)

Discard attribute value if it’s set.

Parameters

name – Attribute name.

Returns

Transformed.

delete(name)

Delete existing attribute value.

Parameters

name – Attribute name.

Returns

Transformed.

Raises

KeyError – Key is not present.

set(name, value)

Set value for attribute.

Parameters
  • name – Attribute name.

  • value – Value.

Returns

Transformed.

update(*args, **kwargs)

Update attribute values.

Same parameters as dict.update(). :return: Transformed.

attributes = Namespace(AttributeMap([]))
class estruttura.MutableStructure(*args, **kwargs)

Bases: Structure, BaseMutableStructure

Mutable attribute class structure.

attributes = Namespace(AttributeMap([]))
class estruttura.UserMutableStructure(*args, **kwargs)

Bases: MutableStructure, UserStructure, BaseUserMutableStructure

User mutable attribute class structure.

attributes = Namespace(AttributeMap([]))
discard(name)

Discard attribute value if it’s set.

Parameters

name – Attribute name.

Returns

Transformed.

delete(name)

Delete existing attribute value.

Parameters

name – Attribute name.

Returns

Transformed.

Raises

KeyError – Key is not present.

set(name, value)

Set value for attribute.

Parameters
  • name – Attribute name.

  • value – Value.

Returns

Transformed.

Raises

KeyError – Key is not present.

update(*args, **kwargs)

Update attribute values.

Same parameters as dict.update(). :return: Transformed.

class estruttura.DictStructure(*args, **kwargs)

Bases: BaseCollectionStructure[KT], SlottedMapping[KT, VT]

Dictionary structure.

value_relationship = Relationship(converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), extra_paths=(), builtin_paths=None)

Value relationship.

serialize()

Serialize.

Returns

Serialized dictionary.

Raises

SerializationError – Error while serializing.

classmethod deserialize(serialized)

Deserialize.

Parameters

serialized – Serialized mapping.

Returns

Dictionary structure.

Raises

SerializationError – Error while deserializing.

class estruttura.UserDictStructure(*args, **kwargs)

Bases: DictStructure[KT, VT], BaseUserCollectionStructure[KT]

User dictionary structure.

class estruttura.ImmutableDictStructure(*args, **kwargs)

Bases: DictStructure[KT, VT], BaseImmutableCollectionStructure[KT]

Immutable dictionary structure.

class estruttura.UserImmutableDictStructure(*args, **kwargs)

Bases: ImmutableDictStructure[KT, VT], UserDictStructure[KT, VT], BaseUserImmutableCollectionStructure[KT]

User immutable dictionary structure.

discard(key)

Discard key if it exists.

Parameters

key – Key.

Returns

Transformed.

delete(key)

Delete existing key.

Parameters

key – Key.

Returns

Transformed.

Raises

KeyError – Key is not present.

set(key, value)

Set value for key.

Parameters
  • key – Key.

  • value – Value.

Returns

Transformed.

update(*args, **kwargs)

Update keys and values.

Same parameters as dict.update(). :return: Transformed.

class estruttura.MutableDictStructure(*args, **kwargs)

Bases: DictStructure[KT, VT], BaseMutableCollectionStructure[KT]

Mutable dictionary structure.

class estruttura.UserMutableDictStructure(*args, **kwargs)

Bases: MutableDictStructure[KT, VT], UserDictStructure[KT, VT], BaseUserMutableCollectionStructure[KT], SlottedMutableMapping[KT, VT]

User mutable dictionary structure.

pop(key, fallback=MissingType.MISSING)

Get value for key and delete it, return fallback value if key is not present.

Parameters
  • key – Key.

  • fallback – Fallback value.

Returns

Value or fallback value.

Raises

KeyError – Key is not present and fallback value not provided.

popitem()

Get item and discard key.

Returns

Item.

Raises

KeyError – Dictionary is empty.

discard(key)

Discard key if it exists.

Parameters

key – Key.

delete(key)

Delete existing key.

Parameters

key – Key.

Raises

KeyError – Key is not present.

set(key, value)

Set value for key.

Parameters
  • key – Key.

  • value – Value.

update(*args, **kwargs)

Update keys and values.

Same parameters as dict.update().

class estruttura.ListStructure(initial=())

Bases: BaseCollectionStructure[T], SlottedSequence[T]

List structure.

serialize()

Serialize.

Returns

Serialized list.

Raises

SerializationError – Error while serializing.

classmethod deserialize(serialized)

Deserialize.

Parameters

serialized – Serialized iterable.

Returns

List structure.

Raises

SerializationError – Error while deserializing.

abstract count(value)

Count number of occurrences of a value.

Parameters

value – Value.

Returns

Number of occurrences.

abstract index(value, start=None, stop=None)

Get index of a value.

Parameters
  • value – Value.

  • start – Start index.

  • stop – Stop index.

Returns

Index of value.

Raises

ValueError – Provided stop but did not provide start.

resolve_index(index, clamp=False)

Resolve index to a positive number.

Parameters
  • index – Input index.

  • clamp – Whether to clamp between zero and the length.

Returns

Resolved index.

Raises

IndexError – Index out of range.

resolve_continuous_slice(slc)

Resolve continuous slice according to length.

Parameters

slc – Continuous slice.

Returns

Index and stop.

Raises

IndexError – Slice is noncontinuous.

pre_move(item, target_index)

Perform checks before moving values internally and get move indexes.

Parameters
  • item – Index/slice.

  • target_index – Target index.

Returns

None or (target index, index, stop, post index, post_stop).

class estruttura.UserListStructure(initial=())

Bases: ListStructure[T], BaseUserCollectionStructure[T]

User list structure.

class estruttura.ImmutableListStructure(initial=())

Bases: ListStructure[T], BaseImmutableCollectionStructure[T]

Immutable list structure.

class estruttura.UserImmutableListStructure(initial=())

Bases: ImmutableListStructure[T], UserListStructure[T], BaseUserImmutableCollectionStructure[T]

User immutable list structure.

append(value)

Append value at the end.

Parameters

value – Value.

Returns

Transformed.

extend(iterable)

Extend at the end with iterable.

Parameters

iterable – Iterable.

Returns

Transformed.

remove(value)

Remove first occurrence of value.

Parameters

value – Value.

Returns

Transformed.

Raises

ValueError – Value is not present.

reverse()

Reverse values.

Returns

Transformed.

sort(key=None)

Sort values.

Parameters

key – Sorting key function.

Returns

Transformed (immutable) or self (mutable).

insert(index, *values)

Insert value(s) at index.

Parameters
  • index – Index.

  • values – Value(s).

Returns

Transformed.

move(item, target_index)

Move values internally.

Parameters
  • item – Index/slice.

  • target_index – Target index.

Returns

Transformed.

delete(item)

Delete values at index/slice.

Parameters

item – Index/slice.

Returns

Transformed.

set(index, value)

Set value at index.

Parameters
  • index – Index.

  • value – Value.

Returns

Transformed.

Raises

IndexError – Invalid index.

update(item, value)

Update value(s).

Parameters
  • item – Index/slice.

  • value – Value(s).

Returns

Transformed.

class estruttura.MutableListStructure(initial=())

Bases: ListStructure[T], BaseMutableCollectionStructure[T]

Mutable list structure.

class estruttura.UserMutableListStructure(initial=())

Bases: MutableListStructure[T], UserListStructure[T], BaseUserMutableCollectionStructure[T], SlottedMutableSequence[T]

User mutable list structure.

pop(index=-1)

Pop value from index.

Parameters

index – Index.

Returns

Value.

insert(index, *values)

Insert value(s) at index.

Parameters
  • index – Index.

  • values – Value(s).

append(value)

Append value at the end.

Parameters

value – Value.

extend(iterable)

Extend at the end with iterable.

Parameters

iterable – Iterable.

remove(value)

Remove first occurrence of value.

Parameters

value – Value.

Raises

ValueError – Value is not present.

reverse()

Reverse values.

sort(key=None)

Sort values.

Parameters

key – Sorting key function.

move(item, target_index)

Move values internally.

Parameters
  • item – Index/slice.

  • target_index – Target index.

delete(item)

Delete values at index/slice.

Parameters

item – Index/slice.

set(index, value)

Set value at index.

Parameters
  • index – Index.

  • value – Value.

Returns

Transformed.

Raises

IndexError – Invalid index.

update(item, value)

Update value(s).

Parameters
  • item – Index/slice.

  • value – Value(s).

Returns

Transformed.

estruttura.resolve_index(length, index, clamp=False)

Resolve list index to a positive number.

Parameters
  • length – Length of the list.

  • index – Input index.

  • clamp – Whether to clamp between zero and the length.

Returns

Resolved index.

Raises

IndexError – Index out of range.

estruttura.resolve_continuous_slice(length, slc)

Resolve continuous list slice according to length.

Parameters
  • length – Length of the list.

  • slc – Continuous slice.

Returns

Index and stop.

Raises

IndexError – Slice is noncontinuous.

estruttura.pre_move(length, item, target_index)

Perform checks before moving list values internally and get move indexes.

Parameters
  • length – Length of the list.

  • item – Index/slice.

  • target_index – Target index.

Returns

None or (target index, index, stop, post index, post stop).

class estruttura.Relationship(converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), extra_paths=(), builtin_paths=None)

Bases: ImmutableBasicData, Generic[T]

Describes a relationship between an object and its values.

convert_value(value)

Convert a value.

Parameters

value – Value.

Returns

Converted value.

Raises

ConversionError – Conversion failed.

validate_value(value)

Validate a value.

Parameters

value – Value.

Raises

ValidationError – Validation failed.

check_value_type(value)

Check value type.

Parameters

value – Value.

Raises

InvalidTypeError – Invalid value type.

process_value(value, location=MissingType.MISSING)

Process value (convert, check type, validate).

Parameters
  • value – Value.

  • location – Optional value location information.

Returns

Processed value.

Raises

ProcessingError – Error while processing value.

accepts_type(value)

Get whether the type of a value is accepted or not.

Parameters

value – Value.

Returns

True if type is accepted.

serialize_value(value)

Serialize value.

Parameters

value – Value.

Returns

Serialized value.

Raises

SerializationError – Error while serializing.

deserialize_value(serialized)

Deserialize value.

Parameters

serialized – Serialized value.

Returns

Value.

Raises

SerializationError – Error while deserializing.

to_items(usecase=None)

Convert to items.

Parameters

usecase – Usecase.

Returns

Items.

update(*args, **kwargs)

Make a new relationship with updates.

Same parameters as dict.update(). :return: Updated relationship.

property converter

Callable value converter.

property validator

Callable value validator.

property types

Types for runtime checking.

property subtypes

Whether to accept subtypes.

property serializer

Serializer.

property extra_paths

Extra module paths in fallback order.

property builtin_paths

Builtin module paths in fallback order.

property types_info

Information about relationship types.

property will_process

Whether value will be processed or not.

class estruttura.RelationshipTypesInfo(input_types=(), extra_paths=(), builtin_paths=None)

Bases: ImmutableBasicData, Generic[T]

Information about relationship types.

to_items(usecase=None)

Convert to items.

Parameters

usecase – Usecase.

Returns

Items.

update(*args, **kwargs)

Make a new type info with updates.

Same parameters as dict.update(). :return: Updated type info.

property input_types

Input types.

property all_types

All types.

property basic_types

Basic types.

property complex_types

Complex types.

property mapping_types

Mapping types.

property iterable_types

Iterable types.

class estruttura.SetStructure(initial=())

Bases: BaseCollectionStructure[T], SlottedSet[T]

Set structure.

serialize()

Serialize.

Returns

Serialized list.

Raises

SerializationError – Error while serializing.

classmethod deserialize(serialized)

Deserialize.

Parameters

serialized – Serialized iterable.

Returns

Structure.

Raises

SerializationError – Error while deserializing.

abstract isdisjoint(iterable)

Get whether is a disjoint set of an iterable.

Parameters

iterable – Iterable.

Returns

True if is disjoint.

abstract issubset(iterable)

Get whether is a subset of an iterable.

Parameters

iterable – Iterable.

Returns

True if is subset.

abstract issuperset(iterable)

Get whether is a superset of an iterable.

Parameters

iterable – Iterable.

Returns

True if is superset.

abstract intersection(iterable)

Get intersection.

Parameters

iterable – Iterable.

Returns

Intersection.

abstract symmetric_difference(iterable)

Get symmetric difference.

Parameters

iterable – Iterable.

Returns

Symmetric difference.

abstract union(iterable)

Get union.

Parameters

iterable – Iterable.

Returns

Union.

abstract difference(iterable)

Get difference.

Parameters

iterable – Iterable.

Returns

Difference.

abstract inverse_difference(iterable)

Get an iterable’s difference to this.

Parameters

iterable – Iterable.

Returns

Inverse Difference.

class estruttura.UserSetStructure(initial=())

Bases: SetStructure[T], BaseUserCollectionStructure[T]

User set structure.

class estruttura.ImmutableSetStructure(initial=())

Bases: SetStructure[T], BaseImmutableCollectionStructure[T]

Immutable set structure.

class estruttura.UserImmutableSetStructure(initial=())

Bases: ImmutableSetStructure[T], UserSetStructure[T], BaseUserImmutableCollectionStructure[T]

User immutable set structure.

add(value)

Add value.

Parameters

value – Value.

Returns

Transformed.

discard(*values)

Discard value(s).

Parameters

values – Value(s).

Returns

Transformed.

remove(*values)

Remove existing value(s).

Parameters

values – Value(s).

Returns

Transformed.

Raises

KeyError – Value is not present.

update(iterable)

Update with iterable.

Parameters

iterable – Iterable.

Returns

Transformed.

class estruttura.MutableSetStructure(initial=())

Bases: SetStructure[T], BaseMutableCollectionStructure[T]

Mutable set structure.

class estruttura.UserMutableSetStructure(initial=())

Bases: MutableSetStructure[T], UserSetStructure[T], BaseUserMutableCollectionStructure[T], SlottedMutableSet[T]

User mutable set structure.

pop()

Pop value.

Returns

Value.

Raises

KeyError – Empty set.

intersection_update(iterable)

Intersect.

Parameters

iterable – Iterable.

symmetric_difference_update(iterable)

Symmetric difference.

Parameters

iterable – Iterable.

difference_update(iterable)

Difference.

Parameters

iterable – Iterable.

add(value)

Add value.

Parameters

value – Value.

discard(*values)

Discard value(s).

Parameters

values – Value(s).

remove(*values)

Remove existing value(s).

Parameters

values – Value(s).

Raises

KeyError – Value is not present.

update(iterable)

Update with iterable.

Parameters

iterable – Iterable.

estruttura.dict_cls(converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), key_converter=None, key_validator=None, key_types=(), key_subtypes=False, key_serializer=TypedSerializer(), extra_paths=(), builtin_paths=None, qualified_name=None, base_type=<class 'estruttura._dict.DictStructure'>, cls_dct=None, cls_module=None, relationship_type=<class 'estruttura._relationship.Relationship'>, relationship_kwargs=None, key_relationship_type=<class 'estruttura._relationship.Relationship'>, key_relationship_kwargs=None)

Build a dictionary structure class.

Parameters
  • converter – Callable value converter.

  • validator – Callable value validator.

  • types – Types for runtime value checking.

  • subtypes – Whether to accept subtypes for values.

  • serializer – Value serializer.

  • key_converter – Callable key converter.

  • key_validator – Callable key validator.

  • key_types – Types for runtime key checking.

  • key_subtypes – Whether to accept subtypes for keys.

  • key_serializer – Key serializer.

  • extra_paths – Extra module paths in fallback order.

  • builtin_paths – Builtin module paths in fallback order.

  • qualified_name – Qualified name.

  • base_type – Base class.

  • cls_dct – Class body.

  • cls_module – Class module.

  • relationship_type – Value relationship class.

  • relationship_kwargs – Value relationship keyword arguments.

  • key_relationship_type – Key relationship class.

  • key_relationship_kwargs – Key relationship keyword arguments.

Returns

Dictionary structure class.

estruttura.list_cls(converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), extra_paths=(), builtin_paths=None, qualified_name=None, base_type=<class 'estruttura._list.ListStructure'>, cls_dct=None, cls_module=None, relationship_type=<class 'estruttura._relationship.Relationship'>, relationship_kwargs=None)

Build a list structure class.

Parameters
  • converter – Callable value converter.

  • validator – Callable value validator.

  • types – Types for runtime checking.

  • subtypes – Whether to accept subtypes.

  • serializer – Serializer.

  • extra_paths – Extra module paths in fallback order.

  • builtin_paths – Builtin module paths in fallback order.

  • qualified_name – Qualified name.

  • base_type – Base class.

  • cls_dct – Class body.

  • cls_module – Class module.

  • relationship_type – Relationship class.

  • relationship_kwargs – Relationship keyword arguments.

Returns

List structure class.

estruttura.set_cls(converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), extra_paths=(), builtin_paths=None, qualified_name=None, base_type=<class 'estruttura._set.SetStructure'>, cls_dct=None, cls_module=None, relationship_type=<class 'estruttura._relationship.Relationship'>, relationship_kwargs=None)

Build a set structure class.

Parameters
  • converter – Callable value converter.

  • validator – Callable value validator.

  • types – Types for runtime checking.

  • subtypes – Whether to accept subtypes.

  • serializer – Serializer.

  • extra_paths – Extra module paths in fallback order.

  • builtin_paths – Builtin module paths in fallback order.

  • qualified_name – Qualified name.

  • base_type – Base class.

  • cls_dct – Class body.

  • cls_module – Class module.

  • relationship_type – Relationship class.

  • relationship_kwargs – Relationship keyword arguments.

Returns

Set structure class.

estruttura.attribute(default=MissingType.MISSING, factory=MissingType.MISSING, converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), required=None, init=None, init_as=None, settable=None, deletable=None, serializable=None, serialize_as=None, serialize_default=True, constant=False, repr=None, eq=None, order=None, hash=None, doc='', metadata=None, namespace=None, callback=None, extra_paths=(), builtin_paths=None, attribute_type=<class 'estruttura._attribute.Attribute'>, attribute_kwargs=None, relationship_type=<class 'estruttura._relationship.Relationship'>, relationship_kwargs=None)

Define an attribute.

Parameters
  • default – Default value.

  • factory – Default factory.

  • converter – Callable value converter.

  • validator – Callable value validator.

  • types – Types for runtime checking.

  • subtypes – Whether to accept subtypes.

  • serializer – Serializer.

  • required – Whether it is required to have a value.

  • init – Whether to include in the __init__ method.

  • init_as – Alternative attribute or name to use when initializing.

  • settable – Whether the value can be changed after being set.

  • deletable – Whether the value can be deleted.

  • serializable – Whether it’s serializable.

  • serialize_as – Alternative attribute or name to use when serializing.

  • serialize_default – Whether to serialize default value.

  • constant – Whether attribute is a class constant.

  • repr – Whether to include in the __repr__ method.

  • eq – Whether to include in the __eq__ method.

  • order – Whether to include in the __lt__, __le__, __gt__, __ge__ methods.

  • hash – Whether to include in the __hash__ method.

  • doc – Documentation.

  • metadata – User metadata.

  • namespace – Namespace.

  • callback – Callback that runs after attribute has been named/owned by class.

  • extra_paths – Extra module paths in fallback order.

  • builtin_paths – Builtin module paths in fallback order.

  • attribute_type – Attribute class.

  • attribute_kwargs – Attribute keyword arguments.

  • relationship_type – Relationship class.

  • relationship_kwargs – Relationship keyword arguments.

Returns

Attribute.

estruttura.dict_attribute(default=MissingType.MISSING, factory=MissingType.MISSING, converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), key_converter=None, key_validator=None, key_types=(), key_subtypes=False, key_serializer=TypedSerializer(), required=None, init=None, init_as=None, settable=None, deletable=None, serializable=None, serialize_as=None, serialize_default=True, constant=False, repr=None, eq=None, order=None, hash=None, doc='', metadata=None, callback=None, extra_paths=(), builtin_paths=None, attribute_type=<class 'estruttura._attribute.Attribute'>, attribute_kwargs=None, base_type=<class 'estruttura._dict.DictStructure'>, cls_dct=None, cls_module=None, relationship_type=<class 'estruttura._relationship.Relationship'>, relationship_kwargs=None, key_relationship_type=<class 'estruttura._relationship.Relationship'>, key_relationship_kwargs=None)
estruttura.list_attribute(default=MissingType.MISSING, factory=MissingType.MISSING, converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), required=None, init=None, init_as=None, settable=None, deletable=None, serializable=None, serialize_as=None, serialize_default=True, constant=False, repr=None, eq=None, order=None, hash=None, doc='', metadata=None, callback=None, extra_paths=(), builtin_paths=None, attribute_type=<class 'estruttura._attribute.Attribute'>, attribute_kwargs=None, base_type=<class 'estruttura._list.ListStructure'>, cls_dct=None, cls_module=None, relationship_type=<class 'estruttura._relationship.Relationship'>, relationship_kwargs=None)
estruttura.set_attribute(default=MissingType.MISSING, factory=MissingType.MISSING, converter=None, validator=None, types=(), subtypes=False, serializer=TypedSerializer(), required=None, init=None, init_as=None, settable=None, deletable=None, serializable=None, serialize_as=None, serialize_default=True, constant=False, repr=None, eq=None, order=None, hash=None, doc='', metadata=None, callback=None, extra_paths=(), builtin_paths=None, attribute_type=<class 'estruttura._attribute.Attribute'>, attribute_kwargs=None, base_type=<class 'estruttura._set.SetStructure'>, cls_dct=None, cls_module=None, relationship_type=<class 'estruttura._relationship.Relationship'>, relationship_kwargs=None)

Subpackages

Submodules