Metadata-Version: 2.4
Name: parsimony-boj
Version: 0.7.0
Summary: Bank of Japan connector for the parsimony framework
Project-URL: Homepage, https://www.boj.or.jp
Project-URL: Repository, https://github.com/ockham-sh/parsimony-connectors
Project-URL: Issues, https://github.com/ockham-sh/parsimony-connectors/issues
Author-email: "Ockham.sh" <team@ockham.sh>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: boj,connectors,data,finance,parsimony
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: pandas<3,>=2.3.0
Requires-Dist: parsimony-core<0.8,>=0.7
Requires-Dist: parsimony-shared<0.8,>=0.7
Requires-Dist: pydantic<3,>=2.11.1
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=9.0.3; extra == 'dev'
Requires-Dist: respx>=0.22.0; extra == 'dev'
Requires-Dist: ruff>=0.15.10; extra == 'dev'
Description-Content-Type: text/markdown

# parsimony-boj

Bank of Japan (BoJ) statistics connector — fetches time series from the BoJ Time-Series Data Search.

Part of the [parsimony-connectors](https://github.com/ockham-sh/parsimony-connectors) monorepo. Distributed standalone on PyPI as `parsimony-boj`.

## Connectors

| Name | Kind | Description |
|---|---|---|
| `boj_fetch` | fetch | Fetch BoJ time series by database (`db`) and series `code`. Max 250 codes per request. |
| `enumerate_boj` | enumerator | Enumerate BoJ series across the 50 canonical databases (catalog indexing). |
| `boj_databases_search` | search | Step 1: search statistics databases (`db` codes). |
| `boj_series_search` | search | Step 2: search series within one database; returns `code` + `db` for `boj_fetch`. |

Catalog discovery chain: `boj_databases_search` → `boj_series_search(db=...)` → `boj_fetch`.
Published snapshots use a multi-bundle layout under `hf://parsimony-dev/boj/` (see
connectors-repo [catalog-operations.md](../../docs/catalog-operations.md) — internal
maintainer standard, not part of `parsimony-core`).

## Install

```bash
pip install parsimony-boj
```

Pulls in a compatible `parsimony-core` automatically. Verify discovery:

```bash
python -c "from parsimony import discover; print([p.name for p in discover.iter_providers()])"
```

## Configuration

No environment variables required. The BoJ API is unauthenticated.

## Quick start

```python
import asyncio
from parsimony_boj import CONNECTORS

async def main():
    connectors = CONNECTORS
    result = await connectors["boj_fetch"](db="FM08", code="FXERD01")
    print(result.data.head())

asyncio.run(main())
```

For multi-plugin composition:

```python
from parsimony import discover
connectors = discover.load_all()
```

## Provider

- Homepage: https://www.boj.or.jp
- API manual: https://www.stat-search.boj.or.jp/info/api_manual_en.pdf

## License

See [LICENSE](./LICENSE).
