[](https://badge.fury.io/gh/awmath%2Fdjango-bulk-signals)
[](https://badge.fury.io/py/django-bulk-signals)

[](https://www.codefactor.io/repository/github/awmath/django-bulk-signals)
[](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": "[](https://badge.fury.io/gh/awmath%2Fdjango-bulk-signals)\n[](https://badge.fury.io/py/django-bulk-signals)\n\n\n[](https://www.codefactor.io/repository/github/awmath/django-bulk-signals)\n[](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"
}