classical.fields.base module
- class classical.fields.base.ClassField(init_name: str, attr_name: str)[source]
Bases:
object
Representation of a data field.
- attr_name
- get_value(obj: Any) Any [source]
Get value of object’s field.
- Parameters
obj – source object
- Returns
value of field
import attr class FieldedNT(NamedTuple): size: int color: str @attr.s class FieldedAttrs: size: int = attr.ib() color: str = attr.ib() field_size = ClassField(init_name='size', attr_name='size') nt_obj = FieldedNT(size=12, color='red') attrs_obj = FieldedAttrs(size=34, color='green') # via get_value method field_size.get_value(nt_obj) # == 12 # via __getitem__ field_size[attrs_obj] # == 34
- init_name
- property name: str
Name of the field (attribute name, may be different from the init name).
- set_value(obj: Any, value: Any) None [source]
Set value for object’s field.
- Parameters
obj – target object
value – value for field
- Returns
None
import attr @attr.s class FieldedAttrs: size: int = attr.ib() color: str = attr.ib() field_size = ClassField(init_name='size', attr_name='size') field_color = ClassField(init_name='color', attr_name='color') attrs_obj = FieldedAttrs(size=56, color='green') # via get_value method field_size.set_value(attrs_obj, 78) # attrs_obj.size == 78 # via __getitem__ field_color[attrs_obj] = 'blue' # attrs_obj.color == 'blue'
- class classical.fields.base.FieldInspector[source]
Bases:
abc.ABC
,Generic
[classical.fields.base._ClassFieldType
]- classmethod get_field_dict(obj: Any) Dict[classical.fields.base._ClassFieldType, Any] [source]
Return dict of
obj
’s fields and their values- Parameters
obj – fielded instance
- Returns
dict with
ClassField
instances as keys
- classmethod get_fields(cls_or_obj: type) classical.fields.base.FieldSchema[classical.fields.base._ClassFieldType] [source]
Return list of fields for the given fielded class or object.
- Parameters
cls_or_obj – class or instance to inspect.
- Returns
list of
ClassField
instances
- classmethod get_name_dict(obj: Any, attr_mode: bool = False, init_mode: bool = False) Dict[str, Any] [source]
Return dict of
obj
’s field names and their values.- Parameters
obj – fielded instance
attr_mode – use fields’
attr_name
as the dict’s keys; mutually exclusive withinit_mode
init_mode – use fields’
init_name
as the dict’s keys; mutually exclusive withattr_mode
- Returns
dict with
ClassField
instances as keys
- classmethod get_name_list(obj: Any, attr_mode: bool = False, init_mode: bool = False) List[str] [source]
Return list of
obj
’s field names.- Parameters
obj – fielded instance
attr_mode – use fields’
attr_name
; mutually exclusive withinit_mode
init_mode – use fields’
init_name
; mutually exclusive withattr_mode
- Returns
dict with
ClassField
instances as keys