arcadedb-python


Namearcadedb-python JSON
Version 0.3.1 PyPI version JSON
download
home_pageNone
SummaryPython driver for ArcadeDB - Multi-Model Database with Graph, Document, Key-Value, Vector, and Time-Series support
upload_time2025-10-21 19:33:11
maintainerSteve Reiner
docs_urlNone
authorAdams Rosales, ExtReMLapin, Steve Reiner
requires_python>=3.10
licenseNone
keywords arcadedb database document graph key-value multi-model nosql python-driver time-series vector
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ArcadeDB Python Driver

[![PyPI version](https://badge.fury.io/py/arcadedb-python.svg)](https://badge.fury.io/py/arcadedb-python)
[![Python versions](https://img.shields.io/pypi/pyversions/arcadedb-python.svg)](https://pypi.org/project/arcadedb-python/)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

A comprehensive Python driver for [ArcadeDB](https://arcadedb.com) - the Multi-Model Database that supports Graph, Document, Key-Value, Vector, and Time-Series models in a single engine.

## Credits & Attribution

This driver builds upon the excellent work of the original ArcadeDB Python driver contributors:

- **Adams Rosales** ([@adaros92](https://github.com/adaros92)) - Original [arcadedb-python-driver](https://github.com/adaros92/arcadedb-python-driver)
- **ExtReMLapin** ([@ExtReMLapin](https://github.com/ExtReMLapin)) - Core contributor and enhancements
- **ArcadeDB Team** - The amazing [ArcadeDB](https://github.com/ArcadeData/arcadedb) database engine

This modernized version enhances the original work with updated packaging, comprehensive documentation, and production-ready features while maintaining full compatibility with the [ArcadeDB](https://arcadedb.com/) database.

## Features

- **Multi-Model Support**: Work with Graph, Document, Key-Value, Vector, and Time-Series data models
- **High Performance**: Optimized for speed with native ArcadeDB protocols
- **Full API Coverage**: Complete access to ArcadeDB's REST API and SQL capabilities
- **Type Safety**: Comprehensive type hints for better development experience
- **Async Support**: Both synchronous and asynchronous operation modes
- **Connection Pooling**: Efficient connection management for production use
- **Comprehensive Testing**: Extensive test suite ensuring reliability

## Installation

### Using UV (Recommended)

```bash
# Install uv if not already installed
pip install uv

# Create virtual environment and install
uv venv
uv pip install arcadedb-python
```

### Using Pip

```bash
pip install arcadedb-python
```

### Optional Dependencies

```bash
# PostgreSQL driver support
uv pip install arcadedb-python[postgresql]
# or: pip install arcadedb-python[postgresql]

# Cypher syntax highlighting
uv pip install arcadedb-python[cypher]
# or: pip install arcadedb-python[cypher]

# All optional features
uv pip install arcadedb-python[full]
# or: pip install arcadedb-python[full]

# Development dependencies
uv pip install arcadedb-python[dev]
# or: pip install arcadedb-python[dev]
```

## Quick Start

### Basic Usage

```python
from arcadedb_python import DatabaseDao, SyncClient

# Step 1: Create a client connection
client = SyncClient(
    host="localhost",
    port=2480,
    username="root",
    password="playwithdata"
)

# Step 2: Connect to database (or create it)
if not DatabaseDao.exists(client, "mydb"):
    db = DatabaseDao.create(client, "mydb")
else:
    db = DatabaseDao(client, "mydb")

# Step 3: Create schema (DDL requires is_command=True)
db.query("sql", "CREATE VERTEX TYPE Person IF NOT EXISTS", is_command=True)

# Step 4: Insert data (DML requires is_command=True)
db.query("sql", "INSERT INTO Person SET name = 'John', age = 30", is_command=True)

# Step 5: Query data
result = db.query("sql", "SELECT FROM Person LIMIT 10")
print(result)

# Step 6: Graph traversal
result = db.query("sql", """
    MATCH {type: Person, as: person} 
    RETURN person.name, person.age
""")
print(result)
```

### Important Notes

- **Use `SyncClient`** to create connections, not `DatabaseDao` directly
- **Use `is_command=True`** for DDL/DML operations (CREATE, INSERT, UPDATE, DELETE)
- **SELECT queries** don't need `is_command=True` (it defaults to False)
- **Create vertex types first** before querying (V and E types don't exist by default)
```

## API Documentation

For complete API reference including all methods, parameters, exceptions, and detailed examples:

**📚 [docs/API.md](docs/API.md)** - Comprehensive API documentation covering:
- `SyncClient` - Connection management
- `DatabaseDao` - All database operations (query, transactions, bulk operations)
- Exception handling and error types
- Configuration options
- Complete code examples

## Examples

### Available Examples

**[examples/quickstart_example.py](examples/quickstart_example.py)**
- Complete walkthrough of all Quick Start code
- All data models: Graph, Document, Key-Value, Time-Series, Vector storage
- Step-by-step explanations
- Error handling examples

**[examples/test_query_languages.py](examples/test_query_languages.py)**
- openCypher query examples
- Gremlin query examples
- Database creation and cleanup

### Running Examples

```bash
# Complete quickstart with all features
python examples/quickstart_example.py

# Test openCypher and Gremlin queries
python examples/test_query_languages.py
```

**Requirements:** ArcadeDB must be running on `localhost:2480` with default credentials (`root`/`playwithdata`)

## Advanced Usage

### Working with Different Data Models

```python
# Document operations
db.query("sql", "CREATE DOCUMENT TYPE Product IF NOT EXISTS", is_command=True)
db.query("sql", """
    INSERT INTO Product CONTENT {
        "name": "Laptop",
        "price": 999.99,
        "specs": {
            "cpu": "Intel i7",
            "ram": "16GB"
        }
    }
""", is_command=True)

# Graph operations
db.query("sql", "CREATE VERTEX TYPE Customer IF NOT EXISTS", is_command=True)
db.query("sql", "CREATE EDGE TYPE Purchased IF NOT EXISTS", is_command=True)
db.query("sql", """
    CREATE EDGE Purchased 
    FROM (SELECT FROM Customer WHERE name = 'John')
    TO (SELECT FROM Product WHERE name = 'Laptop')
    SET date = sysdate(), amount = 999.99
""", is_command=True)

# Key-Value operations
db.query("sql", "CREATE DOCUMENT TYPE Settings IF NOT EXISTS", is_command=True)
db.query("sql", "INSERT INTO Settings SET key = 'theme', value = 'dark'", is_command=True)

# Time-Series operations
db.query("sql", "CREATE VERTEX TYPE Sensor IF NOT EXISTS", is_command=True)
db.query("sql", """
    INSERT INTO Sensor SET 
    sensor_id = 'temp_01', 
    timestamp = sysdate(), 
    temperature = 23.5
""", is_command=True)
```

### Vector Search (for AI/ML applications)

```python
# Note: Vector similarity search is not currently supported by this driver
# You can store vector embeddings as arrays

# Store embeddings
db.query("sql", "CREATE VERTEX TYPE DocRecord IF NOT EXISTS", is_command=True)
db.query("sql", """
    INSERT INTO DocRecord SET 
    title = 'AI Research Paper',
    embedding = [0.1, 0.2, 0.3, 0.4, 0.5],
    content = 'Full document text...'
""", is_command=True)

# Query documents with embeddings
result = db.query("sql", "SELECT title, embedding FROM DocRecord WHERE title = 'AI Research Paper'")
```

### Using openCypher

```python
# Note: openCypher support may have different performance characteristics than native SQL
# For large operations, consider using ArcadeDB's native SQL or Java API

# Create nodes
db.query("cypher", "CREATE (p:Person {name: 'John', age: 30})", is_command=True)
db.query("cypher", "CREATE (p:Person {name: 'Jane', age: 25})", is_command=True)

# Create relationship
db.query("cypher", """
    MATCH (a:Person {name: 'John'}), (b:Person {name: 'Jane'})
    CREATE (a)-[:KNOWS]->(b)
""", is_command=True)

# Query with openCypher
result = db.query("cypher", "MATCH (p:Person) RETURN p.name, p.age")
print(result)
```

### Using Gremlin

```python
# Note: Gremlin support may have different performance characteristics than native SQL
# For large operations, consider using ArcadeDB's native SQL or Java API

# Add vertices
db.query("gremlin", "g.addV('Person').property('name', 'John').property('age', 30)", is_command=True)
db.query("gremlin", "g.addV('Person').property('name', 'Jane').property('age', 25)", is_command=True)

# Query with Gremlin
result = db.query("gremlin", "g.V().hasLabel('Person').values('name')")
print(result)

# Traversal
result = db.query("gremlin", "g.V().hasLabel('Person').has('age', gt(20)).values('name', 'age')")
print(result)
```

## Configuration Options

### SyncClient Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `host` | str | "localhost" | ArcadeDB server hostname |
| `port` | int | 2480 | ArcadeDB server port |
| `username` | str | None | Database username |
| `password` | str | None | Database password |
| `protocol` | str | "http" | Protocol ("http" or "https") |

### DatabaseDao.query() Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `language` | str | Required | Query language: "sql", "cypher", "gremlin", "graphql", "mongo" |
| `command` | str | Required | The query/command to execute |
| `is_command` | bool | False | Set True for DDL/DML (CREATE, INSERT, UPDATE, DELETE) |
| `limit` | int | None | Maximum number of results |
| `params` | dict | None | Query parameters |
| `session_id` | str | None | Transaction session ID |

## Requirements

- **Python**: 3.10 or higher
- **ArcadeDB**: Version 25.8.1 or higher
- **Dependencies**: 
  - `requests` >= 2.25.0
  - `retry` >= 0.9.2

## Development

### Setting up Development Environment

```bash
# Clone the repository
git clone https://github.com/stevereiner/arcadedb-python.git
cd arcadedb-python

# Install uv (if not already installed)
pip install uv

# Create virtual environment and install dependencies
uv venv
uv pip install -e .[dev]

# Run tests
uv run pytest

# Run linting
uv run black .
uv run isort .
uv run flake8
uv run mypy arcadedb_python
```

### Building the Package

```bash
# Build the package
uv build

# Check the built package
uv run twine check dist/*
```

### Running ArcadeDB for Development

```bash
# Using Docker
docker run -d --name arcadedb \
  -p 2480:2480 -p 2424:2424 \
  -e JAVA_OPTS="-Darcadedb.server.rootPassword=playwithdata" \
  arcadedata/arcadedb:latest

# Access ArcadeDB Studio at http://localhost:2480
```

## Contributing

We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

## Links

### This Project
- **GitHub**: https://github.com/stevereiner/arcadedb-python
- **PyPI**: https://pypi.org/project/arcadedb-python/
- **Issues**: https://github.com/stevereiner/arcadedb-python/issues

### ArcadeDB
- **Homepage**: https://arcadedb.com
- **Documentation**: https://docs.arcadedb.com
- **Main Repository**: https://github.com/ArcadeData/arcadedb

### Original Contributors
- **Adams Rosales**: https://github.com/adaros92/arcadedb-python-driver
- **ExtReMLapin**: https://github.com/ExtReMLapin

## Changelog

See [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "arcadedb-python",
    "maintainer": "Steve Reiner",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "arcadedb, database, document, graph, key-value, multi-model, nosql, python-driver, time-series, vector",
    "author": "Adams Rosales, ExtReMLapin, Steve Reiner",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/b5/67/3715d9cd18eb48d75b890153a24cd5eb44d8488df7cc3407d84900f0b6dd/arcadedb_python-0.3.1.tar.gz",
    "platform": null,
    "description": "# ArcadeDB Python Driver\n\n[![PyPI version](https://badge.fury.io/py/arcadedb-python.svg)](https://badge.fury.io/py/arcadedb-python)\n[![Python versions](https://img.shields.io/pypi/pyversions/arcadedb-python.svg)](https://pypi.org/project/arcadedb-python/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nA comprehensive Python driver for [ArcadeDB](https://arcadedb.com) - the Multi-Model Database that supports Graph, Document, Key-Value, Vector, and Time-Series models in a single engine.\n\n## Credits & Attribution\n\nThis driver builds upon the excellent work of the original ArcadeDB Python driver contributors:\n\n- **Adams Rosales** ([@adaros92](https://github.com/adaros92)) - Original [arcadedb-python-driver](https://github.com/adaros92/arcadedb-python-driver)\n- **ExtReMLapin** ([@ExtReMLapin](https://github.com/ExtReMLapin)) - Core contributor and enhancements\n- **ArcadeDB Team** - The amazing [ArcadeDB](https://github.com/ArcadeData/arcadedb) database engine\n\nThis modernized version enhances the original work with updated packaging, comprehensive documentation, and production-ready features while maintaining full compatibility with the [ArcadeDB](https://arcadedb.com/) database.\n\n## Features\n\n- **Multi-Model Support**: Work with Graph, Document, Key-Value, Vector, and Time-Series data models\n- **High Performance**: Optimized for speed with native ArcadeDB protocols\n- **Full API Coverage**: Complete access to ArcadeDB's REST API and SQL capabilities\n- **Type Safety**: Comprehensive type hints for better development experience\n- **Async Support**: Both synchronous and asynchronous operation modes\n- **Connection Pooling**: Efficient connection management for production use\n- **Comprehensive Testing**: Extensive test suite ensuring reliability\n\n## Installation\n\n### Using UV (Recommended)\n\n```bash\n# Install uv if not already installed\npip install uv\n\n# Create virtual environment and install\nuv venv\nuv pip install arcadedb-python\n```\n\n### Using Pip\n\n```bash\npip install arcadedb-python\n```\n\n### Optional Dependencies\n\n```bash\n# PostgreSQL driver support\nuv pip install arcadedb-python[postgresql]\n# or: pip install arcadedb-python[postgresql]\n\n# Cypher syntax highlighting\nuv pip install arcadedb-python[cypher]\n# or: pip install arcadedb-python[cypher]\n\n# All optional features\nuv pip install arcadedb-python[full]\n# or: pip install arcadedb-python[full]\n\n# Development dependencies\nuv pip install arcadedb-python[dev]\n# or: pip install arcadedb-python[dev]\n```\n\n## Quick Start\n\n### Basic Usage\n\n```python\nfrom arcadedb_python import DatabaseDao, SyncClient\n\n# Step 1: Create a client connection\nclient = SyncClient(\n    host=\"localhost\",\n    port=2480,\n    username=\"root\",\n    password=\"playwithdata\"\n)\n\n# Step 2: Connect to database (or create it)\nif not DatabaseDao.exists(client, \"mydb\"):\n    db = DatabaseDao.create(client, \"mydb\")\nelse:\n    db = DatabaseDao(client, \"mydb\")\n\n# Step 3: Create schema (DDL requires is_command=True)\ndb.query(\"sql\", \"CREATE VERTEX TYPE Person IF NOT EXISTS\", is_command=True)\n\n# Step 4: Insert data (DML requires is_command=True)\ndb.query(\"sql\", \"INSERT INTO Person SET name = 'John', age = 30\", is_command=True)\n\n# Step 5: Query data\nresult = db.query(\"sql\", \"SELECT FROM Person LIMIT 10\")\nprint(result)\n\n# Step 6: Graph traversal\nresult = db.query(\"sql\", \"\"\"\n    MATCH {type: Person, as: person} \n    RETURN person.name, person.age\n\"\"\")\nprint(result)\n```\n\n### Important Notes\n\n- **Use `SyncClient`** to create connections, not `DatabaseDao` directly\n- **Use `is_command=True`** for DDL/DML operations (CREATE, INSERT, UPDATE, DELETE)\n- **SELECT queries** don't need `is_command=True` (it defaults to False)\n- **Create vertex types first** before querying (V and E types don't exist by default)\n```\n\n## API Documentation\n\nFor complete API reference including all methods, parameters, exceptions, and detailed examples:\n\n**\ud83d\udcda [docs/API.md](docs/API.md)** - Comprehensive API documentation covering:\n- `SyncClient` - Connection management\n- `DatabaseDao` - All database operations (query, transactions, bulk operations)\n- Exception handling and error types\n- Configuration options\n- Complete code examples\n\n## Examples\n\n### Available Examples\n\n**[examples/quickstart_example.py](examples/quickstart_example.py)**\n- Complete walkthrough of all Quick Start code\n- All data models: Graph, Document, Key-Value, Time-Series, Vector storage\n- Step-by-step explanations\n- Error handling examples\n\n**[examples/test_query_languages.py](examples/test_query_languages.py)**\n- openCypher query examples\n- Gremlin query examples\n- Database creation and cleanup\n\n### Running Examples\n\n```bash\n# Complete quickstart with all features\npython examples/quickstart_example.py\n\n# Test openCypher and Gremlin queries\npython examples/test_query_languages.py\n```\n\n**Requirements:** ArcadeDB must be running on `localhost:2480` with default credentials (`root`/`playwithdata`)\n\n## Advanced Usage\n\n### Working with Different Data Models\n\n```python\n# Document operations\ndb.query(\"sql\", \"CREATE DOCUMENT TYPE Product IF NOT EXISTS\", is_command=True)\ndb.query(\"sql\", \"\"\"\n    INSERT INTO Product CONTENT {\n        \"name\": \"Laptop\",\n        \"price\": 999.99,\n        \"specs\": {\n            \"cpu\": \"Intel i7\",\n            \"ram\": \"16GB\"\n        }\n    }\n\"\"\", is_command=True)\n\n# Graph operations\ndb.query(\"sql\", \"CREATE VERTEX TYPE Customer IF NOT EXISTS\", is_command=True)\ndb.query(\"sql\", \"CREATE EDGE TYPE Purchased IF NOT EXISTS\", is_command=True)\ndb.query(\"sql\", \"\"\"\n    CREATE EDGE Purchased \n    FROM (SELECT FROM Customer WHERE name = 'John')\n    TO (SELECT FROM Product WHERE name = 'Laptop')\n    SET date = sysdate(), amount = 999.99\n\"\"\", is_command=True)\n\n# Key-Value operations\ndb.query(\"sql\", \"CREATE DOCUMENT TYPE Settings IF NOT EXISTS\", is_command=True)\ndb.query(\"sql\", \"INSERT INTO Settings SET key = 'theme', value = 'dark'\", is_command=True)\n\n# Time-Series operations\ndb.query(\"sql\", \"CREATE VERTEX TYPE Sensor IF NOT EXISTS\", is_command=True)\ndb.query(\"sql\", \"\"\"\n    INSERT INTO Sensor SET \n    sensor_id = 'temp_01', \n    timestamp = sysdate(), \n    temperature = 23.5\n\"\"\", is_command=True)\n```\n\n### Vector Search (for AI/ML applications)\n\n```python\n# Note: Vector similarity search is not currently supported by this driver\n# You can store vector embeddings as arrays\n\n# Store embeddings\ndb.query(\"sql\", \"CREATE VERTEX TYPE DocRecord IF NOT EXISTS\", is_command=True)\ndb.query(\"sql\", \"\"\"\n    INSERT INTO DocRecord SET \n    title = 'AI Research Paper',\n    embedding = [0.1, 0.2, 0.3, 0.4, 0.5],\n    content = 'Full document text...'\n\"\"\", is_command=True)\n\n# Query documents with embeddings\nresult = db.query(\"sql\", \"SELECT title, embedding FROM DocRecord WHERE title = 'AI Research Paper'\")\n```\n\n### Using openCypher\n\n```python\n# Note: openCypher support may have different performance characteristics than native SQL\n# For large operations, consider using ArcadeDB's native SQL or Java API\n\n# Create nodes\ndb.query(\"cypher\", \"CREATE (p:Person {name: 'John', age: 30})\", is_command=True)\ndb.query(\"cypher\", \"CREATE (p:Person {name: 'Jane', age: 25})\", is_command=True)\n\n# Create relationship\ndb.query(\"cypher\", \"\"\"\n    MATCH (a:Person {name: 'John'}), (b:Person {name: 'Jane'})\n    CREATE (a)-[:KNOWS]->(b)\n\"\"\", is_command=True)\n\n# Query with openCypher\nresult = db.query(\"cypher\", \"MATCH (p:Person) RETURN p.name, p.age\")\nprint(result)\n```\n\n### Using Gremlin\n\n```python\n# Note: Gremlin support may have different performance characteristics than native SQL\n# For large operations, consider using ArcadeDB's native SQL or Java API\n\n# Add vertices\ndb.query(\"gremlin\", \"g.addV('Person').property('name', 'John').property('age', 30)\", is_command=True)\ndb.query(\"gremlin\", \"g.addV('Person').property('name', 'Jane').property('age', 25)\", is_command=True)\n\n# Query with Gremlin\nresult = db.query(\"gremlin\", \"g.V().hasLabel('Person').values('name')\")\nprint(result)\n\n# Traversal\nresult = db.query(\"gremlin\", \"g.V().hasLabel('Person').has('age', gt(20)).values('name', 'age')\")\nprint(result)\n```\n\n## Configuration Options\n\n### SyncClient Parameters\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `host` | str | \"localhost\" | ArcadeDB server hostname |\n| `port` | int | 2480 | ArcadeDB server port |\n| `username` | str | None | Database username |\n| `password` | str | None | Database password |\n| `protocol` | str | \"http\" | Protocol (\"http\" or \"https\") |\n\n### DatabaseDao.query() Parameters\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `language` | str | Required | Query language: \"sql\", \"cypher\", \"gremlin\", \"graphql\", \"mongo\" |\n| `command` | str | Required | The query/command to execute |\n| `is_command` | bool | False | Set True for DDL/DML (CREATE, INSERT, UPDATE, DELETE) |\n| `limit` | int | None | Maximum number of results |\n| `params` | dict | None | Query parameters |\n| `session_id` | str | None | Transaction session ID |\n\n## Requirements\n\n- **Python**: 3.10 or higher\n- **ArcadeDB**: Version 25.8.1 or higher\n- **Dependencies**: \n  - `requests` >= 2.25.0\n  - `retry` >= 0.9.2\n\n## Development\n\n### Setting up Development Environment\n\n```bash\n# Clone the repository\ngit clone https://github.com/stevereiner/arcadedb-python.git\ncd arcadedb-python\n\n# Install uv (if not already installed)\npip install uv\n\n# Create virtual environment and install dependencies\nuv venv\nuv pip install -e .[dev]\n\n# Run tests\nuv run pytest\n\n# Run linting\nuv run black .\nuv run isort .\nuv run flake8\nuv run mypy arcadedb_python\n```\n\n### Building the Package\n\n```bash\n# Build the package\nuv build\n\n# Check the built package\nuv run twine check dist/*\n```\n\n### Running ArcadeDB for Development\n\n```bash\n# Using Docker\ndocker run -d --name arcadedb \\\n  -p 2480:2480 -p 2424:2424 \\\n  -e JAVA_OPTS=\"-Darcadedb.server.rootPassword=playwithdata\" \\\n  arcadedata/arcadedb:latest\n\n# Access ArcadeDB Studio at http://localhost:2480\n```\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## Links\n\n### This Project\n- **GitHub**: https://github.com/stevereiner/arcadedb-python\n- **PyPI**: https://pypi.org/project/arcadedb-python/\n- **Issues**: https://github.com/stevereiner/arcadedb-python/issues\n\n### ArcadeDB\n- **Homepage**: https://arcadedb.com\n- **Documentation**: https://docs.arcadedb.com\n- **Main Repository**: https://github.com/ArcadeData/arcadedb\n\n### Original Contributors\n- **Adams Rosales**: https://github.com/adaros92/arcadedb-python-driver\n- **ExtReMLapin**: https://github.com/ExtReMLapin\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes.",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python driver for ArcadeDB - Multi-Model Database with Graph, Document, Key-Value, Vector, and Time-Series support",
    "version": "0.3.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/stevereiner/arcadedb-python/issues",
        "Changelog": "https://github.com/stevereiner/arcadedb-python/blob/main/CHANGELOG.md",
        "Documentation": "https://docs.arcadedb.com/",
        "Homepage": "https://github.com/stevereiner/arcadedb-python",
        "Repository": "https://github.com/stevereiner/arcadedb-python"
    },
    "split_keywords": [
        "arcadedb",
        " database",
        " document",
        " graph",
        " key-value",
        " multi-model",
        " nosql",
        " python-driver",
        " time-series",
        " vector"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "238730dce4775dffee026fce401fbcbea9489970d0cca3598cf0e2404cc3057d",
                "md5": "6dbaeee36ea7720ec4119cce5708de15",
                "sha256": "9fa6bdc80650585bac22fd5480bcd4a5ec35888f8125e9806c11c69c04d5dcf3"
            },
            "downloads": -1,
            "filename": "arcadedb_python-0.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6dbaeee36ea7720ec4119cce5708de15",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 27012,
            "upload_time": "2025-10-21T19:33:10",
            "upload_time_iso_8601": "2025-10-21T19:33:10.294089Z",
            "url": "https://files.pythonhosted.org/packages/23/87/30dce4775dffee026fce401fbcbea9489970d0cca3598cf0e2404cc3057d/arcadedb_python-0.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b5673715d9cd18eb48d75b890153a24cd5eb44d8488df7cc3407d84900f0b6dd",
                "md5": "cde012b840c348caacbe5f7fd89c5add",
                "sha256": "607941725089154879dbd018d929ec189204a05c6915b4923bd9b65858450253"
            },
            "downloads": -1,
            "filename": "arcadedb_python-0.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "cde012b840c348caacbe5f7fd89c5add",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 40121,
            "upload_time": "2025-10-21T19:33:11",
            "upload_time_iso_8601": "2025-10-21T19:33:11.865156Z",
            "url": "https://files.pythonhosted.org/packages/b5/67/3715d9cd18eb48d75b890153a24cd5eb44d8488df7cc3407d84900f0b6dd/arcadedb_python-0.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-21 19:33:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "stevereiner",
    "github_project": "arcadedb-python",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "tox": true,
    "lcname": "arcadedb-python"
}
        
Elapsed time: 1.09639s