Skip to main content

A Python client for MontyCat, NoSQL store utilizing Data Mesh architecture.

Reason this release was yanked:

unstable

Project description

MontyCat

MontyCat is a Python client for Montycat, a high-performance, distributed NoSQL store designed with a cutting-edge Data Mesh architecture. This client empowers developers to seamlessly manage and query their data while leveraging the unparalleled flexibility and scalability offered by NoSQL databases within a decentralized data ownership paradigm.

Key Features

  • High Performance: Harnesses MontyCat's advanced architecture for lightning-fast read and write operations.
  • 🌐 Distributed Architecture: Effortlessly connects to a distributed NoSQL database, enabling dynamic horizontal scalability across diverse data domains.
  • 🗂️ Data Mesh Design: Empowers cross-functional teams to own, manage, and serve their own data, enhancing collaboration and eliminating bottlenecks.
  • 🔄 Asynchronous Support: Built on asyncio for ultra-responsive, non-blocking operations, enabling high concurrency and real-time data processing.
  • 🧩 Meshing and Sharding: Efficiently orchestrates data across multiple nodes with robust support for data meshing and sharding, optimizing resource utilization.
  • 🛡️ Memory Safety: Implements state-of-the-art memory management practices, minimizing the risk of memory-related issues and enhancing stability.
  • 📊 Smart Data Governance: Integrates intelligent governance features to ensure data quality and compliance across the distributed architecture.
  • 🤝 Seamless Integration: Offers a simple and intuitive API for effortless integration with Python applications, reducing time-to-value.
  • 📚 Robust Documentation: Comprehensive and user-friendly documentation to accelerate onboarding and maximize productivity.

Installation

You can install Python client for Montycat using pip:

pip install montycat

```python
#models.py
from montycat import Engine, Store, Schema

connection = Engine(
    host="127.0.0.1",
    port=21210,
    username="admin",
    password="password",
    store="main"
)

class Departments(Store.Persistent):
    keyspace = "departments"

class Managers(Store.InMemory):
    keyspace = "managers"

Departments.connect_engine(connection)
Managers.connect_engine(connection)

#migrations.py -- execute separately 
from models.py import Departments, Managers

Departments.create_keyspace()
Managers.create_keyspace()

class Department(Schema):
    name: str
    employees: int

class Manager(Schema):
    name: str
    age: int

#***.py
from models.py import Departments, Managers, Department, Manager

department = Department(
    name="Sales",
    employees=10
).serialize()

manager = Manager(
    name="John Doe",
    age=46
).serialize()

#put into async function
res1 = await Departments.insert_custom_key_value(custom_key="Sales", value=department) 
#{'success': True, 'payload': 192893812831283134324}
res2 = await Managers.insert_value(value=manager)
#{'success': True, 'payload': 192893812831283134324}
res3 = await Departments.get_value(custom_key="Sales")
#{'success': True, 'payload': {'name': 'Sales', 'employees': 10}}
res4 = await Managers.lookup_values_where(age=46)
#{'success': True, 'payload': [{'name': 'John Doe', 'age': 46}]}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

montycat-0.1.36.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

montycat-0.1.36-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file montycat-0.1.36.tar.gz.

File metadata

  • Download URL: montycat-0.1.36.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for montycat-0.1.36.tar.gz
Algorithm Hash digest
SHA256 5ee31cfdbd9619ed369eb7028521f7b22ddc68379b70eb5057a8289dd3667b8d
MD5 9acd4f9b67fce063cc6c25733982aca7
BLAKE2b-256 051b86bc0512ef0d822bf874188e8a1e4c0dc9f7730def937bb8278eddbfd76a

See more details on using hashes here.

File details

Details for the file montycat-0.1.36-py3-none-any.whl.

File metadata

  • Download URL: montycat-0.1.36-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for montycat-0.1.36-py3-none-any.whl
Algorithm Hash digest
SHA256 a38f3e511b2d0674fc0d61be563a5312e67d3a3961f2fefd42412387f23d652e
MD5 efbd952f077ad5b0e5ff045ad341d876
BLAKE2b-256 36b2c3e0a30f7e60abf1bb4b79323d4b8f84ad467186e4803d3d8978d377f136

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page