Metadata-Version: 2.5
Name: doc3gpp
Version: 0.3.11
Summary: Provide 3GPP TDoc information with full text search capability — a Python CLI/library, a local web UI, and an MCP server for AI clients.
Project-URL: Homepage, https://github.com/jerrywang121/doc3gpp
Project-URL: Repository, https://github.com/jerrywang121/doc3gpp
Project-URL: Issues, https://github.com/jerrywang121/doc3gpp/issues
Project-URL: Documentation, https://github.com/jerrywang121/doc3gpp/tree/main/docs
Project-URL: Changelog, https://github.com/jerrywang121/doc3gpp/releases
Author: doc3gpp contributors
License: MIT
License-File: LICENSE
Keywords: 3gpp,3gpp-meetings,3gpp-tdocs,dyna-report,scraping,sqlalchemy,tdoc,telecom,tsg,wi
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
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: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: alembic>=1.13.2
Requires-Dist: beautifulsoup4>=4.12.3
Requires-Dist: httpx<1.0,>=0.27.0
Requires-Dist: lxml>=5.2.2
Requires-Dist: numpy>=1.26
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: pydantic-settings>=2.3.4
Requires-Dist: pydantic>=2.8.0
Requires-Dist: sqlalchemy>=2.0.30
Requires-Dist: tomli-w>=1.0
Requires-Dist: tomli>=2.0.1; python_version < '3.11'
Provides-Extra: all
Requires-Dist: fastapi>=0.115.0; extra == 'all'
Requires-Dist: humanfriendly>=10.0; extra == 'all'
Requires-Dist: jinja2>=3.1.4; extra == 'all'
Requires-Dist: markdown-it-py>=3.0.0; extra == 'all'
Requires-Dist: mcp>=1.0.0; extra == 'all'
Requires-Dist: pygments>=2.18.0; extra == 'all'
Requires-Dist: python-docx>=0.8.11; extra == 'all'
Requires-Dist: python-pptx>=1.0.2; extra == 'all'
Requires-Dist: sqlite-vec>=0.1.0; extra == 'all'
Requires-Dist: tqdm>=4.66.0; extra == 'all'
Requires-Dist: typer>=0.12.3; extra == 'all'
Requires-Dist: uvicorn[standard]>=0.30.0; extra == 'all'
Provides-Extra: cli
Requires-Dist: tqdm>=4.66.0; extra == 'cli'
Requires-Dist: typer>=0.12.3; extra == 'cli'
Provides-Extra: dev
Requires-Dist: fastapi>=0.115.0; extra == 'dev'
Requires-Dist: humanfriendly>=10.0; extra == 'dev'
Requires-Dist: jinja2>=3.1.4; extra == 'dev'
Requires-Dist: markdown-it-py>=3.0.0; extra == 'dev'
Requires-Dist: mcp>=1.0.0; extra == 'dev'
Requires-Dist: pygments>=2.18.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest-xdist>=3.5.0; extra == 'dev'
Requires-Dist: pytest>=8.2.0; extra == 'dev'
Requires-Dist: ruff>=0.5.0; extra == 'dev'
Requires-Dist: tqdm>=4.66.0; extra == 'dev'
Requires-Dist: typer>=0.12.3; extra == 'dev'
Requires-Dist: uvicorn[standard]>=0.30.0; extra == 'dev'
Provides-Extra: extract
Requires-Dist: python-docx>=0.8.11; extra == 'extract'
Requires-Dist: python-pptx>=1.0.2; extra == 'extract'
Provides-Extra: search
Provides-Extra: semantic
Requires-Dist: sqlite-vec>=0.1.0; extra == 'semantic'
Provides-Extra: web
Requires-Dist: fastapi>=0.115.0; extra == 'web'
Requires-Dist: humanfriendly>=10.0; extra == 'web'
Requires-Dist: jinja2>=3.1.4; extra == 'web'
Requires-Dist: markdown-it-py>=3.0.0; extra == 'web'
Requires-Dist: mcp>=1.0.0; extra == 'web'
Requires-Dist: pygments>=2.18.0; extra == 'web'
Requires-Dist: uvicorn[standard]>=0.30.0; extra == 'web'
Description-Content-Type: text/markdown

# doc3gpp

A Python library and CLI for collecting and searching 3GPP meeting calendars,
TDocs, work items, specifications, and RAN5 testcase status snapshots.
Store source metadata in SQL, extract Word and presentation content, and use
the same services through the CLI, web UI, HTTP API, or MCP tools.

## Install

Requires **Python 3.10+**.

```bash
pip install "doc3gpp[cli,extract]"
# Or install all runtime extras: CLI, extraction, semantic search, and web/MCP.
pip install "doc3gpp[all]"
```

`pip install doc3gpp` installs the core SDK ([Python example](docs/README.md#python-sdk));
CLI dependencies require `[cli]`.
Use `[extract]` for `.docx`/`.pptx` extraction and `[semantic]` for SQLite vector
search. Legacy `.doc`/`.ppt` conversion also requires LibreOffice.
See [configuration and dependencies](docs/config.md#optional-dependencies).

## Quick start

```bash
doc3gpp config init --target user
doc3gpp db init --scope all
doc3gpp db check --scope all

doc3gpp meeting sync --tsg R5
doc3gpp meeting list --tsg R5 --limit 10
# Choose a meeting_id from the list above.
doc3gpp tdoc sync --meeting-id <meeting_id>
doc3gpp tdoc list --meeting-id <meeting_id> --limit 10
doc3gpp tdoc parse --meeting-id <meeting_id> --yes
doc3gpp tdoc search --text 'handover' --limit 10
```

Sync and parse commands contact upstream sources. Some CLI reads also perform
best-effort [auto-sync](docs/processes.md#auto-sync); disable it for offline use:

```bash
doc3gpp config set sync.auto_sync false
```

Start the optional local web/MCP server with `doc3gpp server start` after
installing `[web]` or `[all]`. The UI is at <http://127.0.0.1:13999/>;
the default MCP URL is `http://127.0.0.1:13999/mcp/`.
There is no built-in authentication: keep it on a trusted local machine.

## Documentation

| Guide | Purpose |
| --- | --- |
| [Documentation index](docs/README.md) | Find the right guide; current vs historical documentation |
| [CLI reference](docs/cli.md) | Commands, flags, filters, and output contracts |
| [Configuration](docs/config.md) | Discovery, precedence, settings, dependencies, and secrets |
| [Processes](docs/processes.md) | Sync, parse, cache, chunk, index, query, pools, and jobs |
| [Web server](docs/web-server.md) | Running the server, UI, HTTP routes, and job monitoring |
| [MCP](docs/mcp.md) | Client connection, transports, tools, and troubleshooting |
| [Architecture](docs/architecture.md) | Layers, composition, databases, and content ownership |
| [3GPP knowledge](docs/3gpp-knowledge.md) | Upstream URLs, naming, and field semantics |
| [Code map](docs/code-map.md) | Implementation entry points for SDK users and contributors |
| [Conventions](docs/conventions.md) | Development, testing, and documentation rules |
| [Known constraints](docs/known-constraints.md) / [TODO](docs/TODO.md) | Current limitations and engineering backlog |

## Development

```bash
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,extract,semantic]"
ruff check .
./scripts/test_sqlite.sh
```

Tests are offline by default. See [testing conventions](docs/conventions.md#tests)
for optional dependencies, parallel execution, and opt-in online tests.

## License

[MIT](LICENSE).
