pydent.relationships.BaseRelationship¶
-
class
pydent.relationships.
BaseRelationship
(nested, callback, ref, attr, callback_args=None, callback_kwargs=None, many=None, allow_none=True)[source]¶ Bases:
pydent.marshaller.fields.Relationship
Base class for relationships.
By default, if the value is None, attempt a callback. If that fails, fallback to None. If successful, deserialize data to the nested model.
Relationship initializer.
- Parameters
nested (SchemaModel) – the nested name of nested field. Should exist in the ModelRegistery.
callback (callable|basestring) – name of the callback function or a callable. If a name, the name should exist as a function in the owner instance. Invalid callback signatures are captures on class creation.
callback_args (tuple) – a tuple of arguments to use in the callback. If any of the callback arguments or values of the callback kwargs are callable, the owner will be passed to the callable. The owner instance will replace any arguments that are Callback.self
callback_kwargs (dict) – a dictionary of kwargs to use in the callback
cache (bool) – whether to cache the result using setattr on the owner instance. This will initialize the serialization and deserialization procedures detailed in the corresponding field/descriptor.
many (bool) – whether to treat serializaations and deserializations as a per-item basis in a list
data_key – the data_key, or attribute name, of this field. Calling this as an attribute to the registered nested should return this field’s descriptor.
-
__init__
(nested, callback, ref, attr, callback_args=None, callback_kwargs=None, many=None, allow_none=True)[source]¶ Relationship initializer.
- Parameters
nested (SchemaModel) – the nested name of nested field. Should exist in the ModelRegistery.
callback (callable|basestring) – name of the callback function or a callable. If a name, the name should exist as a function in the owner instance. Invalid callback signatures are captures on class creation.
callback_args (tuple) – a tuple of arguments to use in the callback. If any of the callback arguments or values of the callback kwargs are callable, the owner will be passed to the callable. The owner instance will replace any arguments that are Callback.self
callback_kwargs (dict) – a dictionary of kwargs to use in the callback
cache (bool) – whether to cache the result using setattr on the owner instance. This will initialize the serialization and deserialization procedures detailed in the corresponding field/descriptor.
many (bool) – whether to treat serializaations and deserializations as a per-item basis in a list
data_key – the data_key, or attribute name, of this field. Calling this as an attribute to the registered nested should return this field’s descriptor.
Methods
__init__
(nested, callback, ref, attr[, …])Relationship initializer.
build_query
(models)Bundles all of the callback args for the models into a single query.
cache_result
(owner, val)deserialize
(owner, val)fullfill
(owner[, cache, extra_args, …])Calls the callback function using the owner object.
get_callback_args
(owner[, extra_args])Processes the callback args.
get_callback_kwargs
(owner, extra_kwargs)Processes the callback kwargs.
register
(name, objtype)Registers the field to a nested class.
serialize
(owner, obj)set_data_key
(key)Attributes
QUERY_TYPE
SELF
-
ACCESSOR
¶ alias of
BaseRelationshipAccessor
-
_Callback__FLAGS
¶ alias of
pydent.marshaller.fields.Callback.__FLAGS
-
_get_ref_attr
(nested=None, ref=None, attr=None)[source]¶ Sets the ‘ref’ and ‘attr’ attributes. These attributes are used to defined parameters for.
pydent.marshaller.Relation
classes.For example:
relation # HasOne, HasMany, or HasManyGeneric, etc. relation.set_ref(ref="parent_id") relation.ref # "parent_id" relation.attr # "id" relation.set_ref(model="SampleType") relation.ref # "sample_type_id" relation.attr # "id" relation.set_ref(attr="name", model="OperationType") relation.ref # "operation_type_name relation.attr # "name"
-
fullfill
(owner, cache=None, extra_args=None, extra_kwargs=None)[source]¶ Calls the callback function using the owner object. A Callback.SELF arg value will be replaced to be equivalent to the owner instance model.
- Parameters
owner – the owning object
cache – if True, will cache the return in the deserialized data. On next call, the cached result will be returned.
extra_args – extra args to pass to the callback function
extra_kwargs – extra kwargs to pass to the callback function
- Returns
function result
- Return type
any
-
get_callback_args
(owner, extra_args=None)¶ Processes the callback args.
- Return type
List
[Any
]
-
get_callback_kwargs
(owner, extra_kwargs)¶ Processes the callback kwargs.
- Return type
dict
-
register
(name, objtype)¶ Registers the field to a nested class. Instantiates the corresponding descriptor (i.e. accessor)
- Parameters
name (
str
) – name of the fieldobjtype (
Type
) – the nested class to register the field to
- Returns
None
- Return type
None