Metadata-Version: 2.5
Name: ultima-scraper-backend
Version: 0.1.0
Summary: USR backend API, control plane, and worker service
Project-URL: Homepage, https://github.com/UltimaHoarder/UltimaScraperBackend
Project-URL: Repository, https://github.com/UltimaHoarder/UltimaScraperBackend
Project-URL: Issues, https://github.com/UltimaHoarder/UltimaScraperBackend/issues
Author-email: UltimaHoarder <21285176+UltimaHoarder@users.noreply.github.com>
License-Expression: MIT
License-File: LICENSE
Requires-Python: <3.15,>=3.14
Requires-Dist: alembic<2,>=1.18
Requires-Dist: anyio<5,>=4.12
Requires-Dist: apscheduler<4,>=3.11
Requires-Dist: asyncpg<1,>=0.31
Requires-Dist: fastapi<0.136,>=0.135
Requires-Dist: greenlet<4,>=3.2
Requires-Dist: httpx<0.29,>=0.28
Requires-Dist: jsonschema<5,>=4.23
Requires-Dist: packaging<27,>=24
Requires-Dist: platformdirs>=4.5
Requires-Dist: psutil<8,>=7.2
Requires-Dist: psycopg[binary]<4,>=3.3
Requires-Dist: pydantic[email]<3,>=2.12
Requires-Dist: python-multipart<0.1,>=0.0.22
Requires-Dist: redis[hiredis]<7.0.0,>=6.2.0
Requires-Dist: sqlmodel>=0.0.24
Requires-Dist: ujson<6,>=5
Requires-Dist: ultima-scraper-api<4,>=3.0.0b5
Requires-Dist: ultima-scraper-core<1,>=0.1
Requires-Dist: ultima-scraper-db-archive<1,>=0.2
Requires-Dist: ultima-scraper-db<1,>=0.5
Requires-Dist: uvicorn[standard]<0.42,>=0.41
Requires-Dist: uvloop>=0.21; sys_platform != 'win32'
Requires-Dist: websockets<16,>=15
Description-Content-Type: text/markdown

# UltimaScraperBackend

`UltimaScraperBackend` is the FastAPI control plane and worker-service package
used by UltimaScraper (USR). Its published distribution is
`ultima-scraper-backend` and its Python import is `ultima_scraper_backend`.

The package owns USR's generic API, job execution, plugin runtime, queue
coordination, and archive-service integration. Product launchers, WebUI
code, Compose files, and end-to-end tests remain in the USR repository.

## Ownership boundary

- This package may depend on UltimaScraperCore, UltimaScraperDB, and
  UltimaScraperDBArchive.
- It must remain unaware of OnlySiterips and the Degen backend/database.
- OSR reaches the running USR service over its archive API; it does not import
  this package.

## Development

```bash
uv sync
uv run python -c "import ultima_scraper_backend"
```

USR keeps the integration test suite that exercises this package in the full
application runtime.

Set `USR_PLUGINS_DIR` to an explicit runtime catalog. For source-checkout
development, USR sets `USR_REPOSITORY_ROOT` and the backend resolves the
catalog as `<repository-root>/plugins`.
