Skip to content

Commit 90bfd57

Browse files
Update unification library
1 parent bc7a580 commit 90bfd57

File tree

2 files changed

+15
-21
lines changed

2 files changed

+15
-21
lines changed

symbolic_pymc/constraints.py

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
from abc import ABC, abstractmethod
44
from types import MappingProxyType
55
from collections import OrderedDict
6+
from collections.abc import Mapping
67

78
from unification import unify, reify, Var
8-
from unification.core import _unify, _reify
9+
from unification.core import _reify
910

1011

1112
class KanrenConstraintStore(ABC):
@@ -120,14 +121,6 @@ def unify_KanrenState(u, v, S):
120121

121122

122123
unify.add((object, object, KanrenState), unify_KanrenState)
123-
unify.add(
124-
(object, object, MappingProxyType),
125-
lambda u, v, d: unify.dispatch(type(u), type(v), dict)(u, v, d),
126-
)
127-
_unify.add(
128-
(object, object, MappingProxyType),
129-
lambda u, v, d: _unify.dispatch(type(u), type(v), dict)(u, v, d),
130-
)
131124

132125

133126
class ConstrainedVar(Var):
@@ -137,13 +130,11 @@ class ConstrainedVar(Var):
137130
138131
"""
139132

140-
__slots__ = ("_id", "token", "S", "var")
133+
__slots__ = ("S", "var")
141134

142-
def __new__(cls, var, S):
143-
obj = super().__new__(cls, var.token)
144-
obj.S = weakref.ref(S)
145-
obj.var = weakref.ref(var)
146-
return obj
135+
def __init__(self, var, S):
136+
self.S = weakref.ref(S)
137+
self.var = weakref.ref(var)
147138

148139
def __repr__(self):
149140
var = self.var()
@@ -161,8 +152,10 @@ def reify_KanrenState(u, S):
161152
return u_res
162153

163154

164-
_reify.add((tuple(p[0] for p in _reify.ordering if p[1] == dict), KanrenState), reify_KanrenState)
165-
_reify.add((object, MappingProxyType), lambda u, s: _reify.dispatch(type(u), dict)(u, s))
155+
_reify.add(
156+
(tuple(p[0] for p in _reify.ordering if issubclass(p[1], Mapping)), KanrenState),
157+
reify_KanrenState,
158+
)
166159

167160

168161
def neq(u, v):

symbolic_pymc/unify.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
from kanren.term import term, operator, arguments
77

88
from unification.more import unify
9-
from unification.core import reify, _unify, _reify, Var, isvar
9+
from unification.variable import Var
10+
from unification.core import reify, _unify, _reify, isvar
1011

1112
from .meta import MetaSymbol, MetaVariable
1213

@@ -117,9 +118,9 @@ def _reify_MetaSymbol(o, s):
117118
)
118119

119120

120-
_isvar = isvar.dispatch(object)
121-
122-
isvar.add((MetaSymbol,), lambda x: _isvar(x) or (not isinstance(x.obj, Var) and isvar(x.obj)))
121+
# _isvar = isvar.dispatch(object)
122+
#
123+
# isvar.add((MetaSymbol,), lambda x: _isvar(x) or (not isinstance(x.obj, Var) and isvar(x.obj)))
123124

124125

125126
# We don't want to lose special functionality (and caching) because `cdr` uses

0 commit comments

Comments
 (0)