django-bulk-signals


Namedjango-bulk-signals JSON
Version 0.4.2 PyPI version JSON
download
home_pagehttps://github.com/awmath/django-bulk-signals
SummaryA product aggregation function to a postgres database and makes it available with django
upload_time2024-01-23 13:49:17
maintainer
docs_urlNone
authorAxel Wegener
requires_python>=3
licenseMIT
keywords django
VCS
bugtrack_url
requirements black coverage django django-environ isort pytest pytest-cov pytest-django pytest-mock pre-commit
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![GitHub version](https://badge.fury.io/gh/awmath%2Fdjango-bulk-signals.svg)](https://badge.fury.io/gh/awmath%2Fdjango-bulk-signals)
[![PyPI version](https://badge.fury.io/py/django-bulk-signals.svg)](https://badge.fury.io/py/django-bulk-signals)

![Testing](https://github.com/awmath/django-bulk-signals/actions/workflows/ci.yaml/badge.svg)
[![CodeFactor](https://www.codefactor.io/repository/github/awmath/django-bulk-signals/badge)](https://www.codefactor.io/repository/github/awmath/django-bulk-signals)
[![codecov](https://codecov.io/gh/awmath/django-bulk-signals/branch/main/graph/badge.svg?token=aaYFGNAvqM)](https://codecov.io/gh/awmath/django-bulk-signals)

# Summary
This django library adds signals for the bulk database actions provided by django (`bulk_create`, `bulk_update` and `QuerySet.update`)

# usage
Add app to settings
```
INSTALLED_APPS = [
    ...,
    bulk_signals,
    ...
]
```
Import signals and connect.The signals are connected the same way as in Django itself.
To see them in action use the following snippet:
```
from django.dispatch import receiver
from bulk_signals import signals

@receiver(signals.pre_bulk_update, signals.post_bulk_update, signals.post_query_update)
def debug(*args, **kwargs):
    print(args)
    print(kwargs)
```

You can skip the signals on a single execution by using the `skip_signal=True` keyword argument.
Which keyword should be used for skipping is configurable via the `BULK_SIGNALS_SKIP_KEY="skip_signal"` configuration in the django settings.

# TODO
-  test against different database backends

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/awmath/django-bulk-signals",
    "name": "django-bulk-signals",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3",
    "maintainer_email": "",
    "keywords": "django",
    "author": "Axel Wegener",
    "author_email": "pypi@sparse-space.de",
    "download_url": "https://files.pythonhosted.org/packages/29/25/e8b409953753e88b7c6bf1796fb652a6858c4dbd1ef9fdfe1652572e8d78/django-bulk-signals-0.4.2.tar.gz",
    "platform": null,
    "description": "[![GitHub version](https://badge.fury.io/gh/awmath%2Fdjango-bulk-signals.svg)](https://badge.fury.io/gh/awmath%2Fdjango-bulk-signals)\n[![PyPI version](https://badge.fury.io/py/django-bulk-signals.svg)](https://badge.fury.io/py/django-bulk-signals)\n\n![Testing](https://github.com/awmath/django-bulk-signals/actions/workflows/ci.yaml/badge.svg)\n[![CodeFactor](https://www.codefactor.io/repository/github/awmath/django-bulk-signals/badge)](https://www.codefactor.io/repository/github/awmath/django-bulk-signals)\n[![codecov](https://codecov.io/gh/awmath/django-bulk-signals/branch/main/graph/badge.svg?token=aaYFGNAvqM)](https://codecov.io/gh/awmath/django-bulk-signals)\n\n# Summary\nThis django library adds signals for the bulk database actions provided by django (`bulk_create`, `bulk_update` and `QuerySet.update`)\n\n# usage\nAdd app to settings\n```\nINSTALLED_APPS = [\n    ...,\n    bulk_signals,\n    ...\n]\n```\nImport signals and connect.The signals are connected the same way as in Django itself.\nTo see them in action use the following snippet:\n```\nfrom django.dispatch import receiver\nfrom bulk_signals import signals\n\n@receiver(signals.pre_bulk_update, signals.post_bulk_update, signals.post_query_update)\ndef debug(*args, **kwargs):\n    print(args)\n    print(kwargs)\n```\n\nYou can skip the signals on a single execution by using the `skip_signal=True` keyword argument.\nWhich keyword should be used for skipping is configurable via the `BULK_SIGNALS_SKIP_KEY=\"skip_signal\"` configuration in the django settings.\n\n# TODO\n-  test against different database backends\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A product aggregation function to a postgres database and makes it available with django",
    "version": "0.4.2",
    "project_urls": {
        "Download": "https://github.com/awmath/django-bulk-signals",
        "Homepage": "https://github.com/awmath/django-bulk-signals"
    },
    "split_keywords": [
        "django"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c2ce67c633a166a769b9a0750e828de3b04457d98739cf66a5726c4c05148d48",
                "md5": "9aec5a12dd364a7dc96f7e6f51069bc4",
                "sha256": "7f8ef844b0d8714de11912160bcf03d66e5361afe560bb43c92f7aabbe733f32"
            },
            "downloads": -1,
            "filename": "django_bulk_signals-0.4.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9aec5a12dd364a7dc96f7e6f51069bc4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3",
            "size": 8054,
            "upload_time": "2024-01-23T13:49:15",
            "upload_time_iso_8601": "2024-01-23T13:49:15.583015Z",
            "url": "https://files.pythonhosted.org/packages/c2/ce/67c633a166a769b9a0750e828de3b04457d98739cf66a5726c4c05148d48/django_bulk_signals-0.4.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2925e8b409953753e88b7c6bf1796fb652a6858c4dbd1ef9fdfe1652572e8d78",
                "md5": "70e3e4f2f19174f02ca8ec7fd829544c",
                "sha256": "a94a57858c4dacf479b72dbbde256e49f1316b0f41ba75c888a687e32140574d"
            },
            "downloads": -1,
            "filename": "django-bulk-signals-0.4.2.tar.gz",
            "has_sig": false,
            "md5_digest": "70e3e4f2f19174f02ca8ec7fd829544c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3",
            "size": 9315,
            "upload_time": "2024-01-23T13:49:17",
            "upload_time_iso_8601": "2024-01-23T13:49:17.886094Z",
            "url": "https://files.pythonhosted.org/packages/29/25/e8b409953753e88b7c6bf1796fb652a6858c4dbd1ef9fdfe1652572e8d78/django-bulk-signals-0.4.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-23 13:49:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "awmath",
    "github_project": "django-bulk-signals",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "black",
            "specs": []
        },
        {
            "name": "coverage",
            "specs": []
        },
        {
            "name": "django",
            "specs": []
        },
        {
            "name": "django-environ",
            "specs": []
        },
        {
            "name": "isort",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "pytest-cov",
            "specs": []
        },
        {
            "name": "pytest-django",
            "specs": []
        },
        {
            "name": "pytest-mock",
            "specs": []
        },
        {
            "name": "pre-commit",
            "specs": []
        }
    ],
    "lcname": "django-bulk-signals"
}
        
Elapsed time: 0.18483s