egglog 6.1.0__tar.gz → 7.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 (118) hide show
  1. {egglog-6.1.0 → egglog-7.0.0}/.github/workflows/CI.yml +0 -68
  2. egglog-7.0.0/.github/workflows/version.yml +133 -0
  3. {egglog-6.1.0 → egglog-7.0.0}/.pre-commit-config.yaml +1 -1
  4. egglog-7.0.0/CITATION.cff +35 -0
  5. {egglog-6.1.0 → egglog-7.0.0}/Cargo.lock +21 -13
  6. {egglog-6.1.0 → egglog-7.0.0}/Cargo.toml +3 -3
  7. {egglog-6.1.0 → egglog-7.0.0}/PKG-INFO +19 -19
  8. {egglog-6.1.0 → egglog-7.0.0}/docs/changelog.md +8 -0
  9. egglog-7.0.0/docs/explanation/2024_03_17_community_talk.ipynb +9604 -0
  10. egglog-7.0.0/increment_version.py +79 -0
  11. {egglog-6.1.0 → egglog-7.0.0}/pyproject.toml +10 -0
  12. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/__init__.py +1 -1
  13. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/bindings.pyi +2 -0
  14. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/builtins.py +1 -1
  15. egglog-7.0.0/python/egglog/conversion.py +172 -0
  16. egglog-7.0.0/python/egglog/declarations.py +614 -0
  17. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/egraph.py +531 -804
  18. egglog-7.0.0/python/egglog/egraph_state.py +417 -0
  19. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/exp/array_api.py +92 -80
  20. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/exp/array_api_numba.py +6 -1
  21. egglog-7.0.0/python/egglog/exp/siu_examples.py +35 -0
  22. egglog-7.0.0/python/egglog/pretty.py +418 -0
  23. egglog-7.0.0/python/egglog/runtime.py +466 -0
  24. egglog-7.0.0/python/egglog/thunk.py +72 -0
  25. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/type_constraint_solver.py +5 -2
  26. {egglog-6.1.0 → egglog-7.0.0}/python/tests/__snapshots__/test_array_api/TestLDA.test_optimize.py +2 -2
  27. {egglog-6.1.0 → egglog-7.0.0}/python/tests/__snapshots__/test_array_api/TestLDA.test_source_optimized.py +2 -2
  28. {egglog-6.1.0 → egglog-7.0.0}/python/tests/conftest.py +3 -3
  29. {egglog-6.1.0 → egglog-7.0.0}/python/tests/test_array_api.py +34 -29
  30. {egglog-6.1.0 → egglog-7.0.0}/python/tests/test_high_level.py +21 -2
  31. egglog-7.0.0/python/tests/test_pretty.py +149 -0
  32. egglog-7.0.0/python/tests/test_runtime.py +108 -0
  33. egglog-7.0.0/rust-toolchain.toml +2 -0
  34. {egglog-6.1.0 → egglog-7.0.0}/src/conversions.rs +2 -2
  35. {egglog-6.1.0 → egglog-7.0.0}/src/egraph.rs +27 -12
  36. {egglog-6.1.0 → egglog-7.0.0}/src/lib.rs +1 -1
  37. {egglog-6.1.0 → egglog-7.0.0}/src/py_object_sort.rs +15 -13
  38. {egglog-6.1.0 → egglog-7.0.0}/src/serialize.rs +1 -3
  39. {egglog-6.1.0 → egglog-7.0.0}/src/utils.rs +3 -3
  40. egglog-6.1.0/docs/explanation/2024_03_17_community_talk.ipynb +0 -9538
  41. egglog-6.1.0/python/egglog/declarations.py +0 -1020
  42. egglog-6.1.0/python/egglog/runtime.py +0 -700
  43. egglog-6.1.0/python/tests/test_runtime.py +0 -143
  44. egglog-6.1.0/rust-toolchain +0 -1
  45. {egglog-6.1.0 → egglog-7.0.0}/.gitignore +0 -0
  46. {egglog-6.1.0 → egglog-7.0.0}/.readthedocs.yaml +0 -0
  47. {egglog-6.1.0 → egglog-7.0.0}/LICENSE +0 -0
  48. {egglog-6.1.0 → egglog-7.0.0}/README.md +0 -0
  49. {egglog-6.1.0 → egglog-7.0.0}/conftest.py +0 -0
  50. {egglog-6.1.0 → egglog-7.0.0}/docs/.gitignore +0 -0
  51. {egglog-6.1.0 → egglog-7.0.0}/docs/_templates/comments.html +0 -0
  52. {egglog-6.1.0 → egglog-7.0.0}/docs/conf.py +0 -0
  53. {egglog-6.1.0 → egglog-7.0.0}/docs/environment.yml +0 -0
  54. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/.gitignore +0 -0
  55. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/2023_07_presentation.ipynb +0 -0
  56. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/2023_11_09_portland_state.ipynb +0 -0
  57. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/2023_11_17_pytensor.ipynb +0 -0
  58. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/2023_11_pydata_lightning_talk.ipynb +0 -0
  59. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/2023_12_02_congruence_closure-1.png +0 -0
  60. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/2023_12_02_congruence_closure-2.png +0 -0
  61. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/2023_12_02_congruence_closure.md +0 -0
  62. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/2024_03_17_map.svg +0 -0
  63. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/big_graph.svg +0 -0
  64. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/define_and_define.md +0 -0
  65. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/ecosystem-graph.png +0 -0
  66. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/egg.png +0 -0
  67. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/indexing_pushdown.ipynb +0 -0
  68. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/moa.png +0 -0
  69. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/optional_values.md +0 -0
  70. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation/pldi_2023_presentation.ipynb +0 -0
  71. {egglog-6.1.0 → egglog-7.0.0}/docs/explanation.md +0 -0
  72. {egglog-6.1.0 → egglog-7.0.0}/docs/how-to-guides.md +0 -0
  73. {egglog-6.1.0 → egglog-7.0.0}/docs/index.md +0 -0
  74. {egglog-6.1.0 → egglog-7.0.0}/docs/reference/bindings.md +0 -0
  75. {egglog-6.1.0 → egglog-7.0.0}/docs/reference/contributing.md +0 -0
  76. {egglog-6.1.0 → egglog-7.0.0}/docs/reference/egglog-translation.md +0 -0
  77. {egglog-6.1.0 → egglog-7.0.0}/docs/reference/high-level.md +0 -0
  78. {egglog-6.1.0 → egglog-7.0.0}/docs/reference/python-integration.md +0 -0
  79. {egglog-6.1.0 → egglog-7.0.0}/docs/reference/usage.md +0 -0
  80. {egglog-6.1.0 → egglog-7.0.0}/docs/reference.md +0 -0
  81. {egglog-6.1.0 → egglog-7.0.0}/docs/tutorials/getting-started.ipynb +0 -0
  82. {egglog-6.1.0 → egglog-7.0.0}/docs/tutorials/screenshot-1.png +0 -0
  83. {egglog-6.1.0 → egglog-7.0.0}/docs/tutorials/screenshot-2.png +0 -0
  84. {egglog-6.1.0 → egglog-7.0.0}/docs/tutorials/sklearn.ipynb +0 -0
  85. {egglog-6.1.0 → egglog-7.0.0}/docs/tutorials.md +0 -0
  86. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/config.py +0 -0
  87. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/examples/README.rst +0 -0
  88. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/examples/__init__.py +0 -0
  89. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/examples/bool.py +0 -0
  90. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/examples/eqsat_basic.py +0 -0
  91. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/examples/fib.py +0 -0
  92. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/examples/lambda_.py +0 -0
  93. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/examples/matrix.py +0 -0
  94. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/examples/ndarrays.py +0 -0
  95. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/examples/resolution.py +0 -0
  96. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/examples/schedule_demo.py +0 -0
  97. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/exp/__init__.py +0 -0
  98. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/exp/array_api_jit.py +0 -0
  99. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/exp/array_api_program_gen.py +0 -0
  100. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/exp/program_gen.py +0 -0
  101. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/graphviz_widget.py +0 -0
  102. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/ipython_magic.py +0 -0
  103. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/py.typed +0 -0
  104. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/widget.css +0 -0
  105. {egglog-6.1.0 → egglog-7.0.0}/python/egglog/widget.js +0 -0
  106. {egglog-6.1.0 → egglog-7.0.0}/python/tests/__init__.py +0 -0
  107. {egglog-6.1.0 → egglog-7.0.0}/python/tests/__snapshots__/test_array_api/TestLDA.test_trace.py +0 -0
  108. {egglog-6.1.0 → egglog-7.0.0}/python/tests/__snapshots__/test_program_gen/test_to_string.py +0 -0
  109. {egglog-6.1.0 → egglog-7.0.0}/python/tests/test_bindings.py +0 -0
  110. {egglog-6.1.0 → egglog-7.0.0}/python/tests/test_convert.py +0 -0
  111. {egglog-6.1.0 → egglog-7.0.0}/python/tests/test_modules.py +0 -0
  112. {egglog-6.1.0 → egglog-7.0.0}/python/tests/test_program_gen.py +0 -0
  113. {egglog-6.1.0 → egglog-7.0.0}/python/tests/test_py_object_sort.py +0 -0
  114. {egglog-6.1.0 → egglog-7.0.0}/python/tests/test_type_constraint_solver.py +0 -0
  115. {egglog-6.1.0 → egglog-7.0.0}/python/tests/test_typing.py +0 -0
  116. {egglog-6.1.0 → egglog-7.0.0}/src/error.rs +0 -0
  117. {egglog-6.1.0 → egglog-7.0.0}/stubtest_allow +0 -0
  118. {egglog-6.1.0 → egglog-7.0.0}/test-data/unit/check-high-level.test +0 -0
@@ -4,9 +4,6 @@ on:
4
4
  push:
5
5
  branches:
6
6
  - main
7
- - master
8
- tags:
9
- - "*"
10
7
  pull_request:
11
8
  workflow_dispatch:
12
9
 
@@ -81,68 +78,3 @@ jobs:
81
78
  sudo apt-get install -y graphviz
82
79
  - run: pip install -e .[docs] pre-commit
83
80
  - run: pre-commit run --hook-stage manual docs
84
- linux:
85
- name: build linux
86
- runs-on: ubuntu-latest
87
- needs: [test]
88
- steps:
89
- - uses: actions/checkout@v4
90
- - uses: PyO3/maturin-action@v1.40.1
91
- with:
92
- manylinux: auto
93
- command: build
94
- args: --release --sdist -o dist --find-interpreter
95
- - name: Upload wheels
96
- uses: actions/upload-artifact@v2
97
- with:
98
- name: wheels
99
- path: dist
100
-
101
- windows:
102
- name: build windows
103
- runs-on: windows-latest
104
- needs: [test]
105
- steps:
106
- - uses: actions/checkout@v4
107
- - uses: PyO3/maturin-action@v1.40.1
108
- with:
109
- command: build
110
- args: --release -o dist --find-interpreter
111
- - name: Upload wheels
112
- uses: actions/upload-artifact@v2
113
- with:
114
- name: wheels
115
- path: dist
116
-
117
- macos:
118
- name: build macos
119
- runs-on: macos-latest
120
- needs: [test]
121
- steps:
122
- - uses: actions/checkout@v4
123
- - uses: PyO3/maturin-action@v1.40.1
124
- with:
125
- command: build
126
- args: --release -o dist --universal2 --find-interpreter
127
- - name: Upload wheels
128
- uses: actions/upload-artifact@v2
129
- with:
130
- name: wheels
131
- path: dist
132
-
133
- release:
134
- name: Release
135
- runs-on: ubuntu-latest
136
- if: startsWith(github.ref, 'refs/tags/') || (github.event_name == 'workflow_dispatch')
137
- needs: [macos, windows, linux]
138
- steps:
139
- - uses: actions/download-artifact@v2
140
- with:
141
- name: wheels
142
- - name: Publish to PyPI
143
- uses: PyO3/maturin-action@v1.40.1
144
- env:
145
- MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
146
- with:
147
- command: upload
148
- args: --skip-existing *
@@ -0,0 +1,133 @@
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.40.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@v2
63
+ with:
64
+ name: wheels
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.40.1
76
+ with:
77
+ command: build
78
+ args: --release -o dist --find-interpreter
79
+ - name: Upload wheels
80
+ uses: actions/upload-artifact@v2
81
+ with:
82
+ name: wheels
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.40.1
94
+ with:
95
+ command: build
96
+ args: --release -o dist --universal2 --find-interpreter
97
+ - name: Upload wheels
98
+ uses: actions/upload-artifact@v2
99
+ with:
100
+ name: wheels
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@v2
110
+ with:
111
+ name: wheels
112
+ - name: Publish to PyPI
113
+ uses: PyO3/maturin-action@v1.40.1
114
+ env:
115
+ MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
116
+ with:
117
+ command: upload
118
+ args: --skip-existing *
119
+ tag-and-merge:
120
+ runs-on: ubuntu-latest
121
+ permissions: write-all
122
+ needs: [release, bump]
123
+ steps:
124
+ - uses: actions/checkout@v4
125
+ with:
126
+ ref: version-${{ needs.bump.outputs.version }}
127
+ - run: |
128
+ git tag "v$VERSION"
129
+ git push --tags
130
+ gh pr merge --admin --delete-branch
131
+ env:
132
+ VERSION: ${{ needs.bump.outputs.version }}
133
+ 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
@@ -312,7 +312,7 @@ dependencies = [
312
312
 
313
313
  [[package]]
314
314
  name = "egglog-python"
315
- version = "6.1.0"
315
+ version = "7.0.0"
316
316
  dependencies = [
317
317
  "egglog",
318
318
  "egraph-serialize",
@@ -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"
@@ -821,15 +827,16 @@ dependencies = [
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,9 +876,9 @@ 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",
@@ -881,12 +888,13 @@ dependencies = [
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
899
  "syn 2.0.32",
892
900
  ]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "egglog-python"
3
- version = "6.1.0"
3
+ version = "7.0.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,7 +9,7 @@ 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
15
  egglog = { git = "https://github.com/egraphs-good/egglog", rev = "0113af1d6476b75d4319591cc3d675f96a71cdc5" }
@@ -17,7 +17,7 @@ egglog = { git = "https://github.com/egraphs-good/egglog", rev = "0113af1d6476b7
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"
20
+ pyo3-log = "0.10.0"
21
21
  log = "0.4.20"
22
22
  lalrpop-util = { version = "0.20.0", features = ["lexer"] }
23
23
  ordered-float = "*"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: egglog
3
- Version: 6.1.0
3
+ Version: 7.0.0
4
4
  Classifier: Environment :: MacOS X
5
5
  Classifier: Environment :: Win32 (MS Windows)
6
6
  Classifier: Intended Audience :: Developers
@@ -19,22 +19,6 @@ Classifier: Typing :: Typed
19
19
  Requires-Dist: typing-extensions
20
20
  Requires-Dist: black
21
21
  Requires-Dist: graphviz
22
- Requires-Dist: pre-commit; extra == 'dev'
23
- Requires-Dist: ruff; extra == 'dev'
24
- Requires-Dist: mypy; extra == 'dev'
25
- Requires-Dist: anywidget[dev]; extra == 'dev'
26
- Requires-Dist: egglog[docs,test]; extra == 'dev'
27
- Requires-Dist: pytest; extra == 'test'
28
- Requires-Dist: mypy; extra == 'test'
29
- Requires-Dist: syrupy; extra == 'test'
30
- Requires-Dist: egglog[array]; extra == 'test'
31
- Requires-Dist: pytest-codspeed; extra == 'test'
32
- Requires-Dist: pytest-benchmark; extra == 'test'
33
- Requires-Dist: pytest-xdist; extra == 'test'
34
- Requires-Dist: scikit-learn; extra == 'array'
35
- Requires-Dist: array_api_compat; extra == 'array'
36
- Requires-Dist: numba==0.59.0rc1; extra == 'array'
37
- Requires-Dist: llvmlite==0.42.0rc1; extra == 'array'
38
22
  Requires-Dist: pydata-sphinx-theme; extra == 'docs'
39
23
  Requires-Dist: myst-nb; extra == 'docs'
40
24
  Requires-Dist: sphinx-autodoc-typehints; extra == 'docs'
@@ -47,10 +31,26 @@ Requires-Dist: egglog[array]; extra == 'docs'
47
31
  Requires-Dist: line-profiler; extra == 'docs'
48
32
  Requires-Dist: sphinxcontrib-mermaid; extra == 'docs'
49
33
  Requires-Dist: ablog; extra == 'docs'
34
+ Requires-Dist: pre-commit; extra == 'dev'
35
+ Requires-Dist: ruff; extra == 'dev'
36
+ Requires-Dist: mypy; extra == 'dev'
37
+ Requires-Dist: anywidget[dev]; extra == 'dev'
38
+ Requires-Dist: egglog[docs,test]; extra == 'dev'
39
+ Requires-Dist: scikit-learn; extra == 'array'
40
+ Requires-Dist: array_api_compat; extra == 'array'
41
+ Requires-Dist: numba==0.59.0rc1; extra == 'array'
42
+ Requires-Dist: llvmlite==0.42.0rc1; extra == 'array'
43
+ Requires-Dist: pytest; extra == 'test'
44
+ Requires-Dist: mypy; extra == 'test'
45
+ Requires-Dist: syrupy; extra == 'test'
46
+ Requires-Dist: egglog[array]; extra == 'test'
47
+ Requires-Dist: pytest-codspeed; extra == 'test'
48
+ Requires-Dist: pytest-benchmark; extra == 'test'
49
+ Requires-Dist: pytest-xdist; extra == 'test'
50
+ Provides-Extra: docs
50
51
  Provides-Extra: dev
51
- Provides-Extra: test
52
52
  Provides-Extra: array
53
- Provides-Extra: docs
53
+ Provides-Extra: test
54
54
  License-File: LICENSE
55
55
  Summary: e-graphs in Python built around the the egglog rust library
56
56
  License: MIT
@@ -4,6 +4,14 @@ _This project uses semantic versioning_
4
4
 
5
5
  ## UNRELEASED
6
6
 
7
+ ## 7.0.0 (2024-04-27)
8
+
9
+ - Defers adding rules in functions until they are used, so that you can use types that are not present yet.
10
+ - Removes ability to set custom default ruleset for egraph. Either just use the empty default ruleset or explicitly set it for every run
11
+ - Automatically mark Python builtin operators as preserved if they must return a real Python value
12
+ - Properly pretty print all items (rewrites, actions, exprs, etc) so that expressions are de-duplicated and state is handled correctly.
13
+ - Add automatic releases from github manual action
14
+
7
15
  ## 6.1.0 (2024-03-06)
8
16
 
9
17
  - Upgrade [egglog](https://github.com/egraphs-good/egglog/compare/4cc011f6b48029dd72104a38a2ca0c7657846e0b...0113af1d6476b75d4319591cc3d675f96a71cdc5)