Skip to main content

Python API of the DFT-D4 project

Project description

Python interface for the generally applicable atomic-charge dependent London dispersion correction, DFT-D4. This Python project is targeted at developers who want to interface their project via Python with dftd4.

This interface provides access to the C-API of dftd4 via the CFFI module. The low-level CFFI interface is available in the dftd4.library module and only required for implementing other interfaces. A more pythonic interface is provided in the dftd4.interface module which can be used to build more specific interfaces.

>>> from dftd4.interface import DampingParam, DispersionModel
>>> import numpy as np
>>> numbers = np.array([1, 1, 6, 5, 1, 15, 8, 17, 13, 15, 5, 1, 9, 15, 1, 15])
>>> positions = np.array([  # Coordinates in Bohr
...     [+2.79274810283778, +3.82998228828316, -2.79287054959216],
...     [-1.43447454186833, +0.43418729987882, +5.53854345129809],
...     [-3.26268343665218, -2.50644032426151, -1.56631149351046],
...     [+2.14548759959147, -0.88798018953965, -2.24592534506187],
...     [-4.30233097423181, -3.93631518670031, -0.48930754109119],
...     [+0.06107643564880, -3.82467931731366, -2.22333344469482],
...     [+0.41168550401858, +0.58105573172764, +5.56854609916143],
...     [+4.41363836635653, +3.92515871809283, +2.57961724984000],
...     [+1.33707758998700, +1.40194471661647, +1.97530004949523],
...     [+3.08342709834868, +1.72520024666801, -4.42666116106828],
...     [-3.02346932078505, +0.04438199934191, -0.27636197425010],
...     [+1.11508390868455, -0.97617412809198, +6.25462847718180],
...     [+0.61938955433011, +2.17903547389232, -6.21279842416963],
...     [-2.67491681346835, +3.00175899761859, +1.05038813614845],
...     [-4.13181080289514, -2.34226739863660, -3.44356159392859],
...     [+2.85007173009739, -2.64884892757600, +0.71010806424206],
... ])
>>> model = DispersionModel(numbers, positions)
>>> res = model.get_dispersion(DampingParam(method="scan"), grad=False)
>>> res.get("energy")  # Results in atomic units
-0.005328888532435093
>>> res.update(**model.get_properties())  # also allows access to properties
>>> res.get("c6 coefficients")[0, 0]
1.5976689760849156
>>> res.get("polarizabilities")
array([ 1.97521745,  1.48512704,  7.33564674, 10.28920458,  1.99973802,
       22.85298573,  6.65877552, 15.39410319, 22.73119177, 22.86303028,
       14.56038118,  1.4815783 ,  3.91266859, 25.8236368 ,  1.93444627,
       23.02494331])

Additional features

The dftd4.parameters module becomes available if a TOML parser is available, either tomlkit or toml can be used here. The returned dict can be used to supply parameters to the constructor of the DampingParam object, only the s6, s8, s9, a1, a2 and alp entries will be used, the remaining entries are meta data describing the damping parameters.

>>> from dftd4.parameters import get_damping_param
>>> get_damping_param("b97m")
{'s6': 1.0, 's9': 1.0, 'alp': 16.0, 's8': 0.6633, 'a1': 0.4288, 'a2': 3.9935}
>>> get_damping_param("r2scan", keep_meta=True)
{'s6': 1.0, 's9': 1.0, 'alp': 16.0, 'damping': 'bj', 'mbd': 'approx-atm', 's8': 0.6018749, 'a1': 0.51559235, 'a2': 5.77342911, 'doi': '10.1063/5.0041008'}

QCSchema Integration

This Python API natively understands QCSchema and the QCArchive infrastructure. If the QCElemental package is installed the dftd4.qcschema module becomes importable and provides the run_qcschema function. If the QCElemental package is >=0.50.0, dftd4.qcschema supports QCSchema v1 and v2, returning whichever version was submitted. Note that only QCSchema v2 works with Python 3.14+ due to Pydantic restrictions.

>>> from dftd4.qcschema import run_qcschema
>>> import qcelemental as qcel
>>> atomic_input = qcel.models.AtomicInput(
...     molecule = qcel.models.Molecule(
...         symbols = ["O", "H", "H"],
...         geometry = [
...             0.00000000000000,  0.00000000000000, -0.73578586109551,
...             1.44183152868459,  0.00000000000000,  0.36789293054775,
...            -1.44183152868459,  0.00000000000000,  0.36789293054775
...         ],
...     ),
...     driver = "energy",
...     model = {
...         "method": "TPSS-D4",
...     },
...     keywords = {},
... )
...
>>> atomic_result = run_qcschema(atomic_input)
>>> atomic_result.return_result
-0.0002667885779142513

ASE Integration

To integrate with ASE this interface implements an ASE Calculator. The DFTD4 calculator becomes importable if an ASE installation is available.

>>> from ase.build import molecule
>>> from dftd4.ase import DFTD4
>>> atoms = molecule('H2O')
>>> atoms.calc = DFTD4(method="TPSS")
>>> atoms.get_potential_energy()
-0.007310393443152083
>>> atoms.calc.set(method="PBE")
{'method': 'PBE'}
>>> atoms.get_potential_energy()
-0.005358475432239303
>>> atoms.get_forces()
array([[-0.        , -0.        ,  0.00296845],
       [-0.        ,  0.00119152, -0.00148423],
       [-0.        , -0.00119152, -0.00148423]])

To use the DFTD4 calculator as dispersion correction the calculator can be combined using the SumCalculator from the ase.calculators.mixing module.

>>> from ase.build import molecule
>>> from ase.calculators.mixing import SumCalculator
>>> from ase.calculators.nwchem import NWChem
>>> from dftd4.ase import DFTD4
>>> atoms = molecule('H2O')
>>> atoms.calc = SumCalculator([DFTD4(method="PBE"), NWChem(xc="PBE")])

For convenience DFTD4 allows to combine itself with another calculator by using the add_calculator method which returns a SumCalculator:

>>> from ase.build import molecule
>>> from ase.calculators.emt import EMT
>>> from dftd4.ase import DFTD4
>>> atoms = molecule("C60")
>>> atoms.calc = DFTD4(method="pbe").add_calculator(EMT())
>>> atoms.get_potential_energy()
6.348142387048062
>>> [calc.get_potential_energy() for calc in atoms.calc.calcs]
[-6.015477436263984, 12.363619823312046]

The individual contributions are available by iterating over the list of calculators in calc.calcs. Note that DFTD4 will always place itself as first calculator in the list.

PySCF support

Integration with PySCF is possible by using the dftd4.pyscf module. The module provides a DFTD4Dispersion class to construct a PySCF compatible calculator for evaluating the dispersion energy and gradients.

>>> from pyscf import gto
>>> import dftd4.pyscf as disp
>>> mol = gto.M(
...     atom="""
...          C   -0.755422531  -0.796459123  -1.023590391
...          C    0.634274834  -0.880017014  -1.075233285
...          C    1.406955202   0.199695367  -0.653144334
...          C    0.798863737   1.361204515  -0.180597909
...          C   -0.593166787   1.434312023  -0.133597923
...          C   -1.376239198   0.359205222  -0.553258516
...          I   -1.514344238   3.173268101   0.573601106
...          H    1.110906949  -1.778801728  -1.440619836
...          H    1.399172302   2.197767355   0.147412751
...          H    2.486417780   0.142466525  -0.689380574
...          H   -2.454252250   0.422581120  -0.512807958
...          H   -1.362353593  -1.630564523  -1.348743149
...          S   -3.112683203   6.289227834   1.226984439
...          H   -4.328789697   5.797771251   0.973373089
...          C   -2.689135032   6.703163830  -0.489062886
...          H   -1.684433029   7.115457372  -0.460265708
...          H   -2.683867206   5.816530502  -1.115183775
...          H   -3.365330613   7.451201412  -0.890098894
...          """
... )
>>> d4 = disp.DFTD4Dispersion(mol, xc="r2SCAN")
>>> d4.kernel()[0]
array(-0.0050011)

To make use of the dispersion correction together with other calculators, the energy method allows to apply a dispersion correction to an existing calculator.

>>> from pyscf import gto, scf
>>> import dftd4.pyscf as disp
>>> mol = gto.M(
...     atom="""
...          O  -1.65542061  -0.12330038   0.00000000
...          O   1.24621244   0.10268870   0.00000000
...          H  -0.70409026   0.03193167   0.00000000
...          H  -2.03867273   0.75372294   0.00000000
...          H   1.57598558  -0.38252146  -0.75856129
...          H   1.57598558  -0.38252146   0.75856129
...          """
... )
>>> mf = disp.energy(scf.RHF(mol)).run()
converged SCF energy = -149.939098424774
>>> grad = mf.nuc_grad_method().kernel()
--------------- DFTD4 gradients ---------------
         x                y                z
0 O     0.0172438133     0.0508406920     0.0000000000
1 O     0.0380018285    -0.0460223790    -0.0000000000
2 H    -0.0305058266    -0.0126478132    -0.0000000000
3 H     0.0069233858    -0.0382898692    -0.0000000000
4 H    -0.0158316004     0.0230596847     0.0218908543
5 H    -0.0158316004     0.0230596847    -0.0218908543
----------------------------------------------

Installing

Conda Version

This project is packaged for the conda package manager and available on the conda-forge channel. To install the conda package manager we recommend the miniforge installer. If the conda-forge channel is not yet enabled, add it to your channels with

conda config --add channels conda-forge

Once the conda-forge channel has been enabled, this project can be installed with:

conda install dftd4-python

Now you are ready to use dftd4, check if you can import it with

>>> import dftd4
>>> from dftd4.libdftd4 import get_api_version
>>> get_api_version()
'4.1.0'

Building the extension module

To perform an out-of-tree build some version of dftd4 has to be available on your system and preferably findable by pkg-config. Try to find a dftd4 installation you build against first with

pkg-config --modversion dftd4

Adjust the PKG_CONFIG_PATH environment variable to include the correct directories to find the installation if necessary.

Using pip

This project support installation with pip as an easy way to build the Python API.

  • C compiler to build the C-API and compile the extension module (the compiler name should be exported in the CC environment variable)

  • Python 3.6 or newer

  • The following Python packages are required additionally

Make sure to have your C compiler set to the CC environment variable

export CC=gcc

Install the project with pip

pip install .

To install extra dependencies as well use

pip install '.[parameters,ase,qcschema]'

If you already have a dftd4 installation, e.g. from conda-forge, you can build the Python extension module directly without cloning this repository

pip install "https://github.com/dftd4/dftd4/archive/refs/heads/main#egg=dftd4-python&subdirectory=python"

Using meson

This directory contains a separate meson build file to allow the out-of-tree build of the CFFI extension module. The out-of-tree build requires

  • C compiler to build the C-API and compile the extension module

  • meson version 0.55 or newer

  • a build-system backend, i.e. ninja version 1.7 or newer

  • Python 3.6 or newer with the CFFI package installed

Setup a build with

meson setup _build -Dpython_version=$(which python3)

The Python version can be used to select a different Python version, it defaults to 'python3'. Python 2 is not supported with this project, the Python version key is meant to select between several local Python 3 versions.

Compile the project with

meson compile -C _build

The extension module is now available in _build/dftd4/_libdftd4.*.so. You can install as usual with

meson configure _build --prefix=/path/to/install
meson install -C _build

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

dftd4-4.1.0.tar.gz (665.8 kB view details)

Uploaded Source

Built Distributions

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

dftd4-4.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

dftd4-4.1.0-pp311-pypy311_pp73-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded PyPymacOS 15.0+ x86-64

dftd4-4.1.0-pp311-pypy311_pp73-macosx_15_0_arm64.whl (1.5 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

dftd4-4.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

dftd4-4.1.0-pp310-pypy310_pp73-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded PyPymacOS 15.0+ x86-64

dftd4-4.1.0-pp310-pypy310_pp73-macosx_15_0_arm64.whl (1.5 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

dftd4-4.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

dftd4-4.1.0-pp39-pypy39_pp73-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded PyPymacOS 15.0+ x86-64

dftd4-4.1.0-pp39-pypy39_pp73-macosx_15_0_arm64.whl (1.5 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

dftd4-4.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

dftd4-4.1.0-pp38-pypy38_pp73-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded PyPymacOS 15.0+ x86-64

dftd4-4.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

dftd4-4.1.0-pp37-pypy37_pp73-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded PyPymacOS 15.0+ x86-64

dftd4-4.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

dftd4-4.1.0-cp314-cp314-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

dftd4-4.1.0-cp314-cp314-macosx_15_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

dftd4-4.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

dftd4-4.1.0-cp313-cp313-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

dftd4-4.1.0-cp313-cp313-macosx_15_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

dftd4-4.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

dftd4-4.1.0-cp312-cp312-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

dftd4-4.1.0-cp312-cp312-macosx_15_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

dftd4-4.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

dftd4-4.1.0-cp311-cp311-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

dftd4-4.1.0-cp311-cp311-macosx_15_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

dftd4-4.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

dftd4-4.1.0-cp310-cp310-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

dftd4-4.1.0-cp310-cp310-macosx_15_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

dftd4-4.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

dftd4-4.1.0-cp39-cp39-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.9macOS 15.0+ x86-64

dftd4-4.1.0-cp39-cp39-macosx_15_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

dftd4-4.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

dftd4-4.1.0-cp38-cp38-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.8macOS 15.0+ x86-64

dftd4-4.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

dftd4-4.1.0-cp37-cp37m-macosx_15_0_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.7mmacOS 15.0+ x86-64

File details

Details for the file dftd4-4.1.0.tar.gz.

File metadata

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

File hashes

Hashes for dftd4-4.1.0.tar.gz
Algorithm Hash digest
SHA256 d1c3d69ab928c4774901fdc8a0aba0e3995365e9bcd9f89f7884585fb8ee3892
MD5 f832d0b41858173757cddb9a2c4e9d47
BLAKE2b-256 3e16851977a4c1eb81aa402f6f581edf149baac45a134f023d7410354156053a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0.tar.gz:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d50785238c664191b57a3d07efa4c58ed08df04f935b1d0cf06615a7c86afb6c
MD5 f0a2c632faa876bf8613d20650f2ecab
BLAKE2b-256 7c7a400ca96ca9d0702cc83d0b2bc455504ada172a945352d132c23268e7d686

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp311-pypy311_pp73-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp311-pypy311_pp73-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 7cb6f7768fabcac5048dd01bdb4cdb396c18a9f7274ba50e3850f9eadb71ae1c
MD5 754f69f1190c70fac23ed38be9447a5b
BLAKE2b-256 423b148795d5439665be8a78f4e9d6b879f407015dc4397480a9bb8c68c1f5cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp311-pypy311_pp73-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp311-pypy311_pp73-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp311-pypy311_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 9de10395dce79efc871e027e1dbc4122bae7e8660a6c72eaac30522aa239ede6
MD5 d8cdf06beae4f39e98099a97004b4ca9
BLAKE2b-256 9e260933efe21a1039a46f931446b1ef5c4b98b6a48a173d6482fe07b69f424e

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp311-pypy311_pp73-macosx_15_0_arm64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d031af285bc7b9e741d9bccd1fed21d60bdc10333f0a816bd03220444a351d22
MD5 c71993220559504483792c335839c880
BLAKE2b-256 da58840720bc78978f3f0c78a0cea96eb86e84f203eee0c9ecc3731d633b0b2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp310-pypy310_pp73-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp310-pypy310_pp73-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 4a6309941f2b534fcc05b148a32295f4197239731eb37e28b4f0a48f99bb2c11
MD5 5c1de2dbfd2ef52a3677b07b7878fa25
BLAKE2b-256 8d8aac7990de83113556bfedff82e2b044d9ac1c27bf1905e6a885343e7876fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp310-pypy310_pp73-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp310-pypy310_pp73-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp310-pypy310_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0cf9049f11cd91b315a6e926f3051aff18d7db636420c5fb47465e84535245f6
MD5 b9c0525974db0f455a81610a84503663
BLAKE2b-256 34069aaab5645934b1440f32611797a39af30336e82dcb0c46f800c91bd7a930

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp310-pypy310_pp73-macosx_15_0_arm64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff5439dd4a83d5ded4c29c753158e98caaafcba03889e8f4016487e2d8883445
MD5 a6dda35a0b8d7df10dff24a634eaeae9
BLAKE2b-256 973c8b5cf579dc557746f607dd4429843d9896c505ff90f4091f0a79fab75b12

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp39-pypy39_pp73-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp39-pypy39_pp73-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 a77ee3e2e729e3aefb7114ec5d23bbba0fa52376d9817b0747a3cbc5801725f1
MD5 b6355677827a8f8241e17b03ee282262
BLAKE2b-256 b7513ce7df4de0211c4058fa51e168d165f38819a18d001e127cdda484307c55

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp39-pypy39_pp73-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp39-pypy39_pp73-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp39-pypy39_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 aee04ae8155c307b3c854efa658cd3ee0c6151e53b62e80c06779436836622cb
MD5 654f237662e8922ff5a934f31d495400
BLAKE2b-256 95b321410d57f855a2d6694da6817d0866ee8b7b6c154d3e0b2a643a8e093753

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp39-pypy39_pp73-macosx_15_0_arm64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 21a8b45576d0ca8da0aab6d40ef685a4e8c05e419f96ef9d7c546300d08bfd76
MD5 63c320ae6832d696dd9490dafd16f8db
BLAKE2b-256 88a59a8eedf283b22d83172196f21097fbb292d60096933e74ffb8b191d6958b

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp38-pypy38_pp73-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp38-pypy38_pp73-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 72cef9db2fd6cb061e9c43326bafbfac11a6dc07d5df720e0cfd4a217dca3625
MD5 f457a3f0353b4ad6a021024a8981f5f8
BLAKE2b-256 3ab747113321098c4837895207bfa1216d208c1cd8ea771b22b9474ebbc04588

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp38-pypy38_pp73-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c73d4132ca83dcee4469440239a7a954fd82a2fc61d354ba151cdc405144877
MD5 65d1b721c28a76012d6feb1768ce95fa
BLAKE2b-256 738233129f67743c5bee9aafd15764a02155f89f0bdd7a23809ed09c96e50120

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-pp37-pypy37_pp73-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-pp37-pypy37_pp73-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 c473314cc7a2cfa654712f3c1102cbb48ac98a9cbe34c4ea0401005661f7befb
MD5 12bb3bc217201c0fcaa2537befd7c394
BLAKE2b-256 44328507008763cbcff99d9ee810afacfdf37f55e909c501fdea08782bcf3c83

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-pp37-pypy37_pp73-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c11431cba0627ef23e3a375704e48e23203170dac0447aaa11ad233d05a6657c
MD5 1a48ec5fa1b62cfa0b148b47b80a16a4
BLAKE2b-256 0999374ff11f961923849944e49de81a2e8b97b5eda118c9cbc0fb8a90e9d4aa

See more details on using hashes here.

File details

Details for the file dftd4-4.1.0-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 26baaa50aff6fd3502e47c6431ba69ecde048476fe5c8d4e9cb6248aeaf897c2
MD5 0970da46d7bd47ce2e475804d9c9f985
BLAKE2b-256 e077ed18e2858ca2d2b09e20ec6094007c80a0450f1004999869f9808c01a8ea

See more details on using hashes here.

File details

Details for the file dftd4-4.1.0-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 98ffeed738bd327bc7aa04581cf84555d40b4e1d97c08c47e40d5888177557a6
MD5 162f5c0f9c97a060c2b133f81f9d7bd3
BLAKE2b-256 2c90a641ee92dfc2e1fbadd890de3e2cad20eb3b8866cad6af435714a2884d67

See more details on using hashes here.

File details

Details for the file dftd4-4.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c82801a67d1886470f3959297ad1ca504b98af858b3cc8063bb1577ee920519b
MD5 20d8604bb5b3e905edb1f6c0a5dbcfe3
BLAKE2b-256 c3242d2c3f02c5ea8b4ed1447869014be4aa63d39323e98c36f090da55727faf

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 af9f2b37ba197269e3c164446fe5bbb2708c0c7850a85779a7759e2873fd9632
MD5 bb5f17b3799d586941b10587c3790dcd
BLAKE2b-256 e6fc3287806a0f9b0f84e351e00af06a1cb8ed56fe955d0796e13aa5b628b41b

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp313-cp313-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e6b2acf56ab8015afd20b6bebfd9cadd81e6cfed886fda7a584aad71594d2efe
MD5 9dc22a628ac9df30d89ca3cfe39fa194
BLAKE2b-256 3c754d5c0de85f142320e26377840af69e5e23c1768d187bc4a5d38f1e315652

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp313-cp313-macosx_15_0_arm64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 923f1da82cb8b1f8d693e0faaff578f9f161aec01b68a01695c4a6dd75e572ac
MD5 6b4b1b4fd7849f4451c3a8590f1383c5
BLAKE2b-256 cb624663a60ada59214cf15297b282b54f54f06d2c9ee10a00aa08b037cd3937

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 40de99a014e01f0766cf0e1489672b45edd24d8df4346d3453a22d45ee19f9b8
MD5 b4e1d1aa07f6248f70956853869fe17c
BLAKE2b-256 6394310c327d0bbf307dc1af809889d552405958361483b80e80fc3a06c71a93

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp312-cp312-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 7c42be126f36bef1550cdfe60e47d2f02cc817c8bb60411f8fbbdb2b47a6c4d6
MD5 e696f1cfcab78ce64cb65930b407165b
BLAKE2b-256 8c2f843e73eab68cb2c1280facd91cca293d84ea7b2fdf5834714dd3f6f47106

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a78303051a721d0bcad01cf6556c12bb375913533a0a5229627bd4c16e1a597e
MD5 edd3bc3043d3215d849c109eb3720001
BLAKE2b-256 5c06969b830949de1bf231f5eff6b68cda6e2c25b83dae542d8e6275ffb17d4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 e972d93e609a316f0dd6c8ed9fdb617278c22beddd6d65e3fd824cef55ac527c
MD5 6374c00ce344da2326e563ad6c18e5e7
BLAKE2b-256 6cea9a6e8049ab1fd9b4bdc28f0c10a70cfd7b19569b81bce501e6c34dfc6213

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp311-cp311-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 25c307c7b9d85b4b5ff080a403d7303bc72db60e339792a854ce1e83d3d738e8
MD5 8250aeaf7f8133a8831279b20abf0855
BLAKE2b-256 89f4d2d5b2744689a44761b15e2b272108d1c00748cf027173756d5bf0515323

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp311-cp311-macosx_15_0_arm64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b2f4a32dbfb1178360d7d233cab5e7f6cc1812cd1df8caa45d3d3345d29025e5
MD5 7ab7783d35fddcda220734767c8f0378
BLAKE2b-256 97d72139d8e65d78489100c2f855f0ba10c41d218cfa101b7922d49e0b4ad15b

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 2062a8bf69fb1e77b20e0f995173f640aac2b5864281fed6867cd06073cc9d09
MD5 cce5d51d1f0a09aac66facdc873c4160
BLAKE2b-256 9503abda7c70e1ea61f705432c1c4a4f0f03e4e54d0e6f3ebb88b21620a9b590

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp310-cp310-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 7b67e6139fb45d6d4333c0f97b0845e1ae9af134f8f7b49e0d161ad250927ba9
MD5 2bc0e1701f1c250f58f407b13df8e6ed
BLAKE2b-256 ff47de904d0f0961edc4a5443c7011bdcc6be5f23acd7f78a9af30f41960a262

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp310-cp310-macosx_15_0_arm64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 233fd19d845841fe6596c5f4cbeba82676b7fdd8759440007d54cafb5cad5bb3
MD5 c985bce055197c07827138e614880a02
BLAKE2b-256 b76c45e04489ed0b70cd07823ef9ab97d9aacb5f80e1df06e4f76b55df5a3903

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp39-cp39-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp39-cp39-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 ea5504ed9088eb727551074e2a5227424803751ef25d70b391e01380337d749e
MD5 53172fa8934e52acb20f6cc1faa5275c
BLAKE2b-256 5f6f8885b6eb84cfcfff7d7db83f116df520e2ce89c4ebc84a945f2fc1701d7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp39-cp39-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

  • Download URL: dftd4-4.1.0-cp39-cp39-macosx_15_0_arm64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.9, macOS 15.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dftd4-4.1.0-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a6a7aa17f45e941ec40ad54049a9a466af6b4c156d47c628554aef44490d309c
MD5 61a34c3473be49645ae7e26887b8b65a
BLAKE2b-256 40d99784aed194ab0de821d0057e0b082aab7515fb56dd0559395fffd3670f4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp39-cp39-macosx_15_0_arm64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02166e71667304bf45fdab84a099148498163dd015c6b4b0b8f6049b41a87923
MD5 27a5211c6a08e53b443d066b4449fe63
BLAKE2b-256 bee042f2af65820812b20339ace51ba6c15eff6d89a3c55e3bb563bf149e896c

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp38-cp38-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp38-cp38-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 9f7669bebe3d29f7c4f1eeb26bd09f0daef0cfa94333b3d77d7f8ad9d9f57bfe
MD5 6ce8ca1ae4fa9911ef892225c11bd062
BLAKE2b-256 db1be02f95883cf88efc691330d555bea4123c028fc6cedaa35ff27e482e6aa0

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp38-cp38-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1d3cecd88602a81ba7328cc449b3568355154512cee08d6b03c8c8d64a4e2223
MD5 d0adab101036b84262e04e28b7336c1c
BLAKE2b-256 8fde1ea04e5661b6bac93e884d86eb639660ecd6e8596ff1f1ff09ae4fd8f1e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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

File details

Details for the file dftd4-4.1.0-cp37-cp37m-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for dftd4-4.1.0-cp37-cp37m-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 ee67ebf10e0873c66fac1a2bc61d35190fd36c4143c9ec4f1e58aca0571a1103
MD5 37480d686aadd930ff476bb6ac8bdfb9
BLAKE2b-256 7b3d92a6659cb3278959a9dc0ac5f26d8ee425bddb6abd8ce8d091c00539f8f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for dftd4-4.1.0-cp37-cp37m-macosx_15_0_x86_64.whl:

Publisher: wheel.yml on dftd4/dftd4

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