sqlalchemyseed.seeder

Seeder module

Module Contents

class sqlalchemyseed.seeder.AbstractSeeder

Bases: abc.ABC

AbstractSeeder class

abstractmethod seed(entities)

Seed data

abstract property instances

Seeded instances

class sqlalchemyseed.seeder.DynamicSeeder

DynamicSeeder class

class sqlalchemyseed.seeder.HybridSeeder(session: sqlalchemy.orm.Session, ref_prefix: str = '!', strict: bool = False)

Bases: AbstractSeeder

HybridSeeder class. Accepts ‘filter’ key for referencing children.

get_model_class(entity, parent: InstanceAttributeTuple)
seed(entities)

Seed data

property instances

Seeded instances

ref_prefix = '!'
session
strict = False
class sqlalchemyseed.seeder.InstanceAttributeTuple

Bases: NamedTuple

Instrance and attribute name tuple

attr_name: str
instance: object
class sqlalchemyseed.seeder.Seeder(session: sqlalchemy.orm.Session = None, ref_prefix='!', strict=False)

Basic Seeder class

seed(entities: list | dict, add_to_session=True)

Seed method

property instances: tuple

Returns instances of the seeded entities

ref_prefix = '!'
session = None
strict = False
sqlalchemyseed.seeder.filter_kwargs(kwargs: dict, class_, ref_prefix, strict=False)

Filters kwargs, dropping keys that name a relationship attribute.

A non-prefixed key that resolves to a relationship is a forgotten ref_prefix (gap #3): such a key is silently ignored by the model constructor. When strict is True this raises; otherwise it warns and drops the key (preserving historical behavior).