Add partial bundled type stubs - #115
Conversation
Ship complete sidecar stubs for self-contained modules while leaving ConfigObj- and tabulate-bound modules untouched. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Hi! This looks neat, but I'm unsure about merging until cli_helpers is brought up to a minimum of Python 3.10, and all dbcli projects are on the newer cli_helpers. Do you have any thoughts about that? |
|
Thanks — I checked this against the published metadata and the current dbcli consumers. The marker and sidecars do not impose a runtime Python 3.10 requirement: However, I would not publish this change while The downstream state is mixed:
So I agree that the release containing this PR should be coordinated with correcting |
Type the consumed CSV and vertical adapter options, constrain formatter column markers to the runtime set, and expose the JSON encoder's successful float result. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Summary
py.typedand complete sidecar stubs for seven self-contained modules:compat,utils, preprocessors, and the CSV/JSON/TSV/vertical adapters.pyfile unchangedconfig.py,tabulate_adapter.py,output_formatter.py, and the aggregatetabular_outputmodule unstubbed because their complete surfaces close over the real untyped ConfigObj identity or mutated/private tabulate stateType completeness
Fresh installed-wheel
pyright --verifytypes cli_helpers --outputjson, unfiltered (ignoreUnknownTypesFromImports=false) and withouttypes-Pygments:All 54 exports in the seven touched modules are known. The 115-name export set is unchanged and no previously known export regresses.
Validation
mypy.stubtestpasses for the independently loadable top-level touched modules; nested/full stubtest reaches the intentionally unstubbed aggregate and remains blocked by tabulate's private_table_formatsmutation and the untyped aggregate formatter registry rather than being suppressedcheck-manifest, andsetup.py checkpass; both archives contain exactly the marker plus seven stubs, and the wheel contains no testsAny, casts, ignores, checker suppressions,noqa, or allowlists in authored typing artifacts or fixturesClean-main limitations were reproduced unchanged: Coverage 4.3 and Sphinx 1.5 fail on Python 3.12 regex handling, tox 2.7 and Twine 1.12 fail with current setuptools because
pkg_resourcesis absent, and current Black reports the same 10 pre-existing files. Python 3.6/3.7 and GNU make were unavailable on this Windows host; Python 3.9 cannot resolve tabulate 0.10 because tabulate now requires Python 3.10+.