egglog 8.0.1__tar.gz → 9.0.0__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.

Potentially problematic release.


This version of egglog might be problematic. Click here for more details.

Files changed (150) hide show
  1. {egglog-8.0.1 → egglog-9.0.0}/.github/dependabot.yml +13 -16
  2. {egglog-8.0.1 → egglog-9.0.0}/.github/workflows/CI.yml +7 -5
  3. {egglog-8.0.1 → egglog-9.0.0}/.github/workflows/version.yml +50 -6
  4. {egglog-8.0.1 → egglog-9.0.0}/.pre-commit-config.yaml +6 -1
  5. {egglog-8.0.1 → egglog-9.0.0}/Cargo.lock +236 -365
  6. egglog-9.0.0/Cargo.toml +35 -0
  7. {egglog-8.0.1 → egglog-9.0.0}/PKG-INFO +7 -4
  8. {egglog-8.0.1 → egglog-9.0.0}/docs/changelog.md +181 -0
  9. {egglog-8.0.1 → egglog-9.0.0}/docs/how-to-guides.md +2 -2
  10. {egglog-8.0.1 → egglog-9.0.0}/docs/reference/bindings.md +1 -1
  11. {egglog-8.0.1 → egglog-9.0.0}/docs/reference/contributing.md +1 -1
  12. {egglog-8.0.1 → egglog-9.0.0}/docs/reference/egglog-translation.md +10 -3
  13. {egglog-8.0.1 → egglog-9.0.0}/pyproject.toml +21 -9
  14. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/__init__.py +1 -1
  15. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/bindings.pyi +199 -119
  16. egglog-9.0.0/python/egglog/builtins.py +1045 -0
  17. egglog-9.0.0/python/egglog/conversion.py +262 -0
  18. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/declarations.py +137 -96
  19. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/egraph.py +489 -622
  20. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/egraph_state.py +143 -79
  21. egglog-9.0.0/python/egglog/examples/bignum.py +31 -0
  22. egglog-9.0.0/python/egglog/examples/multiset.py +61 -0
  23. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/exp/array_api.py +730 -347
  24. egglog-9.0.0/python/egglog/exp/array_api_jit.py +44 -0
  25. egglog-9.0.0/python/egglog/exp/array_api_loopnest.py +74 -0
  26. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/exp/array_api_numba.py +8 -11
  27. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/exp/array_api_program_gen.py +59 -57
  28. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/exp/program_gen.py +48 -13
  29. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/exp/siu_examples.py +6 -9
  30. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/functionalize.py +1 -1
  31. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/pretty.py +16 -24
  32. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/runtime.py +124 -55
  33. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/type_constraint_solver.py +19 -49
  34. egglog-9.0.0/python/egglog/visualizer.css +1 -0
  35. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/visualizer.js +11 -8
  36. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/visualizer_widget.py +2 -2
  37. egglog-9.0.0/python/tests/__snapshots__/test_array_api/TestLoopNest.test_index_codegen[code].py +8 -0
  38. egglog-9.0.0/python/tests/__snapshots__/test_array_api/TestLoopNest.test_index_codegen[expr].py +13 -0
  39. egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_jit[add][code].py +3 -0
  40. egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_jit[add][expr].py +1 -0
  41. egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_jit[add][initial_expr].py +1 -0
  42. egglog-8.0.1/python/tests/__snapshots__/test_array_api/TestLDA.test_source_optimized.py → egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_jit[lda][code].py +7 -7
  43. egglog-8.0.1/python/tests/__snapshots__/test_array_api/TestLDA.test_optimize.py → egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_jit[lda][expr].py +23 -10
  44. egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_jit[lda][initial_expr].py +112 -0
  45. egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_jit[tuple][code].py +2 -0
  46. egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_jit[tuple][expr].py +1 -0
  47. egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_jit[tuple][initial_expr].py +1 -0
  48. egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_program_compile[tuple][code].py +2 -0
  49. egglog-9.0.0/python/tests/__snapshots__/test_array_api/test_program_compile[tuple][expr].py +1 -0
  50. {egglog-8.0.1 → egglog-9.0.0}/python/tests/__snapshots__/test_bindings/TestEGraph.test_parse_program.py +14 -14
  51. egglog-9.0.0/python/tests/__snapshots__/test_program_gen/test_to_string_function_three.py +8 -0
  52. {egglog-8.0.1 → egglog-9.0.0}/python/tests/conftest.py +2 -2
  53. egglog-9.0.0/python/tests/test_array_api.py +381 -0
  54. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_bindings.py +11 -37
  55. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_convert.py +66 -10
  56. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_high_level.py +149 -61
  57. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_pretty.py +17 -1
  58. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_program_gen.py +25 -8
  59. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_py_object_sort.py +21 -10
  60. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_runtime.py +3 -3
  61. egglog-9.0.0/python/tests/test_type_constraint_solver.py +53 -0
  62. egglog-9.0.0/rust-toolchain.toml +2 -0
  63. {egglog-8.0.1 → egglog-9.0.0}/src/conversions.rs +100 -80
  64. egglog-9.0.0/src/egraph.rs +136 -0
  65. {egglog-8.0.1 → egglog-9.0.0}/src/error.rs +8 -0
  66. egglog-9.0.0/src/lib.rs +26 -0
  67. {egglog-8.0.1 → egglog-9.0.0}/src/py_object_sort.rs +126 -44
  68. egglog-9.0.0/src/termdag.rs +107 -0
  69. {egglog-8.0.1 → egglog-9.0.0}/src/utils.rs +26 -24
  70. {egglog-8.0.1 → egglog-9.0.0}/stubtest_allow +2 -0
  71. {egglog-8.0.1 → egglog-9.0.0}/test-data/unit/check-high-level.test +4 -4
  72. {egglog-8.0.1 → egglog-9.0.0}/uv.lock +610 -155
  73. egglog-8.0.1/Cargo.toml +0 -38
  74. egglog-8.0.1/python/egglog/builtins.py +0 -546
  75. egglog-8.0.1/python/egglog/conversion.py +0 -200
  76. egglog-8.0.1/python/egglog/exp/array_api_jit.py +0 -33
  77. egglog-8.0.1/python/egglog/exp/array_api_loopnest.py +0 -149
  78. egglog-8.0.1/python/egglog/visualizer.css +0 -1
  79. egglog-8.0.1/python/tests/__init__.py +0 -1
  80. egglog-8.0.1/python/tests/__snapshots__/test_array_api/TestLDA.test_trace.py +0 -77
  81. egglog-8.0.1/python/tests/test_array_api.py +0 -203
  82. egglog-8.0.1/python/tests/test_modules.py +0 -43
  83. egglog-8.0.1/python/tests/test_type_constraint_solver.py +0 -60
  84. egglog-8.0.1/rust-toolchain.toml +0 -2
  85. egglog-8.0.1/src/egraph.rs +0 -206
  86. egglog-8.0.1/src/lib.rs +0 -44
  87. {egglog-8.0.1 → egglog-9.0.0}/.gitignore +0 -0
  88. {egglog-8.0.1 → egglog-9.0.0}/.python-version +0 -0
  89. {egglog-8.0.1 → egglog-9.0.0}/.readthedocs.yaml +0 -0
  90. {egglog-8.0.1 → egglog-9.0.0}/CITATION.cff +0 -0
  91. {egglog-8.0.1 → egglog-9.0.0}/LICENSE +0 -0
  92. {egglog-8.0.1 → egglog-9.0.0}/Makefile +0 -0
  93. {egglog-8.0.1 → egglog-9.0.0}/README.md +0 -0
  94. {egglog-8.0.1 → egglog-9.0.0}/conftest.py +0 -0
  95. {egglog-8.0.1 → egglog-9.0.0}/docs/.gitignore +0 -0
  96. {egglog-8.0.1 → egglog-9.0.0}/docs/_templates/comments.html +0 -0
  97. {egglog-8.0.1 → egglog-9.0.0}/docs/conf.py +0 -0
  98. {egglog-8.0.1 → egglog-9.0.0}/docs/environment.yml +0 -0
  99. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/.gitignore +0 -0
  100. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/2023_07_presentation.ipynb +0 -0
  101. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/2023_11_09_portland_state.ipynb +0 -0
  102. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/2023_11_17_pytensor.ipynb +0 -0
  103. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/2023_11_pydata_lightning_talk.ipynb +0 -0
  104. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/2023_12_02_congruence_closure-1.png +0 -0
  105. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/2023_12_02_congruence_closure-2.png +0 -0
  106. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/2023_12_02_congruence_closure.md +0 -0
  107. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/2024_03_17_community_talk.ipynb +0 -0
  108. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/2024_03_17_map.svg +0 -0
  109. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/big_graph.svg +0 -0
  110. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/define_and_define.md +0 -0
  111. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/ecosystem-graph.png +0 -0
  112. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/egg.png +0 -0
  113. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/indexing_pushdown.ipynb +0 -0
  114. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/moa.png +0 -0
  115. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/optional_values.md +0 -0
  116. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation/pldi_2023_presentation.ipynb +0 -0
  117. {egglog-8.0.1 → egglog-9.0.0}/docs/explanation.md +0 -0
  118. {egglog-8.0.1 → egglog-9.0.0}/docs/index.md +0 -0
  119. {egglog-8.0.1 → egglog-9.0.0}/docs/reference/high-level.md +0 -0
  120. {egglog-8.0.1 → egglog-9.0.0}/docs/reference/python-integration.md +0 -0
  121. {egglog-8.0.1 → egglog-9.0.0}/docs/reference/usage.md +0 -0
  122. {egglog-8.0.1 → egglog-9.0.0}/docs/reference.md +0 -0
  123. {egglog-8.0.1 → egglog-9.0.0}/docs/tutorials/getting-started.ipynb +0 -0
  124. {egglog-8.0.1 → egglog-9.0.0}/docs/tutorials/screenshot-1.png +0 -0
  125. {egglog-8.0.1 → egglog-9.0.0}/docs/tutorials/screenshot-2.png +0 -0
  126. {egglog-8.0.1 → egglog-9.0.0}/docs/tutorials/sklearn.ipynb +0 -0
  127. {egglog-8.0.1 → egglog-9.0.0}/docs/tutorials.md +0 -0
  128. {egglog-8.0.1 → egglog-9.0.0}/increment_version.py +0 -0
  129. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/config.py +0 -0
  130. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/README.rst +0 -0
  131. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/__init__.py +0 -0
  132. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/bool.py +0 -0
  133. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/eqsat_basic.py +0 -0
  134. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/fib.py +0 -0
  135. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/higher_order_functions.py +0 -0
  136. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/lambda_.py +0 -0
  137. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/matrix.py +0 -0
  138. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/ndarrays.py +0 -0
  139. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/resolution.py +0 -0
  140. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/examples/schedule_demo.py +0 -0
  141. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/exp/__init__.py +0 -0
  142. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/ipython_magic.py +0 -0
  143. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/py.typed +0 -0
  144. {egglog-8.0.1 → egglog-9.0.0}/python/egglog/thunk.py +0 -0
  145. {egglog-8.0.1 → egglog-9.0.0}/python/tests/__snapshots__/test_program_gen/test_to_string.py +0 -0
  146. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_functionalize.py +0 -0
  147. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_no_import_star.py +0 -0
  148. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_typing.py +0 -0
  149. {egglog-8.0.1 → egglog-9.0.0}/python/tests/test_unstable_fn.py +0 -0
  150. {egglog-8.0.1 → egglog-9.0.0}/src/serialize.rs +0 -0
@@ -8,27 +8,24 @@ updates:
8
8
  - package-ecosystem: "cargo"
9
9
  directory: "/"
10
10
  schedule:
11
- interval: "weekly"
11
+ interval: "daily"
12
12
  groups:
13
- rust-production:
14
- dependency-type: "production"
15
- rust-development:
16
- dependency-type: "development"
13
+ rust:
14
+ patterns:
15
+ - "*"
17
16
  - package-ecosystem: "github-actions"
18
17
  directory: "/"
19
18
  schedule:
20
- interval: "weekly"
19
+ interval: "daily"
21
20
  groups:
22
- actions-production:
23
- dependency-type: "production"
24
- actions-development:
25
- dependency-type: "development"
26
- - package-ecosystem: "pip"
21
+ actions:
22
+ patterns:
23
+ - "*"
24
+ - package-ecosystem: "uv"
27
25
  directory: "/"
28
26
  schedule:
29
- interval: "weekly"
27
+ interval: "daily"
30
28
  groups:
31
- python-production:
32
- dependency-type: "production"
33
- python-development:
34
- dependency-type: "development"
29
+ python:
30
+ patterns:
31
+ - "*"
@@ -20,12 +20,13 @@ jobs:
20
20
  fail-fast: false
21
21
  matrix:
22
22
  py:
23
+ - "3.13"
23
24
  - "3.12"
24
25
  - "3.11"
25
26
  - "3.10"
26
27
  steps:
27
28
  - uses: actions/checkout@v4
28
- - uses: astral-sh/setup-uv@v3
29
+ - uses: astral-sh/setup-uv@v5
29
30
  with:
30
31
  enable-cache: true
31
32
  - uses: dtolnay/rust-toolchain@1.79.0
@@ -35,12 +36,13 @@ jobs:
35
36
  with:
36
37
  python-version: ${{ matrix.py }}
37
38
  - run: uv sync --extra test --locked
38
- - run: uv run pytest --benchmark-disable -vvv
39
+ - run: uv run pytest --benchmark-disable -vvv --durations=10
40
+
39
41
  mypy:
40
42
  runs-on: ubuntu-latest
41
43
  steps:
42
44
  - uses: actions/checkout@v4
43
- - uses: astral-sh/setup-uv@v3
45
+ - uses: astral-sh/setup-uv@v5
44
46
  with:
45
47
  enable-cache: true
46
48
  - uses: dtolnay/rust-toolchain@1.79.0
@@ -57,7 +59,7 @@ jobs:
57
59
  runs-on: ubuntu-latest
58
60
  steps:
59
61
  - uses: actions/checkout@v4
60
- - uses: astral-sh/setup-uv@v3
62
+ - uses: astral-sh/setup-uv@v5
61
63
  with:
62
64
  enable-cache: true
63
65
  - uses: dtolnay/rust-toolchain@1.79.0
@@ -76,7 +78,7 @@ jobs:
76
78
  runs-on: ubuntu-latest
77
79
  steps:
78
80
  - uses: actions/checkout@v4
79
- - uses: astral-sh/setup-uv@v3
81
+ - uses: astral-sh/setup-uv@v5
80
82
  with:
81
83
  enable-cache: true
82
84
  - uses: dtolnay/rust-toolchain@1.79.0
@@ -11,6 +11,10 @@
11
11
  # This seperates the release process from the test process, so we can still release if we need to and tests are failing
12
12
  name: Bump Version
13
13
  on:
14
+ push:
15
+ branches:
16
+ - main
17
+ pull_request:
14
18
  workflow_dispatch:
15
19
  inputs:
16
20
  type:
@@ -27,6 +31,7 @@ jobs:
27
31
  bump:
28
32
  runs-on: ubuntu-latest
29
33
  permissions: write-all
34
+ if: github.event_name == 'workflow_dispatch'
30
35
  outputs:
31
36
  version: ${{ steps.bump.outputs.version }}
32
37
  steps:
@@ -45,17 +50,48 @@ jobs:
45
50
  TYPE: ${{ inputs.type }}
46
51
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47
52
 
53
+ linux-cross:
54
+ name: build linux
55
+ runs-on: ubuntu-latest
56
+ strategy:
57
+ matrix:
58
+ target: [aarch64, ppc64]
59
+ needs: [bump]
60
+ if: ${{ always() }}
61
+ steps:
62
+ - uses: actions/checkout@v4
63
+ if: ${{ needs.bump.result == 'success' }}
64
+ with:
65
+ ref: version-${{ needs.bump.outputs.version }}
66
+ - uses: actions/checkout@v4
67
+ if: ${{ needs.bump.result == 'skipped' }}
68
+ - uses: PyO3/maturin-action@v1.47.3
69
+ with:
70
+ target: ${{ matrix.target }}
71
+ manylinux: auto
72
+ command: build
73
+ args: --release --sdist -o dist --find-interpreter
74
+ - name: Upload wheels
75
+ uses: actions/upload-artifact@v4
76
+ with:
77
+ name: wheels-linux-${{ matrix.target }}
78
+ path: dist
79
+
48
80
  linux:
49
81
  name: build linux
50
82
  runs-on: ubuntu-latest
51
83
  needs: [bump]
84
+ if: ${{ always() }}
52
85
  steps:
53
86
  - uses: actions/checkout@v4
87
+ if: ${{ needs.bump.result == 'success' }}
54
88
  with:
55
89
  ref: version-${{ needs.bump.outputs.version }}
90
+ - uses: actions/checkout@v4
91
+ if: ${{ needs.bump.result == 'skipped' }}
56
92
  - name: Setup QEMU
57
93
  uses: docker/setup-qemu-action@v3
58
- - uses: PyO3/maturin-action@v1.45.0
94
+ - uses: PyO3/maturin-action@v1.47.3
59
95
  with:
60
96
  manylinux: auto
61
97
  command: build
@@ -70,11 +106,15 @@ jobs:
70
106
  name: build windows
71
107
  runs-on: windows-latest
72
108
  needs: [bump]
109
+ if: ${{ always() }}
73
110
  steps:
74
111
  - uses: actions/checkout@v4
112
+ if: ${{ needs.bump.result == 'success' }}
75
113
  with:
76
114
  ref: version-${{ needs.bump.outputs.version }}
77
- - uses: PyO3/maturin-action@v1.45.0
115
+ - uses: actions/checkout@v4
116
+ if: ${{ needs.bump.result == 'skipped' }}
117
+ - uses: PyO3/maturin-action@v1.47.3
78
118
  with:
79
119
  command: build
80
120
  args: --release -o dist --find-interpreter
@@ -88,11 +128,15 @@ jobs:
88
128
  name: build macos
89
129
  runs-on: macos-latest
90
130
  needs: [bump]
131
+ if: ${{ always() }}
91
132
  steps:
92
133
  - uses: actions/checkout@v4
134
+ if: ${{ needs.bump.result == 'success' }}
93
135
  with:
94
136
  ref: version-${{ needs.bump.outputs.version }}
95
- - uses: PyO3/maturin-action@v1.45.0
137
+ - uses: actions/checkout@v4
138
+ if: ${{ needs.bump.result == 'skipped' }}
139
+ - uses: PyO3/maturin-action@v1.47.3
96
140
  with:
97
141
  command: build
98
142
  target: universal2-apple-darwin
@@ -107,14 +151,14 @@ jobs:
107
151
  name: Release
108
152
  runs-on: ubuntu-latest
109
153
  if: startsWith(github.ref, 'refs/tags/') || (github.event_name == 'workflow_dispatch')
110
- needs: [macos, windows, linux]
154
+ needs: [macos, windows, linux, linux-cross, bump]
111
155
  steps:
112
156
  - uses: actions/download-artifact@v4
113
157
  with:
114
158
  pattern: wheels-*
115
159
  merge-multiple: true
116
160
  - name: Publish to PyPI
117
- uses: PyO3/maturin-action@v1.45.0
161
+ uses: PyO3/maturin-action@v1.47.3
118
162
  env:
119
163
  MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
120
164
  with:
@@ -131,7 +175,7 @@ jobs:
131
175
  - run: |
132
176
  git tag "v$VERSION"
133
177
  git push --tags
134
- gh pr merge --admin --delete-branch --merge --auto
178
+ gh pr merge --delete-branch --merge --auto
135
179
  env:
136
180
  VERSION: ${{ needs.bump.outputs.version }}
137
181
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,8 +1,13 @@
1
1
  exclude: ^python/tests/__snapshots__/
2
2
  repos:
3
3
  - repo: https://github.com/astral-sh/ruff-pre-commit
4
- rev: v0.7.0
4
+ rev: v0.11.0
5
5
  hooks:
6
6
  - id: ruff
7
7
  args: [--fix, --exit-non-zero-on-fix]
8
8
  - id: ruff-format
9
+ - repo: https://github.com/astral-sh/uv-pre-commit
10
+ # uv version.
11
+ rev: 0.6.8
12
+ hooks:
13
+ - id: uv-lock