dirsql 0.4.34__tar.gz → 0.4.36__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dirsql-0.4.34 → dirsql-0.4.36}/Cargo.lock +2 -2
- {dirsql-0.4.34 → dirsql-0.4.36}/PKG-INFO +1 -1
- dirsql-0.4.36/dirsql/cli/config_paths_from_argv.py +28 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/cli/resolve_config_extensions.py +2 -25
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/reference/cli.md +18 -0
- {dirsql-0.4.34/packages/rust → dirsql-0.4.36}/docs/reference/config.md +9 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/Cargo.toml +1 -1
- dirsql-0.4.36/packages/python/changelog.d/2026-09-04-config-paths-from-argv-module.md +3 -0
- {dirsql-0.4.34/packages/rust → dirsql-0.4.36/packages/python}/docs/reference/cli.md +18 -0
- {dirsql-0.4.34 → dirsql-0.4.36/packages/python}/docs/reference/config.md +9 -0
- dirsql-0.4.36/packages/python/e2e-attestations/claude-tackle-1034-cachesplit.json +7 -0
- dirsql-0.4.36/packages/python/e2e-attestations/claude-tackle-1042-py12.json +7 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/testing-conventions.toml +1 -1
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/Cargo.toml +1 -1
- {dirsql-0.4.34/packages/python → dirsql-0.4.36/packages/rust}/docs/reference/cli.md +18 -0
- {dirsql-0.4.34/packages/python → dirsql-0.4.36/packages/rust}/docs/reference/config.md +9 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/functions.rs +204 -32
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/progress.rs +146 -21
- {dirsql-0.4.34 → dirsql-0.4.36}/Cargo.toml +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/README.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/__init__.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/_async.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/_dirsql.pyi +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/cli/__init__.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/cli/discover_plugins/__init__.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/cli/discover_plugins/user_passed_config.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/cli/main.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/py.typed +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/resolve_config_extensions.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/dirsql/resolve_extension.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/AGENTS.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/explanation.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/getting-started.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/embed.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/persist.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/query-json.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/index.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/package.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/plugins.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/reference/columns.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/reference/hooks.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/reference/http-api.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/docs/reference/sdk.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/CHANGELOG.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/MIGRATIONS.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/README.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-08-02-release-profile.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-08-02-scan-failures.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-08-03-python-no-ignore.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-08-04-cast-lints.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/changelog.d/README.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/conftest.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/AGENTS.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/explanation.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/getting-started.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/embed.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/persist.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/query-json.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/index.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/package.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/plugins.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/reference/columns.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/reference/hooks.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/reference/http-api.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/docs/reference/sdk.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/cc-keen-knuth-f11gyq.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-819-oneshot-timeout.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-827-unquote-doubled-quotes.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-epic-953-slice2-reedline.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-epic-953-slice3-format.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-epic-953-stacked-prs-x59wm3.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-github-issue-825-e4mhhp.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-issue-951-0eease.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-issue-962-0jjrfv.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-issue-986-red-test-e7sjrb.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-tackle-956-xzen74.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6-worker-calls.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/e2e-attestations/claude-tackle-975-n8mc2h.json +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/migrations.d/README.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/src/lib.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/tests/__init__.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/tests/conftest.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/tests/e2e/__init__.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/__init__.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/tests/integration/__init__.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/tests/integration/binding/__init__.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/python/tests/integration/hermetic/__init__.py +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/CHANGELOG.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/MIGRATIONS.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/README.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/benches/db_bench.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/benches/differ_bench.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/benches/matcher_bench.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/benches/scanner_bench.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/explanation.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/getting-started.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/embed.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/persist.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/query-json.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/index.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/plugins.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/reference/columns.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/reference/hooks.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/reference/http-api.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/docs/reference/sdk.md +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/bin/dirsql.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/cli/execute.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/cli/init.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/cli/mod.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/cli/repl.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/cli/router.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/cli/run.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/cli/serialize.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/cli/server.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/cli/table.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/command.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/config.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/db.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/default_config.toml +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/differ.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/infer.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/lib.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/matcher.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/parsed_cache.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/parsed_vtab.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/path_table.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/persist.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/scanner.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/sql_literal.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/vtab.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/packages/rust/src/watcher.rs +0 -0
- {dirsql-0.4.34 → dirsql-0.4.36}/pyproject.toml +0 -0
|
@@ -540,7 +540,7 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
|
|
|
540
540
|
|
|
541
541
|
[[package]]
|
|
542
542
|
name = "dirsql"
|
|
543
|
-
version = "0.4.
|
|
543
|
+
version = "0.4.36"
|
|
544
544
|
dependencies = [
|
|
545
545
|
"assert_cmd",
|
|
546
546
|
"axum",
|
|
@@ -583,7 +583,7 @@ dependencies = [
|
|
|
583
583
|
|
|
584
584
|
[[package]]
|
|
585
585
|
name = "dirsql-py-ext"
|
|
586
|
-
version = "0.4.
|
|
586
|
+
version = "0.4.36"
|
|
587
587
|
dependencies = [
|
|
588
588
|
"dirsql",
|
|
589
589
|
"pyo3",
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"""Config-path extraction from the launcher's argv.
|
|
2
|
+
|
|
3
|
+
Every config flag occurrence counts -- ``-c``/``--config`` are repeatable,
|
|
4
|
+
and plugin discovery injects fragments as additional ``-c`` flags -- so the
|
|
5
|
+
scan collects them all, in argv order.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def config_paths_from_argv(argv: list[str]) -> list[str]:
|
|
12
|
+
"""Every config value in argv, in order (``--config X``, ``--config=X``,
|
|
13
|
+
``-c X``, ``-c=X``, ``-cX``), or the default when none are given."""
|
|
14
|
+
paths: list[str] = []
|
|
15
|
+
i = 0
|
|
16
|
+
while i < len(argv):
|
|
17
|
+
a = argv[i]
|
|
18
|
+
if a == "--config" or a == "-c":
|
|
19
|
+
# A bare trailing flag (no following value) yields "".
|
|
20
|
+
paths.append(next(iter(argv[i + 1 :]), ""))
|
|
21
|
+
i += 2
|
|
22
|
+
continue
|
|
23
|
+
if a.startswith("--config="):
|
|
24
|
+
paths.append(a[len("--config=") :])
|
|
25
|
+
elif a.startswith("-c"):
|
|
26
|
+
paths.append(a[len("-c") :].removeprefix("="))
|
|
27
|
+
i += 1
|
|
28
|
+
return paths or ["./.dirsql.toml"]
|
|
@@ -8,10 +8,6 @@ extensions and this launcher passes the resolved literal paths to the binary
|
|
|
8
8
|
via repeatable ``--extension`` flags; the binary then loads those and ignores
|
|
9
9
|
the configs' own extension entries.
|
|
10
10
|
|
|
11
|
-
Every config flag occurrence counts -- ``-c``/``--config`` are repeatable,
|
|
12
|
-
and plugin discovery injects fragments as additional ``-c`` flags -- so the
|
|
13
|
-
scan collects them all, in argv order.
|
|
14
|
-
|
|
15
11
|
Native-language configs (``.py`` / ``.js`` / ``.mjs`` / ``.cjs``) are untouched:
|
|
16
12
|
the binary dispatches those to ``dirsql interpret``, whose handshake already
|
|
17
13
|
carries resolved paths.
|
|
@@ -20,32 +16,13 @@ carries resolved paths.
|
|
|
20
16
|
from __future__ import annotations
|
|
21
17
|
|
|
22
18
|
from ..resolve_config_extensions import resolve_configs_extension_specs
|
|
19
|
+
from .config_paths_from_argv import config_paths_from_argv
|
|
23
20
|
|
|
24
21
|
# Config extensions the binary dispatches to `dirsql interpret`; never
|
|
25
22
|
# pre-resolved here (that path resolves via the handshake).
|
|
26
23
|
_NATIVE_SUFFIXES = (".py", ".js", ".mjs", ".cjs")
|
|
27
24
|
|
|
28
25
|
|
|
29
|
-
def _config_paths_from_argv(argv: list[str]) -> list[str]:
|
|
30
|
-
"""Every config value in argv, in order (``--config X``, ``--config=X``,
|
|
31
|
-
``-c X``, ``-c=X``, ``-cX``), or the default when none are given."""
|
|
32
|
-
paths: list[str] = []
|
|
33
|
-
i = 0
|
|
34
|
-
while i < len(argv):
|
|
35
|
-
a = argv[i]
|
|
36
|
-
if a == "--config" or a == "-c":
|
|
37
|
-
# A bare trailing flag (no following value) yields "".
|
|
38
|
-
paths.append(next(iter(argv[i + 1 :]), ""))
|
|
39
|
-
i += 2
|
|
40
|
-
continue
|
|
41
|
-
if a.startswith("--config="):
|
|
42
|
-
paths.append(a[len("--config=") :])
|
|
43
|
-
elif a.startswith("-c"):
|
|
44
|
-
paths.append(a[len("-c") :].removeprefix("="))
|
|
45
|
-
i += 1
|
|
46
|
-
return paths or ["./.dirsql.toml"]
|
|
47
|
-
|
|
48
|
-
|
|
49
26
|
def with_resolved_extensions(argv: list[str]) -> list[str]:
|
|
50
27
|
"""Return ``argv`` plus ``--extension`` flags when a TOML config names an
|
|
51
28
|
extension by package name; otherwise return ``argv`` unchanged. Raises if a
|
|
@@ -53,7 +30,7 @@ def with_resolved_extensions(argv: list[str]) -> list[str]:
|
|
|
53
30
|
if argv and argv[0] == "init":
|
|
54
31
|
return argv
|
|
55
32
|
config_paths = [
|
|
56
|
-
p for p in
|
|
33
|
+
p for p in config_paths_from_argv(argv) if not p.endswith(_NATIVE_SUFFIXES)
|
|
57
34
|
]
|
|
58
35
|
if not config_paths:
|
|
59
36
|
return argv
|
|
@@ -498,6 +498,24 @@ and, when the query ends:
|
|
|
498
498
|
dirsql: ran 41231 worker calls in 2m41s
|
|
499
499
|
```
|
|
500
500
|
|
|
501
|
+
A worker that keeps a cache of its own can say so per response
|
|
502
|
+
(`{"meta": {"cached": true}}` — see [Worker
|
|
503
|
+
protocol](./config.md#worker-protocol)), and those round trips are then split
|
|
504
|
+
out, because the number that answers *"will this be fast next time"* is not
|
|
505
|
+
the total:
|
|
506
|
+
|
|
507
|
+
```
|
|
508
|
+
dirsql: running 9204 worker calls (8811 cached)
|
|
509
|
+
dirsql: ran 41231 worker calls in 2m41s (38104 cached)
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
Both figures count **worker round trips, not rows**. A function declared
|
|
513
|
+
`deterministic = true` lets SQLite reuse one answer for identical arguments
|
|
514
|
+
within a query, so repeated content never reaches the worker at all and both
|
|
515
|
+
numbers sit below the row count on a corpus with duplicates. The split covers
|
|
516
|
+
only what the worker itself reports serving from cache. A worker that sends no
|
|
517
|
+
`meta` gets the unsplit line above, not a `(0 cached)`.
|
|
518
|
+
|
|
501
519
|
A query that calls no worker prints nothing, whatever the setting — the
|
|
502
520
|
reporting only ever speaks when there is something to report.
|
|
503
521
|
|
|
@@ -161,6 +161,15 @@ request line in, one response line out, per call:
|
|
|
161
161
|
JSON-text vectors) — or `{"err": "message"}`, which **fails the query**
|
|
162
162
|
with that message. An `{"err": ...}` response leaves the healthy worker
|
|
163
163
|
running; only transport failures (timeout, crash) recycle it.
|
|
164
|
+
- **Optional `"meta"`**, alongside `"ok"`: a second top-level object carrying
|
|
165
|
+
facts about how the answer was produced rather than what it is. One key is
|
|
166
|
+
read today — `{"ok": [...], "meta": {"cached": true}}` says the worker
|
|
167
|
+
answered from a cache of its own, which dirsql reports as the `(N cached)`
|
|
168
|
+
split on its [worker-call progress line](./cli.md#progress-reporting). The
|
|
169
|
+
field is **optional and advisory**: a worker that omits it is a worker that
|
|
170
|
+
reports no cache hits, keys dirsql does not recognize are ignored (they
|
|
171
|
+
always have been), and a `meta` of an unexpected shape is ignored too rather
|
|
172
|
+
than failing a query over a progress counter.
|
|
164
173
|
- **stderr passes through** to `dirsql`'s stderr, so a worker's progress
|
|
165
174
|
bars and download logs reach the terminal.
|
|
166
175
|
|
|
@@ -4,7 +4,7 @@ name = "dirsql-py-ext"
|
|
|
4
4
|
# pypi/maturin handler can rewrite it via `write-version` before
|
|
5
5
|
# `maturin build`. `pyproject.toml` declares `dynamic = ["version"]`
|
|
6
6
|
# and maturin reads this field. Mirrors `packages/rust/Cargo.toml`.
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.36"
|
|
8
8
|
# abi3 note: the `abi3-py310` pyo3 feature (below) builds ONE stable-ABI
|
|
9
9
|
# `cp310-abi3` wheel per platform that loads on every CPython >= 3.10
|
|
10
10
|
# (matching `pyproject.toml`'s `requires-python = ">=3.10"`), instead of
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
**Changed**
|
|
2
|
+
|
|
3
|
+
- **The launcher's argv config-path scan moved to its own module.** `config_paths_from_argv` now lives in `dirsql/cli/config_paths_from_argv.py`; `with_resolved_extensions` imports it. Internal reorganisation with no change to the published API or CLI behavior, mirroring the TypeScript launcher. (#1042)
|
|
@@ -498,6 +498,24 @@ and, when the query ends:
|
|
|
498
498
|
dirsql: ran 41231 worker calls in 2m41s
|
|
499
499
|
```
|
|
500
500
|
|
|
501
|
+
A worker that keeps a cache of its own can say so per response
|
|
502
|
+
(`{"meta": {"cached": true}}` — see [Worker
|
|
503
|
+
protocol](./config.md#worker-protocol)), and those round trips are then split
|
|
504
|
+
out, because the number that answers *"will this be fast next time"* is not
|
|
505
|
+
the total:
|
|
506
|
+
|
|
507
|
+
```
|
|
508
|
+
dirsql: running 9204 worker calls (8811 cached)
|
|
509
|
+
dirsql: ran 41231 worker calls in 2m41s (38104 cached)
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
Both figures count **worker round trips, not rows**. A function declared
|
|
513
|
+
`deterministic = true` lets SQLite reuse one answer for identical arguments
|
|
514
|
+
within a query, so repeated content never reaches the worker at all and both
|
|
515
|
+
numbers sit below the row count on a corpus with duplicates. The split covers
|
|
516
|
+
only what the worker itself reports serving from cache. A worker that sends no
|
|
517
|
+
`meta` gets the unsplit line above, not a `(0 cached)`.
|
|
518
|
+
|
|
501
519
|
A query that calls no worker prints nothing, whatever the setting — the
|
|
502
520
|
reporting only ever speaks when there is something to report.
|
|
503
521
|
|
|
@@ -161,6 +161,15 @@ request line in, one response line out, per call:
|
|
|
161
161
|
JSON-text vectors) — or `{"err": "message"}`, which **fails the query**
|
|
162
162
|
with that message. An `{"err": ...}` response leaves the healthy worker
|
|
163
163
|
running; only transport failures (timeout, crash) recycle it.
|
|
164
|
+
- **Optional `"meta"`**, alongside `"ok"`: a second top-level object carrying
|
|
165
|
+
facts about how the answer was produced rather than what it is. One key is
|
|
166
|
+
read today — `{"ok": [...], "meta": {"cached": true}}` says the worker
|
|
167
|
+
answered from a cache of its own, which dirsql reports as the `(N cached)`
|
|
168
|
+
split on its [worker-call progress line](./cli.md#progress-reporting). The
|
|
169
|
+
field is **optional and advisory**: a worker that omits it is a worker that
|
|
170
|
+
reports no cache hits, keys dirsql does not recognize are ignored (they
|
|
171
|
+
always have been), and a `meta` of an unexpected shape is ignored too rather
|
|
172
|
+
than failing a query over a progress counter.
|
|
164
173
|
- **stderr passes through** to `dirsql`'s stderr, so a worker's progress
|
|
165
174
|
bars and download logs reach the terminal.
|
|
166
175
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
extra_scope = ["packages/rust/src", "packages/python/src"]
|
|
11
11
|
|
|
12
12
|
[python]
|
|
13
|
-
one_function_per_file = { max_lines =
|
|
13
|
+
one_function_per_file = { max_lines = 15 }
|
|
14
14
|
|
|
15
15
|
# Same floor as the root file, which this lane no longer reads.
|
|
16
16
|
[python.coverage]
|
|
@@ -6,7 +6,7 @@ description = "Ephemeral SQL index over a local directory"
|
|
|
6
6
|
# version stays for the binding crates (publish = false). The literal
|
|
7
7
|
# intentionally lags the published version: putitoutthere rewrites it to
|
|
8
8
|
# the planned release version at build time and never commits it back.
|
|
9
|
-
version = "0.4.
|
|
9
|
+
version = "0.4.36"
|
|
10
10
|
edition.workspace = true
|
|
11
11
|
# Literal `license` (not `license.workspace = true`) because
|
|
12
12
|
# putitoutthere's preflight check reads `[package].license` directly
|
|
@@ -498,6 +498,24 @@ and, when the query ends:
|
|
|
498
498
|
dirsql: ran 41231 worker calls in 2m41s
|
|
499
499
|
```
|
|
500
500
|
|
|
501
|
+
A worker that keeps a cache of its own can say so per response
|
|
502
|
+
(`{"meta": {"cached": true}}` — see [Worker
|
|
503
|
+
protocol](./config.md#worker-protocol)), and those round trips are then split
|
|
504
|
+
out, because the number that answers *"will this be fast next time"* is not
|
|
505
|
+
the total:
|
|
506
|
+
|
|
507
|
+
```
|
|
508
|
+
dirsql: running 9204 worker calls (8811 cached)
|
|
509
|
+
dirsql: ran 41231 worker calls in 2m41s (38104 cached)
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
Both figures count **worker round trips, not rows**. A function declared
|
|
513
|
+
`deterministic = true` lets SQLite reuse one answer for identical arguments
|
|
514
|
+
within a query, so repeated content never reaches the worker at all and both
|
|
515
|
+
numbers sit below the row count on a corpus with duplicates. The split covers
|
|
516
|
+
only what the worker itself reports serving from cache. A worker that sends no
|
|
517
|
+
`meta` gets the unsplit line above, not a `(0 cached)`.
|
|
518
|
+
|
|
501
519
|
A query that calls no worker prints nothing, whatever the setting — the
|
|
502
520
|
reporting only ever speaks when there is something to report.
|
|
503
521
|
|
|
@@ -161,6 +161,15 @@ request line in, one response line out, per call:
|
|
|
161
161
|
JSON-text vectors) — or `{"err": "message"}`, which **fails the query**
|
|
162
162
|
with that message. An `{"err": ...}` response leaves the healthy worker
|
|
163
163
|
running; only transport failures (timeout, crash) recycle it.
|
|
164
|
+
- **Optional `"meta"`**, alongside `"ok"`: a second top-level object carrying
|
|
165
|
+
facts about how the answer was produced rather than what it is. One key is
|
|
166
|
+
read today — `{"ok": [...], "meta": {"cached": true}}` says the worker
|
|
167
|
+
answered from a cache of its own, which dirsql reports as the `(N cached)`
|
|
168
|
+
split on its [worker-call progress line](./cli.md#progress-reporting). The
|
|
169
|
+
field is **optional and advisory**: a worker that omits it is a worker that
|
|
170
|
+
reports no cache hits, keys dirsql does not recognize are ignored (they
|
|
171
|
+
always have been), and a `meta` of an unexpected shape is ignored too rather
|
|
172
|
+
than failing a query over a progress counter.
|
|
164
173
|
- **stderr passes through** to `dirsql`'s stderr, so a worker's progress
|
|
165
174
|
bars and download logs reach the terminal.
|
|
166
175
|
|