Skip to main content

Library to compute US federal taxes, and state taxes for some states.

Project description

tenforty

GitHub Actions pre-commit.ci status

PyPI Python Version Downloads

License Operating System Built with uv Ruff

Overview

tenforty is an open-source Python package designed to help demystify US federal and state tax computations. This project offers an accessible way to explore tax scenarios, compare different tax situations, and understand the impact of various factors on tax liabilities. It's particularly useful for those who would like to understand or optimize their taxes by evaluating how tax form inputs affect their outputs.

The package is built on top of the Open Tax Solver project, wrapping its functionality into a Python library.

A GPT interface to tenforty is available with a ChatGPT+ account here. This GPT, and the tenforty package itself, are discussed in a blog post here.

You can try tenforty out immediately in your browser via the included Colab notebook: Try In Colab

Features

  • Compute US federal taxes, as well as taxes for several US states.
  • Explore how taxes vary as a function of income, state, filing status, and year.
  • Easily integrate with data analysis and visualization tools in Python with polars support.
  • Evaluate "what if" tax scenarios efficiently and reproducibly.
  • Graph backend: Optional Rust-based computation engine with automatic differentiation for exact marginal rates and Newton's method inverse solving.

Graph Backend

tenforty includes an optional graph-based computation backend built in Rust, offering automatic differentiation (autodiff) and inverse solving capabilities.

To use the graph backend, pass backend="graph" to evaluate_return or evaluate_returns:

from tenforty import evaluate_return

evaluate_return(w2_income=100_000, backend="graph")

The graph backend currently supports tax years 2024-2025 and a subset of states (California, New York, and all no-income-tax states).

Marginal Tax Rate (Autodiff)

The marginal_rate function computes exact marginal tax rates using automatic differentiation -- no finite-difference approximation needed:

from tenforty import marginal_rate

# Federal marginal rate on wages
marginal_rate(w2_income=100_000)  # => 0.22

# Marginal rate on long-term capital gains
marginal_rate(w2_income=100_000, long_term_capital_gains=50_000, wrt="long_term_capital_gains")

# Combined federal + state marginal rate
marginal_rate(w2_income=100_000, state="CA")

Inverse Solver

The solve_for_income function uses Newton's method with autodiff gradients to find the input value that produces a target tax amount:

from tenforty import solve_for_income

# What wages produce $15,000 in federal tax?
solve_for_income(target_tax=15_000)  # => ~$82,000

Interactive Demo

An interactive WebAssembly demo of the graph backend is available at mmacpherson.github.io/tenforty, featuring real-time tax curve visualization, bracket breakdowns, gradient sensitivity analysis, and the inverse solver.

Disclaimer

tenforty is an open-source tool intended for informational and educational purposes only and does not provide tax advice.

Known limitations of this package are detailed in the Limitations section below.

Installation

Requires Python 3.10+.

pip install tenforty

Main Functions Documentation

The two functions evaluate_return and evaluate_returns are the main interface to tenforty. They take exactly the same arguments, except that any of the arguments to evaluate_returns may either be a single value, or a list of values. evaluate_return is for evaluating one single return, and evaluate_returns evaluates all combinations of inputs subtended by the provided values and collects the results into a dataframe.

The inputs to either function are validated, and if for example a filing status is misspelled, you'll get an informative error message along with a list of the valid options.

Here are all arguments available for those two functions:

Argument Type Default Notes
year int 2025 2018-2025 inclusive
state str | None None Two-letter state code, e.g. "CA", "NY". Several income-tax states supported; no-income-tax states (e.g. "TX", "WA") also accepted.
filing_status str Single "Single", "Married/Joint", "Head_of_House", "Married/Sep", "Widow(er)"
num_dependents int 0
standard_or_itemized str Standard "Standard" or "Itemized"
w2_income float 0.0
taxable_interest float 0.0
qualified_dividends float 0.0
ordinary_dividends float 0.0
short_term_capital_gains float 0.0
long_term_capital_gains float 0.0
schedule_1_income float 0.0
itemized_deductions float 0.0
state_adjustment float 0.0
incentive_stock_option_gains float 0.0

The functions output these fields:

Output Field Description
total_tax Combined federal and state tax liability
federal_adjusted_gross_income Federal Adjusted Gross Income (Form 1040 Line 11)
federal_effective_tax_rate Percentage of AGI paid in federal tax
federal_tax_bracket Marginal federal tax bracket (0-37%)
federal_taxable_income Income subject to federal tax after deductions
federal_amt Federal Alternative Minimum Tax
federal_total_tax Total federal tax liability
state_adjusted_gross_income State-level Adjusted Gross Income
state_taxable_income Income subject to state tax after deductions
state_total_tax Total state tax liability
state_tax_bracket Marginal state tax bracket
state_effective_tax_rate Percentage of state AGI paid in state tax

Examples

Here are some examples of what you can do with tenforty:

Basic Evaluation

The evaluate_return function computes the outputs for a single tax return given some inputs:

from tenforty import evaluate_return

evaluate_return(
    w2_income=100_000, state="CA", filing_status="Married/Joint", num_dependents=2
).model_dump()

This results in the following:

{'total_tax': 8484.0,
 'federal_adjusted_gross_income': 100000.0,
 'federal_effective_tax_rate': 11.4,
 'federal_tax_bracket': 12.0,
 'federal_taxable_income': 74100.0,
 'federal_amt': 0.0,
 'federal_total_tax': 8484.0,
 'state_adjusted_gross_income': 0.0,
 'state_taxable_income': 0.0,
 'state_total_tax': 0.0,
 'state_tax_bracket': 0.0,
 'state_effective_tax_rate': 0.0}

No year= argument was specified here, so the current tax year, 2025, was used. The output is a pydantic model, and we've called its .model_dump() method to show the result as a dictionary.

Creating Tax Tables: Federal/State Tax Brackets as a Function of W2 Income

The evaluate_returns method sweeps out a grid over any input arguments that are provided as lists, allowing you to evaluate a wide array of tax scenarios. Here we make a simple tax table by varying W2 income:

from tenforty import evaluate_returns

evaluate_returns(
    w2_income=list(range(50_000, 250_001, 50_000)),
    state="CA",
    filing_status="Married/Joint",
    num_dependents=2,
)[
    [
        "w2_income",
        "federal_effective_tax_rate",
        "federal_tax_bracket",
        "state_effective_tax_rate",
        "state_tax_bracket",
    ]
]

This results in a polars.DataFrame (use .to_pandas() if you need pandas compatibility):

w2_income federal_effective_tax_rate federal_tax_bracket state_effective_tax_rate state_tax_bracket
50000 10.3 12 1.5 2
100000 11.4 12 3 6
150000 14.9 22 4.6 9.3
200000 17 22 5.9 9.3
250000 18.5 24 6.6 9.3

Plot: Federal Tax as a Function of W2 Income

Since the output is a dataframe, one may readily use any of numerous visualization tools to make plots. Here we revisit the example above, evaluating a wider range of W2 incomes at finer resolution than before.

import seaborn.objects as so

df = evaluate_returns(w2_income=list(range(0, 250_001, 1_000)))

(
    so.Plot(df, x="w2_income", y="total_tax")
    .add(so.Line())
    .label(
        x="W2 Income", y="Federal Tax", title="Federal Tax as a Function of W2 Income"
    )
)

Image: Federal Tax as a Function of W2 Income

Plot: Federal Tax Over Time

The good people at Open Tax Solver have published editions each year for 21 years, so one can just as easily vary the year as any other parameter. At the moment tenforty supports back to the 2018 tax year. Here we show the federal tax on $100K of W2 income for the past five years.

import polars as pl

df = evaluate_returns(
    year=[2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025], w2_income=100_000
).cast({"year": pl.Utf8})

(
    so.Plot(df, x="year", y="total_tax")
    .add(so.Line())
    .add(so.Dot())
    .label(
        x="Year",
        y="Federal Tax",
        title="Federal Tax on $100K W2 Income Over Time",
    )
)

Image: Federal Tax Over Time

This one's a little melodramatic because we don't make the y-axis go to zero; it's only about a 3% drop over the years.

Plot: Impact of Long-Term Capital Gains

Because Open Tax Solver supports short- and long-term capitals gains calculations -- although, see the Limitations section below -- you can ask questions about the impact on your taxes of selling some appreciated stock this year, and show the breakdown between state and federal taxes:

import polars as pl

df = (
    evaluate_returns(
        w2_income=75_000,
        state="CA",
        long_term_capital_gains=list(range(0, 125_001, 5000)),
    )
    .select(["long_term_capital_gains", "state_total_tax", "federal_total_tax"])
    .unpivot(index="long_term_capital_gains", variable_name="Type", value_name="tax")
    .with_columns(
        pl.col("Type").replace(
            {"state_total_tax": "State", "federal_total_tax": "Federal"}
        )
    )
)

(
    so.Plot(df, x="long_term_capital_gains", y="tax", color="Type").add(
        so.Area(alpha=0.7), so.Stack()
    )
    .label(
        x="Long-Term Capital Gains",
        y="Total Tax",
        title="Impact of LTCG on Total Tax for California Resident",
    )
)

Image: Impact of Long-Term Capital Gains

Plot: Will I Incur Alternative Minimum Tax (AMT)?

Employees at tech companies are commonly issued incentive stock options, the exercise of which can put them in a situation where they need to pay actual money in taxes on paper gains, via the alternative minimum tax. With tenforty's help you can see it coming at least: ;)

import polars as pl

df = (
    tenforty.evaluate_returns(
        w2_income=100_000, incentive_stock_option_gains=list(range(0, 100_001, 2500))
    )
    .select(["incentive_stock_option_gains", "federal_total_tax", "federal_amt"])
    .unpivot(index="incentive_stock_option_gains", variable_name="Type", value_name="tax")
    .with_columns(
        pl.col("Type").replace(
            {"federal_amt": "AMT", "federal_total_tax": '"Regular" Tax'}
        )
    )
)

(
    so.Plot(df, x="incentive_stock_option_gains", y="tax", color="Type")
    .add(so.Area(alpha=0.7), so.Stack())
    .label(
        x="Incentive Stock Option Gains",
        y="Total Federal Tax",
        title="Effect of ISO Gains on Federal Alternative Minimum Tax\nGiven $100K W2 Income",
    )
)

Image: Am I in AMT?

Known Limitations

  • Currently does not support Windows. The Colab notebook linked above, or using WSL are workarounds. Attempts have been made to get Windows builds working, but runtime crashes persist due to compiler interoperability challenges; see Windows Build Research for details.
  • Medicare and Net Investment Income Tax are not automatically computed on capital gains, so if those apply to your situation the output tax will be underestimated.
  • State income tax is supported for a growing number of states, with more being added. No-income-tax states (e.g. Texas, Nevada) are also accepted. Only California has been tested against tax returns prepared independently by professional tax software; support for other states is provisional.

Development & Contributing

Contributions are welcome! See our Contributing Guidelines for the development process and coding standards.

Documentation for developers:

License

tenforty is released under the MIT License.

Acknowledgments

This project relies on the Open Tax Solver project for the underlying tax computation logic.

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

tenforty-2025.2.tar.gz (1.7 MB view details)

Uploaded Source

Built Distributions

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

tenforty-2025.2-cp314-cp314-musllinux_1_2_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

tenforty-2025.2-cp314-cp314-manylinux_2_28_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

tenforty-2025.2-cp314-cp314-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tenforty-2025.2-cp313-cp313-musllinux_1_2_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

tenforty-2025.2-cp313-cp313-manylinux_2_28_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

tenforty-2025.2-cp313-cp313-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tenforty-2025.2-cp312-cp312-musllinux_1_2_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

tenforty-2025.2-cp312-cp312-manylinux_2_28_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

tenforty-2025.2-cp312-cp312-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tenforty-2025.2-cp311-cp311-musllinux_1_2_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

tenforty-2025.2-cp311-cp311-manylinux_2_28_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

tenforty-2025.2-cp311-cp311-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tenforty-2025.2-cp310-cp310-musllinux_1_2_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

tenforty-2025.2-cp310-cp310-manylinux_2_28_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

tenforty-2025.2-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file tenforty-2025.2.tar.gz.

File metadata

  • Download URL: tenforty-2025.2.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tenforty-2025.2.tar.gz
Algorithm Hash digest
SHA256 acd9b1a72a7abdddececa936943fd98c77c4915af5c7aae939ebf06089b1823f
MD5 38cc2333759d5d6cae4b15f7443b4ed3
BLAKE2b-256 36778a581f1e1b90fde862aabe1b67d1c57c0bfad8c5864b7f915e08f61560dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2.tar.gz:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fe97d0b5b91dc37b9bb08bcf60a80c31364b7a8a24884cafc3161461168ea186
MD5 b0dbb212b92b50f209b1fd857a92255c
BLAKE2b-256 3e4a258c44c2ec698e348fd8363df6e63117d040d2024bb41ad742a5bc36bed4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2b43fcba7672cdb17ab75e8830157dccdeda8ca8c382c71f67e1b1a427bc97fe
MD5 62c07ef78acd2c287f7685935258b850
BLAKE2b-256 84fef87ff8b19c28a03d3f244de0ef876997c3a62dc45acedb697485e8c7725b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4134d71497060c34cc5c60fa4e9b59f7046cc70ca13a3bad83cfc9698fe3da99
MD5 d737dc838772b1f11dd4c946e19f0617
BLAKE2b-256 861770f6cbcf69d7d7786efa15418cf91d388d1113072ae2f6fbc3f86ea1997a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 97d7f068913e100856e134f3a7dbccc494f74e2302fa9952f3ca84c64b501d18
MD5 2502c55821d72599c310666f78be6622
BLAKE2b-256 5e0175169cb61da8c6a1036cc7d1ecfad45fbbf6d8873ad757c0454a9825b6e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 62a9534641914eec1df68c31902cfce26aac4722258787c11fa51d6a92938b65
MD5 b38bf115fae795dd518a4cc86c78987e
BLAKE2b-256 4da9a63e8d3fbfb0ee2b940aa4eadf6611d40d9b6636716ef8297453ed660f34

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 601e16b488d50527700e1a5c8ab2ec1482788cf261e572bd3b39c114f8f6972f
MD5 56ac78d7eb6be0ab42ea38d452094bef
BLAKE2b-256 7ba2db35377f374945841150ca577d613f3e6f438b9225f10b0d812f965c83de

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 982e3c25927658fb8ab14fd874684e64bd220f7cf274368d532dc68ecf9a1cf4
MD5 79bd5798d3eacb29ef9008104175a8bd
BLAKE2b-256 37ed5acf805a9e381445c270e0d97f0b48d56061b6df0293e873fc30939416e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2c974bcace40a0aef1ac4d3a5b7def61122318fb46fd7fbfdfe04b009dd3a2c5
MD5 ec07e0dbee0ad2dd873e8c95ab6a9f2e
BLAKE2b-256 9b55f157773b5647a519220d51380c01f50f866dd357e4d579b4760b491921eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 05a050b5f955a41111886131613061631c61cf89f0bdff66b8bfecab4d40571b
MD5 c4abbf35ccd5f7c6286f7260ea05d9ac
BLAKE2b-256 528a35f0d1ffaa0eede01005614c3119ee89c95ec87a062439220e8d1917507a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1473389aead93642c596f5e362d50adb22b8f5a2cf7e3a47c0e2f0b9642aa7fe
MD5 530fd62dca2ecdaea68e36a5014bc5fc
BLAKE2b-256 e90d3aed6a4e56b84564c5c16ca8370c9bd9557ee8a70b5eb80f518fad9fb90b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 699add3c3e4724015d5828ee02928b470fea77873499d3be2b5cd89aba2e4717
MD5 a8eb414918da51945f391fc04abe7a41
BLAKE2b-256 31dc9bc126553899db61b5df17d1ee94315379c3c34d1e8897ee1175a8a1fc70

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25acafde8bd3e37d3d72581eb550cb96fb3a46f88df66c697fb251aa9e112803
MD5 e8a9bc507099fc41fb080ad27413837c
BLAKE2b-256 474e021bfd06edef7ee01175405ef5607aca626a424373b8801e7cd26d60e4ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a22e4cc0181edfa7941cf3c19aed7d9afef16c4aa7f8c14e9ff29bcbfd6a12a2
MD5 c26bd09a2531495eb0d20ecd50e51c76
BLAKE2b-256 e936b74b918a18e2c3280e7b38d21ad787254a9d77680f7c7104348a367e90c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 12c85468ce4f4285f4280f26746a4f40db67e96057ce99dcbf80cdb2a09a4b79
MD5 041e62254fef7ada701e294579a1a791
BLAKE2b-256 ec13d063c4378a9c49927c6b928e88008d4263f33fb3d4da379beeefd28b5d16

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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

File details

Details for the file tenforty-2025.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tenforty-2025.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b14a6a21f022df7fbfe6e04496acb38fd3219a3a707ac474e82424c287081e7
MD5 d5a64872f3b4af81eaeeb902850a1cb5
BLAKE2b-256 6e875a970f2a50c3541af96929d58041f726c22a63f96e418633c2988e98b495

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: deploy.yml on mmacpherson/tenforty

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