pydantic_aioredis.model.Model

class pydantic_aioredis.model.Model

Bases: _AbstractModel

The section in the store that saves rows of the same kind

Model has some custom fields you can set in your models that alter the behavior of how this is stored in redis

_primary_key_field – The field of your model that is the primary key _redis_prefix – If set, will be added to the beginning of the keys we store in redis _redis_separator – Defaults to :, used to separate prefix, table_name, and primary_key _table_name – Defaults to the model’s name, can set a custom name in redis

If your model was named ThisModel, the primary key was “key”, and prefix and separator were left at default (not set), the keys stored in redis would be thismodel:key

__init__(**data: Any) None

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

Methods

__init__(**data)

Create a new model by parsing and validating input data from keyword arguments.

construct([_fields_set])

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data.

copy(*[, include, exclude, update, deep])

Duplicate a model, optionally choose which fields to include, exclude and change.

delete([ids])

deletes a given row or sets of rows in the table

deserialize_partially(data)

Converts model fields back from json strings into python data types.

dict(*[, include, exclude, by_alias, ...])

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

from_orm(obj)

get_primary_key_field()

Gets the protected _primary_key_field

get_table_index_key()

Returns the key in which the primary keys of the given table have been saved

insert(data[, life_span_seconds])

Inserts a given row or sets of rows into the table

json(*[, include, exclude, by_alias, ...])

Generate a JSON representation of the model, include and exclude arguments as per dict().

json_default(obj)

JSON serializer for objects not serializable by default json library Currently handles: datetimes -> obj.isoformat, ipaddress and ipnetwork -> str

json_object_hook(obj)

Can be overridden to handle custom json -> object

parse_file(path, *[, content_type, ...])

parse_obj(obj)

parse_raw(b, *[, content_type, encoding, ...])

save()

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

select([columns, ids, skip, limit])

Selects given rows or sets of rows in the table

serialize_partially(data)

Converts data types that are not compatible with Redis into json strings by looping through the models fields and inspecting its types.

set_auto_save([auto_save])

Change this instance of a model's _auto_save setting

set_auto_sync([auto_sync])

Change this instance of a model's _auto_sync setting

update()

Async Context manager to allow for updating multiple fields without syncing to redis until the end

update_forward_refs(**localns)

Try to update ForwardRefs on fields based on this Model, globalns and localns.

validate(value)

Attributes

auto_save

auto_sync

class Config

Bases: object

Pydantic schema config for _AbstractModel

classmethod construct(_fields_set: SetStr | None = None, **values: Any) Model

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

copy(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, update: DictStrAny | None = None, deep: bool = False) Model

Duplicate a model, optionally choose which fields to include, exclude and change.

Parameters:
  • include – fields to include in new model

  • exclude – fields to exclude from new model, as with values this takes precedence over include

  • update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

  • deep – set to True to make a deep copy of the model

Returns:

new model instance

async classmethod delete(ids: Any | List[Any] | None = None) List[int] | None

deletes a given row or sets of rows in the table

classmethod deserialize_partially(data: Dict[bytes, Any])

Converts model fields back from json strings into python data types.

Users can override serialze paritally and deserialze partially

dict(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, by_alias: bool = False, skip_defaults: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

classmethod get_primary_key_field()

Gets the protected _primary_key_field

classmethod get_table_index_key()

Returns the key in which the primary keys of the given table have been saved

async classmethod insert(data: List[_AbstractModel] | _AbstractModel, life_span_seconds: int | None = None)

Inserts a given row or sets of rows into the table

json(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, by_alias: bool = False, skip_defaults: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Callable[[Any], Any] | None = None, models_as_dict: bool = True, **dumps_kwargs: Any) unicode

Generate a JSON representation of the model, include and exclude arguments as per dict().

encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

classmethod json_default(obj: Any) str

JSON serializer for objects not serializable by default json library Currently handles: datetimes -> obj.isoformat, ipaddress and ipnetwork -> str

classmethod json_object_hook(obj: dict)

Can be overridden to handle custom json -> object

async classmethod select(columns: List[str] | None = None, ids: List[Any] | None = None, skip: int | None = None, limit: int | None = None) List[Any] | None

Selects given rows or sets of rows in the table

Pagination is accomplished by using the below variables

skip: Optional[int] limit: Optional[int]

classmethod serialize_partially(data: Dict[str, Any])

Converts data types that are not compatible with Redis into json strings by looping through the models fields and inspecting its types.

str, float, int - will be stored in redis as a string field None - will be converted to the string “None” More complex data types will be json dumped.

The json dumper uses class.json_default as its default serializer. Users can override json_default with a custom json serializer if they chose to. Users can override serialze paritally and deserialze partially

set_auto_save(auto_save: bool = True) None

Change this instance of a model’s _auto_save setting

set_auto_sync(auto_sync: bool = True) None

Change this instance of a model’s _auto_sync setting

update()

Async Context manager to allow for updating multiple fields without syncing to redis until the end

classmethod update_forward_refs(**localns: Any) None

Try to update ForwardRefs on fields based on this Model, globalns and localns.