Skip to main content

Rust-powered collection of financial functions for Python.

Project description

rust-lang.org License pypi versions

PyXIRR

Rust-powered collection of financial functions.

PyXIRR stands for "Python XIRR" (for historical reasons), but contains many other financial functions such as IRR, FV, NPV, etc.

Features:

  • correct
  • supports different day count conventions (e.g. ACT/360, 30E/360, etc.)
  • works with different input data types (iterators, numpy arrays, pandas DataFrames)
  • no external dependencies
  • type annotations
  • blazingly fast

Installation

pip install pyxirr

WASM wheels for pyodide are also available, but unfortunately are not supported by PyPI. You can find them on the GitHub Releases page.

Benchmarks

Rust implementation has been tested against existing xirr package (uses scipy.optimize under the hood) and the implementation from the Stack Overflow (pure python).

bench

PyXIRR is much faster than the other implementations.

Powered by github-action-benchmark and plotly.js.

Live benchmarks are hosted on Github Pages.

Example

from datetime import date
from pyxirr import xirr

dates = [date(2020, 1, 1), date(2021, 1, 1), date(2022, 1, 1)]
amounts = [-1000, 750, 500]

# feed columnar data
xirr(dates, amounts)
# feed iterators
xirr(iter(dates), (x / 2 for x in amounts))
# feed an iterable of tuples
xirr(zip(dates, amounts))
# feed a dictionary
xirr(dict(zip(dates, amounts)))
# dates as strings
xirr(['2020-01-01', '2021-01-01'], [-1000, 1200])

Multiple IRR problem

The Multiple IRR problem occurs when the signs of cash flows change more than once. In this case, we say that the project has non-conventional cash flows. This leads to situation, where it can have more the one IRR or have no IRR at all.

PyXIRR addresses the Multiple IRR problem as follows:

  1. It looks for positive result around 0.1 (the same as Excel with the default guess=0.1).
  2. If it can't find a result, it uses several other attempts and selects the lowest IRR to be conservative.

Here is an example illustrating how to identify multiple IRRs:

import numpy as np
import pyxirr

# load cash flow:
cf = pd.read_csv("tests/samples/30-22.csv", names=["date", "amount"])
# check whether the cash flow is conventional:
print(pyxirr.is_conventional_cash_flow(cf["amount"]))  # false

# build NPV profile:
# calculate 50 NPV values for different rates
rates = np.linspace(-0.5, 0.5, 50)
# any iterable, any rates, e.g.
# rates = [-0.5, -0.3, -0.1, 0.1, -0.6]
values = pyxirr.xnpv(rates, cf)

# print NPV profile:
# NPV changes sign two times:
#   1) between -0.316 and -0.295
#   2) between -0.03 and -0.01
print("NPV profile:")
for rate, value in zip(rates, values):
    print(rate, value)

# plot NPV profile
import pandas as pd
series = pd.Series(values, index=rates)
pd.DataFrame(series[series > -1e6]).assign(zero=0).plot()

# find points where NPV function crosses zero
indexes = pyxirr.zero_crossing_points(values)

print("Zero crossing points:")
for idx in indexes:
    print("between", rates[idx], "and", rates[idx+1])

# XIRR has two results:
#   -0.31540826742734207
#   -0.028668460065441048
for i, idx in enumerate(indexes, start=1):
    rate = pyxirr.xirr(cf, guess=rates[idx])
    npv = pyxirr.xnpv(rate, cf)
    print(f"{i}) {rate}; XNPV = {npv}")

More Examples

Numpy and Pandas

import numpy as np
import pandas as pd

# feed numpy array
xirr(np.array([dates, amounts]))
xirr(np.array(dates), np.array(amounts))

# feed DataFrame (columns names doesn't matter; ordering matters)
xirr(pd.DataFrame({"a": dates, "b": amounts}))

# feed Series with DatetimeIndex
xirr(pd.Series(amounts, index=pd.to_datetime(dates)))

# bonus: apply xirr to a DataFrame with DatetimeIndex:
df = pd.DataFrame(
    index=pd.date_range("2021", "2022", freq="MS", inclusive="left"),
    data={
        "one": [-100] + [20] * 11,
        "two": [-80] + [19] * 11,
    },
)
df.apply(xirr)  # Series(index=["one", "two"], data=[5.09623547168478, 8.780801977141174])

Day count conventions

Check out the available options on the docs/day-count-conventions.

from pyxirr import DayCount

xirr(dates, amounts, day_count=DayCount.ACT_360)

# parse day count from string
xirr(dates, amounts, day_count="30E/360")

Private equity performance metrics

from pyxirr import pe

pe.pme_plus([-20, 15, 0], index=[100, 115, 130], nav=20)

pe.direct_alpha([-20, 15, 0], index=[100, 115, 130], nav=20)

Docs

Other financial functions

import pyxirr

# Future Value
pyxirr.fv(0.05/12, 10*12, -100, -100)

# Net Present Value
pyxirr.npv(0, [-40_000, 5_000, 8_000, 12_000, 30_000])

# IRR
pyxirr.irr([-100, 39, 59, 55, 20])

# ... and more! Check out the docs.

Docs

Vectorization

PyXIRR supports numpy-like vectorization.

If all input is scalar, returns a scalar float. If any input is array_like, returns values for each input element. If multiple inputs are array_like, performs broadcasting and returns values for each element.

import pyxirr

# feed list
pyxirr.fv([0.05/12, 0.06/12], 10*12, -100, -100)
pyxirr.fv([0.05/12, 0.06/12], [10*12, 9*12], [-100, -200], -100)

# feed numpy array
import numpy as np
rates = np.array([0.05, 0.06, 0.07])/12
pyxirr.fv(rates, 10*12, -100, -100)

# feed any iterable!
pyxirr.fv(
    np.linspace(0.01, 0.2, 10),
    (x + 1 for x in range(10)),
    range(-100, -1100, -100),
    tuple(range(-100, -200, -10))
)

# 2d, 3d, 4d, and more!
rates = [[[[[[0.01], [0.02]]]]]]
pyxirr.fv(rates, 10*12, -100, -100)

API reference

See the docs

Roadmap

  • Implement all functions from numpy-financial
  • Improve docs, add more tests
  • Type hints
  • Vectorized versions of numpy-financial functions.
  • Compile library for rust/javascript/python

Development

Running tests with pyo3 is a bit tricky. In short, you need to compile your tests without extension-module feature to avoid linking errors. See the following issues for the details: #341, #771.

If you are using pyenv, make sure you have the shared library installed (check for ${PYENV_ROOT}/versions/<version>/lib/libpython3.so file).

$ PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install <version>

Install dev-requirements

$ pip install -r dev-requirements.txt

Building

$ maturin develop

Testing

$ LD_LIBRARY_PATH=${PYENV_ROOT}/versions/3.10.8/lib cargo test

Benchmarks

$ pip install -r bench-requirements.txt
$ LD_LIBRARY_PATH=${PYENV_ROOT}/versions/3.10.8/lib cargo +nightly bench

Building and distribution

This library uses maturin to build and distribute python wheels.

$ docker run --rm -v $(pwd):/io ghcr.io/pyo3/maturin build --release --manylinux 2010 --strip
$ maturin upload target/wheels/pyxirr-${version}*

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

pyxirr-0.10.4.tar.gz (40.1 kB view details)

Uploaded Source

Built Distributions

pyxirr-0.10.4-cp312-none-win_amd64.whl (449.9 kB view details)

Uploaded CPython 3.12 Windows x86-64

pyxirr-0.10.4-cp312-cp312-musllinux_1_2_x86_64.whl (712.6 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

pyxirr-0.10.4-cp312-cp312-musllinux_1_2_i686.whl (715.1 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

pyxirr-0.10.4-cp312-cp312-musllinux_1_2_armv7l.whl (760.5 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARMv7l

pyxirr-0.10.4-cp312-cp312-musllinux_1_2_aarch64.whl (627.7 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

pyxirr-0.10.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (542.2 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pyxirr-0.10.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (873.7 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

pyxirr-0.10.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (633.9 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

pyxirr-0.10.4-cp312-cp312-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (534.9 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64

pyxirr-0.10.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (499.0 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

pyxirr-0.10.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (509.5 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

pyxirr-0.10.4-cp312-cp312-macosx_11_0_arm64.whl (435.8 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pyxirr-0.10.4-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (908.2 kB view details)

Uploaded CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

pyxirr-0.10.4-cp311-none-win_amd64.whl (447.4 kB view details)

Uploaded CPython 3.11 Windows x86-64

pyxirr-0.10.4-cp311-cp311-musllinux_1_2_x86_64.whl (712.0 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

pyxirr-0.10.4-cp311-cp311-musllinux_1_2_i686.whl (713.6 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

pyxirr-0.10.4-cp311-cp311-musllinux_1_2_armv7l.whl (759.9 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARMv7l

pyxirr-0.10.4-cp311-cp311-musllinux_1_2_aarch64.whl (627.1 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

pyxirr-0.10.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (541.3 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyxirr-0.10.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (876.2 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

pyxirr-0.10.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (635.2 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

pyxirr-0.10.4-cp311-cp311-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (537.1 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64

pyxirr-0.10.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (498.5 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

pyxirr-0.10.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (509.0 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

pyxirr-0.10.4-cp311-cp311-macosx_11_0_arm64.whl (435.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pyxirr-0.10.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (911.7 kB view details)

Uploaded CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

pyxirr-0.10.4-cp310-none-win_amd64.whl (447.4 kB view details)

Uploaded CPython 3.10 Windows x86-64

pyxirr-0.10.4-cp310-cp310-musllinux_1_2_x86_64.whl (711.9 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

pyxirr-0.10.4-cp310-cp310-musllinux_1_2_i686.whl (713.6 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

pyxirr-0.10.4-cp310-cp310-musllinux_1_2_armv7l.whl (759.8 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARMv7l

pyxirr-0.10.4-cp310-cp310-musllinux_1_2_aarch64.whl (627.1 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

pyxirr-0.10.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (541.2 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyxirr-0.10.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (876.2 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

pyxirr-0.10.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (635.2 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

pyxirr-0.10.4-cp310-cp310-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (537.1 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64

pyxirr-0.10.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (498.4 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

pyxirr-0.10.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (508.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pyxirr-0.10.4-cp310-cp310-macosx_11_0_arm64.whl (434.1 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pyxirr-0.10.4-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (899.9 kB view details)

Uploaded CPython 3.10 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

pyxirr-0.10.4-cp39-none-win_amd64.whl (447.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

pyxirr-0.10.4-cp39-cp39-musllinux_1_2_x86_64.whl (712.4 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

pyxirr-0.10.4-cp39-cp39-musllinux_1_2_i686.whl (714.0 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

pyxirr-0.10.4-cp39-cp39-musllinux_1_2_armv7l.whl (760.3 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARMv7l

pyxirr-0.10.4-cp39-cp39-musllinux_1_2_aarch64.whl (627.4 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

pyxirr-0.10.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (541.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pyxirr-0.10.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (876.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

pyxirr-0.10.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (635.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

pyxirr-0.10.4-cp39-cp39-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (537.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64

pyxirr-0.10.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (499.0 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

pyxirr-0.10.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (509.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pyxirr-0.10.4-cp39-cp39-macosx_11_0_arm64.whl (434.8 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pyxirr-0.10.4-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (912.2 kB view details)

Uploaded CPython 3.9 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

pyxirr-0.10.4-cp38-none-win_amd64.whl (447.9 kB view details)

Uploaded CPython 3.8 Windows x86-64

pyxirr-0.10.4-cp38-cp38-musllinux_1_2_x86_64.whl (712.6 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

pyxirr-0.10.4-cp38-cp38-musllinux_1_2_i686.whl (714.0 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

pyxirr-0.10.4-cp38-cp38-musllinux_1_2_armv7l.whl (760.7 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARMv7l

pyxirr-0.10.4-cp38-cp38-musllinux_1_2_aarch64.whl (626.0 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

pyxirr-0.10.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (541.8 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pyxirr-0.10.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (876.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

pyxirr-0.10.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (635.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

pyxirr-0.10.4-cp38-cp38-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (537.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64

pyxirr-0.10.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (499.1 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

pyxirr-0.10.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (510.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pyxirr-0.10.4-cp38-cp38-macosx_11_0_arm64.whl (435.1 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pyxirr-0.10.4-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (912.4 kB view details)

Uploaded CPython 3.8 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

pyxirr-0.10.4-cp37-none-win_amd64.whl (447.9 kB view details)

Uploaded CPython 3.7 Windows x86-64

pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_x86_64.whl (712.6 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ x86-64

pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_i686.whl (714.1 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ i686

pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_armv7l.whl (760.7 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ ARMv7l

pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_aarch64.whl (625.9 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ ARM64

pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (541.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (877.0 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ s390x

pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (635.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64le

pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (537.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64

pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (499.1 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARMv7l

pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (510.0 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

pyxirr-0.10.4-cp37-cp37m-macosx_11_0_arm64.whl (437.4 kB view details)

Uploaded CPython 3.7m macOS 11.0+ ARM64

pyxirr-0.10.4-cp37-cp37m-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (912.4 kB view details)

Uploaded CPython 3.7m macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

File details

Details for the file pyxirr-0.10.4.tar.gz.

File metadata

  • Download URL: pyxirr-0.10.4.tar.gz
  • Upload date:
  • Size: 40.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.6.0

File hashes

Hashes for pyxirr-0.10.4.tar.gz
Algorithm Hash digest
SHA256 51a7bb075390d9534c1292c9aef0f8ad52f6851778d29758a8e5a08eeaf7fc6d
MD5 b22e620670ce835410bf2d07e779a4d6
BLAKE2b-256 506441c8347dd9c9dab3e4388d791e973e8c841deef6be588ee21bbbbb2024be

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 ab89dcd54a2e7bcd357d96a3cccdfa00bf626dfffb82dc2543472e22e35c3307
MD5 491d4e3a8d4b669ea366e3f05e5a052f
BLAKE2b-256 8d0f63498bc7fe57c21a8db04925200f229359b64b9f05c858db64d919b77ac3

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c2b9c2684a1b458545efb9e27229736e7e69a9d944e4518dfc032c8eff411f5a
MD5 3f36539e4980bbd9effd7d3f5fcdf15a
BLAKE2b-256 c9447bf7e2ae0a3cd59a5d02ffc6a59ee40fc466268242aa159cf50d62706846

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 faf949b15af3a9be8815055ee63335d523f1a9261ada81e94dc9901f8faf1a5b
MD5 d3a17e340b650d293db63d6b2d2d6ed6
BLAKE2b-256 17e28bc784a2be2dc0fa1c68322a30152c07cabc13ead26ceed4f1e78348c3a3

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 e672ad73851b407fe7a3641321b873977f52f0036dbf7ba6b4d29a571ee7aaa2
MD5 5fb1d829d6822a414169d11f3eb651be
BLAKE2b-256 33db97598e03f84d34bd1297d5123751a72767f5260dfa852a0412ffeead728b

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2672025bde8f81542bbc5e3fd064810d33767843a10ccb215d754b420e3bfa8d
MD5 e288aef3d75aa09df5d8d57a3e32f0fd
BLAKE2b-256 272ebc7c94da3a14a3563761c9f648d8770dc0426d2cbd014595d3927b2a0a9b

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50ccc0bf101fa6d32cdca8463749b28bbcf8daa1ac2d257babeb340b73536e8d
MD5 8c108d92f18ff3008d6fbd38d1a6a0b4
BLAKE2b-256 1c02dd88292f93cd4af3e599d61dda8905cb4a2a153b0f76046ec2edac4532e2

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 f5e5ccfa42ab834ade30b3d5e3b88109f23d8e023b8310d51826a351ecb7905b
MD5 af214c2a970a4fdc809b49875e10d7c4
BLAKE2b-256 bc8078565b745ed8964d4f925a12073009ca9f80140761c3fef4a745eaa71c49

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 60337f0030393c4b13b7884d52e76f00e861413b5c9391e4ac0b4616c4d265c9
MD5 72ea4217d271f8a14f3e9a377d56794b
BLAKE2b-256 09ee090aac2e27f528f324a10591f8b64e0b8bb2c1594836f95208147ef5b9be

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-manylinux_2_17_ppc64.manylinux2014_ppc64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 f982d438dbabbbfd05e06dfa8432eaac2ab63f026dd1fc941ed14c4435812762
MD5 e2cff53ac3919f16d04832322effb8b9
BLAKE2b-256 46d4393b9a5f200fbf6624524dec3247e4722415bdf79d0fd2d27192e4977b15

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 9e8fbb6cab14db4606e7bd13cd86e86de35b59cdd49fff6454fbf65c9863afd9
MD5 eb790c7525193ea7b8182f3fb0dd91d3
BLAKE2b-256 4d4b0c4880e2a020f5c4f21450b27106a12025c8addc76205868cdb9370986c4

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0d4d847e78e3db79b62b890a07b4bd1c78c1b98fc36f0fcda9a9a535e19b3f17
MD5 19fb729bd482f916205e8c043de98411
BLAKE2b-256 e4e2bf7077bfee2838d2c9fa9b0029bb951ae72773f119ba676229683bff9e0e

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c3fcc33ba03f6d9177d44532ffd5a6992235485eb472c8de2949facfb856115
MD5 9f6939346773936f514fb985aa0d23d2
BLAKE2b-256 bdbd4cb48c8cd19f839e8f3ed61783a895db4bf3fd08141ef2618487889ccaf0

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 6947c5e93b58ec3b67ee7cce9ed72ce347aae7ad14db745a949d6932e8902b06
MD5 ecdec7a5b01d49b18ae79c4439ec7f14
BLAKE2b-256 921d29093b2e0f12c2d24506185658605a8bf2ced68ca18d7053f7fec4718337

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 0fa6cdf6d620a91e133817b5c572794a944e5557e2699dfb9a093366d41b789f
MD5 2eba0a2db68fb85b56a2d6ca738aaec1
BLAKE2b-256 99d821f0742d2bbb2d8976fbfb173922bb56e369268f62263ecc79af8cf270d5

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 48f7a5a27f196bf8e1908f0018960c787e425543c86f447fb33057e1da38a152
MD5 e9de14d6aeed85213875ae2bb0cf41a4
BLAKE2b-256 08087cdb100b975437703f56a89abb517eed1f3e2169984b4d9f0b4cd51bf01f

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ec7b3bd14a0bd2815c7548a93b1107bac3eef0cadab6251446fb7893564e4b81
MD5 5a53c7ae0aabbb4044ed224aee99218c
BLAKE2b-256 f307348ba3f98b995c681072704b470e348811f2fb1872f7bc157e945a6499ca

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 87a4f9b28a54281dc6f3e57e5b084534813dc6daaf7876c6acd4766a68653782
MD5 868fa794590562b2a8f005a5ca2b1080
BLAKE2b-256 2f6cb38204dc651b6eb72769b7542bcc1647d3e8d40bfe8ebac035e846797c53

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8d1eb2ab5ab9bc1f43028207fccde50043adb022eb11c25607fc98bc846c0465
MD5 ed5e7a3a381006021c2a2f2d86295b74
BLAKE2b-256 290f0b1297a25995839a46327eaaac3f4706291bd60fc3718ae1b2c5ca14a29e

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b45fc37de3d6b58d3feace21b5aab97510f61c88288b4465b9dd38bdc24a545e
MD5 6dbc5afcb2d75b7f92c119e795e0c8aa
BLAKE2b-256 663177a84f802017405748f49bba0302d5c986aa7d5832538bf51c6717956254

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 df1f84fc2805a63cce158d84dcb8e172501ce082713b624906d40301a7373b54
MD5 94f23f52f3d2e2892b110e2905bc0c26
BLAKE2b-256 ead0c857775c7c691b0076c9e29bf0191cd22fe54f2b780f3dc800f8c0bdd60e

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 630a6ff2618f1a2244c7aab0559ecff95d1a6de03ac3584d20a09d92b19cf725
MD5 b996a44d9ccde82506f79f5b5ac5ed36
BLAKE2b-256 df7a1547b7d0cf9c875aedf8b6f93796a2bf9df14030ba0336216c6cb26fc2de

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-manylinux_2_17_ppc64.manylinux2014_ppc64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 9e64d43e3871fe218a2930296d4ed1dda5305bb441abe8f5a44610c12592ecaa
MD5 25e34fc470db3fcee6e050db62981428
BLAKE2b-256 ff479d965377a7baea8b5f92dc575b887f644acc01cae4eddd0c3ac6d920faa6

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d606371c6e4b40b182aeb8af6ea5145814149f3eb4e1ffcd671ac6c11f5c86ee
MD5 ee891f05496ff16b5222f459e6bf8102
BLAKE2b-256 8a89acc8b65a457cbac28afae5f1c31d89dc632026664a8f5d3c9d9613f62d89

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b251eeadbf9cc8a6a472e1fbffe7088324a3577b371f6f3ff75433972d0685df
MD5 b722cbe0638ceea539fd2cedb204ab52
BLAKE2b-256 ba78d725b0ee8be66043bc74caa49cbcc5c2479eceb821d76f0c1a0f90319500

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 42d9c49ed448bac443faba9294bbb0cbf9148299eb566904ddcb6a647bfdb613
MD5 7327c4ac7015cef76073529179888462
BLAKE2b-256 eb495f682c8a239f93a070d4576ace2efea04bca574e750703fcd30d0a72a233

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 04c284b8977f4521769fd1f9ca3a8d1816febb3800241c361d6cbb05d480e1ee
MD5 426531b2503b58364c0601b19716dfb2
BLAKE2b-256 2ca0907c27a0fa368f56ab21b0a6117a6df67f7b04c9ca512cea3c93a1dc561a

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 ed20b9243518c3233f91297692cf750b7e116fb811b944b0a241855dccfd1b7a
MD5 ef4bf176efe81ae2e2e2e3cb5533355e
BLAKE2b-256 40f674b4b0b9265480ecbf1124b69ac784fcb70a27a889bdd47c60f7d097bdc5

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4c4be23db9fa16d8e508bb44a5398308f4b2205d689380dae7837078cdb64e8c
MD5 48f7dccf334e55bb0d2c95b5cc5ad3dd
BLAKE2b-256 2da5489f250bef5bbdcee530026a894c44c761ca1f8fffb9a398669262c2744c

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8b01154a57eb6572d584f83defb34b84d1af795e7623109cf978fc48ee397966
MD5 6ad1b547a64dc4a83fcd56d671549d78
BLAKE2b-256 94e5fe45eda8b1e25c9de39363000f4516dca2cd075f8578824dd6448bc12d8e

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 3291c52ae60cae751646c8c84e18bc18252b5ad28d4f69cb0ac3afd886ef8d8d
MD5 643b74a0bea46468b7448762944a0fac
BLAKE2b-256 349a015f8567992d3b93321764b41fd4508ce7eda9cd252fde4ab3db07b4e54e

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 18858d0f84da74168a14ec821183b2117106cfd2b49b6c6a05c7f70c2f338d83
MD5 9295777eba857ab552211a2131998672
BLAKE2b-256 848a7a327f1abc1fb787f958bdbd62fe127b0ec29867f04ff6f49bb7ce84ff3e

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 872f80a6f1fa354d646bdf49b92e7f42d77b3d6803b7bf40a46a81b68dd55d2a
MD5 614924b7fae0d0df0cd57bb8b9faedba
BLAKE2b-256 7e96f632f39a23cd7736d9060dfcadb237e523654b080835cd125517e8f7bdf8

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b977b0e8145a29e6f9b07073ba679b373df2b780684b6bf5e81364c01d246cf8
MD5 6c9518c5be67e58a3e61b00ecb4d3cf7
BLAKE2b-256 3a1310dbae997802edc66b1dbcfb297b3537e37fb8f8eb77ab4db1b852017715

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d02da4caac28ba36adf155c84f13bd0d10fa70a03d37ac40208e23802a6ad619
MD5 5ffe88464ba81573817924edde30eddb
BLAKE2b-256 74da2f9b2437e57d0412ce61b769995b9b79010fa345a2f9c37b4505af24132c

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-manylinux_2_17_ppc64.manylinux2014_ppc64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 f8e6d1b5695528a69a09e78c8ded00f7a446846a09c6c374371d345c037a59cf
MD5 8265e4a90761f6ca72fcba7bfebab6b4
BLAKE2b-256 548dd6345dc9ae784d7586d4d2f05adb38b5410913b3ff2781f6778e383b067e

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3d09c424ee2ad8576f37c6babced7cb0b63c14974d5efb526e40ed0ff9ba48d9
MD5 ba55ed1889a7e3782d0b306c3121e4ae
BLAKE2b-256 6894526bca429ab33172877caacaae20726b8e1c8dfb08f4e28d6a36ce845973

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 690f5b97c9f7f81abf1a1ce3de5896e19c2fc94316742f560ea5bef5c592453d
MD5 6d1773ab018f91c08325a253b46e6913
BLAKE2b-256 9bda2021708ed812e9888e2376d04de939e3cb2f1224c550e9659715409a363d

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e1a5a70e392fda8e1a2c00451e1fdaa7d698a1d86eb5a145f37c00c6629cf34c
MD5 3431b7a9061375ea4984ae3506258fe2
BLAKE2b-256 9dfe06828f6eea57a25e5379ec78cbe73001914e22777e40197a4f2b792ffc9c

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 dd4d1b746a22b17205bdbd505ab174090ac20779c5a3f672cc40e6b933d73c49
MD5 233806808efa1a8a5d66e88f158e9d66
BLAKE2b-256 48846206ef0de1de0ebc677c55eedfe532541831da62c9433afa211e010e27e1

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 22c81c30a144b54e7997c783296371ab55efd596c3ceb6018e1ade06a6ea3ca4
MD5 ae7a97cefc7859b4388a78a71bd62be6
BLAKE2b-256 e3ba738918d66a73b91ad703e954532c1570d7a53c8b4438caec039737431bc7

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8d80c87a5e4f7d37edb207ec60bb482ff26ab9521e87df14d4f96aaa6e2d8583
MD5 381ed453a8a121668a9bed8e5704cc75
BLAKE2b-256 1ccc0c38022267550dc6d396a1576b8056717669d47556c77b76396987e556d4

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 61ddf1e680514e5fe8fe4d760f3e026fb6ce432f52a067b875087072f9acd85f
MD5 a6d9a6f4bc1b512779b70dbbba023def
BLAKE2b-256 68392d303ffee1f378a68e77d0b826b9650d80a4732ef1a00c19f0ab28307600

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 406b92ab2482a414f5e7feefce97a54832a5fba830b2b2995f62c91bcd9f71e2
MD5 1df40154fd247b11889c7f6526bee53c
BLAKE2b-256 1bb7e68842fa1dd9a9d79b369c7db94f05716914e5bd3113e43a63942f87a404

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9b640ea55f4d316f0ebd2985017cd9ec5de9e5a7096735ead046822223d93fb1
MD5 c4d279e08008e50ed9e00971cd2085e5
BLAKE2b-256 13d781a862ebbac65259a41a27dee340e3e8f9cd2fb190cabdefce3cbe5903b2

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e098f795be55573ecbd1cc757fe2efcb3802d8b5389e54d73239500cba27fef
MD5 2fcceb4dfadf13d5d314e391629b51f6
BLAKE2b-256 db61deb8528845542358e9e8010f7323b251aeb329a1d3ec4acd1c57ea984cac

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 bc740e2ef8a882891d68b72642760d7aa6057f76235e99b58c9a3bf9752450e2
MD5 f46e85f10f6c9ae0bd2ec14b8e9c31a7
BLAKE2b-256 6328c565026437fa7cb2985f6752e7bd255195e87a4af0396c121187f79be556

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 69635fbb44bfaa31e48ab14adb0a08a99e649ec37e38657771f8c3f2c1e5f5ff
MD5 4f5a8bf5c69d32581a068e3937c4e0e8
BLAKE2b-256 9a6135b2bb2e005a959d4c00514091bc9b44be46b1dcc5d2ad838d6b042c5650

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-manylinux_2_17_ppc64.manylinux2014_ppc64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 f396b18d75f7f57aeef28e5f144f5061d953975c770a1b3ff8858452f469001a
MD5 dc131323792754eabe44bea118fa0651
BLAKE2b-256 ce743b8a40b54c577c0f7883663ea374539c805e3464861c7840ab566fa2b6ff

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 1d0f9885a9678f4255783656ddf3272ddcfd8f8dce6b74c0cbc2ac3ec00381cb
MD5 89026b4d8acdd6bd00d7cc4ee3333dc8
BLAKE2b-256 3ac8b51af88557d20c26591ae566163321978d77581f06a09e23179775d3018a

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1e68e4a5663fe675b36b706e7ea842e60ee0322d8e4df1bff682270bf79e8247
MD5 20f1886d45ed4b61c35699fd3c6c0e45
BLAKE2b-256 48d792d4ab4399af1d366a8273a0dcc4efbca41f8f3063f819efb7d5d294defe

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc182d9ad7a80c7d1e3ace6214f4b00c6c164802be63c7853f8e819f30bc39c5
MD5 bef4868800ceb39a5277e1938f134404
BLAKE2b-256 c5f588d69c42de129060b00898abbe37b1f5a21252dee94b0590a1179ae089af

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 474d3469141c0cafe0282e1389513469c51ec2a26f6c7bd20a4d3d3d3a3f93a5
MD5 616bc54680a12e0a7b5767a8458c2ba5
BLAKE2b-256 6595007af12f76ca8a3875120b9af901407a51c3a4ab34c7f266dd34201729b4

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 8f3e4cd795bd42d3e3433b8621d750c6578322c61d4629a3bfed05cb24ccd64e
MD5 a22241b358569beadd637e9cfc484c94
BLAKE2b-256 91c1fbaa31765995b5dc341b3a7fc4eff91709c0a0b924ee1eb60460d891a7b1

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6353eabe94ade86b4d6a528c49aaacd21c8cb1a920addb6f9c780f75d587ff6b
MD5 1b3473782127333b447a8b1cb16a776a
BLAKE2b-256 9701e1a4fd8ad2b743ecab13490cc3b4953354eef58dff36648334641f091382

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f963fa7f0ec6b24ba3aa4201bed253b5f46c8f0bf7ec899b0687622c87911b76
MD5 3ae1261d26b45572e5283e28b544e790
BLAKE2b-256 f8b6c08143c3dfbd3947d29bde895fa819341ad3108b1f40fd8da234f3ffa07d

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 f1ef97e32ff70127ca141c3b07240cac5b7c215e8ded57f851475e5398e9afe5
MD5 967178fa6e65ab0934606cc9780d8ccf
BLAKE2b-256 b6b6e24255251ef1934de3a0645328874c93a20fe2c3bbf4385d338162c1f57c

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fdd6e9c6ec140e7c2b5724302fd6cd1b7bc9d8d2410876efbc73c7cfde789f8f
MD5 e76abc29da686791380f00a79db8f566
BLAKE2b-256 6a7fe5f6a0dfd2c69b23f0e0454ebc46e09eb826af536ffe135c97b20244f27c

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c97a91689209110d29c3e9c2444e6a9461f9ef1b513ad4c5e740065056e124c7
MD5 5b1fa8753f21ff7d14642d7ab71d33ba
BLAKE2b-256 87863fe93c897dbf1dd635e397cff0f79ca93296fcd87e6f79ec764841deddce

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c10ce9c6aaf1a36373a0547611d65055f518f509bb73385e8f2bd9655d2ad1aa
MD5 535080ae3d49bffe16fa4a96834eff15
BLAKE2b-256 020d778d8ccf42257127a4aae72ab0258b902726be22bd57fd52e10c9222135d

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0832b6ba4033623a3a48197babd622a6027333e370f53ec4d07ed6f5fc3257c1
MD5 2432b35abb95917be6170646c352a175
BLAKE2b-256 9b359e751fe71b3db09a8b1aaec44fd569f74f473b74cee40800dad7b7bb2979

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-manylinux_2_17_ppc64.manylinux2014_ppc64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 da833f24df9d49b99e4876f9b1bac2bf562850536b6dc15ef8ff2e5a8e6c3e19
MD5 9750ec49978e6bd3a89e6d47460112c1
BLAKE2b-256 839407aa5c9d92328be78ec670a2f3e8fe0197f39699e6d8c91bea0932f50489

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 8a97d01030ccaa6e11652dad355434c5b203ba0c39aaa1199693394ecc683095
MD5 b9e95d4fed543c497a2584702cf0149d
BLAKE2b-256 0193a1c6de4481b2034171c30be0d0871caa47871d491e02a13e094a613ba217

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b66537e514794eda0f06d58981aa229c2966d24276792a517389083359aa126e
MD5 53142b234925d8254905b9263cf657ae
BLAKE2b-256 6218a8f372a7715e9f496a7161434338bf8e27d7d50e9788271ee997618232da

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 29102c280e90593d54a6db01b6e93749e117feecebd2be9097c3b741755ed9f2
MD5 7cdfb5eb9dbc95254c754088937940d3
BLAKE2b-256 09331576862e2e5a89cd9bf4d48a63d9d55cc1976488a22f72cb2ec6b1a69e4a

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 073b6154606ec62dae5d649f72bd1b2e08e69fadd39b55eae86da6c59a1bdaa9
MD5 00d521aeb71f00bd1be77653e47752bc
BLAKE2b-256 7672d89e17c05f06922c741bfc69a06d2c2b3ac0164ed5d4c3b0510ca4ad0a2d

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-none-win_amd64.whl
Algorithm Hash digest
SHA256 8330a43e1dc0af9ce2e76ec5702f34f0262b96d094c2c2d365aeb5675a8468ef
MD5 b78f3eebcee798628bfe5942971b991e
BLAKE2b-256 1a0639b813e4b9fd57362de66085b5b1a5139b39d1bdf08c2eaad1e93bc40871

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0d8f9b678e5c3db4cb38f600f47d0af4c32cdaa9ff3d1fddabf1cf109c58025e
MD5 9ce24dc204620c62a3ab96db09cf6ff5
BLAKE2b-256 b7c49b94e6b330778cb9286eab1c60149e87d78bb8d7dc718f1a883bf6d5cd8e

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 10a895579f5e0f14107f954819785aa32999dbda7781c48424723e3b5c8f88c2
MD5 69a9df75c4d008b716d2b7e3704cc0f1
BLAKE2b-256 df5747a13878911666ec81c7c9c65d96e36f60cad12c9bcbfde518005996cbd7

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 44feb559cdb572ede243f6b7f797429d4faa6ad36f35e5029faa634b9e5a4759
MD5 4b065a9441b8c94f53b74f13bd973d84
BLAKE2b-256 541e76e733eed8f4c8a569f0a71ea176cfaf4dcd8cb7c04db5ef2180dd80c46b

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c80cfb453f6f7a6a5623d0e5c6d43ffedf5ac1e79733950d667fd33d531200a8
MD5 8e359464fd0939ecd00391d0c07b339a
BLAKE2b-256 72af6252f4805da1226b494002964161912f83253ee3988e5dd06782b875abc9

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e9b2ba1c9b7b3a927448db2d2acf8fdf779ee500532752cd7af8f0787d8e5980
MD5 fb6aaace5b94bd32b9c72ac0b7247851
BLAKE2b-256 b5312937bdc74e725a50cebaade0cae0cad811a8687fa50d41381c792793b4fa

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 794c933ffa05bdc5bb58ce2496adfe518839fc25b56ed803f2b3ae1e165a25f9
MD5 c54a0c8543c8e2adb9b492ef358f17b2
BLAKE2b-256 185c24ec1d19f4933f31cad7854c7eb93b6c7476b7b45aa8264e3a38d4635204

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c7aacfefd971eae88af8fa568555c89b823c13f57bbcfb801297c6aa8ec595e5
MD5 94dc4b42a0f90f3d4bad6c8a2ef8cb04
BLAKE2b-256 d9d54deb43ca1c2c54fd0055745dba3cdedbaea8f7c8ea4ebfb495698c7d69ee

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_ppc64.manylinux2014_ppc64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 5b817a40c586d58b1dd552252ad4aa98e13817e931da3f326e2544c226e309e0
MD5 064983fbc5b5a6df249377192edcb353
BLAKE2b-256 38771fc07538bd9ea28e5fa41fdee11170ff1f7294aad167ddc9bdd4becfc214

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0bb441a78cfbce30b65a1650a3099d21a1c4b2ca66affbbc1004eeed344e7d88
MD5 624f003df6c4db9e8f050d3b1e3be803
BLAKE2b-256 755abdcd9869258c9408df6a0403f30dd8defa6ddb99d8723a8977a6d6b1de8a

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5af1c59b5e088451315a70c8c72b630a1996552d875b11b1075d8f8282543eed
MD5 fa7f12c2771dc35eb9f4c12062f5fe10
BLAKE2b-256 5df02fd0d70bce3293eb020fd17b586c9fdabc3b74c9817369deb428211364fa

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dca355ccc1059ea7120ed3045d30500b667d91427af25eeaf7206afeec3571d4
MD5 05779c7d62e80dcb250b8b2314f754d4
BLAKE2b-256 094eb139135f74bb624e28692430e4de43919968dcff2bb1c19cd0342a949e64

See more details on using hashes here.

Provenance

File details

Details for the file pyxirr-0.10.4-cp37-cp37m-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for pyxirr-0.10.4-cp37-cp37m-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 c29d89776eda2696fec58625d1e76fd026056786b0ed7683e4742b690f71988d
MD5 fe2fa8365ac832d132163867d8fbdb4e
BLAKE2b-256 038514af768f944bd3b547f4c7d27005a517b5d6b23bbab168798431a9546da7

See more details on using hashes here.

Provenance

Supported by

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