dirsql 0.4.86__tar.gz → 0.4.88__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.86 → dirsql-0.4.88}/Cargo.lock +2 -2
- {dirsql-0.4.86 → dirsql-0.4.88}/PKG-INFO +1 -1
- {dirsql-0.4.86/packages/rust → dirsql-0.4.88}/docs/reference/path-tables.md +3 -1
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/Cargo.toml +1 -1
- dirsql-0.4.88/packages/python/changelog.d/2026-10-05-unbalanced-brackets-literal.md +1 -0
- dirsql-0.4.88/packages/python/changelog.d/2026-10-06-config-gitignore.md +3 -0
- {dirsql-0.4.86 → dirsql-0.4.88/packages/python}/docs/reference/path-tables.md +3 -1
- dirsql-0.4.88/packages/python/e2e-attestations/claude-1258-config-gitignore.json +7 -0
- dirsql-0.4.88/packages/python/e2e-attestations/claude-1268-unbalanced-brackets.json +7 -0
- dirsql-0.4.88/packages/python/migrations.d/2026-10-05-unbalanced-brackets-literal.md +29 -0
- dirsql-0.4.88/packages/python/migrations.d/2026-10-06-config-gitignore.md +45 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/Cargo.toml +1 -1
- {dirsql-0.4.86/packages/python → dirsql-0.4.88/packages/rust}/docs/reference/path-tables.md +3 -1
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/brace.rs +14 -8
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/lib.rs +32 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/matcher.rs +20 -1
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/parsed_vtab.rs +1 -1
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/scanner.rs +42 -4
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/vtab.rs +1 -1
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/vtab_scaffold.rs +1 -1
- {dirsql-0.4.86 → dirsql-0.4.88}/Cargo.toml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/README.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/_async.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/_dirsql.pyi +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/cli/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/cli/discover_plugins/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/cli/main.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/cli/resolve_config_extensions.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/plan_entry_path.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/py.typed +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/read_config.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/resolve_configs_extension_specs.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/resolve_extension.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/dirsql/resolve_package.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/AGENTS.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/context/.gitattributes +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/context/recipes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/context/usage.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/explanation.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/getting-started.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/embed.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/persist.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/query-json.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/index.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/package.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/plugins.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/reference/cli.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/reference/columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/reference/config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/reference/hooks.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/reference/http-api.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/docs/reference/sdk.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/CHANGELOG.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/MIGRATIONS.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/README.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-02-release-profile.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-02-scan-failures.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-03-python-no-ignore.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-04-cast-lints.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-04-config-paths-from-argv-module.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-05-config-extension-loader-split.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-05-resolve-config-extensions-split.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-09-launcher-config-path-scan.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-17-extension-resolution-via-core.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-18-export-scan-failure.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-18-flatten-row-event-in-core.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-18-programmatic-extension-plan.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/README.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/conftest.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/AGENTS.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/context/.gitattributes +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/context/recipes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/context/usage.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/explanation.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/getting-started.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/embed.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/persist.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/query-json.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/index.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/package.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/plugins.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/reference/cli.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/reference/columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/reference/config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/reference/hooks.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/reference/http-api.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/docs/reference/sdk.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/bot-1397-watch-broadcast.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/bot-1398-inotify-error.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/bot-1399-server-cors.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/bot-1401-watch-scope.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/bot-1407-child-place-depth.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/cc-keen-knuth-f11gyq.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1056-py-ofpf9.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1066-p1-resolve-extension.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1078-argv-config-paths-core.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1079-p2-resolve-config-extensions.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1080-share-vtab-scaffolding.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1081-indicatif-progress.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1096-watch-moved-dir.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1109-watch-moved-out.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1119-ext-plan.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1120-py-ext.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1122-ext-cleanup.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1130-codec-crates.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1131-flatten-row-event.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1139-sse-flatten.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1140-scan-failure-export.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1148-clippy-all-targets.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1164-sigint-fatal.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1170-projection-order.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1172-on-file-path.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1173-py-projection-order.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1184-win-rel-paths.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1185-win-abs-table-names.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1186-win-test-harness.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1196-join-index.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1199-glob-prefix.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1201-single-walk.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1204-embed-batch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1207-win-argv-quote.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1208-win-nonverbatim-paths.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1215-on-file-batch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1216-on-file-cleanup.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1223-config-glob-rule.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1223-dir-one-level.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1225-plugin-no-default.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1226-stale-docs.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1232-anchor-plumbing.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1232-config-anchor.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1232-multi-watch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1232-zero-match.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1238-parallel-walk.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1241-content-prefetch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1243-ingest-perf.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1249-dotfiles.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1256-symlinks.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1257-trailing-slash.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1258-one-pattern.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1262-brace-literal.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1264-context.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1267-posix-classes.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1269-utf8-chars.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1271-node-modules-named.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1272-ancestor-gitignore.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1273-walk-prune.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1285-ingest-fast.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1286-nested-repo.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1305-glob-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1308-glob-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1310-glob-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1311-glob-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1312-glob-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1318-lazy-stat.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1320-walk-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1322-walk-readdir.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1325-parallel-walk.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1326-stream-rows.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-python-dirsql-patch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-python-extensions-patch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-scanner-effects.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-scanner-gitignore.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-vtab-prefetch-flag.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-vtab-read.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1351-dot-dirs.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-819-oneshot-timeout.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-827-unquote-doubled-quotes.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-epic-953-slice2-reedline.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-epic-953-slice3-format.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-epic-953-stacked-prs-x59wm3.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-github-issue-825-e4mhhp.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-issue-951-0eease.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-issue-962-0jjrfv.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-issue-986-red-test-e7sjrb.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-1034-cachesplit.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-1042-py12.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-956-xzen74.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6-worker-calls.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-975-n8mc2h.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/migrations.d/README.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/src/lib.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/testing-conventions.toml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/tests/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/tests/conftest.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/tests/e2e/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/tests/e2e/speed_of_light.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/tests/integration/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/tests/integration/binding/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/python/tests/integration/hermetic/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/CHANGELOG.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/MIGRATIONS.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/README.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/benches/db_bench.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/benches/differ_bench.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/benches/matcher_bench.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/benches/scanner_bench.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/context/.gitattributes +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/context/recipes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/context/usage.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/explanation.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/getting-started.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/embed.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/persist.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/query-json.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/index.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/plugins.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/reference/cli.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/reference/columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/reference/config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/reference/hooks.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/reference/http-api.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/docs/reference/sdk.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/bin/dirsql.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/cli/context.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/cli/execute.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/cli/init.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/cli/mod.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/cli/repl.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/cli/router.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/cli/run.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/cli/serialize.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/cli/server.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/cli/table.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/command.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/config.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/db.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/default_config.toml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/differ.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/extension_resolution.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/functions.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/infer.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/launcher.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/listing.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/on_file.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/path_table.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/persist.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/posix_class.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/progress.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/row_event_flat.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/sql_literal.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/tree_walk.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/packages/rust/src/watcher.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.88}/pyproject.toml +0 -0
|
@@ -552,7 +552,7 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
|
|
|
552
552
|
|
|
553
553
|
[[package]]
|
|
554
554
|
name = "dirsql"
|
|
555
|
-
version = "0.4.
|
|
555
|
+
version = "0.4.88"
|
|
556
556
|
dependencies = [
|
|
557
557
|
"assert_cmd",
|
|
558
558
|
"axum",
|
|
@@ -603,7 +603,7 @@ dependencies = [
|
|
|
603
603
|
|
|
604
604
|
[[package]]
|
|
605
605
|
name = "dirsql-py-ext"
|
|
606
|
-
version = "0.4.
|
|
606
|
+
version = "0.4.88"
|
|
607
607
|
dependencies = [
|
|
608
608
|
"dirsql",
|
|
609
609
|
"pyo3",
|
|
@@ -59,7 +59,9 @@ alternation: `'./docs/{a,b}.md'` is `docs/a.md` and `docs/b.md`, and groups
|
|
|
59
59
|
nest. A group holding a `..` range counts: `'./log/{1..3}.txt'`,
|
|
60
60
|
`'./{a..c}.md'`, `'./{01..10}.md'` (zero-padded) and `'./{1..10..2}.md'`
|
|
61
61
|
(every second value). Any other brace is literal text, so `'./br/{q}.md'`
|
|
62
|
-
names the file `br/{q}.md`, and `\{` is always a literal brace.
|
|
62
|
+
names the file `br/{q}.md`, and `\{` is always a literal brace. A `{`, `}`
|
|
63
|
+
or `[` with no partner is literal too, in a path-table and in a config
|
|
64
|
+
`[[table]] glob`.
|
|
63
65
|
|
|
64
66
|
The scan starts at the last directory named outright before the first glob
|
|
65
67
|
component, and descends only as deep as the pattern can match --
|
|
@@ -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.88"
|
|
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 @@
|
|
|
1
|
+
**Fixed** An unmatched `{`, `}` or `[` in a path-table or a config `[[table]] glob` is a literal character, as in bash, instead of a glob compile error.
|
|
@@ -59,7 +59,9 @@ alternation: `'./docs/{a,b}.md'` is `docs/a.md` and `docs/b.md`, and groups
|
|
|
59
59
|
nest. A group holding a `..` range counts: `'./log/{1..3}.txt'`,
|
|
60
60
|
`'./{a..c}.md'`, `'./{01..10}.md'` (zero-padded) and `'./{1..10..2}.md'`
|
|
61
61
|
(every second value). Any other brace is literal text, so `'./br/{q}.md'`
|
|
62
|
-
names the file `br/{q}.md`, and `\{` is always a literal brace.
|
|
62
|
+
names the file `br/{q}.md`, and `\{` is always a literal brace. A `{`, `}`
|
|
63
|
+
or `[` with no partner is literal too, in a path-table and in a config
|
|
64
|
+
`[[table]] glob`.
|
|
63
65
|
|
|
64
66
|
The scan starts at the last directory named outright before the first glob
|
|
65
67
|
component, and descends only as deep as the pattern can match --
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/glob_speed_gitignore_test.py tests/e2e/glob_speed_dotfiles_test.py tests/e2e/glob_speed_recursive_test.py tests/e2e/glob_speed_matchers_test.py tests/e2e/query_contract_test.py -x -q",
|
|
3
|
+
"ran_at": 1791329772,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "f828a8181c981ab9c5c775117cb60edf3ccd9dcc",
|
|
6
|
+
"branch": "claude/1258-config-gitignore"
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/glob_speed_depth_bound_test.py tests/e2e/glob_speed_recursive_test.py tests/e2e/glob_speed_one_level_test.py tests/e2e/glob_speed_matchers_test.py tests/e2e/glob_speed_dotfiles_test.py tests/e2e/query_contract_test.py tests/e2e/fanout_test.py tests/e2e/capture_collision_test.py -x -q",
|
|
3
|
+
"ran_at": 1791325871,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "45535f123cfc3ea9cf9460c228196e2630d377db",
|
|
6
|
+
"branch": "claude/1268-unbalanced-brackets"
|
|
7
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
### Core: unbalanced braces and brackets in a glob are literal
|
|
2
|
+
|
|
3
|
+
#### Summary
|
|
4
|
+
|
|
5
|
+
A `{`, `}` or `[` with no partner in a glob is now a literal character, as in
|
|
6
|
+
bash, on path-tables and on config `[[table]] glob`. It used to fail with a
|
|
7
|
+
glob compile error. Nothing that compiled before changes meaning.
|
|
8
|
+
|
|
9
|
+
#### Required changes
|
|
10
|
+
|
|
11
|
+
_None._
|
|
12
|
+
|
|
13
|
+
#### Deprecations removed
|
|
14
|
+
|
|
15
|
+
_None._
|
|
16
|
+
|
|
17
|
+
#### Behavior changes without code changes
|
|
18
|
+
|
|
19
|
+
- `'./{a.md'`, `'./a}.md'`, `'./[a.md'` and `'./a[b.md'` match files named
|
|
20
|
+
exactly that instead of failing to compile.
|
|
21
|
+
|
|
22
|
+
#### Verification
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
cd "$(mktemp -d)"
|
|
26
|
+
touch '[a.md'
|
|
27
|
+
dirsql query "SELECT path FROM './[a.md'"
|
|
28
|
+
# expected: [{"path":"[a.md"}]
|
|
29
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
### Config tables respect .gitignore
|
|
2
|
+
|
|
3
|
+
#### Summary
|
|
4
|
+
|
|
5
|
+
A declared `[[table]]` used to read every file its glob matched, whatever
|
|
6
|
+
`.gitignore` said. It now skips gitignored files, as a path-table does. This
|
|
7
|
+
breaks a config that relied on indexing an ignored file; pass `--no-ignore`
|
|
8
|
+
(or `no_ignore` in the SDKs) to restore the old behavior.
|
|
9
|
+
|
|
10
|
+
#### Required changes
|
|
11
|
+
|
|
12
|
+
| Before | After |
|
|
13
|
+
| --- | --- |
|
|
14
|
+
| a table indexed gitignored files | pass `--no-ignore`, or stop ignoring the file |
|
|
15
|
+
|
|
16
|
+
#### Deprecations removed
|
|
17
|
+
|
|
18
|
+
_None._
|
|
19
|
+
|
|
20
|
+
#### Behavior changes without code changes
|
|
21
|
+
|
|
22
|
+
- Inside a git repo (a directory holding `.git`), files a `.gitignore` ignores
|
|
23
|
+
are not rows of a `[[table]]`, at startup or while watching.
|
|
24
|
+
- Outside a repo nothing changes.
|
|
25
|
+
|
|
26
|
+
#### Verification
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
cd "$(mktemp -d)"
|
|
30
|
+
git init -q
|
|
31
|
+
printf 'skip.json\n' > .gitignore
|
|
32
|
+
echo '[{"p":"keep"}]' > keep.json
|
|
33
|
+
echo '[{"p":"skip"}]' > skip.json
|
|
34
|
+
cat > .dirsql.toml <<'TOML'
|
|
35
|
+
[[table]]
|
|
36
|
+
name = "t"
|
|
37
|
+
glob = "*.json"
|
|
38
|
+
ddl = "CREATE TABLE t (p TEXT)"
|
|
39
|
+
on-file = "jq -sc add"
|
|
40
|
+
TOML
|
|
41
|
+
dirsql query "SELECT p FROM t" -c .dirsql.toml
|
|
42
|
+
# expected: [{"p":"keep"}]
|
|
43
|
+
dirsql query "SELECT p FROM t ORDER BY p" -c .dirsql.toml --no-ignore
|
|
44
|
+
# expected: [{"p":"keep"},{"p":"skip"}]
|
|
45
|
+
```
|
|
@@ -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.88"
|
|
10
10
|
edition.workspace = true
|
|
11
11
|
# Literal `license` (not `license.workspace = true`) because
|
|
12
12
|
# putitoutthere's preflight check reads `[package].license` directly
|
|
@@ -59,7 +59,9 @@ alternation: `'./docs/{a,b}.md'` is `docs/a.md` and `docs/b.md`, and groups
|
|
|
59
59
|
nest. A group holding a `..` range counts: `'./log/{1..3}.txt'`,
|
|
60
60
|
`'./{a..c}.md'`, `'./{01..10}.md'` (zero-padded) and `'./{1..10..2}.md'`
|
|
61
61
|
(every second value). Any other brace is literal text, so `'./br/{q}.md'`
|
|
62
|
-
names the file `br/{q}.md`, and `\{` is always a literal brace.
|
|
62
|
+
names the file `br/{q}.md`, and `\{` is always a literal brace. A `{`, `}`
|
|
63
|
+
or `[` with no partner is literal too, in a path-table and in a config
|
|
64
|
+
`[[table]] glob`.
|
|
63
65
|
|
|
64
66
|
The scan starts at the last directory named outright before the first glob
|
|
65
67
|
component, and descends only as deep as the pattern can match --
|
|
@@ -198,7 +198,7 @@ fn steps(lo: i64, hi: i64, step: i64) -> Option<impl Iterator<Item = i128>> {
|
|
|
198
198
|
|
|
199
199
|
/// Escape the braces bash left as literal text, so globset matches them
|
|
200
200
|
/// rather than reading an alternation. A complete `[...]` class is copied as
|
|
201
|
-
/// written; an unclosed
|
|
201
|
+
/// written; an unclosed `[` is a literal character.
|
|
202
202
|
fn escape_braces(word: &str) -> String {
|
|
203
203
|
let chars: Vec<char> = word.chars().collect();
|
|
204
204
|
let mut out = String::with_capacity(word.len());
|
|
@@ -222,10 +222,7 @@ fn escape_braces(word: &str) -> String {
|
|
|
222
222
|
out.extend(&chars[i..=end]);
|
|
223
223
|
resume = end + 1;
|
|
224
224
|
}
|
|
225
|
-
None =>
|
|
226
|
-
out.extend(&chars[i..]);
|
|
227
|
-
return out;
|
|
228
|
-
}
|
|
225
|
+
None => out.push_str("[[]"),
|
|
229
226
|
},
|
|
230
227
|
('{', _) => out.push_str("[{]"),
|
|
231
228
|
('}', _) => out.push_str("[}]"),
|
|
@@ -411,9 +408,18 @@ mod tests {
|
|
|
411
408
|
}
|
|
412
409
|
|
|
413
410
|
#[test]
|
|
414
|
-
fn
|
|
415
|
-
assert_eq!(escape_braces("x[{q}"), "x[{q}");
|
|
416
|
-
assert_eq!(escape_braces("x[]{"), "x[]{");
|
|
411
|
+
fn an_unclosed_bracket_is_literal() {
|
|
412
|
+
assert_eq!(escape_braces("x[{q}"), "x[[][{]q[}]");
|
|
413
|
+
assert_eq!(escape_braces("x[]{"), "x[[]][{]");
|
|
414
|
+
assert_eq!(escape_braces("[!a"), "[[]!a");
|
|
415
|
+
assert_eq!(escape_braces("a].md"), "a].md");
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
#[test]
|
|
419
|
+
fn expand_leaves_an_unpartnered_brace_literal() {
|
|
420
|
+
assert_eq!(expand("{a.md"), vec!["[{]a.md"]);
|
|
421
|
+
assert_eq!(expand("a}.md"), vec!["a[}].md"]);
|
|
422
|
+
assert_eq!(expand("{a,b}}.md"), vec!["a[}].md", "b[}].md"]);
|
|
417
423
|
}
|
|
418
424
|
|
|
419
425
|
#[test]
|
|
@@ -732,6 +732,14 @@ impl DirSQL {
|
|
|
732
732
|
if group.matcher.is_ignored(&rel_path_buf) {
|
|
733
733
|
continue;
|
|
734
734
|
}
|
|
735
|
+
if group.matcher.respects_gitignore()
|
|
736
|
+
&& scanner::is_gitignored_path(
|
|
737
|
+
&abs_path,
|
|
738
|
+
self.inner.fs.is_dir(&abs_path).unwrap_or(false),
|
|
739
|
+
)
|
|
740
|
+
{
|
|
741
|
+
continue;
|
|
742
|
+
}
|
|
735
743
|
|
|
736
744
|
// A directory that appears whole (`mkdir`, or a populated directory
|
|
737
745
|
// renamed into the tree) arrives as one event naming the directory and
|
|
@@ -1110,6 +1118,13 @@ impl DirSQL {
|
|
|
1110
1118
|
} = resolved;
|
|
1111
1119
|
|
|
1112
1120
|
let (groups, anchors, table_names) = compile_groups(&tables, &ignore, &root)?;
|
|
1121
|
+
let groups = groups
|
|
1122
|
+
.into_iter()
|
|
1123
|
+
.map(|group| AnchorGroup {
|
|
1124
|
+
matcher: group.matcher.with_gitignore(!no_ignore),
|
|
1125
|
+
..group
|
|
1126
|
+
})
|
|
1127
|
+
.collect::<Vec<_>>();
|
|
1113
1128
|
|
|
1114
1129
|
// Resolve the persistent context before scanning, so the scan can
|
|
1115
1130
|
// consult the cached file index.
|
|
@@ -2935,6 +2950,23 @@ mod internal_tests {
|
|
|
2935
2950
|
assert_eq!(found, vec!["a.txt"]);
|
|
2936
2951
|
}
|
|
2937
2952
|
|
|
2953
|
+
/// The startup walk honors `.gitignore` unless the build asked not to.
|
|
2954
|
+
#[test]
|
|
2955
|
+
fn prepare_hands_the_walk_a_matcher_that_honors_gitignore_unless_no_ignore() {
|
|
2956
|
+
let dir = TempDir::new().unwrap();
|
|
2957
|
+
for no_ignore in [false, true] {
|
|
2958
|
+
let honored = Cell::new(None);
|
|
2959
|
+
let mut resolved = resolved_over(dir.path(), vec![txt_table()], false);
|
|
2960
|
+
resolved.no_ignore = no_ignore;
|
|
2961
|
+
DirSQL::prepare_resolved_with(resolved, &|_, matcher, _| {
|
|
2962
|
+
honored.set(Some(matcher.respects_gitignore()));
|
|
2963
|
+
Vec::new()
|
|
2964
|
+
})
|
|
2965
|
+
.unwrap();
|
|
2966
|
+
assert_eq!(honored.get(), Some(!no_ignore));
|
|
2967
|
+
}
|
|
2968
|
+
}
|
|
2969
|
+
|
|
2938
2970
|
/// Skipping the walk skips only the walk: with persist on, the cache is
|
|
2939
2971
|
/// still opened and reconciled against the (empty) scan.
|
|
2940
2972
|
#[test]
|
|
@@ -97,6 +97,7 @@ pub struct TableMatcher {
|
|
|
97
97
|
entries: Vec<PatternEntry>,
|
|
98
98
|
ignore_set: Vec<Pattern>,
|
|
99
99
|
ignore_dir_set: Vec<Pattern>,
|
|
100
|
+
gitignore: bool,
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
/// Byte spans of the `{name}` placeholders in `pattern`, in order: `(start,
|
|
@@ -182,9 +183,20 @@ impl TableMatcher {
|
|
|
182
183
|
entries,
|
|
183
184
|
ignore_set,
|
|
184
185
|
ignore_dir_set,
|
|
186
|
+
gitignore: false,
|
|
185
187
|
})
|
|
186
188
|
}
|
|
187
189
|
|
|
190
|
+
/// Whether a scan under this matcher honors `.gitignore` files.
|
|
191
|
+
pub fn with_gitignore(mut self, gitignore: bool) -> Self {
|
|
192
|
+
self.gitignore = gitignore;
|
|
193
|
+
self
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
pub(crate) fn respects_gitignore(&self) -> bool {
|
|
197
|
+
self.gitignore
|
|
198
|
+
}
|
|
199
|
+
|
|
188
200
|
/// Returns one [`MatchResult`] per matching pattern, in declaration order.
|
|
189
201
|
/// A file matching N patterns yields N results (fan-out). Empty when
|
|
190
202
|
/// nothing matches.
|
|
@@ -230,6 +242,13 @@ mod tests {
|
|
|
230
242
|
assert_eq!(names(&matcher, "report.csv"), vec!["data"]);
|
|
231
243
|
}
|
|
232
244
|
|
|
245
|
+
#[test]
|
|
246
|
+
fn a_matcher_honors_gitignore_only_once_asked_to() {
|
|
247
|
+
let matcher = TableMatcher::new(&[], &[]).unwrap();
|
|
248
|
+
assert!(!matcher.respects_gitignore());
|
|
249
|
+
assert!(matcher.with_gitignore(true).respects_gitignore());
|
|
250
|
+
}
|
|
251
|
+
|
|
233
252
|
#[test]
|
|
234
253
|
fn match_all_returns_empty_for_no_match() {
|
|
235
254
|
let matcher = TableMatcher::new(&[("*.csv", "data")], &[]).unwrap();
|
|
@@ -323,7 +342,7 @@ mod tests {
|
|
|
323
342
|
|
|
324
343
|
#[test]
|
|
325
344
|
fn invalid_glob_returns_error() {
|
|
326
|
-
let result = TableMatcher::new(&[("[
|
|
345
|
+
let result = TableMatcher::new(&[("[z-a]", "t")], &[]);
|
|
327
346
|
assert!(result.is_err());
|
|
328
347
|
}
|
|
329
348
|
|
|
@@ -291,7 +291,7 @@ mod tests {
|
|
|
291
291
|
|
|
292
292
|
#[test]
|
|
293
293
|
fn parse_module_args_rejects_an_invalid_glob() {
|
|
294
|
-
let args = args_with(&[b"'/tmp'", b"'['", b"'cat'", b"'gitignore'", b"'/tmp'"]);
|
|
294
|
+
let args = args_with(&[b"'/tmp'", b"'[z-a]'", b"'cat'", b"'gitignore'", b"'/tmp'"]);
|
|
295
295
|
assert!(parse_module_args(&args).is_err());
|
|
296
296
|
}
|
|
297
297
|
|
|
@@ -93,15 +93,23 @@ fn scan_below(
|
|
|
93
93
|
) -> Vec<(PathBuf, String)> {
|
|
94
94
|
let mut results = Vec::new();
|
|
95
95
|
let mut seen: u64 = 0;
|
|
96
|
+
let gitignore = matcher.respects_gitignore();
|
|
97
|
+
let repo = if gitignore {
|
|
98
|
+
enclosing_repo(start, &holds_git)
|
|
99
|
+
} else {
|
|
100
|
+
None
|
|
101
|
+
};
|
|
96
102
|
|
|
97
103
|
// Match against relative path so globs like "comments/**/*.jsonl" work
|
|
98
104
|
// regardless of the absolute root directory.
|
|
99
105
|
let walker = Walk {
|
|
100
106
|
ignore: matcher,
|
|
101
107
|
glob: None,
|
|
102
|
-
gitignore
|
|
103
|
-
in_repo:
|
|
104
|
-
frames: Vec::new
|
|
108
|
+
gitignore,
|
|
109
|
+
in_repo: repo.is_some(),
|
|
110
|
+
frames: repo.map_or_else(Vec::new, |top| {
|
|
111
|
+
gitignores_above(start, top, &load_gitignore)
|
|
112
|
+
}),
|
|
105
113
|
dirs: false,
|
|
106
114
|
};
|
|
107
115
|
walk(
|
|
@@ -741,6 +749,26 @@ fn load_gitignore(dir: &Path) -> Option<Gitignore> {
|
|
|
741
749
|
builder.build().ok()
|
|
742
750
|
}
|
|
743
751
|
|
|
752
|
+
/// Whether the `.gitignore` files of the repo enclosing `path` ignore it, or
|
|
753
|
+
/// a directory above it, as the walk would have: for a path a watcher reports
|
|
754
|
+
/// without having walked to it.
|
|
755
|
+
pub(crate) fn is_gitignored_path(path: &Path, is_dir: bool) -> bool {
|
|
756
|
+
let Some(top) = path
|
|
757
|
+
.parent()
|
|
758
|
+
.and_then(|dir| enclosing_repo(dir, &holds_git))
|
|
759
|
+
else {
|
|
760
|
+
return false;
|
|
761
|
+
};
|
|
762
|
+
for frame in gitignores_above(path, top, &load_gitignore).iter().rev() {
|
|
763
|
+
match frame.matched_path_or_any_parents(path, is_dir) {
|
|
764
|
+
Match::Ignore(_) => return true,
|
|
765
|
+
Match::Whitelist(_) => return false,
|
|
766
|
+
Match::None => {}
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
false
|
|
770
|
+
}
|
|
771
|
+
|
|
744
772
|
/// Whether the `.gitignore` files in force mark `path` ignored. Deeper files
|
|
745
773
|
/// take precedence (git's rule), and a whitelisting `!pattern` un-ignores.
|
|
746
774
|
fn is_gitignored(frames: &[Arc<Gitignore>], path: &Path, is_dir: bool) -> bool {
|
|
@@ -1110,7 +1138,7 @@ mod tests {
|
|
|
1110
1138
|
|
|
1111
1139
|
#[test]
|
|
1112
1140
|
fn compile_glob_rejects_an_invalid_pattern() {
|
|
1113
|
-
assert!(compile_glob("[").is_err());
|
|
1141
|
+
assert!(compile_glob("[z-a]").is_err());
|
|
1114
1142
|
}
|
|
1115
1143
|
|
|
1116
1144
|
#[test]
|
|
@@ -1664,4 +1692,14 @@ mod tests {
|
|
|
1664
1692
|
let frames = [frame("", &["!keep.log"]), frame("sub", &["*.log"])];
|
|
1665
1693
|
assert!(is_gitignored(&frames, Path::new("sub/keep.log"), false));
|
|
1666
1694
|
}
|
|
1695
|
+
|
|
1696
|
+
#[test]
|
|
1697
|
+
fn is_gitignored_path_ignores_a_path_the_repo_gitignore_matches() {
|
|
1698
|
+
let repo = tempfile::tempdir().unwrap();
|
|
1699
|
+
fs::create_dir(repo.path().join(".git")).unwrap();
|
|
1700
|
+
fs::write(repo.path().join(".gitignore"), "*.log\n").unwrap();
|
|
1701
|
+
|
|
1702
|
+
assert!(is_gitignored_path(&repo.path().join("debug.log"), false));
|
|
1703
|
+
assert!(!is_gitignored_path(&repo.path().join("app.js"), false));
|
|
1704
|
+
}
|
|
1667
1705
|
}
|
|
@@ -620,7 +620,7 @@ mod tests {
|
|
|
620
620
|
|
|
621
621
|
#[test]
|
|
622
622
|
fn parse_module_args_rejects_an_invalid_glob() {
|
|
623
|
-
let args = args_with(&[b"'/tmp'", b"'['", b"''", b"'gitignore'"]);
|
|
623
|
+
let args = args_with(&[b"'/tmp'", b"'[z-a]'", b"''", b"'gitignore'"]);
|
|
624
624
|
assert!(parse_module_args(&args).is_err());
|
|
625
625
|
}
|
|
626
626
|
|
|
@@ -669,7 +669,7 @@ mod tests {
|
|
|
669
669
|
|
|
670
670
|
#[test]
|
|
671
671
|
fn compile_glob_rejects_an_invalid_pattern() {
|
|
672
|
-
let err = compile_glob("[").unwrap_err();
|
|
672
|
+
let err = compile_glob("[z-a]").unwrap_err();
|
|
673
673
|
assert!(
|
|
674
674
|
matches!(err, Error::ModuleError(_)),
|
|
675
675
|
"invalid globs surface as module errors, got {err:?}"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-29-restore-python-310.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md
RENAMED
|
File without changes
|
|
File without changes
|