Exert
>> Declaratively apply converter functions to class attributes. <<
Installation
Install via pip:
pip install exert
Usage
Use this to declaratively apply arbitrary converter functions to the attributes of a class. For example:
from __future__ import annotations
from typing import Annotated
from exert import exert, Mark
@exert
class Foo:
a: Annotated[int, Mark(lambda x: x**2)]
b: Annotated[float, Mark(lambda x: x / 2)]
def __init__(self, a: int, b: float) -> None:
self.a = a
self.b = b
foo = Foo(2, 42.0)
print(foo.a) # prints 4
print(foo.b) # prints 21.0
Here, the lambda function tagged with Mark is the converter.
Use with dataclasses
Dataclasses can also be used to avoid writing the initializer by hand. For example:
...
from dataclasses import dataclass
@exert
@datclasses
class Foo:
a: Annotated[int, Mark(lambda x: x**2)]
b: Annotated[float, Mark(lambda x: x / 2)]
foo = Foo(2, 42.0)
print(foo.a) # prints 4
print(foo.b) # prints 21.0
Apply multiple converters sequentially
Multiple converters are allowed. For example:
...
@exert
@dataclass
class Foo:
a: Annotated[int, Mark(lambda x: x**2, lambda x: x**3)]
b: Annotated[float, Mark(lambda x: x / 2, lambda x: x / 3)]
foo = Foo(2, 42.0)
print(foo.a) # prints 64 [2**2=4, 4**3=64]
print(foo.b) # prints 7.0 [42.0/2=21.0, 21.0/3=7.0]
Here, the converters are applied sequentially. The result of the preceding converter is fed into the succeeding converter as input. You've to make sure that the number of the returned values of the preceding converter matches that of the succeeding converter.
Exclude annotated fields
If you don't wrap converters with Mark, the corresponding field won't be transformed:
...
@exert
@dataclass
class Foo:
a: Annotated[int, Mark(lambda x: x**2, lambda x: x**3)]
b: Annotated[float, lambda x: x / 2, lambda x: x / 3]
foo = Foo(2, 42.0)
print(foo.a) # prints 64 [2**2=4, 4**3=64]
print(foo.b) # prints 42.0 [This field was ignored]
Since the converters in field b weren't tagged with Mark, no conversion happened.
Apply common converters without repetition
Common converters can be applied to multiple fields without repetition:
...
@exert(converters=(lambda x: x**2,))
@dataclass
class Foo:
a: Annotated[int, None]
b: Annotated[float, None]
foo = Foo(2, 42.0)
print(foo.a) # prints 4 [2**2=4]
print(foo.b) # prints 1764.0 [42.0**2=1764.0]
Apply common and marked converters together
You can apply a sequence of common converters and marked converters together. By default, the common converters are applied first and then the tagged converters are applied sequentially:
...
@exert(converters=(lambda x: x**2, lambda x: x**3))
@dataclass
class Foo:
a: Annotated[int, Mark(lambda x: x / 100)]
b: Annotated[float, None]
foo = Foo(2, 42.0)
print(foo.a) # prints 0.64 [2**2=4, 4**3=64, 64/100=0.64]
print(foo.b) # prints 5489031744.0 [42.0**2=1764, 1764**3=5489031744.0]
You can also, choose to apply the common converters after the tagged ones. For this,
you'll need to set the apply_last parameter to True:
...
@exert(
converters=(lambda x: x**2, lambda x: x**3),
apply_last=True,
)
@dataclass
class Foo:
a: Annotated[int, Mark(lambda x: x / 100)]
b: Annotated[float, None]
foo = Foo(2, 42.0)
print(foo.a) # prints 6.401e-11 [2/100=0.02, 0.02**2=0.004, 0.0004**3=6.401e-11]
print(foo.b) # prints 5489031744.0 [42.0**2=1764, 1764**3=5489031744.0]
Simple data validation
The snippet below ensures that the attributes of the class Foo conforms to the constraints imposed by the converter functions.
from __future__ import annotations
import json
from dataclasses import dataclass
from functools import partial
from typing import Annotated, Sized
from exert import Mark, exert
def assert_len(x: Sized, length: int) -> Sized:
"""Assert that the incoming attribute has the expected length."""
assert len(x) == length
return x
def assert_json(x: dict) -> dict:
"""Assert that the incoming attribute is JSON serializable."""
try:
json.dumps(x)
except TypeError:
raise AssertionError(f"{x} is not JSON serializable")
return x
@exert
@dataclass
class Foo:
a: Annotated[tuple[int, ...], Mark(partial(assert_len, length=3))]
b: Annotated[dict, Mark(assert_json)]
foo = Foo(a=(1, 2, 3), b={"a": 1, "b": 2})
print(foo)
This will raise AssertionError if the value of the attributes violate the constraints.
Metadata
Release files for exert 0.3.3
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 | Actions |
|---|---|---|---|---|
| exert-0.3.3.tar.gz | 5.9 kB | Without provenance | Details for exert-0.3.3.tar.gz |
Built distributions (wheels)
Total release size: 2.1 MB
Release files / exert-0.3.3.tar.gz
| Download URL | exert-0.3.3.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7b0ab484d86c8e875066667c601597fc091cd416174fc27b52fa3ef29b7e0fde
|
|
BLAKE2b-256 checksum How to use checksums |
3bdb25f629663079567f4b6fcfe4f982a499b1b8cf2b48fa0588581f63134ad7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp311-cp311-musllinux_1_1_x86_64.whl
| Download URL | exert-0.3.3-cp311-cp311-musllinux_1_1_x86_64.whl |
|---|---|
| Size | 93.3 kB |
| Tags | CPython 3.11 Linux musl 1.1+ x86-64 |
|
SHA-256 checksum How to use checksums |
d90e71b06f211301cdf78581c98057533a57bfa3e1fd5b3f152c11d62a29a7e9
|
|
BLAKE2b-256 checksum How to use checksums |
b21a726b433aa7f4715922de60317ced76e39a9f38c0739222de83df45daa226
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp311-cp311-musllinux_1_1_i686.whl
| Download URL | exert-0.3.3-cp311-cp311-musllinux_1_1_i686.whl |
|---|---|
| Size | 93.3 kB |
| Tags | CPython 3.11 Linux musl 1.1+ x86-32 |
|
SHA-256 checksum How to use checksums |
25bd13186b0bc4ffe288f0e4da4d464f6c4af3021c0cae5b6e90519199176f08
|
|
BLAKE2b-256 checksum How to use checksums |
9c353bf7407cecff2dd190101c71b43645ea7204a8a37e4ea9ffcffbca5b7487
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | exert-0.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 97.7 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
3018d0e697d98f4c9d9fa3b46e0ec2d42f840cf0c0aea98787ea93ef7fabd720
|
|
BLAKE2b-256 checksum How to use checksums |
c1f0d9697143d7a5611f7efa64edb06ecbd3fdf4de411a232c9a49f4b651168e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | exert-0.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 97.2 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
0966647873cff13e04dd9d67b1b8ccd5dccd5e2cede58ad30f8e29367af96b1a
|
|
BLAKE2b-256 checksum How to use checksums |
9cab2aa42e0a8d3b44802ff93665b8ccb97a506ecbd3e9f97f3cc97e8e290100
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | exert-0.3.3-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 53.3 kB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
7527fa30f4a178d6a1615939c9881095856960e699c99dd1a583cc56c173a7cd
|
|
BLAKE2b-256 checksum How to use checksums |
f8f7329323cb14dfb175cca06146b308810e5861e773b512571de37272056466
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp310-cp310-musllinux_1_1_x86_64.whl
| Download URL | exert-0.3.3-cp310-cp310-musllinux_1_1_x86_64.whl |
|---|---|
| Size | 93.2 kB |
| Tags | CPython 3.10 Linux musl 1.1+ x86-64 |
|
SHA-256 checksum How to use checksums |
3ba5cb2dcc06442cb54e26bd5d849512f479ed82af530fa9315880c5988baeb1
|
|
BLAKE2b-256 checksum How to use checksums |
63d417cb7e6a8604446b11255d832a4ac5d64303b19aee449a071eeb2e05b032
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp310-cp310-musllinux_1_1_i686.whl
| Download URL | exert-0.3.3-cp310-cp310-musllinux_1_1_i686.whl |
|---|---|
| Size | 93.9 kB |
| Tags | CPython 3.10 Linux musl 1.1+ x86-32 |
|
SHA-256 checksum How to use checksums |
2b53aae1c6f4412b92425f10c4ada314fd4247be7b0c807b9a0fe7412bc2fdad
|
|
BLAKE2b-256 checksum How to use checksums |
ce6e76c67da8e53382b0b15ae3bcf48124c23fc7742d0efd2f70c68bb8665507
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | exert-0.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 97.4 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
7616baad9167ab4c213e4f8d1800b6f67b6390f4d1b9b1bdb4c4920e4c770bc0
|
|
BLAKE2b-256 checksum How to use checksums |
3ab9a6313a6cce9f1b61bcf20d0fc2b1ecf4fb4d798ea78529888dafb53429bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | exert-0.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 97.5 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
b8dba95e54c5aea67d0880c84c91756ffd5d12be7a7c9f36f042542044d08632
|
|
BLAKE2b-256 checksum How to use checksums |
a1bb5bed1a4c227090b108f3ffe355934737e8338e290276cf6c7d26e88eaa58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp310-cp310-macosx_10_9_x86_64.whl
| Download URL | exert-0.3.3-cp310-cp310-macosx_10_9_x86_64.whl |
|---|---|
| Size | 53.9 kB |
| Tags | CPython 3.10 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
f19c8962d1db4eb6d254998cb9a6582dee6df43bedfc67d797ad2d2787debf20
|
|
BLAKE2b-256 checksum How to use checksums |
3da75178b60951c6a834afe66f77918dff72ab7fbb6b93a84cb7f6197273acd9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp39-cp39-musllinux_1_1_x86_64.whl
| Download URL | exert-0.3.3-cp39-cp39-musllinux_1_1_x86_64.whl |
|---|---|
| Size | 93.1 kB |
| Tags | CPython 3.9 Linux musl 1.1+ x86-64 |
|
SHA-256 checksum How to use checksums |
0c893155de45bdef8258d0076939f5cc6af51c6550df9b9e2d98a83e8a10a717
|
|
BLAKE2b-256 checksum How to use checksums |
809d7c08a50bad4675aa0848d629a252b715eee8e1527be67b28b9b3c95de581
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp39-cp39-musllinux_1_1_i686.whl
| Download URL | exert-0.3.3-cp39-cp39-musllinux_1_1_i686.whl |
|---|---|
| Size | 93.7 kB |
| Tags | CPython 3.9 Linux musl 1.1+ x86-32 |
|
SHA-256 checksum How to use checksums |
e9541555f2c20196456cc764fa7877a21beb30441306db3613784ed45d499b4f
|
|
BLAKE2b-256 checksum How to use checksums |
bf5403d7cb54aba4ed93929d59bdb90e841efe3f705c07432a2e03bdd85108a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | exert-0.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 97.3 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
0a40ca9d432fb4faf17184fba53e69acb98bc788312975b77adedb5ae5052ce2
|
|
BLAKE2b-256 checksum How to use checksums |
faf5ff90c243e00356bb92610b9d3833f3e72f30272e17d36a9efc9ea432d91a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | exert-0.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 97.3 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
c22c806499096f745289c4097e5a6be86db722d1907ece1e2cca86800fc61de8
|
|
BLAKE2b-256 checksum How to use checksums |
d1d9197e91b90a14e441d28ac3a948a0225b1c9b6529be8f12b9432f80af7c44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp39-cp39-macosx_10_9_x86_64.whl
| Download URL | exert-0.3.3-cp39-cp39-macosx_10_9_x86_64.whl |
|---|---|
| Size | 53.9 kB |
| Tags | CPython 3.9 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
52fd6dc78c7ed9068dc8110f9a9c9443c629081a241df2048829666b6f492651
|
|
BLAKE2b-256 checksum How to use checksums |
a9b1d94106d28e5d70dfe8f68d37a1ca42f753c56b1dfd713ef870f0bcab4edb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp38-cp38-musllinux_1_1_x86_64.whl
| Download URL | exert-0.3.3-cp38-cp38-musllinux_1_1_x86_64.whl |
|---|---|
| Size | 92.3 kB |
| Tags | CPython 3.8 Linux musl 1.1+ x86-64 |
|
SHA-256 checksum How to use checksums |
43a23c00b11a5cc47a0c11598da634e28c2484e4f2d08042b2fd8dd2bba09f79
|
|
BLAKE2b-256 checksum How to use checksums |
6e9ea69991ff2883c92d72baf6bed09730d8a39c4b7604dd53da3381729dfd2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp38-cp38-musllinux_1_1_i686.whl
| Download URL | exert-0.3.3-cp38-cp38-musllinux_1_1_i686.whl |
|---|---|
| Size | 92.9 kB |
| Tags | CPython 3.8 Linux musl 1.1+ x86-32 |
|
SHA-256 checksum How to use checksums |
82baee6d4495b7d733120e2ff155f84335941b5e22040e049d4eb45a41645730
|
|
BLAKE2b-256 checksum How to use checksums |
6eb5daaa0eb4411d15ac4c2cc83c52ae3db7da85acce4c3ba1b64a92b9115d83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | exert-0.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 96.0 kB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cba40c47ccce437cd749c48b662989518e9e5c5d87d10c1710a8897115cea6a4
|
|
BLAKE2b-256 checksum How to use checksums |
4012a34081c86714d7da725f3effdd7564d0ab37c9e891761dc63b4376622860
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | exert-0.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 96.0 kB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
659d92cde32125d7d2b8fd1867fb3c12e28107d0031b690022ae3e4947303d8d
|
|
BLAKE2b-256 checksum How to use checksums |
04c50d59f428b596334d741f0d030343ebcebd2bffc838aa41c4c72f9508f7ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp38-cp38-macosx_10_9_x86_64.whl
| Download URL | exert-0.3.3-cp38-cp38-macosx_10_9_x86_64.whl |
|---|---|
| Size | 53.4 kB |
| Tags | CPython 3.8 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
5142e6a82064256c769755adb9a21ce3d3e4c5a293a6e6220317a84adf7c1043
|
|
BLAKE2b-256 checksum How to use checksums |
4c13b2fa4cb7de908fc7582d9038948dc8ce2d83cff8621cd6718d32e00979d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp37-cp37m-musllinux_1_1_x86_64.whl
| Download URL | exert-0.3.3-cp37-cp37m-musllinux_1_1_x86_64.whl |
|---|---|
| Size | 79.8 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux musl 1.1+ x86-64 |
|
SHA-256 checksum How to use checksums |
29d3e31e903a83304315b64ecd07b71c80c96699616f5d83dc8229a7debcc093
|
|
BLAKE2b-256 checksum How to use checksums |
31aea69aa64a57c1f858fcf4ef0493fa89c205df9fd19e5d68539abf656bb09d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp37-cp37m-musllinux_1_1_i686.whl
| Download URL | exert-0.3.3-cp37-cp37m-musllinux_1_1_i686.whl |
|---|---|
| Size | 81.8 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux musl 1.1+ x86-32 |
|
SHA-256 checksum How to use checksums |
22f0beea5de22a1d2a18c023ac61eb6edadc45679590c59f8917d17dfe6075ac
|
|
BLAKE2b-256 checksum How to use checksums |
c17766f4ed39de0861e329b949d74e39fa1b2350d0f95d1687e43ee76261361b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | exert-0.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 82.7 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
fee3ed2f0f917106f9faeb3d1f235312b90aa544b3f7324a52a73056f5bf8d96
|
|
BLAKE2b-256 checksum How to use checksums |
fcdde104e566cadee614d2c561215585378ada8a4d84f693a965c4fe7a617f3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | exert-0.3.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 84.0 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
85b3ed4ed2d4eeaab05bdb90cd80cf92fceb541a6200a631a5e5e5344b3b2328
|
|
BLAKE2b-256 checksum How to use checksums |
eee2141fe0f9530975299e0ad390c4559589135b9ec7dbc82b52026ff467f77c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / exert-0.3.3-cp37-cp37m-macosx_10_9_x86_64.whl
| Download URL | exert-0.3.3-cp37-cp37m-macosx_10_9_x86_64.whl |
|---|---|
| Size | 51.8 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
8843437d4b24b1536a804dd5ecaf96c971861de75f6fd2d272b05f7048f5681e
|
|
BLAKE2b-256 checksum How to use checksums |
437050f8e91c8f8aacb7b92b35a109dd514b0550a37c1cf2e29a1761366a55d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Security for exert 0.3.3
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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.