Metadata-Version: 2.4
Name: botscore
Version: 0.1.0
Summary: Framework-free translation runtime extraction for Bots.
Author: The Bots developers
License: GNU General Public License (GPL v3.0)
Project-URL: Homepage, https://github.com/rioncm/bots-core
Project-URL: Repository, https://github.com/rioncm/bots-core
Project-URL: Issues, https://github.com/rioncm/bots-core/issues
Project-URL: PyPI, https://pypi.org/project/botscore/
Keywords: edi,x12,edifact,csv,json,translation,bots
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
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 :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: ruff>=0.11; extra == "dev"
Requires-Dist: twine>=5.1; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=8.3; extra == "test"
Provides-Extra: excel
Requires-Dist: xlrd; extra == "excel"
Provides-Extra: template
Requires-Dist: Django>=4; extra == "template"
Requires-Dist: Genshi; extra == "template"

# bots_core

`bots_core` is the standalone repository folder for the extracted `botscore`
translation runtime.

Repository name and Python package name are intentionally different:

- repository folder: `bots_core`
- distribution name: `botscore`
- import package: `botscore`

`botscore` contains the extracted Bots translation runtime:

- grammar loading
- parsing into message trees
- mapping execution
- serialization

It intentionally excludes the larger legacy Bots application surface such as:

- Django admin and web UI
- engine orchestration
- routes and channels
- database-backed business configuration
- `usersys` as a required runtime convention in the supported path

## Local development

```bash
pip install -e .[dev,test]
pytest
python -m build --wheel --sdist --no-isolation
```

## Versioning

`botscore` is versioned independently from `bots_airflow`.

The intended rule is:

- `botscore` versions describe runtime compatibility for grammar loading, parse/tree,
  mapping execution, and serialization
- downstream packages such as `bots_airflow` declare compatible version ranges
- releases use semantic versioning

## Release tags

Because `botscore` now lives in its own repository, standard tags are sufficient:

```text
v0.1.0
```

## PyPI publishing

This repository publishes `botscore` to PyPI through GitHub Actions Trusted Publisher.

The release flow is:

1. push a release tag such as `v0.1.0`
2. the `publish.yml` workflow builds wheel and sdist artifacts
3. the workflow validates metadata with `twine check`
4. GitHub publishes to PyPI through the `pypi` environment
