Skip to main content

s-clientkit — кит-сборщик клиентов

Готовый клиент сервиса собирается по декларации, а не пишется заново.

    clientkit                     <- СБОРЩИК (этот кит)
    /        \
authkit-client  browserkit        <- доступ (кто ты) / чеканка (как войти)
    \        /
      netkit                      <- сеть (чем ходить)
         |
      corekit                     <- основание

Один вызов на оба мира

from clientkit import build_from_toml

white  = build_from_toml("examples/white_service.toml",  secrets=os.environ.get)
hidden = build_from_toml("examples/hidden_service.toml", session_store=store)

await white.call("me")      # белый REST с api-ключом
await hidden.call("me")     # скрытый API с сессией и лестницей деградации

Потребитель зовёт одинаково и по поверхности клиента не может отличить один от другого. Разница — в цене:

белый скрытый
поднимает сессии/чеканку/антибот нет да
запросов на call("me") ровно 1 1 (+чеканка, если доступа нет)
авторизация заголовок (api_key / bearer / oauth с проактивным TTL) cookies живой сессии
смерть адреса ошибка сервиса следующий кандидат, без релиза

Обе половины проверяются тестом tests/test_same_call_both_kinds.py — по sys.modules свежего интерпретатора и по счётчику запросов, а не декларацией.

Декларация — данные

ServiceDecl (frozen dataclass) читается из TOML и валидируется при загрузке: белый сервис с рецептом доступа или скрытый без чеканщика — опечатка, о которой надо узнать при сборке, а не ночью в бою. Round-trip decl_to_data ∘ decl_from_data проверяется тестом.

Смотри examples/white_service.toml и examples/hidden_service.toml.

Чего в ките нет

  • своего HTTP — «чем ходить» приходит аргументом (RequestPort), умолчание (только netkit; без него — TransportUnavailable с рецептом установки) резолвится лениво;
  • своего браузера — чеканка приходит через порт слоя доступа;
  • своей таксономии отказов — диагноз ставит corekit.diagnosis.access, та же функция, что у живой пробы и у реестра эндпоинтов.

Metadata

Release files for s-clientkit 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for s-clientkit 0.1.0
File Size Uploaded
s_clientkit-0.1.0.tar.gz 95.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for s-clientkit 0.1.0
File Interpreter ABI Platform
s_clientkit-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 129.2 kB

Release files / s_clientkit-0.1.0.tar.gz

Download URL s_clientkit-0.1.0.tar.gz
Size 95.5 kB
Tags Source
SHA-256 checksum
How to use checksums
690fb1f20076faace6a667dc09deac16d8f8fe48578befc8ef95dc035b8e6816
BLAKE2b-256 checksum
How to use checksums
f5097802e01b525eacca62b17cd1f95e9378aa09c6b92e015b37ee2dbe8bbf14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / s_clientkit-0.1.0-py3-none-any.whl

Download URL s_clientkit-0.1.0-py3-none-any.whl
Size 33.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03a22b7fdb30a25820ecbf8a7f8dd9510a80bbba6f80e754e3ee8b1aa2d8b282
BLAKE2b-256 checksum
How to use checksums
4b7683555dcd7f0f5dbd87d352cf1945eb1ffbdb6af8d2a7f0f39ca1b510028a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.2.0

2 release files

This release

0.1.0 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page