Added environment config flags.

These flags are `JAXTYPING_DISABLE` and `JAXTYPING_REMOVE_TYPECHECKER_STACK`.

In addition, have now added warnings when using old-style double-decorator syntax, which also serves to guard against the easy mistake of
```python
@jaxtyped(typechecker)
def foo(...)
```
which actually decorates the `typechecker`, not `foo`.
This commit is contained in:
Patrick Kidger
2023-12-05 19:06:00 -08:00
parent 8e47c9081c
commit 125bc89ee9
6 changed files with 160 additions and 46 deletions
+2 -1
View File
@@ -57,7 +57,8 @@ def jaxtyp(request):
# def f(...)
def impl(typechecker):
def decorator(fn):
return jaxtyping.jaxtyped(typechecker(fn))
with pytest.warns(match="As of jaxtyping version 0.2.24"):
return jaxtyping.jaxtyped(typechecker(fn))
return decorator
+15 -13
View File
@@ -9,49 +9,49 @@ from .helpers import ParamError, ReturnError
class M(metaclass=abc.ABCMeta):
@jaxtyped
@jaxtyped(typechecker=None)
def f(self):
...
@jaxtyped
@jaxtyped(typechecker=None)
@classmethod
def g1(cls):
return 3
@classmethod
@jaxtyped
@jaxtyped(typechecker=None)
def g2(cls):
return 4
@jaxtyped
@jaxtyped(typechecker=None)
@staticmethod
def h1():
return 3
@staticmethod
@jaxtyped
@jaxtyped(typechecker=None)
def h2():
return 4
@jaxtyped
@jaxtyped(typechecker=None)
@abc.abstractmethod
def i1(self):
...
@abc.abstractmethod
@jaxtyped
@jaxtyped(typechecker=None)
def i2(self):
...
class N:
@jaxtyped
@jaxtyped(typechecker=None)
@property
def j1(self):
return 3
@property
@jaxtyped
@jaxtyped(typechecker=None)
def j2(self):
return 4
@@ -154,10 +154,12 @@ def test_local_stringified_annotation(typecheck):
f(LocalFoo())
@jaxtyped
@typecheck
def g(x: "LocalFoo") -> "LocalFoo":
return x
with pytest.warns(match="As of jaxtyping version 0.2.24"):
@jaxtyped
@typecheck
def g(x: "LocalFoo") -> "LocalFoo":
return x
g(LocalFoo())
+1 -2
View File
@@ -39,8 +39,7 @@ class _ErrorableThread(threading.Thread):
def test_threading_jaxtyped():
@jaxtyped
@typechecked
@jaxtyped(typechecker=typechecked)
def add(x: Float[Array, "a b"], y: Float[Array, "a b"]) -> Float[Array, "a b"]:
return x + y