Repository navigation
docs: epythet documentation sweep (WP6): zero rendering errors, 88 new docstrings, README agent section - #86
Merged
Merged
Conversation
Blank lines before glued doctests, bullet lists and field lists; no wording changes.
…x safely Section titles and rubric artifacts become bold phrases; prose *args/**kwargs get double backticks; commented-out doctests move out of docstrings into code comments; duplicate and dangling references removed. Adds verified doctests to asis, return_true, return_false, defaults_are_the_same_when_not_empty, Sig.ch_names and preprocess. Fixes return_true, which returned False (README and __init__ documented True).
…tion, ignore docsrc/ The hand-written skills list moves into the epythet-generated section (one home). Remaining bullet continuation lines re-indented.
… key_path, io_trans
…preprocess_arguments gets a run example
…; run doctests for copy_func and postprocess
…25 public helpers, run examples for entry points, missing parameter descriptions
…erterIngress, object_dependencies, ensure_signature, image directive, README wording)
This was referenced Sep 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WP6 documentation sweep of
i2(one repository of the fleet sweep tracked in i2mint/epythet#16), following theepythet-repair-migrateprocedure: mechanical repair, hand repair of the remaining rendering artifacts, coverage / correctness / completeness passes under the behaviour-claim policy, README, theme check,docsrc/handling.Before / after
Core package only (
i2/excludingtests/,scrap/,examples/, which the site does not document).pytest i2)pytest --doctest-modules i2)epythet validatelevel 0.5 errorsepythet validatewarnings / infoepythet quickstart)--level 2)i2/__init__without a docstringpreprocess)Error rules cleared: DR010 26, DR001 20, DR008 13, DR002 12, DR006 10, DR003 7, DR018 1, DR020 1, DR028 1. Coverage/quality rules: DQ001 (no docstring) 172 to 56, D103 72 to 1, D101 29 to 4, DQ005 (meta-language summary) 11 to 0, DQ002 (entry point without example) 12 to 4, D417 4 to 0, DR014 11 to 0.
What changed
epythet repair --write): blank lines before glued doctests, bullet lists and field lists in 157 docstrings; no wording changes.Wrap) and.. rubric::lines that the mechanical repair step itself had inserted (33 of them, fromExample(s):headers,# commentlines and wrapped prose; a defect tracked in repair regressions found by the fleet sweep: blank lines inside ASCII-art blocks, Google Argsname:+ indented body turned intoname::literal; agentic-readme snippet overstates tooling epythet#27; the last three are fixed in docs: fix the last repair artifacts from the sweep (rubrics, literal block) #87) restored to bold phrases or prose; prose*args/**kwargsin double backticks; commented-out doctests moved out of docstrings into code comments (they were never run and rendered as prose); duplicated:param:block incopy_funcremoved; dangling references (iterable_,response_, apy2misc/...path) removed;sigs_for_builtins.printdocstring made raw.signatures,wrapper,deco,doc_mint,util,footprints,itypes,errors,multi_object,base,routing_forest,key_path,io_trans; mostly one-line summaries written after reading the implementation, plus run doctests where the behaviour was simple to show.Wrapx's docstring moves from__init__to the class.return_true/return_falsefixed;set_signature_of_funcdocumentedsignaturebut the parameter isparameters; missing parameter descriptions added (attrs_used_by_method.src_code,new_type.assign_to_globals,FileLikeObject.io_cls/open_mode,mk_sentinel.module,extract_argumentsflags);new_typeReturnssaidNonebut returns the type.preprocess,preprocess_arguments,asis,return_true,return_false,inject_method,get_function_body,InterruptWithBlock,MultiFunc,Sig.ch_names,copy_func,postprocess,defaults_are_the_same_when_not_empty, and helpers). Every example was executed and its real output pasted.pip install i2and a smallest complete example (run first) after the intro; the hand-written skills list is replaced by the epythet-generated "For AI agents" section (epythet ai-readme-check .passes; policy add / humour / agents first); link to the flati2.mdaggregate.docsrc/: never committed here; now in.gitignoreso a localepythet quickstartcannot land it.auto(resolves to sphinxawesome fori2); nopyproject.tomlin this repo and the theme decision procedure gives no reason to override for a pure API library, so nothing written.One behaviour change (not docs)
i2.util.return_truereturnedFalse(copy-paste ofreturn_false). The name, the comment ini2/__init__.pyand the README all saidTrue, andConditionalExceptionCatcheruses it as the defaultexception_condition(so the default never caught anything). It now returnsTrue. No caller in the local fleet depends on the old value (grep over the local package tree).Claims declined (behaviour not verified, left undocumented)
get_app_folder: no example (OS-dependent output).is_a_new_type/typ_name: on Python 3.10+is_a_new_type(NewType(...))is False andtyp_nameraises on aNewTypeor onint; mechanism documented only, code left as is.get_function_bodyraisesStopIterationon a one-linedef; only the multi-line case is shown.object_dependenciesreturns an "Invalid input" string instead of raising for a non-class/non-instance; not documented.Sig.normalize_kind:allow_reorderingandadd_defaults_if_necessarybehave oddly (see the fork notes in the sweep ledger); not documented.normalized_func: documented as work in progress (both tests are xfail).split_line_commentswith more than one#raises from tuple unpacking; not documented.find_in_params: annotationparams: Callable | strcontradicts the docstring and body (a list of dicts is accepted); code annotation, not changed.transform_args(deco): documentsrootdir/name_argthat do not exist in its signature; left for a separate pass.footprints.py:trace_class_decorator,get_class_that_defined_method,cls_and_method_name_of_methodare each defined twice (the firsttrace_class_decoratoris dead); left as is.Adversarial review
An independent review of the diff (AST diff of every changed module, 40 rewritten docstrings checked against code) found two HIGH items, both fixed in the last commit: the
preprocessdocstring claimed bound-method handling the code does not deliver (claim removed), andreturn_trueis the one executable change (documented above). MEDIUM/LOW items fixed:ArgValConverterIngresspresented the name-mangled__strictas switchable;object_dependencies"skips methods without source" (onlyTypeErroris caught); a Markdown image converted to a broken link inmulti_object;ensure_signatureraisesValueError, notTypeError, on a string. Left as is: duplicate function definitions infootprints.py(code), truncated skill descriptions in the generated README table (epythet's snippet cuts long descriptions).Skill placement (recorded for the fleet inventory, not migrated)
Skills live as real directories under
.claude/skills/(i2-castgraph, i2-multi-object, i2-sig-arithmetic, i2-signatures, i2-wrapper); no subagents, no instruction files.Observation for epythet
epythet validate . -i tests/ scrap/ examples/(ignore after the positional) still reports level 0 / 0.5 findings underi2/tests,i2/scrap,i2/examples;epythet validate -i tests/ scrap/ examples/ -- .applies them.