{ "info": { "author": "Per Kraulis", "author_email": "per.kraulis@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.6", "Topic :: Database :: Front-Ends", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# CouchDB2\n\nCouchDB v2.x Python 3 interface in a single module.\nAlso a command line tool; [see below](#command-line-tool).\n\nMost, but not all, features of this module work with CouchDB version < 2.0.\n\n## Installation\n\nThe CouchDB2 module is available at [PyPi](https://pypi.org/project/CouchDB2/).\nIt can be installed using [pip](https://pip.pypa.io/en/stable/):\n\n```\n$ pip install couchdb2\n```\n\nThe module relies on `requests`: http://docs.python-requests.org/en/master/\nand `tqdm`: https://tqdm.github.io/\n\n## Example code\n\n```python\nimport couchdb2\n\nserver = couchdb2.Server() # Arguments required according to local setup\ndb = server.create(\"test\")\n\ndoc1 = {\"_id\": \"myid\", \"name\": \"mydoc\", \"level\": 4}\ndb.put(doc1)\ndoc = db[\"myid\"]\nassert doc == doc1\n\ndoc2 = {\"name\": \"another\", \"level\": 0}\ndb.put(doc2)\nprint(doc2)\n# {\"_id\": \"66b5...\", \"_rev\": \"1-f3ac...\", \"name\": \"another\", \"level\": 0}\n\ndb.put_design(\"mydesign\", \n {\"views\":\n {\"name\": {\"map\": \"function (doc) {emit(doc.name, null);}\"}\n }\n })\nresult = db.view(\"mydesign\", \"name\", key=\"another\", include_docs=True)\nassert len(result) == 1\nprint(result[0].doc) # Same printout as above, using OrderedDict\n\ndb.destroy()\n```\n\n## News\n\n- 1.12.0\n - Added progressbar to `dump` and `undump`, using `tqdm`.\n - Corrected bug fetching attachments with names having \"weird\" characters.\n - Corrected bug creating partitioned database; thanks to https://github.com/N-Vlahovic\n- 1.11.0\n - Added `db.changes()`. **But not adequately tested!**\n - Corrected returned value from `set_replicate`: JSON data rather than\n response from `requests`.\n - Refactored code: Got rid of `object_pairs_hook=dict` in `json()`.\n `response.json()` on a separate line everywhere.\n- 1.10.0\n - Changed to unittest for the test script. Got rid of package `pytest`.\n Added some tests.\n - Improved the documentation in source and README.\n - Fixed setup.py.\n - Added `__del__` to Server class.\n - Simplified `get_scheduler_docs`.\n - Hid module-level functions which are just help functions for the\n command-line tool.\n - Removed `CouchDB version >= 2.0` from some methods incorrectly\n marked as such.\n - Changed signatures of class Database methods `__init__`, `create`,\n `find` and `explain`.\n- 1.9.5\n - Added `__str__` to Server class.\n- 1.9.4\n - Added `update` parameter on views; thanks to https://github.com/rbarreiro\n - Added `n` and `q` parameters when creating a database; thanks to\n https://github.com/elChapoSing\n- 1.9.3\n - Handle `get_attachment` rev/If-Match issue; thanks to https://github.com/seb4itik\n- 1.9.2\n - Added retrieve of conflicts; thanks to https://github.com/seb4itik\n- 1.9.1\n - Added `ca_file` parameter for HTTPS; thanks to https://github.com/seb4itik\n- 1.9.0\n - Changed `put_attachment` and `delete_attachment` to update the input\n `doc` by the new `_rev` value.\n- 1.8.5\n - Added `ids()`: Return an iterator over all document identifiers.\n- 1.8.4\n - Added `get_bulk(ids)`: Get several documents in one operation.\n\n## `class Server`\n```python\nserver = Server(href=\"http://localhost:5984/\",\n username=None, password=None,\n use_session=True, ca_file=None)\n```\nAn instance of the class is a connection to the CouchDB server.\n\n- `href` is the URL to the CouchDB server itself.\n- `username` and `password` specify the CouchDB user account to use.\n- If `use_session` is `True`, then an authenticated session is used\n transparently. Otherwise, the values of `username` and `password` are\n sent with each request.\n- `ca_file` is a path to a file or a directory containing CAs if\n you need to access databases in HTTPS.\n\n### `server.version`\n\nProperty attribute providing the version of the CouchDB server software.\n\n### `server.user_context`\n\nProperty attribute providing the user context of the connection.\n\n### `__str__`\n```python\nstr(server)\n```\nReturns a simple string representation of the server interface.\n\n### `__len__`\n```python\nlen(server)\n```\nReturns the number of user-defined databases.\n\n### `__iter__`\n```python\nfor db in server: ...\n```\nReturns an iterator over all user-defined databases on the server.\n\n### `__getitem__`\n```python\ndb = server[name]\n```\nGets the named database.\n\n### `__contains__`\n```python\nif name in server: ...\n```\nDoes the named database exist?\n\n### `__call__`\n```python\ndata = server()\n```\nReturns meta information about the server.\n\n### `__del__`\n\nClean-up: Closes the `requests` session.\n\nNot for explicit use; it is automatically called when the Python\ngarbage collection mechanism deletes the instance.\n\n### `server.up()`\n\nIs the server up and running, ready to respond to requests?\nReturns a boolean.\n\n*CouchDB version >= 2.0*\n\n### `server.get(name, check=True)`\n\nGets the named database. Returns an instance of class `Database`.\n\nRaises `NotFoundError` if `check` is `True` and the database does not exist.\n\n### `server.create(name, n=3, q=8, partitioned=False)`\n\nCreates the named database. Raises `CreationError` if it already exists.\n\n- `name`: The name of the database.\n- `n`: The number of replicas.\n- `q`: The number of shards.\n- `partitioned`: Whether to create a partitioned database.\n\n### `server.get_config(nodename=\"_local\")`\n\nGets the named node's configuration.\n\n### `server.get_active_tasks()`\n\nReturns a list of running tasks.\n\n### `server.get_cluster_setup(ensure_dbs_exists=None)`\n\nReturns the status of the node or cluster.\n\n`ensure_dbs_exists` is a list system databases to ensure exist on the\nnode/cluster. Defaults to `[\"_users\",\"_replicator\"]`.\n\n*CouchDB version >= 2.0*\n\n### `server.set_cluster_setup(doc)`\n\nConfigures a node as a single node, as part of a cluster, or finalise a\ncluster.\n\nSee the CouchDB documentation for the contents of `doc`.\n\n*CouchDB version >= 2.0*\n\n### `server.get_membership()`\n\nReturns data about the nodes that are part of the cluster.\n\n*CouchDB version >= 2.0*\n\n### `server.set_replicate(doc)`\n\nRequest, configure, or stop, a replication operation.\n\nSee the CouchDB documentation for the contents of `doc`.\n\n### `server.get_scheduler_jobs(limit=None, skip=None)`\n\nGets a list of replication jobs.\n\n- `limit`: How many results to return.\n- `skip`: How many result to skip starting at the beginning,\n ordered by replication ID.\n\n### `server.get_scheduler_docs(limit=None, skip=None)`\n\nGets information about replication document states.\n\n- `limit`: How many results to return.\n- `skip`: How many result to skip starting at the beginning,\n ordered by document ID.\n\n### `server.get_node_stats(nodename=\"_local\")`\n\nReturns statistics for the running server.\n\n### `server.get_node_system(nodename=\"_local\")`\n\nReturns various system-level statistics for the running server.\n\n## `class Database`\n```python\ndb = Database(server, name, check=True)\n```\n\nAn instance of the class is an interface to a CouchDB database.\n\n- `server`: An instance of Server.\n- `name`: The name of the database.\n- If `check` is `True`, then raise `NotFoundError` if the the database\n does not exist.\n\n### `__str__`\n```python\nstr(db)\n```\nReturns the name of the CouchDB database.\n\n### `__len__`\n```python\nlen(db)\n```\nReturns the number of documents in the database.\n\n### `__contains__`\n```python\nif identifier in db: ...\n```\nDoes a document with the given identifier exist in the database?\n\n### `__iter__`\n```python\nfor doc in db: ...\n```\nReturns an iterator over all documents in the database.\n\n### `__getitem__`\n```python\ndoc = db[id]\n```\nReturns the document with the given id.\n\n### `db.exists()`\n\nDoes the database exist? Returns a boolean.\n\n### `db.check()`\n\nRaises `NotFoundError` if the database does not exist.\n\n### `db.create(n=3, q=8, partitioned=False)`\n\nCreates the database. Raises `CreationError` if it already exists.\n\n- `n`: The number of replicas.\n- `q`: The number of shards.\n- `partitioned`: Whether to create a partitioned database.\n\n### `db.destroy()`\n\nDeletes the database and all its contents.\n\n### `db.get_info()`\n\nReturns a dictionary with information about the database.\n\n### `db.get_security()`\n\nReturns a dictionary with security information for the database.\n\n### `db.set_security(doc)`\n\nSets the security information for the database.\n\nSee the CouchDB documentation for the contents of `doc`.\n\n### `db.compact(finish=False, callback=None)`\n\nCompacts the CouchDB database by rewriting the disk database file\nand removing old revisions of documents.\n\n- If `finish` is `True`, then return only when compaction is done.\n- In addition, if defined, the function `callback(seconds)` is called\n every second until compaction is done.\n\n### `db.compact_design(designname)`\n\nCompacts the view indexes associated with the named design document.\n\n### `db.view_cleanup()`\n\nRemoves unnecessary view index files due to changed views in\ndesign documents of the database.\n\n### `db.get(id, default=None, rev=None, revs_info=False, conflicts=False)`\n\nReturns the document with the given identifier, or the `default` value\nif not found.\n\n- `rev`: Retrieves document of specified revision, if specified.\n- `revs_info`: Whether to include detailed information for all known\n document revisions.\n- `conflicts`: Whether to include information about conflicts in\n the document in the `_conflicts` attribute.\n\n### `db.get_bulk(ids)`\n\nGets several documents in one operation, given a list of document identifiers,\neach of which is a string (the document `_id`), or a tuple of the\ndocument `(_id, _rev)`.\n\nReturns a list of documents. If no document is found for a specified\n`_id` or `(_id, _rev`), `None` is returned in that slot of the list.\n\n### `db.ids()`\n```python\nfor identifier in db.ids(): ...\n```\n\nReturns an iterator over all document identifiers.\n\n### `db.put(doc)`\n\nInserts or updates the document.\n\nIf the document is already in the database, the `_rev` item must\nbe present in the document; its value will be updated.\n\nIf the document does not contain an item `_id`, it is added\nhaving a UUID4 hex value. The `_rev` item will also be added.\n\n### `db.update(docs)`\n\nPerforms a bulk update or insertion of the given documents using a\nsingle HTTP request.\n\nReturns an iterable (list) over the resulting documents.\n\n`docs` is a sequence of dictionaries or `Document` objects, or\nobjects providing an `items()` method that can be used to convert\nthem to a dictionary.\n\nThe return value of this method is a list containing a tuple for every\nelement in the `docs` sequence. Each tuple is of the form\n`(success, docid, rev_or_exc)`, where `success` is a boolean\nindicating whether the update succeeded, `docid` is the ID of the\ndocument, and `rev_or_exc` is either the new document revision, or\nan exception instance (e.g. `ResourceConflict`) if the update failed.\n\nIf an object in the documents list is not a dictionary, this method\nlooks for an `items()` method that can be used to convert the object\nto a dictionary.\n\n### `db.delete(doc)`\n\nDeletes the document, which must contain the `_id` and `_rev` items.\n\n### `db.purge(docs)`\n\nPerforms purging (complete removal) of the given list of documents.\n\nUses a single HTTP request to purge all given documents. Purged\ndocuments do not leave any meta-data in the storage and are not\nreplicated.\n\n### `db.get_designs()`\n\nReturns the design documents for the database.\n\n**NOTE:** *CouchDB version >= 2.2*\n\n### `db.get_design(designname)`\n\nGets the named design document.\n\n### `db.put_design(designname, doc, rebuild=True)`\n\nInserts or updates the design document under the given name.\n\nIf the existing design document is identical, no action is taken and\n`False` is returned, else the document is updated and `True` is returned.\n\nIf `rebuild` is `True`, force view indexes to be rebuilt after update\nby accessing the view. This may take some time.\n\nExample of doc:\n```\n {\"views\":\n {\"name\":\n {\"map\": \"function (doc) {emit(doc.name, null);}\"},\n \"name_sum\":\n {\"map\": \"function (doc) {emit(doc.name, 1);}\",\n \"reduce\": \"_sum\"},\n \"name_count\":\n {\"map\": \"function (doc) {emit(doc.name, null);}\",\n \"reduce\": \"_count\"}\n }}\n```\n\nMore info: http://docs.couchdb.org/en/latest/api/ddoc/common.html\n\n### `db.view(designname, viewname, **kwargs)`\n\nQuery a view index to obtain data and/or documents.\n\nKeyword arguments (default value is `None` unless specified):\n\n- `key`: Return only rows that match the specified key.\n- `keys`: Return only rows where they key matches one of those specified as a list.\n- `startkey`: Return rows starting with the specified key.\n- `endkey`: Stop returning rows when the specified key is reached.\n- `skip`: Skip the number of rows before starting to return rows.\n- `limit`: Limit the number of rows returned.\n- `sorted=True`: Sort the rows by the key of each returned row. The items\n `total_rows` and `offset` are not available if set to `False`.\n- `descending=False`: Return the rows in descending order.\n- `group=False`: Group the results using the reduce function of the design\n document to a group or a single row. If set to `True` implies `reduce`\n to `True` and defaults the `group_level` to the maximum.\n- `group_level`: Specify the group level to use. Implies `group` is `True`.\n- `reduce`: If set to `False` then do not use the reduce function if there is\n one defined in the design document. Default is to use the reduce function\n if defined.\n- `include_docs=False`: If `True`, include the document for each row. This\n will force `reduce` to `False`.\n- `update=\"true\"`: Whether ir not the view should be updated prior to\n returning the result. Supported value are `\"true\"`, `\"false\"` and `\"lazy\"`.\n\nReturns an instance of [class ViewResult](#class-viewresultrows-offset-total_rows),\ncontaining the following attributes:\n\n- `rows`: The list of `Row` objects.\n- `offset`: The offset used for the set of rows.\n- `total_rows`: The total number of rows selected.\n\nA Row object contains the following attributes:\n\n- `id`: The identifier of the document, if any.\n- `key`: The key for the index row.\n- `value`: The value for the index row.\n- `doc`: The document, if any.\n\n### `db.get_indexes()`\n\nReturns a list of all Mango indexes in the database.\n\n*CouchDB version >= 2.0*\n\n### `db.put_index(fields, ddoc=None, name=None, selector=None)`\n\nStores a Mango index specification.\n\n- `fields`: A list of fields to index.\n- `ddoc`: The design document name. Generated if none given.\n- `name`: The name of the index. Generated if none given.\n- `selector`: A partial filter selector, which may be omitted.\n\nReturns a dictionary with items `id` (design document name; sic!),\n`name` (index name) and `result` (`created` or `exists`).\n\n*CouchDB version >= 2.0*\n\n### `db.delete_index(designname, name)`\n\nDeletes the named index in the design document of the given name.\n\n*CouchDB version >= 2.0*\n\n### `db.find(selector, **kwargs)`\n```python\ndata = db.find(selector, limit=25, skip=None, sort=None, fields=None,\n use_index=None, bookmark=None, update=True, conflicts=False)\n```\nSelects documents according to the Mango index `selector`.\n\n- `selector`: The Mango index. For more information on selector syntax,\n see https://docs.couchdb.org/en/latest/api/database/find.html#find-selectors\n- `limit`: Maximum number of results returned.\n- `skip`: Skip the given number of results.\n- `sort`: A list of dictionaries specifying the order of the results,\n where the field name is the key and the direction is the value;\n either `\"asc\"` or `\"desc\"`.\n- `fields`: List specifying which fields of each result document should\n be returned. If omitted, return the entire document.\n- `use_index`: String or list of strings specifying the index(es) to use.\n- `bookmark`: A string that marks the end the previous set of results.\n If given, the next set of results will be returned.\n- `update`: Whether to update the index prior to returning the result.\n- `conflicts`: Whether to include conflicted documents.\n\nReturns a dictionary with items `docs`, `warning`, `execution_stats`\nand `bookmark`.\n\n*CouchDB version >= 2.0*\n\n### `db.explain(selector, **kwargs)`\n```python\ndata = db.explain(selector, use_index=None, limit=None, skip=None,\n sort=None, fields=None, bookmark=None)\n```\nReturns info on which index is being used by the query.\n\n- `selector`: The Mango index. For more information on selector syntax,\n see https://docs.couchdb.org/en/latest/api/database/find.html#find-selectors\n- `limit`: Maximum number of results returned.\n- `skip`: Skip the given number of results.\n- `sort`: A list of dictionaries specifying the order of the results,\n where the field name is the key and the direction is the value;\n either `\"asc\"` or `\"desc\"`.\n- `fields`: List specifying which fields of each result document should\n be returned. If omitted, return the entire document.\n- `bookmark`: A string that marks the end the previous set of results.\n If given, the next set of results will be returned.\n\n*CouchDB version >= 2.0*\n\n### `db.get_attachment(doc, filename)`\n\nReturns a file-like object containing the content of the specified attachment.\n\n### `db.put_attachment(doc, content, filename=None, content_type=None)`\n\nAdds or updates the given file as an attachment to the given document\nin the database.\n\n- `content` is a string or a file-like object.\n- If `filename` is not provided, then an attempt is made to get it from\n the `content` object. If this fails, `ValueError` is raised.\n- If `content_type` is not provided, then an attempt to guess it from\n the filename extension is made. If that does not work, it is\n set to `\"application/octet-stream\"`\n\nReturns the new revision of the document, in addition to updating\nthe `_rev` field in the document.\n\n### `db.delete_attachment(doc, filename)`\n\nDeletes the attachment.\n\nReturns the new revision of the document, in addition to updating\nthe `_rev` field in the document.\n\n### `db.dump(filepath, callback=None, exclude_designs=False, progressbar=False)`\n\nDumps the entire database to a `tar` file.\n\nReturns a tuple `(ndocs, nfiles)` giving the number of documents\nand attached files written out.\n\nIf defined, the function `callback(ndocs, nfiles)` is called \nevery 100 documents.\n\nIf `exclude_designs` is True, design document will be excluded from the dump.\n\nIf `progressbar` is True, display a progress bar.\n\nIf the filepath ends with `.gz`, then the tar file is gzip compressed.\nThe `_rev` item of each document is included in the dump.\n\n### `db.undump(filepath, callback=None, progressbar=False)`\n\nLoads the `tar` file given by the path. It must have been produced by `db.dump`.\n\nReturns a tuple `(ndocs, nfiles)` giving the number of documents\nand attached files read from the file.\n\nIf defined, the function `callback(ndocs, nfiles)` is called \nevery 100 documents.\n\nIf `progressbar` is True, display a progress bar.\n\n**NOTE**: The documents are just added to the database, ignoring any\n`_rev` items. This means that no document with the same identifier\nmay exist in the database.\n\n## `CouchDB2Exception`\n\nThe Base CouchDB2 exception, from which all others derive.\n\n## `NotFoundError`\n\nNo such entity (e.g. database or document) exists.\n\n## `BadRequestError`\n\nInvalid request; bad name, body or headers.\n\n## `CreationError`\n\nCould not create the entity; it exists already.\n\n## `RevisionError`\n\nWrong or missing `_rev` item in the document to save.\n\n## `AuthorizationError`\n\nCurrent user not authorized to perform the operation.\n\n## `ContentTypeError`\n\nBad `Content-Type` value in the request.\n\n## `ServerError`\n\nInternal CouchDB server error.\n\n## `class ViewResult(rows, offset, total_rows)`\n\nAn instance of this class is returned as result from `db.view()`.\nInstances of this class are not supposed to be created by client software.\n\nAttributes:\n\n- `rows`: the list of `Row` objects.\n- `offset`: the offset used for the set of rows.\n- `total_rows`: the total number of rows selected.\n\n### `__len__`\n```python\nlen(viewresult)\n```\nReturn the number of rows in the view result.\n\n### `__iter__`\n```python\nfor row in viewresult: ...\n```\nReturn an iterator over all rows in the view result.\n\n### `__getitem__`\n```python\nrow = viewresult[i]\n```\nReturn the indexed view result row.\n\n### `vr.json()`\n\nReturn the view result data in a JSON-like representation.\n\n## `class Row(id, key, value, doc)`\n\nNamed-tuple object returned in ViewResult list attribute `rows`.\n\nAttributes:\n\n- `id`: the identifier of the document, if any. Alias for `row[0]`.\n- `key`: the key for the index row. Alias for `row[1]`.\n- `value`: the value for the index row. Alias for `row[2]`.\n- `doc`: the document, if any. Alias for `row[3]`.\n\n## Utility functions at the module level\n\n### `read_settings(filepath, settings=None)`\n\nRead the settings lookup from a JSON format file.\n\nIf `settings` is given, then return an updated copy of it,\nelse copy the default settings, update, and return it.\n\n## Command line tool\n\nThe module is also a command line tool for interacting with the CouchDB server.\nIt is installed if `pip` is used to install this module.\n\nSettings for the command line tool are updated from the following sources,\neach in the order given and if it exists:\n\n1) Default values are\n ```\n {\n \"SERVER\": \"http://localhost:5984\",\n \"DATABASE\": null,\n \"USERNAME\": null,\n \"PASSWORD\": null\n }\n ```\n2) Read from the JSON file `~/.couchdb2` (in your home directory).\n3) Read from the JSON file `settings.json` (in the current working directory).\n4) Read from the JSON file given by command line option `--settings FILEPATH`.\n5) From environment variables.\n6) From command line arguments.\n\n### Options\n\nTo show available command options:\n\n```\n$ couchdb2 -h\nusage: couchdb2 [options]\n\nCouchDB v2.x command line tool, leveraging Python module CouchDB2.\n\noptional arguments:\n -h, --help show this help message and exit\n --settings FILEPATH Settings file in JSON format.\n -S SERVER, --server SERVER\n CouchDB server URL, including port number.\n -d DATABASE, --database DATABASE\n Database to operate on.\n -u USERNAME, --username USERNAME\n CouchDB user account name.\n -p PASSWORD, --password PASSWORD\n CouchDB user account password.\n -q, --password_question\n Ask for the password by interactive input.\n --ca_file FILE_OR_DIRPATH\n File or directory containing CAs.\n -o FILEPATH, --output FILEPATH\n Write output to the given file (JSON format).\n --indent INT Indentation level for JSON format output file.\n -y, --yes Do not ask for confirmation (delete, destroy, undump).\n -v, --verbose Print more information.\n -s, --silent Print no information.\n\nserver operations:\n -V, --version Output CouchDB server version.\n --list Output a list of the databases on the server.\n\nDatabase operations.:\n --create Create the database.\n --destroy Delete the database and all its contents.\n --compact Compact the database; may take some time.\n --compact_design DDOC\n Compact the view indexes for the named design doc.\n --view_cleanup Remove view index files no longer required.\n --info Output information about the database.\n --security Output security information for the database.\n --set_security FILEPATH\n Set security information for the database from the\n JSON file.\n --list_designs List design documents for the database.\n --design DDOC Output the named design document.\n --put_design DDOC FILEPATH\n Store the named design document from the file.\n --delete_design DDOC Delete the named design document.\n --dump FILEPATH Create a dump file of the database.\n --undump FILEPATH Load a dump file into the database.\n\nDocument operations.:\n -G DOCID, --get DOCID\n Output the document with the given identifier.\n -P FILEPATH, --put FILEPATH\n Store the document; arg is literal doc or filepath.\n --delete DOCID Delete the document with the given identifier.\n\nattachments to document:\n --attach DOCID FILEPATH\n Attach the specified file to the given document.\n --detach DOCID FILENAME\n Remove the attached file from the given document.\n --get_attach DOCID FILENAME\n Get the attached file from the given document; write\n to same filepath or that given by '-o'.\n\nquery a design view, returning rows:\n --view SPEC Design view '{design}/{view}' to query.\n --key KEY Key value selecting view rows.\n --startkey KEY Start key value selecting range of view rows.\n --endkey KEY End key value selecting range of view rows.\n --startkey_docid DOCID\n Return rows starting with the specified document.\n --endkey_docid DOCID Stop returning rows when specified document reached.\n --group Group the results using the 'reduce' function.\n --group_level INT Specify the group level to use.\n --noreduce Do not use the 'reduce' function of the view.\n --limit INT Limit the number of returned rows.\n --skip INT Skip this number of rows before returning result.\n --descending Sort rows in descending order (swap start/end keys!).\n --include_docs Include documents in result.\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/pekrau/CouchDB2", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "CouchDB2", "package_url": "https://pypi.org/project/CouchDB2/", "platform": "", "project_url": "https://pypi.org/project/CouchDB2/", "project_urls": { "Homepage": "https://github.com/pekrau/CouchDB2" }, "release_url": "https://pypi.org/project/CouchDB2/1.13.0/", "requires_dist": [ "requests (>=2.26)", "tqdm (>=4.62)" ], "requires_python": ">= 3.6", "summary": "C", "version": "1.13.0", "yanked": false, "yanked_reason": null }, "last_serial": 11926986, "releases": { "1.10.0": [ { "comment_text": "", "digests": { "md5": "724f0689a159b66519ce86e04379bedb", "sha256": "8394e1c83fd5a434666b1f04fd1bbd8741aaa4c4988c5d8619bfd64da0f6550b" }, "downloads": -1, "filename": "CouchDB2-1.10.0-py3-none-any.whl", "has_sig": false, "md5_digest": "724f0689a159b66519ce86e04379bedb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6", "size": 23105, "upload_time": "2021-05-06T14:37:56", "upload_time_iso_8601": "2021-05-06T14:37:56.560306Z", "url": "https://files.pythonhosted.org/packages/57/e4/3576cb4a74e7049e1a2a2b5feda1442a1af9d1a68e0bcdfa8899d56c0c0a/CouchDB2-1.10.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ea9a9f1a6d2148e015243e462747d30f", "sha256": "2e8ae9c4699d87faf2d0d3ac9a1b01ed7dfcb32739da97ca0f148e12673eb885" }, "downloads": -1, "filename": "CouchDB2-1.10.0.tar.gz", "has_sig": false, "md5_digest": "ea9a9f1a6d2148e015243e462747d30f", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 27643, "upload_time": "2021-05-06T14:37:58", "upload_time_iso_8601": "2021-05-06T14:37:58.311688Z", "url": "https://files.pythonhosted.org/packages/21/cd/204efd3123a866230d112635c0ba35828796cf61a7273620491a6f68f332/CouchDB2-1.10.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.0": [ { "comment_text": "", "digests": { "md5": "36260d76c6220ed0dc0b9ae0f60fe9fa", "sha256": "144b96cc5e3f2fce36c16e65db326646170882c7291d36d89ca6655e839695e3" }, "downloads": -1, "filename": "CouchDB2-1.11.0-py3-none-any.whl", "has_sig": false, "md5_digest": "36260d76c6220ed0dc0b9ae0f60fe9fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6", "size": 23683, "upload_time": "2021-05-20T15:11:32", "upload_time_iso_8601": "2021-05-20T15:11:32.720628Z", "url": "https://files.pythonhosted.org/packages/35/b7/9c37a9a65c5616f49087bee360ee80dd00849f8c708a1ff2b0cfd0ba2906/CouchDB2-1.11.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a7826eea157cf3f7414da37ff5ad66bd", "sha256": "0f2bfdd9ae275386a236221d52d2beea2beb261a2f56e10b44022c525053f452" }, "downloads": -1, "filename": "CouchDB2-1.11.0.tar.gz", "has_sig": false, "md5_digest": "a7826eea157cf3f7414da37ff5ad66bd", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 32516, "upload_time": "2021-05-20T15:11:34", "upload_time_iso_8601": "2021-05-20T15:11:34.413702Z", "url": "https://files.pythonhosted.org/packages/76/e9/b988549d1e6764b78864ced3eaf08756d9ce19aca64701e09a2670cab725/CouchDB2-1.11.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.12.0": [ { "comment_text": "", "digests": { "md5": "9fac682fabfc9443ff5759e8912caed3", "sha256": "b20fa0f36731f1a862a3c35742cb9c03274a7d017145175cc7e8f72265925507" }, "downloads": -1, "filename": "CouchDB2-1.12.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9fac682fabfc9443ff5759e8912caed3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6", "size": 24226, "upload_time": "2021-11-03T16:02:37", "upload_time_iso_8601": "2021-11-03T16:02:37.424984Z", "url": "https://files.pythonhosted.org/packages/8e/9e/9b778ddb97db58950758da433c1374d22fc0098080869728b6be1d9f389b/CouchDB2-1.12.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "53b88bfa23a4a22471ccae55994999cd", "sha256": "473885179e36473d5f20fbf5e6dd496e072cd286f54851f1256dc5ea30c56e57" }, "downloads": -1, "filename": "CouchDB2-1.12.0.tar.gz", "has_sig": false, "md5_digest": "53b88bfa23a4a22471ccae55994999cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 34634, "upload_time": "2021-11-03T16:02:39", "upload_time_iso_8601": "2021-11-03T16:02:39.449988Z", "url": "https://files.pythonhosted.org/packages/f7/d4/3919547ea2ee1c9a669ea458049bbf02b0d8e541103b43d4eb4b00c541b1/CouchDB2-1.12.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.13.0": [ { "comment_text": "", "digests": { "md5": "c702c569f2830a248b3697053aaea8d9", "sha256": "95aa9a0ac7d7644b28654084a1ecf4316b49755e531b5f3f285cbd7c68ef8c5c" }, "downloads": -1, "filename": "CouchDB2-1.13.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c702c569f2830a248b3697053aaea8d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6", "size": 24243, "upload_time": "2021-11-04T15:30:19", "upload_time_iso_8601": "2021-11-04T15:30:19.299062Z", "url": "https://files.pythonhosted.org/packages/5b/dc/1e3774fd10a919d22faf83e2918e674f0f57cd34d05626dd399eeab0e222/CouchDB2-1.13.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6bd2d43c153989d4749e9fe2467e0d66", "sha256": "c77adb7e91cbda73507db5bc1b4ae323e8a27a0a90086ba5f82f740b08cf40fe" }, "downloads": -1, "filename": "CouchDB2-1.13.0.tar.gz", "has_sig": false, "md5_digest": "6bd2d43c153989d4749e9fe2467e0d66", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 33857, "upload_time": "2021-11-04T15:30:21", "upload_time_iso_8601": "2021-11-04T15:30:21.567315Z", "url": "https://files.pythonhosted.org/packages/1a/c0/aad8f6be8b2ebd71e95454296aa2390d6beb81d5f7a0bc4b3804509f3278/CouchDB2-1.13.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.10": [ { "comment_text": "", "digests": { "md5": "3732dcad98c385261ff2cd55c7f99857", "sha256": "7f7ec022c5f8a1c1857c293ce6d75936c3d36c5decaa7698096239c42dd60b43" }, "downloads": -1, "filename": "CouchDB2-1.6.10-py3-none-any.whl", "has_sig": false, "md5_digest": "3732dcad98c385261ff2cd55c7f99857", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16721, "upload_time": "2019-01-14T13:35:01", "upload_time_iso_8601": "2019-01-14T13:35:01.292343Z", "url": "https://files.pythonhosted.org/packages/3c/5e/cba502537076602c333bf123f9adb43b9d81c147521a712ccf6af0ccb8b4/CouchDB2-1.6.10-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "689938376185a87d6368c493cce6d7b8", "sha256": "169a77ef30d1bf6b8fd7dab1ed07c982b82625ac03793d57a2148acc9b449db9" }, "downloads": -1, "filename": "CouchDB2-1.6.10.tar.gz", "has_sig": false, "md5_digest": "689938376185a87d6368c493cce6d7b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17058, "upload_time": "2019-01-14T13:35:04", "upload_time_iso_8601": "2019-01-14T13:35:04.648681Z", "url": "https://files.pythonhosted.org/packages/c4/ac/f64d4d18033bf5c5135ef7bdb9042106fc7101f9a515fedde846b187514c/CouchDB2-1.6.10.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.2": [ { "comment_text": "", "digests": { "md5": "7caa10c7fe52bb02d343d5ee26222211", "sha256": "eba1caa0797ef8c9600332cc3f1306b1c2371c754c7f6c0047f3bcb14e64a212" }, "downloads": -1, "filename": "CouchDB2-1.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7caa10c7fe52bb02d343d5ee26222211", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17980, "upload_time": "2019-01-15T11:44:23", "upload_time_iso_8601": "2019-01-15T11:44:23.598250Z", "url": "https://files.pythonhosted.org/packages/07/93/60968a6d2eaa80e1a23e9c52d19234c9cf9c9ea8cc5c5611e89bd421e7c2/CouchDB2-1.7.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "96b45deeb4a074098527143662a9dcdb", "sha256": "0a29d7daeb5df92910914ea01641b63e5685bede7b119948e296a6c3562da586" }, "downloads": -1, "filename": "CouchDB2-1.7.2.tar.gz", "has_sig": false, "md5_digest": "96b45deeb4a074098527143662a9dcdb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17700, "upload_time": "2019-01-15T11:44:25", "upload_time_iso_8601": "2019-01-15T11:44:25.141225Z", "url": "https://files.pythonhosted.org/packages/6f/36/e4687d38b35a15ca69de2bf3d60391bb56a2efca8d04ee55f35b4282a142/CouchDB2-1.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.4": [ { "comment_text": "", "digests": { "md5": "1a02d07e128bee9a6da1a0a7d8261e90", "sha256": "41a0ce98f3ba90b92355ec3e6c138d54905ca973340a8be358b93441374e8e14" }, "downloads": -1, "filename": "CouchDB2-1.7.4-py3-none-any.whl", "has_sig": false, "md5_digest": "1a02d07e128bee9a6da1a0a7d8261e90", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17196, "upload_time": "2019-01-22T11:46:48", "upload_time_iso_8601": "2019-01-22T11:46:48.840776Z", "url": "https://files.pythonhosted.org/packages/fd/ed/7417b916b0cd7863618dc9e73b80ea51c627c05604fcd372ba6185791c57/CouchDB2-1.7.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9602765c067af0b6903c0453682363df", "sha256": "599b2233efbaf83fcfa6fc11c91d70265d88a04fd8feff38a622c32860e583e4" }, "downloads": -1, "filename": "CouchDB2-1.7.4.tar.gz", "has_sig": false, "md5_digest": "9602765c067af0b6903c0453682363df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17749, "upload_time": "2019-01-22T11:46:50", "upload_time_iso_8601": "2019-01-22T11:46:50.487167Z", "url": "https://files.pythonhosted.org/packages/f7/d6/e1baac91732d1b5c691b44885cf2fcc38d2ce845afbc5d1d6ec8b86926db/CouchDB2-1.7.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "1024375ecdcd6197d1b3b357f4d66076", "sha256": "f66ddc960a1e626e2498daa4fde34683ddebf0634d39a4a02e491083ed2fbca5" }, "downloads": -1, "filename": "CouchDB2-1.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1024375ecdcd6197d1b3b357f4d66076", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19321, "upload_time": "2019-10-23T10:49:46", "upload_time_iso_8601": "2019-10-23T10:49:46.032545Z", "url": "https://files.pythonhosted.org/packages/d2/1b/37c034b8d463f65389f151907319f428355f6b3ca689aa34babd82fc38b1/CouchDB2-1.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "41cf03ce3ba39d2e701a526d4d76793a", "sha256": "93d0669b123b329c0e9a753a68a5abae056f6edf9d0939b98f5a70903f2531c6" }, "downloads": -1, "filename": "CouchDB2-1.8.0.tar.gz", "has_sig": false, "md5_digest": "41cf03ce3ba39d2e701a526d4d76793a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19429, "upload_time": "2019-10-23T10:49:48", "upload_time_iso_8601": "2019-10-23T10:49:48.087891Z", "url": "https://files.pythonhosted.org/packages/2e/2b/1bdc6c19f556fef749cafee7dabc3ef06add97ba6e82b58721337f3ce0c2/CouchDB2-1.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.1": [ { "comment_text": "", "digests": { "md5": "fb383d43c6ec3f5c7f28f6125b8a2295", "sha256": "a0c94827a27307a442a5890f44383d25a2eb975b76269ab85b9cdc0a027e47fb" }, "downloads": -1, "filename": "CouchDB2-1.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fb383d43c6ec3f5c7f28f6125b8a2295", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19257, "upload_time": "2019-10-23T11:05:03", "upload_time_iso_8601": "2019-10-23T11:05:03.900624Z", "url": "https://files.pythonhosted.org/packages/64/bf/410cbfab5c327aa395c504ce186fc8f49b08f69867f2864ed2e3e9b91feb/CouchDB2-1.8.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "777a4d6af7cc09910231b2f2881aeac6", "sha256": "8e827479d97be6956ce4c4986de3706f2196ff96ba42231925080586d990d2d2" }, "downloads": -1, "filename": "CouchDB2-1.8.1.tar.gz", "has_sig": false, "md5_digest": "777a4d6af7cc09910231b2f2881aeac6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18997, "upload_time": "2019-10-23T11:05:07", "upload_time_iso_8601": "2019-10-23T11:05:07.481631Z", "url": "https://files.pythonhosted.org/packages/f7/26/1859d525c4ac22d55cb50a97641c09202cef31167a624e058baa2b5a1a3c/CouchDB2-1.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.2": [ { "comment_text": "", "digests": { "md5": "2d14a92249918f1d4fa74178c87785f9", "sha256": "80cd24a6afb27b60362aa6bc9f81005a1a914839583c75cdbc0c88d5e22cd7d8" }, "downloads": -1, "filename": "CouchDB2-1.8.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2d14a92249918f1d4fa74178c87785f9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19223, "upload_time": "2019-11-19T16:15:21", "upload_time_iso_8601": "2019-11-19T16:15:21.741702Z", "url": "https://files.pythonhosted.org/packages/5b/a7/556325ecb759e165d6575abd30ba398f775a0274488a35dd4a68b9531951/CouchDB2-1.8.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2b171c3e96593c5405f6bb403c8ee4b2", "sha256": "12f86ced83441f5eafb80be46cff3b4386e9f4985552d9eb6a0c91e7fd0d952b" }, "downloads": -1, "filename": "CouchDB2-1.8.2.tar.gz", "has_sig": false, "md5_digest": "2b171c3e96593c5405f6bb403c8ee4b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22205, "upload_time": "2019-11-19T16:15:24", "upload_time_iso_8601": "2019-11-19T16:15:24.077463Z", "url": "https://files.pythonhosted.org/packages/01/05/57f7be332e54501c39195d1be0b452e6ff22af2a858649f7329a3c34d5f8/CouchDB2-1.8.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.3": [ { "comment_text": "", "digests": { "md5": "0de52ae7a2dbce94f453774201808412", "sha256": "2e97aa0c894843742749487e0570c6cb4f47453e315e2f763a58e2a541f39ce8" }, "downloads": -1, "filename": "CouchDB2-1.8.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0de52ae7a2dbce94f453774201808412", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19262, "upload_time": "2020-02-23T15:50:02", "upload_time_iso_8601": "2020-02-23T15:50:02.182103Z", "url": "https://files.pythonhosted.org/packages/0d/62/db7a24e820e85bbdee2200da17a6c086c338685e85fb02528a775b51e82f/CouchDB2-1.8.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "041e6d1a994888e078d2f176e2c0a72f", "sha256": "fe24bf82e9c002dcd84a3b5913e03c7f73e44a790a08d211acd749690f9cd45b" }, "downloads": -1, "filename": "CouchDB2-1.8.3.tar.gz", "has_sig": false, "md5_digest": "041e6d1a994888e078d2f176e2c0a72f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22248, "upload_time": "2020-02-23T15:50:04", "upload_time_iso_8601": "2020-02-23T15:50:04.311947Z", "url": "https://files.pythonhosted.org/packages/c0/ab/0ccdbf3bea39412c4293fedb7e30a77b3d527fa3c4f7a232e84afa0cbc7b/CouchDB2-1.8.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.4": [ { "comment_text": "", "digests": { "md5": "1f8285f80d51a879c6f3ee52d65fb05f", "sha256": "38a6e70d36b2c90a83703e16cca41e584dc27bf1943acf159a8bb980081b3e6d" }, "downloads": -1, "filename": "CouchDB2-1.8.4-py3-none-any.whl", "has_sig": false, "md5_digest": "1f8285f80d51a879c6f3ee52d65fb05f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19595, "upload_time": "2020-02-25T16:45:34", "upload_time_iso_8601": "2020-02-25T16:45:34.896719Z", "url": "https://files.pythonhosted.org/packages/16/a8/0892b5f4e40dc6232e9ebedcaf886326d402da407e793c6315167f6a33db/CouchDB2-1.8.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b25d77f6142aeeb1deadf3e181019434", "sha256": "eb7e548e31648a6325788cab3033d9eaeb931ee0628cf9da42b1a5cccf554817" }, "downloads": -1, "filename": "CouchDB2-1.8.4.tar.gz", "has_sig": false, "md5_digest": "b25d77f6142aeeb1deadf3e181019434", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22681, "upload_time": "2020-02-25T16:45:38", "upload_time_iso_8601": "2020-02-25T16:45:38.833658Z", "url": "https://files.pythonhosted.org/packages/51/42/5659e454a44e2c0a635f1906681136baa88835b80bcc627924e6a2ee8299/CouchDB2-1.8.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.5": [ { "comment_text": "", "digests": { "md5": "db652969bc93728dcf55ca299175a040", "sha256": "c1f686e03c0b95de42d0da4d795eaf0e7b9e20f7173641117dd14e8c4995d426" }, "downloads": -1, "filename": "CouchDB2-1.8.5-py3-none-any.whl", "has_sig": false, "md5_digest": "db652969bc93728dcf55ca299175a040", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19690, "upload_time": "2020-02-26T14:16:22", "upload_time_iso_8601": "2020-02-26T14:16:22.355233Z", "url": "https://files.pythonhosted.org/packages/d3/30/be5cbf80fe32130323d1261968b92ea8da3ea70a1dc99572af4c28205d5d/CouchDB2-1.8.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "872da0172919f7453d7c7cf77ba71656", "sha256": "aaaee78f2e51c44f906a99560bc12538cba89a174f98e5db24a00e7ef87906e2" }, "downloads": -1, "filename": "CouchDB2-1.8.5.tar.gz", "has_sig": false, "md5_digest": "872da0172919f7453d7c7cf77ba71656", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22825, "upload_time": "2020-02-26T14:16:24", "upload_time_iso_8601": "2020-02-26T14:16:24.395258Z", "url": "https://files.pythonhosted.org/packages/e4/11/598e038dc2092de3a1d019357393ca1c15626c1fd1a1d9887a07d14076ca/CouchDB2-1.8.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "4bad454ae067e42861be392424bb19de", "sha256": "a3fb3b2936d786030bf487323297e6e5fd399ec7452951af4efce4f4a52ca500" }, "downloads": -1, "filename": "CouchDB2-1.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4bad454ae067e42861be392424bb19de", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19854, "upload_time": "2020-03-02T11:18:55", "upload_time_iso_8601": "2020-03-02T11:18:55.902222Z", "url": "https://files.pythonhosted.org/packages/0f/a9/47e11f15dbc6e0bd1a3bb462e458c0a80fc51fcf2e6d82057a8fa8075616/CouchDB2-1.9.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e6cb2633e073f3efb0587b888614b547", "sha256": "dac0e554f832b9fbb23bf050daef1f5a9a4b6af42d42d3fe0a8551a19230e5c1" }, "downloads": -1, "filename": "CouchDB2-1.9.0.tar.gz", "has_sig": false, "md5_digest": "e6cb2633e073f3efb0587b888614b547", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20249, "upload_time": "2020-03-02T11:18:57", "upload_time_iso_8601": "2020-03-02T11:18:57.400884Z", "url": "https://files.pythonhosted.org/packages/4d/5b/e07c40b5aa8a8b8894ec790e635f0300878ac7ebe8d26ff7b45fb08afbe3/CouchDB2-1.9.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9.1": [ { "comment_text": "", "digests": { "md5": "07c03756ba34d59653f5978268072148", "sha256": "2fa86f502c38ab2a387b90322c1751507383c98260ab5d7089e92dfd656ec351" }, "downloads": -1, "filename": "CouchDB2-1.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "07c03756ba34d59653f5978268072148", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20080, "upload_time": "2020-03-25T14:09:33", "upload_time_iso_8601": "2020-03-25T14:09:33.831252Z", "url": "https://files.pythonhosted.org/packages/f2/e9/6e99b22242367877607ac55a6f2ee9107440c41bc4180299db35946109b6/CouchDB2-1.9.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2a61fa3c2d29d7f9c445199d46ffe910", "sha256": "72484e6a112ed7bcb5747f72d12c0111fb6410ef6606cfbc6240490cea68778b" }, "downloads": -1, "filename": "CouchDB2-1.9.1.tar.gz", "has_sig": false, "md5_digest": "2a61fa3c2d29d7f9c445199d46ffe910", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23349, "upload_time": "2020-03-25T14:09:36", "upload_time_iso_8601": "2020-03-25T14:09:36.082297Z", "url": "https://files.pythonhosted.org/packages/e0/bf/f00c8dedc091d8f751a4b2251407c95d725ff3e58f0e491e618475ce0f86/CouchDB2-1.9.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9.2": [ { "comment_text": "", "digests": { "md5": "401eb55de8c75879aba385b4f25d00b4", "sha256": "56624078764e84f0fd5f3598e7e0745eef58b03bac0728fe2e0cbd27bee7c130" }, "downloads": -1, "filename": "CouchDB2-1.9.2-py3-none-any.whl", "has_sig": false, "md5_digest": "401eb55de8c75879aba385b4f25d00b4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20223, "upload_time": "2020-04-01T09:23:45", "upload_time_iso_8601": "2020-04-01T09:23:45.169278Z", "url": "https://files.pythonhosted.org/packages/5b/6a/38ff0983472f3ce4e3ce36e04bc29e3e8f84bc5d0002c3e0d9dfc6125d3e/CouchDB2-1.9.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ef92c36f3c9cc522edad07bab7611790", "sha256": "532584d1751a0b96f702dfe5e595835d8a70def2de6da15e3ad9e6a8172e0764" }, "downloads": -1, "filename": "CouchDB2-1.9.2.tar.gz", "has_sig": false, "md5_digest": "ef92c36f3c9cc522edad07bab7611790", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23540, "upload_time": "2020-04-01T09:23:47", "upload_time_iso_8601": "2020-04-01T09:23:47.313120Z", "url": "https://files.pythonhosted.org/packages/62/f5/0bb6be76892c0e2036e74f3f077c4529599e086fc523ef0ed55b8880a1c7/CouchDB2-1.9.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9.3": [ { "comment_text": "", "digests": { "md5": "289b1d2aefa19d3e11b15a01c34c913e", "sha256": "c38f9027d70f0b1d42b7e69533f8e35766feeef5ebee5bf13fc0bdcaccbec2ab" }, "downloads": -1, "filename": "CouchDB2-1.9.3-py3-none-any.whl", "has_sig": false, "md5_digest": "289b1d2aefa19d3e11b15a01c34c913e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20326, "upload_time": "2020-06-18T13:25:09", "upload_time_iso_8601": "2020-06-18T13:25:09.090960Z", "url": "https://files.pythonhosted.org/packages/b0/b4/7fb61098cbce65290a8007286fc8e919dec3b730cd03fd51a3425fe44227/CouchDB2-1.9.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ef536c9c952bba1b237690c903834090", "sha256": "9bf0c09bca53ae7642061a8b448823f2be1096fbe5ae6f7afb034cb59f7484e0" }, "downloads": -1, "filename": "CouchDB2-1.9.3.tar.gz", "has_sig": false, "md5_digest": "ef536c9c952bba1b237690c903834090", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23674, "upload_time": "2020-06-18T13:25:12", "upload_time_iso_8601": "2020-06-18T13:25:12.263047Z", "url": "https://files.pythonhosted.org/packages/78/af/7850c3a10b0c5d6051668f9b9e4db63023f6f3444c0a619f941ce7ae8aa3/CouchDB2-1.9.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9.4": [ { "comment_text": "", "digests": { "md5": "851ca1be6abe6505606c8402ca49d006", "sha256": "a73265254dcc5b428dd2bd71f8ebda2c21cd77a2748690b2c9a3dd60fa34476b" }, "downloads": -1, "filename": "CouchDB2-1.9.4-py3-none-any.whl", "has_sig": false, "md5_digest": "851ca1be6abe6505606c8402ca49d006", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 8256, "upload_time": "2021-03-02T13:23:40", "upload_time_iso_8601": "2021-03-02T13:23:40.510743Z", "url": "https://files.pythonhosted.org/packages/81/d5/7240bb74c9dafb076a0f61e6369dd26f3c5d86e427e39cb7475797f18edd/CouchDB2-1.9.4-py3-none-any.whl", "yanked": true, "yanked_reason": "Module screwed up, due to error in upload." }, { "comment_text": "", "digests": { "md5": "dbeb3a16530d98bdd47b67dd92494137", "sha256": "013c78379eee0670cac691f6fa85712ab8efd01dcf05f6d8477b082109b31e91" }, "downloads": -1, "filename": "CouchDB2-1.9.4.tar.gz", "has_sig": false, "md5_digest": "dbeb3a16530d98bdd47b67dd92494137", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 12315, "upload_time": "2021-03-02T13:23:42", "upload_time_iso_8601": "2021-03-02T13:23:42.082477Z", "url": "https://files.pythonhosted.org/packages/3a/36/f92d02953628cc3a39eda6f81dcfabd8145849983686396fc836e8ab3fb6/CouchDB2-1.9.4.tar.gz", "yanked": true, "yanked_reason": "Module screwed up, due to error in upload." } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c702c569f2830a248b3697053aaea8d9", "sha256": "95aa9a0ac7d7644b28654084a1ecf4316b49755e531b5f3f285cbd7c68ef8c5c" }, "downloads": -1, "filename": "CouchDB2-1.13.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c702c569f2830a248b3697053aaea8d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6", "size": 24243, "upload_time": "2021-11-04T15:30:19", "upload_time_iso_8601": "2021-11-04T15:30:19.299062Z", "url": "https://files.pythonhosted.org/packages/5b/dc/1e3774fd10a919d22faf83e2918e674f0f57cd34d05626dd399eeab0e222/CouchDB2-1.13.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6bd2d43c153989d4749e9fe2467e0d66", "sha256": "c77adb7e91cbda73507db5bc1b4ae323e8a27a0a90086ba5f82f740b08cf40fe" }, "downloads": -1, "filename": "CouchDB2-1.13.0.tar.gz", "has_sig": false, "md5_digest": "6bd2d43c153989d4749e9fe2467e0d66", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 33857, "upload_time": "2021-11-04T15:30:21", "upload_time_iso_8601": "2021-11-04T15:30:21.567315Z", "url": "https://files.pythonhosted.org/packages/1a/c0/aad8f6be8b2ebd71e95454296aa2390d6beb81d5f7a0bc4b3804509f3278/CouchDB2-1.13.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }