Metadata-Version: 2.4
Name: swiss-caselaw-scrapers
Version: 0.1.0
Summary: Scraping framework for Swiss federal and cantonal court decisions
Author: Jonas Hertner
License-Expression: MIT
Project-URL: Homepage, https://opencaselaw.ch
Project-URL: Documentation, https://opencaselaw.ch
Project-URL: Repository, https://github.com/jonashertner/opencaselaw
Project-URL: Issues, https://github.com/jonashertner/opencaselaw/issues
Keywords: Switzerland,case law,legal research,scraping,MCP
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Text Processing :: Indexing
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.31
Requires-Dist: beautifulsoup4>=4.12
Requires-Dist: lxml>=4.9
Requires-Dist: playwright>=1.58.0
Requires-Dist: pydantic>=2.0
Requires-Dist: pyarrow>=14.0
Requires-Dist: huggingface-hub>=0.20
Requires-Dist: zstandard>=0.22
Provides-Extra: crypto
Requires-Dist: pycryptodome>=3.20; extra == "crypto"
Provides-Extra: pdf
Requires-Dist: pymupdf>=1.27.2.2; extra == "pdf"
Requires-Dist: pdfplumber>=0.11; extra == "pdf"
Provides-Extra: api
Requires-Dist: fastapi>=0.104; extra == "api"
Requires-Dist: uvicorn>=0.24; extra == "api"
Requires-Dist: mcp<2,>=1.28.1; extra == "api"
Requires-Dist: python-dotenv>=1.0; extra == "api"
Provides-Extra: providers
Requires-Dist: anthropic>=0.40; extra == "providers"
Requires-Dist: google-genai>=0.3; extra == "providers"
Requires-Dist: openai>=1.40; extra == "providers"
Provides-Extra: semantic
Requires-Dist: sentence-transformers>=3.0; extra == "semantic"
Requires-Dist: sqlite-vec>=0.1.6; extra == "semantic"
Requires-Dist: onnxruntime>=1.24.3; extra == "semantic"
Provides-Extra: dev
Requires-Dist: pytest>=9.0.3; extra == "dev"
Requires-Dist: pytest-asyncio>=1.3.0; extra == "dev"
Requires-Dist: ruff>=0.1; extra == "dev"
Provides-Extra: all
Requires-Dist: swiss-caselaw-scrapers[api,crypto,dev,pdf,providers,semantic]; extra == "all"
Dynamic: license-file

# swiss-caselaw-scrapers

The Python distribution for [OpenCaseLaw](https://opencaselaw.ch), an open
pipeline for collecting, normalising, searching, and analysing published Swiss
federal and cantonal court decisions.

The package ships the scraper registry and pipeline, quality-control tools,
search stack, REST/MCP server modules, and two command-line entry points:
`swiss-caselaw` and `swiss-caselaw-gap-report`.

## Install

Use a virtual environment and install the capabilities you need:

```console
python -m pip install swiss-caselaw-scrapers
python -m pip install "swiss-caselaw-scrapers[api]"
```

This is an alpha release of an actively developed research infrastructure
project. Scrapers make network requests to official publication systems when
you invoke them; review the selected source and applicable terms before a run.

## Documentation and provenance

- Project and public search: <https://opencaselaw.ch>
- Source and issue tracker: <https://github.com/jonashertner/opencaselaw>
- API documentation: <https://mcp.opencaselaw.ch/api/docs>
- Dataset: <https://huggingface.co/datasets/voilaj/swiss-caselaw>

Official releases are built from the public repository and published to PyPI
through GitHub Actions trusted publishing. The release workflow uses short-lived
OIDC credentials; the repository does not store a long-lived PyPI token.

## Licensing

The software is MIT-licensed. Published datasets are generally CC0; source-
specific exceptions and the governance/removal policy are documented in the
repository and on the project website.
