Skip to content

Commit 086eb41

Browse files
Merge pull request #31 from metadsl/add-py-object
Add support for low level Python objects
2 parents 4a3d1e3 + 4d6b44c commit 086eb41

33 files changed

+14782
-497
lines changed

Cargo.lock

Lines changed: 71 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ crate-type = ["cdylib"]
1212
# Use unreleased version to depend on signature improvements https://github.com/PyO3/pyo3/pull/2702
1313
pyo3 = { version = "0.18.1", features = ["extension-module"] }
1414
# egglog = { git = "https://github.com/egraphs-good/egglog", rev = "39b199d9bfce9cc47d0c54977279c5b04231e717" }
15-
egglog = { git = "https://github.com/saulshanabrook/egg-smol", rev = "353c4387640019bd2066991ee0488dc6d5c54168" }
15+
egglog = { git = "https://github.com/saulshanabrook/egg-smol", rev = "2ac80cb1162c61baef295d8e6d00351bfe84883f" }
1616

1717
# egglog = { path = "../egg-smol" }
1818
pyo3-log = "0.8.1"
1919
log = "0.4.17"
2020
lalrpop-util = { version = "0.19.8", features = ["lexer"] }
21-
ordered-float = "3.4"
21+
ordered-float = "*"
2222

2323
[package.metadata.maturin]
2424
name = "egglog.bindings"

docs/changelog.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,22 @@ _This project uses semantic versioning. Before 1.0.0, this means that every brea
44

55
## Unreleased
66

7+
- Added initial supported for Python objects [#31](https://github.com/metadsl/egglog-python/pull/31)
8+
9+
- Renamed `BaseExpr` to `Expr` for succinctness
10+
- Add [slides for zoom presentation with Open Teams](explanation/2023_07_presentation)
11+
- Started adding [tutorial for using with array API and sklearn](tutorials/array-api), using this to drive
12+
the support for more Python integration
13+
- Added a PyObject sort with the `save_object` and `load_object` egraphs methods and the `exec`
14+
- Added more general mechanism to upcast Python arguments into egglog expressions, by registering `converter`s
15+
- Added support for default arguments (this required refactoring declerations so that pretty printing can lookup expressions)
16+
- Added support for properties
17+
- Added support for passing args as keywords
18+
- Add support for pure Python methods, using the `preserve` kwarg to implement functions like `__bool__` on expressions.
19+
- Fix `__str__` method when pretty printing breaks.
20+
- Added to/from i64 to i64 methods.
21+
- Upgraded `egg-smol` dependency ([changes](https://github.com/saulshanabrook/egg-smol/compare/353c4387640019bd2066991ee0488dc6d5c54168...2ac80cb1162c61baef295d8e6d00351bfe84883f))
22+
723
## 0.5.1 (2023-07-18)
824

925
- Added support for negation on `f64` sort
@@ -37,7 +53,7 @@ _This project uses semantic versioning. Before 1.0.0, this means that every brea
3753

3854
- Fix bug calling methods on paramterized types (e.g. `Map[i64, i64].empty().insert(i64(0), i64(1))`)
3955
- Fix bug for Unit type (egg name is `Unit` not `unit`)
40-
- Use `@class_` decorator to force subclassing `BaseExpr`
56+
- Use `@class_` decorator to force subclassing `Expr`
4157
- Workaround extracting definitions until [upstream is fixed](https://github.com/egraphs-good/egglog/pull/140)
4258
- Rename `Map.map_remove` to `Map.remove`.
4359
- Add lambda calculus example

docs/explanation.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ explanation/compared_to_rust
55
explanation/optional_values
66
explanation/define_and_define
77
explanation/pldi_2023_presentation
8+
explanation/2023_07_presentation
89
```

0 commit comments

Comments
 (0)