vlrdevapi 3.1.0__tar.gz → 3.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/.github/workflows/cleanup-caches.yml +1 -1
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/.github/workflows/docs-check.yml +8 -1
- vlrdevapi-3.1.2/.github/workflows/mcp-publish.yml +27 -0
- vlrdevapi-3.1.2/.github/workflows/publish.yml +99 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/.github/workflows/test.yml +1 -1
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/CHANGELOG.md +37 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/PKG-INFO +5 -2
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/README.md +3 -1
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/pyproject.toml +3 -2
- vlrdevapi-3.1.2/scripts/check_docs_schema.py +478 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/scripts/download_fixtures.py +14 -2
- vlrdevapi-3.1.2/server.json +32 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/__init__.py +1 -1
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/uv.lock +573 -518
- vlrdevapi-3.1.0/.github/workflows/publish.yml +0 -77
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/.gitattributes +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/.gitignore +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/.nvmrc +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/.python-version +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/.readthedocs.yaml +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/CODE_OF_CONDUCT.md +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/CONTRIBUTING.md +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/LICENCE +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/SECURITY.md +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/SUPPORT.md +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/scripts/check_mdx_examples.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/__init__.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_base.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_cache.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_client.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/_common.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/info/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/info/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/info/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/info/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/info/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/list/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/list/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/list/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/list/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/list/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/matches/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/matches/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/matches/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/matches/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/matches/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/stages/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/stages/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/stages/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/stages/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/stages/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/standings/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/standings/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/standings/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/standings/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/standings/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/teams/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/teams/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/teams/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/teams/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_event/teams/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/common.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/completed/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/completed/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/completed/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/completed/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/completed/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/live/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/live/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/live/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/live/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/live/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/upcoming/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/upcoming/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/upcoming/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/upcoming/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_matches/upcoming/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/article/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/article/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/article/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/article/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/article/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/common.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/list/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/list/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/list/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/list/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/list/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_news/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/_common_parsing.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/agents/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/agents/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/agents/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/agents/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/agents/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/info/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/info/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/info/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/info/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/info/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/matches/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/matches/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/matches/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/matches/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/matches/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/placements/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/placements/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/placements/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/placements/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/placements/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/profile/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/profile/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/profile/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/profile/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/profile/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/teams/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/teams/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/teams/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/teams/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_player/teams/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/_utils.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/economy/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/economy/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/economy/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/economy/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/economy/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/info/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/info/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/info/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/info/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/info/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/match_namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/match_namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/performance/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/performance/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/performance/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/performance/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/performance/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/players/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/players/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/players/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/players/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/players/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/replay/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/replay/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/replay/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/replay/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/replay/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/rounds/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/rounds/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/rounds/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/rounds/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/rounds/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/vods/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/vods/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/vods/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/vods/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_series/vods/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/completed_matches/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/completed_matches/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/completed_matches/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/completed_matches/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/completed_matches/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/info/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/info/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/info/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/info/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/info/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/placements/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/placements/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/placements/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/placements/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/placements/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/roster/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/roster/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/roster/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/roster/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/roster/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/stats/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/stats/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/stats/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/stats/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/stats/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/transactions/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/transactions/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/transactions/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/transactions/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/transactions/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/upcoming_matches/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/upcoming_matches/models.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/upcoming_matches/namespace.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/upcoming_matches/namespace.pyi +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_team/upcoming_matches/parser.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_utils/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_utils/pagination.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_utils/paths.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_utils/team_enrichment.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_utils/team_parsing.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/_utils/text.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/commons/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/commons/countries.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/commons/datetime.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/commons/export.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/commons/mappings.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/commons/prizes.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/commons/regions.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/commons/timezone.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/exceptions.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/fetcher.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/_common.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/server.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/tools/__init__.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/tools/composite.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/tools/events.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/tools/matches.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/tools/news.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/tools/players.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/tools/series.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/mcp/tools/teams.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/py.typed +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/src/vlrdevapi/validators.py +0 -0
- {vlrdevapi-3.1.0 → vlrdevapi-3.1.2}/wrangler.jsonc +0 -0
|
@@ -5,15 +5,19 @@ on:
|
|
|
5
5
|
paths:
|
|
6
6
|
- 'official-docs/**'
|
|
7
7
|
- 'docs-py/**'
|
|
8
|
+
- 'src/**'
|
|
9
|
+
- 'scripts/**'
|
|
8
10
|
push:
|
|
9
11
|
branches: [main]
|
|
10
12
|
paths:
|
|
11
13
|
- 'official-docs/**'
|
|
12
14
|
- 'docs-py/**'
|
|
15
|
+
- 'src/**'
|
|
16
|
+
- 'scripts/**'
|
|
13
17
|
|
|
14
18
|
jobs:
|
|
15
19
|
check:
|
|
16
|
-
runs-on: ubuntu-
|
|
20
|
+
runs-on: ubuntu-24.04
|
|
17
21
|
steps:
|
|
18
22
|
- uses: actions/checkout@v7
|
|
19
23
|
|
|
@@ -24,6 +28,9 @@ jobs:
|
|
|
24
28
|
- name: Install package
|
|
25
29
|
run: uv sync --group dev --all-extras
|
|
26
30
|
|
|
31
|
+
- name: Validate documentation schemas against Python library
|
|
32
|
+
run: uv run scripts/check_docs_schema.py
|
|
33
|
+
|
|
27
34
|
# Restore fixture cache scoped to the current ref (branch or main) and version prefix (v3).
|
|
28
35
|
# This ensures caches are never shared across unrelated branches or older versions.
|
|
29
36
|
- name: Restore fixture cache
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Publish to MCP Registry
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
permissions:
|
|
7
|
+
contents: read
|
|
8
|
+
id-token: write
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
publish:
|
|
12
|
+
name: Publish to MCP Registry
|
|
13
|
+
runs-on: ubuntu-24.04
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- name: Checkout repository
|
|
17
|
+
uses: actions/checkout@v7
|
|
18
|
+
|
|
19
|
+
- name: Install mcp-publisher
|
|
20
|
+
run: |
|
|
21
|
+
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
|
|
22
|
+
|
|
23
|
+
- name: Authenticate to MCP Registry
|
|
24
|
+
run: ./mcp-publisher login github-oidc
|
|
25
|
+
|
|
26
|
+
- name: Publish to MCP Registry
|
|
27
|
+
run: ./mcp-publisher publish
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
name: Publish to PyPI and MCP Registry
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
target:
|
|
9
|
+
description: 'What to publish'
|
|
10
|
+
required: true
|
|
11
|
+
type: choice
|
|
12
|
+
options:
|
|
13
|
+
- 'all'
|
|
14
|
+
- 'mcp-only'
|
|
15
|
+
- 'pypi-only'
|
|
16
|
+
default: 'all'
|
|
17
|
+
|
|
18
|
+
permissions:
|
|
19
|
+
contents: read
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
test:
|
|
23
|
+
name: Test on Python ${{ matrix.python-version }}
|
|
24
|
+
if: github.event_name == 'release' || inputs.target != 'mcp-only'
|
|
25
|
+
runs-on: ubuntu-24.04
|
|
26
|
+
strategy:
|
|
27
|
+
matrix:
|
|
28
|
+
python-version: ['3.11', '3.12', '3.13', '3.14', '3.15']
|
|
29
|
+
|
|
30
|
+
steps:
|
|
31
|
+
- uses: actions/checkout@v7
|
|
32
|
+
|
|
33
|
+
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b
|
|
34
|
+
with:
|
|
35
|
+
python-version: ${{ matrix.python-version }}
|
|
36
|
+
|
|
37
|
+
- name: Install dependencies
|
|
38
|
+
run: uv sync --group dev --all-extras
|
|
39
|
+
|
|
40
|
+
- name: Download fixtures
|
|
41
|
+
run: uv run python scripts/download_fixtures.py
|
|
42
|
+
|
|
43
|
+
- name: Run tests
|
|
44
|
+
run: uv run pytest
|
|
45
|
+
|
|
46
|
+
pypi-publish:
|
|
47
|
+
name: Publish to PyPI
|
|
48
|
+
if: github.event_name == 'release' || inputs.target != 'mcp-only'
|
|
49
|
+
runs-on: ubuntu-24.04
|
|
50
|
+
needs:
|
|
51
|
+
- test
|
|
52
|
+
|
|
53
|
+
permissions:
|
|
54
|
+
id-token: write
|
|
55
|
+
|
|
56
|
+
environment:
|
|
57
|
+
name: pypi
|
|
58
|
+
url: https://pypi.org/project/vlrdevapi/
|
|
59
|
+
|
|
60
|
+
steps:
|
|
61
|
+
- uses: actions/checkout@v7
|
|
62
|
+
|
|
63
|
+
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b
|
|
64
|
+
with:
|
|
65
|
+
python-version: "3.12"
|
|
66
|
+
|
|
67
|
+
- name: Build package
|
|
68
|
+
run: uv build
|
|
69
|
+
|
|
70
|
+
- name: Publish to PyPI
|
|
71
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
72
|
+
|
|
73
|
+
mcp-publish:
|
|
74
|
+
name: Publish to MCP Registry
|
|
75
|
+
if: always() && (github.event_name == 'release' || inputs.target != 'pypi-only') && (inputs.target == 'mcp-only' || needs.pypi-publish.result == 'success')
|
|
76
|
+
runs-on: ubuntu-24.04
|
|
77
|
+
needs:
|
|
78
|
+
- pypi-publish
|
|
79
|
+
|
|
80
|
+
permissions:
|
|
81
|
+
id-token: write
|
|
82
|
+
contents: read
|
|
83
|
+
|
|
84
|
+
steps:
|
|
85
|
+
- uses: actions/checkout@v7
|
|
86
|
+
|
|
87
|
+
- name: Install mcp-publisher
|
|
88
|
+
run: |
|
|
89
|
+
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
|
|
90
|
+
|
|
91
|
+
- name: Wait for PyPI propagation
|
|
92
|
+
if: github.event_name == 'release' || inputs.target != 'mcp-only'
|
|
93
|
+
run: sleep 15
|
|
94
|
+
|
|
95
|
+
- name: Authenticate to MCP Registry
|
|
96
|
+
run: ./mcp-publisher login github-oidc
|
|
97
|
+
|
|
98
|
+
- name: Publish to MCP Registry
|
|
99
|
+
run: ./mcp-publisher publish
|
|
@@ -5,6 +5,41 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
7
7
|
|
|
8
|
+
## [3.1.2] - 2026-11-14
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **MCP Registry OIDC Namespace Alignment** — Updated server namespace to `io.github.Vanshbordia/vlrdevapi` in `server.json` to match GitHub identity claim casing strictly, resolving `403 Forbidden` errors during automated registry publishing.
|
|
13
|
+
- **Multilingual Documentation Schemas** — Aligned model attribute tables and executable code examples across Spanish, Portuguese, and Simplified Chinese documentation to match the Python SDK models.
|
|
14
|
+
- **Documentation Verification Pipeline** — Added `check_docs_schema.py` to continuously validate MDX documentation tables against live Python runtime models before doc builds and deployments.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **Standalone MCP Publishing Workflow** — Added dedicated `.github/workflows/mcp-publish.yml` allowing standalone MCP registry publication on demand via `workflow_dispatch`.
|
|
19
|
+
- **Targeted Release Dispatch** — Added dispatch targets (`all`, `mcp-only`, `pypi-only`) to `publish.yml` to support selective re-releases when PyPI or MCP registry publication runs independently.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- **CI/CD Runner Upgrades** — Pinned `runs-on: ubuntu-24.04` across all GitHub Actions workflows to eliminate runner deprecation warnings.
|
|
24
|
+
- **Direct PyPI Build Integration** — Streamlined release pipeline by building packages directly with `uv build` in the publish step, eliminating Node.js 20 deprecated artifact upload/download actions.
|
|
25
|
+
|
|
26
|
+
## [3.1.1] - 2026-11-13
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- **Official MCP Registry Manifest** — Added `server.json` compliant with the Model Context Protocol registry schema (`registry.modelcontextprotocol.io`), registering `io.github.Vanshbordia/vlrdevapi` with stdio transport and `uvx` runtime arguments.
|
|
31
|
+
- **Automated MCP Registry Publishing Workflow** — Extended GitHub Actions release pipeline (`publish.yml`) with automated OIDC authentication (`id-token: write`) via `mcp-publisher`.
|
|
32
|
+
- **PyPI MCP Ownership Verification** — Added package ownership verification marker to `README.md`.
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- **MCP Registry CLI Entrypoint** — Expose `vlrdevapi` console script alias to `vlrdevapi.mcp.server:main` alongside `vlrdevapi-mcp` so MCP registry clients launch the server using the package identifier.
|
|
37
|
+
- **Windows Timezone Support** — Added `tzdata>=2025.1; sys_platform == 'win32'` as a core dependency to resolve `ZoneInfoNotFoundError` when running `vlrdevapi` or `uvx` on Windows.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- **Dependency Upgrades** — Bumped core Python dependencies (Pydantic, Pandas, Polars, PyArrow, Pytest, Ruff) and documentation website dependencies (Next.js 16.4.6, Fumadocs 16.19, Tailwind CSS 4.3.5).
|
|
42
|
+
|
|
8
43
|
## [3.1.0] - 2026-10-25
|
|
9
44
|
|
|
10
45
|
### Added
|
|
@@ -485,6 +520,8 @@ The API surface, module structure, and type system are all new.
|
|
|
485
520
|
- `aiohttp` and `asyncio` dependencies.
|
|
486
521
|
- v1.x match/event/team parsing modules.
|
|
487
522
|
|
|
523
|
+
[3.1.2]: https://github.com/Vanshbordia/vlrdevapi/compare/v3.1.1...v3.1.2
|
|
524
|
+
[3.1.1]: https://github.com/Vanshbordia/vlrdevapi/compare/v3.1.0...v3.1.1
|
|
488
525
|
[3.1.0]: https://github.com/Vanshbordia/vlrdevapi/compare/v3.0.0...v3.1.0
|
|
489
526
|
[3.0.0]: https://github.com/Vanshbordia/vlrdevapi/compare/v2.4.1...v3.0.0
|
|
490
527
|
[2.4.1]: https://github.com/Vanshbordia/vlrdevapi/compare/v2.4.0...v2.4.1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: vlrdevapi
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.2
|
|
4
4
|
Summary: A Python library to scrape data from vlr.gg
|
|
5
5
|
Project-URL: Homepage, https://vlrdevapi.pages.dev/
|
|
6
6
|
Project-URL: Repository, https://github.com/Vanshbordia/vlrdevapi
|
|
@@ -42,6 +42,7 @@ Requires-Python: >=3.11
|
|
|
42
42
|
Requires-Dist: httpx>=0.28.1
|
|
43
43
|
Requires-Dist: pydantic>=2.14.1
|
|
44
44
|
Requires-Dist: selectolax>=1.0.0
|
|
45
|
+
Requires-Dist: tzdata>=2025.1; sys_platform == 'win32'
|
|
45
46
|
Provides-Extra: all
|
|
46
47
|
Requires-Dist: mcp>=1.2.0; extra == 'all'
|
|
47
48
|
Requires-Dist: openpyxl>=3.1.0; extra == 'all'
|
|
@@ -88,6 +89,8 @@ Description-Content-Type: text/markdown
|
|
|
88
89
|
|
|
89
90
|
</div>
|
|
90
91
|
|
|
92
|
+
<!-- mcp-name: io.github.Vanshbordia/vlrdevapi -->
|
|
93
|
+
|
|
91
94
|
---
|
|
92
95
|
|
|
93
96
|
**vlrdevapi** is a high-performance, type-safe Python client for extracting and analyzing Valorant esports data from [VLR.gg](https://www.vlr.gg/). Built for competitive analysts, data scientists, Discord bot creators, and esports engineers, it delivers structured [Pydantic](https://docs.pydantic.dev/) models with full type hinting, built-in rate limiting, automatic retries, and comprehensive coverage across all VLR.gg entities.
|
|
@@ -373,7 +376,7 @@ print(players.to_markdown())
|
|
|
373
376
|
|
|
374
377
|
## Model Context Protocol (MCP) Server
|
|
375
378
|
|
|
376
|
-
VLRdevAPI includes a native MCP server for AI assistants and autonomous coding agents:
|
|
379
|
+
VLRdevAPI includes a native MCP server for AI assistants and autonomous coding agents (`io.github.Vanshbordia/vlrdevapi` on the official MCP Registry):
|
|
377
380
|
|
|
378
381
|
```bash
|
|
379
382
|
# Run server over stdio
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
|
|
18
18
|
</div>
|
|
19
19
|
|
|
20
|
+
<!-- mcp-name: io.github.Vanshbordia/vlrdevapi -->
|
|
21
|
+
|
|
20
22
|
---
|
|
21
23
|
|
|
22
24
|
**vlrdevapi** is a high-performance, type-safe Python client for extracting and analyzing Valorant esports data from [VLR.gg](https://www.vlr.gg/). Built for competitive analysts, data scientists, Discord bot creators, and esports engineers, it delivers structured [Pydantic](https://docs.pydantic.dev/) models with full type hinting, built-in rate limiting, automatic retries, and comprehensive coverage across all VLR.gg entities.
|
|
@@ -302,7 +304,7 @@ print(players.to_markdown())
|
|
|
302
304
|
|
|
303
305
|
## Model Context Protocol (MCP) Server
|
|
304
306
|
|
|
305
|
-
VLRdevAPI includes a native MCP server for AI assistants and autonomous coding agents:
|
|
307
|
+
VLRdevAPI includes a native MCP server for AI assistants and autonomous coding agents (`io.github.Vanshbordia/vlrdevapi` on the official MCP Registry):
|
|
306
308
|
|
|
307
309
|
```bash
|
|
308
310
|
# Run server over stdio
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "vlrdevapi"
|
|
7
|
-
version = "3.1.
|
|
7
|
+
version = "3.1.2"
|
|
8
8
|
description = "A Python library to scrape data from vlr.gg"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -37,6 +37,7 @@ dependencies = [
|
|
|
37
37
|
"httpx>=0.28.1",
|
|
38
38
|
"pydantic>=2.14.1",
|
|
39
39
|
"selectolax>=1.0.0",
|
|
40
|
+
"tzdata>=2025.1; sys_platform == 'win32'",
|
|
40
41
|
]
|
|
41
42
|
|
|
42
43
|
[project.urls]
|
|
@@ -80,6 +81,7 @@ all = [
|
|
|
80
81
|
]
|
|
81
82
|
|
|
82
83
|
[project.scripts]
|
|
84
|
+
vlrdevapi = "vlrdevapi.mcp.server:main"
|
|
83
85
|
vlrdevapi-mcp = "vlrdevapi.mcp.server:main"
|
|
84
86
|
|
|
85
87
|
[dependency-groups]
|
|
@@ -123,4 +125,3 @@ exclude = [
|
|
|
123
125
|
"/.pytest_cache",
|
|
124
126
|
"/.ruff_cache",
|
|
125
127
|
]
|
|
126
|
-
|