ArrayContract
from arraycontract import shape, _
import torch
@shape(x=(_, 'N'), y=('N', _))
def matrix_dot(x, y):
return x @ y
matrix_dot(torch.rand(3,4), torch.rand(4,5)) # OK
matrix_dot(torch.rand(3,4), torch.rand(3,5)) # raise AssertionError
from arraycontract import shape, _
import torch
from torch import nn
linear = nn.Linear(3, 4)
@shape((..., 3))
def forward_linear(x):
"""
requires x.shape[-1] == 3
"""
return linear(x)
forward_linear(torch.rand(4,5,3)) # OK
forward_linear(torch.rand(4,4)) # raise AssertionError
from arraycontract import dtype
from arraycontract import ndim
import torch
@ndim(x=3, y=4)
def ndim_contract(x, y):
print("requires x.ndim == 3 and y.ndim == 4")
@dtype(x=torch.long)
def dtype_contract(x):
print("requires x.dtype == torch.long")
from arraycontract import Trigger
from arraycontract import dtype
import torch
Trigger.dtype_check_trigger = False
@dtype(x=torch.long)
def dtype_contract(x):
print("not requires x.dtype == torch.long")
dtype_contract(torch.rand(3, 4).float()) # OK
Metadata
Release files for arraycontract 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| arraycontract-0.0.2.tar.gz | 3.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arraycontract-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.2 kB
Release files / arraycontract-0.0.2.tar.gz
| Download URL | arraycontract-0.0.2.tar.gz |
|---|---|
| Size | 3.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
798d94acf8c743c5b3f14f0f2eddbec6717f83d054f90bc7a62195c8f488a754
|
|
BLAKE2b-256 checksum How to use checksums |
bc63fa02139d13931d66ce38e1c22f71b877dd31badd2daa6ac9d30c0d06f88a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.2 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3
|
Release files / arraycontract-0.0.2-py3-none-any.whl
| Download URL | arraycontract-0.0.2-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
65bdc9cf8f495aee205d101f2974ab8153bb7e385f4ae23e23572fc76c78a6ab
|
|
BLAKE2b-256 checksum How to use checksums |
ba84266438a9e442809c93f95f1d0ef1bd9ab4274b5862287b416ce98021c382
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.2 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3
|
Security for arraycontract 0.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.