{ "info": { "author": "Ben Lopatin", "author_email": "ben@wellfire.co", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "############\nelasticstack\n############\n\n.. image:: https://badge.fury.io/py/elasticstack.svg\n :target: http://badge.fury.io/py/elasticstack\n\n.. image:: https://travis-ci.org/bennylope/elasticstack.svg?branch=master\n :target: https://travis-ci.org/bennylope/elasticstack\n\n.. image:: https://pypip.in/d/elasticstack/badge.svg\n :target: https://crate.io/packages/elasticstack?version=latest\n\n:Version: 0.5.0\n:Author: Ben Lopatin (http://benlopatin.com)\n\nConfigurable indexing and other extras for Haystack (with ElasticSearch\nbiases).\n\nFull documentation is on `Read the Docs `_.\n\nRequirements\n============\n\n* `Django `_: tested against Django 1.8, and 1.9\n* `Haystack `_: tested against Haystack 2.4.0,\n it should work with any combination of Haystack and Django that work\n* `ElasticSearch `_: presumably any newish\n version will do, however the only version tested against so far is 0.19.x\n\nFeatures and goals\n==================\n\nSome of these features are backend agnostic but most features have\nElasticSearch in mind.\n\nFor more background see the blog post `Stretching Haystack's ElasticSearch Backend `_.\n\nGlobal configurable index mapping\n---------------------------------\n\nThe search mapping provided by Haystack's ElasticSearch backend includes brief\nbut sensible defaults for nGram analysis. You can globaly add change these settings or\nadd your own mappings by providing a mapping dictionary using\n`ELASTICSEARCH_INDEX_SETTINGS` in your settings file. This example takes the\ndefault mapping and adds a synonym analyzer::\n\n ELASTICSEARCH_INDEX_SETTINGS = {\n 'settings': {\n \"analysis\": {\n \"analyzer\": {\n \"synonym_analyzer\" : {\n \"type\": \"custom\",\n \"tokenizer\" : \"standard\",\n \"filter\" : [\"synonym\"]\n },\n \"ngram_analyzer\": {\n \"type\": \"custom\",\n \"tokenizer\": \"lowercase\",\n \"filter\": [\"haystack_ngram\", \"synonym\"]\n },\n \"edgengram_analyzer\": {\n \"type\": \"custom\",\n \"tokenizer\": \"lowercase\",\n \"filter\": [\"haystack_edgengram\"]\n }\n },\n \"tokenizer\": {\n \"haystack_ngram_tokenizer\": {\n \"type\": \"nGram\",\n \"min_gram\": 3,\n \"max_gram\": 15,\n },\n \"haystack_edgengram_tokenizer\": {\n \"type\": \"edgeNGram\",\n \"min_gram\": 2,\n \"max_gram\": 15,\n \"side\": \"front\"\n }\n },\n \"filter\": {\n \"haystack_ngram\": {\n \"type\": \"nGram\",\n \"min_gram\": 3,\n \"max_gram\": 15\n },\n \"haystack_edgengram\": {\n \"type\": \"edgeNGram\",\n \"min_gram\": 2,\n \"max_gram\": 15\n },\n \"synonym\" : {\n \"type\" : \"synonym\",\n \"ignore_case\": \"true\",\n \"synonyms_path\" : \"synonyms.txt\"\n }\n }\n }\n }\n }\n\nThe synonym filter is ready for your index, but will go unused yet. \n\nBefore your new analyzer can be used you will need to change your Haystack engine and rebuild/update\nyour index. In your `settings.py` modify `HAYSTACK_CONNECTIONS` accordingly::\n\n HAYSTACK_CONNECTIONS = {\n 'default': {\n 'ENGINE': 'elasticstack.backends.ConfigurableElasticSearchEngine',\n 'URL': env_var('HAYSTACK_URL', 'http://127.0.0.1:9200/'),\n 'INDEX_NAME': 'haystack',\n },\n }\n\nThe default analyzer for non-nGram fields in Haystack's ElasticSearch backend\nis the `snowball analyzer `_.\nA perfectly good analyzer but not necessarily what you need. It's also language\nspecific (English by default).\n\nSpecify your analyzer with `ELASTICSEARCH_DEFAULT_ANALYZER` in your settings\nfile::\n\n ELASTICSEARCH_DEFAULT_ANALYZER = 'synonym_analyzer'\n\nNow all your analyzed fields, except for nGram fields, will be analyzed using\n`synonym_analyzer`.\n\nIf you want to specify a custom search_analyzer for nGram/EdgeNgram fields,\ndefine it with the `ELASTICSEARCH_DEFAULT_NGRAM_SEARCH_ANALYZER` settings::\n\n ELASTICSEARCH_DEFAULT_NGRAM_SEARCH_ANALYZER = 'standard'\n\nConfigurable index mapping per index\n------------------------------------\n\nAlternatively you can configure index mapping per index. This is usefull for multilanguage index settup.\nIn this case `HAYSTACK_CONNECTION` contains key `SETTINGS_NAME` have to match with name in `ELASTICSEARCH_INDEX_SETTINGS`::\n\n\n HAYSTACK_CONNECTIONS = {\n 'default': {\n 'ENGINE': 'elasticstack.backends.ConfigurableElasticSearchEngine',\n 'URL': env_var('HAYSTACK_URL', 'http://127.0.0.1:9200/'),\n 'INDEX_NAME': 'haystack',\n 'SETTINGS_NAME': 'cs',\n 'DEFAULT_ANALYZER': 'czech_hunspell',\n 'DEFAULT_NGRAM_SEARCH_ANALYZER': 'standard',\n },\n }\n\n ELASTICSEARCH_INDEX_SETTINGS = {\n 'cs': {\n \"settings\": {\n \"analysis\": {\n \"analyzer\": {\n \"czech_hunspell\": {\n \"type\": \"custom\",\n \"tokenizer\": \"standard\",\n \"filter\": [\"stopwords_CZ\", \"lowercase\", \"hunspell_CZ\", \"stopwords_CZ\", \"remove_duplicities\"]\n }\n },\n \"filter\": {\n \"stopwords_CZ\": {\n \"type\": \"stop\",\n \"stopwords\": [\"pr\u00e1v\u011b\", \"\u017ee\", \"test\", \"_czech_\"],\n \"ignore_case\": True\n },\n \"hunspell_CZ\": {\n \"type\": \"hunspell\",\n \"locale\": \"cs_CZ\",\n \"dedup\": True,\n \"recursion_level\": 0\n },\n \"remove_duplicities\": {\n \"type\": \"unique\",\n \"only_on_same_position\": True\n },\n }\n }\n }\n },\n }\n\n\nField based analysis\n--------------------\n\nEven with a new default analyzer you may want to change this on a field by\nfield basis as fits your needs. To do so, use the fields from\n`elasticstack.fields` to specify your analyzer with the `analyzer` keyword\nargument::\n\n from haystack import indexes\n from elasticstack.fields import CharField\n from myapp.models import MyContent\n\n class MyContentIndex(indexes.SearchIndex, indexes.Indexable):\n text = CharField(document=True, use_template=True,\n analyzer='synonym_analyzer')\n\n def get_model(self):\n return MyContent\n\n\nDjango CBV style views\n----------------------\n\nHaystacks's class based views predate the inclusion of CBVs into the Django\ncore and so the paradigms are different. This makes it harder to impossible to\nmake use of view mixins.\n\nThe bundled `SearchView` and `FacetedSearchView` classes are based on\n`django.views.generic.edit.FormView` using the `SearchMixin` and\n`FacetedSearchMixin`, respectively. The `SearchMixin` provides the necessary\nsearch related attributes and overloads the form processing methods to execute\nthe search.\n\nThe `SearchMixin` adds a few search specific attributes:\n\n* `load_all` - a Boolean value for `specifying database lookups `_\n* `queryset` - a default `SearchQuerySet`. Defaults to `EmtpySearchQuerySet`\n* `search_field` - the name of the form field used for the query. This is added\n to allow for views which may have more than one search form. Defaults to `q`.\n\n.. note::\n The `SearchMixin` uses the attribute named `queryset` for the resultant\n `SearchQuerySet`. Naming this attribute `searchqueryset` would make more\n sense semantically and hew closer to Haystack's naming convention, however\n by using the `queryset` attribute shared by other Django view mixins it is\n relatively easy to combine search functionality with other mixins and\n views.\n\nManagement commands\n-------------------\n\nshow_mapping\n^^^^^^^^^^^^\n\nMake a change and wonder why your results don't look as expected? The\nmanagement command `show_mapping` will print the current mapping for\nyour defined search index(es). At the least it may show that you've simply\nforgotten to update your index with new mappings::\n\n python manage.py show_mapping\n\nBy default this will display the `existing_mapping` which shows the index,\ndocument type, and document properties.::\n\n {\n \"haystack\": {\n \"modelresult\": {\n \"properties\": {\n \"is_active\": {\n \"type\": \"boolean\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"published\": {\n \"type\": \"date\",\n \"format\": \"dateOptionalTime\"\n }\n }\n }\n }\n }\n\nIf you provide the `--detail` flag this will return only the field mappings but\nincluding additional details, such as boost levels and field-specific\nanalyzers.::\n\n {\n \"is_active\": {\n \"index\": \"not_analyzed\",\n \"boost\": 1,\n \"store\": \"yes\",\n \"type\": \"boolean\"\n },\n \"text\": {\n \"index\": \"analyzed\",\n \"term_vector\": \"with_positions_offsets\",\n \"type\": \"string\",\n \"analyzer\": \"custom_analyzer\",\n \"boost\": 1,\n \"store\": \"yes\"\n },\n \"pub_date\": {\n \"index\": \"analyzed\",\n \"boost\": 1,\n \"store\": \"yes\",\n \"type\": \"date\"\n }\n }\n\nshow_document\n^^^^^^^^^^^^^\n\nProvided the name of an indexed model and a key it generates and prints the\ngenerated document for this object::\n\n python manage.py show_document myapp.MyModel 19181\n\nThe JSON document will be formatted with 'pretty' indenting.\n\nStability, docs, and tests\n==========================\n\nThe form, view, and backend functionality in this project is considered stable.\nTest coverage is not substantial, but is run against Django 1.8 through Django\n1.10 on Python 2.7, 3.4, and 3.5.\n\nWhy not add this stuff to Haystack?\n-----------------------------------\n\nThis project first aims to solve problems related specifically to working with\nElasticSearch. Haystack is 1) backend agnostic (a good thing), 2) needs to\nsupport existing codebases, and 3) not my project. Most importantly, adding\nthese features through a separate Django app means providing them without\nneeding to fork Haystack. Hopefully some of the features here, once finalized\nand tested, will be suitable to add to Haystack.\n\n\n\n\nHistory\n-------\n\n0.5.0 (2017-03-17)\n^^^^^^^^^^^^^^^^^^\n\n* Replace deprecated option_list in commands with add_arguments method\n* Update Django versions in tox config and docs\n\n0.4.1 (2016-05-05)\n^^^^^^^^^^^^^^^^^^\n\n* Fix encoding issue in installation. In at least one known environment/Python3\n combination an encoding issue prevented installation of the package.\n\n0.4.0 (2016-01-28)\n^^^^^^^^^^^^^^^^^^\n\n* Allow changing search settings on an index-by-index basis\n\n0.3.0 (2015-12-31)\n^^^^^^^^^^^^^^^^^^\n\n* Set default analyzer for ngram fields\n\n0.2.0 (2015-09-29)\n^^^^^^^^^^^^^^^^^^\n\n* Switch to py.test\n* Tests against Django 1.8, 1.9\n* Drop pyelasticsearch requirement for installation\n\n0.1.1 (2015-01-13)\n^^^^^^^^^^^^^^^^^^\n\n* Bug fix in show_document management command\n\n0.1.0 (2014-11-24)\n^^^^^^^^^^^^^^^^^^\n\n* Major structural changes\n* Bugfix for configurable search fields\n\n0.0.6 (2013-10-04)\n^^^^^^^^^^^^^^^^^^\n\n* Require pyelasticsearch for installation\n\n0.0.5 (2013-09-28)\n^^^^^^^^^^^^^^^^^^\n\n* Fixed reference to old method\n\n0.0.4 (2013-09-28)\n^^^^^^^^^^^^^^^^^^\n\n* Search form can search using specified field name\n* Added management command to output mapping for an individual\n document\n\n0.0.3 (2013-09-28)\n^^^^^^^^^^^^^^^^^^\n\n* Added default analyzer setting\n\n0.0.2 (2013-09-28)\n^^^^^^^^^^^^^^^^^^\n\n* Packaging fix\n\n0.0.1 (2013-09-28)\n^^^^^^^^^^^^^^^^^^\n\n* Initial release\n\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/bennylope/elasticstack", "keywords": "elasticstack", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "elasticstack", "package_url": "https://pypi.org/project/elasticstack/", "platform": "", "project_url": "https://pypi.org/project/elasticstack/", "project_urls": { "Homepage": "https://github.com/bennylope/elasticstack" }, "release_url": "https://pypi.org/project/elasticstack/0.5.0/", "requires_dist": [ "Django (>=1.8)", "django-haystack (>=2.0.0)" ], "requires_python": "", "summary": "Configurable indexing and other extras for Haystack (with ElasticSearch biases).", "version": "0.5.0" }, "last_serial": 2712463, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "4dd41bae71af72deb51bc9464bcfd012", "sha256": "c77067d79967c77798e4eea78f175d51f71ea3a27415c4ebdb17ee4e5ee3e79f" }, "downloads": -1, "filename": "elasticstack-0.0.1.tar.gz", "has_sig": false, "md5_digest": "4dd41bae71af72deb51bc9464bcfd012", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3014, "upload_time": "2013-01-14T23:08:06", "url": "https://files.pythonhosted.org/packages/1e/d3/29f92c146d4c45101c7d2e8a1200be3f0838d55743b87d5183f46e8a9c80/elasticstack-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "5f0bdaddeb44e5de843e6f3d544ba88f", "sha256": "e83557f383e0a8f5b49bd0c602f7db8ffdcb8b2dd5a062d891719fcfcd57b531" }, "downloads": -1, "filename": "elasticstack-0.0.2.tar.gz", "has_sig": false, "md5_digest": "5f0bdaddeb44e5de843e6f3d544ba88f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5955, "upload_time": "2013-01-15T21:02:37", "url": "https://files.pythonhosted.org/packages/c3/20/f81d9f203696aa12a4188bf62d243679ee3506ba374fd77741da471bb66c/elasticstack-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "fa7ac7e90d9cafb943cdd119f10c83ff", "sha256": "ae1136578032d45626c25092c2b1e6fa94f811c0c140649a160ae40862d5147f" }, "downloads": -1, "filename": "elasticstack-0.0.3.tar.gz", "has_sig": false, "md5_digest": "fa7ac7e90d9cafb943cdd119f10c83ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7353, "upload_time": "2013-01-16T21:21:35", "url": "https://files.pythonhosted.org/packages/f4/28/d2f60f04be95c6e74c5735c18800f46b0108445ec27d593465e0bf43ce7a/elasticstack-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "f24c327be835e4498947fe81590e98f9", "sha256": "21a921c9273aba7789f9682c749f6e6bb8ca3ddd084c1ee7d395e5e74869b3a2" }, "downloads": -1, "filename": "elasticstack-0.0.4.tar.gz", "has_sig": false, "md5_digest": "f24c327be835e4498947fe81590e98f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8645, "upload_time": "2013-02-05T03:12:47", "url": "https://files.pythonhosted.org/packages/3e/af/10cb42aadb0a7e465024aa2cf0818bd0b61c348dcad59da86bdcd96583af/elasticstack-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "eb581641b8c8918595e627a20ee96a23", "sha256": "28dd68f13944327825be4e9263d02daabded43c27db53d65dd559e160b6e119c" }, "downloads": -1, "filename": "elasticstack-0.0.5.tar.gz", "has_sig": false, "md5_digest": "eb581641b8c8918595e627a20ee96a23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9246, "upload_time": "2013-09-28T19:28:46", "url": "https://files.pythonhosted.org/packages/44/6e/7f9e86cef5d41ad66a6b759863b11028770f9a7c05c1e0f6c4c531546063/elasticstack-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "810306fa53a6d773e02bb58102e8e730", "sha256": "1ea2bf232320ae5bea3fbf969ae162f40c81b73fbb2a88555cbf3f8c1c38457a" }, "downloads": -1, "filename": "elasticstack-0.0.6.tar.gz", "has_sig": false, "md5_digest": "810306fa53a6d773e02bb58102e8e730", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9264, "upload_time": "2013-10-04T20:18:17", "url": "https://files.pythonhosted.org/packages/ee/38/9a5a984097f82a210e08f464037a7537ad06db5b641cd64e9379c8f3fd54/elasticstack-0.0.6.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "aa4e8aeafdb7b4d7fdf4395584b2e8d9", "sha256": "150d4285dd8ac63810ad5cf0c46b7060f6e1e678ca9319ea8f9403d4638a6329" }, "downloads": -1, "filename": "elasticstack-0.1.0.tar.gz", "has_sig": false, "md5_digest": "aa4e8aeafdb7b4d7fdf4395584b2e8d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11737, "upload_time": "2014-11-24T22:09:59", "url": "https://files.pythonhosted.org/packages/db/ad/47916c7ea982ffa37cdbc36d09b7594e7166925d0749bec55a14b067bb1e/elasticstack-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "2b6c627cbe1d084bcf3b4bbd7aac6f32", "sha256": "cc987d17a1ab3d0b1bc209b3d297874a3f63efa3026245abb2c2a81313f93a4f" }, "downloads": -1, "filename": "elasticstack-0.1.1.tar.gz", "has_sig": false, "md5_digest": "2b6c627cbe1d084bcf3b4bbd7aac6f32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11750, "upload_time": "2015-01-13T16:02:37", "url": "https://files.pythonhosted.org/packages/6b/74/0cfab9230165c48316dfbfdd277b08287ac74cff8382b655165790c5fcad/elasticstack-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e3787be5f5e234eb3557033d1140cf53", "sha256": "cbfefd3a989623988f52d8d35e6a6f99d18a37a4941c561df48d96aa818a1930" }, "downloads": -1, "filename": "elasticstack-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e3787be5f5e234eb3557033d1140cf53", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 21873, "upload_time": "2015-09-30T02:49:39", "url": "https://files.pythonhosted.org/packages/7a/1b/e4344ffa8f898b147b635567eec5ab101c194cd591d01b6e326c2c367bc0/elasticstack-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4535e11f8ff421c4164816e44f0dc40f", "sha256": "aad8b67ceac2e07f6f564390d397773c8d6c39aa4bc4bba5b1bea385a3b69231" }, "downloads": -1, "filename": "elasticstack-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4535e11f8ff421c4164816e44f0dc40f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11962, "upload_time": "2015-09-30T02:48:50", "url": "https://files.pythonhosted.org/packages/fa/17/f09b56cef95ee5a90d64aedec687bc64511e6d95073cd3ac0f7fc0c3bbde/elasticstack-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ded19be509322cd152cb08050d59d559", "sha256": "bd5522b506958cb462aa951c6597159b14878fed083e7c6e6619f8a32766aded" }, "downloads": -1, "filename": "elasticstack-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "ded19be509322cd152cb08050d59d559", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22838, "upload_time": "2015-12-31T22:41:50", "url": "https://files.pythonhosted.org/packages/d0/07/fbfc24efec043f43a16366537df86a21b18593ec561e3137671f4cd6bab5/elasticstack-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f29798eb53b35b34b717ab78b0c395f", "sha256": "8cbdaeef81b2dfccb93656b9ba675b7e4f9e79311650a33a170a3f2f991090d3" }, "downloads": -1, "filename": "elasticstack-0.3.0.tar.gz", "has_sig": false, "md5_digest": "9f29798eb53b35b34b717ab78b0c395f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12828, "upload_time": "2015-12-31T22:41:42", "url": "https://files.pythonhosted.org/packages/e2/76/ea00ebc2b019040e169f95511664e46029083bd9d5921ed8f8513cb1e16a/elasticstack-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "5a6046ccb5368b17be1a5f2ec4b664df", "sha256": "32316d8f68cfea23d0e3098349854dc1d002a8a04dad9a20f5ac9497dddf5989" }, "downloads": -1, "filename": "elasticstack-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5a6046ccb5368b17be1a5f2ec4b664df", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 23992, "upload_time": "2016-01-28T16:54:20", "url": "https://files.pythonhosted.org/packages/4a/ae/535ed7c2b9471e9b9fa727bd31e4ea0b3fd3745b72e62e9d92e97f295d5c/elasticstack-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22739f43f6e530cf2893d92c5816ffaf", "sha256": "4744162363f4760c43d86081930b6650568079c2ca1e2081eb192a8db4d53fa5" }, "downloads": -1, "filename": "elasticstack-0.4.0.tar.gz", "has_sig": false, "md5_digest": "22739f43f6e530cf2893d92c5816ffaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13876, "upload_time": "2016-01-28T16:54:12", "url": "https://files.pythonhosted.org/packages/4d/39/431918c488b7c1e24218c38a9011fe8dd011bc601ee3bb27402f41b20924/elasticstack-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "5aaeea475ba2f32cc47c49495ce8b75d", "sha256": "38c14654b44f1265ceaf6e69a03840b1bc78e4bfa8bb3e7eb68d0ba2de86f381" }, "downloads": -1, "filename": "elasticstack-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5aaeea475ba2f32cc47c49495ce8b75d", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 24153, "upload_time": "2016-05-06T17:34:15", "url": "https://files.pythonhosted.org/packages/b0/83/3f7fd0b38d8cf49599dcddd39201cd6c0a866c2a0dc1e5d8aa3dd394ca06/elasticstack-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7494be187de2743fff8896370467c546", "sha256": "b844c5a8d2326782ef525687284a3d059753dc6a1434570269f03d761042dd87" }, "downloads": -1, "filename": "elasticstack-0.4.1.tar.gz", "has_sig": false, "md5_digest": "7494be187de2743fff8896370467c546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14018, "upload_time": "2016-05-06T17:34:02", "url": "https://files.pythonhosted.org/packages/f5/5c/a3d2447231c2bca25c10b0112284d6d864a744d02064d58f3ab1914d316c/elasticstack-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "fe564ec93d8ab71df42a7e7433521c6c", "sha256": "97334f80d404867f10150966feea1b6c6cbd859dc471a57e4e962da212386f34" }, "downloads": -1, "filename": "elasticstack-0.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "fe564ec93d8ab71df42a7e7433521c6c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 24259, "upload_time": "2017-03-17T12:50:38", "url": "https://files.pythonhosted.org/packages/7e/c5/28eb449e57941d7025ce104baaecb8214b1113e1205576749d81518341d9/elasticstack-0.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a03476b4ae3c00f0e715afd5fa8f476e", "sha256": "0ceefb4ee4282e9582121bd11c4200aa80d31352c29ad63d0abc28b6a7f9daec" }, "downloads": -1, "filename": "elasticstack-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a03476b4ae3c00f0e715afd5fa8f476e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24257, "upload_time": "2017-03-17T12:48:30", "url": "https://files.pythonhosted.org/packages/36/09/64ffa3ff0ca4cd2fe256924a5f6cc98b6104726f30531acec716d3d0ead7/elasticstack-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "710f8ffac8172e44dc7696f78a59f6ce", "sha256": "8f74158fc7ea525cbee20bcb7c41a617c9c3016a12324eb48ba8a06332090357" }, "downloads": -1, "filename": "elasticstack-0.5.0.tar.gz", "has_sig": false, "md5_digest": "710f8ffac8172e44dc7696f78a59f6ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14072, "upload_time": "2017-03-17T12:48:32", "url": "https://files.pythonhosted.org/packages/e1/c3/07668bd6e3c76c2f5caeeaf0ef767078ef34c7c9e74db86447aa94d7637b/elasticstack-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fe564ec93d8ab71df42a7e7433521c6c", "sha256": "97334f80d404867f10150966feea1b6c6cbd859dc471a57e4e962da212386f34" }, "downloads": -1, "filename": "elasticstack-0.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "fe564ec93d8ab71df42a7e7433521c6c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 24259, "upload_time": "2017-03-17T12:50:38", "url": "https://files.pythonhosted.org/packages/7e/c5/28eb449e57941d7025ce104baaecb8214b1113e1205576749d81518341d9/elasticstack-0.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a03476b4ae3c00f0e715afd5fa8f476e", "sha256": "0ceefb4ee4282e9582121bd11c4200aa80d31352c29ad63d0abc28b6a7f9daec" }, "downloads": -1, "filename": "elasticstack-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a03476b4ae3c00f0e715afd5fa8f476e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24257, "upload_time": "2017-03-17T12:48:30", "url": "https://files.pythonhosted.org/packages/36/09/64ffa3ff0ca4cd2fe256924a5f6cc98b6104726f30531acec716d3d0ead7/elasticstack-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "710f8ffac8172e44dc7696f78a59f6ce", "sha256": "8f74158fc7ea525cbee20bcb7c41a617c9c3016a12324eb48ba8a06332090357" }, "downloads": -1, "filename": "elasticstack-0.5.0.tar.gz", "has_sig": false, "md5_digest": "710f8ffac8172e44dc7696f78a59f6ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14072, "upload_time": "2017-03-17T12:48:32", "url": "https://files.pythonhosted.org/packages/e1/c3/07668bd6e3c76c2f5caeeaf0ef767078ef34c7c9e74db86447aa94d7637b/elasticstack-0.5.0.tar.gz" } ] }