model_subscription.constants module

class model_subscription.constants.OperationType

Bases: str, enum.Enum

Operation Types.

BULK_CREATE = 'bulk_create'
BULK_DELETE = 'bulk_delete'
BULK_UPDATE = 'bulk_update'
CREATE = 'create'
DELETE = 'delete'
UPDATE = 'update'

model_subscription.decorators module

model_subscription.decorators.subscribe(operation, model)
model_subscription.decorators.create_subscription(model)
model_subscription.decorators.bulk_create_subscription(model)
model_subscription.decorators.update_subscription(model)
model_subscription.decorators.delete_subscription(model)
model_subscription.decorators.unsubscribe(operation, model, func=None)
model_subscription.decorators.unsubscribe_create(model, func=None)
model_subscription.decorators.unsubscribe_bulk_create(model, func=None)
model_subscription.decorators.unsubscribe_update(model, func=None)
model_subscription.decorators.unsubscribe_delete(model, func=None)
model_subscription.decorators.create_external_subscription(model)
model_subscription.decorators.bulk_create_external_subscription(model)
model_subscription.decorators.update_external_subscription(model)
model_subscription.decorators.bulk_update_external_subscription(model)
model_subscription.decorators.delete_external_subscription(model)
model_subscription.decorators.bulk_delete_external_subscription(model)

model_subscription.mixin module

class model_subscription.mixin.SubscriptionMeta

Bases: django.db.models.base.ModelBase

The Singleton base metaclass.

class model_subscription.mixin.SubscriptionModelMixin(*args, **kwargs)

Bases: django_lifecycle.mixins.LifecycleModelMixin

classmethod notify_bulk_create(objs)
classmethod notify_bulk_delete(objs)
classmethod notify_bulk_update(objs)
notify_create()
notify_delete()
notify_update()

model_subscription.models module

class model_subscription.models.SubscriptionModel(*args, **kwargs)

Bases: model_subscription.mixin.SubscriptionModelMixin, django.db.models.base.Model

class Meta

Bases: object

abstract = False
objects
class model_subscription.models.SubscriptionQuerySet(model=None, query=None, using=None, hints=None)

Bases: django.db.models.query.QuerySet

bulk_create(*args, **kwargs)

Insert each of the instances into the database. Do not call save() on each of the instances, do not send any pre/post_save signals, and do not set the primary key attribute if it is an autoincrement field (except if features.can_return_rows_from_bulk_insert=True). Multi-table models are not supported.

delete()

Delete the records in the current QuerySet.

update(**kwargs)

Update all elements in the current QuerySet, setting all the given fields to the appropriate values.

model_subscription.observers module

class model_subscription.observers.BulkCreateObserver

Bases: model_subscription.observers.BulkObserverMixin, model_subscription.observers.Observer

action = 'bulk_create'
class model_subscription.observers.BulkDeleteObserver

Bases: model_subscription.observers.BulkObserverMixin, model_subscription.observers.Observer

action = 'bulk_delete'
class model_subscription.observers.BulkObserverMixin

Bases: object

handle(instances)
class model_subscription.observers.BulkUpdateObserver

Bases: model_subscription.observers.BulkObserverMixin, model_subscription.observers.Observer

action = 'bulk_update'
class model_subscription.observers.CreateObserver

Bases: model_subscription.observers.Observer

action = 'create'
handle(instance, changed_data=None)

Receive update from subject.

class model_subscription.observers.DeleteObserver

Bases: model_subscription.observers.Observer

action = 'delete'
handle(instance, changed_data=None)

Receive update from subject.

class model_subscription.observers.Observer

Bases: abc.ABC

The Observer interface declares the update method.

action
handle(instance, changed_data=None)

Receive update from subject.

receivers
class model_subscription.observers.UpdateObserver

Bases: model_subscription.observers.Observer

action = 'update'
handle(instance, changed_data=None)

Receive update from subject.

model_subscription.subscriber module

class model_subscription.subscriber.BaseSubscription

Bases: abc.ABC

attach(operation_type, receiver)

Attach an observer.

detach(operation_type, receiver)

Detach an observer.

notify(operation_type, instance)

Notify all observers about an event.

notify_many(operation_type, objs)

Notify the observers of (bulk) actions.

class model_subscription.subscriber.ModelSubscription

Bases: model_subscription.subscriber.BaseSubscription

Notifies observers when the state changes.

attach(operation_type, receiver)

Attach an observer.

static auto_discover()
detach(operation_type, receiver)

Detach an observer.

notify(operation_type, instance)

Notify all observers about an event.

notify_many(operation_type, objs)

Notify the observers of (bulk) actions.

observers
subscription_model