egglog 6.1.0__tar.gz → 7.1.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 (122) hide show
  1. egglog-7.1.0/.github/dependabot.yml +19 -0
  2. egglog-7.1.0/.github/workflows/CI.yml +80 -0
  3. egglog-7.1.0/.github/workflows/version.yml +134 -0
  4. {egglog-6.1.0 → egglog-7.1.0}/.pre-commit-config.yaml +1 -1
  5. egglog-7.1.0/CITATION.cff +35 -0
  6. {egglog-6.1.0 → egglog-7.1.0}/Cargo.lock +64 -50
  7. {egglog-6.1.0 → egglog-7.1.0}/Cargo.toml +7 -7
  8. {egglog-6.1.0 → egglog-7.1.0}/PKG-INFO +10 -10
  9. egglog-7.1.0/README.md +10 -0
  10. {egglog-6.1.0 → egglog-7.1.0}/docs/changelog.md +24 -0
  11. egglog-7.1.0/docs/explanation/2024_03_17_community_talk.ipynb +9604 -0
  12. {egglog-6.1.0 → egglog-7.1.0}/docs/reference/python-integration.md +38 -0
  13. egglog-7.1.0/increment_version.py +79 -0
  14. {egglog-6.1.0 → egglog-7.1.0}/pyproject.toml +12 -3
  15. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/__init__.py +1 -1
  16. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/bindings.pyi +9 -0
  17. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/builtins.py +42 -2
  18. egglog-7.1.0/python/egglog/conversion.py +177 -0
  19. egglog-7.1.0/python/egglog/declarations.py +640 -0
  20. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/egraph.py +602 -800
  21. egglog-7.1.0/python/egglog/egraph_state.py +456 -0
  22. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/exp/array_api.py +100 -88
  23. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/exp/array_api_numba.py +6 -1
  24. egglog-7.1.0/python/egglog/exp/siu_examples.py +35 -0
  25. egglog-7.1.0/python/egglog/pretty.py +464 -0
  26. egglog-7.1.0/python/egglog/runtime.py +548 -0
  27. egglog-7.1.0/python/egglog/thunk.py +71 -0
  28. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/type_constraint_solver.py +5 -2
  29. {egglog-6.1.0 → egglog-7.1.0}/python/tests/__snapshots__/test_array_api/TestLDA.test_optimize.py +2 -2
  30. {egglog-6.1.0 → egglog-7.1.0}/python/tests/__snapshots__/test_array_api/TestLDA.test_source_optimized.py +2 -2
  31. {egglog-6.1.0 → egglog-7.1.0}/python/tests/conftest.py +3 -3
  32. {egglog-6.1.0 → egglog-7.1.0}/python/tests/test_array_api.py +34 -29
  33. {egglog-6.1.0 → egglog-7.1.0}/python/tests/test_high_level.py +40 -2
  34. egglog-7.1.0/python/tests/test_pretty.py +149 -0
  35. egglog-7.1.0/python/tests/test_runtime.py +109 -0
  36. egglog-7.1.0/python/tests/test_unstable_fn.py +184 -0
  37. egglog-7.1.0/rust-toolchain.toml +2 -0
  38. {egglog-6.1.0 → egglog-7.1.0}/src/conversions.rs +12 -3
  39. {egglog-6.1.0 → egglog-7.1.0}/src/egraph.rs +30 -13
  40. {egglog-6.1.0 → egglog-7.1.0}/src/lib.rs +1 -1
  41. {egglog-6.1.0 → egglog-7.1.0}/src/py_object_sort.rs +24 -22
  42. {egglog-6.1.0 → egglog-7.1.0}/src/serialize.rs +1 -3
  43. {egglog-6.1.0 → egglog-7.1.0}/src/utils.rs +3 -3
  44. egglog-6.1.0/.github/workflows/CI.yml +0 -148
  45. egglog-6.1.0/README.md +0 -10
  46. egglog-6.1.0/docs/explanation/2024_03_17_community_talk.ipynb +0 -9538
  47. egglog-6.1.0/python/egglog/declarations.py +0 -1020
  48. egglog-6.1.0/python/egglog/runtime.py +0 -700
  49. egglog-6.1.0/python/tests/test_runtime.py +0 -143
  50. egglog-6.1.0/rust-toolchain +0 -1
  51. {egglog-6.1.0 → egglog-7.1.0}/.gitignore +0 -0
  52. {egglog-6.1.0 → egglog-7.1.0}/.readthedocs.yaml +0 -0
  53. {egglog-6.1.0 → egglog-7.1.0}/LICENSE +0 -0
  54. {egglog-6.1.0 → egglog-7.1.0}/conftest.py +0 -0
  55. {egglog-6.1.0 → egglog-7.1.0}/docs/.gitignore +0 -0
  56. {egglog-6.1.0 → egglog-7.1.0}/docs/_templates/comments.html +0 -0
  57. {egglog-6.1.0 → egglog-7.1.0}/docs/conf.py +0 -0
  58. {egglog-6.1.0 → egglog-7.1.0}/docs/environment.yml +0 -0
  59. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/.gitignore +0 -0
  60. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/2023_07_presentation.ipynb +0 -0
  61. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/2023_11_09_portland_state.ipynb +0 -0
  62. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/2023_11_17_pytensor.ipynb +0 -0
  63. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/2023_11_pydata_lightning_talk.ipynb +0 -0
  64. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/2023_12_02_congruence_closure-1.png +0 -0
  65. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/2023_12_02_congruence_closure-2.png +0 -0
  66. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/2023_12_02_congruence_closure.md +0 -0
  67. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/2024_03_17_map.svg +0 -0
  68. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/big_graph.svg +0 -0
  69. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/define_and_define.md +0 -0
  70. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/ecosystem-graph.png +0 -0
  71. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/egg.png +0 -0
  72. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/indexing_pushdown.ipynb +0 -0
  73. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/moa.png +0 -0
  74. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/optional_values.md +0 -0
  75. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation/pldi_2023_presentation.ipynb +0 -0
  76. {egglog-6.1.0 → egglog-7.1.0}/docs/explanation.md +0 -0
  77. {egglog-6.1.0 → egglog-7.1.0}/docs/how-to-guides.md +0 -0
  78. {egglog-6.1.0 → egglog-7.1.0}/docs/index.md +0 -0
  79. {egglog-6.1.0 → egglog-7.1.0}/docs/reference/bindings.md +0 -0
  80. {egglog-6.1.0 → egglog-7.1.0}/docs/reference/contributing.md +0 -0
  81. {egglog-6.1.0 → egglog-7.1.0}/docs/reference/egglog-translation.md +0 -0
  82. {egglog-6.1.0 → egglog-7.1.0}/docs/reference/high-level.md +0 -0
  83. {egglog-6.1.0 → egglog-7.1.0}/docs/reference/usage.md +0 -0
  84. {egglog-6.1.0 → egglog-7.1.0}/docs/reference.md +0 -0
  85. {egglog-6.1.0 → egglog-7.1.0}/docs/tutorials/getting-started.ipynb +0 -0
  86. {egglog-6.1.0 → egglog-7.1.0}/docs/tutorials/screenshot-1.png +0 -0
  87. {egglog-6.1.0 → egglog-7.1.0}/docs/tutorials/screenshot-2.png +0 -0
  88. {egglog-6.1.0 → egglog-7.1.0}/docs/tutorials/sklearn.ipynb +0 -0
  89. {egglog-6.1.0 → egglog-7.1.0}/docs/tutorials.md +0 -0
  90. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/config.py +0 -0
  91. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/examples/README.rst +0 -0
  92. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/examples/__init__.py +0 -0
  93. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/examples/bool.py +0 -0
  94. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/examples/eqsat_basic.py +0 -0
  95. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/examples/fib.py +0 -0
  96. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/examples/lambda_.py +0 -0
  97. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/examples/matrix.py +0 -0
  98. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/examples/ndarrays.py +0 -0
  99. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/examples/resolution.py +0 -0
  100. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/examples/schedule_demo.py +0 -0
  101. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/exp/__init__.py +0 -0
  102. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/exp/array_api_jit.py +0 -0
  103. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/exp/array_api_program_gen.py +0 -0
  104. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/exp/program_gen.py +0 -0
  105. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/graphviz_widget.py +0 -0
  106. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/ipython_magic.py +0 -0
  107. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/py.typed +0 -0
  108. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/widget.css +0 -0
  109. {egglog-6.1.0 → egglog-7.1.0}/python/egglog/widget.js +0 -0
  110. {egglog-6.1.0 → egglog-7.1.0}/python/tests/__init__.py +0 -0
  111. {egglog-6.1.0 → egglog-7.1.0}/python/tests/__snapshots__/test_array_api/TestLDA.test_trace.py +0 -0
  112. {egglog-6.1.0 → egglog-7.1.0}/python/tests/__snapshots__/test_program_gen/test_to_string.py +0 -0
  113. {egglog-6.1.0 → egglog-7.1.0}/python/tests/test_bindings.py +0 -0
  114. {egglog-6.1.0 → egglog-7.1.0}/python/tests/test_convert.py +0 -0
  115. {egglog-6.1.0 → egglog-7.1.0}/python/tests/test_modules.py +0 -0
  116. {egglog-6.1.0 → egglog-7.1.0}/python/tests/test_program_gen.py +0 -0
  117. {egglog-6.1.0 → egglog-7.1.0}/python/tests/test_py_object_sort.py +0 -0
  118. {egglog-6.1.0 → egglog-7.1.0}/python/tests/test_type_constraint_solver.py +0 -0
  119. {egglog-6.1.0 → egglog-7.1.0}/python/tests/test_typing.py +0 -0
  120. {egglog-6.1.0 → egglog-7.1.0}/src/error.rs +0 -0
  121. {egglog-6.1.0 → egglog-7.1.0}/stubtest_allow +0 -0
  122. {egglog-6.1.0 → egglog-7.1.0}/test-data/unit/check-high-level.test +0 -0
@@ -0,0 +1,19 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "cargo"
9
+ directory: "/"
10
+ schedule:
11
+ interval: "weekly"
12
+ - package-ecosystem: "github-actions"
13
+ directory: "/"
14
+ schedule:
15
+ interval: "weekly"
16
+ - package-ecosystem: "pip"
17
+ directory: "/"
18
+ schedule:
19
+ interval: "weekly"
@@ -0,0 +1,80 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ workflow_dispatch:
9
+
10
+ # Allow one concurrent deployment
11
+ concurrency:
12
+ group: ${{ github.ref }}
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ test:
17
+ name: test ${{ matrix.py }}
18
+ runs-on: ubuntu-latest
19
+ strategy:
20
+ fail-fast: false
21
+ matrix:
22
+ py:
23
+ - "3.12"
24
+ - "3.11"
25
+ - "3.10"
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ - uses: dtolnay/rust-toolchain@1.71.1
29
+ - uses: Swatinem/rust-cache@v2
30
+ - name: Setup python ${{ matrix.py }}
31
+ uses: actions/setup-python@v5
32
+ with:
33
+ python-version: ${{ matrix.py }}
34
+ cache: "pip"
35
+ - run: pip install -e .[test]
36
+ - run: pytest --benchmark-disable -vvv
37
+ mypy:
38
+ runs-on: ubuntu-latest
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+ - uses: dtolnay/rust-toolchain@1.71.1
42
+ - uses: Swatinem/rust-cache@v2
43
+ - uses: actions/setup-python@v5
44
+ with:
45
+ 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
50
+ benchmark:
51
+ runs-on: ubuntu-latest
52
+ steps:
53
+ - uses: actions/checkout@v4
54
+ - uses: dtolnay/rust-toolchain@1.71.1
55
+ - uses: Swatinem/rust-cache@v2
56
+ - uses: actions/setup-python@v5
57
+ with:
58
+ python-version: "3.12"
59
+ cache: "pip"
60
+ - run: pip install -e .[test]
61
+ - uses: CodSpeedHQ/action@v2
62
+ with:
63
+ token: ${{ secrets.CODSPEED_TOKEN }}
64
+ run: pytest -vvv -n auto
65
+ docs:
66
+ runs-on: ubuntu-latest
67
+ steps:
68
+ - uses: actions/checkout@v4
69
+ - uses: dtolnay/rust-toolchain@1.71.1
70
+ - uses: Swatinem/rust-cache@v2
71
+ - uses: actions/setup-python@v5
72
+ with:
73
+ python-version: "3.10"
74
+ cache: "pip"
75
+ - name: Install graphviz
76
+ run: |
77
+ sudo apt-get update
78
+ 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
@@ -0,0 +1,134 @@
1
+ # Creates a new version by:
2
+ # 1. bumping the version number in the changelog and cargo
3
+ # 2. Creates a new branch for this version
4
+ # 3. makes a new commit
5
+ # 4. Opens a PR for the new version
6
+ # 5. Pulls that branch and builds it for different platforms
7
+ # 6. Once all those build, makes a release
8
+ # 7. Creates a tag for that release
9
+ # 7. merges that PR when tests pass and removes the branch
10
+
11
+ # This seperates the release process from the test process, so we can still release if we need to and tests are failing
12
+ name: Bump Version
13
+ on:
14
+ workflow_dispatch:
15
+ inputs:
16
+ type:
17
+ description: "Release type"
18
+ required: true
19
+ default: "major"
20
+ type: choice
21
+ options:
22
+ - major
23
+ - minor
24
+ - patch
25
+
26
+ jobs:
27
+ bump:
28
+ runs-on: ubuntu-latest
29
+ permissions: write-all
30
+ outputs:
31
+ version: ${{ steps.bump.outputs.version }}
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - run: |
35
+ git config user.name github-actions[bot]
36
+ git config user.email 41898282+github-actions[bot]@users.noreply.github.com
37
+ VERSION=$(python increment_version.py $TYPE)
38
+ git checkout -b "version-$VERSION"
39
+ git commit -am "Version $VERSION"
40
+ git push -u origin HEAD
41
+ gh pr create --fill
42
+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
43
+ id: bump
44
+ env:
45
+ TYPE: ${{ inputs.type }}
46
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47
+
48
+ linux:
49
+ name: build linux
50
+ runs-on: ubuntu-latest
51
+ needs: [bump]
52
+ steps:
53
+ - uses: actions/checkout@v4
54
+ with:
55
+ ref: version-${{ needs.bump.outputs.version }}
56
+ - uses: PyO3/maturin-action@v1.42.1
57
+ with:
58
+ manylinux: auto
59
+ command: build
60
+ args: --release --sdist -o dist --find-interpreter
61
+ - name: Upload wheels
62
+ uses: actions/upload-artifact@v4
63
+ with:
64
+ name: wheels-linux
65
+ path: dist
66
+
67
+ windows:
68
+ name: build windows
69
+ runs-on: windows-latest
70
+ needs: [bump]
71
+ steps:
72
+ - uses: actions/checkout@v4
73
+ with:
74
+ ref: version-${{ needs.bump.outputs.version }}
75
+ - uses: PyO3/maturin-action@v1.42.1
76
+ with:
77
+ command: build
78
+ args: --release -o dist --find-interpreter
79
+ - name: Upload wheels
80
+ uses: actions/upload-artifact@v4
81
+ with:
82
+ name: wheels-windows
83
+ path: dist
84
+
85
+ macos:
86
+ name: build macos
87
+ runs-on: macos-latest
88
+ needs: [bump]
89
+ steps:
90
+ - uses: actions/checkout@v4
91
+ with:
92
+ ref: version-${{ needs.bump.outputs.version }}
93
+ - uses: PyO3/maturin-action@v1.42.1
94
+ with:
95
+ command: build
96
+ args: --release -o dist --universal2 --find-interpreter
97
+ - name: Upload wheels
98
+ uses: actions/upload-artifact@v4
99
+ with:
100
+ name: wheels-macos
101
+ path: dist
102
+
103
+ release:
104
+ name: Release
105
+ runs-on: ubuntu-latest
106
+ if: startsWith(github.ref, 'refs/tags/') || (github.event_name == 'workflow_dispatch')
107
+ needs: [macos, windows, linux]
108
+ steps:
109
+ - uses: actions/download-artifact@v4
110
+ with:
111
+ pattern: wheels-*
112
+ merge-multiple: true
113
+ - name: Publish to PyPI
114
+ uses: PyO3/maturin-action@v1.42.1
115
+ env:
116
+ MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
117
+ with:
118
+ command: upload
119
+ args: --skip-existing *
120
+ tag-and-merge:
121
+ runs-on: ubuntu-latest
122
+ permissions: write-all
123
+ needs: [release, bump]
124
+ steps:
125
+ - uses: actions/checkout@v4
126
+ with:
127
+ ref: version-${{ needs.bump.outputs.version }}
128
+ - run: |
129
+ git tag "v$VERSION"
130
+ git push --tags
131
+ gh pr merge --admin --delete-branch
132
+ env:
133
+ VERSION: ${{ needs.bump.outputs.version }}
134
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -5,7 +5,7 @@ ci:
5
5
  skip: [mypy, docs, stubtest]
6
6
  repos:
7
7
  - repo: https://github.com/astral-sh/ruff-pre-commit
8
- rev: v0.2.1
8
+ rev: v0.4.1
9
9
  hooks:
10
10
  - id: ruff
11
11
  args: [--fix, --exit-non-zero-on-fix]
@@ -0,0 +1,35 @@
1
+ # This CITATION.cff file was generated with cffinit.
2
+ # Visit https://bit.ly/cffinit to generate yours today!
3
+
4
+ cff-version: 1.2.0
5
+ title: 'Egglog Python: A Pythonic Library for E-graphs'
6
+ message: >-
7
+ If you use this software, please cite it using the
8
+ metadata from this file.
9
+ type: software
10
+ authors:
11
+ - given-names: Saul
12
+ family-names: Shanabrook
13
+ email: s.shanabrook@gmail.com
14
+ orcid: 'https://orcid.org/0000-0002-0258-4236'
15
+ identifiers:
16
+ - type: other
17
+ value: 'arXiv:2305.04311'
18
+ repository-code: 'https://github.com/egraphs-good/egglog-python'
19
+ url: 'https://egglog-python.readthedocs.io/'
20
+ abstract: >-
21
+ E-graphs have emerged as a versatile data structure with
22
+ applications in synthesis, optimization, and verification
23
+ through techniques such as equality saturation. This paper
24
+ introduces Python bindings for the experimental egglog
25
+ library (previously called egg-smol), which aims to bring
26
+ the benefits of e-graphs to the Python ecosystem. The
27
+ bindings offer a high-level, Pythonic API providing an
28
+ accessible and familiar interface for Python users. By
29
+ integrating e-graph techniques with Python, we hope to
30
+ enable collaboration and innovation across various domains
31
+ in the scientific computing and machine learning
32
+ communities. We discuss the advantages of using Python
33
+ bindings for both Python and existing egg-smol users, as
34
+ well as possible future directions for development.
35
+ license: MIT
@@ -190,7 +190,7 @@ dependencies = [
190
190
  "heck",
191
191
  "proc-macro2",
192
192
  "quote",
193
- "syn 2.0.32",
193
+ "syn 2.0.60",
194
194
  ]
195
195
 
196
196
  [[package]]
@@ -285,7 +285,7 @@ checksum = "675e35c02a51bb4d4618cb4885b3839ce6d1787c97b664474d9208d074742e20"
285
285
  [[package]]
286
286
  name = "egglog"
287
287
  version = "0.1.0"
288
- source = "git+https://github.com/egraphs-good/egglog?rev=0113af1d6476b75d4319591cc3d675f96a71cdc5#0113af1d6476b75d4319591cc3d675f96a71cdc5"
288
+ source = "git+https://github.com/egraphs-good/egglog?rev=fb4a9f114f9bb93154d6eff0dbab079b5cb4ebb6#fb4a9f114f9bb93154d6eff0dbab079b5cb4ebb6"
289
289
  dependencies = [
290
290
  "clap",
291
291
  "egraph-serialize",
@@ -312,7 +312,7 @@ dependencies = [
312
312
 
313
313
  [[package]]
314
314
  name = "egglog-python"
315
- version = "6.1.0"
315
+ version = "7.1.0"
316
316
  dependencies = [
317
317
  "egglog",
318
318
  "egraph-serialize",
@@ -487,9 +487,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
487
487
 
488
488
  [[package]]
489
489
  name = "indexmap"
490
- version = "2.0.2"
490
+ version = "2.2.6"
491
491
  source = "registry+https://github.com/rust-lang/crates.io-index"
492
- checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
492
+ checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
493
493
  dependencies = [
494
494
  "equivalent",
495
495
  "hashbrown 0.14.1",
@@ -575,7 +575,7 @@ dependencies = [
575
575
  "petgraph",
576
576
  "pico-args",
577
577
  "regex",
578
- "regex-syntax",
578
+ "regex-syntax 0.7.4",
579
579
  "string_cache",
580
580
  "term",
581
581
  "tiny-keccak",
@@ -584,11 +584,11 @@ dependencies = [
584
584
 
585
585
  [[package]]
586
586
  name = "lalrpop-util"
587
- version = "0.20.0"
587
+ version = "0.20.2"
588
588
  source = "registry+https://github.com/rust-lang/crates.io-index"
589
- checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d"
589
+ checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553"
590
590
  dependencies = [
591
- "regex",
591
+ "regex-automata",
592
592
  ]
593
593
 
594
594
  [[package]]
@@ -621,15 +621,15 @@ dependencies = [
621
621
 
622
622
  [[package]]
623
623
  name = "log"
624
- version = "0.4.20"
624
+ version = "0.4.21"
625
625
  source = "registry+https://github.com/rust-lang/crates.io-index"
626
- checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
626
+ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
627
627
 
628
628
  [[package]]
629
629
  name = "memchr"
630
- version = "2.5.0"
630
+ version = "2.7.2"
631
631
  source = "registry+https://github.com/rust-lang/crates.io-index"
632
- checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
632
+ checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
633
633
 
634
634
  [[package]]
635
635
  name = "memoffset"
@@ -759,7 +759,7 @@ dependencies = [
759
759
  "pest_meta",
760
760
  "proc-macro2",
761
761
  "quote",
762
- "syn 2.0.32",
762
+ "syn 2.0.60",
763
763
  ]
764
764
 
765
765
  [[package]]
@@ -798,6 +798,12 @@ version = "0.5.0"
798
798
  source = "registry+https://github.com/rust-lang/crates.io-index"
799
799
  checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
800
800
 
801
+ [[package]]
802
+ name = "portable-atomic"
803
+ version = "1.6.0"
804
+ source = "registry+https://github.com/rust-lang/crates.io-index"
805
+ checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
806
+
801
807
  [[package]]
802
808
  name = "ppv-lite86"
803
809
  version = "0.2.17"
@@ -812,24 +818,25 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
812
818
 
813
819
  [[package]]
814
820
  name = "proc-macro2"
815
- version = "1.0.66"
821
+ version = "1.0.81"
816
822
  source = "registry+https://github.com/rust-lang/crates.io-index"
817
- checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
823
+ checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
818
824
  dependencies = [
819
825
  "unicode-ident",
820
826
  ]
821
827
 
822
828
  [[package]]
823
829
  name = "pyo3"
824
- version = "0.20.2"
830
+ version = "0.21.2"
825
831
  source = "registry+https://github.com/rust-lang/crates.io-index"
826
- checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
832
+ checksum = "a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8"
827
833
  dependencies = [
828
834
  "cfg-if",
829
835
  "indoc",
830
836
  "libc",
831
837
  "memoffset",
832
838
  "parking_lot",
839
+ "portable-atomic",
833
840
  "pyo3-build-config",
834
841
  "pyo3-ffi",
835
842
  "pyo3-macros",
@@ -838,9 +845,9 @@ dependencies = [
838
845
 
839
846
  [[package]]
840
847
  name = "pyo3-build-config"
841
- version = "0.20.2"
848
+ version = "0.21.2"
842
849
  source = "registry+https://github.com/rust-lang/crates.io-index"
843
- checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
850
+ checksum = "7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50"
844
851
  dependencies = [
845
852
  "once_cell",
846
853
  "target-lexicon",
@@ -848,9 +855,9 @@ dependencies = [
848
855
 
849
856
  [[package]]
850
857
  name = "pyo3-ffi"
851
- version = "0.20.2"
858
+ version = "0.21.2"
852
859
  source = "registry+https://github.com/rust-lang/crates.io-index"
853
- checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
860
+ checksum = "01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403"
854
861
  dependencies = [
855
862
  "libc",
856
863
  "pyo3-build-config",
@@ -858,9 +865,9 @@ dependencies = [
858
865
 
859
866
  [[package]]
860
867
  name = "pyo3-log"
861
- version = "0.9.0"
868
+ version = "0.10.0"
862
869
  source = "registry+https://github.com/rust-lang/crates.io-index"
863
- checksum = "4c10808ee7250403bedb24bc30c32493e93875fef7ba3e4292226fe924f398bd"
870
+ checksum = "2af49834b8d2ecd555177e63b273b708dea75150abc6f5341d0a6e1a9623976c"
864
871
  dependencies = [
865
872
  "arc-swap",
866
873
  "log",
@@ -869,33 +876,34 @@ dependencies = [
869
876
 
870
877
  [[package]]
871
878
  name = "pyo3-macros"
872
- version = "0.20.2"
879
+ version = "0.21.2"
873
880
  source = "registry+https://github.com/rust-lang/crates.io-index"
874
- checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
881
+ checksum = "77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c"
875
882
  dependencies = [
876
883
  "proc-macro2",
877
884
  "pyo3-macros-backend",
878
885
  "quote",
879
- "syn 2.0.32",
886
+ "syn 2.0.60",
880
887
  ]
881
888
 
882
889
  [[package]]
883
890
  name = "pyo3-macros-backend"
884
- version = "0.20.2"
891
+ version = "0.21.2"
885
892
  source = "registry+https://github.com/rust-lang/crates.io-index"
886
- checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
893
+ checksum = "08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c"
887
894
  dependencies = [
888
895
  "heck",
889
896
  "proc-macro2",
897
+ "pyo3-build-config",
890
898
  "quote",
891
- "syn 2.0.32",
899
+ "syn 2.0.60",
892
900
  ]
893
901
 
894
902
  [[package]]
895
903
  name = "quote"
896
- version = "1.0.31"
904
+ version = "1.0.36"
897
905
  source = "registry+https://github.com/rust-lang/crates.io-index"
898
- checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
906
+ checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
899
907
  dependencies = [
900
908
  "proc-macro2",
901
909
  ]
@@ -963,25 +971,25 @@ dependencies = [
963
971
 
964
972
  [[package]]
965
973
  name = "regex"
966
- version = "1.9.1"
974
+ version = "1.10.4"
967
975
  source = "registry+https://github.com/rust-lang/crates.io-index"
968
- checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
976
+ checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
969
977
  dependencies = [
970
978
  "aho-corasick",
971
979
  "memchr",
972
980
  "regex-automata",
973
- "regex-syntax",
981
+ "regex-syntax 0.8.3",
974
982
  ]
975
983
 
976
984
  [[package]]
977
985
  name = "regex-automata"
978
- version = "0.3.3"
986
+ version = "0.4.6"
979
987
  source = "registry+https://github.com/rust-lang/crates.io-index"
980
- checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
988
+ checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
981
989
  dependencies = [
982
990
  "aho-corasick",
983
991
  "memchr",
984
- "regex-syntax",
992
+ "regex-syntax 0.8.3",
985
993
  ]
986
994
 
987
995
  [[package]]
@@ -990,6 +998,12 @@ version = "0.7.4"
990
998
  source = "registry+https://github.com/rust-lang/crates.io-index"
991
999
  checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
992
1000
 
1001
+ [[package]]
1002
+ name = "regex-syntax"
1003
+ version = "0.8.3"
1004
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1005
+ checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
1006
+
993
1007
  [[package]]
994
1008
  name = "rustc-hash"
995
1009
  version = "1.1.0"
@@ -1029,29 +1043,29 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
1029
1043
 
1030
1044
  [[package]]
1031
1045
  name = "serde"
1032
- version = "1.0.188"
1046
+ version = "1.0.199"
1033
1047
  source = "registry+https://github.com/rust-lang/crates.io-index"
1034
- checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
1048
+ checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a"
1035
1049
  dependencies = [
1036
1050
  "serde_derive",
1037
1051
  ]
1038
1052
 
1039
1053
  [[package]]
1040
1054
  name = "serde_derive"
1041
- version = "1.0.188"
1055
+ version = "1.0.199"
1042
1056
  source = "registry+https://github.com/rust-lang/crates.io-index"
1043
- checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
1057
+ checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc"
1044
1058
  dependencies = [
1045
1059
  "proc-macro2",
1046
1060
  "quote",
1047
- "syn 2.0.32",
1061
+ "syn 2.0.60",
1048
1062
  ]
1049
1063
 
1050
1064
  [[package]]
1051
1065
  name = "serde_json"
1052
- version = "1.0.107"
1066
+ version = "1.0.116"
1053
1067
  source = "registry+https://github.com/rust-lang/crates.io-index"
1054
- checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
1068
+ checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
1055
1069
  dependencies = [
1056
1070
  "indexmap",
1057
1071
  "itoa",
@@ -1124,9 +1138,9 @@ dependencies = [
1124
1138
 
1125
1139
  [[package]]
1126
1140
  name = "syn"
1127
- version = "2.0.32"
1141
+ version = "2.0.60"
1128
1142
  source = "registry+https://github.com/rust-lang/crates.io-index"
1129
- checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2"
1143
+ checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
1130
1144
  dependencies = [
1131
1145
  "proc-macro2",
1132
1146
  "quote",
@@ -1189,7 +1203,7 @@ checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
1189
1203
  dependencies = [
1190
1204
  "proc-macro2",
1191
1205
  "quote",
1192
- "syn 2.0.32",
1206
+ "syn 2.0.60",
1193
1207
  ]
1194
1208
 
1195
1209
  [[package]]
@@ -1239,9 +1253,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
1239
1253
 
1240
1254
  [[package]]
1241
1255
  name = "uuid"
1242
- version = "1.7.0"
1256
+ version = "1.8.0"
1243
1257
  source = "registry+https://github.com/rust-lang/crates.io-index"
1244
- checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
1258
+ checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
1245
1259
  dependencies = [
1246
1260
  "getrandom",
1247
1261
  ]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "egglog-python"
3
- version = "6.1.0"
3
+ version = "7.1.0"
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,19 +9,19 @@ name = "egglog_python"
9
9
  crate-type = ["cdylib"]
10
10
 
11
11
  [dependencies]
12
- pyo3 = { version = "0.20.2", features = ["extension-module"] }
12
+ pyo3 = { version = "0.21", 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 = "0113af1d6476b75d4319591cc3d675f96a71cdc5" }
15
+ egglog = { git = "https://github.com/egraphs-good/egglog", rev = "fb4a9f114f9bb93154d6eff0dbab079b5cb4ebb6" }
16
16
  # egglog = { git = "https://github.com/oflatt/egg-smol", branch = "oflatt-fast-terms" }
17
17
  # egglog = { git = "https://github.com/saulshanabrook/egg-smol", rev = "38b3014b34399cc78887ede09c845b2a5d6c7d19" }
18
18
  egraph-serialize = { git = "https://github.com/egraphs-good/egraph-serialize", rev = "5838c036623e91540831745b1574539e01c8cb23" }
19
19
  serde_json = "*"
20
- pyo3-log = "0.9.0"
21
- log = "0.4.20"
22
- lalrpop-util = { version = "0.20.0", features = ["lexer"] }
20
+ pyo3-log = "0.10.0"
21
+ log = "0.4.21"
22
+ lalrpop-util = { version = "0.20.2", features = ["lexer"] }
23
23
  ordered-float = "*"
24
- uuid = { version = "1.7.0", features = ["v4"] }
24
+ uuid = { version = "1.8.0", features = ["v4"] }
25
25
  num-rational = "*"
26
26
 
27
27
  [package.metadata.maturin]