- libraries.md: render the live lib list as a 3-column table (Library / What it does / Language), wrapped in .rt-lib-table so it picks up explicit styling (Material only auto-styles markdown tables, not innerHTML-injected ones — that's why it rendered bare before). - extra.css: branded table (navy header, blue borders, hover rows, code-styled linked names) and a blue Language badge. Verified in-browser against real Gitea API data (14 repos fetched, handbook denylisted -> 13 libs): table renders sorted with language badges, matches the theme. Live load on prod still needs Gitea CORS (app.ini [cors] ALLOW_DOMAIN = the docs origin). Signed-off-by: disqualifier <dev@disqualifier.me>
4.5 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.