{ "info": { "author": "pik-software", "author_email": "no-reply@pik-software.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Build Tools" ], "description": "# pik-django-utils #\n\nThis project aim is to provide common django project utils and tools\nfor all PIK django projects.\n\nIt should provide guidance and tool recommendations for documentation,\ntesting, etc.\n\nThis project is a part of `django-service-boilerplate`.\n\n## Versioning ##\n\nWe use semantic versioning MAJOR.MINOR.MAINTENANCE scheme, where the project author increments:\n\n - MAJOR version when they make incompatible API changes,\n - MINOR version when they add functionality in a backwards-compatible manner, and\n - MAINTENANCE version when they make backwards-compatible bug fixes.\n\n# PACKAGES #\n\n - `pik.core` - Django specific staff\n - `pik.libs` - Django specific modules and libraries\n - `pik.utils` - not Django specific small utils and goodness\n\n## pik.core ##\n\n - `pik.core.models` - Abstract Django models for common use cases\n - `pik.core.models.fields` - common model fields\n - `pik.core.tests` - Testing helpers\n - `pik.core.shortcuts` - Django code shortcuts and missed helpers\n - `pik.core.cache` - Cache helpers\n\n### pik.core.models ###\n\n - `BasePHistorical` / `BaseHistorical` - Base Historical Entity models\n - `NullOwned` / `Owned` - Models for user relation\n - `SoftDeleted` - Soft deletable model\n\n### pik.core.models.fields ###\n\n - `InheritPrimaryUidField` - Allows you to save the same UID Identifier for child table in inherited tables as in parent table\n\n### pik.core.tests ###\n\n - `create_user` / `get_user` - user fixtures\n\n### pik.core.shortcuts ###\n\n - `get_object_or_none(model: Type[models.Model], **search_keys) -> Optional[models.Model]`\n - `validate_and_create_object(model: Type[models.Model], **kwargs) -> models.Model`\n - `validate_and_update_object(obj: models.Model, **kwargs) -> Tuple[models.Model, bool]`\n - `update_or_create_object(model: Type[models.Model], search_keys: Optional[dict] = None, **kwargs) -> Tuple[models.Model, bool, bool]`\n - `get_current_request() -> Optional[HttpRequest]`\n\n## pik.libs ##\n\n...\n\n## pik.utils ##\n\n - `pik.utils.normalization` - text normalization helpers\n\n### pik.utils.normalization ###\n\n - `normalize(text: str) -> str`\n - `company_name_normalization(name: str) -> str`\n\n---\n\n - [x] Follow https://packaging.python.org/\n - [x] Create `release.sh` file\n - [ ] Generate Django common settings", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pik-software/pik-django-utils", "keywords": "pik django", "license": "", "maintainer": "", "maintainer_email": "", "name": "pik-django-utils", "package_url": "https://pypi.org/project/pik-django-utils/", "platform": "", "project_url": "https://pypi.org/project/pik-django-utils/", "project_urls": { "Bug Reports": "https://github.com/pik-software/pik-django-utils/issues", "Funding": "https://github.com/pik-software/pik-django-utils", "Homepage": "https://github.com/pik-software/pik-django-utils", "Say Thanks!": "https://saythanks.io/to/pik_software", "Source": "https://github.com/pik-software/pik-django-utils" }, "release_url": "https://pypi.org/project/pik-django-utils/2.0.2/", "requires_dist": null, "requires_python": "~=3.6", "summary": "Common PIK Django utils and tools", "version": "2.0.2" }, "last_serial": 5950630, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "ec0a00f36ab89260e3920de921a793d1", "sha256": "12f31c9e9e22e18e9e3d604ccd1c3c30f6efd367c95b92aa365597746631f275" }, "downloads": -1, "filename": "pik-django-utils-1.0.0.tar.gz", "has_sig": false, "md5_digest": "ec0a00f36ab89260e3920de921a793d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3226, "upload_time": "2018-04-01T11:44:56", "url": "https://files.pythonhosted.org/packages/5b/19/81fefe8dd15207de6982e4dded24c507c062933b3e1e55860f02891b2437/pik-django-utils-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "7a847d2da4b769695d27d61bd47dd9e0", "sha256": "48558b379d88051e741cac4449ea9d2f20c138feab05c24c947d7b43d87306f9" }, "downloads": -1, "filename": "pik-django-utils-1.0.1.tar.gz", "has_sig": false, "md5_digest": "7a847d2da4b769695d27d61bd47dd9e0", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 4467, "upload_time": "2018-04-02T00:45:28", "url": "https://files.pythonhosted.org/packages/25/1b/f268b4c5638db1f9ab2c1e4d78a89f953e61572f8cc16da0eb3fa04c0ba0/pik-django-utils-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "321986392b81ef792586abef8a342946", "sha256": "09822c55bf517001ddd7b2d60ecbca445b4b1625bd039c37c95dbc5259810bf5" }, "downloads": -1, "filename": "pik-django-utils-1.0.10.tar.gz", "has_sig": false, "md5_digest": "321986392b81ef792586abef8a342946", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 22041, "upload_time": "2018-10-11T17:15:22", "url": "https://files.pythonhosted.org/packages/0c/6b/7fe77ac62af82b9f0030b388f228f90b6169b14ac7c11c1d915ca8b401e7/pik-django-utils-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "9e3a593f5b84e39297ec3cb93e643264", "sha256": "e42fcb0b2c8bd290ab5f6e432578e7ce23293f52cac5c52b88d7d6ccdd44ab62" }, "downloads": -1, "filename": "pik-django-utils-1.0.11.tar.gz", "has_sig": false, "md5_digest": "9e3a593f5b84e39297ec3cb93e643264", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 22090, "upload_time": "2018-10-26T09:56:05", "url": "https://files.pythonhosted.org/packages/ea/5f/9e5899c0e34a0798d193d9fdfb833cc822b85eb69c708521fee62759763f/pik-django-utils-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "64b4409ee3f50a66be065a58b04b0bc9", "sha256": "52398386cdf16b8baac9a83ce2649beff22dac9882d4a2d4ac531b26358b1693" }, "downloads": -1, "filename": "pik-django-utils-1.0.12.tar.gz", "has_sig": false, "md5_digest": "64b4409ee3f50a66be065a58b04b0bc9", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 22128, "upload_time": "2018-10-31T08:02:52", "url": "https://files.pythonhosted.org/packages/c5/67/0ad3698faa11d3b8cb53c567193fb9cac508771e45dc0780956e1aa6d1f8/pik-django-utils-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "e22827018b198792720f652ebd72f12e", "sha256": "b3244f5b307cd3bff2bad97195442ff902801e20971aab70f9a7e96be6b7e766" }, "downloads": -1, "filename": "pik-django-utils-1.0.13.tar.gz", "has_sig": false, "md5_digest": "e22827018b198792720f652ebd72f12e", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 22196, "upload_time": "2018-11-12T16:17:57", "url": "https://files.pythonhosted.org/packages/11/38/9d687d0e0a524c1e2110843ddf41fa938f3c01eff65db2b23195300aae76/pik-django-utils-1.0.13.tar.gz" } ], "1.0.14": [ { "comment_text": "", "digests": { "md5": "357d727299b4a174f2db40557c0ae564", "sha256": "95ce58352b5b820c2a76a8dab828aecc5f9f3010c1888521cb82ae8b7ae10be6" }, "downloads": -1, "filename": "pik-django-utils-1.0.14.tar.gz", "has_sig": false, "md5_digest": "357d727299b4a174f2db40557c0ae564", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 22250, "upload_time": "2018-12-30T21:37:30", "url": "https://files.pythonhosted.org/packages/5d/a7/27e7d11d8ecd4a165f7797e6423998bab96c72cf60c039767fe56723b091/pik-django-utils-1.0.14.tar.gz" } ], "1.0.15": [ { "comment_text": "", "digests": { "md5": "3bf495b62d57003016bc592e0c74fc07", "sha256": "aa96f759533a552e4f8db0ecf05075df35d7c5dfe21aac7bdcf2109da81c1df3" }, "downloads": -1, "filename": "pik-django-utils-1.0.15.tar.gz", "has_sig": false, "md5_digest": "3bf495b62d57003016bc592e0c74fc07", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 23899, "upload_time": "2019-01-23T18:11:05", "url": "https://files.pythonhosted.org/packages/66/67/a121f6de0fbcae8153429adac73714eecc1b94aec09690aa5c8a9b1d956b/pik-django-utils-1.0.15.tar.gz" } ], "1.0.16": [ { "comment_text": "", "digests": { "md5": "be20a5803abdf80a5ff7b1326886aa9a", "sha256": "293dbc60719eeafd8a79975a02327db5c0c99447a729c6c40f2014569247cb59" }, "downloads": -1, "filename": "pik-django-utils-1.0.16.tar.gz", "has_sig": false, "md5_digest": "be20a5803abdf80a5ff7b1326886aa9a", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 23950, "upload_time": "2019-04-04T07:47:27", "url": "https://files.pythonhosted.org/packages/a9/93/26576be5d5cd3d3d1c32ca3c2f7d68810047eab767992199ed3175bb6ca4/pik-django-utils-1.0.16.tar.gz" } ], "1.0.17": [ { "comment_text": "", "digests": { "md5": "e305a20ca0ac3901266a9dd661b3495f", "sha256": "143b9cd3fcdf7744ba817178ef74313b825de2a4e7157c328a1b973d471c18e4" }, "downloads": -1, "filename": "pik-django-utils-1.0.17.tar.gz", "has_sig": false, "md5_digest": "e305a20ca0ac3901266a9dd661b3495f", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 24250, "upload_time": "2019-04-23T13:13:49", "url": "https://files.pythonhosted.org/packages/4c/e1/f5458269307b20a578674bcb17ff877a961dfc6af9fc8744f1df50eee409/pik-django-utils-1.0.17.tar.gz" } ], "1.0.18": [ { "comment_text": "", "digests": { "md5": "e45235ff54452c0b4ab57d60c4fcbe1c", "sha256": "8a97e4d228b256da2d40cb2adb89bacf81e79b7e1c09b3c540d71fad9ff91ff4" }, "downloads": -1, "filename": "pik-django-utils-1.0.18.tar.gz", "has_sig": false, "md5_digest": "e45235ff54452c0b4ab57d60c4fcbe1c", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 23594, "upload_time": "2019-05-15T07:51:35", "url": "https://files.pythonhosted.org/packages/98/c5/d54b79ed179d513aa6c2dd71cd0e6fdb955f8796e0deaf5bf11d4f4fec05/pik-django-utils-1.0.18.tar.gz" } ], "1.0.19": [ { "comment_text": "", "digests": { "md5": "e61e194bfdd041770c7cb8c929f6408a", "sha256": "ada5e619d6092811fcefdd44ea6c22f664167a1aaaeaa022975f32a554e7bbcf" }, "downloads": -1, "filename": "pik-django-utils-1.0.19.tar.gz", "has_sig": false, "md5_digest": "e61e194bfdd041770c7cb8c929f6408a", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 23764, "upload_time": "2019-05-21T10:41:09", "url": "https://files.pythonhosted.org/packages/a9/95/a156602058a6fe54e5eefc8452ca2dbffc4343c26a8967cc0fb9835601fc/pik-django-utils-1.0.19.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "675cbbdc0fd387bf50050bc2c77e2d69", "sha256": "f4f532768001fba9a5cc868a4c538cffa8676e5e26559b07c52a4976130667f9" }, "downloads": -1, "filename": "pik-django-utils-1.0.2.tar.gz", "has_sig": false, "md5_digest": "675cbbdc0fd387bf50050bc2c77e2d69", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 4460, "upload_time": "2018-04-02T00:47:40", "url": "https://files.pythonhosted.org/packages/f3/1e/af16365b328837b617b469b427724b0148b5c741b3679c5065fe449b877d/pik-django-utils-1.0.2.tar.gz" } ], "1.0.20": [ { "comment_text": "", "digests": { "md5": "c3fe9dd3ce0aaf5c26c4913a92309a31", "sha256": "c7530cc1794bd8f1fedaa6c25c96381f025f388911e89e1fa98f1d3c906d0df2" }, "downloads": -1, "filename": "pik-django-utils-1.0.20.tar.gz", "has_sig": false, "md5_digest": "c3fe9dd3ce0aaf5c26c4913a92309a31", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25812, "upload_time": "2019-07-01T11:01:07", "url": "https://files.pythonhosted.org/packages/fc/f6/172a7ff99abf09fcfd6ba0338bba1f5fc5bb80d7d52ab3e53db1e3854533/pik-django-utils-1.0.20.tar.gz" } ], "1.0.21": [ { "comment_text": "", "digests": { "md5": "3c29244aacad14d4bd781b002f3e5bca", "sha256": "3366b62cd61d8844cfa83d2ef4c9bfd01a7e7298fc03471d7791466ed5c3342a" }, "downloads": -1, "filename": "pik-django-utils-1.0.21.tar.gz", "has_sig": false, "md5_digest": "3c29244aacad14d4bd781b002f3e5bca", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25263, "upload_time": "2019-07-04T10:55:15", "url": "https://files.pythonhosted.org/packages/fc/82/7f9425fd2e25a55a1f478a0f136eac854d5df1deb44e5badd3d7e6fdb17c/pik-django-utils-1.0.21.tar.gz" } ], "1.0.22": [ { "comment_text": "", "digests": { "md5": "5f7c64f3a68fdc14a6ad95af60e82318", "sha256": "8b53204f6186bfea748fddcba54b19e9a9b206b5521c8d520ca2594afafaa1fe" }, "downloads": -1, "filename": "pik-django-utils-1.0.22.tar.gz", "has_sig": false, "md5_digest": "5f7c64f3a68fdc14a6ad95af60e82318", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25457, "upload_time": "2019-07-15T11:39:10", "url": "https://files.pythonhosted.org/packages/52/64/416e7bd9d413b51e30f23a9459bc643b294640ceff24b61955aa85253ce8/pik-django-utils-1.0.22.tar.gz" } ], "1.0.23": [ { "comment_text": "", "digests": { "md5": "5aae0dd87c1fdb31063381222c82e39f", "sha256": "fc82bc2421938a4604416292d91c2f23bf3e0fab83acb55b5d74d9a27b0f628f" }, "downloads": -1, "filename": "pik-django-utils-1.0.23.tar.gz", "has_sig": false, "md5_digest": "5aae0dd87c1fdb31063381222c82e39f", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25570, "upload_time": "2019-07-18T10:14:31", "url": "https://files.pythonhosted.org/packages/06/95/6186d0dafe1670ad75e5b76f1abf51d4c8c8ea8fc93e6f04c7bd8ae70ce5/pik-django-utils-1.0.23.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "60ac95c4f9927716067151ddd451895d", "sha256": "750ba3ea35ad5e1b86e4c41f1866503525e0c431a417e79a515e4aed983e60c5" }, "downloads": -1, "filename": "pik-django-utils-1.0.3.tar.gz", "has_sig": false, "md5_digest": "60ac95c4f9927716067151ddd451895d", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 4552, "upload_time": "2018-04-07T11:05:10", "url": "https://files.pythonhosted.org/packages/cd/4a/4b422eaa10e8825ca17e90ffeba030a52f2d944aa25ce3183223d94e432f/pik-django-utils-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "192a7ff2e5e1ec21dc707c9fc7f9d6dd", "sha256": "cecde44810f665707de5b6cc39408beff318c76934119b6ffb41890b6900bd1e" }, "downloads": -1, "filename": "pik-django-utils-1.0.4.tar.gz", "has_sig": false, "md5_digest": "192a7ff2e5e1ec21dc707c9fc7f9d6dd", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 20120, "upload_time": "2018-05-27T07:36:56", "url": "https://files.pythonhosted.org/packages/14/55/3d92eeb058da25ec60afec55201715dde4e5fcbc2a6ef99e1b30c0ca02b4/pik-django-utils-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "bea633e964f428bbe801f0029c0fe808", "sha256": "98ef89df57e070fbf264ae7a0ecaba629d4904861d9679b99fc4362edfaa0738" }, "downloads": -1, "filename": "pik-django-utils-1.0.5.tar.gz", "has_sig": false, "md5_digest": "bea633e964f428bbe801f0029c0fe808", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 21613, "upload_time": "2018-05-28T20:13:06", "url": "https://files.pythonhosted.org/packages/45/fe/b8042c19063f7756ff66f613bebe4164afc90aa84e76aed93bfdb59b6e8c/pik-django-utils-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "26e27da2ce926000b06dfbf5230a6a1a", "sha256": "fba61807011bfb5c2594b42160cce280fa635efdfe33ddfa5a15717188eadca4" }, "downloads": -1, "filename": "pik-django-utils-1.0.6.tar.gz", "has_sig": false, "md5_digest": "26e27da2ce926000b06dfbf5230a6a1a", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 21626, "upload_time": "2018-07-26T13:05:44", "url": "https://files.pythonhosted.org/packages/58/a9/8e925af0d168ba1d80f28421b09cff69a96cdec690278655e0c7f027acfc/pik-django-utils-1.0.6.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "0ebe5b45007735c228cd7e2915313926", "sha256": "1902deabe98e2c8aaf71cd76bd9c6d6f5ecc3ea293eefaefe4cfe17da7454a6f" }, "downloads": -1, "filename": "pik-django-utils-1.0.8.tar.gz", "has_sig": false, "md5_digest": "0ebe5b45007735c228cd7e2915313926", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 21621, "upload_time": "2018-08-16T08:25:34", "url": "https://files.pythonhosted.org/packages/ba/c2/b69233337f02db88e0e78ed61f426d9d9039723bd1bdfaf42f07b5065ce7/pik-django-utils-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "2a3e492dc4cc3cd485b05fcf6a1f0853", "sha256": "f634a9c9dacb33a8dd5aca5f855315f44710031b8d103c9cc5e76ada126ec6ae" }, "downloads": -1, "filename": "pik-django-utils-1.0.9.tar.gz", "has_sig": false, "md5_digest": "2a3e492dc4cc3cd485b05fcf6a1f0853", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 21889, "upload_time": "2018-10-08T15:39:25", "url": "https://files.pythonhosted.org/packages/c8/3b/fe0764521559052f36f3bd01d09e3b120858ebf28cf8549f3d92017cef0e/pik-django-utils-1.0.9.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "21fd9e466958468fdb2b3a601ee2c08d", "sha256": "50cb76567d051ad64bef14b085c1559b5f1a967608dc0295468fc0e482205855" }, "downloads": -1, "filename": "pik-django-utils-2.0.0.tar.gz", "has_sig": false, "md5_digest": "21fd9e466958468fdb2b3a601ee2c08d", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 26610, "upload_time": "2019-09-29T11:36:53", "url": "https://files.pythonhosted.org/packages/aa/0c/5a300dbfbe1b10bc38bbe9c2d246e1e3529a018c8b2f722df8a793abf950/pik-django-utils-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "c5837afc4619a5b8fc697e3cc0d4204c", "sha256": "900ade82963bfe4d965cc33355dd0f548ec13ff954f42d14e1c60009adb19ee4" }, "downloads": -1, "filename": "pik-django-utils-2.0.1.tar.gz", "has_sig": false, "md5_digest": "c5837afc4619a5b8fc697e3cc0d4204c", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 26630, "upload_time": "2019-09-29T11:55:18", "url": "https://files.pythonhosted.org/packages/2a/83/102245dd1c6753936781fabdc846ec3498f06986756624ccd907bc0dae1d/pik-django-utils-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "c7e9e27ae5db9569e5cf7219a907ba57", "sha256": "a5ca8300f70aff70f4b856ba1daa18237f11e1ff64b1f9d25e5f539411a13bc6" }, "downloads": -1, "filename": "pik-django-utils-2.0.2.tar.gz", "has_sig": false, "md5_digest": "c7e9e27ae5db9569e5cf7219a907ba57", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25820, "upload_time": "2019-10-09T15:49:02", "url": "https://files.pythonhosted.org/packages/67/88/76ce0b21186f39cafada5fc37cc7b50f45b8ef9bb0d8601b9c7a475cbfbb/pik-django-utils-2.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c7e9e27ae5db9569e5cf7219a907ba57", "sha256": "a5ca8300f70aff70f4b856ba1daa18237f11e1ff64b1f9d25e5f539411a13bc6" }, "downloads": -1, "filename": "pik-django-utils-2.0.2.tar.gz", "has_sig": false, "md5_digest": "c7e9e27ae5db9569e5cf7219a907ba57", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25820, "upload_time": "2019-10-09T15:49:02", "url": "https://files.pythonhosted.org/packages/67/88/76ce0b21186f39cafada5fc37cc7b50f45b8ef9bb0d8601b9c7a475cbfbb/pik-django-utils-2.0.2.tar.gz" } ] }