Metadata-Version: 2.4
Name: shareddata
Version: 6.85.0
Summary: Memory Mapped / Shared Memory Database with S3 repository
Home-page: https://shareddata.net
Author: shareddata
Author-email: admin@shareddata.net
License: MIT
Project-URL: Homepage, https://shareddata.net
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11, <3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ipykernel<8,>=7.4
Requires-Dist: python-json-logger<5,>=4.2
Requires-Dist: python-dotenv<2,>=1.2.4
Requires-Dist: pandas<3,>=2.2
Requires-Dist: scipy<1.18,>=1.14
Requires-Dist: numpy<1.27,>=1.26.4
Requires-Dist: numba==0.59.1
Requires-Dist: XlsxWriter<4,>=3.2.9
Requires-Dist: openpyxl<4,>=3.1.5
Requires-Dist: tqdm<5,>=4.70.1
Requires-Dist: cffi<3,>=2.1
Requires-Dist: tzlocal<6,>=5.4.4
Requires-Dist: websockets<18,>=17.1
Requires-Dist: lz4<5,>=4.4.5
Requires-Dist: flask<4,>=3.1.3
Requires-Dist: waitress<4,>=3.0.2
Requires-Dist: requests<3,>=2.34.2
Requires-Dist: flasgger==0.9.7.1
Requires-Dist: pymongo<5,>=4.18.2
Requires-Dist: setuptools>=84
Requires-Dist: filelock<5,>=4.0.9
Requires-Dist: gunicorn<27,>=26.2
Requires-Dist: aiohttp<4,>=3.14.3
Requires-Dist: boto3<2,>=1.43
Requires-Dist: confluent-kafka<3,>=2.15.1
Requires-Dist: aiokafka<1,>=0.14
Requires-Dist: redis<9,>=8.1
Requires-Dist: Authlib<2,>=1.8
Requires-Dist: PyJWT<3,>=2.8
Requires-Dist: argon2-cffi<26,>=25.1
Requires-Dist: flask-jwt-extended<5,>=4.6
Requires-Dist: cryptography<51,>=50.0.2
Requires-Dist: segno<2,>=1.6
Requires-Dist: psutil<8,>=5.9
Requires-Dist: mcp>=1.27
Requires-Dist: httpx>=0.27
Provides-Extra: test
Requires-Dist: pytest<10,>=8.3.4; extra == "test"
Requires-Dist: pytest-asyncio<2,>=0.24; extra == "test"
Requires-Dist: playwright<2,>=1.63; extra == "test"
Provides-Extra: s3
Provides-Extra: kafka
Provides-Extra: redis
Provides-Extra: all
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# SharedData

A comprehensive ultrafast Python library for financial data.

## 📖 Table of Contents

- [🏗️ Core Features](#-core-features)
- [⚡ Quick Start](#-quick-start)
- [🔧 Configuration](#-configuration)
- [🚀 Advanced Usage](#-advanced-usage)
- [🔄 Development & Documentation](#-development--documentation)
- [📄 License](#-license)
- [🤝 Contributing](#-contributing)

## 🏗️ Core Features

SharedData provides a comprehensive set of features for high-performance financial data management:

- **🗃️ Database Schema & Indexing** - Optimized schemas for financial data types
- **🌐 Storage & Integration** - Multi-storage support (Local, S3, MongoDB, Redis)
- **📈 Performance & Scalability** - Parallel processing and advanced querying
- **📊 Data Containers** - Tables, Collections, Time Series, Streams, Cache, Metadata
- **⚡ Multiprocessing & Parallel Computing** - Sophisticated parallel processing library
- **🤖 Distributed Worker System** - Automated task execution and job scheduling
- **📋 Comprehensive Logging System** - Enterprise-grade logging with multiple destinations
- **🌐 Remote API Client** - REST API for remote data access and operations

**📚 [Read the complete Core Features guide →](https://shareddata.net/docs/CORE_FEATURES.md)**

## ⚡ Quick Start

Get up and running with SharedData in minutes:

### Installation

```bash
# Create virtual environment
python -m venv venv
source venv/bin/activate

# Install SharedData
pip install -r requirements.txt
pip install -e .
```

### Basic Usage

```python
import pandas as pd
from SharedData.SharedData import SharedData

# Initialize SharedData
shdata = SharedData(__file__, user='master')

# Quick example - Tables
dates = pd.date_range('2025-01-01', '2025-01-10', freq='D')
symbols = ['AAPL', 'GOOGL', 'MSFT']
idx = pd.MultiIndex.from_product([dates, symbols], names=['date', 'symbol'])
df = pd.DataFrame({'price': 100, 'volume': 1000}, index=idx)

# Write and read data
tbl = shdata.table('MarketData', 'D1', 'TEST', 'PRICES', value=df)
tbl.write()
data = tbl.loc['2025-01-05':, 'AAPL']  # Fast symbol lookup
print(f"Retrieved {data.shape[0]} rows")
```

**📚 [Read the complete Quick Start guide →](https://shareddata.net/docs/QUICK_START.md)**

## 🔧 Configuration

Configure SharedData with environment variables for your specific needs:

```bash
# Required Variables
SHAREDDATA_SECRET_KEY="your-secret-key"
SHAREDDATA_TOKEN="your-auth-token"
AWS_ACCESS_KEY_ID="your-aws-access-key"
S3_BUCKET="s3://your-bucket-name"
MONGODB_HOST="your-mongodb-host"
SHAREDDATA_ENDPOINT="http://your-server:port"
```

**📚 [Read the complete Configuration guide →](https://shareddata.net/docs/CONFIGURATION.md)**

## 🚀 Advanced Usage

For power users and complex scenarios:

- **Advanced Data Operations** - Complex queries and aggregations
- **Performance Optimization** - Memory management and parallel processing
- **Distributed Computing** - Worker pools and distributed data processing
- **Custom Extensions** - Custom data containers and worker types
- **Production Deployment** - High availability and monitoring
- **Monitoring & Debugging** - Performance profiling and health checks

**📚 [Read the complete Advanced Usage guide →](https://shareddata.net/docs/ADVANCED_USAGE.md)**

## 🧭 Data by Symbol

Fetch data by what it is instead of where it is stored. The server picks the source, the
container and the partitions, and every answer says where its rows came from:

```python
bars = shdata.dataframe('marketdata', 'AAPL', period='M15', start='2026-10-05')
bars.attrs['provenance']['dataset']        # which container answered

from SharedData.IO.ClientAPI import ClientAPI
surface = ClientAPI.get_vol('AAPL', product='tenor', tenor='1M')
```

Market data, signals, portfolios, risk factors and volatility are served this way over
`GET /api/data/...`. This is a convenience, not the fast path: producers and other
performance-critical code keep using `table()`, `timeseries()` and `collection()`.

**📚 [Read the Data by Symbol guide →](https://shareddata.net/docs/data-api.md)**

## 🔄 Development & Documentation

For developers contributing to SharedData:

### Building Documentation

```bash
# Generate documentation from docstrings
make gitea

# Alternative methods
python generate_docs.py
python update_docs.py
make all
```

### Running Tests

```bash
python -m pytest tests/
```

**📚 [Read the complete Development guide →](https://shareddata.net/docs/DEVELOPMENT.md)**

## 📄 License

MIT: free to use, change and distribute, commercially too. See the [LICENSE](https://shareddata.net/LICENSE) file.

## 🤝 Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Update documentation: `make gitea`
5. Submit a pull request

**📚 [Read the complete Contributing guide →](https://shareddata.net/docs/DEVELOPMENT.md#contributing-guidelines)**

---

## 📚 Documentation Index

- **[🏗️ Core Features](https://shareddata.net/docs/CORE_FEATURES.md)** - Comprehensive overview of all SharedData capabilities
- **[⚡ Quick Start](https://shareddata.net/docs/QUICK_START.md)** - Get started with SharedData in minutes
- **[🔧 Configuration](https://shareddata.net/docs/CONFIGURATION.md)** - Complete configuration reference
- **[🚀 Advanced Usage](https://shareddata.net/docs/ADVANCED_USAGE.md)** - Advanced patterns and optimization
- **[🔄 Development](https://shareddata.net/docs/DEVELOPMENT.md)** - Contributing and development guidelines

---

[⬆️ Back to top](#shareddata)
