dirsql 0.4.0__tar.gz → 0.4.1__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.
Files changed (208) hide show
  1. {dirsql-0.4.0 → dirsql-0.4.1}/Cargo.lock +1 -1
  2. {dirsql-0.4.0 → dirsql-0.4.1}/PKG-INFO +3 -2
  3. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/_dirsql.pyi +2 -2
  4. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/cli/binary_path.py +4 -1
  5. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/resolve_config_extensions.py +21 -3
  6. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/Cargo.toml +5 -5
  7. dirsql-0.4.1/packages/python/changelog.d/2026-07-29-restore-python-310.md +3 -0
  8. dirsql-0.4.1/packages/python/e2e-attestations/claude-tackle-698-bz6ere.json +7 -0
  9. dirsql-0.4.1/packages/python/migrations.d/2026-07-29-restore-python-310.md +50 -0
  10. {dirsql-0.4.0 → dirsql-0.4.1}/pyproject.toml +11 -2
  11. dirsql-0.4.0/packages/python/e2e-attestations/chore-681-ruff-016.json +0 -7
  12. {dirsql-0.4.0 → dirsql-0.4.1}/Cargo.toml +0 -0
  13. {dirsql-0.4.0/packages/python → dirsql-0.4.1}/README.md +0 -0
  14. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/__init__.py +0 -0
  15. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/_async.py +0 -0
  16. {dirsql-0.4.0/packages/python/tests/integration/binding → dirsql-0.4.1/dirsql/cli}/__init__.py +0 -0
  17. {dirsql-0.4.0/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture → dirsql-0.4.1/dirsql/cli/discover_plugins}/__init__.py +0 -0
  18. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
  19. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
  20. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
  21. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/cli/discover_plugins/user_passed_config.py +0 -0
  22. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
  23. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/cli/is_windows.py +0 -0
  24. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/cli/main.py +0 -0
  25. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/cli/resolve_config_extensions.py +0 -0
  26. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/py.typed +0 -0
  27. {dirsql-0.4.0 → dirsql-0.4.1}/dirsql/resolve_extension.py +0 -0
  28. {dirsql-0.4.0/packages/python → dirsql-0.4.1}/docs/.claude/CLAUDE.md +0 -0
  29. {dirsql-0.4.0/packages/python → dirsql-0.4.1}/docs/.vitepress/config.ts +0 -0
  30. {dirsql-0.4.0/packages/python → dirsql-0.4.1}/docs/.vitepress/theme/index.ts +0 -0
  31. {dirsql-0.4.0/packages/python → dirsql-0.4.1}/docs/.vitepress/theme/lang.ts +0 -0
  32. {dirsql-0.4.0/packages/python → dirsql-0.4.1}/docs/AGENTS.md +0 -0
  33. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/explanation.md +0 -0
  34. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/getting-started.md +0 -0
  35. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/columns-from-paths.md +0 -0
  36. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/define-tables.md +0 -0
  37. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/embed.md +0 -0
  38. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/extract-from-contents.md +0 -0
  39. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/load-extension.md +0 -0
  40. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/parse-files-into-columns.md +0 -0
  41. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/persist.md +0 -0
  42. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/query-without-config.md +0 -0
  43. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/react-to-changes.md +0 -0
  44. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/search-by-meaning.md +0 -0
  45. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/skip-files.md +0 -0
  46. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/howto/write-a-plugin.md +0 -0
  47. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/index.md +0 -0
  48. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/migrations.md +0 -0
  49. {dirsql-0.4.0/packages/python → dirsql-0.4.1}/docs/package.json +0 -0
  50. {dirsql-0.4.0/packages/python → dirsql-0.4.1}/docs/pnpm-lock.yaml +0 -0
  51. {dirsql-0.4.0/packages/python → dirsql-0.4.1}/docs/pnpm-workspace.yaml +0 -0
  52. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/reference/cli.md +0 -0
  53. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/reference/columns.md +0 -0
  54. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/reference/config.md +0 -0
  55. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/reference/hooks.md +0 -0
  56. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/reference/http-api.md +0 -0
  57. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/reference/path-tables.md +0 -0
  58. {dirsql-0.4.0/packages/rust → dirsql-0.4.1}/docs/reference/sdk.md +0 -0
  59. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/CHANGELOG.md +0 -0
  60. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/MIGRATIONS.md +0 -0
  61. {dirsql-0.4.0 → dirsql-0.4.1/packages/python}/README.md +0 -0
  62. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
  63. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
  64. {dirsql-0.4.0/packages/rust → dirsql-0.4.1/packages/python}/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
  65. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
  66. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
  67. {dirsql-0.4.0/packages/rust → dirsql-0.4.1/packages/python}/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
  68. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
  69. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
  70. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
  71. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/changelog.d/README.md +0 -0
  72. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/conftest.py +0 -0
  73. {dirsql-0.4.0 → dirsql-0.4.1/packages/python}/docs/.claude/CLAUDE.md +0 -0
  74. {dirsql-0.4.0 → dirsql-0.4.1/packages/python}/docs/.vitepress/config.ts +0 -0
  75. {dirsql-0.4.0 → dirsql-0.4.1/packages/python}/docs/.vitepress/theme/index.ts +0 -0
  76. {dirsql-0.4.0 → dirsql-0.4.1/packages/python}/docs/.vitepress/theme/lang.ts +0 -0
  77. {dirsql-0.4.0 → dirsql-0.4.1/packages/python}/docs/AGENTS.md +0 -0
  78. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/explanation.md +0 -0
  79. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/getting-started.md +0 -0
  80. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/columns-from-paths.md +0 -0
  81. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/define-tables.md +0 -0
  82. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/embed.md +0 -0
  83. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/extract-from-contents.md +0 -0
  84. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/load-extension.md +0 -0
  85. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
  86. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/persist.md +0 -0
  87. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/query-without-config.md +0 -0
  88. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/react-to-changes.md +0 -0
  89. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/search-by-meaning.md +0 -0
  90. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/skip-files.md +0 -0
  91. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/howto/write-a-plugin.md +0 -0
  92. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/index.md +0 -0
  93. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/migrations.md +0 -0
  94. {dirsql-0.4.0 → dirsql-0.4.1/packages/python}/docs/package.json +0 -0
  95. {dirsql-0.4.0 → dirsql-0.4.1/packages/python}/docs/pnpm-lock.yaml +0 -0
  96. {dirsql-0.4.0 → dirsql-0.4.1/packages/python}/docs/pnpm-workspace.yaml +0 -0
  97. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/reference/cli.md +0 -0
  98. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/reference/columns.md +0 -0
  99. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/reference/config.md +0 -0
  100. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/reference/hooks.md +0 -0
  101. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/reference/http-api.md +0 -0
  102. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/reference/path-tables.md +0 -0
  103. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/docs/reference/sdk.md +0 -0
  104. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
  105. {dirsql-0.4.0/packages/rust → dirsql-0.4.1/packages/python}/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
  106. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
  107. {dirsql-0.4.0/packages/rust → dirsql-0.4.1/packages/python}/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
  108. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
  109. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
  110. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
  111. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/migrations.d/README.md +0 -0
  112. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/src/lib.rs +0 -0
  113. {dirsql-0.4.0/packages/python/tests/integration/hermetic → dirsql-0.4.1/packages/python/tests}/__init__.py +0 -0
  114. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/tests/conftest.py +0 -0
  115. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/tests/e2e/__init__.py +0 -0
  116. {dirsql-0.4.0/dirsql/cli/discover_plugins → dirsql-0.4.1/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture}/__init__.py +0 -0
  117. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
  118. {dirsql-0.4.0 → dirsql-0.4.1}/packages/python/tests/integration/__init__.py +0 -0
  119. {dirsql-0.4.0/dirsql/cli → dirsql-0.4.1/packages/python/tests/integration/binding}/__init__.py +0 -0
  120. {dirsql-0.4.0/packages/python/tests → dirsql-0.4.1/packages/python/tests/integration/hermetic}/__init__.py +0 -0
  121. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/CHANGELOG.md +0 -0
  122. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/Cargo.toml +0 -0
  123. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/MIGRATIONS.md +0 -0
  124. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/README.md +0 -0
  125. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/benches/db_bench.rs +0 -0
  126. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/benches/differ_bench.rs +0 -0
  127. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/benches/matcher_bench.rs +0 -0
  128. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/benches/scanner_bench.rs +0 -0
  129. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-13-batch-ingest-transaction.md +0 -0
  130. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-13-chained-pre-post-query-hooks.md +0 -0
  131. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
  132. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-13-fan-out-file-table-matching.md +0 -0
  133. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-13-persist-wal.md +0 -0
  134. {dirsql-0.4.0/packages/python → dirsql-0.4.1/packages/rust}/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
  135. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-13-repeatable-builder-config.md +0 -0
  136. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-13-repeatable-cli-config.md +0 -0
  137. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
  138. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-13-subcommand-local-config-flags.md +0 -0
  139. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-19-path-table-query-fallback.md +0 -0
  140. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-19-path-table-vtab.md +0 -0
  141. {dirsql-0.4.0/packages/python → dirsql-0.4.1/packages/rust}/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
  142. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-20-path-table-glob-semantics.md +0 -0
  143. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-20-schema-inference.md +0 -0
  144. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-21-on-file-flag.md +0 -0
  145. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
  146. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-23-init-escalation-example.md +0 -0
  147. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-23-query-default-cli.md +0 -0
  148. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
  149. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
  150. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/changelog.d/README.md +0 -0
  151. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/explanation.md +0 -0
  152. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/getting-started.md +0 -0
  153. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/columns-from-paths.md +0 -0
  154. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/define-tables.md +0 -0
  155. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/embed.md +0 -0
  156. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/extract-from-contents.md +0 -0
  157. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/load-extension.md +0 -0
  158. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/parse-files-into-columns.md +0 -0
  159. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/persist.md +0 -0
  160. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/query-without-config.md +0 -0
  161. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/react-to-changes.md +0 -0
  162. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/search-by-meaning.md +0 -0
  163. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/skip-files.md +0 -0
  164. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/howto/write-a-plugin.md +0 -0
  165. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/index.md +0 -0
  166. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/migrations.md +0 -0
  167. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/reference/cli.md +0 -0
  168. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/reference/columns.md +0 -0
  169. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/reference/config.md +0 -0
  170. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/reference/hooks.md +0 -0
  171. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/reference/http-api.md +0 -0
  172. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/reference/path-tables.md +0 -0
  173. {dirsql-0.4.0 → dirsql-0.4.1/packages/rust}/docs/reference/sdk.md +0 -0
  174. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
  175. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-13-fan-out-file-table-matching.md +0 -0
  176. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-13-persist-wal.md +0 -0
  177. {dirsql-0.4.0/packages/python → dirsql-0.4.1/packages/rust}/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
  178. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
  179. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-13-subcommand-local-config-flags.md +0 -0
  180. {dirsql-0.4.0/packages/python → dirsql-0.4.1/packages/rust}/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
  181. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-20-path-table-glob-semantics.md +0 -0
  182. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
  183. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-23-init-escalation-example.md +0 -0
  184. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-23-query-default-cli.md +0 -0
  185. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
  186. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
  187. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/migrations.d/README.md +0 -0
  188. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/bin/dirsql.rs +0 -0
  189. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/cli/execute.rs +0 -0
  190. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/cli/init.rs +0 -0
  191. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/cli/mod.rs +0 -0
  192. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/cli/router.rs +0 -0
  193. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/cli/serialize.rs +0 -0
  194. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/cli/server.rs +0 -0
  195. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/command.rs +0 -0
  196. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/config.rs +0 -0
  197. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/db.rs +0 -0
  198. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/default_config.toml +0 -0
  199. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/differ.rs +0 -0
  200. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/infer.rs +0 -0
  201. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/lib.rs +0 -0
  202. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/matcher.rs +0 -0
  203. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/parsed_vtab.rs +0 -0
  204. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/path_table.rs +0 -0
  205. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/persist.rs +0 -0
  206. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/scanner.rs +0 -0
  207. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/vtab.rs +0 -0
  208. {dirsql-0.4.0 → dirsql-0.4.1}/packages/rust/src/watcher.rs +0 -0
@@ -500,7 +500,7 @@ dependencies = [
500
500
 
501
501
  [[package]]
502
502
  name = "dirsql-py-ext"
503
- version = "0.4.0"
503
+ version = "0.4.1"
504
504
  dependencies = [
505
505
  "dirsql",
506
506
  "pyo3",
@@ -1,11 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dirsql
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
+ Requires-Dist: tomli>=2 ; python_full_version < '3.11'
4
5
  Summary: Ephemeral SQL index over a local directory
5
6
  Keywords: sql,filesystem,directory,sqlite,index
6
7
  Author: Kevin Scott
7
8
  License-Expression: MIT
8
- Requires-Python: >=3.11
9
+ Requires-Python: >=3.10
9
10
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
10
11
 
11
12
  # `dirsql` (Python SDK)
@@ -11,9 +11,9 @@ same PR -- and ``PARITY.md`` is the canonical reminder.
11
11
 
12
12
  from collections.abc import Callable
13
13
  from os import PathLike
14
- from typing import Any, NotRequired, TypedDict
14
+ from typing import Any, TypedDict
15
15
 
16
- from typing_extensions import override
16
+ from typing_extensions import NotRequired, override
17
17
 
18
18
  __version__: str
19
19
 
@@ -9,7 +9,10 @@ from dirsql.cli.is_windows import is_windows
9
9
 
10
10
  def binary_path() -> str:
11
11
  name = "dirsql.exe" if is_windows() else "dirsql"
12
- path = files("dirsql").joinpath("_binary", name)
12
+ # Chained rather than `joinpath("_binary", name)`: multi-segment joinpath
13
+ # is 3.11+, and `files()` returns a bare `Traversable` for non-filesystem
14
+ # loaders.
15
+ path = files("dirsql").joinpath("_binary").joinpath(name)
13
16
  if not path.is_file():
14
17
  raise FileNotFoundError(
15
18
  f"bundled `{name}` not found at {path}. The dirsql PyPI wheel "
@@ -14,11 +14,29 @@ Shared by the ``DirSQL`` constructor (``config=`` path) and the CLI launcher
14
14
  from __future__ import annotations
15
15
 
16
16
  import os
17
- import tomllib
17
+ import sys
18
+ from importlib import import_module
18
19
 
19
20
  from .resolve_extension import is_bare_name, resolve_extension_path
20
21
 
21
22
 
23
+ def _load_toml_module():
24
+ """Return the TOML parser module for the running interpreter.
25
+
26
+ ``tomllib`` is stdlib only on 3.11+; on 3.10 the ``tomli`` backport it was
27
+ derived from (a version-gated dependency) provides the same surface.
28
+ Imported by name so a unit test can exercise both arms on any
29
+ interpreter -- a literal ``import tomllib`` is unreachable on 3.10 no
30
+ matter what ``sys.version_info`` claims.
31
+ """
32
+ if sys.version_info >= (3, 11):
33
+ return import_module("tomllib")
34
+ return import_module("tomli")
35
+
36
+
37
+ _toml = _load_toml_module()
38
+
39
+
22
40
  def _load_extension_entries(config_path):
23
41
  """Return ``(entries, base_dir)`` for a config's ``[[dirsql.extension]]``.
24
42
 
@@ -29,8 +47,8 @@ def _load_extension_entries(config_path):
29
47
  return None
30
48
  try:
31
49
  with open(config_path, "rb") as f:
32
- doc = tomllib.load(f)
33
- except (OSError, tomllib.TOMLDecodeError):
50
+ doc = _toml.load(f)
51
+ except (OSError, _toml.TOMLDecodeError):
34
52
  # Leave a malformed / unreadable config for the core to report.
35
53
  return None
36
54
 
@@ -4,10 +4,10 @@ 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.0"
8
- # abi3 note: the `abi3-py311` pyo3 feature (below) builds ONE stable-ABI
9
- # `cp311-abi3` wheel per platform that loads on every CPython >= 3.11
10
- # (matching `pyproject.toml`'s `requires-python = ">=3.11"`), instead of
7
+ version = "0.4.1"
8
+ # abi3 note: the `abi3-py310` pyo3 feature (below) builds ONE stable-ABI
9
+ # `cp310-abi3` wheel per platform that loads on every CPython >= 3.10
10
+ # (matching `pyproject.toml`'s `requires-python = ">=3.10"`), instead of
11
11
  # one wheel per interpreter. putitoutthere's `wheel-abi` detector (#401)
12
12
  # reads the abi3 feature straight off this direct `pyo3` dependency and
13
13
  # collapses the per-version build fan to a single wheel -- no
@@ -23,7 +23,7 @@ crate-type = ["cdylib", "rlib"]
23
23
 
24
24
  [dependencies]
25
25
  dirsql.workspace = true
26
- pyo3 = { version = "0.28", features = ["extension-module", "generate-import-lib", "abi3-py311"], optional = true }
26
+ pyo3 = { version = "0.28", features = ["extension-module", "generate-import-lib", "abi3-py310"], optional = true }
27
27
 
28
28
  [features]
29
29
  default = []
@@ -0,0 +1,3 @@
1
+ **Added**
2
+
3
+ - **Python 3.10 is supported again.** `requires-python` drops back to `>=3.10`, reversing the 0.3.6 raise to `>=3.11` — that raise was release tooling, not the API, and putitoutthere#401 cleared it by collapsing dirsql's abi3 wheel to a single row built on the newest interpreter. The pyo3 feature moves `abi3-py311` → `abi3-py310` in lock-step, so the wheel tag becomes `cp310-abi3` and still loads on every CPython from 3.10 up. `resolve_config_extensions` picks up the `tomli` backport (a new `python_version < "3.11"` dependency) since `tomllib` is stdlib only on 3.11+, and `binary_path` stops relying on 3.11's multi-segment `Traversable.joinpath`. The unit / integration / binding CI matrices gain a 3.10 leg so the declared floor is exercised rather than asserted. (#698)
@@ -0,0 +1,7 @@
1
+ {
2
+ "command": "uv run python -m pytest tests/e2e/ -x -q",
3
+ "ran_at": 1785328821,
4
+ "exit_code": 0,
5
+ "commit": "a133d0f16d5e9d1b3892b3854f52eac535a9012f",
6
+ "branch": "claude/tackle-698-bz6ere"
7
+ }
@@ -0,0 +1,50 @@
1
+ ### Python 3.10 support restored (#698)
2
+
3
+ #### Summary
4
+
5
+ `requires-python` is lowered from `>=3.11` back to `>=3.10`, reversing the drop
6
+ made in 0.3.6 ("Python 3.10 support dropped"). No public API changes: this is a
7
+ packaging/installability change plus the wheel-tag change that follows it.
8
+
9
+ The 0.3.6 drop was forced by release tooling, not by the codebase — putitoutthere's
10
+ multi-version wheel fan ran an `import tomllib` verify step on every row, so the
11
+ 3.10 row crashed the release build. Since putitoutthere#401 a wheel detected as
12
+ Python-version-independent (dirsql's pyo3 `abi3-pyXY` feature, read off
13
+ `packages/python/Cargo.toml`) collapses to a single wheel row built on the
14
+ **newest** resolved interpreter, so that verify step never runs on 3.10 again.
15
+
16
+ #### Required changes
17
+
18
+ _None._ Every 3.11+ install keeps resolving and installing exactly as before.
19
+
20
+ | Before | After | Action |
21
+ | ------ | ----- | ------ |
22
+ | `pip install dirsql` on 3.10 → `Requires-Python >=3.11`, no candidate | resolves and installs | None — upgrading Python is no longer required. |
23
+ | Wheel filename `…-cp311-abi3-<platform>.whl` | `…-cp310-abi3-<platform>.whl` | Only if you **pin or hash exact wheel filenames** (lockfile with hashes, vendored artifact mirror, CI cache key): re-resolve so the new `cp310-abi3` name is recorded. |
24
+
25
+ #### Deprecations removed
26
+
27
+ _None._
28
+
29
+ #### Behavior changes without code changes
30
+
31
+ - Installs now succeed on CPython 3.10; the package previously refused to
32
+ resolve there.
33
+ - The published wheel is tagged `cp310-abi3` instead of `cp311-abi3`. It is
34
+ still one stable-ABI wheel per platform, loadable on every CPython from the
35
+ tagged version up — 3.11 through 3.14 keep installing the same artifact shape.
36
+ - On 3.10 only, `dirsql` pulls in one new runtime dependency, `tomli>=2` (the
37
+ backport `tomllib` was derived from). It is not installed on 3.11+.
38
+
39
+ #### Verification
40
+
41
+ ```console
42
+ $ python3.10 -m pip install dirsql
43
+ $ python3.10 -c "import dirsql; print(dirsql.__version__)"
44
+ ```
45
+
46
+ ```python
47
+ # On 3.10 the config parser transparently uses the backport:
48
+ import dirsql.resolve_config_extensions as rce
49
+ print(rce._toml.__name__) # -> 'tomli' on 3.10, 'tomllib' on 3.11+
50
+ ```
@@ -11,13 +11,19 @@ name = "dirsql"
11
11
  dynamic = ["version"]
12
12
  description = "Ephemeral SQL index over a local directory"
13
13
  license = "MIT"
14
- requires-python = ">=3.11"
14
+ requires-python = ">=3.10"
15
15
  authors = [
16
16
  { name = "Kevin Scott" },
17
17
  ]
18
18
  repository = "https://github.com/thekevinscott/dirsql"
19
19
  keywords = ["sql", "filesystem", "directory", "sqlite", "index"]
20
20
  readme = "README.md"
21
+ dependencies = [
22
+ # `tomllib` is stdlib only on 3.11+; `resolve_config_extensions` falls back
23
+ # to the backport it was derived from. Drop this the day the floor reaches
24
+ # 3.11 again.
25
+ 'tomli>=2; python_version < "3.11"',
26
+ ]
21
27
 
22
28
  # Dev/test dependencies live in a PEP 735 dependency-group (not a
23
29
  # `[project.optional-dependencies]` extra) so a plain `uv sync` installs them
@@ -90,7 +96,10 @@ exclude = [
90
96
  ]
91
97
 
92
98
  [tool.ty.environment]
93
- python-version = "3.11"
99
+ # Tracks `requires-python`: type-check against the FLOOR so a 3.11-only symbol
100
+ # (`tomllib`, `StrEnum`, `typing.Self`) fails here rather than at a user's
101
+ # import on the oldest supported interpreter.
102
+ python-version = "3.10"
94
103
 
95
104
  # ruff 0.16.0 formats Python code blocks in Markdown by default. Keep ruff
96
105
  # scoped to Python source (its effective scope under the prior pin): the README
@@ -1,7 +0,0 @@
1
- {
2
- "command": "just test-e2e",
3
- "ran_at": 1785113998,
4
- "exit_code": 0,
5
- "commit": "d26765dc31e8a9e47df429bb81c0aedb05dc6a21",
6
- "branch": "chore/681-ruff-016"
7
- }
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