# Official Python client for RavenDB NoSQL Database
## Installation
Install from [PyPi](https://pypi.python.org/pypi), as [ravendb](https://pypi.org/project/ravendb/).
```bash
pip install ravendb
```
## Introduction
Python client API (v5.2) for [RavenDB](https://ravendb.net/) , a NoSQL document database.
Although new API isn't compatible with the previous one, it comes with **many improvements and new features**.
**Package has been reworked to match Java and other RavenDB clients**
**Type-hinted entire project and API results** - using the API is now much more comfortable with IntelliSense
## Releases
* All client versions 5.2.x are fully compatible with and support RavenDB server releases 5.4 and 6.0.
* [Click here](https://github.com/ravendb/ravendb-python-client/releases) to view all Releases and Changelog.
## What's new?
###### 5.2.5+
- Changes available in the [releases](https://github.com/ravendb/ravendb-python-client/releases) section.
###### 5.2.4
- Bulk insert dependencies [bugfix](https://github.com/ravendb/ravendb-python-client/pull/184)
###### 5.2.3
- **Counters**
- Counters indexes
###### 5.2.2
- New feature - **[Bulk insert](https://github.com/ravendb/ravendb-python-client/pull/161)**
- Bugfixes - Cluster-wide operations ([here](https://github.com/ravendb/ravendb-python-client/pull/166))
###### 5.2.1
- Bugfixes - Serialization while loading/querying ([here](https://github.com/ravendb/ravendb-python-client/pull/163))
###### 5.2.0
- **Subscriptions**
- Document streams
- Secured subscriptions
- **Querying**
- Major bugfixes
- Spatial querying and indexing
- Highlighting fixes
- **Custom document parsers & loaders**
###### 5.2.0b3
- **New features**
- Conditional Load
- SelectFields & Facets
- Projections
- MoreLikeThis
- Suggestions
- **Improvements**
- Compare exchange
- Querying
- DocumentConventions
- Patching
- Spatial queries
- Aggregations
###### 5.2.0b2
- **Lazy Operations**
- Lazy loading
- Lazy querying
- Lazy compare exchange operations
- **Structure**
- Important classes are now available to import from the top level `ravendb` module
...and many bugfixes
----
###### 5.2.0b1
- **Querying**
- Simpler, well type hinted querying
- Group by, aggregations
- Spatial querying
- Boost, fuzzy, proximity
- Subclauses support
- **Static Indexes**
- Store fields, index fields, pick analyzers & more using `AbstractIndexCreationTask`
- Full indexes CRUD
- Index related commands (priority, erros, start/stop, pause, lock)
- Additional assemblies, map-reduce, index query with results "of_type"
- **CRUD**
- Type hints for results and includes
- Support for dataclasses
------
- **Attachments**
- New attachments API
- Better type hints
- **HTTPS**
- Support for https connection
- Certificates CRUD operations
-----
- **Lazy load**
- New feature
- **Cluster Transactions, Compare Exchange**
- New feature
-----
### **Coming soon, work in progress**
- Counters & Time Series
- Replication & ETL Commands
- Streaming (ready, will be merged on v5.4 - https://github.com/ravendb/ravendb-python-client/pull/168)
----
### Demo
##### Working with secured server
```python
from ravendb import DocumentStore
URLS = ["https://raven.server.url"]
DB_NAME = "SecuredDemo"
CERT_PATH = "path\\to\\cert.pem"
class User:
def __init__(self, name: str, tag: str):
self.name = name
self.tag = tag
store = DocumentStore(URLS, DB_NAME)
store.certificate_pem_path = CERT_PATH
store.initialize()
user = User("Gracjan", "Admin")
with store.open_session() as session:
session.store(user, "users/1")
session.save_changes()
with store.open_session() as session:
user = session.load("users/1", User)
assert user.name == "Gracjan"
assert user.tag == "Admin"
```
----
#### RavenDB Documentation
https://ravendb.net/docs/article-page/5.3/python
----
#### GitHub
https://github.com/ravendb/ravendb-python-client
-----
##### Bug Tracker
http://issues.hibernatingrhinos.com/issues/RDBC
Raw data
{
"_id": null,
"home_page": "https://github.com/ravendb/ravendb-python-client",
"name": "ravendb",
"maintainer": "",
"docs_url": null,
"requires_python": "~=3.7",
"maintainer_email": "",
"keywords": "ravendb,nosql,databasepyravendb",
"author": "RavenDB",
"author_email": "support@ravendb.net",
"download_url": "https://files.pythonhosted.org/packages/ae/93/53da1d70152fe8ec8996071a05a9659ae51d9bc310dea898b1bb1ac09441/ravendb-5.2.6.tar.gz",
"platform": null,
"description": "\r\n# Official Python client for RavenDB NoSQL Database\r\n\r\n## Installation\r\nInstall from [PyPi](https://pypi.python.org/pypi), as [ravendb](https://pypi.org/project/ravendb/).\r\n```bash\r\npip install ravendb\r\n```\r\n\r\n## Introduction\r\nPython client API (v5.2) for [RavenDB](https://ravendb.net/) , a NoSQL document database.\r\n\r\nAlthough new API isn't compatible with the previous one, it comes with **many improvements and new features**.\r\n\r\n**Package has been reworked to match Java and other RavenDB clients**\r\n\r\n**Type-hinted entire project and API results** - using the API is now much more comfortable with IntelliSense\r\n\r\n\r\n## Releases\r\n\r\n* All client versions 5.2.x are fully compatible with and support RavenDB server releases 5.4 and 6.0.\r\n\r\n* [Click here](https://github.com/ravendb/ravendb-python-client/releases) to view all Releases and Changelog.\r\n\r\n## What's new?\r\n\r\n###### 5.2.5+\r\n- Changes available in the [releases](https://github.com/ravendb/ravendb-python-client/releases) section.\r\n\r\n###### 5.2.4\r\n- Bulk insert dependencies [bugfix](https://github.com/ravendb/ravendb-python-client/pull/184) \r\n\r\n###### 5.2.3\r\n- **Counters**\r\n- Counters indexes\r\n\r\n###### 5.2.2\r\n- New feature - **[Bulk insert](https://github.com/ravendb/ravendb-python-client/pull/161)**\r\n- Bugfixes - Cluster-wide operations ([here](https://github.com/ravendb/ravendb-python-client/pull/166))\r\n\r\n###### 5.2.1\r\n- Bugfixes - Serialization while loading/querying ([here](https://github.com/ravendb/ravendb-python-client/pull/163))\r\n\r\n###### 5.2.0\r\n- **Subscriptions**\r\n - Document streams\r\n - Secured subscriptions\r\n\r\n\r\n- **Querying**\r\n - Major bugfixes\r\n - Spatial querying and indexing\r\n - Highlighting fixes\r\n - **Custom document parsers & loaders**\r\n \r\n \r\n###### 5.2.0b3\r\n- **New features**\r\n - Conditional Load\r\n - SelectFields & Facets\r\n - Projections\r\n - MoreLikeThis\r\n - Suggestions\r\n\r\n\r\n- **Improvements**\r\n - Compare exchange\r\n - Querying\r\n - DocumentConventions\r\n - Patching\r\n - Spatial queries\r\n - Aggregations\r\n\r\n\r\n###### 5.2.0b2\r\n\r\n- **Lazy Operations**\r\n - Lazy loading\r\n - Lazy querying\r\n - Lazy compare exchange operations\r\n\r\n\r\n- **Structure**\r\n - Important classes are now available to import from the top level `ravendb` module\r\n\r\n\r\n...and many bugfixes\r\n\r\n----\r\n\r\n###### 5.2.0b1\r\n\r\n- **Querying** \r\n - Simpler, well type hinted querying\r\n - Group by, aggregations\r\n - Spatial querying\r\n - Boost, fuzzy, proximity\r\n - Subclauses support\r\n \r\n\r\n \r\n- **Static Indexes**\r\n - Store fields, index fields, pick analyzers & more using `AbstractIndexCreationTask`\r\n - Full indexes CRUD\r\n - Index related commands (priority, erros, start/stop, pause, lock)\r\n - Additional assemblies, map-reduce, index query with results \"of_type\" \r\n \r\n \r\n- **CRUD**\r\n - Type hints for results and includes\r\n - Support for dataclasses\r\n \r\n ------\r\n\r\n\r\n- **Attachments**\r\n - New attachments API\r\n - Better type hints \r\n\r\n\r\n- **HTTPS**\r\n - Support for https connection\r\n - Certificates CRUD operations\r\n\r\n-----\r\n\r\n- **Lazy load**\r\n - New feature\r\n\r\n\r\n- **Cluster Transactions, Compare Exchange**\r\n - New feature\r\n \r\n-----\r\n\r\n### **Coming soon, work in progress**\r\n- Counters & Time Series\r\n- Replication & ETL Commands\r\n- Streaming (ready, will be merged on v5.4 - https://github.com/ravendb/ravendb-python-client/pull/168)\r\n\r\n----\r\n\r\n### Demo\r\n\r\n##### Working with secured server\r\n```python\r\nfrom ravendb import DocumentStore\r\n\r\nURLS = [\"https://raven.server.url\"]\r\nDB_NAME = \"SecuredDemo\"\r\nCERT_PATH = \"path\\\\to\\\\cert.pem\"\r\n\r\n\r\nclass User:\r\n def __init__(self, name: str, tag: str):\r\n self.name = name\r\n self.tag = tag\r\n\r\n\r\nstore = DocumentStore(URLS, DB_NAME)\r\nstore.certificate_pem_path = CERT_PATH\r\nstore.initialize()\r\nuser = User(\"Gracjan\", \"Admin\")\r\n\r\nwith store.open_session() as session:\r\n session.store(user, \"users/1\")\r\n session.save_changes()\r\n\r\nwith store.open_session() as session:\r\n user = session.load(\"users/1\", User)\r\n assert user.name == \"Gracjan\"\r\n assert user.tag == \"Admin\"\r\n```\r\n----\r\n#### RavenDB Documentation\r\nhttps://ravendb.net/docs/article-page/5.3/python\r\n\r\n----\r\n#### GitHub\r\nhttps://github.com/ravendb/ravendb-python-client\r\n\r\n-----\r\n##### Bug Tracker\r\nhttp://issues.hibernatingrhinos.com/issues/RDBC\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python client for RavenDB NoSQL Database",
"version": "5.2.6",
"project_urls": {
"Homepage": "https://github.com/ravendb/ravendb-python-client"
},
"split_keywords": [
"ravendb",
"nosql",
"databasepyravendb"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "28730145b5d39f421f1b4409694e3a28f007224584fb48f76046ec87d76941d1",
"md5": "5b43f3e993d97cabcaba665c2f583a91",
"sha256": "65eeb38144141551982412c3c2c1ec43f40e93237fdcfda5dbb4d892d7a1bd35"
},
"downloads": -1,
"filename": "ravendb-5.2.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5b43f3e993d97cabcaba665c2f583a91",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.7",
"size": 329304,
"upload_time": "2024-03-07T12:22:11",
"upload_time_iso_8601": "2024-03-07T12:22:11.661284Z",
"url": "https://files.pythonhosted.org/packages/28/73/0145b5d39f421f1b4409694e3a28f007224584fb48f76046ec87d76941d1/ravendb-5.2.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ae9353da1d70152fe8ec8996071a05a9659ae51d9bc310dea898b1bb1ac09441",
"md5": "738d51f68e88f677332ebbd6f88cbd2d",
"sha256": "90a54f891369d409097ac11210cb943f7b11a372db4f59790d082db9a81e86c0"
},
"downloads": -1,
"filename": "ravendb-5.2.6.tar.gz",
"has_sig": false,
"md5_digest": "738d51f68e88f677332ebbd6f88cbd2d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.7",
"size": 265660,
"upload_time": "2024-03-07T12:22:13",
"upload_time_iso_8601": "2024-03-07T12:22:13.754082Z",
"url": "https://files.pythonhosted.org/packages/ae/93/53da1d70152fe8ec8996071a05a9659ae51d9bc310dea898b1bb1ac09441/ravendb-5.2.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-07 12:22:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ravendb",
"github_project": "ravendb-python-client",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ravendb"
}