Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.7, 3.8]
python-version: ['3.7', '3.8']
steps:
- name: Checkout
uses: actions/checkout@v2
Expand Down Expand Up @@ -73,7 +73,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.10.1]
python-version: ['3.10']
steps:
- name: Checkout
uses: actions/checkout@v2
Expand Down Expand Up @@ -105,10 +105,10 @@ jobs:
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Python '3.10.0'
- name: Set up Python '3.10'
uses: actions/setup-python@v2
with:
python-version: '3.10.0'
python-version: ['3.10']
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand Down Expand Up @@ -145,10 +145,10 @@ jobs:
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Python '3.10.0'
- name: Set up Python '3.10'
uses: actions/setup-python@v2
with:
python-version: '3.10.0'
python-version: ['3.10']
- name: Integration tests
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,10 @@ Development
===========

1. Python 3.7 +
0. Install dependencies `requirements/dev.txt`
2. Install dependencies `requirements/dev.txt`
3. We use `isort` library to order and format our imports, and we check it using `flake8-isort` library (automatically on `flake8` run).
For convenience you may run `isort .` to order imports.


Testing
=======
Expand Down
1 change: 1 addition & 0 deletions dj_cqrs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@

import django # pragma: no cover


if django.VERSION < (3, 2): # pragma: no cover
default_app_config = 'dj_cqrs.apps.CQRSConfig'
4 changes: 2 additions & 2 deletions dj_cqrs/_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import logging
from inspect import getfullargspec, isfunction

from django.utils.module_loading import import_string

from dj_cqrs.constants import (
DEFAULT_MASTER_AUTO_UPDATE_FIELDS,
DEFAULT_MASTER_MESSAGE_TTL,
Expand All @@ -13,8 +15,6 @@
from dj_cqrs.registries import MasterRegistry, ReplicaRegistry
from dj_cqrs.transport import BaseTransport

from django.utils.module_loading import import_string


logger = logging.getLogger('django-cqrs')

Expand Down
4 changes: 2 additions & 2 deletions dj_cqrs/apps.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Copyright © 2021 Ingram Micro Inc. All rights reserved.

from dj_cqrs._validation import validate_settings

from django.apps import AppConfig
from django.conf import settings

from dj_cqrs._validation import validate_settings


class CQRSConfig(AppConfig):
name = 'dj_cqrs'
Expand Down
4 changes: 2 additions & 2 deletions dj_cqrs/controller/consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
import logging
from contextlib import ExitStack

from django.db import Error, close_old_connections, transaction

from dj_cqrs.constants import SignalType
from dj_cqrs.registries import ReplicaRegistry

from django.db import Error, close_old_connections, transaction


logger = logging.getLogger('django-cqrs')

Expand Down
3 changes: 1 addition & 2 deletions dj_cqrs/dataclasses.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
# Copyright © 2022 Ingram Micro Inc. All rights reserved.

from dateutil.parser import parse as dateutil_parse
from django.utils import timezone

from dj_cqrs.correlation import get_correlation_id
from dj_cqrs.utils import get_json_valid_value, get_message_expiration_dt

from django.utils import timezone


class TransportPayload:
"""Transport message payload.
Expand Down
7 changes: 3 additions & 4 deletions dj_cqrs/management/commands/cqrs_bulk_dump.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,11 @@
import sys
import time

from dj_cqrs.management.utils import batch_qs
from dj_cqrs.registries import MasterRegistry

import ujson
from django.core.management.base import BaseCommand, CommandError

import ujson
from dj_cqrs.management.utils import batch_qs
from dj_cqrs.registries import MasterRegistry


class Command(BaseCommand):
Expand Down
5 changes: 2 additions & 3 deletions dj_cqrs/management/commands/cqrs_bulk_load.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
import os
import sys

from dj_cqrs.registries import ReplicaRegistry

import ujson
from django.core.management.base import BaseCommand, CommandError
from django.db import DatabaseError, transaction

import ujson
from dj_cqrs.registries import ReplicaRegistry


class Command(BaseCommand):
Expand Down
4 changes: 2 additions & 2 deletions dj_cqrs/management/commands/cqrs_consume.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
import multiprocessing
import signal

from django.core.management.base import BaseCommand, CommandError

from dj_cqrs.registries import ReplicaRegistry
from dj_cqrs.transport import current_transport

from django.core.management.base import BaseCommand, CommandError


class WorkersManager:

Expand Down
7 changes: 3 additions & 4 deletions dj_cqrs/management/commands/cqrs_dead_letters.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
# Copyright © 2022 Ingram Micro Inc. All rights reserved.

import ujson
from django.core.management.base import BaseCommand, CommandError

from dj_cqrs.constants import DEFAULT_MASTER_MESSAGE_TTL
from dj_cqrs.dataclasses import TransportPayload
from dj_cqrs.registries import ReplicaRegistry
from dj_cqrs.transport import current_transport
from dj_cqrs.transport.rabbit_mq import RabbitMQTransport
from dj_cqrs.utils import get_message_expiration_dt

from django.core.management.base import BaseCommand, CommandError

import ujson


class RabbitMQTransportService(RabbitMQTransport):

Expand Down
5 changes: 2 additions & 3 deletions dj_cqrs/management/commands/cqrs_deleted_diff_master.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@

import sys

from dj_cqrs.registries import MasterRegistry

import ujson
from django.core.management.base import BaseCommand, CommandError

import ujson
from dj_cqrs.registries import MasterRegistry


class Command(BaseCommand):
Expand Down
7 changes: 3 additions & 4 deletions dj_cqrs/management/commands/cqrs_deleted_diff_replica.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# Copyright © 2022 Ingram Micro Inc. All rights reserved.

from dj_cqrs.management.utils import batch_qs
from dj_cqrs.registries import ReplicaRegistry

import ujson
from django.core.exceptions import FieldError
from django.core.management.base import BaseCommand, CommandError
from django.utils.timezone import now

import ujson
from dj_cqrs.management.utils import batch_qs
from dj_cqrs.registries import ReplicaRegistry


class Command(BaseCommand):
Expand Down
5 changes: 2 additions & 3 deletions dj_cqrs/management/commands/cqrs_deleted_sync_replica.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@

import sys

from dj_cqrs.registries import ReplicaRegistry

import ujson
from django.core.management.base import BaseCommand, CommandError
from django.db import DatabaseError

import ujson
from dj_cqrs.registries import ReplicaRegistry


class Command(BaseCommand):
Expand Down
7 changes: 3 additions & 4 deletions dj_cqrs/management/commands/cqrs_diff_master.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# Copyright © 2022 Ingram Micro Inc. All rights reserved.

from dj_cqrs.management.utils import batch_qs
from dj_cqrs.registries import MasterRegistry

import ujson
from django.core.exceptions import FieldError
from django.core.management.base import BaseCommand, CommandError
from django.utils.timezone import now

import ujson
from dj_cqrs.management.utils import batch_qs
from dj_cqrs.registries import MasterRegistry


class Command(BaseCommand):
Expand Down
5 changes: 2 additions & 3 deletions dj_cqrs/management/commands/cqrs_diff_replica.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@

import sys

from dj_cqrs.registries import ReplicaRegistry

import ujson
from django.conf import settings
from django.core.management.base import BaseCommand, CommandError

import ujson
from dj_cqrs.registries import ReplicaRegistry


class Command(BaseCommand):
Expand Down
6 changes: 3 additions & 3 deletions dj_cqrs/management/commands/cqrs_diff_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

import sys

from django.core.management.base import BaseCommand, CommandError

from dj_cqrs.constants import NO_QUEUE
from dj_cqrs.management.commands.cqrs_sync import (
Command as SyncCommand,
DEFAULT_BATCH,
DEFAULT_PROGRESS,
Command as SyncCommand,
)
from dj_cqrs.registries import MasterRegistry

from django.core.management.base import BaseCommand, CommandError


class Command(BaseCommand):
help = 'Diff synchronizer from CQRS replica stream.'
Expand Down
7 changes: 3 additions & 4 deletions dj_cqrs/management/commands/cqrs_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,13 @@
import sys
import time

from dj_cqrs.management.utils import batch_qs
from dj_cqrs.registries import MasterRegistry

import ujson
from django.core.exceptions import FieldError
from django.core.management.base import BaseCommand, CommandError
from django.db import close_old_connections

import ujson
from dj_cqrs.management.utils import batch_qs
from dj_cqrs.registries import MasterRegistry


DEFAULT_BATCH = 10000
Expand Down
4 changes: 2 additions & 2 deletions dj_cqrs/managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

import logging

from dj_cqrs.constants import FIELDS_TRACKER_FIELD_NAME, TRACKED_FIELDS_ATTR_NAME

from django.core.exceptions import ValidationError
from django.db import Error, transaction
from django.db.models import F, Manager
from django.utils import timezone

from dj_cqrs.constants import FIELDS_TRACKER_FIELD_NAME, TRACKED_FIELDS_ATTR_NAME


logger = logging.getLogger('django-cqrs')

Expand Down
4 changes: 2 additions & 2 deletions dj_cqrs/metas.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Copyright © 2022 Ingram Micro Inc. All rights reserved.

from django.db.models import base

from dj_cqrs.constants import ALL_BASIC_FIELDS
from dj_cqrs.registries import MasterRegistry, ReplicaRegistry
from dj_cqrs.signals import MasterSignals
from dj_cqrs.tracker import CQRSTracker

from django.db.models import base


class MasterMeta(base.ModelBase):
def __new__(mcs, name, bases, attrs, **kwargs):
Expand Down
24 changes: 14 additions & 10 deletions dj_cqrs/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,25 @@

import logging

from dj_cqrs.constants import (
ALL_BASIC_FIELDS,
FIELDS_TRACKER_FIELD_NAME,
TRACKED_FIELDS_ATTR_NAME,
)
from dj_cqrs.managers import MasterManager, ReplicaManager
from dj_cqrs.metas import MasterMeta, ReplicaMeta
from dj_cqrs.signals import MasterSignals, post_bulk_create, post_update

from django.conf import settings
from django.db import router, transaction
from django.db.models import DateField, DateTimeField, F, IntegerField, Manager, Model, UUIDField
from django.db.models import (
DateField,
DateTimeField,
F,
IntegerField,
Manager,
Model,
UUIDField,
)
from django.db.models.expressions import CombinedExpression
from django.utils.module_loading import import_string

from dj_cqrs.constants import ALL_BASIC_FIELDS, FIELDS_TRACKER_FIELD_NAME, TRACKED_FIELDS_ATTR_NAME
from dj_cqrs.managers import MasterManager, ReplicaManager
from dj_cqrs.metas import MasterMeta, ReplicaMeta
from dj_cqrs.signals import MasterSignals, post_bulk_create, post_update


logger = logging.getLogger('django-cqrs')

Expand Down
1 change: 1 addition & 0 deletions dj_cqrs/registries.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

from django.conf import settings


logger = logging.getLogger('django-cqrs')


Expand Down
8 changes: 4 additions & 4 deletions dj_cqrs/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

import logging

from django.db import models, transaction
from django.dispatch import Signal
from django.utils.timezone import now

from dj_cqrs.constants import SignalType
from dj_cqrs.controller import producer
from dj_cqrs.dataclasses import TransportPayload
from dj_cqrs.utils import get_message_expiration_dt

from django.db import models, transaction
from django.dispatch import Signal
from django.utils.timezone import now


logger = logging.getLogger('django-cqrs')

Expand Down
Loading