{ "info": { "author": "Alexander Beach", "author_email": "ajbeach2@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "=============================\nDRF Elasticsearch DSL\n=============================\n\n.. image:: https://badge.fury.io/py/drf-elasticsearch-dsl.svg\n :target: https://badge.fury.io/py/drf-elasticsearch-dsl\n\n.. image:: https://circleci.com/gh/ajbeach2/drf-elasticsearch-dsl.svg?style=svg\n :target: https://circleci.com/gh/ajbeach2/drf-elasticsearch-dsl\n\n.. image:: https://codecov.io/gh/ajbeach2/drf-elasticsearch-dsl/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/ajbeach2/drf-elasticsearch-dsl\n\nDRF Elasticsearch DSL is losely based on `django-haystack`_ and provides a ``ModelSerializerDocument``\nwhich supports all of the field types provided by `elastic-search-dsl persistence`_.. ``ModelSerializerDocument`` is losely based on the ``DocType`` class provided by ``elasticsearch-dsl.py``\n\nThe purpose of this libraray is to allow definition of elasticsearch documents with DRF's `ModelSerializer`_ class while optionally providing support for async document updates and deletes with `celery`_.\n\n\n\nDocumentation\n-------------\n\nThe full documentation is at https://drf-elasticsearch-dsl.readthedocs.io.\n\nQuickstart\n----------\n\nInstall Django Package::\n\n pip install drf-elasticsearch-dsl\n\nAdd it to your `INSTALLED_APPS`:\n\n.. code-block:: python\n\n INSTALLED_APPS = (\n ...\n 'drf_elasticsearch_dsl.apps.DrfElasticsearchDsl',\n ...\n )\n\n\nConfigure DRF_SERIALIZER_ELASTICSERACH_SETTTINGS in your settings.py file with your elasticsearch url(s)\n\n.. code-block:: python\n\n DRF_SERIALIZER_ELASTICSERACH_SETTTINGS = {\n 'elasticsearch_hosts': ['localhost']\n }\n\n\nCreate a Model\n\n.. code-block:: python\n\n from django.db import models\n\n\n class Contact(models.Model):\n\n first_name = models.CharField(max_length=32, null=False, blank=False)\n last_name = models.CharField(max_length=32, null=False, blank=False)\n url = models.URLField(null=False, blank=False)\n email = models.EmailField(max_length=254, null=False, blank=False)\n bio = models.TextField(null=False, blank=False)\n birthday = models.DateField(null=False, blank=False)\n\n\nCreate a ModelSerializer\n\n.. code-block:: python\n\n from rest_framework import serializers\n\n class ContactSerializer(serializers.ModelSerializer):\n\n class Meta:\n model = Contact\n fields = '__all__'\n\nCreate a ``search_indexes.py``, which should be in the root of the application. Add your ``ModelSerializerDocument`` classes here. The specificed index will have its mapping updated for this document.\n\n\n.. code-block:: python\n\n from drf_elasticsearch_dsl.documents import ModelSerializerDocument\n from elasticsearch_dsl import Date, Keyword, Text, String\n from .serialziers import ContactSerializer\n\n\n class ContactSerializerDocument(ModelSerializerDocument):\n first_name = String()\n last_name = String()\n url = Keyword()\n email = Keyword()\n bio = Text()\n birthday = Date()\n\n class Meta:\n index = 'myapp'\n serializer = ContactSerializer\n doc_type = 'myapp.contact'\n\nFinally, sync your database with elasticsearch by running:\n\n::\n\n $ python manage.py update_index\n\n\nFeatures\n--------\n\nCelery Support\n^^^^^^^^^^^^^^^\n\nBy default, dr-elasticsearch-dsl does not setup signals to sync models on save or delete. To enable celery support, add the following to your settings.py confiration:\n\n.. code-block:: python\n\n DRF_SERIALIZER_ELASTICSERACH_SETTTINGS = {\n ...\n 'signal_processor_class': 'drf_elasticsearch_dsl.signals.CelerySignalProcessor',\n }\n\n\nSee the `celery`_ documentation for details setting up celery with django\n\nRunning Tests\n-------------\n\nDoes the code actually work?\n\n::\n\n source /bin/activate\n (myenv) $ pip install -r requirements_test.txt\n (myenv) $ tox\n\n\nTODO:\n-----\n\n- Add search URLS to be automatically added to all ``ModelSerializerDocument`` added to ``search_indexes.py``\n- Better documentation\n- Better test coverage\n\nCredits\n-------\n\nTools used in rendering this package:\n\n* Cookiecutter_\n* `cookiecutter-djangopackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage\n.. _`django-haystack`: https://github.com/django-haystack/django-haystack\n.. _`elastic-search-dsl persistence`: http://elasticsearch-dsl.readthedocs.io/en/latest/persistence.html\n.. _`celery`: http://docs.celeryproject.org\n.. _`ModelSerializer` : http://www.django-rest-framework.org/api-guide/serializers/#modelserializer\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ajbeach2/drf-elasticsearch-dsl", "keywords": "drf-elasticsearch-dsl", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "drf-elasticsearch-dsl", "package_url": "https://pypi.org/project/drf-elasticsearch-dsl/", "platform": "", "project_url": "https://pypi.org/project/drf-elasticsearch-dsl/", "project_urls": { "Homepage": "https://github.com/ajbeach2/drf-elasticsearch-dsl" }, "release_url": "https://pypi.org/project/drf-elasticsearch-dsl/0.1.4/", "requires_dist": null, "requires_python": "", "summary": "DRF wrapper around ElasticsearchDSL", "version": "0.1.4" }, "last_serial": 3443497, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "29460bab8a4f0dbbffdec4053f3a7ba6", "sha256": "1ed0adc7054bc5ea74c3597cb1016327b3aa6e19ca79586a94abb7e4233daf95" }, "downloads": -1, "filename": "drf_elasticsearch_dsl-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "29460bab8a4f0dbbffdec4053f3a7ba6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14222, "upload_time": "2017-12-26T00:04:02", "url": "https://files.pythonhosted.org/packages/73/d0/7b298a0c4702f08ae6a8f3c120d9925e85ba49850e4675b50c02507a9a37/drf_elasticsearch_dsl-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d96c2baaa5bdc8e4f25b81c1560394d", "sha256": "6f7e2f59b7acc2fa997f2192512a0e9d76e9f618c506f01b8837fb0b930092b5" }, "downloads": -1, "filename": "drf-elasticsearch-dsl-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5d96c2baaa5bdc8e4f25b81c1560394d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10826, "upload_time": "2017-12-26T00:03:59", "url": "https://files.pythonhosted.org/packages/35/9f/0c5c5e5319278c334b32b7415672d7fadd5b0916ffd9aa5c23e5f50596cf/drf-elasticsearch-dsl-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "04955a282092f6ece2e8d60faf02983b", "sha256": "a12b6e293abf397e07cc818e0da964c6dad6e80fe5df6dd8eccd62b49b22f1e6" }, "downloads": -1, "filename": "drf_elasticsearch_dsl-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "04955a282092f6ece2e8d60faf02983b", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14223, "upload_time": "2017-12-26T00:25:43", "url": "https://files.pythonhosted.org/packages/17/f5/0f39a5b388793960cbc8ebc3c8760627b823be5b54a0342b62a7f882cab3/drf_elasticsearch_dsl-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8a7b0ec598914fa2388c910205b40f8", "sha256": "ff1258d752509bc7498e5a1d341212f3d7b60e5c4a9f0f885e266e209577ca78" }, "downloads": -1, "filename": "drf-elasticsearch-dsl-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b8a7b0ec598914fa2388c910205b40f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10829, "upload_time": "2017-12-26T00:25:41", "url": "https://files.pythonhosted.org/packages/39/74/28bd1c86fa7826fe969ff5437ee76520ab39a5f5a9bdebc95f7d7dde7384/drf-elasticsearch-dsl-0.1.1.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "0dba921e0b9e0583fd07b9859d165cb3", "sha256": "8aa56decb09e160e4d3009097d18c8c2e0c3b7eeb1a6a432425d483c1f1af334" }, "downloads": -1, "filename": "drf_elasticsearch_dsl-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0dba921e0b9e0583fd07b9859d165cb3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14079, "upload_time": "2017-12-26T15:31:25", "url": "https://files.pythonhosted.org/packages/bb/79/34a6391198bce63454870277ca01816ba9a75e3154bbe6c1345a5bdaed59/drf_elasticsearch_dsl-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9b6155f541d5424576c088ab8258aec", "sha256": "2a0bcbf0b2572e78d37dd138defe7a957a890da30291ed0e36b94d383f946abf" }, "downloads": -1, "filename": "drf-elasticsearch-dsl-0.1.4.tar.gz", "has_sig": false, "md5_digest": "d9b6155f541d5424576c088ab8258aec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10731, "upload_time": "2017-12-26T15:31:19", "url": "https://files.pythonhosted.org/packages/e1/40/91582c02fd433beac1f554e5b3a3e1914c38e295d61b607be6721783556d/drf-elasticsearch-dsl-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0dba921e0b9e0583fd07b9859d165cb3", "sha256": "8aa56decb09e160e4d3009097d18c8c2e0c3b7eeb1a6a432425d483c1f1af334" }, "downloads": -1, "filename": "drf_elasticsearch_dsl-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0dba921e0b9e0583fd07b9859d165cb3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14079, "upload_time": "2017-12-26T15:31:25", "url": "https://files.pythonhosted.org/packages/bb/79/34a6391198bce63454870277ca01816ba9a75e3154bbe6c1345a5bdaed59/drf_elasticsearch_dsl-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9b6155f541d5424576c088ab8258aec", "sha256": "2a0bcbf0b2572e78d37dd138defe7a957a890da30291ed0e36b94d383f946abf" }, "downloads": -1, "filename": "drf-elasticsearch-dsl-0.1.4.tar.gz", "has_sig": false, "md5_digest": "d9b6155f541d5424576c088ab8258aec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10731, "upload_time": "2017-12-26T15:31:19", "url": "https://files.pythonhosted.org/packages/e1/40/91582c02fd433beac1f554e5b3a3e1914c38e295d61b607be6721783556d/drf-elasticsearch-dsl-0.1.4.tar.gz" } ] }