{ "info": { "author": "Robert Eanes", "author_email": "python@robsinbox.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP :: Indexing/Search" ], "description": "===============\npyelasticsearch\n===============\n\n.. image:: https://travis-ci.org/pyelasticsearch/pyelasticsearch.png\n :alt: Build Status\n :align: right\n :target: https://travis-ci.org/pyelasticsearch/pyelasticsearch\n\npyelasticsearch is a clean, future-proof, high-scale API to elasticsearch. It\nprovides...\n\n* Transparent conversion of Python data types to and from JSON, including\n datetimes and the arbitrary-precision Decimal type\n* Translation of HTTP failure status codes into exceptions\n* Connection pooling\n* HTTP basic auth and HTTPS support\n* Load balancing across nodes in a cluster\n* Failed-node marking to avoid downed nodes for a period\n* Optional automatic retrying of failed requests\n* Thread safety\n* Loosely coupled design, letting you customize things like JSON encoding and\n bulk indexing\n\nFor more on our philosophy and history, see `Comparison with elasticsearch-py, the \u201cOfficial Client\u201d `_.\n\n\nA Taste of the API\n==================\n\nMake a pooling, balancing, all-singing, all-dancing connection object::\n\n >>> from pyelasticsearch import ElasticSearch\n >>> es = ElasticSearch('http://localhost:9200/')\n\nIndex a document::\n\n >>> es.index('contacts',\n ... 'person',\n ... {'name': 'Joe Tester', 'age': 25, 'title': 'QA Master'},\n ... id=1)\n {u'_type': u'person', u'_id': u'1', u'ok': True, u'_version': 1, u'_index': u'contacts'}\n\nIndex a couple more documents, this time in a single request using the\nbulk-indexing API::\n\n >>> docs = [{'id': 2, 'name': 'Jessica Coder', 'age': 32, 'title': 'Programmer'},\n ... {'id': 3, 'name': 'Freddy Tester', 'age': 29, 'title': 'Office Assistant'}]\n >>> es.bulk((es.index_op(doc, id=doc.pop('id')) for doc in docs),\n ... index='contacts',\n ... doc_type='person')\n\nIf we had many documents and wanted to chunk them for performance,\n`bulk_chunks() `_ would easily rise to the task,\ndividing either at a certain number of documents per batch or, for curated\nplatforms like Google App Engine, at a certain number of bytes. Thanks to\nthe decoupled design, you can even substitute your own batching function if\nyou have unusual needs. Bulk indexing is the most demanding ES task in most\napplications, so we provide very thorough tools for representing operations,\noptimizing wire traffic, and dealing with errors. See\n`bulk() `_ for more.\n\nRefresh the index to pick up the latest::\n\n >>> es.refresh('contacts')\n {u'ok': True, u'_shards': {u'successful': 5, u'failed': 0, u'total': 10}}\n\nGet just Jessica's document::\n\n >>> es.get('contacts', 'person', 2)\n {u'_id': u'2',\n u'_index': u'contacts',\n u'_source': {u'age': 32, u'name': u'Jessica Coder', u'title': u'Programmer'},\n u'_type': u'person',\n u'_version': 1,\n u'exists': True}\n\nPerform a simple search::\n\n >>> es.search('name:joe OR name:freddy', index='contacts')\n {u'_shards': {u'failed': 0, u'successful': 42, u'total': 42},\n u'hits': {u'hits': [{u'_id': u'1',\n u'_index': u'contacts',\n u'_score': 0.028130024999999999,\n u'_source': {u'age': 25,\n u'name': u'Joe Tester',\n u'title': u'QA Master'},\n u'_type': u'person'},\n {u'_id': u'3',\n u'_index': u'contacts',\n u'_score': 0.028130024999999999,\n u'_source': {u'age': 29,\n u'name': u'Freddy Tester',\n u'title': u'Office Assistant'},\n u'_type': u'person'}],\n u'max_score': 0.028130024999999999,\n u'total': 2},\n u'timed_out': False,\n u'took': 4}\n\nPerform a search using the `elasticsearch query DSL`_:\n\n.. _`elasticsearch query DSL`: http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html\n\n::\n\n >>> query = {\n ... 'query': {\n ... 'filtered': {\n ... 'query': {\n ... 'query_string': {'query': 'name:tester'}\n ... },\n ... 'filter': {\n ... 'range': {\n ... 'age': {\n ... 'from': 27,\n ... 'to': 37,\n ... },\n ... },\n ... },\n ... },\n ... },\n ... }\n >>> es.search(query, index='contacts')\n {u'_shards': {u'failed': 0, u'successful': 42, u'total': 42},\n u'hits': {u'hits': [{u'_id': u'3',\n u'_index': u'contacts',\n u'_score': 0.19178301,\n u'_source': {u'age': 29,\n u'name': u'Freddy Tester',\n u'title': u'Office Assistant'},\n u'_type': u'person'}],\n u'max_score': 0.19178301,\n u'total': 1},\n u'timed_out': False,\n u'took': 2}\n\nDelete the index::\n\n >>> es.delete_index('contacts')\n {u'acknowledged': True, u'ok': True}\n\nFor more, see the full `API Documentation `_.\n\n\nChangelog\n=========\n\nv1.4.1 (2018-04-02)\n------\n* Recognize new \"index already exists\" spelling so we raise the right\n exceptions. Close #195.\n* Fix CI setup.\n* Drop Python 2.6 support.\n* Drop nose for testing.\n\nv1.4\n----\n* Add support for custom certificate authorities via the ``ca_certs`` arg to\n the ``ElasticSearch`` constructor.\n* Add support for client certificates via the ``client_cert`` arg.\n\nv1.3\n----\n* Add support for HTTPS.\n* Add username, password, and port kwargs to the constructor so you don't have\n to repeat their values if they're the same across many servers.\n\n\nv1.2.4 (2015-05-21)\n-------------------\n* Don't crash when the ``query_params`` kwarg is omitted from calls to\n ``send_request()``.\n\n\nv1.2.3 (2015-04-17)\n-------------------\n* Make ``delete_all_indexes()`` work.\n* Fix a bug in which specifying ``_all`` as an index name sometimes caused\n doctype names to be treated as index names.\n\n\nv1.2.2 (2015-04-10)\n-------------------\n* Correct a typo in the ``bulk()`` docs.\n\n\nv1.2.1 (2015-04-09)\n-------------------\n* Update ES doc links, now that Elastic has changed domains and reorganized\n its docs.\n* Require elasticsearch lib 1.3 or greater, as that's when it started exposing\n ``ConnectionTimeout``.\n\n\nv1.2 (2015-03-06)\n-----------------\n* Make sure the Content-Length header gets set when calling ``create_index()``\n with no explicit ``settings`` arg. This solves 411s when using nginx as a\n proxy.\n* Add ``doc_as_upsert()`` arg to ``update()``.\n* Make ``bulk_chunks()`` compute perfectly optimal results, no longer ever\n exceeding the byte limit unless a single document is over the limit on its own.\n\n\nv1.1 (2015-02-12)\n-----------------\n* Introduce new bulk API, supporting all types of bulk operations (index,\n update, create, and delete), providing chunking via ``bulk_chunks()``, and\n introducing per-action error-handling. All errors raise exceptions--even\n individual failed operations--and the exceptions expose enough data to\n identify operations for retrying or reporting. The design is decoupled in\n case you want to create your own chunkers or operation builders.\n* Deprecate ``bulk_index()`` in favor of the more capable ``bulk()``.\n* Make one last update to ``bulk_index()``. It now catches individual\n operation failures, raising ``BulkError``. Also add the ``index_field`` and\n ``type_field`` args, allowing you to index across different indices and doc\n types within one request.\n* ``ElasticSearch`` object now defaults to http://localhost:9200/ if you don't provide any node URLs.\n* Improve docs: give a better overview on the front page, and document how to\n customize JSON encoding.\n\n\nv1.0 (2015-01-23)\n-----------------\n\n* Switch to elasticsearch-py's transport and downtime-pooling machinery,\n much of which was borrowed from us anyway.\n* Make bulk indexing (and likely other network things) 15 times faster.\n* Add a comparison with the official client to the docs.\n* Fix ``delete_by_query()`` to work with ES 1.0 and later.\n* Bring ``percolate()`` es_kwargs up to date.\n* Fix all tests that were failing on modern versions of ES.\n* Tolerate errors that are non-strings and create exceptions for them properly.\n\n.. note::\n\n Backward incompatible:\n\n * Drop compatibility with elasticsearch < 1.0.\n * Redo ``cluster_state()`` to work with ES 1.0 and later. Arguments have\n changed.\n * InvalidJsonResponseError no longer provides access to the HTTP response\n (in the ``response`` property): just the bad data (the ``input`` property).\n * Change from the logger \"pyelasticsearch\" to \"elasticsearch.trace\".\n * Remove ``revival_delay`` param from ElasticSearch object.\n * Remove ``encode_body`` param from ``send_request()``. Now all dicts are\n JSON-encoded, and all strings are left alone.\n\n\nv0.7.1 (2014-08-12)\n-------------------\n\n* Brings tests up to date with ``update_aliases()`` API change.\n\n\nv0.7 (2014-08-12)\n-----------------\n\n* When an ``id_field`` is specified for ``bulk_index()``, don't index it under\n its original name as well; use it only as the ``_id``.\n* Rename ``aliases()`` to ``get_aliases()`` for consistency with other\n methods. Original name still works but is deprecated. Add an ``alias`` kwarg\n to the method so you can fetch specific aliases.\n\n.. note::\n\n Backward incompatible:\n\n * ``update_aliases()`` no longer requires a dict with an ``actions`` key;\n that much is implied. Just pass the value of that key.\n\n\nv0.6.1 (2013-11-01)\n-------------------\n\n* Update package requirements to allow requests 2.0, which is in fact\n compatible. (Natim)\n* Properly raise ``IndexAlreadyExistsException`` even if the error is reported\n by a node other than the one to which the client is directly connected.\n (Jannis Leidel)\n\n\nv0.6 (2013-07-23)\n-----------------\n\n.. note::\n\n Note the change in behavior of ``bulk_index()`` in this release. This change\n probably brings it more in line with your expectations. But double check,\n since it now overwrites existing docs in situations where it didn't before.\n\n Also, we made a backward-incompatible spelling change to a little-used\n ``index()`` kwarg.\n\n* ``bulk_index()`` now overwrites any existing doc of the same ID and doctype.\n Before, in certain versions of ES (like 0.90RC2), it did nothing at all if a\n document already existed, probably much to your surprise. (We removed the\n ``'op_type': 'create'`` pair, whose intentions were always mysterious.)\n (Gavin Carothers)\n* Rename the ``force_insert`` kwarg of ``index()`` to ``overwrite_existing``.\n The old name implied the opposite of what it actually did. (Gavin Carothers)\n\n\nv0.5 (2013-04-20)\n-----------------\n\n* Support multiple indices and doctypes in ``delete_by_query()``. Accept both\n string and JSON queries in the ``query`` arg, just as ``search()`` does.\n Passing the ``q`` arg explicitly is now deprecated.\n* Add ``multi_get``.\n* Add ``percolate``. Thanks, Adam Georgiou and Joseph Rose!\n* Add ability to specify the parent document in ``bulk_index()``. Thanks, Gavin\n Carothers!\n* Remove the internal, undocumented ``from_python`` method. django-haystack\n users will need to upgrade to a newer version that avoids using it.\n* Refactor JSON encoding machinery. Now it's clearer how to customize it: just\n plug your custom JSON encoder class into ``ElasticSearch.json_encoder``.\n* Don't crash under ``python -OO``.\n* Support non-ASCII URL path components (like Unicode document IDs) and query\n string param values.\n* Switch to the nose testrunner.\n\n\nv0.4.1 (2013-03-25)\n-------------------\n\n* Fix a bug introduced in 0.4 wherein \"None\" was accidentally sent to ES when\n an ID wasn't passed to ``index()``.\n\n\nv0.4 (2013-03-19)\n-----------------\n\n* Support Python 3.\n* Support more APIs:\n\n * ``cluster_state``\n * ``get_settings``\n * ``update_aliases`` and ``aliases``\n * ``update`` (existed but didn't work before)\n\n* Support the ``size`` param of the ``search`` method. (You can now change\n ``es_size`` to ``size`` in your code if you like.)\n* Support the ``fields`` param on ``index`` and ``update`` methods, new since\n ES 0.20.\n* Maintain better precision of floats when passed to ES.\n* Change endpoint of bulk indexing so it works on ES < 0.18.\n* Support documents whose ID is 0.\n* URL-escape path components, so doc IDs containing funny chars work.\n* Add a dedicated ``IndexAlreadyExistsError`` exception for when you try to\n create an index that already exists. This helps you trap this situation\n unambiguously.\n* Add docs about upgrading from pyes.\n* Remove the undocumented and unused ``to_python`` method.\n\n\nv0.3 (2013-01-10)\n-----------------\n\n* Correct the ``requests`` requirement to require a version that has everything\n we need. In fact, require requests 1.x, which has a stable API.\n* Add ``update()`` method.\n* Make ``send_request`` method public so you can use ES APIs we don't yet\n explicitly support.\n* Handle JSON translation of Decimal class and sets.\n* Make ``more_like_this()`` take an arbitrary request body so you can filter\n the returned docs.\n* Replace the ``fields`` arg of ``more_like_this`` with ``mlt_fields``. This\n makes it actually work, as it's the param name ES expects.\n* Make explicit our undeclared dependency on simplejson.\n\n\nv0.2 (2012-10-06)\n-----------------\n\nMany thanks to Erik Rose for almost completely rewriting the API to follow\nbest practices, improve the API user experience, and make pyelasticsearch\nfuture-proof.\n\n.. note::\n\n This release is **backward-incompatible** in numerous ways, please\n read the following section carefully. If in doubt, you can easily stick\n with pyelasticsearch 0.1.\n\nBackward-incompatible changes:\n\n* Simplify ``search()`` and ``count()`` calling conventions. Each now supports\n either a textual or a dict-based query as its first argument. There's no\n longer a need to, for example, pass an empty string as the first arg in order\n to use a JSON query (a common case).\n\n* Standardize on the singular for the names of the ``index`` and ``doc_type``\n kwargs. It's not always obvious whether an ES API allows for multiple\n indexes. This was leading me to have to look aside to the docs to determine\n whether the kwarg was called ``index`` or ``indexes``. Using the singular\n everywhere will result in fewer doc lookups, especially for the common case\n of a single index.\n\n* Rename ``morelikethis`` to ``more_like_this`` for consistency with other\n methods.\n\n* ``index()`` now takes ``(index, doc_type, doc)`` rather than ``(doc, index,\n doc_type)``, for consistency with ``bulk_index()`` and other methods.\n\n* Similarly, ``put_mapping()`` now takes ``(index, doc_type, mapping)``\n rather than ``(doc_type, mapping, index)``.\n\n* To prevent callers from accidentally destroying large amounts of data...\n\n * ``delete()`` no longer deletes all documents of a doctype when no ID is\n specified; use ``delete_all()`` instead.\n * ``delete_index()`` no longer deletes all indexes when none are given; use\n ``delete_all_indexes()`` instead.\n * ``update_settings()`` no longer updates the settings of all indexes when\n none are specified; use ``update_all_settings()`` instead.\n\n* ``setup_logging()`` is gone. If you want to configure logging, use the\n logging module's usual facilities. We still log to the \"pyelasticsearch\"\n named logger.\n\n* Rethink error handling:\n\n * Raise a more specific exception for HTTP error codes so callers can catch\n it without examining a string.\n * Catch non-JSON responses properly, and raise the more specific\n ``NonJsonResponseError`` instead of the generic ``ElasticSearchError``.\n * Remove mentions of nonexistent exception types that would cause crashes\n in their ``except`` clauses.\n * Crash harder if JSON encoding fails: that always indicates a bug in\n pyelasticsearch.\n * Remove the ill-defined ``ElasticSearchError``.\n * Raise ``ConnectionError`` rather than ``ElasticSearchError`` if we can't\n connect to a node (and we're out of auto-retries).\n * Raise ``ValueError`` rather than ``ElasticSearchError`` if no documents\n are passed to ``bulk_index``.\n * All exceptions are now more introspectable, because they don't\n immediately mash all the context down into a string. For example, you can\n recover the unmolested response object from ``ElasticHttpError``.\n * Removed ``quiet`` kwarg, meaning we always expose errors.\n\nOther changes:\n\n* Add Sphinx documentation.\n* Add load-balancing across multiple nodes.\n* Add failover in the case where a node doesn't respond.\n* Add ``close_index``, ``open_index``, ``update_settings``, ``health``.\n* Support passing arbitrary kwargs through to the ES query string. Known ones\n are taken verbatim; unanticipated ones need an \"\\es_\" prefix to guarantee\n forward compatibility.\n* Automatically convert ``datetime`` objects when encoding JSON.\n* Recognize and convert datetimes and dates in pass-through kwargs. This is\n useful for ``timeout``.\n* In routines that can take either one or many indexes, don't require the\n caller to wrap a single index name in a list.\n* Many other internal improvements\n\n\nv0.1 (2012-08-30)\n-----------------\n\nInitial release based on the work of Robert Eanes and other authors", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pyelasticsearch/pyelasticsearch", "keywords": "", "license": "BSD", "maintainer": "Erik Rose", "maintainer_email": "erik@mozilla.com", "name": "pyelasticsearch", "package_url": "https://pypi.org/project/pyelasticsearch/", "platform": "", "project_url": "https://pypi.org/project/pyelasticsearch/", "project_urls": { "Homepage": "https://github.com/pyelasticsearch/pyelasticsearch" }, "release_url": "https://pypi.org/project/pyelasticsearch/1.4.1/", "requires_dist": null, "requires_python": "", "summary": "Flexible, high-scale API to elasticsearch", "version": "1.4.1" }, "last_serial": 3726759, "releases": { "0.0.5": [ { "comment_text": "", "digests": { "md5": "c24cd85848a057ec80010f22a1a063f6", "sha256": "a346ec223a40daa8c6e3371160071dff369e3b6e3cc07bf3daf394436a842979" }, "downloads": -1, "filename": "pyelasticsearch-0.0.5.tar.gz", "has_sig": false, "md5_digest": "c24cd85848a057ec80010f22a1a063f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5764, "upload_time": "2012-01-02T21:42:49", "url": "https://files.pythonhosted.org/packages/6d/5f/9ad3c167087ad8d41c043b076aaee9b2fb52435ca7e8f513c811821f0518/pyelasticsearch-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "a0b2ce8fc4facf7eaf61a19856e5717d", "sha256": "130dff63530cb8931df8a3264d7396039143cb827e77b9106dff47411239f26f" }, "downloads": -1, "filename": "pyelasticsearch-0.0.6.tar.gz", "has_sig": false, "md5_digest": "a0b2ce8fc4facf7eaf61a19856e5717d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6209, "upload_time": "2012-03-27T07:05:35", "url": "https://files.pythonhosted.org/packages/d8/16/fc7e8571f405b95f35c98224e0b72e5693aa7b20d199279be2277fb4b807/pyelasticsearch-0.0.6.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "c25ef7b8eaa9de6cd9f436e1b3cfb5b7", "sha256": "26e28cd9b30716c872e15b53a553e74082bc6cf7fcf5c9617e2ea8d022a51ae9" }, "downloads": -1, "filename": "pyelasticsearch-0.1.tar.gz", "has_sig": false, "md5_digest": "c25ef7b8eaa9de6cd9f436e1b3cfb5b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7516, "upload_time": "2012-08-30T12:15:11", "url": "https://files.pythonhosted.org/packages/eb/97/a185a98bb02abf04390294f97b853faa6f2dccf0659eff8602c44ad45448/pyelasticsearch-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "1af87604b5fe73923e22c43ae0e30c6d", "sha256": "7ec56f072184c390cf76d52262ff05bc5664fc93dce2c995a98aad68a0a66ad7" }, "downloads": -1, "filename": "pyelasticsearch-0.2.tar.gz", "has_sig": true, "md5_digest": "1af87604b5fe73923e22c43ae0e30c6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29026, "upload_time": "2012-10-06T15:02:02", "url": "https://files.pythonhosted.org/packages/85/aa/38033ff6dd32055a148273a7d47b3217a6812ff031762d87ef379dd5e30f/pyelasticsearch-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "acd0dafe3b540fb7a734f5d46b379381", "sha256": "9dfc6e3e055d61b648eac2abd9a3d93ebdfe11746e370056934adc7b69a7be25" }, "downloads": -1, "filename": "pyelasticsearch-0.3.tar.gz", "has_sig": false, "md5_digest": "acd0dafe3b540fb7a734f5d46b379381", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31131, "upload_time": "2013-01-10T23:12:54", "url": "https://files.pythonhosted.org/packages/dc/f0/7779aa1de7b65917c6c1fae3777494d9ccd541608a0b1d84be3777be3582/pyelasticsearch-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "36283e09756d6a7b01293f48c2c0d8c8", "sha256": "f6e7c2fad42bdac041daad5c21af46af3fae48466103ececef630a7a2f5056be" }, "downloads": -1, "filename": "pyelasticsearch-0.4.tar.gz", "has_sig": false, "md5_digest": "36283e09756d6a7b01293f48c2c0d8c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36553, "upload_time": "2013-03-20T00:33:50", "url": "https://files.pythonhosted.org/packages/5e/10/f6f4da8740fefb9d160d65d549d2f977739d3f57f289efc970ba5924f48a/pyelasticsearch-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "e8f2b4449626b9790a71a58d63847988", "sha256": "f03aeee00d38d2706fede4e444679d316a332a2bbf766d9d2b32e0c4c0fe2bbe" }, "downloads": -1, "filename": "pyelasticsearch-0.4.1.tar.gz", "has_sig": false, "md5_digest": "e8f2b4449626b9790a71a58d63847988", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36768, "upload_time": "2013-03-25T23:15:38", "url": "https://files.pythonhosted.org/packages/e0/18/b8c99c535de5692fd835dd5173f6c7ec6b29ee08e3390d10f5d0c3f2edbb/pyelasticsearch-0.4.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "af130b69b83eb792b50698c54bd8dbba", "sha256": "3ce93b8479d7f85fb0af23460a795cb4a80cb4065f2750bd6c3b73d94a8c1fcf" }, "downloads": -1, "filename": "pyelasticsearch-0.5.tar.gz", "has_sig": false, "md5_digest": "af130b69b83eb792b50698c54bd8dbba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39968, "upload_time": "2013-04-21T04:23:08", "url": "https://files.pythonhosted.org/packages/bc/dd/4e707cad4808910eacb076e986fe91bf7d74616d8ce2c941e4e4622e7b8f/pyelasticsearch-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "2d41545c56e24182a70f8c58adc825a3", "sha256": "b64bea7e92073917c94f5fcb4a29af5d37688236aad9ceea53184b49d5d2e118" }, "downloads": -1, "filename": "pyelasticsearch-0.6.tar.gz", "has_sig": false, "md5_digest": "2d41545c56e24182a70f8c58adc825a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40913, "upload_time": "2013-07-25T14:57:42", "url": "https://files.pythonhosted.org/packages/95/2b/c6554f94fb6b5969d18fbf6cdf5a172dc265ae85a88abec1c40e152e4c56/pyelasticsearch-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "7e7f82dc17bad000aa6b74fd04673fac", "sha256": "daea4813a78949f9f1941be2c56d5abe2c99a8582350caf059804fb65788aca5" }, "downloads": -1, "filename": "pyelasticsearch-0.6.1.tar.gz", "has_sig": false, "md5_digest": "7e7f82dc17bad000aa6b74fd04673fac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41412, "upload_time": "2013-11-01T14:22:26", "url": "https://files.pythonhosted.org/packages/60/1f/28be7f6a26b09b45f4daa65fe7730fb6e87711355fb48844dcc9ed8c9cc7/pyelasticsearch-0.6.1.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "ac24743afe38cccba7180877a7f81220", "sha256": "77d5b83454a66b89c8079d94a4534faf59a7e1d4aef0f2f589618331151d7626" }, "downloads": -1, "filename": "pyelasticsearch-0.7.tar.gz", "has_sig": false, "md5_digest": "ac24743afe38cccba7180877a7f81220", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42151, "upload_time": "2014-08-12T21:10:22", "url": "https://files.pythonhosted.org/packages/61/5c/894da2bdc07733c3a3758aee835e6a5d84f393fafe33230681c34e32c1eb/pyelasticsearch-0.7.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "6fe0218e784b2e913e257fb1def14f33", "sha256": "df7a7ef0be35a8632f8e0cf53f5c8f7cd7456daa2470bb5a683feeff983d52a8" }, "downloads": -1, "filename": "pyelasticsearch-0.7.1.tar.gz", "has_sig": false, "md5_digest": "6fe0218e784b2e913e257fb1def14f33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42244, "upload_time": "2014-08-12T21:15:49", "url": "https://files.pythonhosted.org/packages/7c/00/428e6e708fdee37a0908db83f780dbe231cd0c56eabd3fe3013aefc6bdfb/pyelasticsearch-0.7.1.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "9d0eaf1ed1dd580897a309f6f2c46e9e", "sha256": "44ddfb1225054d7d6b1d02e9338e7d4809be94edbe9929a2ec0807d38df993fa" }, "downloads": -1, "filename": "pyelasticsearch-1.0.tar.gz", "has_sig": false, "md5_digest": "9d0eaf1ed1dd580897a309f6f2c46e9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42432, "upload_time": "2015-01-23T21:47:04", "url": "https://files.pythonhosted.org/packages/ec/4d/ddf33d2ff7c59faf570e0863ec4cc79b89cb4be2403ce99221d3c82685a2/pyelasticsearch-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "52ed328e28828ca151267b5a59da3d77", "sha256": "f43ea99c3811fe9fe6c0fb8a5e69648e1b3af7ae1ae8d648738e74cb84768077" }, "downloads": -1, "filename": "pyelasticsearch-1.1.tar.gz", "has_sig": false, "md5_digest": "52ed328e28828ca151267b5a59da3d77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51350, "upload_time": "2015-02-12T19:59:09", "url": "https://files.pythonhosted.org/packages/c0/ed/cf902f29ce1ebcd8c1c999d0065880053d7c025b26918330e2778c67e03e/pyelasticsearch-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "3199ac977a696a1004c31e3af2af1b00", "sha256": "881f282343611c2d45ad20a8335b75cfcd67ba7b5e45ef688f27bdeee9858dba" }, "downloads": -1, "filename": "pyelasticsearch-1.2.tar.gz", "has_sig": false, "md5_digest": "3199ac977a696a1004c31e3af2af1b00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51713, "upload_time": "2015-03-06T19:36:40", "url": "https://files.pythonhosted.org/packages/a7/6e/ab259d018d59e3fc9bb28a83f1d66f2021825eaced5a7da40fecdca23f31/pyelasticsearch-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "ff197930be2c73667620d7321a796e2c", "sha256": "b74c55247ec83904d4adda1681261cd57efb7a367cb7b28f33d32a19c5c8aa60" }, "downloads": -1, "filename": "pyelasticsearch-1.2.1.tar.gz", "has_sig": false, "md5_digest": "ff197930be2c73667620d7321a796e2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52037, "upload_time": "2015-04-09T14:57:15", "url": "https://files.pythonhosted.org/packages/19/5a/74124eb85a52aca1fb02e0bae89d422b9609106b90457abea7cdb79808fb/pyelasticsearch-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "f0f7080b907d36cdb26123b9f39d481e", "sha256": "2feddd3fa582a02dcec355a038596de5a75121a958c35ebf070909d50d80a288" }, "downloads": -1, "filename": "pyelasticsearch-1.2.2.tar.gz", "has_sig": false, "md5_digest": "f0f7080b907d36cdb26123b9f39d481e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52128, "upload_time": "2015-04-10T15:11:53", "url": "https://files.pythonhosted.org/packages/02/ba/2af6f763f14eebe8173777c8096170e4d2c018ed09ddbdf7804f94b6e3ab/pyelasticsearch-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "d512e53ded235de21cfd8899c61fe015", "sha256": "23ff52f5cc46bf3e63b3755b7b88ef48c933ae9e001f3f2b22674672a1c49346" }, "downloads": -1, "filename": "pyelasticsearch-1.2.3.tar.gz", "has_sig": false, "md5_digest": "d512e53ded235de21cfd8899c61fe015", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52392, "upload_time": "2015-04-17T20:33:16", "url": "https://files.pythonhosted.org/packages/39/31/c733be47b596e2cf615b827d034ea3200c0db664243c12147801a95df85c/pyelasticsearch-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "335b6b7ee3f5fde9a2018ed4502a94d7", "sha256": "a3fa63847e4608ffbedf22614de2c09258904662c9fff7fab9051fee2990f04f" }, "downloads": -1, "filename": "pyelasticsearch-1.2.4.tar.gz", "has_sig": false, "md5_digest": "335b6b7ee3f5fde9a2018ed4502a94d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52576, "upload_time": "2015-05-22T04:19:09", "url": "https://files.pythonhosted.org/packages/57/0e/51fd0b1829322a70202c936705fd5300672964fd6263e01f635bc9768aaf/pyelasticsearch-1.2.4.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "0b1778a0acee4e708bc93859e3135e0b", "sha256": "3f7fc8196151f3e957f7742748ce2a5647492d8a0bb71ba4f9af1aebffa66d41" }, "downloads": -1, "filename": "pyelasticsearch-1.3.tar.gz", "has_sig": false, "md5_digest": "0b1778a0acee4e708bc93859e3135e0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53322, "upload_time": "2015-06-02T16:03:33", "url": "https://files.pythonhosted.org/packages/34/fe/527ff9b63b56fc38b304dfee6fe99d06e68a1ef129b87035593815d0da88/pyelasticsearch-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "ed61ebb7b253364e55b4923d11e17049", "sha256": "277733776ed538bb2fef4ee3c80d71b9309e6a43d1b891a1dfd06ce9283597a3" }, "downloads": -1, "filename": "pyelasticsearch-1.4.tar.gz", "has_sig": false, "md5_digest": "ed61ebb7b253364e55b4923d11e17049", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53595, "upload_time": "2015-06-11T16:20:18", "url": "https://files.pythonhosted.org/packages/2f/3a/7643cfcfc4cbdbb20ada800bbd54ac9705d0c047d7b8f8d5eeeb3047b4eb/pyelasticsearch-1.4.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "dcb75cd348c2578534ad57e4c1d64bae", "sha256": "492de90704726fdf61e323d6fc4061e50c78578ea2f5dfe65294791456e0701d" }, "downloads": -1, "filename": "pyelasticsearch-1.4.1.tar.gz", "has_sig": false, "md5_digest": "dcb75cd348c2578534ad57e4c1d64bae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55610, "upload_time": "2018-04-02T16:58:32", "url": "https://files.pythonhosted.org/packages/5b/28/c580f98aa842629a7cb8d959621bdd7f779ae20a36ae49e7748f98d5a957/pyelasticsearch-1.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dcb75cd348c2578534ad57e4c1d64bae", "sha256": "492de90704726fdf61e323d6fc4061e50c78578ea2f5dfe65294791456e0701d" }, "downloads": -1, "filename": "pyelasticsearch-1.4.1.tar.gz", "has_sig": false, "md5_digest": "dcb75cd348c2578534ad57e4c1d64bae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55610, "upload_time": "2018-04-02T16:58:32", "url": "https://files.pythonhosted.org/packages/5b/28/c580f98aa842629a7cb8d959621bdd7f779ae20a36ae49e7748f98d5a957/pyelasticsearch-1.4.1.tar.gz" } ] }