Metadata-Version: 2.4
Name: fireweave
Version: 0.1.0
Summary: Fireweave polyglot SDK for Python — OpenFeature-compatible, server-first flag evaluation and release-safety extensions (spec v0.1.0).
Author: Fireweave AI, Inc.
License-Expression: MIT
Project-URL: Homepage, https://github.com/FireWeave-HQ/fireweave-sdk
Project-URL: Documentation, https://github.com/FireWeave-HQ/fireweave-sdk/tree/master/docs
Project-URL: Repository, https://github.com/FireWeave-HQ/fireweave-sdk
Project-URL: Issues, https://github.com/FireWeave-HQ/fireweave-sdk/issues
Project-URL: Changelog, https://github.com/FireWeave-HQ/fireweave-sdk/blob/master/CHANGELOG.md
Project-URL: Source, https://github.com/FireWeave-HQ/fireweave-sdk/tree/master/sdks/python
Keywords: feature-flags,openfeature,posthog,rollout,release
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: posthog
Requires-Dist: posthog==7.31.0; extra == "posthog"
Provides-Extra: openfeature
Requires-Dist: openfeature-sdk<0.11,>=0.10.0; extra == "openfeature"
Provides-Extra: dev
Requires-Dist: posthog==7.31.0; extra == "dev"
Requires-Dist: openfeature-sdk<0.11,>=0.10.0; extra == "dev"
Requires-Dist: pytest>=8; extra == "dev"
Dynamic: license-file

# fireweave (Python SDK)

Fireweave polyglot SDK for Python — OpenFeature-compatible, server-first flag
evaluation with release-safety extensions (spec v0.1.0).

- **Core**: zero runtime dependencies (`fireweave` + `InMemoryAdapter`).
- **Extras**: `fireweave[posthog]` (PostHog backend, `posthog==7.31.0`),
  `fireweave[openfeature]` (OpenFeature provider, `openfeature-sdk>=0.10,<0.11`).

## Quick start (offline, in-memory)

```python
from fireweave import FireweaveClient, FireweaveRuntime, InMemoryAdapter

adapter = InMemoryAdapter({
    "new-checkout": {"type": "boolean", "enabled": True, "variant": "on", "value": True},
})
runtime = FireweaveRuntime(adapter)
runtime.initialize()
client = FireweaveClient(runtime)

assert client.flags.get_boolean_value("new-checkout", False) is True
client.shutdown()
```

## OpenFeature

```python
from openfeature import api
from fireweave import FireweaveRuntime, InMemoryAdapter
from fireweave.openfeature import FireweaveProvider

api.set_provider(FireweaveProvider(FireweaveRuntime(InMemoryAdapter({...}))))
client = api.get_client()
client.get_boolean_value("new-checkout", False)
```

## PostHog backend

```python
from fireweave import FireweaveConfig, FireweaveRuntime, FireweaveClient
from fireweave.adapters.posthog import PostHogAdapter

config = FireweaveConfig(project_api_key="phc_...", host="https://us.i.posthog.com")
runtime = FireweaveRuntime(PostHogAdapter(config=config), config)
runtime.initialize(backend_required=True)
client = FireweaveClient(runtime)
```

## Sync / async

The core is a thread-safe **sync** runtime; asyncio servers use
`fireweave.aio.AsyncFireweaveClient`, which offloads calls via
`asyncio.to_thread`. See `docs/adr/0004` and the module docstring.

## Development

```bash
python -m venv .venv && .venv/bin/pip install -e '.[dev]'
.venv/bin/pytest                                   # unit + conformance tests
.venv/bin/python conformance/run_conformance.py    # normalized results JSON
```
