{ "info": { "author": "Department for International Trade", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "Framework :: Django :: 3.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# directory-forms-api-client\n\n[![code-climate-image]][code-climate]\n[![circle-ci-image]][circle-ci]\n[![codecov-image]][codecov]\n[![pypi-image]][pypi]\n[![semver-image]][semver]\n\n**Directory forms API client for headless forms.**\n\n---\n\n## Requirements\n\n## Installation\n\n $ pip install directory_forms_api_client\n\n## Client Enrollment\nThe api client must be created in directory-forms-api's admin panel to access `DIRECTORY_FORMS_API_API_KEY` and `DIRECTORY_FORMS_API_SENER_ID`.\n\n\n\n## Usage\n\nThe api client must be passed into each form instance, so first set the the client settings:\n\n| Setting | Notes |\n| --------------------------------- | ----------------------------------------------------------- |\n| `DIRECTORY_FORMS_API_BASE_URL` | |\n| `DIRECTORY_FORMS_API_API_KEY` | Unique to client. Retrieved during the on-boarding process. |\n| `DIRECTORY_FORMS_API_SENDER_ID` | Unique to client. Retrieved during the on-boarding process. |\n| `DIRECTORY_FORMS_DEFAULT_TIMEOUT` | |\n\nThe following [directory client core settings](https://github.com/uktrade/directory-client-core) also apply to directory cms client:\n\n| Setting | Notes |\n| -----------------------------------------------------| ------------------------------------------------------|\n| `DIRECTORY_CLIENT_CORE_CACHE_EXPIRE_SECONDS` | Duration to store the retrieved content in the cache. | |\n| `DIRECTORY_CLIENT_CORE_CACHE_LOG_THROTTLING_SECONDS` | Duration to throttle log events for a given url for. |\n\nOnce that is done the forms can be used.\n\n### Submit to Zendesk\n\n```python\nfrom directory_forms_api_client import forms\n\n\nclass ZendeskForm(forms.ZendeskAPIForm):\n # note that the base form provides `requester_email` email field\n title = fields.CharField()\n\n\nform = ZendeskForm(data={\n 'name': 'Example Person',\n 'email': 'three@example.com'\n})\nassert form.is_valid()\nform.save(\n email_address=form.cleaned_data['email'],\n full_name='Example Person',\n subject='Bo in the house',\n service_name='Foo Bar',\n)\n```\n\n#### Different subdomain\n\nThe default behaviour of Forms API is to use the default configured zendesk subdomain when creating the tickets. To use a different subdomain, provide `subdomain`:\n\n```python\nform.save(\n email_address=form.cleaned_data['email'],\n full_name='Example Person',\n subject='Some ticket subject',\n subdomain='some-other-subdomain',\n)\n```\n\nNote that Forms API must first be configured to expect the provided subdomain.\n\n### Send as email\n\n#### Send to a user-submitted email address\n\n```python\nfrom directory_forms_api_client import forms\n\nclass EmailForm(forms.ZendeskAPIForm):\n title = fields.CharField()\n email = fields.EmailField()\n\n @property\n def text_body(self):\n ''' Override text_body to text templte of email body.'''\n text = []\n for key, value in self.cleaned_data.items():\n text.append(key)\n text.append(str(value))\n text.append('\\n')\n return ' '.join(text)\n\n @property\n def html_body(self):\n ''' Override html_body to return html template of email body.'''\n cleaned_html = []\n for key, value in self.cleaned_data.items():\n cleaned_html.append('
')\n cleaned_html.append(key)\n cleaned_html.append(':')\n cleaned_html.append(str(value))\n cleaned_html.append('
')\n return ''.join(cleaned_html)\n\n\nform = TestForm(data={'title': 'Example', 'email': 'a@foo.com'})\n\nassert form.is_valid()\nform.save(\n recipients=[form.cleaned_data['email']],\n subject='Some email subject',\n reply_to=['reply@example.com'],\n service_name='Foo Bar',\n form_url=self.request.get_full_path()\n)\n\n```\n\nYou can also use `EmailActionMixin` or `EmailAction` directly for more complex requirements. For e.g. When creating form when inheriting from another form or collecting data from multi-step forms (where any one form doesn't have the complete data).\nSee [here](https://github.com/uktrade/great-domestic-ui/blob/develop/contact/views.py#L268) for an example.\n\n\n#### Send to a pre-defined email address\n```python\nfrom directory_forms_api_client import forms\n\nclass EmailForm(forms.EmailAPIForm):\n title = fields.CharField()\n\n @property\n def text_body(self):\n ''' Override text_body to text templte of email body.'''\n\n text = 'title: ' + str(self.cleaned_data['title'])\n return text\n\n @property\n def html_body(self):\n ''' Override html_body to return html template of email body.'''\n\n cleaned_html = 'title: ' + str(self.cleaned_data['title']) + '
'\n return cleaned_html\n\nform = TestForm(data={'title': 'Example'})\n\nassert form.is_valid()\nform.save(submission_recipients=[settings.FEEDBACK_EMAIL_RECIPIENTS])\n\n```\n\n### Send via gov.uk Notify\n\n```python\nfrom directory_forms_api_client import forms\n\nclass GovNotifyForm(forms.GovNotifyAPIForm):\n title = fields.CharField()\n email = fields.EmailField()\n\nform = TestForm(data={'title': 'Example', 'email': 'a@foo.com'})\n\nassert form.is_valid()\nform.save(\n template_id='some-template-id-from-gov-notify',\n email_address=form.cleaned_data['email'],\n)\n```\n\n## Spam checking\n\nSpam checking can be activated by including a `spam_contol` object in the submission:\n\n```py\n from directory_forms_api_client import helpers\n\n spam_control = helpers.SpamControl(\n # data that is worth spam checking\n contents=[form.cleaned_data['comment']],\n )\n form.save(\n template_id=data['template_id'],\n email_address=data['email_address'],\n form_url='/the/form/',\n spam_control=spam_control,\n )\n```\n\nThis will result in the content being checked for spam before the submission is sent.\n\n## Senders\n\nReporting on the submissions of specific senders can be facilitated by including a `sender` object in the submission.\n\n```py\n from directory_forms_api_client import helpers\n\n sender = helpers.Sender(\n email_address=[form.cleaned_data['email_address']],\n country_code=forms.cleaned_data['country']\n )\n form.save(\n template_id=data['template_id'],\n email_address=data['email_address'],\n form_url='/the/form/',\n sender=sender,\n )\n```\n\nThis allows for country-specific data retention policies to be respected, and to improve spam control functionality.\n\n\n## Development\n\n $ git clone https://github.com/uktrade/directory-forms-api-client\n $ cd directory-forms-api-client\n # [create your virtual environment and activate it]\n $ pip install -e . # install the requirements defined in setup.py\n\n### Testing\n\n $ make test\n\n\n## Publish to PyPI\n\nThe package should be published to PyPI on merge to master. If you need to do it locally then get the credentials from rattic and add the environment variables to your host machine:\n\n| Setting |\n| ----------------------------- |\n| `DIRECTORY_PYPI_USERNAME` |\n| `DIRECTORY_PYPI_PASSWORD` |\n\nThen run the following command:\n\n $ make publish\n\n\n[code-climate-image]: https://codeclimate.com/github/uktrade/directory-forms-api-client/badges/issue_count.svg\n[code-climate]: https://codeclimate.com/github/uktrade/directory-forms-api-client\n\n[circle-ci-image]: https://circleci.com/gh/uktrade/directory-forms-api-client/tree/master.svg?style=svg\n[circle-ci]: https://circleci.com/gh/uktrade/directory-forms-api-client/tree/master\n\n[codecov-image]: https://codecov.io/gh/uktrade/directory-forms-api-client/branch/master/graph/badge.svg\n[codecov]: https://codecov.io/gh/uktrade/directory-forms-api-client\n\n[pypi-image]: https://badge.fury.io/py/directory-forms-api-client.svg\n[pypi]: https://badge.fury.io/py/directory-forms-api-client\n\n[semver-image]: https://img.shields.io/badge/Versioning%20strategy-SemVer-5FBB1C.svg\n[semver]: https://semver.org\n\n\n\n", "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/uktrade/directory-forms-api-client", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "directory-forms-api-client", "package_url": "https://pypi.org/project/directory-forms-api-client/", "platform": null, "project_url": "https://pypi.org/project/directory-forms-api-client/", "project_urls": { "Homepage": "https://github.com/uktrade/directory-forms-api-client" }, "release_url": "https://pypi.org/project/directory-forms-api-client/6.2.0/", "requires_dist": [ "directory-client-core (<7.0.0,>=6.1.0)", "codecov (==2.1.9) ; extra == 'test'", "django (<4.0.0,>=2.2.10) ; extra == 'test'", "flake8 (==3.8.3) ; extra == 'test'", "pytest-cov (==2.10.1) ; extra == 'test'", "pytest-django (==3.10.0) ; extra == 'test'", "pytest (==6.1.0) ; extra == 'test'", "requests (<3.0.0,>=2.22.0) ; extra == 'test'", "requests-mock (==1.8.0) ; extra == 'test'", "setuptools (<50.0.0,>=45.2.0) ; extra == 'test'", "twine (<4.0.0,>=3.1.1) ; extra == 'test'", "wheel (<1.0.0,>=0.34.2) ; extra == 'test'" ], "requires_python": "", "summary": "Python API client for Directory forms .", "version": "6.2.0", "yanked": false, "yanked_reason": null }, "last_serial": 13320501, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4ec09d17ebf132d480c78c9d19137b67", "sha256": "bce117a40a23329b51f0a3ba07cdc5b5be39dc298d029e4dfe958e63105a4f86" }, "downloads": -1, "filename": "directory_forms_api_client-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4ec09d17ebf132d480c78c9d19137b67", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6423, "upload_time": "2018-07-25T13:32:34", "upload_time_iso_8601": "2018-07-25T13:32:34.715994Z", "url": "https://files.pythonhosted.org/packages/27/54/4215301893015ae64aa0a846241af7741ed695bce7bea8ce3e4c7f5862e0/directory_forms_api_client-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "d394864e15dda927343f92f6b2b8691c", "sha256": "42a3cf989c41817797ddee717d4cc879083c45c7d6a0b857880b0057ab069d32" }, "downloads": -1, "filename": "directory_forms_api_client-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d394864e15dda927343f92f6b2b8691c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6485, "upload_time": "2018-07-27T14:05:18", "upload_time_iso_8601": "2018-07-27T14:05:18.519023Z", "url": "https://files.pythonhosted.org/packages/86/26/f17bfe8a5b0245fe7ed626e07bef7904d48c60b0d7df6ea70eeceb7d935d/directory_forms_api_client-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "1b748c90739124d3fa7fb21e7a6a4f5b", "sha256": "9173897043970abc2211400b259339ca7adb2280da8abbd4aafe89cb58c02148" }, "downloads": -1, "filename": "directory_forms_api_client-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1b748c90739124d3fa7fb21e7a6a4f5b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6737, "upload_time": "2018-08-01T14:46:42", "upload_time_iso_8601": "2018-08-01T14:46:42.987641Z", "url": "https://files.pythonhosted.org/packages/fa/18/64031ae159664d1e009d5d319675d3410642dded036a14f1a93a69f273e1/directory_forms_api_client-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "2c5ddb136ad35bbb1ca6d285dd17ea7c", "sha256": "088cff50c22139e0cfad1b98145f686bf24efe8860e9a1e48e57d60eb4f72656" }, "downloads": -1, "filename": "directory_forms_api_client-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2c5ddb136ad35bbb1ca6d285dd17ea7c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6915, "upload_time": "2018-08-06T08:04:25", "upload_time_iso_8601": "2018-08-06T08:04:25.728307Z", "url": "https://files.pythonhosted.org/packages/84/73/1407b5a6faca7e2bf340cfef720c334bcfc917e3513f150edc291880e162/directory_forms_api_client-2.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "4849ec270dec6f205166e3773cb6e35f", "sha256": "9158366ae023ba1808dda45af1a0365dd6b2811df1d4adf0838d4410ec70f043" }, "downloads": -1, "filename": "directory_forms_api_client-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4849ec270dec6f205166e3773cb6e35f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6921, "upload_time": "2018-08-07T13:00:47", "upload_time_iso_8601": "2018-08-07T13:00:47.129181Z", "url": "https://files.pythonhosted.org/packages/a1/b5/031ca1cb8dc46dd1e7e487bc47c3dedbf9bd3ce0203721efc4e2394d8420/directory_forms_api_client-2.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "d107cad128cc31ce5d33d76e24fc5d8f", "sha256": "1b2dbbf7885821ba7d01e7e7d93c1d56457e788072d53942c5f9498ebbc6022e" }, "downloads": -1, "filename": "directory_forms_api_client-2.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d107cad128cc31ce5d33d76e24fc5d8f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6922, "upload_time": "2018-08-07T13:11:22", "upload_time_iso_8601": "2018-08-07T13:11:22.123069Z", "url": "https://files.pythonhosted.org/packages/8b/80/99b00e2612930358975e0cb7968724b27e9b0c6cf23dca7a0dd8ea6a5b1b/directory_forms_api_client-2.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "d71e290de03bc4cc974937681e009ed8", "sha256": "9fc407d27be64528e0c9a17bb1c8bb92fb143bd85a740155b4820fab91645c21" }, "downloads": -1, "filename": "directory_forms_api_client-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d71e290de03bc4cc974937681e009ed8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7141, "upload_time": "2018-08-08T14:29:42", "upload_time_iso_8601": "2018-08-08T14:29:42.612027Z", "url": "https://files.pythonhosted.org/packages/ae/9e/afb0274d494cad5a6e907674a7c7f2c8b3f02dd6c99b46a397a36752aff3/directory_forms_api_client-2.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "f2a271ceb226c5648ba07eed29835e59", "sha256": "cf67ef1a08fced6ec78fd0d634cc229c569d4ef0f56db54709671fa95c757cd0" }, "downloads": -1, "filename": "directory_forms_api_client-2.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f2a271ceb226c5648ba07eed29835e59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7095, "upload_time": "2018-08-08T15:11:21", "upload_time_iso_8601": "2018-08-08T15:11:21.214524Z", "url": "https://files.pythonhosted.org/packages/84/5b/dd8482ef8fa9f78e69012e77c12c412017afa44beacc1400605ee06f52db/directory_forms_api_client-2.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "7648323a33920aa885bb6e29f9e150c2", "sha256": "bbb8ff2973350046a8c111228578c8625055c0fb59bcd2b31b7e075231dc7c3e" }, "downloads": -1, "filename": "directory_forms_api_client-2.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7648323a33920aa885bb6e29f9e150c2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6887, "upload_time": "2018-08-10T16:40:57", "upload_time_iso_8601": "2018-08-10T16:40:57.026681Z", "url": "https://files.pythonhosted.org/packages/18/5b/831f28b0c37e1b5bedd6b9bf5f04cbbd68b49a313c02cb0c9fc909383fa5/directory_forms_api_client-2.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "1f537b787359120ea7639f5961117c91", "sha256": "48e67378eb86c26cdd663ddf7ffb81577b90bf7fd5eb917d50f654b81e714b5c" }, "downloads": -1, "filename": "directory_forms_api_client-2.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1f537b787359120ea7639f5961117c91", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6979, "upload_time": "2018-08-31T10:12:49", "upload_time_iso_8601": "2018-08-31T10:12:49.546738Z", "url": "https://files.pythonhosted.org/packages/5c/41/82a26f51364ef81d263aa083e7da2cab5bb3b3b4c4fbd221c5adc67c30f1/directory_forms_api_client-2.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "e8da8acd69f11bc40ffb542797262fca", "sha256": "afb4b970ce25a00c6da28a86f627c8a04142df53c96f465f9d53e91a4b8f5363" }, "downloads": -1, "filename": "directory_forms_api_client-2.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e8da8acd69f11bc40ffb542797262fca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6088, "upload_time": "2018-10-16T11:11:55", "upload_time_iso_8601": "2018-10-16T11:11:55.593306Z", "url": "https://files.pythonhosted.org/packages/a0/f5/02e920bab73d908730fb45a64c019814e9569e406e3b7e4d55db56a47842/directory_forms_api_client-2.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "9540ec5f803a2ec20b49bc74f9600f84", "sha256": "21c1be8f55e8170ca6088d3381780b090b08742a8180b4aeb25dc82877e56a9e" }, "downloads": -1, "filename": "directory_forms_api_client-2.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9540ec5f803a2ec20b49bc74f9600f84", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6125, "upload_time": "2018-10-30T10:55:38", "upload_time_iso_8601": "2018-10-30T10:55:38.046785Z", "url": "https://files.pythonhosted.org/packages/2c/4a/7b09fe6c9491dff7730562fba72f944ca0e2170019099e6d329ab50bbc48/directory_forms_api_client-2.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.5.1": [ { "comment_text": "", "digests": { "md5": "65ad618e7c5d0cc77a7c4b3b2cca31dd", "sha256": "3c9ff0c3d000fd0ad220d67aa24da8d624fa495ed9ea5770bc83b9de33558f66" }, "downloads": -1, "filename": "directory_forms_api_client-2.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "65ad618e7c5d0cc77a7c4b3b2cca31dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6122, "upload_time": "2018-10-31T11:52:59", "upload_time_iso_8601": "2018-10-31T11:52:59.164118Z", "url": "https://files.pythonhosted.org/packages/1c/0f/9536b3fa6dfebdcbd192b467d658390467d3a956053735ed76a8188df0f7/directory_forms_api_client-2.5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "cfad087c84398f752e94cce50b5962dc", "sha256": "c8fbb0d668375c4f6e259c65b47a52f6d64224c60a59321ef04596283b147ab2" }, "downloads": -1, "filename": "directory_forms_api_client-2.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cfad087c84398f752e94cce50b5962dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6189, "upload_time": "2018-11-06T16:56:12", "upload_time_iso_8601": "2018-11-06T16:56:12.381368Z", "url": "https://files.pythonhosted.org/packages/2f/5c/486851c3954f3730719fa5f6d0ad80731e3fcdf7c6663f0d9adfda1058d7/directory_forms_api_client-2.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "98563f341251ca1d816f3ff994229a42", "sha256": "8180c48d1caa8282d1b4ba7ab1577376071cfba2aec222a46949170a99e6f797" }, "downloads": -1, "filename": "directory_forms_api_client-3.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "98563f341251ca1d816f3ff994229a42", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6378, "upload_time": "2018-11-23T11:37:57", "upload_time_iso_8601": "2018-11-23T11:37:57.252680Z", "url": "https://files.pythonhosted.org/packages/fc/64/67a9d2af61e638d6c6dd14429434f2eeb0698295d1aa627ad54b3f1b2995/directory_forms_api_client-3.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "21f81c50cc5fdd72df101f331037a847", "sha256": "51250de35a87c8cd0edfcfaff3417d1d580702dcc23378fb72ab162c8b9df5fe" }, "downloads": -1, "filename": "directory_forms_api_client-3.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "21f81c50cc5fdd72df101f331037a847", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6422, "upload_time": "2018-12-05T10:40:44", "upload_time_iso_8601": "2018-12-05T10:40:44.524048Z", "url": "https://files.pythonhosted.org/packages/a7/8b/e2f16079049cbd3cc1c7c976b44f043ca73a31a73b6578e6fedfc964ab19/directory_forms_api_client-3.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "47e8b8ad6d7d7cfc9536e6b75ab3215d", "sha256": "b04882b064287828f426d3ce242cdca68ac98a7a7b8363ae4853e0a988f3913b" }, "downloads": -1, "filename": "directory_forms_api_client-3.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "47e8b8ad6d7d7cfc9536e6b75ab3215d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7077, "upload_time": "2019-01-04T13:20:01", "upload_time_iso_8601": "2019-01-04T13:20:01.997878Z", "url": "https://files.pythonhosted.org/packages/36/d1/8155da01c8c3a91abdfe8d8b3d747d201b717cc46c28be569f76fc4b97f2/directory_forms_api_client-3.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.2.1": [ { "comment_text": "", "digests": { "md5": "6d1d53e371e059c5b93049f496e347d7", "sha256": "3e99552eade02c6c5040f2a29e2d079df18307fa5f8242f75b14ecc73685a5f9" }, "downloads": -1, "filename": "directory_forms_api_client-3.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6d1d53e371e059c5b93049f496e347d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7119, "upload_time": "2019-01-04T15:36:32", "upload_time_iso_8601": "2019-01-04T15:36:32.352291Z", "url": "https://files.pythonhosted.org/packages/62/f3/c64ed0099f7bd675ce463555235265580fbdc9fea187080cc6c0de4136bf/directory_forms_api_client-3.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.3.0": [ { "comment_text": "", "digests": { "md5": "0ac000acf0c575e4b7136bc443329029", "sha256": "d52cb42547f8ea48f2d392fca5a585c4cb762e0f3804433751e609f15d19d761" }, "downloads": -1, "filename": "directory_forms_api_client-3.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0ac000acf0c575e4b7136bc443329029", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7405, "upload_time": "2019-01-17T18:17:13", "upload_time_iso_8601": "2019-01-17T18:17:13.040430Z", "url": "https://files.pythonhosted.org/packages/48/ea/4451196df792949afdd96bf3fa4d0f2762f64e9948b4335553082517610b/directory_forms_api_client-3.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "9e0502eed1c801e22c225b4376e292ca", "sha256": "42c50871de03bc356112f661481407226708ae2094ca2b400053df23f1e2b637" }, "downloads": -1, "filename": "directory_forms_api_client-4.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9e0502eed1c801e22c225b4376e292ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7619, "upload_time": "2019-04-23T13:52:34", "upload_time_iso_8601": "2019-04-23T13:52:34.499020Z", "url": "https://files.pythonhosted.org/packages/cf/66/87357425da47f80ddc089817c3285ae21375be50465e63c887f87f1e1880/directory_forms_api_client-4.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "4.1.0": [ { "comment_text": "", "digests": { "md5": "a9a69b2a3cd1a05d44e867d247e81fab", "sha256": "b5ec4832698bb743856c17007aa2647d4864c4dacf656af3827b9d464d34870f" }, "downloads": -1, "filename": "directory_forms_api_client-4.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a9a69b2a3cd1a05d44e867d247e81fab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7640, "upload_time": "2019-06-12T13:54:54", "upload_time_iso_8601": "2019-06-12T13:54:54.774548Z", "url": "https://files.pythonhosted.org/packages/30/05/d5d382b9d14f6ba7887db5ccacabbfac93cc3df878c2f93a1ed2d418fa3a/directory_forms_api_client-4.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "4.1.1": [ { "comment_text": "", "digests": { "md5": "d58904506b1ed1ad466b803fd54dab54", "sha256": "116d4f273d4479a99828ee25bf2cb987cbcae476cb1df8ee2de283376861cc74" }, "downloads": -1, "filename": "directory_forms_api_client-4.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d58904506b1ed1ad466b803fd54dab54", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7499, "upload_time": "2019-07-04T14:42:01", "upload_time_iso_8601": "2019-07-04T14:42:01.815874Z", "url": "https://files.pythonhosted.org/packages/34/55/57261d408573ddf65455e337acf3d2e6c2bb5745794e5ab5e58a32d43723/directory_forms_api_client-4.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "5.0": [ { "comment_text": "", "digests": { "md5": "f131f6ed34bc8954d38a08ede00f8a1f", "sha256": "d77312d61890d4907b269fe0d6c6104131027c5f1343a44bed17026514a2d951" }, "downloads": -1, "filename": "directory_forms_api_client-5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f131f6ed34bc8954d38a08ede00f8a1f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8033, "upload_time": "2019-07-16T11:04:45", "upload_time_iso_8601": "2019-07-16T11:04:45.737601Z", "url": "https://files.pythonhosted.org/packages/22/e5/057880708020b9d5362447e90f48089ac024cd9aa66710eb25ff6b92946e/directory_forms_api_client-5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "5.1": [ { "comment_text": "", "digests": { "md5": "1aa5b3e27972c0cb4b22fe8c7b332a5e", "sha256": "7c70296070c1b5277e95dc015364e2356f57c8e849c76aea079c73bef383b979" }, "downloads": -1, "filename": "directory_forms_api_client-5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1aa5b3e27972c0cb4b22fe8c7b332a5e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8044, "upload_time": "2019-10-22T14:02:41", "upload_time_iso_8601": "2019-10-22T14:02:41.612668Z", "url": "https://files.pythonhosted.org/packages/7b/b4/7b3ac0db09df8dfd1ced8d7825c43ec1ec7355433204806ef999c6627d60/directory_forms_api_client-5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "5.2.0": [ { "comment_text": "", "digests": { "md5": "0e40b8542f5ffa9716a757b1a8ca0ae1", "sha256": "69328fee506c6304be4da514e19196ab71c3c232103725db8d22469774136b53" }, "downloads": -1, "filename": "directory_forms_api_client-5.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0e40b8542f5ffa9716a757b1a8ca0ae1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8104, "upload_time": "2020-02-19T12:58:33", "upload_time_iso_8601": "2020-02-19T12:58:33.177150Z", "url": "https://files.pythonhosted.org/packages/e1/ec/21e85e38ea0952480e9ce4737aeb58c2b7491984f0be8d05fa836638c8bf/directory_forms_api_client-5.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "5.3.0": [ { "comment_text": "", "digests": { "md5": "725187d68f388e7947eae0c298617541", "sha256": "e8ec8a8eeea17c48f369ba56b9ddee0b4e80bf84f5e794c1b3e7c9b13e33bc44" }, "downloads": -1, "filename": "directory_forms_api_client-5.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "725187d68f388e7947eae0c298617541", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8163, "upload_time": "2020-03-16T14:40:30", "upload_time_iso_8601": "2020-03-16T14:40:30.721538Z", "url": "https://files.pythonhosted.org/packages/4f/7d/ee0ffb2a4c40a3197a0635ad9c81a627f65c6a2d7ceca3e4ba60f7ae76d1/directory_forms_api_client-5.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "5.4.0": [ { "comment_text": "", "digests": { "md5": "cd961ed350be41fe477d4edfa278d7e2", "sha256": "cd8e81802d43544d005889b1bfe0b0bd9556d820dd785fe2f4d9ff5fef03214c" }, "downloads": -1, "filename": "directory_forms_api_client-5.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cd961ed350be41fe477d4edfa278d7e2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8160, "upload_time": "2020-10-06T09:32:23", "upload_time_iso_8601": "2020-10-06T09:32:23.426440Z", "url": "https://files.pythonhosted.org/packages/41/08/ff7b812c913d502fb0e2e1d560bb156646e0340712c4bad60cae3329725d/directory_forms_api_client-5.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "6.0.0": [ { "comment_text": "", "digests": { "md5": "001239ca165ef51f28be9b00717f8a9f", "sha256": "005c962cca1bd19530145af92530a49e7e224ba5b461ffab853c321f6ef6f945" }, "downloads": -1, "filename": "directory_forms_api_client-6.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "001239ca165ef51f28be9b00717f8a9f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8166, "upload_time": "2020-12-17T15:33:40", "upload_time_iso_8601": "2020-12-17T15:33:40.996416Z", "url": "https://files.pythonhosted.org/packages/bd/24/8d6395c8807360955f03e24fb30106c0a742db8e90a9f41a4c1730975c79/directory_forms_api_client-6.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "6.1.0": [ { "comment_text": "", "digests": { "md5": "a3921d61f24d99a651c4bd4e55805447", "sha256": "1dce9e7fd404794b8c963032b11972126299a7baafc2c6ea1f2f1a1e9e1d5d09" }, "downloads": -1, "filename": "directory_forms_api_client-6.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a3921d61f24d99a651c4bd4e55805447", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8234, "upload_time": "2021-06-09T09:12:20", "upload_time_iso_8601": "2021-06-09T09:12:20.178275Z", "url": "https://files.pythonhosted.org/packages/98/e8/53695392ad269bf47f34468fd7bd0dbe9fbd66f29e9120c65558a64f84a1/directory_forms_api_client-6.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "6.2.0": [ { "comment_text": "", "digests": { "md5": "fb5023c6bdf2fcfc86045ac0150791b7", "sha256": "014c5bf92668a673dcdfd4ad7e20e28d685f14b4ba048ae71f70361edfffc878" }, "downloads": -1, "filename": "directory_forms_api_client-6.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fb5023c6bdf2fcfc86045ac0150791b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8285, "upload_time": "2022-03-28T09:45:31", "upload_time_iso_8601": "2022-03-28T09:45:31.059046Z", "url": "https://files.pythonhosted.org/packages/63/c5/91505fc36594196e5c9eb898f6f83deac5724d96c7e053ea0cf879fcb0b5/directory_forms_api_client-6.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fb5023c6bdf2fcfc86045ac0150791b7", "sha256": "014c5bf92668a673dcdfd4ad7e20e28d685f14b4ba048ae71f70361edfffc878" }, "downloads": -1, "filename": "directory_forms_api_client-6.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fb5023c6bdf2fcfc86045ac0150791b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8285, "upload_time": "2022-03-28T09:45:31", "upload_time_iso_8601": "2022-03-28T09:45:31.059046Z", "url": "https://files.pythonhosted.org/packages/63/c5/91505fc36594196e5c9eb898f6f83deac5724d96c7e053ea0cf879fcb0b5/directory_forms_api_client-6.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }