Skip to main content

s-clientkit — тонкий алиас поверх adapterkit.clientkit

Волна 5, задача 2 (Atlas #2710): живой код переехал в adapterkit.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.2.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.2.0
File Size Uploaded
s_clientkit-0.2.0.tar.gz 79.3 kB Details

Built distribution (wheel)

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

Total release size: 90.5 kB

Release files / s_clientkit-0.2.0.tar.gz

Download URL s_clientkit-0.2.0.tar.gz
Size 79.3 kB
Tags Source
SHA-256 checksum
How to use checksums
991f29a93c1d87f0560a72f653bf9543acf221214fbe576cc3e5f33bd2d32c44
BLAKE2b-256 checksum
How to use checksums
a75c92384be77056c373b38d42ac294882265db59b4b32e9d13cce585356f853
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.2.0-py3-none-any.whl

Download URL s_clientkit-0.2.0-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6322f5726c8115b23c81eeebc10d02eec9099ff41e1f27304b024719782c94a2
BLAKE2b-256 checksum
How to use checksums
63393bb79b9434d45e59754198394924e9a4505304e346761cd11bfcf9b71351
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

This release

0.2.0 This release

2 release files

0.1.0

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