Skip to main content

Python's bindings for gcc's libquadmath

Project description

Continuous Integration Coverage Status Python versions gfortran versions

pyQuadp

Python interface to gcc's libquadmath for quad (128-bit) precision maths.

Build

python -m build
python -m pip install . 

This package requires quadmath.h and libquadmath.so. This might come installed with your installation of gcc/gfortran from your package manager. Or it might require a separate installation. This should be installed before trying to install the Python package.

Fedora

sudo dnf install libquadmath libquadmath-devel

Usage

qfloat

A quad precision number is created by passing either a int, float, or string to qfloat:

import pyquadp

q = pyquadp.qfloat(1)
q = pyquadp.qfloat(1.0)
q = pyquadp.qfloat('1')

A qfloat implements Python's NumberProtocol, thus it can be used like any other number, either with basic math operations or in rich comparisons:

q1 = pyquadp.qfloat(1)
q2 = pyquadp.qfloat(2)

q1+q2 # pyquadp.qfloat(3)
q1*q2  # pyquadp.qfloat(2)
q1+=q2 # pyquadp.qfloat(3)

q1 <= q2 # True
q1 == q2 # False

str(q) # "1.000000000000000000000000000000000000e+00"

qcmplx

A quad precision number is created by passing either a complex variable or two ints, floats, strs, or qfloats to qcmplx:

import pyquadp

q = pyquadp.qcmplx(complex(1,1))
q = pyquadp.qcmplx(1,1.0)
q = pyquadp.qcmplx('1',1.0)
q = pyquadp.qcmplx('1','1')
q = pyquadp.qcmplx(pyquadp.qfloat(1), pyquadp.qfloat('1'))

Note that strings must be split into two components. There is no support for 1+1j (unless passed via complex('1+1j'))

Math libraries

The qmath provides the union of math operations from Python's math library and the routines provided in libquadmath. qmath provides routines for qfloat, while complex numbers are handled by qcmath versions.

Where possible functions accessed via the Python name follows Python's conventions regarding behavior of exceptional values. While routines from libquadmath (those ending in q) follows libquadmath's conventions.

Routines from Python's math library

Name Implemented Descritpion
ceil :heavy_check_mark:
comb :x:
copysign :heavy_check_mark:
fabs :heavy_check_mark:
factorial :x:
floor :heavy_check_mark:
fmod :heavy_check_mark:
frexp :heavy_check_mark:
fsum :x:
gcd :x:
isclose :x:
isfinite :x:
isinf :heavy_check_mark:
isnan :heavy_check_mark:
isqrt :x:
lcm :x:
ldexp :heavy_check_mark:
modf :heavy_check_mark:
nextafter :heavy_check_mark:
perm :x:
prod :x:
remainder :heavy_check_mark:
trunc :heavy_check_mark:
ulp :x:
cbrt :heavy_check_mark:
exp :heavy_check_mark:
exp2 :heavy_check_mark:
expm1 :heavy_check_mark:
log :heavy_check_mark:
log1p :heavy_check_mark:
log2 :heavy_check_mark:
log10 :heavy_check_mark:
pow :heavy_check_mark:
sqrt :heavy_check_mark:
acos :heavy_check_mark:
asin :heavy_check_mark:
atan :heavy_check_mark:
atan2 :heavy_check_mark:
cos :heavy_check_mark:
dist :heavy_check_mark:
hypot :heavy_check_mark:
sin :heavy_check_mark:
tan :heavy_check_mark:
degress :heavy_check_mark:
radians :heavy_check_mark:
acosh :heavy_check_mark:
asinh :heavy_check_mark:
atanh :heavy_check_mark:
cosh :heavy_check_mark:
sinh :heavy_check_mark:
tanh :heavy_check_mark:
erf :heavy_check_mark:
erfc :heavy_check_mark:
gamma :heavy_check_mark:
lgamma :heavy_check_mark:
pi :heavy_check_mark:
e :heavy_check_mark:
tau :heavy_check_mark:
inf :heavy_check_mark:
nan :heavy_check_mark:

Routines from gcc's libquadthmath library

Name Implemented
acosq :heavy_check_mark:
acoshq :heavy_check_mark:
asinq :heavy_check_mark:
asinhq :heavy_check_mark:
atanq :heavy_check_mark:
atanhq :heavy_check_mark:
atan2q :heavy_check_mark:
cbrtq :heavy_check_mark:
ceilq :heavy_check_mark:
copysignq :heavy_check_mark:
coshq :heavy_check_mark:
cosq :heavy_check_mark:
erfq :heavy_check_mark:
erfcq :heavy_check_mark:
exp2q :heavy_check_mark:
expq :heavy_check_mark:
expm1q :heavy_check_mark:
fabsq :heavy_check_mark:
fdimq :heavy_check_mark:
finiteq :heavy_check_mark:
floorq :heavy_check_mark:
fmaq :heavy_check_mark:
fmaxq :heavy_check_mark:
fminq :heavy_check_mark:
fmodq :heavy_check_mark:
frexpq :heavy_check_mark:
hypotq :heavy_check_mark:
ilogbq :heavy_check_mark:
isinfq :heavy_check_mark:
isnanq :heavy_check_mark:
issignalingq :heavy_check_mark:
j0q :heavy_check_mark:
j1q :heavy_check_mark:
jnq :heavy_check_mark:
ldexpq :heavy_check_mark:
lgammaq :heavy_check_mark:
llrintq :heavy_check_mark:
llroundq :heavy_check_mark:
logbq :heavy_check_mark:
logq :heavy_check_mark:
log10q :heavy_check_mark:
log1pq :heavy_check_mark:
log2q :heavy_check_mark:
lrintq :heavy_check_mark:
lroundq :heavy_check_mark:
modfq :heavy_check_mark:
nanq :heavy_check_mark:
nearbyintq :heavy_check_mark:
nextafterq :heavy_check_mark:
powq :heavy_check_mark:
remainderq :heavy_check_mark:
remquoq :heavy_check_mark:
rintq :heavy_check_mark:
roundq :heavy_check_mark:
scalblnq :heavy_check_mark:
scalbnq :heavy_check_mark:
signbitq :heavy_check_mark:
sincosq :heavy_check_mark:
sinhq :heavy_check_mark:
sinq :heavy_check_mark:
sqrtq :heavy_check_mark:
tanq :heavy_check_mark:
tanhq :heavy_check_mark:
tgammaq :heavy_check_mark:
truncq :heavy_check_mark:
y0q :heavy_check_mark:
y1q :heavy_check_mark:
ynq :heavy_check_mark:

Routines from Python's complex math cmath library

These are available from qcmath

Name Implemented Descritpion
phase :heavy_check_mark:
polar :heavy_check_mark:
rect :heavy_check_mark:
exp :heavy_check_mark:
log :heavy_check_mark:
log10 :heavy_check_mark:
sqrt :heavy_check_mark:
acos :heavy_check_mark:
asin :heavy_check_mark:
atan :heavy_check_mark:
cos :heavy_check_mark:
sin :heavy_check_mark:
tan :heavy_check_mark:
acosh :heavy_check_mark:
asinh :heavy_check_mark:
atanh :heavy_check_mark:
cosh :heavy_check_mark:
sinh :heavy_check_mark:
tanh :heavy_check_mark:
isfinite :heavy_check_mark:
isinf :heavy_check_mark:
isnan :heavy_check_mark:
isclose :x:
pi :heavy_check_mark:
e :heavy_check_mark:
tau :heavy_check_mark:
inf :heavy_check_mark:
infj :heavy_check_mark:
nan :heavy_check_mark:
nanj :heavy_check_mark:

Routines from complex math libquadthmath library

These are available from qcmath

Name Implemented Descritpion
cabsq :heavy_check_mark: complex absolute value function
cargq :heavy_check_mark: calculate the argument
cimagq :heavy_check_mark: imaginary part of complex number
crealq :heavy_check_mark: real part of complex number
cacoshq :heavy_check_mark: complex arc hyperbolic cosine function
cacosq :heavy_check_mark: complex arc cosine function
casinhq :heavy_check_mark: complex arc hyperbolic sine function
casinq :heavy_check_mark: complex arc sine function
catanhq :heavy_check_mark: complex arc hyperbolic tangent function
catanq :heavy_check_mark: complex arc tangent function
ccosq: :heavy_check_mark: complex cosine function
ccoshq :heavy_check_mark: complex hyperbolic cosine function
cexpq :heavy_check_mark: complex exponential function
cexpiq :heavy_check_mark: computes the exponential function of i times a real value
clogq :heavy_check_mark: complex natural logarithm
clog10q :heavy_check_mark: complex base 10 logarithm
conjq :heavy_check_mark: complex conjugate function
cpowq :heavy_check_mark: complex power function
cprojq :heavy_check_mark: project into Riemann Sphere
csinq :heavy_check_mark: complex sine function
csinhq :heavy_check_mark: complex hyperbolic sine function
csqrtq :heavy_check_mark: complex square root
ctanq :heavy_check_mark: complex tangent function
ctanhq :heavy_check_mark: complex hyperbolic tangent function

Constants from libquadthmath library.

The following constants are availbe both in qmath and qcmath

Name Implemented Descritpion
FLT128_MAX :heavy_check_mark: largest finite number
FLT128_MIN :heavy_check_mark: smallest positive number with full precision
FLT128_EPSILON :heavy_check_mark: difference between 1 and the next larger representable number
FLT128_DENORM_MIN :heavy_check_mark: smallest positive denormalized number
FLT128_MANT_DIG :heavy_check_mark: number of digits in the mantissa (bit precision)
FLT128_MIN_EXP :heavy_check_mark: maximal negative exponent
FLT128_MAX_EXP :heavy_check_mark: maximal positive exponent
FLT128_DIG :heavy_check_mark: number of decimal digits in the mantissa
FLT128_MIN_10_EXP :heavy_check_mark: maximal negative decimal exponent
FLT128_MAX_10_EXP :heavy_check_mark: maximal positive decimal exponent
M_Eq :heavy_check_mark: the constant e (Euler’s number)
M_LOG2Eq :heavy_check_mark: binary logarithm of 2
M_LOG10Eq :heavy_check_mark: common, decimal logarithm of 2
M_LN2q :heavy_check_mark: natural logarithm of 2
M_LN10q :heavy_check_mark: natural logarithm of 10
M_PIq :heavy_check_mark: pi
M_PI_2q :heavy_check_mark: pi divided by two
M_PI_4q :heavy_check_mark: pi divided by four
M_1_PIq :heavy_check_mark: one over pi
M_2_PIq :heavy_check_mark: one over two pi
M_2_SQRTPIq :heavy_check_mark: two over square root of pi
M_SQRT2q :heavy_check_mark: square root of 2
M_SQRT1_2q :heavy_check_mark: one over square root of 2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyquadp-1.0.0.tar.gz (49.3 kB view details)

Uploaded Source

Built Distributions

pyquadp-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl (677.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pyquadp-1.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (672.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyquadp-1.0.0-cp313-cp313-macosx_14_0_arm64.whl (339.5 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

pyquadp-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl (677.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pyquadp-1.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (672.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyquadp-1.0.0-cp312-cp312-macosx_14_0_arm64.whl (339.5 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

pyquadp-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl (679.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyquadp-1.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (673.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyquadp-1.0.0-cp311-cp311-macosx_14_0_arm64.whl (339.7 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

pyquadp-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl (666.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pyquadp-1.0.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (659.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyquadp-1.0.0-cp310-cp310-macosx_14_0_arm64.whl (339.7 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file pyquadp-1.0.0.tar.gz.

File metadata

  • Download URL: pyquadp-1.0.0.tar.gz
  • Upload date:
  • Size: 49.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyquadp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e3e68aee40d6e62044f4bbf2f15d5ccfcff92a65871a119d26f8a9dbd50056a7
MD5 8b18556a88631423661cc9449abd4c26
BLAKE2b-256 c06ec45650771c2f9a288b45c1214a2d56b7517358179f5910357d9539593ae6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0.tar.gz:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 073b52fb73a47552b06b88dcf7aa28075749c54d2e4c415930075435027fb402
MD5 8f41e8a8b9f2c6962713077b174ce730
BLAKE2b-256 0585d865d8e8226750d7fe58a28a97b4d88c66a22c7bb71f731166ed2f616a8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e27107f8140bd74229432fe6be5c4eb1f668851e04bc1a9051506d19d1043bb8
MD5 2b23772827bd7acc8d7442651426a66e
BLAKE2b-256 4d71adb756b6e40594624729d7d0576eb4ff36e972812f681d1989e15ead27d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d63531b6208e89751b62da465b847a73aeb575d987b7ab538b3e2e74839fd94f
MD5 09c1b7bc4779117ed09c6de7c182896c
BLAKE2b-256 97c84762893fa20c2c8b136101b554e0489d9792ae8638ac3d6e2e77026471e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 283a04db13d6f0e95286c0e375ec9bd36b5ffec8689f5dfbd3c9b8b0963c0311
MD5 415a73b252f77b3c8027ee85ccf2f4e5
BLAKE2b-256 413637c299b227c774f628395d2173949290a050e4f3db2abd30698394bd5b12

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 035853835212236e80a9e789b744bbc528ae620a17a974fd993fc4f79b54e4a0
MD5 bfe8de6e6390cd9851fb7c2f34137cd3
BLAKE2b-256 6ad8ea1d597da6c139d758e3c027b80028196ef25f8d9c027a3b130678e19a5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 229430cda8ce23619b63a53008214ead71c0195f1c24d7947e6b22e543dc5788
MD5 5cc3f024cf7cd248564f3123f7b22b09
BLAKE2b-256 eb3ddd14f5659075b8f8be12a6f68ceea1cced14291ee60f15526b65cd941c71

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d8ca0df69f2ce7e1652daebf14773120d4b025d60f758edbdba1aceef9d445fd
MD5 e97f8034b9d30cce75bb65db1a7140fa
BLAKE2b-256 c0b0aebbd24d83206180ceb815f52e864705733bd7d6f59b0210d3aa7a5832ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4fd306be89b356e633e35fd36d1d7e4d6e7effbc0eff63d131e778f34a33c930
MD5 5e35762c3b9a4ad11c6114b78406987f
BLAKE2b-256 dadd11fd04b30c8effca976c14310ce00c12c725f72fb7e82fb987c783ffa6b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 841a81fc25abe5060b9b86615edaa26524d07237ca083ef33c8f40bf65de0dc5
MD5 6c51991a56eb5c4da3e366ed3fc9a7b1
BLAKE2b-256 f1abf725467c02802f014f6e68275909227618523cc3015531c48ac1bee5f5da

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 04728d581600ef41de3bc859ad93a98ae67545b9cb19d4a7ec959b0c031875bc
MD5 360e24859f7b3a4844b93e413e386e5b
BLAKE2b-256 87f83ab5d4a7df797035a081a998c66c9972619aa6ff74f59bf9d13c1a1f09a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 453b7eac572a97bfdada01ba29b864ff6dabc14d8f4ac077114c686315eef12a
MD5 388757f49ebc7f44931dbcea58b2df6c
BLAKE2b-256 184382859566e407a10b6451384df85824a3f6c599b8f7d79dfcdc53051e0e6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyquadp-1.0.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyquadp-1.0.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1824377210f744b6bf6726a57849924bd4a16748a284a0b6198ea74093938841
MD5 ae9beb72b4b88c2c00d10d0a0f1558f6
BLAKE2b-256 c5bf8d720ff8da89d10a38b62b1bed2a1be4528d0ffbbdd782c033c7fee451c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquadp-1.0.0-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: pypi.yml on rjfarmer/pyQuadp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page