v1.0.1 — Cleanup & Z-Timestamp Fix
First post-1.0 patch: a Python 3.10 crash fix plus an internal hygiene sweep. All changes are internal/private — no public symbol is affected and the frozen 1.0 API is unchanged.
pip install --upgrade selectoolsFixed
- Knowledge and checkpoint loaders no longer crash on
Z-suffixed timestamps on Python 3.10.datetime.fromisoformatdid not accept a trailingZ(UTC designator) until Python 3.11, so a timestamp such as"2026-06-15T12:00:00Z"— the form Postgres/Supabase/Redis routinely return — raisedValueErroron the project's minimum interpreter. All 17 ISO-parse sites now route through a singleselectools._time.parse_isohelper that normalizes the suffix first. (#136) selectools doctornow prints the API-key status text it computes. The per-key line built a"set"/"not set"string and then dropped it, printing only theOK/MISSINGicon; it now shows both (e.g.OPENAI_API_KEY: OK (set)). (#135)
Internal
- Removed confirmed dead code (#137): three unused
serverequest/response dataclasses (InvokeRequest,BatchRequest,BatchResponse), two unreachable private helpers (bm25._score_document,hybrid._find_matching_key), four dead local variables, and 104 unused imports across thesrc/tree. No public symbols affected. - Tightened ruff config (#138):
F401(unused imports) andF841(unused locals) are now enforced everywhere; theF401ignore is scoped to**/__init__.pyre-export hubs, so dead imports and locals can no longer accumulate silently. - The vestigial
PineconeVectorStore(environment=...)parameter is now documented as deprecated/ignored (Pinecone v3+ infers the host); removal is tracked for a future minor (#149).
Full changelog: https://github.com/johnnichev/selectools/blob/main/CHANGELOG.md