Metadata-Version: 2.4
Name: natswork-server
Version: 0.0.1
Summary: Server library for NatsWork job processing system
Project-URL: Homepage, https://github.com/tesote/nats-work
Project-URL: Repository, https://github.com/tesote/nats-work
Project-URL: Documentation, https://github.com/tesote/nats-work/tree/main/docs/python
Project-URL: Bug Reports, https://github.com/tesote/nats-work/issues
Project-URL: Changelog, https://github.com/tesote/nats-work/blob/main/CHANGELOG.md
Author-email: NatsWork Contributors <natswork@tesote.com>
License: MIT
License-File: LICENSE
Keywords: distributed,jobs,nats,queue,worker
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.8
Requires-Dist: click>=8.0.0
Requires-Dist: nats-py<3.0.0,>=2.4.0
Requires-Dist: pydantic<3.0.0,>=2.0.0
Requires-Dist: typing-extensions>=4.0.0
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: mypy>=1.5.0; extra == 'dev'
Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Provides-Extra: django
Requires-Dist: django>=3.2; extra == 'django'
Provides-Extra: fastapi
Requires-Dist: fastapi>=0.68.0; extra == 'fastapi'
Requires-Dist: uvicorn>=0.15.0; extra == 'fastapi'
Provides-Extra: flask
Requires-Dist: flask>=2.0.0; extra == 'flask'
Provides-Extra: monitoring
Requires-Dist: prometheus-client>=0.14.0; extra == 'monitoring'
Requires-Dist: structlog>=22.1.0; extra == 'monitoring'
Provides-Extra: test
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'test'
Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
Requires-Dist: pytest>=7.0.0; extra == 'test'
Requires-Dist: testcontainers>=3.7.0; extra == 'test'
Description-Content-Type: text/markdown

# NatsWork Server (Python)

Server library for the NatsWork job processing system.

## Installation

```bash
pip install -e .
```

## Development

```bash
# Install with development dependencies
pip install -e ".[dev,test]"

# Run tests
pytest

# Run tests with coverage
pytest --cov=src --cov-report=html

# Format code
black src tests

# Lint code
ruff src tests

# Type check
mypy src
```

## Status

⚠️ **Under Development** - Implementation pending (see docs/python/001-010.md)

This package provides the foundation for:
- Job processing workers
- Queue management
- Multi-threaded job execution
- Health monitoring and metrics
- Framework integration (Django, Flask, FastAPI)

## Usage

```python
from natswork_server import job, NatsWorkServer

# Define a job
@job(queue="default", retries=3)
class MyJob:
    def perform(self, x, y):
        return x + y

# Start server
server = NatsWorkServer("nats://localhost:4222")
# Coming in Tasks 004-006
```

## CLI

```bash
# Start worker server
natswork-server start --queues default --concurrency 10
```