handbook/docs/libraries.md
disqualifier 142a0dbff6 add lambda logo, fold sections, add python/error/log snippets
- Pull the rethink lambda logo (assets/img/logo.svg) into docs/assets and
  wire it as theme.logo + favicon — matches the Gitea brand mark.
- standards.md: fold six thin sections into three fuller ones (Files and
  style / Documentation / Quality and error handling), each illustrated
  with python snippets, a flake8 output block, Do/Don't tabbed examples,
  a traceback, and a log line. Admonitions for the run-it-locally tip and
  the lib-logging note.
- libraries.md: add a collapsible 'using a library' example (pyproject
  pin + import/usage python snippet).

Verified in-browser: logo renders in the header, snippets/tabs/traceback/
log blocks render against the dark theme, libraries example expands.
mkdocs build --strict clean.

Signed-off-by: disqualifier <dev@disqualifier.me>
2026-06-29 20:09:30 -04:00

4.2 KiB

Libraries

The shared rethink-public library suite. Before hand-rolling common functionality — retry/backoff, logging setup, HTTP sessions, proxies, webhooks, IMAP/mail, datastore/KV, crypto, discord.py helpers, timing/paths/masking utilities — check here first and prefer an existing lib.

This list is pulled live from Gitea, so a new library in the org shows up on the next page load — nothing here is rebuilt or version-pinned. Each entry links to the repo, where the README and tags live.

Install

Pin a tag in your dependencies — never an unpinned branch:

<lib> @ git+https://git.rethinkstudios.io/rethink-public/<lib>.git@<tag>

??? example "Using a library — install, import, go"

Add it to your project's deps (e.g. `pyproject.toml`):

```toml
[project]
dependencies = [
    "aioweb @ git+https://git.rethinkstudios.io/rethink-public/aioweb.git@v0.3.1",
]
```

Then use it — the README in each repo has the real surface; this is the shape:

```python
import asyncio

from aioweb import Session


async def main() -> None:
    """fetch a page through the shared async http session"""
    async with Session() as web:
        resp = await web.get("https://example.test")
        print(resp.status, len(resp.content))


asyncio.run(main())
```

Need to bump a lib? Change the `@<tag>` and reinstall — versions live with the
lib, not in these docs.

Loading libraries from Gitea…

!!! info "If the live list is empty or stale" The fetch runs in your browser against the Gitea API and needs the org repos to be readable unauthenticated (they are — it's a public org) and CORS to allow the docs domain. If the list won't load, browse the org directly at git.rethinkstudios.io/rethink-public. The fallback for a disabled live fetch is a webhook rebuild — a push to any rethink-public repo triggers a site rebuild.