xbarray 0.0.1a1__py3-none-any.whl → 0.0.1a2__py3-none-any.whl
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 xbarray might be problematic. Click here for more details.
- xbarray/__init__.py +1 -1
- xbarray/{jax → _src/implementations/jax}/__init__.py +10 -4
- xbarray/{jax → _src/implementations/jax}/_extra.py +1 -1
- xbarray/{jax → _src/implementations/jax}/random.py +1 -2
- xbarray/{numpy → _src/implementations/numpy}/__init__.py +8 -4
- xbarray/{numpy → _src/implementations/numpy}/_extra.py +1 -1
- xbarray/{numpy → _src/implementations/numpy}/random.py +1 -2
- xbarray/{pytorch → _src/implementations/pytorch}/__init__.py +8 -4
- xbarray/{pytorch → _src/implementations/pytorch}/_extra.py +1 -1
- xbarray/{pytorch → _src/implementations/pytorch}/random.py +1 -2
- xbarray/_src/serialization/__init__.py +1 -0
- xbarray/_src/serialization/serialization_map.py +31 -0
- xbarray/base/base.py +2 -2
- xbarray/cls_impl/cls_base.py +10 -0
- xbarray/jax.py +13 -0
- xbarray/numpy.py +13 -0
- xbarray/pytorch.py +13 -0
- {xbarray-0.0.1a1.dist-info → xbarray-0.0.1a2.dist-info}/METADATA +2 -1
- xbarray-0.0.1a2.dist-info/RECORD +41 -0
- xbarray-0.0.1a1.dist-info/RECORD +0 -35
- /xbarray/{common → _src/implementations/_common}/implementations.py +0 -0
- /xbarray/{jax → _src/implementations/jax}/_typing.py +0 -0
- /xbarray/{numpy → _src/implementations/numpy}/_typing.py +0 -0
- /xbarray/{pytorch → _src/implementations/pytorch}/_typing.py +0 -0
- {xbarray-0.0.1a1.dist-info → xbarray-0.0.1a2.dist-info}/WHEEL +0 -0
- {xbarray-0.0.1a1.dist-info → xbarray-0.0.1a2.dist-info}/licenses/LICENSE +0 -0
- {xbarray-0.0.1a1.dist-info → xbarray-0.0.1a2.dist-info}/top_level.txt +0 -0
xbarray/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
from .base import *
|
|
1
|
+
from .base import * # Import Abstract Typings
|
|
@@ -9,16 +9,22 @@ else:
|
|
|
9
9
|
import jax.experimental.array_api as compat_module
|
|
10
10
|
from jax.experimental.array_api import *
|
|
11
11
|
|
|
12
|
+
from array_api_compat.common._helpers import *
|
|
13
|
+
|
|
12
14
|
# Import and bind all functions from array_api_extra before exposing them
|
|
13
15
|
import array_api_extra
|
|
14
16
|
from functools import partial
|
|
15
17
|
for api_name in dir(array_api_extra):
|
|
16
18
|
if api_name.startswith('_'):
|
|
17
19
|
continue
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
|
|
21
|
+
if api_name == 'at':
|
|
22
|
+
globals()[api_name] = getattr(array_api_extra, api_name)
|
|
23
|
+
else:
|
|
24
|
+
globals()[api_name] = partial(
|
|
25
|
+
getattr(array_api_extra, api_name),
|
|
26
|
+
xp=compat_module
|
|
27
|
+
)
|
|
22
28
|
|
|
23
29
|
from ._typing import *
|
|
24
30
|
from ._extra import *
|
|
@@ -77,7 +77,7 @@ def dtype_is_boolean(
|
|
|
77
77
|
) -> bool:
|
|
78
78
|
return dtype == np.bool_ or dtype == bool
|
|
79
79
|
|
|
80
|
-
from
|
|
80
|
+
from .._common.implementations import *
|
|
81
81
|
if hasattr(jax.numpy, "__array_api_version__"):
|
|
82
82
|
compat_module = jax.numpy
|
|
83
83
|
else:
|
|
@@ -26,9 +26,9 @@ def random_number_generator(
|
|
|
26
26
|
|
|
27
27
|
def random_discrete_uniform(
|
|
28
28
|
shape : Union[int, Tuple[int, ...]],
|
|
29
|
+
/,
|
|
29
30
|
from_num : int,
|
|
30
31
|
to_num : int,
|
|
31
|
-
/,
|
|
32
32
|
*,
|
|
33
33
|
rng : RNG_TYPE,
|
|
34
34
|
dtype : Optional[DTYPE_TYPE] = None,
|
|
@@ -70,7 +70,6 @@ def random_exponential(
|
|
|
70
70
|
data = jax.device_put(data, device)
|
|
71
71
|
return new_rng, data
|
|
72
72
|
|
|
73
|
-
@classmethod
|
|
74
73
|
def random_normal(
|
|
75
74
|
shape: Union[int, Tuple[int, ...]],
|
|
76
75
|
/,
|
|
@@ -9,10 +9,14 @@ from functools import partial
|
|
|
9
9
|
for api_name in dir(array_api_extra):
|
|
10
10
|
if api_name.startswith('_'):
|
|
11
11
|
continue
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
|
|
13
|
+
if api_name == 'at':
|
|
14
|
+
globals()[api_name] = getattr(array_api_extra, api_name)
|
|
15
|
+
else:
|
|
16
|
+
globals()[api_name] = partial(
|
|
17
|
+
getattr(array_api_extra, api_name),
|
|
18
|
+
xp=compat_module
|
|
19
|
+
)
|
|
16
20
|
|
|
17
21
|
from ._typing import *
|
|
18
22
|
from ._extra import *
|
|
@@ -68,7 +68,7 @@ def dtype_is_boolean(
|
|
|
68
68
|
) -> bool:
|
|
69
69
|
return dtype == np.bool_ or dtype == bool
|
|
70
70
|
|
|
71
|
-
from
|
|
71
|
+
from .._common.implementations import get_abbreviate_array_function, get_map_fn_over_arrays_function
|
|
72
72
|
from array_api_compat import numpy as compat_module
|
|
73
73
|
abbreviate_array = get_abbreviate_array_function(
|
|
74
74
|
backend=compat_module,
|
|
@@ -21,9 +21,9 @@ def random_number_generator(
|
|
|
21
21
|
|
|
22
22
|
def random_discrete_uniform(
|
|
23
23
|
shape : Union[int, Tuple[int, ...]],
|
|
24
|
+
/,
|
|
24
25
|
from_num : int,
|
|
25
26
|
to_num : int,
|
|
26
|
-
/,
|
|
27
27
|
*,
|
|
28
28
|
rng : RNG_TYPE,
|
|
29
29
|
dtype : Optional[DTYPE_TYPE] = None,
|
|
@@ -62,7 +62,6 @@ def random_exponential(
|
|
|
62
62
|
t = t.astype(dtype)
|
|
63
63
|
return rng, t
|
|
64
64
|
|
|
65
|
-
@classmethod
|
|
66
65
|
def random_normal(
|
|
67
66
|
shape: Union[int, Tuple[int, ...]],
|
|
68
67
|
/,
|
|
@@ -10,10 +10,14 @@ from functools import partial
|
|
|
10
10
|
for api_name in dir(array_api_extra):
|
|
11
11
|
if api_name.startswith('_'):
|
|
12
12
|
continue
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
|
|
14
|
+
if api_name == 'at':
|
|
15
|
+
globals()[api_name] = getattr(array_api_extra, api_name)
|
|
16
|
+
else:
|
|
17
|
+
globals()[api_name] = partial(
|
|
18
|
+
getattr(array_api_extra, api_name),
|
|
19
|
+
xp=compat_module
|
|
20
|
+
)
|
|
17
21
|
|
|
18
22
|
from ._typing import *
|
|
19
23
|
from ._extra import *
|
|
@@ -95,7 +95,7 @@ def dtype_is_boolean(
|
|
|
95
95
|
) -> bool:
|
|
96
96
|
return dtype == torch.bool
|
|
97
97
|
|
|
98
|
-
from
|
|
98
|
+
from .._common.implementations import get_abbreviate_array_function, get_map_fn_over_arrays_function
|
|
99
99
|
from array_api_compat import torch as compat_module
|
|
100
100
|
abbreviate_array = get_abbreviate_array_function(
|
|
101
101
|
compat_module,
|
|
@@ -27,9 +27,9 @@ def random_number_generator(
|
|
|
27
27
|
|
|
28
28
|
def random_discrete_uniform(
|
|
29
29
|
shape : Union[int, Tuple[int, ...]],
|
|
30
|
+
/,
|
|
30
31
|
from_num : int,
|
|
31
32
|
to_num : int,
|
|
32
|
-
/,
|
|
33
33
|
*,
|
|
34
34
|
rng : RNG_TYPE,
|
|
35
35
|
dtype : Optional[DTYPE_TYPE] = None,
|
|
@@ -64,7 +64,6 @@ def random_exponential(
|
|
|
64
64
|
t = t.exponential_(lambd, generator=rng)
|
|
65
65
|
return rng, t
|
|
66
66
|
|
|
67
|
-
@classmethod
|
|
68
67
|
def random_normal(
|
|
69
68
|
shape: Union[int, Tuple[int, ...]],
|
|
70
69
|
/,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .serialization_map import *
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from typing import Type, Dict, Any, Optional, List, Callable
|
|
2
|
+
from types import ModuleType
|
|
3
|
+
import importlib
|
|
4
|
+
|
|
5
|
+
__all__ = [
|
|
6
|
+
"implementation_module_to_name",
|
|
7
|
+
"name_to_implementation_module",
|
|
8
|
+
]
|
|
9
|
+
|
|
10
|
+
def implementation_module_to_name(module : ModuleType) -> str:
|
|
11
|
+
"""
|
|
12
|
+
Convert a backend module to its simplified name.
|
|
13
|
+
"""
|
|
14
|
+
full_name = module.__name__
|
|
15
|
+
if not full_name.startswith("xbarray.implementations."):
|
|
16
|
+
raise ValueError(f"Module {full_name} is not a valid xbarray backend module.")
|
|
17
|
+
|
|
18
|
+
submodule_name = full_name[len("xbarray.implementations"):]
|
|
19
|
+
if '.' in submodule_name:
|
|
20
|
+
raise ValueError(f"Module {full_name} is not a valid xbarray backend module.")
|
|
21
|
+
return submodule_name
|
|
22
|
+
|
|
23
|
+
def name_to_implementation_module(name: str) -> Type[ModuleType]:
|
|
24
|
+
"""
|
|
25
|
+
Convert a simplified backend name to its module.
|
|
26
|
+
"""
|
|
27
|
+
try:
|
|
28
|
+
return importlib.import_module(f"xbarray.implementations.{name}")
|
|
29
|
+
except ImportError as e:
|
|
30
|
+
raise ImportError(f"Could not import backend module '{name}'.") from e
|
|
31
|
+
|
xbarray/base/base.py
CHANGED
|
@@ -40,9 +40,9 @@ class RNGBackend(Protocol[BArrayType, BDeviceType, BDtypeType, BRNGType]):
|
|
|
40
40
|
def random_discrete_uniform(
|
|
41
41
|
self,
|
|
42
42
|
shape : Union[int, Tuple[int, ...]],
|
|
43
|
-
from_num : int,
|
|
44
|
-
to_num : int,
|
|
45
43
|
/,
|
|
44
|
+
from_num : int,
|
|
45
|
+
to_num : int,
|
|
46
46
|
*,
|
|
47
47
|
rng : BRNGType,
|
|
48
48
|
dtype : Optional[BDtypeType] = None,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from types import ModuleType
|
|
2
|
+
from typing import Type
|
|
3
|
+
from xbarray._src.serialization import implementation_module_to_name, name_to_implementation_module
|
|
4
|
+
|
|
5
|
+
class ComputeBackendImplCls(Type):
|
|
6
|
+
def __str__(self):
|
|
7
|
+
return self.simplified_name
|
|
8
|
+
|
|
9
|
+
def __repr__(self):
|
|
10
|
+
return self.simplified_name
|
xbarray/jax.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from xbarray.cls_impl.cls_base import ComputeBackendImplCls
|
|
2
|
+
from ._src.implementations import jax as jax_impl
|
|
3
|
+
|
|
4
|
+
class JaxComputeBackend(metaclass=ComputeBackendImplCls):
|
|
5
|
+
pass
|
|
6
|
+
|
|
7
|
+
for name in dir(jax_impl):
|
|
8
|
+
if not name.startswith('_'):
|
|
9
|
+
setattr(JaxComputeBackend, name, getattr(jax_impl, name))
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
'JaxComputeBackend',
|
|
13
|
+
]
|
xbarray/numpy.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from xbarray.cls_impl.cls_base import ComputeBackendImplCls
|
|
2
|
+
from ._src.implementations import numpy as numpy_impl
|
|
3
|
+
|
|
4
|
+
class NumpyComputeBackend(metaclass=ComputeBackendImplCls):
|
|
5
|
+
pass
|
|
6
|
+
|
|
7
|
+
for name in dir(numpy_impl):
|
|
8
|
+
if not name.startswith('_'):
|
|
9
|
+
setattr(NumpyComputeBackend, name, getattr(numpy_impl, name))
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
'NumpyComputeBackend',
|
|
13
|
+
]
|
xbarray/pytorch.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from xbarray.cls_impl.cls_base import ComputeBackendImplCls
|
|
2
|
+
from ._src.implementations import pytorch as pytorch_impl
|
|
3
|
+
|
|
4
|
+
class PytorchComputeBackend(metaclass=ComputeBackendImplCls):
|
|
5
|
+
pass
|
|
6
|
+
|
|
7
|
+
for name in dir(pytorch_impl):
|
|
8
|
+
if not name.startswith('_'):
|
|
9
|
+
setattr(PytorchComputeBackend, name, getattr(pytorch_impl, name))
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
'PytorchComputeBackend',
|
|
13
|
+
]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
array_api_typing/__init__.py,sha256=5vcE63PsZ_utc7j2VmLK5evUhar-942p95HyjTiLOc0,179
|
|
2
|
+
array_api_typing/typing_2024_12/__init__.py,sha256=JuD2yojHl3eQI74U75tFhSX5rSy32TR5nKyi714ZfX4,347
|
|
3
|
+
array_api_typing/typing_2024_12/_api_constant.py,sha256=tahdzdi7vAZ3UnM8oDcUqvx2FFsMTAyUbuwgarU6K9U,676
|
|
4
|
+
array_api_typing/typing_2024_12/_api_fft_typing.py,sha256=i48S-9trw3s72xiCJmeCNGlJLwwOVq0kJC4lD9se_co,38641
|
|
5
|
+
array_api_typing/typing_2024_12/_api_linalg_typing.py,sha256=Dt5fDTwYb-GAmP7duajwPqH3zaJmwvxDEOOzdl5X0LE,48950
|
|
6
|
+
array_api_typing/typing_2024_12/_api_return_typing.py,sha256=7TxSBRv0H0uQ9VnixbyuEXJQnl1uESo102RsAloI9SA,2302
|
|
7
|
+
array_api_typing/typing_2024_12/_api_typing.py,sha256=rFuF7E6b2RrijzQBrZx6_dYEn9Yslq8FqI31L1Ccrf4,294255
|
|
8
|
+
array_api_typing/typing_2024_12/_array_typing.py,sha256=GMqs5LgshujRIh7i0mGtZy4Vt56FSXqBmNlBGidFRnc,57403
|
|
9
|
+
array_api_typing/typing_compat/__init__.py,sha256=JuD2yojHl3eQI74U75tFhSX5rSy32TR5nKyi714ZfX4,347
|
|
10
|
+
array_api_typing/typing_compat/_api_typing.py,sha256=RnGZFD8AEIqOCurcI68xyw7y9W9hm4yWUGf7NlJkNk0,930
|
|
11
|
+
array_api_typing/typing_compat/_array_typing.py,sha256=CVv91wDjjG-8kSofkqgA85qpM-3x34Zh_SNuBFegW9o,1182
|
|
12
|
+
array_api_typing/typing_extra/__init__.py,sha256=YfdhD-Sfk3SCfI9lHmA-PbVLzms1OFF5x0ekzI3aafk,323
|
|
13
|
+
array_api_typing/typing_extra/_api_typing.py,sha256=Jj_E61r35EgecWmBvAzpASV4qub5aQI_O4aL-ngEvQ8,23028
|
|
14
|
+
array_api_typing/typing_extra/_at.py,sha256=S7_YjOwR3a8olZWgwpLDFEfnekRufRqrtfiMLwrWjgo,2202
|
|
15
|
+
xbarray/__init__.py,sha256=k4Ipp7IoODqHWZ-eeBhcU7Ch8FudF8rag6KbeIurrgY,45
|
|
16
|
+
xbarray/jax.py,sha256=3DHAFsWvfurCI0H6loqx4LtmBov9KbIxeHGmwLKrdh4,344
|
|
17
|
+
xbarray/numpy.py,sha256=8thyuJZlm0MJXGx6YWlgxV9ASG-In9jn-pwUFFk7iB4,358
|
|
18
|
+
xbarray/pytorch.py,sha256=NEKlF_QoiOQl0T-aP_CkUxJ3HgFJEm0hmLy9v5I7qAo,372
|
|
19
|
+
xbarray/_src/implementations/_common/implementations.py,sha256=FyZaQZcVdSnH6CUA1LVbUJAK-EAlkz2fDfOOuVyku6Y,2655
|
|
20
|
+
xbarray/_src/implementations/jax/__init__.py,sha256=pkQASOOePuTel32zaSmsNIc9FqL_8Ix0P4NDXMqhupE,827
|
|
21
|
+
xbarray/_src/implementations/jax/_extra.py,sha256=6bk789VD17LJUE4jmV2E_xosgSqpVo2W2cmySBckrQ8,2499
|
|
22
|
+
xbarray/_src/implementations/jax/_typing.py,sha256=U9BUxHNEjFB0LHF1KMrFLbh6E5kVvpAF8bZUbLNf25E,278
|
|
23
|
+
xbarray/_src/implementations/jax/random.py,sha256=k6vuNLTOSUClMKI6My0-Xekkeu6hJrUyNib1TziuGag,3312
|
|
24
|
+
xbarray/_src/implementations/numpy/__init__.py,sha256=s_tC8UT0ULs9tpZ5JFiEIOnv5sRAVBZFM5Wh90T44Wc,640
|
|
25
|
+
xbarray/_src/implementations/numpy/_extra.py,sha256=J6mPhMri9sI9UK52Sc61IHM4uSLZ3eq9SM-yKFwOwJQ,1977
|
|
26
|
+
xbarray/_src/implementations/numpy/_typing.py,sha256=pgjLLAipwFsIk0QdgrAA4PEvjF_ugHbzfSTbLpA__6o,241
|
|
27
|
+
xbarray/_src/implementations/numpy/random.py,sha256=C1z2-pMcDMRa7nKhKNTuY5LtTlu9nXvDpH1wY8mdIug,2630
|
|
28
|
+
xbarray/_src/implementations/pytorch/__init__.py,sha256=CIXK76WnheuEkVjdU_efCgLxBx3ABhcTdbaImRzmkNM,643
|
|
29
|
+
xbarray/_src/implementations/pytorch/_extra.py,sha256=mqA2JlyVhRJrBegGdkV5kCkb9I6L6bz_Iy7NCd_xcr8,2862
|
|
30
|
+
xbarray/_src/implementations/pytorch/_typing.py,sha256=qSnNZD3IpgSoOTl3TBRBv2ifSAHOw0aR9uyzfV5KYVw,204
|
|
31
|
+
xbarray/_src/implementations/pytorch/random.py,sha256=p4ZDsTc--z5XslVzel-iEVDtoKizrv39_1tfR4-469o,2657
|
|
32
|
+
xbarray/_src/serialization/__init__.py,sha256=xnfYis9UhhvrCGtzzo7dRLb22MEpaNPAJrpljjP1YUU,32
|
|
33
|
+
xbarray/_src/serialization/serialization_map.py,sha256=05zfqip8qPCt-LgM_cx_zLc4y0I4DoUT7_rbU4seNhw,1048
|
|
34
|
+
xbarray/base/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
|
|
35
|
+
xbarray/base/base.py,sha256=V1yAXu2wUu6q50okX7JQ8onkGhHIQ0lkPkYOolwc45A,5928
|
|
36
|
+
xbarray/cls_impl/cls_base.py,sha256=MUvJeMm4UVW4jXwfVP02GiCzqftrAND-JYvThge4PUw,312
|
|
37
|
+
xbarray-0.0.1a2.dist-info/licenses/LICENSE,sha256=6P0HCOancSfch0dNycuDIe8_qwS0Id97Ih_8hjJ2PFI,1067
|
|
38
|
+
xbarray-0.0.1a2.dist-info/METADATA,sha256=MNcr-e1byBuMtn2Z-ouYk5NPXMqdyMNQG5LbWDIHt0s,436
|
|
39
|
+
xbarray-0.0.1a2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
40
|
+
xbarray-0.0.1a2.dist-info/top_level.txt,sha256=VriXuFyU48Du4HQMzROSArhwqB6EZYY0n0mipgUqB9A,25
|
|
41
|
+
xbarray-0.0.1a2.dist-info/RECORD,,
|
xbarray-0.0.1a1.dist-info/RECORD
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
array_api_typing/__init__.py,sha256=5vcE63PsZ_utc7j2VmLK5evUhar-942p95HyjTiLOc0,179
|
|
2
|
-
array_api_typing/typing_2024_12/__init__.py,sha256=JuD2yojHl3eQI74U75tFhSX5rSy32TR5nKyi714ZfX4,347
|
|
3
|
-
array_api_typing/typing_2024_12/_api_constant.py,sha256=tahdzdi7vAZ3UnM8oDcUqvx2FFsMTAyUbuwgarU6K9U,676
|
|
4
|
-
array_api_typing/typing_2024_12/_api_fft_typing.py,sha256=i48S-9trw3s72xiCJmeCNGlJLwwOVq0kJC4lD9se_co,38641
|
|
5
|
-
array_api_typing/typing_2024_12/_api_linalg_typing.py,sha256=Dt5fDTwYb-GAmP7duajwPqH3zaJmwvxDEOOzdl5X0LE,48950
|
|
6
|
-
array_api_typing/typing_2024_12/_api_return_typing.py,sha256=7TxSBRv0H0uQ9VnixbyuEXJQnl1uESo102RsAloI9SA,2302
|
|
7
|
-
array_api_typing/typing_2024_12/_api_typing.py,sha256=rFuF7E6b2RrijzQBrZx6_dYEn9Yslq8FqI31L1Ccrf4,294255
|
|
8
|
-
array_api_typing/typing_2024_12/_array_typing.py,sha256=GMqs5LgshujRIh7i0mGtZy4Vt56FSXqBmNlBGidFRnc,57403
|
|
9
|
-
array_api_typing/typing_compat/__init__.py,sha256=JuD2yojHl3eQI74U75tFhSX5rSy32TR5nKyi714ZfX4,347
|
|
10
|
-
array_api_typing/typing_compat/_api_typing.py,sha256=RnGZFD8AEIqOCurcI68xyw7y9W9hm4yWUGf7NlJkNk0,930
|
|
11
|
-
array_api_typing/typing_compat/_array_typing.py,sha256=CVv91wDjjG-8kSofkqgA85qpM-3x34Zh_SNuBFegW9o,1182
|
|
12
|
-
array_api_typing/typing_extra/__init__.py,sha256=YfdhD-Sfk3SCfI9lHmA-PbVLzms1OFF5x0ekzI3aafk,323
|
|
13
|
-
array_api_typing/typing_extra/_api_typing.py,sha256=Jj_E61r35EgecWmBvAzpASV4qub5aQI_O4aL-ngEvQ8,23028
|
|
14
|
-
array_api_typing/typing_extra/_at.py,sha256=S7_YjOwR3a8olZWgwpLDFEfnekRufRqrtfiMLwrWjgo,2202
|
|
15
|
-
xbarray/__init__.py,sha256=GLdMGsm5_CnATyh19At20Hmb1MsXZvPxNvg70bHYChk,19
|
|
16
|
-
xbarray/base/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
|
|
17
|
-
xbarray/base/base.py,sha256=hqlizpZOJua9xJfPfc-RR6IAadp-OLPVnBO5cbVVHKQ,5929
|
|
18
|
-
xbarray/common/implementations.py,sha256=FyZaQZcVdSnH6CUA1LVbUJAK-EAlkz2fDfOOuVyku6Y,2655
|
|
19
|
-
xbarray/jax/__init__.py,sha256=J7yN6ytn1fm2qKHZVm9OTt30ItcKMnKnuTxbZgnGKaE,662
|
|
20
|
-
xbarray/jax/_extra.py,sha256=JHZBaGZUXPLCRFdaDBXUjwGD-D4DlLYI0NsxAlGs3FE,2504
|
|
21
|
-
xbarray/jax/_typing.py,sha256=U9BUxHNEjFB0LHF1KMrFLbh6E5kVvpAF8bZUbLNf25E,278
|
|
22
|
-
xbarray/jax/random.py,sha256=owIxqs67MOMXaMN8uwmCu9aLd1Yss24sl9rib4R5Qec,3325
|
|
23
|
-
xbarray/numpy/__init__.py,sha256=trZhNZYIHe0QkQYRB1ZJW-OlteYf_9RVUR3yks6S2iI,523
|
|
24
|
-
xbarray/numpy/_extra.py,sha256=wbzpcVL4UV5TVQlmO73sUwWcBgMiVXFvfCLlCuiB0Uk,1982
|
|
25
|
-
xbarray/numpy/_typing.py,sha256=pgjLLAipwFsIk0QdgrAA4PEvjF_ugHbzfSTbLpA__6o,241
|
|
26
|
-
xbarray/numpy/random.py,sha256=8BaxX_cpzvF7iG0yR0ws3IbG14OJPsX60Gv-1AStplA,2643
|
|
27
|
-
xbarray/pytorch/__init__.py,sha256=wfUkSyrJpDlO2Zggza7HM5SCdYKUBfySO3K71itOHkA,526
|
|
28
|
-
xbarray/pytorch/_extra.py,sha256=VawcjDe0dxiIzvTjIncGxwPPoTw7hWZAPOlZSdDSKl0,2867
|
|
29
|
-
xbarray/pytorch/_typing.py,sha256=qSnNZD3IpgSoOTl3TBRBv2ifSAHOw0aR9uyzfV5KYVw,204
|
|
30
|
-
xbarray/pytorch/random.py,sha256=OJ-YvS2owX5LWdsIzXW-N2YqPhN84Rroco7O5qIMmrg,2670
|
|
31
|
-
xbarray-0.0.1a1.dist-info/licenses/LICENSE,sha256=6P0HCOancSfch0dNycuDIe8_qwS0Id97Ih_8hjJ2PFI,1067
|
|
32
|
-
xbarray-0.0.1a1.dist-info/METADATA,sha256=u2-YoX051dU1Po1mFspLSuIEMmlPdhlWOlNwvbp-8PE,359
|
|
33
|
-
xbarray-0.0.1a1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
34
|
-
xbarray-0.0.1a1.dist-info/top_level.txt,sha256=VriXuFyU48Du4HQMzROSArhwqB6EZYY0n0mipgUqB9A,25
|
|
35
|
-
xbarray-0.0.1a1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|