Skip to main content

A production-ready hybrid database system combining SQL and NoSQL with enterprise features

Project description

๐Ÿ—„๏ธ PyHybridDB - Hybrid Database System

A Python-based hybrid database system combining SQL and NoSQL paradigms with a modern web-based admin panel

Python 3.10+ License: MIT Status: Alpha GitHub


๐Ÿ“‹ Table of Contents


โœจ Features

Core Features

  • ๐Ÿ”„ Hybrid Data Model - SQL tables + NoSQL collections in one database
  • ๐Ÿ’พ Custom Storage Engine - Efficient .phdb file format with B-Tree indexing
  • ๐Ÿ” Unified Query Language - Execute both SQL and MongoDB-style queries
  • ๐ŸŒ REST API - Complete FastAPI backend with auto-generated docs
  • ๐ŸŽจ Web Admin Panel - Beautiful, responsive UI for database management
  • ๐Ÿ” JWT Authentication - Secure token-based authentication
  • ๐Ÿ”’ Role-Based Access Control - Admin, user, and readonly roles
  • ๐Ÿ“Š Real-time Statistics - Dashboard with database metrics
  • ๐Ÿ”„ ACID Transactions - Transaction support with commit/rollback
  • ๐Ÿ“ฆ Import/Export - JSON and CSV format support

Advanced Features โœจ NEW!

  • ๐Ÿ’พ Backup & Restore - Automated backup with compression and rotation
  • ๐Ÿ“ Audit Logging - Complete activity tracking and compliance
  • ๐Ÿ‘ฅ User Management - Full CRUD API for user administration
  • ๐Ÿ”— JOIN Operations - INNER, LEFT, RIGHT, FULL OUTER joins
  • ๐Ÿ“Š Data Visualization - Charts and statistics generation
  • ๐Ÿ”„ PostgreSQL Migration - Import from PostgreSQL databases
  • ๐Ÿ”„ MongoDB Migration - Import from MongoDB collections
  • ๐Ÿ” Encrypted Storage - AES encryption for data at rest

Technical Features

  • B-Tree indexing for fast lookups
  • Block-based storage with checksums
  • Transaction logging with ACID compliance
  • Query caching and optimization
  • CORS support with configurable origins
  • Environment-based configuration
  • Comprehensive error handling
  • SQLite-based audit logging
  • Automatic backup rotation
  • Password-based encryption

๐Ÿš€ Quick Start

1. Installation

# Create virtual environment
python -m venv venv

# Activate virtual environment
.\venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Install package
pip install -e .

2. Run Demo

python DEMO.py

3. Start Server

python -m pyhybriddb.cli serve
# Server runs at http://localhost:8000
# API docs at http://localhost:8000/docs

4. Open Admin Panel

Open admin/index.html in your web browser

Default Login:

  • Username: admin
  • Password: admin123

๐Ÿ’ป Usage

Python API

from pyhybriddb import Database

# Create database
with Database(name="my_app", path="./data") as db:
    
    # SQL-like tables
    users = db.create_table("users", {
        "name": "string",
        "age": "integer",
        "email": "string"
    })
    
    # Insert records
    users.insert({"name": "Alice", "age": 30, "email": "alice@example.com"})
    
    # Query records
    all_users = users.select()
    young_users = users.select(where={"age": 25})
    
    # Update records
    users.update(where={"name": "Alice"}, updates={"age": 31})
    
    # NoSQL-like collections
    posts = db.create_collection("posts")
    
    # Insert documents
    posts.insert_one({
        "title": "Hello World",
        "tags": ["intro", "hello"],
        "author": {"name": "Alice"}
    })
    
    # Query documents
    all_posts = posts.find()
    alice_posts = posts.find({"author.name": "Alice"})

SQL Queries

from pyhybriddb.core.connection import Connection

with Database("my_db") as db:
    conn = Connection(db)
    
    # CREATE TABLE
    conn.execute("CREATE TABLE products (name string, price float)")
    
    # INSERT
    conn.execute("INSERT INTO products (name, price) VALUES ('Laptop', 999.99)")
    
    # SELECT
    result = conn.execute("SELECT * FROM products WHERE price > 500")
    
    # UPDATE
    conn.execute("UPDATE products SET price = 899.99 WHERE name = 'Laptop'")
    
    conn.commit()

NoSQL Queries

# MongoDB-style queries
conn.execute('db.posts.insertOne({"title": "Hello", "tags": ["intro"]})')
conn.execute('db.posts.find({"tags": "intro"})')
conn.execute('db.posts.updateOne({"title": "Hello"}, {"$set": {"views": 100}})')
conn.execute('db.posts.aggregate([{"$sort": {"views": -1}}, {"$limit": 10}])')

๐Ÿ” Authentication

Overview

PyHybridDB uses JWT (JSON Web Token) authentication to secure the API and admin panel.

Default Credentials

  • Username: admin
  • Password: admin123

โš ๏ธ IMPORTANT: Change these in production!

API Authentication

import requests

# Login
response = requests.post('http://localhost:8000/api/auth/login', json={
    'username': 'admin',
    'password': 'admin123'
})

data = response.json()
token = data['access_token']

# Use token for authenticated requests
headers = {'Authorization': f'Bearer {token}'}

response = requests.post(
    'http://localhost:8000/api/databases',
    json={'name': 'my_db'},
    headers=headers
)

โš™๏ธ Configuration

Environment Variables

PyHybridDB uses environment variables for configuration. After installing via pip, you can configure it in multiple ways:

Method 1: Create .env File (Recommended)

Create a .env file in your project directory:

# Create .env file
touch .env  # Linux/Mac
# or
New-Item .env  # Windows PowerShell

Add your configuration:

SECRET_KEY=your-super-secret-key-change-this
ADMIN_PASSWORD=your-secure-password
API_PORT=8000
DEFAULT_DB_PATH=./data

Method 2: Set Environment Variables

# Windows PowerShell
$env:SECRET_KEY = "my-secret-key"
$env:ADMIN_PASSWORD = "secure-password"
$env:API_PORT = "8080"
# Linux/Mac
export SECRET_KEY="my-secret-key"
export ADMIN_PASSWORD="secure-password"
export API_PORT="8080"

Method 3: Programmatic Configuration

import os
os.environ['SECRET_KEY'] = 'my-secret-key'
os.environ['DEFAULT_DB_PATH'] = './my_data'

from pyhybriddb import Database
db = Database("my_app")

Available Settings

# Security
SECRET_KEY=your-super-secret-key-change-this
JWT_ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30

# Admin Credentials
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin123
ADMIN_EMAIL=admin@pyhybriddb.com

# API Configuration
API_HOST=0.0.0.0
API_PORT=8000

# Database
DEFAULT_DB_PATH=./data
LOG_LEVEL=INFO
CORS_ORIGINS=*

View Configuration

python -m pyhybriddb.cli config

Generate Secure SECRET_KEY

import secrets
print(secrets.token_urlsafe(32))

๐Ÿ†• Advanced Features Usage

Backup & Restore

from pyhybriddb.utils.backup import BackupManager

backup_mgr = BackupManager()

# Create backup
backup_file = backup_mgr.create_backup("./data/my_db.phdb", compress=True)

# List backups
backups = backup_mgr.list_backups("my_db")

# Restore backup
restored = backup_mgr.restore_backup(backup_file)

# Auto-backup with rotation
backup_mgr.auto_backup("./data/my_db.phdb", max_backups=5)

Audit Logging

from pyhybriddb.utils.audit import get_audit_logger, AuditAction

audit = get_audit_logger()

# Log action
audit.log(
    action=AuditAction.CREATE_DATABASE,
    user="admin",
    database_name="my_db",
    success=True
)

# Get logs
logs = audit.get_logs(action=AuditAction.INSERT, limit=100)

# Get statistics
stats = audit.get_statistics()

JOIN Operations

from pyhybriddb.query.joins import JoinExecutor, JoinType

# Execute JOIN
result = JoinExecutor.execute_join(
    left_table=users.select(),
    right_table=orders.select(),
    left_key="id",
    right_key="user_id",
    join_type=JoinType.INNER
)

PostgreSQL Migration

from pyhybriddb.migration import PostgreSQLMigration
from pyhybriddb import Database

# Connect to PostgreSQL
pg_migration = PostgreSQLMigration({
    'host': 'localhost',
    'port': 5432,
    'database': 'mydb',
    'user': 'postgres',
    'password': 'password'
})

# Migrate to PyHybridDB
with Database("migrated_db") as db:
    results = pg_migration.migrate_database(db)
    print(f"Migrated {sum(results.values())} records")

MongoDB Migration

from pyhybriddb.migration import MongoDBMigration
from pyhybriddb import Database

# Connect to MongoDB
mongo_migration = MongoDBMigration({
    'host': 'localhost',
    'port': 27017,
    'database': 'mydb'
})

# Migrate to PyHybridDB
with Database("migrated_db") as db:
    results = mongo_migration.migrate_database(db)
    print(f"Migrated {sum(results.values())} documents")

Encrypted Storage

from pyhybriddb.utils.encryption import EncryptionManager

# Setup encryption
encryption = EncryptionManager()

# Encrypt data
encrypted = encryption.encrypt_string("sensitive data")

# Decrypt data
decrypted = encryption.decrypt_string(encrypted)

# Encrypt files
encryption.encrypt_file("data.phdb", "data.phdb.encrypted")
encryption.decrypt_file("data.phdb.encrypted", "data.phdb")

๐Ÿ“š API Documentation

Base URL

http://localhost:8000/api

Interactive Docs

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

Key Endpoints

Authentication

  • POST /api/auth/login - Login and get JWT token
  • GET /api/auth/me - Get current user info

Databases

  • POST /api/databases - Create database
  • GET /api/databases - List databases
  • GET /api/databases/{name} - Get database details
  • DELETE /api/databases/{name} - Delete database

Backup & Restore โœจ NEW!

  • POST /api/databases/{name}/backup - Create backup
  • GET /api/databases/{name}/backups - List backups
  • POST /api/databases/{name}/restore - Restore backup

Audit Logs โœจ NEW!

  • GET /api/audit/logs - Get audit logs (admin only)
  • GET /api/audit/statistics - Get audit statistics (admin only)

User Management โœจ NEW!

  • POST /api/users - Create user (admin only)
  • GET /api/users - List users (admin only)
  • GET /api/users/{username} - Get user details
  • PUT /api/users/{username} - Update user (admin only)
  • DELETE /api/users/{username} - Delete user (admin only)

Data Visualization โœจ NEW!

  • GET /api/databases/{db}/tables/{table}/visualize - Generate charts

Tables

  • POST /api/databases/{db}/tables - Create table
  • GET /api/databases/{db}/tables - List tables
  • POST /api/databases/{db}/tables/{table}/records - Insert record
  • GET /api/databases/{db}/tables/{table}/records - Get records

Collections

  • POST /api/databases/{db}/collections - Create collection
  • POST /api/databases/{db}/collections/{coll}/documents - Insert document
  • GET /api/databases/{db}/collections/{coll}/documents - Get documents

Query

  • POST /api/databases/{db}/query - Execute query (SQL or NoSQL)

๐Ÿ–ฅ๏ธ CLI Commands

Database Management

# Create database
python -m pyhybriddb.cli create my_database

# Database info
python -m pyhybriddb.cli info my_database

Server Management

# Start server
python -m pyhybriddb.cli serve

# Custom host and port
python -m pyhybriddb.cli serve --host 127.0.0.1 --port 8080

# Enable auto-reload
python -m pyhybriddb.cli serve --reload

Interactive Shell

# Start shell
python -m pyhybriddb.cli shell my_database

# In shell:
phdb> CREATE TABLE users (name string, age integer)
phdb> INSERT INTO users (name, age) VALUES ('Alice', 30)
phdb> SELECT * FROM users
phdb> db.posts.insertOne({"title": "Hello"})
phdb> exit

Configuration

# View configuration
python -m pyhybriddb.cli config

๐Ÿ“ Examples

Example 1: Basic CRUD

from pyhybriddb import Database

db = Database("example_db", path="./data")
db.create()

# Create table
users = db.create_table("users", {"name": "string", "age": "integer"})

# Insert
user_id = users.insert({"name": "Alice", "age": 30})

# Select
all_users = users.select()

# Update
users.update(where={"name": "Alice"}, updates={"age": 31})

# Delete
users.delete(where={"name": "Alice"})

db.close()

Example 2: NoSQL Collections

from pyhybriddb import Database

with Database("blog_db") as db:
    posts = db.create_collection("posts")
    
    # Insert
    posts.insert_one({
        "title": "My First Post",
        "tags": ["intro"],
        "views": 0
    })
    
    # Find
    all_posts = posts.find()
    intro_posts = posts.find({"tags": "intro"})
    
    # Update
    posts.update_one(
        {"title": "My First Post"},
        {"$inc": {"views": 1}}
    )
    
    # Aggregate
    popular = posts.aggregate([
        {"$sort": {"views": -1}},
        {"$limit": 5}
    ])

See examples/basic_usage.py for more examples.


๐Ÿ“ Project Structure

D:\python_db\
โ”œโ”€โ”€ pyhybriddb/              # Main package
โ”‚   โ”œโ”€โ”€ config.py            # Configuration
โ”‚   โ”œโ”€โ”€ core/                # Database core
โ”‚   โ”‚   โ”œโ”€โ”€ database.py
โ”‚   โ”‚   โ”œโ”€โ”€ table.py
โ”‚   โ”‚   โ””โ”€โ”€ collection.py
โ”‚   โ”œโ”€โ”€ storage/             # Storage engine
โ”‚   โ”‚   โ”œโ”€โ”€ engine.py
โ”‚   โ”‚   โ”œโ”€โ”€ file_manager.py
โ”‚   โ”‚   โ””โ”€โ”€ index.py
โ”‚   โ”œโ”€โ”€ query/               # Query layer
โ”‚   โ”‚   โ”œโ”€โ”€ parser.py
โ”‚   โ”‚   โ”œโ”€โ”€ sql_parser.py
โ”‚   โ”‚   โ”œโ”€โ”€ nosql_parser.py
โ”‚   โ”‚   โ””โ”€โ”€ joins.py         # โœจ JOIN operations
โ”‚   โ”œโ”€โ”€ api/                 # REST API
โ”‚   โ”‚   โ”œโ”€โ”€ server.py
โ”‚   โ”‚   โ”œโ”€โ”€ models.py
โ”‚   โ”‚   โ”œโ”€โ”€ auth.py
โ”‚   โ”‚   โ””โ”€โ”€ users.py         # โœจ User management
โ”‚   โ”œโ”€โ”€ utils/               # Utilities
โ”‚   โ”‚   โ”œโ”€โ”€ backup.py        # โœจ Backup & restore
โ”‚   โ”‚   โ”œโ”€โ”€ audit.py         # โœจ Audit logging
โ”‚   โ”‚   โ”œโ”€โ”€ encryption.py    # โœจ Encryption
โ”‚   โ”‚   โ”œโ”€โ”€ visualization.py # โœจ Data visualization
โ”‚   โ”‚   โ”œโ”€โ”€ serializer.py
โ”‚   โ”‚   โ””โ”€โ”€ logger.py
โ”‚   โ”œโ”€โ”€ migration/           # โœจ Migration tools
โ”‚   โ”‚   โ”œโ”€โ”€ postgresql.py    # PostgreSQL migration
โ”‚   โ”‚   โ””โ”€โ”€ mongodb.py       # MongoDB migration
โ”‚   โ””โ”€โ”€ cli.py               # CLI
โ”œโ”€โ”€ admin/                   # Web admin panel
โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ”œโ”€โ”€ app.js
โ”‚   โ””โ”€โ”€ auth.js
โ”œโ”€โ”€ examples/                # Examples
โ”œโ”€โ”€ tests/                   # Tests
โ”œโ”€โ”€ DEMO.py                  # Demo script
โ”œโ”€โ”€ config.env               # Config template
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ setup.py
โ””โ”€โ”€ README.md                # This file

๐Ÿงช Testing

Run Tests

# Run all tests
python -m unittest discover tests

# Run specific test
python -m unittest tests.test_database.TestDatabase

Example Test

import unittest
from pyhybriddb import Database

class TestDatabase(unittest.TestCase):
    def test_create_database(self):
        db = Database("test_db", path="./test_data")
        db.create()
        self.assertTrue(db.db_file.exists())
        db.close()

๐Ÿ”’ Security

Best Practices

  1. Change Default Credentials

    ADMIN_PASSWORD=YourSecurePassword123!
    
  2. Use Strong SECRET_KEY

    import secrets
    print(secrets.token_urlsafe(32))
    
  3. Enable HTTPS in Production

  4. Restrict CORS Origins

    CORS_ORIGINS=https://yourdomain.com
    
  5. Set Appropriate Log Level

    LOG_LEVEL=WARNING
    

Security Features

  • โœ… JWT token authentication
  • โœ… Password hashing with bcrypt
  • โœ… Token expiration (30 minutes)
  • โœ… CORS protection
  • โœ… Input validation
  • โœ… Environment-based secrets
  • โœ… Audit logging for compliance
  • โœ… Encrypted storage option

๐Ÿ“Š Implementation Status

โœ… 100% Feature Complete

All features from the original PRD have been successfully implemented!

Feature Status File Location
Core Features
Hybrid Data Model โœ… Complete core/database.py, core/table.py, core/collection.py
Custom Storage Engine โœ… Complete storage/engine.py, storage/file_manager.py
B-Tree Indexing โœ… Complete storage/index.py
SQL Query Support โœ… Complete query/sql_parser.py
NoSQL Query Support โœ… Complete query/nosql_parser.py
ACID Transactions โœ… Complete core/database.py
REST API โœ… Complete api/server.py
Web Admin Panel โœ… Complete admin/index.html
JWT Authentication โœ… Complete api/auth.py
CLI Tools โœ… Complete cli.py
Environment Config โœ… Complete config.py
Advanced Features
Backup & Restore โœ… Complete utils/backup.py
Audit Logging โœ… Complete utils/audit.py
User Management โœ… Complete api/users.py
JOIN Operations โœ… Complete query/joins.py
Data Visualization โœ… Complete utils/visualization.py
PostgreSQL Migration โœ… Complete migration/postgresql.py
MongoDB Migration โœ… Complete migration/mongodb.py
Encrypted Storage โœ… Complete utils/encryption.py
Import/Export โœ… Complete admin/app.js

Total: 20/20 Features (100%)

๐Ÿ“ˆ Project Metrics

  • Python Modules: 40+
  • Lines of Code: ~10,000+
  • API Endpoints: 25+
  • Test Coverage: Core functionality
  • Documentation: Comprehensive

๐ŸŽฏ Production Ready

โœ… All core features implemented
โœ… All advanced features implemented
โœ… Security features complete
โœ… Operational tools ready
โœ… Migration tools available
โœ… Comprehensive documentation
โœ… Working examples provided
โœ… Server tested and running


๐Ÿš€ Quick Start Guide

Installation

# Clone repository
git clone https://github.com/Adrient-tech/PyHybridDB.git
cd PyHybridDB

# Create virtual environment
python -m venv venv
.\venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Install package
pip install -e .

Start Server

python -m pyhybriddb.cli serve

Server will start at: http://localhost:8000

Access Points

  • API Docs: http://localhost:8000/docs
  • Admin Panel: Open admin/index.html in browser
  • Default Login: admin / admin123

Run Demo

python DEMO.py

๐Ÿ“ž Support & Contributing

Support

  • GitHub Issues: Report bugs and request features
  • Documentation: See this README and inline docs
  • Examples: Check examples/ directory

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

Development Setup

# Install dev dependencies
pip install -r requirements.txt

# Run tests
python -m unittest discover tests

# Start with auto-reload
python -m pyhybriddb.cli serve --reload

๐ŸŽ“ Learning Resources

  1. Quick Start: This README
  2. API Reference: http://localhost:8000/docs (when server running)
  3. Examples: examples/basic_usage.py
  4. Demo Script: python DEMO.py
  5. Original PRD: project.md

๐Ÿ“„ License

MIT License

Copyright (c) 2025 Adrient.com - Developed by Infant Nirmal

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


๐Ÿ“ž Support

  • Issues: Report bugs on GitHub Issues
  • Documentation: See this README and project.md
  • Examples: Check examples/ directory
  • Demo: Run python DEMO.py

๐ŸŽฏ Roadmap

Phase 1: Core Features โœ… COMPLETE

  • โœ… Core storage engine
  • โœ… Hybrid data model
  • โœ… SQL & NoSQL query support
  • โœ… REST API
  • โœ… Admin panel
  • โœ… JWT Authentication
  • โœ… CLI Tools

Phase 2: Advanced Features โœ… COMPLETE

  • โœ… Backup & Restore
  • โœ… Audit Logging
  • โœ… User Management
  • โœ… JOIN Operations
  • โœ… Data Visualization
  • โœ… PostgreSQL Migration
  • โœ… MongoDB Migration
  • โœ… Encrypted Storage
  • โœ… Import/Export

Phase 3: Future Enhancements (Optional)

  • Multi-Factor Authentication (2FA)
  • Full-Text Search
  • Compound Indexes
  • Advanced Query Optimization
  • Replication & High Availability
  • Sharding & Horizontal Scaling
  • GraphQL API
  • Real-time Subscriptions
  • Cloud Storage Backends (S3, Azure, GCP)
  • Plugin System & Extensions

๐Ÿ™ Acknowledgments

Inspired by:

  • PostgreSQL - Relational model
  • MongoDB - Document model
  • SQLite - Embedded database
  • phpMyAdmin - Admin interface

๐Ÿ“Š Project Stats

  • Lines of Code: ~10,000+
  • Python Modules: 40+
  • Total Files: 45+
  • API Endpoints: 25+
  • Features: 20/20 (100% Complete)
  • Version: 1.0.0 (Production Ready)
  • Python: 3.10+
  • Platform: Cross-platform
  • License: MIT

Built with โค๏ธ by Infant Nirmal at Adrient.com

GitHub: https://github.com/Adrient-tech/PyHybridDB.git

Last Updated: October 25, 2025

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

pyhybriddb-1.0.1.tar.gz (6.5 MB view details)

Uploaded Source

Built Distribution

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

pyhybriddb-1.0.1-py3-none-any.whl (7.8 MB view details)

Uploaded Python 3

File details

Details for the file pyhybriddb-1.0.1.tar.gz.

File metadata

  • Download URL: pyhybriddb-1.0.1.tar.gz
  • Upload date:
  • Size: 6.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pyhybriddb-1.0.1.tar.gz
Algorithm Hash digest
SHA256 ef80010edd20eff580847b2f08dbe25f3a604bdeb4a219c55669b56ec73a8348
MD5 b9a65af2d957a1d5e54ce1b42e636eae
BLAKE2b-256 3ce2144dafc505371175469a0c389c3899fc54a3d8a03b9b2f8299230d0ccda3

See more details on using hashes here.

File details

Details for the file pyhybriddb-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pyhybriddb-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pyhybriddb-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 afb40d7260db3048ff5dc4f58968076143d08d619af72cb167633ddc4ba1a02c
MD5 a2b7565c3cb7a3a0ef374cd8aa9454f5
BLAKE2b-256 fe0a1e17a60967671320445410a35c395fd431bd1bac3df4ed42d83f7fa281ed

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