ra-law-db
Public dataset workspace and installable runtime library for Japanese chemical law screening.
ra-law-db is now the canonical non-MCP API for direct law-screening consumers.
ra-law-mcp is a thin wrapper over this package.
Direct package usage
Most consumers should install the package and use the bundled SQLite database directly:
pip install ra-law-db
uv add ra-law-db
from ra_law_db import get_law_screening_database
db = get_law_screening_database()
lookup_result = db.lookup(cas_number="75-09-2", language="ja")
search_result = db.search(query="ジクロロメタン", mode="auto", limit=10, min_score=0.6)
Public runtime API:
get_law_screening_database(law_db_path: str | None = None)LawScreeningDatabase.lookup(cas_number=None, substance_name=None, language="ja")LawScreeningDatabase.search(query, mode="auto", law_id=None, limit=20, min_score=0.6)
Default behavior:
- If
law_db_pathis omitted,ra-law-dbuses the packaged bundled SQLite database. law_db_pathmay optionally point to:- a direct SQLite file
- a checked-out
ra-law-dbdirectory containingregulatory.sqlite3and compatibility artifacts
Runtime artifact
The canonical runtime artifact is the bundled SQLite database:
- packaged path:
src/ra_law_db/data/regulatory.sqlite3 - published repo artifact:
regulatory.sqlite3
Normal installed consumers should rely on the packaged bundled database. CSV/JSONL files remain published for compatibility, inspection, and debugging, but they are not required for normal runtime use.
At runtime, the bundled database is resolved safely via importlib.resources and opened through a real filesystem path using importlib.resources.as_file(...).
MCP usage
ra-law-mcp consumes this package directly. In the normal case it does not need a separate ra-law-db checkout.
RA_LAW_DB_PATH is still supported as an override when you want to point the MCP server at:
- a custom SQLite bundle
- a local development checkout of
ra-law-db
Directory layout
regulatory.sqlite3: published SQLite bundlesrc/ra_law_db/data/regulatory.sqlite3: packaged SQLite bundle used by installsparsed/: normalized parsed entries and source snapshot manifestssource_snapshots.jsonllaw_entries.jsonl
mappings/: CAS mapping outputs and unresolved entriescas_mappings.jsonlunresolved_entries.jsonl
exports/: compatibility export filesregulatory_substances.csv
masters/: public-safe law master datasets and alias rows
Generation and releases
This repository is published by the private ra-law-scraper pipeline. The public repo contains the generated dataset and compatibility exports, not the private scraping workflow itself.
Release model:
- the package version moves with the bundled SQLite database
- a new bundled DB refresh should be released as a new
ra-law-dbpackage version - direct consumers receive data updates by upgrading
ra-law-db
Development
uv sync --group dev
uv run pre-commit install
uv run pre-commit run --all-files
uv run pytest -q
Release
PyPI publishing is handled by GitHub Actions only when a matching v* tag is
pushed. See docs/release.md for the cleanup and release
checklist.
Notes
- SQLite is the canonical runtime format for downstream consumers.
- Alias data is published in
masters/substance_aliases.csvand bundled intoregulatory.sqlite3. - Unresolved law entries are tracked in
mappings/unresolved_entries.jsonlfor manual review. ra-law-dbremains law-source-driven. It is not replaced by CREATE-SIMPLE workbook data whenra-library/ra-mcpadopt a newer CREATE-SIMPLE methodology version.
Release files for ra-law-db 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ra_law_db-0.3.0.tar.gz | 580.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ra_law_db-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / ra_law_db-0.3.0.tar.gz
| Download URL | ra_law_db-0.3.0.tar.gz |
|---|---|
| Size | 580.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ebd1b722ee6ced778103c4c8d3e07d97faef3091ad647a119ee15d88005460f1
|
|
BLAKE2b-256 checksum How to use checksums |
b9e8e872298a1f2568eda2981bc80fcaf0633687712584cd519cbf0e893c461f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logRelease files / ra_law_db-0.3.0-py3-none-any.whl
| Download URL | ra_law_db-0.3.0-py3-none-any.whl |
|---|---|
| Size | 604.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9549caa696e42150e617cc1042abb724a743f259015396cbccb53040c7cba8ba
|
|
BLAKE2b-256 checksum How to use checksums |
c643628e8d3c068c4bb655e21035f00aba01df29af259bbe257dc549855ab082
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency log