Skip to main content

Python SPEC modules and tools

Project description

Test status badge

Test

PySpec

PySpec is a Python implementation of the SPEC server and client protocol, providing tools for remote control, data acquisition, and automation in scientific instrumentation environments. It enables Python-based clients to interact with a SPEC server, control motors, read/write variables, and execute commands or functions remotely.

Features

  • Async client-server architecture for high-performance remote control
  • Remote property and function access (read/write variables, call functions)
  • Motor control and status monitoring
  • Associative array and data array support

Installation

PySpec requires Python 3.9+ and depends on cython, h5py, numpy, and pyee.

pip install chess-pyspec

# or for development
git clone https://github.com/Verdant-Evolution/chess-pyspec
cd chess-pyspec
pip install -e .[dev]

Quick Start

Connecting as a Client

import asyncio
from pyspec.client import Client

async def main():
    async with Client("127.0.0.1", 6510) as client:
        # Get a reference to "var/foo" on the server.
        foo = client.var("foo", int)
        await foo.set(42)
        value = await foo.get()
        print("foo:", value) # foo: 42

        result = await client.call("add", 2, 3)
        print("add(2, 3):", result)


        # Wait for properties to be set to specific values
        await foo.wait_for(15, timeout=10)


asyncio.run(main())

Motor Control Example

async with Client("127.0.0.1", 6510) as client:
    motor = client.motor("theta")

    # Read and write motor properties and parameters
    await motor.sign.get()
    await motor.offset.get()
    await motor.position.get()
    ...

    # Move motors on the server
    async with motor:
        await motor.move(10.0)
        pos = await motor.position.get()
        print("Motor position:", pos) # "Motor position: 10.0"

Output Streaming Example

async with Client("127.0.0.1", 6510) as client:
    async with client.output("tty").capture() as lines:
        await client.exec('print("Hello, world!")')
    print(lines[-1])  # Should print 'Hello, world!\n'

Starting a Server

from pyspec.server import Server, Property, remote_function
import asyncio

class MyServer(Server):
    foo = Property[int]("foo", 0)

    @remote_function
    def add(self, a: str, b: str):
        return float(a) + float(b)

async def main():
    async with MyServer(host="127.0.0.1", port=6510, test_mode=True) as server:
        await server.serve_forever()

asyncio.run(main())

Hardware servers currently support properties and remote function calls. Connect with a PySpec or spec client to interface with a PySpec server.

Currently unsupported server features:

  1. Associative Arrays
  2. Motor Protocols (through ../start_one or ../start_all )

Testing

Run the test suite with:

pytest

Documentation

See the docs/ directory for full API documentation and usage details.

License

See LICENSE or the source headers for license details. Portions copyright Certified Scientific Software.

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

chess_pyspec-1.0.3.tar.gz (80.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_x86_64.whl (265.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_i686.whl (258.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_aarch64.whl (338.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

chess_pyspec-1.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

chess_pyspec-1.0.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (333.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

chess_pyspec-1.0.3-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (247.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

chess_pyspec-1.0.3-cp313-cp313-macosx_11_0_arm64.whl (119.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

chess_pyspec-1.0.3-cp313-cp313-macosx_10_13_x86_64.whl (125.9 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_x86_64.whl (265.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_i686.whl (257.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_aarch64.whl (338.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

chess_pyspec-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

chess_pyspec-1.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (333.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

chess_pyspec-1.0.3-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (247.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

chess_pyspec-1.0.3-cp312-cp312-macosx_11_0_arm64.whl (119.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

chess_pyspec-1.0.3-cp312-cp312-macosx_10_13_x86_64.whl (125.9 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_x86_64.whl (265.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_i686.whl (257.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_aarch64.whl (338.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

chess_pyspec-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

chess_pyspec-1.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (333.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

chess_pyspec-1.0.3-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (247.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

chess_pyspec-1.0.3-cp311-cp311-macosx_11_0_arm64.whl (119.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

chess_pyspec-1.0.3-cp311-cp311-macosx_10_9_x86_64.whl (126.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_x86_64.whl (265.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_i686.whl (257.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_aarch64.whl (338.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

chess_pyspec-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

chess_pyspec-1.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (333.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

chess_pyspec-1.0.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (247.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

chess_pyspec-1.0.3-cp310-cp310-macosx_11_0_arm64.whl (119.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

chess_pyspec-1.0.3-cp310-cp310-macosx_10_9_x86_64.whl (126.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_x86_64.whl (265.0 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_i686.whl (257.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ i686

chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_aarch64.whl (338.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

chess_pyspec-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

chess_pyspec-1.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (333.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

chess_pyspec-1.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (247.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

chess_pyspec-1.0.3-cp39-cp39-macosx_11_0_arm64.whl (119.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

chess_pyspec-1.0.3-cp39-cp39-macosx_10_9_x86_64.whl (126.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file chess_pyspec-1.0.3.tar.gz.

File metadata

  • Download URL: chess_pyspec-1.0.3.tar.gz
  • Upload date:
  • Size: 80.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for chess_pyspec-1.0.3.tar.gz
Algorithm Hash digest
SHA256 84f16a5c4354255eebfd47af7478503b89eb779af8c2ebe98f5884c3d9546c87
MD5 b584712ffe1fab9fc323d2f0beeb4f93
BLAKE2b-256 62e718e931c615fa3927da806045b0aa524bf50f5b2a2cf18abe5c98f32fc3c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3.tar.gz:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4e7697454e8b7c32da1f49201e3f852bf7f0bd191e4f9cd3d73b3d83f7d4a9fb
MD5 4305af3af0359f78961f6d0150276e4a
BLAKE2b-256 feed832e0c743ad6ef6f60e393d64ead12eb9bdf26720a2860fa329e6e93feb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 4f89420a2962ce55c669d516c60af3318db9528bf2d95aea393c343f8281a37d
MD5 5f1a3f673684d9faca7a54245e5e2260
BLAKE2b-256 835afa6686e56c12f7a388adf84d27f6cff35c105d401de1531cdb1704b77077

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_i686.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c826a414ff05df39c8b93e40f46b833e95ccf2604a1b02afe326368af3608ed7
MD5 ffeda17e04252c3d039042059edd5613
BLAKE2b-256 87ef74103b5f6b11a53061eb124efe7e2f4f5b201a24d5383a107f2927e50b0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 125aed08b19ef9438e1e53009d70d481cea078973a5c1e191fd1480e198d0e26
MD5 2bcfb0156db598e1c4537da4c8c62c58
BLAKE2b-256 de1bbbe0ac25f0cbf63403961978855d6eee963d65d9fddf1dafeb14c3359210

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 12182c8b9bb093f7b4ad0b3969616e5aa363389572ded3b5f6a416d6f225b7a9
MD5 532f68b2d1fe907a8fc5d85fdc0ade30
BLAKE2b-256 2f846ad90eda253282746968b4d79442d3a40a2189ccc63cedfc5fa25e93f9f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 87baa3daeff48a7a390871efd8bdb8ceeeabca4aaadc5d530ab3b27a955f1812
MD5 6bf53bfcdc69f7fb3da1597af1e300d6
BLAKE2b-256 b0811028503eaf6ccbca67b269524bda6287eaf5c114605e1f1fe1f59b02bb32

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1efc884036f452407a4af3757208fa4a8227950c8fd0ccc74f8cea57e2004ec
MD5 496a43bf65bcc9a85cc02e3c2782611f
BLAKE2b-256 31f89bce29dfb552de0122c9f14a6434906527c54407d6e3b56a7a2ece0fb72e

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 fe97a34e9915288017a851d88932e6712c5347855942f6284cfc9ce96f9d5f77
MD5 1a79afcfff7240f4daf87f6d2b0dea3d
BLAKE2b-256 aa68dbee1c42f404e929245e6b1209f0c0fc928e7bfd51afa5a821955baaa99b

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 32e9ecfa5c0edc0d11b44f4a31d1c734917ac49fc95292db7e3f740e7fd723e3
MD5 9606369ac89e679c761c21a56e533534
BLAKE2b-256 a9cb2a59e18cc7a9590be28acb262b43d74def83910c495bf7d010f2b7d0e474

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b90feb07a1088a344736375b0e40d1d4df43b9a9af2bf38a5aa1820dc0123c04
MD5 b2a51f0ae996acbf8b4904960ce6f6c1
BLAKE2b-256 4a8bbf3db9393004b81b6be15c3a0c6a15d45a5d84a27e306bdafdecb9eb3c6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_i686.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5069e18b0767d9b4113e2f08e4ffa8cbcd48729a5e59ffb4f29f298e45cf9116
MD5 a9f0bf80e5a5c64adb3670bb2447faff
BLAKE2b-256 1943132dc41f0605dcad74f32b402169bcadd11a52c69a8d6b7eb6389126b954

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6893670bc4f22326b856d5e289d3217780440a8e77d51d83f80437905564cbc1
MD5 ed211625a1c0a17d4fff4e9abd4c435b
BLAKE2b-256 bc63967527389774fb732f0edd9b14ab9de35d3c8eab4a58f3cbeca875b7f473

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ef44b905b0602718abf5dc515a652b9ec3ff484baa51b34877868a11880a0a97
MD5 ea6c48070f1f131be848430d8b4959e8
BLAKE2b-256 1a7c20e6b0dc0c7ef469c4e5b61b4820b7ed4db0b66ccf258ff0e8fb7de653e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ce30f6aaeab5504b0fee66eb91b71fe36914a24eccaebc725460e64ba6a06fd3
MD5 189b7b1a2518e637fb3f292c251f04b7
BLAKE2b-256 f51000544ab31c57825e2837b4a8ff5bec59e4ebcd3ed3f70bb691cd5bc89d6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5a6d21e0a7c4a584e55b828d20e57d3d9a76168bf5daa577b53c308d8bb866d
MD5 8cb07f3d50d79e07f174e9df3dafe35d
BLAKE2b-256 f66bd467fdfca89e9f334b49a5ce44c3dbb98aa0dc873f3a27d44217f27658e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ff1eb51d5e5dc6ce6c837de324515b0d1450af917243c06299eebbbdeb423e53
MD5 c17cf9b79001793292ddac4e16273b98
BLAKE2b-256 e3d771bff788d3f1dde26d92d6e84cb37efd433e2f6e16a86e9e5cd4effced26

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0fca212ff711a27af4a92b6370934964ad2feae2b5c8a220ee10346cc1198e9f
MD5 1eadb26dbc956486bb0eb57e2679a228
BLAKE2b-256 bd25c4c51df0c81c60feb09ac22a1dea20b3df7b1f037ca0d0c120c95956d8e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 aa940ee67ccac858ec39e3ede05e584a8ec4252886f6cf388db8410a82b2e345
MD5 dc1e049b977964181413e4ae5628dd24
BLAKE2b-256 6b9ef8b95d5f7e449f819904529a200847b01faf17d1919208475546e9d3b1b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_i686.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1d4a3810836e1305376b3a7952df4c7e55665784cb4941c5d5df1be1386a0b94
MD5 3ab2b84d9db4ff3f917a03faaba0400f
BLAKE2b-256 73a2d28a64ca49b275aa349f798b4dc9e805a1c8288230fe4e76f0f7c317a9e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dad505cd5cbbb2633136664ec91ab18e300c0a09028ba667f429dddc446f0d18
MD5 cff1788a554a5cccb486e05983817668
BLAKE2b-256 d8caac2166081392a63716cee243519f444b58db74a5183f6975a58f909d2329

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8a8cf773dab4da9cff7abb10add5ef04450ff7d70cd6ee9becd39396d665164d
MD5 9aed8ec3fb4befa2ce37793cc923f263
BLAKE2b-256 7b1e652d8f827004987bd050693bf0f46c6735d9e9ce3664c28726b65baf9654

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e49c0188aeffd3d442de023687e8fdac9039a641a333f37291555b6c11768947
MD5 d6d0d0f8feb3a50f2e20387e702f0eba
BLAKE2b-256 ef8c27558fd237db230a7894a350a356d2e152f3afd5b020431d28200632696d

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9943e395950876a58dbdf8ffc0dd7c649ac6c6e29b3a7c7b71211552c3973617
MD5 eb43d5b13f02c9f7e504b561ae87752f
BLAKE2b-256 a32e135a50d3cd4bdc4466c9403f620e409685779eaec98f24727c0654426dea

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f68a0a59a058fcc05d27b12dc7ea7204ebb285e876c891cdd62fff38b29f7ed0
MD5 3e237e7a9da381b172c311c64da7fc68
BLAKE2b-256 97a592132339b17840e303250c5d73db9974308c611adb9e4ac6a56ee07c412c

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e231950a79ebef75b97c2cf04064527fa18a0bc9bacc73fe8c7eb12f4f8d96ec
MD5 46491183099ffcbb0afe3ca3a68d118d
BLAKE2b-256 143ecfbe6c5cd9454cd65ab15570138c464ec802076af2303f03fa759441d0de

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 98325be1a9d9c21124c22f5b473ecadc657f88cb96b9dfff76ae1d0ffb0b0957
MD5 f91055b1ca7a13da52abeea147b506b7
BLAKE2b-256 4b1c37f9bccf93d7752c77a62f053bc4c0d1719e8fe67caf3c1b820f980a01e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_i686.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1172331fed3fa69f3c4fa4015754b50d7ace4a9f410accf6b495b5f82a7be5c1
MD5 08f855b97ea1a178e3a65d2acb24961b
BLAKE2b-256 f5befb8dae8c9aee77687212c3ab5e5890daf0c06eb4dee174f0a77da819196e

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02a60ba1efada973ab7a818df38fb900db1f30107512c8eef39f55fb8f64a7b2
MD5 165df1d11a7018a04776a2600ad746c8
BLAKE2b-256 d0c7d6fc49016af81cd10ecd59a2f83905a3377f949738ec337bd30747c6698c

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5c12b98451b8e8556a4a28448795c8ed8d61f080cb25a457f0f0904d06ca757b
MD5 80ff21bdec62d5e6ea998b3b001907a0
BLAKE2b-256 c9c295d9c3ae1bfd3f6a95f99efd918e9abe45a8fe11a1c6d15e5de86256ea66

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f14475f63b0a5f0ff1d69909a0beac9ab3c46c8f1f1ff85fd499d1e1bc8aee9b
MD5 8ace726c70c487b4ce9a3dc4411efb1d
BLAKE2b-256 5df29f00fdd6ecf2d737b3e2d5b47124907d629d6617120b95ee781ab3b5258c

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cd42d282663e94eaa770c0fd42db46d576f5e27d3318f1077fafa47d5abb41b4
MD5 31c3b3ff53d4d814cfed561e2c7ee5da
BLAKE2b-256 bc42907e860785edbe9f7804fa42ad262afd1014582f061bb0126169a2025bf0

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9abf76f495ba7d9c0f24740ac86793b69cd8dedf8d04a80971ab75d160b0b22b
MD5 0ae96057e47fcfe7407044001c819b13
BLAKE2b-256 b12b2ae3d49557e5aa3b9072562fc209c20e17faaa76630bc5e9add9daa1fc6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4e807102b21b875de2ba33ec1a2c0c903301e74c2cc1e2aaa78bb3ec8722b290
MD5 70ca890e4f1cf332d681cb0e1de80d3e
BLAKE2b-256 43bb8600fdba867edc4f261a48bb7470bbc8af84d81fe8ea0c2fa692cc65e853

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1e9e1d69f14da46ae6881f5a846d70aed34b9acc42a5c47763b113ca56eba654
MD5 ce24db6da9d5dccc993aabaac47c9688
BLAKE2b-256 b2880d86a7ece43c80bc42de7edefe3e8d4dea8cfdc7cf1f50c7244d7761005d

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_i686.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1ad3a2507870b14ce2a9e6ad558cd6ad15983744b8ceacceb5f81e52cc14ae93
MD5 d7bbed449980a27e2abc24a781e681b3
BLAKE2b-256 7ac8daae5895cf33d9a1995b73810df29815ab2e9e42481d8b90c3a65190c6d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 60387e69ee5cd51320cc9ad01ae40efaa8402e1616460d311350fa156805e816
MD5 fbd0a6c244f2b35a0cdd8b775290e24c
BLAKE2b-256 e1d88d1a3ff089aef77ded041326c64ea3c12a53be56bb43f19acee9f4a8c799

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 24a4697b7fcf91f07dbaf53db1d0440871338a69df5a6e61d6b5f320331b7a6d
MD5 097ac590fc95a150a29a386a19576a08
BLAKE2b-256 7790ed4d8aeb29288d3a66d386229b2dbaed23fb1e9b3b3a650f76b2df31c1f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6a0837d52a37af71c9c622291022d2bba7d566d381f0150f21651ab95052a3b4
MD5 0a5375421c27e1a85ae7fb2f63c96047
BLAKE2b-256 1a20ef60d8bb82b278d8165f44e04341bd3dc3495dc99a8eaec869b4b9b107bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 29c6ee3191ca8340fb3a2f733b70051c0dabcfb6e3e98e02b6e2e51bbda8b6a7
MD5 c546622c1fa9cd1e7b19cd4d45204ed7
BLAKE2b-256 080e755caa417fef50a6a76b2267d1d296909895dfd7eb12dd5f5fd795438cb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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

File details

Details for the file chess_pyspec-1.0.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for chess_pyspec-1.0.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 074093cb2f2b0dd53a0afb37739cef70375d0bd85eeddd815334e027184bedb5
MD5 2f7bd17195bec3f661ebff1d1ae881df
BLAKE2b-256 c3e21288473788e83e3e6149377242226f86980b44b5a1d2d33b43850ebcdc7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for chess_pyspec-1.0.3-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: publish.yml on Verdant-Evolution/chess-pyspec

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 Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page