Source code for eventsourcing.infrastructure.django.factory

from eventsourcing.infrastructure.django.manager import DjangoRecordManager
from eventsourcing.infrastructure.factory import InfrastructureFactory


[docs]class DjangoInfrastructureFactory(InfrastructureFactory): """ Infrastructure factory for Django. """ record_manager_class = DjangoRecordManager tracking_record_class = None
[docs] def __init__(self, tracking_record_class=None, *args, **kwargs): super(DjangoInfrastructureFactory, self).__init__(*args, **kwargs) self._tracking_record_class = tracking_record_class
@property def integer_sequenced_record_class(self): from eventsourcing.infrastructure.django.models import IntegerSequencedRecord return IntegerSequencedRecord @property def timestamp_sequenced_record_class(self): from eventsourcing.infrastructure.django.models import TimestampSequencedRecord return TimestampSequencedRecord @property def snapshot_record_class(self): from eventsourcing.infrastructure.django.models import SnapshotRecord return SnapshotRecord
[docs] def construct_integer_sequenced_record_manager(self, **kwargs): """ Constructs Django record manager. :return: A Django record manager. :rtype: DjangoRecordManager """ tracking_record_class = self._tracking_record_class or self.tracking_record_class return super(DjangoInfrastructureFactory, self).construct_integer_sequenced_record_manager( tracking_record_class=tracking_record_class, **kwargs )