Skip to content

Commit a28f2bb

Browse files
Allow saving non hashable signatures
1 parent e5e669a commit a28f2bb

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

record_api/core.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,16 @@ def signature(fn):
210210
return inspect.signature(fn)
211211

212212

213+
def safe_signature(fn):
214+
"""
215+
If fn is hashable, cache it, otherwise dont use cached version
216+
"""
217+
try:
218+
hash(fn)
219+
except Exception:
220+
return inspect.signature(fn)
221+
return signature(fn)
222+
213223
@dataclasses.dataclass
214224
class Bound:
215225
"""
@@ -236,7 +246,7 @@ def as_dict(self):
236246
@classmethod
237247
def create(cls, fn, args, kwargs) -> Optional[Bound]:
238248
try:
239-
sig = signature(fn)
249+
sig = safe_signature(fn)
240250
except ValueError:
241251
return None
242252
try:

0 commit comments

Comments
 (0)