Migrate dependency management from pip to uv
- Add a uv workspace at the repository root covering all packages/kaya-* members - Replace pip-compile requirements files with a committed uv.lock - Remove redundant per-package dev extras - Build and publish artifacts with uv build and uv publish in CI - Update the README with uv sync/run/build commands
This commit is contained in:
+58
-56
@@ -5,7 +5,7 @@ on:
|
||||
- 'release/*'
|
||||
jobs:
|
||||
build_pip_package:
|
||||
name: "Build Pip package"
|
||||
name: "Build and publish packages"
|
||||
runs-on: hostinger
|
||||
timeout-minutes: 30
|
||||
container:
|
||||
@@ -18,12 +18,14 @@ jobs:
|
||||
fetch-tags: true
|
||||
- uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.14.6'
|
||||
cache: 'pip'
|
||||
python-version-file: '.python-version'
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@v10
|
||||
with:
|
||||
version: '0.13.4'
|
||||
enable-cache: true
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m venv .venv
|
||||
.venv/bin/pip install -r requirements-dev.txt
|
||||
run: uv sync --locked
|
||||
- name: Check kaya-core
|
||||
run: |
|
||||
.venv/bin/python -m mypy -p kaya.core
|
||||
@@ -66,81 +68,81 @@ jobs:
|
||||
.venv/bin/python -m unittest discover -s packages/kaya-otel/tests
|
||||
- name: Publish kaya-core artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-core
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-core/dist/*.whl packages/kaya-core/dist/*.tar.gz
|
||||
uv build --package kaya-core --out-dir packages/kaya-core/dist --no-sources
|
||||
uv publish packages/kaya-core/dist/*.whl packages/kaya-core/dist/*.tar.gz
|
||||
- name: Publish kaya-rsgi artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-rsgi
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-rsgi/dist/*.whl packages/kaya-rsgi/dist/*.tar.gz
|
||||
uv build --package kaya-rsgi --out-dir packages/kaya-rsgi/dist --no-sources
|
||||
uv publish packages/kaya-rsgi/dist/*.whl packages/kaya-rsgi/dist/*.tar.gz
|
||||
- name: Publish kaya-session artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-session
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-session/dist/*.whl packages/kaya-session/dist/*.tar.gz
|
||||
uv build --package kaya-session --out-dir packages/kaya-session/dist --no-sources
|
||||
uv publish packages/kaya-session/dist/*.whl packages/kaya-session/dist/*.tar.gz
|
||||
- name: Publish kaya-session-memcache artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-session-memcache
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-session-memcache/dist/*.whl packages/kaya-session-memcache/dist/*.tar.gz
|
||||
uv build --package kaya-session-memcache --out-dir packages/kaya-session-memcache/dist --no-sources
|
||||
uv publish packages/kaya-session-memcache/dist/*.whl packages/kaya-session-memcache/dist/*.tar.gz
|
||||
- name: Publish kaya-session-redis artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-session-redis
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-session-redis/dist/*.whl packages/kaya-session-redis/dist/*.tar.gz
|
||||
uv build --package kaya-session-redis --out-dir packages/kaya-session-redis/dist --no-sources
|
||||
uv publish packages/kaya-session-redis/dist/*.whl packages/kaya-session-redis/dist/*.tar.gz
|
||||
- name: Publish kaya-oidc artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-oidc
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-oidc/dist/*.whl packages/kaya-oidc/dist/*.tar.gz
|
||||
uv build --package kaya-oidc --out-dir packages/kaya-oidc/dist --no-sources
|
||||
uv publish packages/kaya-oidc/dist/*.whl packages/kaya-oidc/dist/*.tar.gz
|
||||
- name: Publish kaya-openapi artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-openapi
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-openapi/dist/*.whl packages/kaya-openapi/dist/*.tar.gz
|
||||
uv build --package kaya-openapi --out-dir packages/kaya-openapi/dist --no-sources
|
||||
uv publish packages/kaya-openapi/dist/*.whl packages/kaya-openapi/dist/*.tar.gz
|
||||
- name: Publish kaya-cors artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-cors
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-cors/dist/*.whl packages/kaya-cors/dist/*.tar.gz
|
||||
uv build --package kaya-cors --out-dir packages/kaya-cors/dist --no-sources
|
||||
uv publish packages/kaya-cors/dist/*.whl packages/kaya-cors/dist/*.tar.gz
|
||||
- name: Publish kaya-forwarded artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-forwarded
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-forwarded/dist/*.whl packages/kaya-forwarded/dist/*.tar.gz
|
||||
uv build --package kaya-forwarded --out-dir packages/kaya-forwarded/dist --no-sources
|
||||
uv publish packages/kaya-forwarded/dist/*.whl packages/kaya-forwarded/dist/*.tar.gz
|
||||
- name: Publish kaya-otel artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-otel
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-otel/dist/*.whl packages/kaya-otel/dist/*.tar.gz
|
||||
uv build --package kaya-otel --out-dir packages/kaya-otel/dist --no-sources
|
||||
uv publish packages/kaya-otel/dist/*.whl packages/kaya-otel/dist/*.tar.gz
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
3.14.6
|
||||
@@ -17,69 +17,65 @@ This repository is a monorepo for the Kaya framework. The code is split into ind
|
||||
- **kaya-forwarded** — trusted-proxy `Forwarded`/`X-Forwarded-*` client address resolution (`packages/kaya-forwarded/`)
|
||||
- **kaya-otel** — OpenTelemetry tracing and metrics (`packages/kaya-otel/`)
|
||||
|
||||
Additional `kaya-*` packages can be added as new directories under `packages/`.
|
||||
Additional `kaya-*` packages can be added as new directories under `packages/`. When adding a new package, also add it to the root `pyproject.toml` dependencies and `[tool.uv.sources]` so `uv sync` installs it.
|
||||
|
||||
## Build & run locally
|
||||
|
||||
Install dev dependencies:
|
||||
This project uses [uv](https://docs.astral.sh/uv/) for dependency management. From the repository root:
|
||||
|
||||
```bash
|
||||
pip install --index-url https://gitea.woggioni.net/api/packages/woggioni/pypi/simple --extra-index-url https://pypi.org/simple -r requirements-dev.txt
|
||||
uv sync
|
||||
```
|
||||
|
||||
Install the packages in development mode:
|
||||
|
||||
```bash
|
||||
pip install -e packages/kaya-core -e packages/kaya-rsgi -e packages/kaya-session -e packages/kaya-session-redis -e packages/kaya-session-memcache -e packages/kaya-oidc -e packages/kaya-openapi -e packages/kaya-cors -e packages/kaya-forwarded -e packages/kaya-otel
|
||||
```
|
||||
This creates `.venv`, installs all workspace packages in editable mode, and installs the dev dependency group from `uv.lock`. Use `uv lock` after changing dependencies, and commit the updated `uv.lock`.
|
||||
|
||||
Run the example:
|
||||
|
||||
```bash
|
||||
python example/hello.py
|
||||
uv run python example/hello.py
|
||||
```
|
||||
|
||||
## Tests
|
||||
|
||||
```bash
|
||||
python -m unittest discover -s packages/kaya-core/tests
|
||||
python -m unittest discover -s packages/kaya-rsgi/tests
|
||||
python -m unittest discover -s packages/kaya-session/tests
|
||||
python -m unittest discover -s packages/kaya-session-redis/tests
|
||||
python -m unittest discover -s packages/kaya-session-memcache/tests
|
||||
python -m unittest discover -s packages/kaya-oidc/tests
|
||||
python -m unittest discover -s packages/kaya-openapi/tests
|
||||
python -m unittest discover -s packages/kaya-cors/tests
|
||||
python -m unittest discover -s packages/kaya-forwarded/tests
|
||||
python -m unittest discover -s packages/kaya-otel/tests
|
||||
uv run python -m unittest discover -s packages/kaya-core/tests
|
||||
uv run python -m unittest discover -s packages/kaya-rsgi/tests
|
||||
uv run python -m unittest discover -s packages/kaya-session/tests
|
||||
uv run python -m unittest discover -s packages/kaya-session-redis/tests
|
||||
uv run python -m unittest discover -s packages/kaya-session-memcache/tests
|
||||
uv run python -m unittest discover -s packages/kaya-oidc/tests
|
||||
uv run python -m unittest discover -s packages/kaya-openapi/tests
|
||||
uv run python -m unittest discover -s packages/kaya-cors/tests
|
||||
uv run python -m unittest discover -s packages/kaya-forwarded/tests
|
||||
uv run python -m unittest discover -s packages/kaya-otel/tests
|
||||
```
|
||||
|
||||
## Static analysis
|
||||
|
||||
```bash
|
||||
mypy -p kaya.core
|
||||
mypy -p kaya.rsgi
|
||||
mypy -p kaya.session
|
||||
mypy -p kaya.session.redis
|
||||
mypy -p kaya.session.memcache
|
||||
mypy -p kaya.oidc
|
||||
mypy -p kaya.openapi
|
||||
mypy -p kaya.cors
|
||||
mypy -p kaya.forwarded
|
||||
mypy -p kaya.otel
|
||||
uv run mypy -p kaya.core
|
||||
uv run mypy -p kaya.rsgi
|
||||
uv run mypy -p kaya.session
|
||||
uv run mypy -p kaya.session.redis
|
||||
uv run mypy -p kaya.session.memcache
|
||||
uv run mypy -p kaya.oidc
|
||||
uv run mypy -p kaya.openapi
|
||||
uv run mypy -p kaya.cors
|
||||
uv run mypy -p kaya.forwarded
|
||||
uv run mypy -p kaya.otel
|
||||
```
|
||||
|
||||
## Building packages
|
||||
|
||||
```bash
|
||||
python -m build packages/kaya-core
|
||||
python -m build packages/kaya-rsgi
|
||||
python -m build packages/kaya-session
|
||||
python -m build packages/kaya-session-redis
|
||||
python -m build packages/kaya-session-memcache
|
||||
python -m build packages/kaya-oidc
|
||||
python -m build packages/kaya-openapi
|
||||
python -m build packages/kaya-cors
|
||||
python -m build packages/kaya-forwarded
|
||||
python -m build packages/kaya-otel
|
||||
uv build --package kaya-core --out-dir packages/kaya-core/dist
|
||||
uv build --package kaya-rsgi --out-dir packages/kaya-rsgi/dist
|
||||
uv build --package kaya-session --out-dir packages/kaya-session/dist
|
||||
uv build --package kaya-session-redis --out-dir packages/kaya-session-redis/dist
|
||||
uv build --package kaya-session-memcache --out-dir packages/kaya-session-memcache/dist
|
||||
uv build --package kaya-oidc --out-dir packages/kaya-oidc/dist
|
||||
uv build --package kaya-openapi --out-dir packages/kaya-openapi/dist
|
||||
uv build --package kaya-cors --out-dir packages/kaya-cors/dist
|
||||
uv build --package kaya-forwarded --out-dir packages/kaya-forwarded/dist
|
||||
uv build --package kaya-otel --out-dir packages/kaya-otel/dist
|
||||
```
|
||||
|
||||
@@ -26,11 +26,6 @@ dependencies = [
|
||||
"typing-extensions",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"build", "mypy", "ipdb", "twine", "httpx", "httpx-ws"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://github.com/woggioni/kaya"
|
||||
"Bug Tracker" = "https://github.com/woggioni/kaya/issues"
|
||||
|
||||
@@ -25,11 +25,6 @@ dependencies = [
|
||||
"kaya-core",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"build", "mypy", "ipdb", "twine", "httpx", "httpx-ws", "kaya-rsgi"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://github.com/woggioni/kaya"
|
||||
"Bug Tracker" = "https://github.com/woggioni/kaya/issues"
|
||||
|
||||
@@ -25,11 +25,6 @@ dependencies = [
|
||||
"kaya-core",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"build", "mypy", "ipdb", "twine", "httpx", "httpx-ws", "kaya-rsgi"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://github.com/woggioni/kaya"
|
||||
"Bug Tracker" = "https://github.com/woggioni/kaya/issues"
|
||||
|
||||
@@ -28,11 +28,6 @@ dependencies = [
|
||||
"PyJWT[crypto]",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"build", "mypy", "ipdb", "twine", "httpx", "httpx-ws"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://github.com/woggioni/kaya"
|
||||
"Bug Tracker" = "https://github.com/woggioni/kaya/issues"
|
||||
|
||||
@@ -25,11 +25,6 @@ dependencies = [
|
||||
"kaya-core",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"build", "mypy", "ipdb", "twine", "httpx", "httpx-ws"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://github.com/woggioni/kaya"
|
||||
"Bug Tracker" = "https://github.com/woggioni/kaya/issues"
|
||||
|
||||
@@ -27,11 +27,6 @@ dependencies = [
|
||||
"opentelemetry-exporter-otlp-proto-http",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"build", "mypy", "ipdb", "twine", "httpx", "httpx-ws", "kaya-rsgi"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://github.com/woggioni/kaya"
|
||||
"Bug Tracker" = "https://github.com/woggioni/kaya/issues"
|
||||
|
||||
@@ -27,11 +27,6 @@ dependencies = [
|
||||
"pwo",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"build", "mypy", "ipdb", "twine"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://github.com/woggioni/kaya"
|
||||
"Bug Tracker" = "https://github.com/woggioni/kaya/issues"
|
||||
|
||||
@@ -26,11 +26,6 @@ dependencies = [
|
||||
"aiomcache>=0.8",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"build", "mypy", "ipdb", "twine"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://github.com/woggioni/kaya"
|
||||
"Bug Tracker" = "https://github.com/woggioni/kaya/issues"
|
||||
|
||||
@@ -26,11 +26,6 @@ dependencies = [
|
||||
"redis>=5.0",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"build", "mypy", "ipdb", "twine", "fakeredis"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://github.com/woggioni/kaya"
|
||||
"Bug Tracker" = "https://github.com/woggioni/kaya/issues"
|
||||
|
||||
@@ -26,11 +26,6 @@ dependencies = [
|
||||
"pwo",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"build", "mypy", "ipdb", "twine", "httpx", "httpx-ws"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://github.com/woggioni/kaya"
|
||||
"Bug Tracker" = "https://github.com/woggioni/kaya/issues"
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
[project]
|
||||
name = "kaya"
|
||||
version = "0.0.0"
|
||||
description = "Development workspace for the Kaya lightweight ASGI web framework"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = [
|
||||
"kaya-core",
|
||||
"kaya-rsgi",
|
||||
"kaya-session",
|
||||
"kaya-session-redis",
|
||||
"kaya-session-memcache",
|
||||
"kaya-oidc",
|
||||
"kaya-openapi",
|
||||
"kaya-cors",
|
||||
"kaya-forwarded",
|
||||
"kaya-otel",
|
||||
]
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"fakeredis",
|
||||
"mypy",
|
||||
"ipdb",
|
||||
"httpx",
|
||||
"httpx-ws",
|
||||
]
|
||||
|
||||
[tool.uv]
|
||||
package = false
|
||||
required-version = ">=0.13"
|
||||
|
||||
[tool.uv.workspace]
|
||||
members = ["packages/*"]
|
||||
|
||||
[tool.uv.sources]
|
||||
kaya-core = { workspace = true }
|
||||
kaya-rsgi = { workspace = true }
|
||||
kaya-session = { workspace = true }
|
||||
kaya-session-redis = { workspace = true }
|
||||
kaya-session-memcache = { workspace = true }
|
||||
kaya-oidc = { workspace = true }
|
||||
kaya-openapi = { workspace = true }
|
||||
kaya-cors = { workspace = true }
|
||||
kaya-forwarded = { workspace = true }
|
||||
kaya-otel = { workspace = true }
|
||||
pwo = { index = "gitea" }
|
||||
|
||||
[[tool.uv.index]]
|
||||
name = "gitea"
|
||||
url = "https://gitea.woggioni.net/api/packages/woggioni/pypi/simple"
|
||||
explicit = true
|
||||
@@ -1,17 +0,0 @@
|
||||
kaya-core @ file:./packages/kaya-core
|
||||
kaya-rsgi @ file:./packages/kaya-rsgi
|
||||
kaya-session @ file:./packages/kaya-session
|
||||
kaya-session-redis @ file:./packages/kaya-session-redis
|
||||
kaya-session-memcache @ file:./packages/kaya-session-memcache
|
||||
kaya-oidc @ file:./packages/kaya-oidc
|
||||
kaya-openapi @ file:./packages/kaya-openapi
|
||||
kaya-cors @ file:./packages/kaya-cors
|
||||
kaya-forwarded @ file:./packages/kaya-forwarded
|
||||
kaya-otel @ file:./packages/kaya-otel
|
||||
build
|
||||
fakeredis
|
||||
mypy
|
||||
ipdb
|
||||
twine
|
||||
httpx
|
||||
httpx-ws
|
||||
@@ -1,247 +0,0 @@
|
||||
#
|
||||
# This file is autogenerated by pip-compile with Python 3.14
|
||||
# by the following command:
|
||||
#
|
||||
# pip-compile --allow-unsafe --extra-index-url=https://pypi.org/simple --index-url=https://gitea.woggioni.net/api/packages/woggioni/pypi/simple --output-file=requirements-dev.txt requirements-dev.in
|
||||
#
|
||||
--index-url https://gitea.woggioni.net/api/packages/woggioni/pypi/simple
|
||||
--extra-index-url https://pypi.org/simple
|
||||
|
||||
aiomcache==0.8.2
|
||||
# via kaya-session-memcache
|
||||
anyio==4.14.2
|
||||
# via
|
||||
# httpx
|
||||
# httpx-ws
|
||||
ast-serialize==0.6.0
|
||||
# via mypy
|
||||
asttokens==3.0.2
|
||||
# via stack-data
|
||||
build==1.5.0
|
||||
# via -r requirements-dev.in
|
||||
certifi==2026.6.17
|
||||
# via
|
||||
# httpcore
|
||||
# httpx
|
||||
# requests
|
||||
cffi==2.1.0
|
||||
# via cryptography
|
||||
charset-normalizer==3.4.9
|
||||
# via requests
|
||||
click==8.4.2
|
||||
# via granian
|
||||
cryptography==49.0.0
|
||||
# via
|
||||
# pyjwt
|
||||
# secretstorage
|
||||
decorator==5.3.1
|
||||
# via
|
||||
# ipdb
|
||||
# ipython
|
||||
docutils==0.23
|
||||
# via readme-renderer
|
||||
executing==2.2.1
|
||||
# via stack-data
|
||||
fakeredis==2.36.2
|
||||
# via -r requirements-dev.in
|
||||
googleapis-common-protos==1.75.3
|
||||
# via opentelemetry-exporter-otlp-proto-http
|
||||
granian==2.7.9
|
||||
# via kaya-rsgi
|
||||
h11==0.16.0
|
||||
# via
|
||||
# httpcore
|
||||
# wsproto
|
||||
httpcore==1.0.9
|
||||
# via
|
||||
# httpx
|
||||
# httpx-ws
|
||||
httpx==0.28.1
|
||||
# via
|
||||
# -r requirements-dev.in
|
||||
# httpx-ws
|
||||
# kaya-oidc
|
||||
httpx-ws==0.9.0
|
||||
# via -r requirements-dev.in
|
||||
id==1.6.1
|
||||
# via twine
|
||||
idna==3.18
|
||||
# via
|
||||
# anyio
|
||||
# httpx
|
||||
# requests
|
||||
ipdb==0.13.13
|
||||
# via -r requirements-dev.in
|
||||
ipython==9.15.0
|
||||
# via ipdb
|
||||
ipython-pygments-lexers==1.1.1
|
||||
# via ipython
|
||||
jaraco-classes==3.4.0
|
||||
# via keyring
|
||||
jaraco-context==6.1.2
|
||||
# via keyring
|
||||
jaraco-functools==4.6.0
|
||||
# via keyring
|
||||
jedi==0.20.0
|
||||
# via ipython
|
||||
jeepney==0.9.0
|
||||
# via
|
||||
# keyring
|
||||
# secretstorage
|
||||
file:./packages/kaya-core
|
||||
# via
|
||||
# -r requirements-dev.in
|
||||
# kaya-cors
|
||||
# kaya-forwarded
|
||||
# kaya-oidc
|
||||
# kaya-openapi
|
||||
# kaya-otel
|
||||
# kaya-rsgi
|
||||
# kaya-session
|
||||
file:./packages/kaya-cors
|
||||
# via -r requirements-dev.in
|
||||
file:./packages/kaya-forwarded
|
||||
# via -r requirements-dev.in
|
||||
file:./packages/kaya-oidc
|
||||
# via -r requirements-dev.in
|
||||
file:./packages/kaya-openapi
|
||||
# via -r requirements-dev.in
|
||||
file:./packages/kaya-otel
|
||||
# via -r requirements-dev.in
|
||||
file:./packages/kaya-rsgi
|
||||
# via -r requirements-dev.in
|
||||
file:./packages/kaya-session
|
||||
# via
|
||||
# -r requirements-dev.in
|
||||
# kaya-oidc
|
||||
# kaya-session-memcache
|
||||
# kaya-session-redis
|
||||
file:./packages/kaya-session-memcache
|
||||
# via -r requirements-dev.in
|
||||
file:./packages/kaya-session-redis
|
||||
# via -r requirements-dev.in
|
||||
keyring==25.7.0
|
||||
# via twine
|
||||
librt==0.13.0
|
||||
# via mypy
|
||||
markdown-it-py==4.2.0
|
||||
# via rich
|
||||
matplotlib-inline==0.2.2
|
||||
# via ipython
|
||||
mdurl==0.1.2
|
||||
# via markdown-it-py
|
||||
more-itertools==11.1.0
|
||||
# via
|
||||
# jaraco-classes
|
||||
# jaraco-functools
|
||||
mypy==2.3.0
|
||||
# via -r requirements-dev.in
|
||||
mypy-extensions==1.1.0
|
||||
# via mypy
|
||||
nh3==0.3.6
|
||||
# via readme-renderer
|
||||
opentelemetry-api==1.44.0
|
||||
# via
|
||||
# opentelemetry-exporter-otlp-proto-http
|
||||
# opentelemetry-sdk
|
||||
# opentelemetry-semantic-conventions
|
||||
opentelemetry-exporter-otlp-proto-common==1.44.0
|
||||
# via opentelemetry-exporter-otlp-proto-http
|
||||
opentelemetry-exporter-otlp-proto-http==1.44.0
|
||||
# via kaya-otel
|
||||
opentelemetry-proto==1.44.0
|
||||
# via
|
||||
# opentelemetry-exporter-otlp-proto-common
|
||||
# opentelemetry-exporter-otlp-proto-http
|
||||
opentelemetry-sdk==1.44.0
|
||||
# via
|
||||
# kaya-otel
|
||||
# opentelemetry-exporter-otlp-proto-http
|
||||
opentelemetry-semantic-conventions==0.65b0
|
||||
# via opentelemetry-sdk
|
||||
packaging==26.2
|
||||
# via
|
||||
# build
|
||||
# twine
|
||||
parso==0.8.7
|
||||
# via jedi
|
||||
pathspec==1.1.1
|
||||
# via mypy
|
||||
pexpect==4.9.0
|
||||
# via ipython
|
||||
prompt-toolkit==3.0.52
|
||||
# via ipython
|
||||
protobuf==7.36.2
|
||||
# via
|
||||
# googleapis-common-protos
|
||||
# opentelemetry-proto
|
||||
psutil==7.2.2
|
||||
# via ipython
|
||||
ptyprocess==0.7.0
|
||||
# via pexpect
|
||||
pure-eval==0.2.3
|
||||
# via stack-data
|
||||
pwo==0.1.2
|
||||
# via
|
||||
# kaya-core
|
||||
# kaya-rsgi
|
||||
# kaya-session
|
||||
pycparser==3.0
|
||||
# via cffi
|
||||
pygments==2.20.0
|
||||
# via
|
||||
# ipython
|
||||
# ipython-pygments-lexers
|
||||
# readme-renderer
|
||||
# rich
|
||||
pyjwt[crypto]==2.13.0
|
||||
# via kaya-oidc
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
readme-renderer==45.0
|
||||
# via twine
|
||||
redis==8.0.1
|
||||
# via
|
||||
# fakeredis
|
||||
# kaya-session-redis
|
||||
requests==2.34.2
|
||||
# via
|
||||
# opentelemetry-exporter-otlp-proto-http
|
||||
# requests-toolbelt
|
||||
# twine
|
||||
requests-toolbelt==1.0.0
|
||||
# via twine
|
||||
rfc3986==2.0.0
|
||||
# via twine
|
||||
rich==15.0.0
|
||||
# via twine
|
||||
secretstorage==3.5.0
|
||||
# via keyring
|
||||
sortedcontainers==2.4.0
|
||||
# via fakeredis
|
||||
stack-data==0.6.3
|
||||
# via ipython
|
||||
traitlets==5.15.1
|
||||
# via
|
||||
# ipython
|
||||
# matplotlib-inline
|
||||
twine==6.2.0
|
||||
# via -r requirements-dev.in
|
||||
typing-extensions==4.16.0
|
||||
# via
|
||||
# kaya-core
|
||||
# mypy
|
||||
# opentelemetry-api
|
||||
# opentelemetry-exporter-otlp-proto-http
|
||||
# opentelemetry-sdk
|
||||
# opentelemetry-semantic-conventions
|
||||
# pwo
|
||||
urllib3==2.7.0
|
||||
# via
|
||||
# id
|
||||
# requests
|
||||
# twine
|
||||
wcwidth==0.8.2
|
||||
# via prompt-toolkit
|
||||
wsproto==1.3.2
|
||||
# via httpx-ws
|
||||
Reference in New Issue
Block a user