Skip to content

override

django_spire.contrib.seeding.field.override

FieldOverride

Source code in django_spire/contrib/seeding/field/override.py
2
3
4
def __init__(self, seeder_class):
    self.seeder_class = seeder_class
    self.overrides = {}

seeder_class = seeder_class instance-attribute

overrides = {} instance-attribute

__getattr__

Delegate attribute lookup to self.seeder_class if the attribute isn't found in this FieldOverride instance.

Source code in django_spire/contrib/seeding/field/override.py
def __getattr__(self, name):
    """
    Delegate attribute lookup to self.seeder_class if the attribute isn't found
    in this FieldOverride instance.
    """

    attr = getattr(self.seeder_class, name)
    if callable(attr):
        def wrapper(*args, **kwargs):
            # TODO: Error here if fields is passed as an arg.
            # Pass the overrides field to the seed method
            if 'fields' in kwargs and isinstance(kwargs['fields'], dict):
                kwargs['fields'] = {**kwargs['fields'], **self.overrides}
            else:
                kwargs['fields'] = self.overrides

            return attr(*args, **kwargs)

        return wrapper
    return attr

filter

Source code in django_spire/contrib/seeding/field/override.py
def filter(self, **kwargs):
    self.overrides.update(kwargs)
    return self

seed

Source code in django_spire/contrib/seeding/field/override.py
def seed(self, count=1):
    return self.seeder_class.seed(count=count, fields=self.overrides)