egglog 8.0.0__tar.gz → 8.0.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.

Potentially problematic release.


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

Files changed (132) hide show
  1. {egglog-8.0.0 → egglog-8.0.1}/.github/workflows/CI.yml +32 -20
  2. {egglog-8.0.0 → egglog-8.0.1}/.github/workflows/version.yml +6 -6
  3. {egglog-8.0.0 → egglog-8.0.1}/.gitignore +0 -1
  4. egglog-8.0.1/.pre-commit-config.yaml +8 -0
  5. egglog-8.0.1/.python-version +1 -0
  6. {egglog-8.0.0 → egglog-8.0.1}/.readthedocs.yaml +8 -15
  7. {egglog-8.0.0 → egglog-8.0.1}/Cargo.lock +86 -53
  8. {egglog-8.0.0 → egglog-8.0.1}/Cargo.toml +11 -15
  9. {egglog-8.0.0 → egglog-8.0.1}/Makefile +16 -0
  10. {egglog-8.0.0 → egglog-8.0.1}/PKG-INFO +2 -2
  11. {egglog-8.0.0 → egglog-8.0.1}/docs/changelog.md +6 -0
  12. egglog-8.0.1/docs/explanation/2023_07_presentation.ipynb +12102 -0
  13. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/2023_11_09_portland_state.ipynb +9 -9
  14. egglog-8.0.1/docs/explanation/2023_11_17_pytensor.ipynb +2530 -0
  15. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/2023_11_pydata_lightning_talk.ipynb +12 -14
  16. egglog-8.0.1/docs/explanation/pldi_2023_presentation.ipynb +4930 -0
  17. egglog-8.0.1/docs/how-to-guides.md +21 -0
  18. {egglog-8.0.0 → egglog-8.0.1}/docs/reference/bindings.md +1 -1
  19. {egglog-8.0.0 → egglog-8.0.1}/docs/reference/contributing.md +9 -11
  20. {egglog-8.0.0 → egglog-8.0.1}/docs/tutorials/getting-started.ipynb +4 -13
  21. egglog-8.0.1/docs/tutorials/sklearn.ipynb +6640 -0
  22. {egglog-8.0.0 → egglog-8.0.1}/pyproject.toml +21 -2
  23. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/bindings.pyi +49 -35
  24. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/conversion.py +1 -1
  25. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/declarations.py +1 -2
  26. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/egraph.py +23 -10
  27. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/egraph_state.py +12 -5
  28. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/higher_order_functions.py +1 -1
  29. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/exp/array_api.py +17 -14
  30. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/exp/array_api_jit.py +4 -5
  31. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/exp/array_api_loopnest.py +15 -11
  32. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/exp/array_api_program_gen.py +11 -13
  33. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/exp/program_gen.py +23 -17
  34. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/ipython_magic.py +1 -1
  35. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/pretty.py +4 -4
  36. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/runtime.py +1 -1
  37. egglog-8.0.1/python/egglog/visualizer.css +1 -0
  38. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/visualizer.js +1658 -1637
  39. {egglog-8.0.0 → egglog-8.0.1}/python/tests/__snapshots__/test_bindings/TestEGraph.test_parse_program.py +60 -4
  40. {egglog-8.0.0 → egglog-8.0.1}/python/tests/conftest.py +1 -1
  41. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_array_api.py +69 -33
  42. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_bindings.py +22 -19
  43. egglog-8.0.1/python/tests/test_no_import_star.py +12 -0
  44. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_program_gen.py +5 -4
  45. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_typing.py +1 -1
  46. egglog-8.0.1/rust-toolchain.toml +2 -0
  47. {egglog-8.0.0 → egglog-8.0.1}/src/conversions.rs +73 -61
  48. {egglog-8.0.0 → egglog-8.0.1}/src/egraph.rs +6 -19
  49. {egglog-8.0.0 → egglog-8.0.1}/src/lib.rs +11 -3
  50. {egglog-8.0.0 → egglog-8.0.1}/src/py_object_sort.rs +20 -21
  51. {egglog-8.0.0 → egglog-8.0.1}/src/serialize.rs +2 -2
  52. {egglog-8.0.0 → egglog-8.0.1}/stubtest_allow +0 -1
  53. egglog-8.0.1/uv.lock +2819 -0
  54. egglog-8.0.0/.pre-commit-config.yaml +0 -39
  55. egglog-8.0.0/docs/explanation/2023_07_presentation.ipynb +0 -12126
  56. egglog-8.0.0/docs/explanation/2023_11_17_pytensor.ipynb +0 -2552
  57. egglog-8.0.0/docs/explanation/pldi_2023_presentation.ipynb +0 -4951
  58. egglog-8.0.0/docs/how-to-guides.md +0 -30
  59. egglog-8.0.0/docs/tutorials/sklearn.ipynb +0 -6639
  60. egglog-8.0.0/python/egglog/visualizer.css +0 -1
  61. egglog-8.0.0/rust-toolchain.toml +0 -2
  62. {egglog-8.0.0 → egglog-8.0.1}/.github/dependabot.yml +0 -0
  63. {egglog-8.0.0 → egglog-8.0.1}/CITATION.cff +0 -0
  64. {egglog-8.0.0 → egglog-8.0.1}/LICENSE +0 -0
  65. {egglog-8.0.0 → egglog-8.0.1}/README.md +0 -0
  66. {egglog-8.0.0 → egglog-8.0.1}/conftest.py +0 -0
  67. {egglog-8.0.0 → egglog-8.0.1}/docs/.gitignore +0 -0
  68. {egglog-8.0.0 → egglog-8.0.1}/docs/_templates/comments.html +0 -0
  69. {egglog-8.0.0 → egglog-8.0.1}/docs/conf.py +0 -0
  70. {egglog-8.0.0 → egglog-8.0.1}/docs/environment.yml +0 -0
  71. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/.gitignore +0 -0
  72. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/2023_12_02_congruence_closure-1.png +0 -0
  73. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/2023_12_02_congruence_closure-2.png +0 -0
  74. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/2023_12_02_congruence_closure.md +0 -0
  75. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/2024_03_17_community_talk.ipynb +0 -0
  76. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/2024_03_17_map.svg +0 -0
  77. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/big_graph.svg +0 -0
  78. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/define_and_define.md +0 -0
  79. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/ecosystem-graph.png +0 -0
  80. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/egg.png +0 -0
  81. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/indexing_pushdown.ipynb +0 -0
  82. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/moa.png +0 -0
  83. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation/optional_values.md +0 -0
  84. {egglog-8.0.0 → egglog-8.0.1}/docs/explanation.md +0 -0
  85. {egglog-8.0.0 → egglog-8.0.1}/docs/index.md +0 -0
  86. {egglog-8.0.0 → egglog-8.0.1}/docs/reference/egglog-translation.md +0 -0
  87. {egglog-8.0.0 → egglog-8.0.1}/docs/reference/high-level.md +0 -0
  88. {egglog-8.0.0 → egglog-8.0.1}/docs/reference/python-integration.md +0 -0
  89. {egglog-8.0.0 → egglog-8.0.1}/docs/reference/usage.md +0 -0
  90. {egglog-8.0.0 → egglog-8.0.1}/docs/reference.md +0 -0
  91. {egglog-8.0.0 → egglog-8.0.1}/docs/tutorials/screenshot-1.png +0 -0
  92. {egglog-8.0.0 → egglog-8.0.1}/docs/tutorials/screenshot-2.png +0 -0
  93. {egglog-8.0.0 → egglog-8.0.1}/docs/tutorials.md +0 -0
  94. {egglog-8.0.0 → egglog-8.0.1}/increment_version.py +0 -0
  95. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/__init__.py +0 -0
  96. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/builtins.py +0 -0
  97. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/config.py +0 -0
  98. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/README.rst +0 -0
  99. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/__init__.py +0 -0
  100. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/bool.py +0 -0
  101. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/eqsat_basic.py +0 -0
  102. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/fib.py +0 -0
  103. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/lambda_.py +0 -0
  104. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/matrix.py +0 -0
  105. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/ndarrays.py +0 -0
  106. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/resolution.py +0 -0
  107. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/examples/schedule_demo.py +0 -0
  108. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/exp/__init__.py +0 -0
  109. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/exp/array_api_numba.py +0 -0
  110. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/exp/siu_examples.py +0 -0
  111. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/functionalize.py +0 -0
  112. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/py.typed +0 -0
  113. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/thunk.py +0 -0
  114. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/type_constraint_solver.py +0 -0
  115. {egglog-8.0.0 → egglog-8.0.1}/python/egglog/visualizer_widget.py +0 -0
  116. {egglog-8.0.0 → egglog-8.0.1}/python/tests/__init__.py +0 -0
  117. {egglog-8.0.0 → egglog-8.0.1}/python/tests/__snapshots__/test_array_api/TestLDA.test_optimize.py +0 -0
  118. {egglog-8.0.0 → egglog-8.0.1}/python/tests/__snapshots__/test_array_api/TestLDA.test_source_optimized.py +0 -0
  119. {egglog-8.0.0 → egglog-8.0.1}/python/tests/__snapshots__/test_array_api/TestLDA.test_trace.py +0 -0
  120. {egglog-8.0.0 → egglog-8.0.1}/python/tests/__snapshots__/test_program_gen/test_to_string.py +0 -0
  121. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_convert.py +0 -0
  122. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_functionalize.py +0 -0
  123. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_high_level.py +0 -0
  124. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_modules.py +0 -0
  125. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_pretty.py +0 -0
  126. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_py_object_sort.py +0 -0
  127. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_runtime.py +0 -0
  128. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_type_constraint_solver.py +0 -0
  129. {egglog-8.0.0 → egglog-8.0.1}/python/tests/test_unstable_fn.py +0 -0
  130. {egglog-8.0.0 → egglog-8.0.1}/src/error.rs +0 -0
  131. {egglog-8.0.0 → egglog-8.0.1}/src/utils.rs +0 -0
  132. {egglog-8.0.0 → egglog-8.0.1}/test-data/unit/check-high-level.test +0 -0
@@ -25,56 +25,68 @@ jobs:
25
25
  - "3.10"
26
26
  steps:
27
27
  - uses: actions/checkout@v4
28
- - uses: dtolnay/rust-toolchain@1.71.1
28
+ - uses: astral-sh/setup-uv@v3
29
+ with:
30
+ enable-cache: true
31
+ - uses: dtolnay/rust-toolchain@1.79.0
29
32
  - uses: Swatinem/rust-cache@v2
30
33
  - name: Setup python ${{ matrix.py }}
31
34
  uses: actions/setup-python@v5
32
35
  with:
33
36
  python-version: ${{ matrix.py }}
34
- cache: "pip"
35
- - run: pip install -e .[test]
36
- - run: pytest --benchmark-disable -vvv
37
+ - run: uv sync --extra test --locked
38
+ - run: uv run pytest --benchmark-disable -vvv
37
39
  mypy:
38
40
  runs-on: ubuntu-latest
39
41
  steps:
40
42
  - uses: actions/checkout@v4
41
- - uses: dtolnay/rust-toolchain@1.71.1
43
+ - uses: astral-sh/setup-uv@v3
44
+ with:
45
+ enable-cache: true
46
+ - uses: dtolnay/rust-toolchain@1.79.0
42
47
  - uses: Swatinem/rust-cache@v2
43
48
  - uses: actions/setup-python@v5
44
49
  with:
50
+ # Run on oldest Python version to catch more errors
45
51
  python-version: "3.10"
46
- cache: "pip"
47
- - run: pip install -e .[test] mypy pre-commit
48
- - run: pre-commit run --hook-stage manual --all-files mypy
49
- - run: pre-commit run --hook-stage manual --all-files stubtest
52
+ - run: uv sync --extra test --locked
53
+ - run: make mypy
54
+ - run: make stubtest
55
+
50
56
  benchmark:
51
57
  runs-on: ubuntu-latest
52
58
  steps:
53
59
  - uses: actions/checkout@v4
54
- - uses: dtolnay/rust-toolchain@1.71.1
60
+ - uses: astral-sh/setup-uv@v3
61
+ with:
62
+ enable-cache: true
63
+ - uses: dtolnay/rust-toolchain@1.79.0
55
64
  - uses: Swatinem/rust-cache@v2
56
65
  - uses: actions/setup-python@v5
57
66
  with:
58
- python-version: "3.12"
59
- cache: "pip"
60
- - run: pip install -e .[test]
61
- - uses: CodSpeedHQ/action@v2
67
+ python-version-file: ".python-version"
68
+ - run: uv sync --extra test --locked
69
+ - uses: CodSpeedHQ/action@v3
62
70
  with:
63
71
  token: ${{ secrets.CODSPEED_TOKEN }}
64
- run: pytest -vvv -n auto
72
+ # allow updating snapshots due to indeterministic benchmarks
73
+ run: uv run pytest -vvv -n auto --snapshot-update
74
+
65
75
  docs:
66
76
  runs-on: ubuntu-latest
67
77
  steps:
68
78
  - uses: actions/checkout@v4
69
- - uses: dtolnay/rust-toolchain@1.71.1
79
+ - uses: astral-sh/setup-uv@v3
80
+ with:
81
+ enable-cache: true
82
+ - uses: dtolnay/rust-toolchain@1.79.0
70
83
  - uses: Swatinem/rust-cache@v2
71
84
  - uses: actions/setup-python@v5
72
85
  with:
73
- python-version: "3.10"
74
- cache: "pip"
86
+ python-version-file: ".python-version"
75
87
  - name: Install graphviz
76
88
  run: |
77
89
  sudo apt-get update
78
90
  sudo apt-get install -y graphviz
79
- - run: pip install -e .[docs] pre-commit
80
- - run: pre-commit run --hook-stage manual --all-files docs
91
+ - run: uv sync --extra docs --locked
92
+ - run: make docs
@@ -54,8 +54,8 @@ jobs:
54
54
  with:
55
55
  ref: version-${{ needs.bump.outputs.version }}
56
56
  - name: Setup QEMU
57
- uses: docker/setup-qemu-action@v1
58
- - uses: PyO3/maturin-action@v1.42.1
57
+ uses: docker/setup-qemu-action@v3
58
+ - uses: PyO3/maturin-action@v1.45.0
59
59
  with:
60
60
  manylinux: auto
61
61
  command: build
@@ -74,7 +74,7 @@ jobs:
74
74
  - uses: actions/checkout@v4
75
75
  with:
76
76
  ref: version-${{ needs.bump.outputs.version }}
77
- - uses: PyO3/maturin-action@v1.42.1
77
+ - uses: PyO3/maturin-action@v1.45.0
78
78
  with:
79
79
  command: build
80
80
  args: --release -o dist --find-interpreter
@@ -92,7 +92,7 @@ jobs:
92
92
  - uses: actions/checkout@v4
93
93
  with:
94
94
  ref: version-${{ needs.bump.outputs.version }}
95
- - uses: PyO3/maturin-action@v1.42.1
95
+ - uses: PyO3/maturin-action@v1.45.0
96
96
  with:
97
97
  command: build
98
98
  target: universal2-apple-darwin
@@ -114,7 +114,7 @@ jobs:
114
114
  pattern: wheels-*
115
115
  merge-multiple: true
116
116
  - name: Publish to PyPI
117
- uses: PyO3/maturin-action@v1.42.1
117
+ uses: PyO3/maturin-action@v1.45.0
118
118
  env:
119
119
  MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
120
120
  with:
@@ -131,7 +131,7 @@ jobs:
131
131
  - run: |
132
132
  git tag "v$VERSION"
133
133
  git push --tags
134
- gh pr merge --admin --delete-branch --merge
134
+ gh pr merge --admin --delete-branch --merge --auto
135
135
  env:
136
136
  VERSION: ${{ needs.bump.outputs.version }}
137
137
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -69,7 +69,6 @@ docs/_build/
69
69
  .vscode/
70
70
 
71
71
  # Pyenv
72
- .python-version
73
72
 
74
73
  TODO
75
74
  *.code-workspace
@@ -0,0 +1,8 @@
1
+ exclude: ^python/tests/__snapshots__/
2
+ repos:
3
+ - repo: https://github.com/astral-sh/ruff-pre-commit
4
+ rev: v0.7.0
5
+ hooks:
6
+ - id: ruff
7
+ args: [--fix, --exit-non-zero-on-fix]
8
+ - id: ruff-format
@@ -0,0 +1 @@
1
+ 3.12
@@ -12,24 +12,17 @@ build:
12
12
  python: "3.12"
13
13
  # # You can also specify other tool versions:
14
14
  # # nodejs: "16"
15
- rust: "1.70"
15
+ rust: "1.78"
16
16
  # golang: "1.17"
17
17
  apt_packages:
18
18
  - graphviz
19
+ commands:
20
+ - asdf plugin add uv
21
+ - asdf install uv latest
22
+ - asdf global uv latest
23
+ - uv sync --extra docs --frozen
24
+ - uv run -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html
25
+
19
26
  # Build documentation in the docs/ directory with Sphinx
20
27
  sphinx:
21
28
  configuration: docs/conf.py
22
-
23
- # If using Sphinx, optionally build your docs in additional formats such as PDF
24
- # formats:
25
- # - pdf
26
-
27
- # Optionally declare the Python requirements required to build your docs
28
- python:
29
- install:
30
- - method: pip
31
- path: .
32
- extra_requirements:
33
- - docs
34
- # conda:
35
- # environment: docs/environment.yml
@@ -174,6 +174,15 @@ version = "1.0.0"
174
174
  source = "registry+https://github.com/rust-lang/crates.io-index"
175
175
  checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
176
176
 
177
+ [[package]]
178
+ name = "chrono"
179
+ version = "0.4.38"
180
+ source = "registry+https://github.com/rust-lang/crates.io-index"
181
+ checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
182
+ dependencies = [
183
+ "num-traits",
184
+ ]
185
+
177
186
  [[package]]
178
187
  name = "clap"
179
188
  version = "4.4.6"
@@ -202,7 +211,7 @@ version = "4.4.2"
202
211
  source = "registry+https://github.com/rust-lang/crates.io-index"
203
212
  checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
204
213
  dependencies = [
205
- "heck",
214
+ "heck 0.4.1",
206
215
  "proc-macro2",
207
216
  "quote",
208
217
  "syn 2.0.60",
@@ -245,12 +254,6 @@ dependencies = [
245
254
  "typenum",
246
255
  ]
247
256
 
248
- [[package]]
249
- name = "diff"
250
- version = "0.1.13"
251
- source = "registry+https://github.com/rust-lang/crates.io-index"
252
- checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
253
-
254
257
  [[package]]
255
258
  name = "digest"
256
259
  version = "0.10.7"
@@ -299,9 +302,10 @@ checksum = "675e35c02a51bb4d4618cb4885b3839ce6d1787c97b664474d9208d074742e20"
299
302
 
300
303
  [[package]]
301
304
  name = "egglog"
302
- version = "0.2.0"
303
- source = "git+https://github.com/saulshanabrook/egg-smol?rev=a555b2f5e82c684442775cc1a5da94b71930113c#a555b2f5e82c684442775cc1a5da94b71930113c"
305
+ version = "0.3.0"
306
+ source = "git+https://github.com/egraphs-good/egglog?rev=b0db06832264c9b22694bd3de2bdacd55bbe9e32#b0db06832264c9b22694bd3de2bdacd55bbe9e32"
304
307
  dependencies = [
308
+ "chrono",
305
309
  "clap",
306
310
  "egraph-serialize",
307
311
  "env_logger",
@@ -311,7 +315,7 @@ dependencies = [
311
315
  "indexmap",
312
316
  "instant",
313
317
  "lalrpop",
314
- "lalrpop-util",
318
+ "lalrpop-util 0.20.2",
315
319
  "lazy_static",
316
320
  "log",
317
321
  "num-integer",
@@ -328,13 +332,12 @@ dependencies = [
328
332
 
329
333
  [[package]]
330
334
  name = "egglog_python"
331
- version = "8.0.0"
335
+ version = "8.0.1"
332
336
  dependencies = [
333
337
  "egglog",
334
338
  "egraph-serialize",
335
- "lalrpop-util",
339
+ "lalrpop-util 0.22.0",
336
340
  "log",
337
- "num-rational",
338
341
  "ordered-float",
339
342
  "pyo3",
340
343
  "pyo3-log",
@@ -344,8 +347,9 @@ dependencies = [
344
347
 
345
348
  [[package]]
346
349
  name = "egraph-serialize"
347
- version = "0.1.0"
348
- source = "git+https://github.com/saulshanabrook/egraph-serialize?rev=1c205fcc6d3426800b828e9264dbadbd4a5ef6e9#1c205fcc6d3426800b828e9264dbadbd4a5ef6e9"
350
+ version = "0.2.0"
351
+ source = "registry+https://github.com/rust-lang/crates.io-index"
352
+ checksum = "c31c5c0d7f760f9c1c84e21d73dcd3b3ce7a4770c27689f56a0db26e0f3e79ca"
349
353
  dependencies = [
350
354
  "graphviz-rust",
351
355
  "indexmap",
@@ -490,6 +494,12 @@ version = "0.4.1"
490
494
  source = "registry+https://github.com/rust-lang/crates.io-index"
491
495
  checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
492
496
 
497
+ [[package]]
498
+ name = "heck"
499
+ version = "0.5.0"
500
+ source = "registry+https://github.com/rust-lang/crates.io-index"
501
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
502
+
493
503
  [[package]]
494
504
  name = "hermit-abi"
495
505
  version = "0.3.3"
@@ -577,9 +587,9 @@ dependencies = [
577
587
 
578
588
  [[package]]
579
589
  name = "itertools"
580
- version = "0.10.5"
590
+ version = "0.11.0"
581
591
  source = "registry+https://github.com/rust-lang/crates.io-index"
582
- checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
592
+ checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
583
593
  dependencies = [
584
594
  "either",
585
595
  ]
@@ -592,25 +602,24 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
592
602
 
593
603
  [[package]]
594
604
  name = "lalrpop"
595
- version = "0.20.0"
605
+ version = "0.20.2"
596
606
  source = "registry+https://github.com/rust-lang/crates.io-index"
597
- checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8"
607
+ checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca"
598
608
  dependencies = [
599
609
  "ascii-canvas",
600
610
  "bit-set",
601
- "diff",
602
611
  "ena",
603
- "is-terminal",
604
612
  "itertools",
605
- "lalrpop-util",
613
+ "lalrpop-util 0.20.2",
606
614
  "petgraph",
607
615
  "pico-args",
608
616
  "regex",
609
- "regex-syntax 0.7.4",
617
+ "regex-syntax",
610
618
  "string_cache",
611
619
  "term",
612
620
  "tiny-keccak",
613
621
  "unicode-xid",
622
+ "walkdir",
614
623
  ]
615
624
 
616
625
  [[package]]
@@ -622,6 +631,16 @@ dependencies = [
622
631
  "regex-automata",
623
632
  ]
624
633
 
634
+ [[package]]
635
+ name = "lalrpop-util"
636
+ version = "0.22.0"
637
+ source = "registry+https://github.com/rust-lang/crates.io-index"
638
+ checksum = "feee752d43abd0f4807a921958ab4131f692a44d4d599733d4419c5d586176ce"
639
+ dependencies = [
640
+ "regex-automata",
641
+ "rustversion",
642
+ ]
643
+
625
644
  [[package]]
626
645
  name = "lazy_static"
627
646
  version = "1.4.0"
@@ -652,9 +671,9 @@ dependencies = [
652
671
 
653
672
  [[package]]
654
673
  name = "log"
655
- version = "0.4.21"
674
+ version = "0.4.22"
656
675
  source = "registry+https://github.com/rust-lang/crates.io-index"
657
- checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
676
+ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
658
677
 
659
678
  [[package]]
660
679
  name = "memchr"
@@ -861,15 +880,15 @@ dependencies = [
861
880
 
862
881
  [[package]]
863
882
  name = "pyo3"
864
- version = "0.21.2"
883
+ version = "0.22.5"
865
884
  source = "registry+https://github.com/rust-lang/crates.io-index"
866
- checksum = "a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8"
885
+ checksum = "3d922163ba1f79c04bc49073ba7b32fd5a8d3b76a87c955921234b8e77333c51"
867
886
  dependencies = [
868
887
  "cfg-if",
869
888
  "indoc",
870
889
  "libc",
871
890
  "memoffset",
872
- "parking_lot",
891
+ "once_cell",
873
892
  "portable-atomic",
874
893
  "pyo3-build-config",
875
894
  "pyo3-ffi",
@@ -879,9 +898,9 @@ dependencies = [
879
898
 
880
899
  [[package]]
881
900
  name = "pyo3-build-config"
882
- version = "0.21.2"
901
+ version = "0.22.5"
883
902
  source = "registry+https://github.com/rust-lang/crates.io-index"
884
- checksum = "7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50"
903
+ checksum = "bc38c5feeb496c8321091edf3d63e9a6829eab4b863b4a6a65f26f3e9cc6b179"
885
904
  dependencies = [
886
905
  "once_cell",
887
906
  "target-lexicon",
@@ -889,9 +908,9 @@ dependencies = [
889
908
 
890
909
  [[package]]
891
910
  name = "pyo3-ffi"
892
- version = "0.21.2"
911
+ version = "0.22.5"
893
912
  source = "registry+https://github.com/rust-lang/crates.io-index"
894
- checksum = "01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403"
913
+ checksum = "94845622d88ae274d2729fcefc850e63d7a3ddff5e3ce11bd88486db9f1d357d"
895
914
  dependencies = [
896
915
  "libc",
897
916
  "pyo3-build-config",
@@ -899,9 +918,9 @@ dependencies = [
899
918
 
900
919
  [[package]]
901
920
  name = "pyo3-log"
902
- version = "0.10.0"
921
+ version = "0.11.0"
903
922
  source = "registry+https://github.com/rust-lang/crates.io-index"
904
- checksum = "2af49834b8d2ecd555177e63b273b708dea75150abc6f5341d0a6e1a9623976c"
923
+ checksum = "3ac84e6eec1159bc2a575c9ae6723baa6ee9d45873e9bebad1e3ad7e8d28a443"
905
924
  dependencies = [
906
925
  "arc-swap",
907
926
  "log",
@@ -910,9 +929,9 @@ dependencies = [
910
929
 
911
930
  [[package]]
912
931
  name = "pyo3-macros"
913
- version = "0.21.2"
932
+ version = "0.22.5"
914
933
  source = "registry+https://github.com/rust-lang/crates.io-index"
915
- checksum = "77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c"
934
+ checksum = "e655aad15e09b94ffdb3ce3d217acf652e26bbc37697ef012f5e5e348c716e5e"
916
935
  dependencies = [
917
936
  "proc-macro2",
918
937
  "pyo3-macros-backend",
@@ -922,11 +941,11 @@ dependencies = [
922
941
 
923
942
  [[package]]
924
943
  name = "pyo3-macros-backend"
925
- version = "0.21.2"
944
+ version = "0.22.5"
926
945
  source = "registry+https://github.com/rust-lang/crates.io-index"
927
- checksum = "08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c"
946
+ checksum = "ae1e3f09eecd94618f60a455a23def79f79eba4dc561a97324bf9ac8c6df30ce"
928
947
  dependencies = [
929
- "heck",
948
+ "heck 0.5.0",
930
949
  "proc-macro2",
931
950
  "pyo3-build-config",
932
951
  "quote",
@@ -1021,7 +1040,7 @@ dependencies = [
1021
1040
  "aho-corasick",
1022
1041
  "memchr",
1023
1042
  "regex-automata",
1024
- "regex-syntax 0.8.3",
1043
+ "regex-syntax",
1025
1044
  ]
1026
1045
 
1027
1046
  [[package]]
@@ -1032,15 +1051,9 @@ checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
1032
1051
  dependencies = [
1033
1052
  "aho-corasick",
1034
1053
  "memchr",
1035
- "regex-syntax 0.8.3",
1054
+ "regex-syntax",
1036
1055
  ]
1037
1056
 
1038
- [[package]]
1039
- name = "regex-syntax"
1040
- version = "0.7.4"
1041
- source = "registry+https://github.com/rust-lang/crates.io-index"
1042
- checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
1043
-
1044
1057
  [[package]]
1045
1058
  name = "regex-syntax"
1046
1059
  version = "0.8.3"
@@ -1078,6 +1091,15 @@ version = "1.0.15"
1078
1091
  source = "registry+https://github.com/rust-lang/crates.io-index"
1079
1092
  checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
1080
1093
 
1094
+ [[package]]
1095
+ name = "same-file"
1096
+ version = "1.0.6"
1097
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1098
+ checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
1099
+ dependencies = [
1100
+ "winapi-util",
1101
+ ]
1102
+
1081
1103
  [[package]]
1082
1104
  name = "scopeguard"
1083
1105
  version = "1.2.0"
@@ -1106,12 +1128,13 @@ dependencies = [
1106
1128
 
1107
1129
  [[package]]
1108
1130
  name = "serde_json"
1109
- version = "1.0.116"
1131
+ version = "1.0.132"
1110
1132
  source = "registry+https://github.com/rust-lang/crates.io-index"
1111
- checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
1133
+ checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03"
1112
1134
  dependencies = [
1113
1135
  "indexmap",
1114
1136
  "itoa",
1137
+ "memchr",
1115
1138
  "ryu",
1116
1139
  "serde",
1117
1140
  ]
@@ -1202,9 +1225,9 @@ dependencies = [
1202
1225
 
1203
1226
  [[package]]
1204
1227
  name = "target-lexicon"
1205
- version = "0.12.9"
1228
+ version = "0.12.16"
1206
1229
  source = "registry+https://github.com/rust-lang/crates.io-index"
1207
- checksum = "df8e77cb757a61f51b947ec4a7e3646efd825b73561db1c232a8ccb639e611a0"
1230
+ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
1208
1231
 
1209
1232
  [[package]]
1210
1233
  name = "tempfile"
@@ -1306,9 +1329,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
1306
1329
 
1307
1330
  [[package]]
1308
1331
  name = "uuid"
1309
- version = "1.8.0"
1332
+ version = "1.11.0"
1310
1333
  source = "registry+https://github.com/rust-lang/crates.io-index"
1311
- checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
1334
+ checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a"
1312
1335
  dependencies = [
1313
1336
  "getrandom",
1314
1337
  ]
@@ -1319,6 +1342,16 @@ version = "0.9.4"
1319
1342
  source = "registry+https://github.com/rust-lang/crates.io-index"
1320
1343
  checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
1321
1344
 
1345
+ [[package]]
1346
+ name = "walkdir"
1347
+ version = "2.5.0"
1348
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1349
+ checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
1350
+ dependencies = [
1351
+ "same-file",
1352
+ "winapi-util",
1353
+ ]
1354
+
1322
1355
  [[package]]
1323
1356
  name = "wasi"
1324
1357
  version = "0.11.0+wasi-snapshot-preview1"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "egglog_python"
3
- version = "8.0.0"
3
+ version = "8.0.1"
4
4
  edition = "2021"
5
5
 
6
6
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -9,28 +9,24 @@ name = "egglog"
9
9
  crate-type = ["cdylib"]
10
10
 
11
11
  [dependencies]
12
- pyo3 = { version = "0.21", features = ["extension-module"] }
12
+ pyo3 = { version = "0.22.5", features = ["extension-module"] }
13
13
 
14
14
  # https://github.com/egraphs-good/egglog/compare/ceed816e9369570ffed9feeba157b19471dda70d...main
15
- # egglog = { git = "https://github.com/egraphs-good/egglog", rev = "fb4a9f114f9bb93154d6eff0dbab079b5cb4ebb6" }
15
+ egglog = { git = "https://github.com/egraphs-good/egglog", rev = "b0db06832264c9b22694bd3de2bdacd55bbe9e32" }
16
16
  # egglog = { path = "../egg-smol" }
17
17
  # egglog = { git = "https://github.com/oflatt/egg-smol", branch = "oflatt-fast-terms" }
18
- egglog = { git = "https://github.com/saulshanabrook/egg-smol", rev = "a555b2f5e82c684442775cc1a5da94b71930113c" }
19
- egraph-serialize = { git = "https://github.com/saulshanabrook/egraph-serialize", rev = "1c205fcc6d3426800b828e9264dbadbd4a5ef6e9", features = [
20
- "serde",
21
- "graphviz",
22
- ] }
18
+ # egglog = { git = "https://github.com/saulshanabrook/egg-smol", rev = "a555b2f5e82c684442775cc1a5da94b71930113c" }
19
+ egraph-serialize = { version = "0.2.0", features = ["serde", "graphviz"] }
23
20
  # egraph-serialize = { path = "../egraph-serialize", features = [
24
21
  # "serde",
25
22
  # "graphviz",
26
23
  # ] }
27
- serde_json = "*"
28
- pyo3-log = "0.10.0"
29
- log = "0.4.21"
30
- lalrpop-util = { version = "0.20.2", features = ["lexer"] }
31
- ordered-float = "*"
32
- uuid = { version = "1.8.0", features = ["v4"] }
33
- num-rational = "*"
24
+ serde_json = "1.0.132"
25
+ pyo3-log = "0.11.0"
26
+ log = "0.4.22"
27
+ lalrpop-util = { version = "0.22", features = ["lexer"] }
28
+ ordered-float = "3.7"
29
+ uuid = { version = "1.11.0", features = ["v4"] }
34
30
 
35
31
  # Use unreleased version of egraph-serialize in egglog as well
36
32
  # [patch.crates-io]
@@ -1,3 +1,4 @@
1
+ .PHONY: all clean from-local mypy stubtest docs
1
2
 
2
3
  all: python/egglog/visualizer.js
3
4
 
@@ -22,3 +23,18 @@ python/egglog/visualizer.js python/egglog/visualizer.css: visualizer.tgz
22
23
 
23
24
  clean:
24
25
  rm -rf package python/egglog/visualizer.css python/egglog/visualizer.js visualizer.tgz
26
+
27
+ from-local:
28
+ cp ../egraph-visualizer/dist/index.js python/egglog/visualizer.js
29
+ cp ../egraph-visualizer/dist/style.css python/egglog/visualizer.css
30
+
31
+ # remove once https://github.com/astral-sh/uv/issues/5903
32
+
33
+ mypy:
34
+ uv run dmypy run -- python/
35
+
36
+ stubtest:
37
+ uv run python -m mypy.stubtest egglog.bindings --allowlist stubtest_allow
38
+
39
+ docs:
40
+ uv run sphinx-build -T -b html docs docs/_build/html
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: egglog
3
- Version: 8.0.0
3
+ Version: 8.0.1
4
4
  Classifier: Environment :: MacOS X
5
5
  Classifier: Environment :: Win32 (MS Windows)
6
6
  Classifier: Intended Audience :: Developers
@@ -24,8 +24,8 @@ Requires-Dist: scikit-learn ; extra == 'array'
24
24
  Requires-Dist: array-api-compat ; extra == 'array'
25
25
  Requires-Dist: numba ==0.59.1 ; extra == 'array'
26
26
  Requires-Dist: llvmlite ==0.42.0 ; extra == 'array'
27
- Requires-Dist: pre-commit ; extra == 'dev'
28
27
  Requires-Dist: ruff ; extra == 'dev'
28
+ Requires-Dist: pre-commit ; extra == 'dev'
29
29
  Requires-Dist: mypy ; extra == 'dev'
30
30
  Requires-Dist: anywidget[dev] ; extra == 'dev'
31
31
  Requires-Dist: egglog[docs,test] ; extra == 'dev'
@@ -4,6 +4,12 @@ _This project uses semantic versioning_
4
4
 
5
5
  ## UNRELEASED
6
6
 
7
+ ## 8.0.1 (2024-10-24)
8
+
9
+ - Upgrade dependencies including [egglog](https://github.com/egraphs-good/egglog/compare/saulshanabrook:egg-smol:a555b2f5e82c684442775cc1a5da94b71930113c...b0db06832264c9b22694bd3de2bdacd55bbe9e32)
10
+ - Fix bug with non glob star import
11
+ - Fix bug extracting functions
12
+
7
13
  ## 8.0.0 (2024-10-17)
8
14
 
9
15
  - Adds ability to use anonymous functions where callables are needed. These are automatically transformed to egglog