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.

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. Income-tax states with OTS support: AZ, CA, MA, MI, NC, NJ, NY, OH, OR, PA, VA. No-income-tax states (AK, FL, NV, SD, TN, TX, WA, WY) also accepted. Other states unsupported for now.
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_income_tax Federal income tax + AMT (excludes SE tax, NIIT, Additional Medicare Tax)
federal_se_tax Federal self-employment tax (Schedule SE)
federal_niit Net Investment Income Tax (Form 8960)
federal_additional_medicare_tax Additional Medicare Tax (Form 8959)
federal_total_tax Total federal tax (income tax + SE + NIIT + Additional Medicare)
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_income_tax': 8484.0,
 'federal_se_tax': 0.0,
 'federal_niit': 0.0,
 'federal_additional_medicare_tax': 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; other states have formula-derived and property-based testing. See IRS Validation for details.

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.6.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.6-cp314-cp314-musllinux_1_2_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

tenforty-2025.6-cp314-cp314-manylinux_2_28_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

tenforty-2025.6-cp314-cp314-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tenforty-2025.6-cp313-cp313-musllinux_1_2_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

tenforty-2025.6-cp313-cp313-manylinux_2_28_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

tenforty-2025.6-cp313-cp313-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tenforty-2025.6-cp312-cp312-musllinux_1_2_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

tenforty-2025.6-cp312-cp312-manylinux_2_28_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

tenforty-2025.6-cp312-cp312-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tenforty-2025.6-cp311-cp311-musllinux_1_2_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

tenforty-2025.6-cp311-cp311-manylinux_2_28_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

tenforty-2025.6-cp311-cp311-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tenforty-2025.6-cp310-cp310-musllinux_1_2_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

tenforty-2025.6-cp310-cp310-manylinux_2_28_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

tenforty-2025.6-cp310-cp310-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: tenforty-2025.6.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.6.tar.gz
Algorithm Hash digest
SHA256 b4b9ce51eec88beaee06ead6d40979fe84eaf9ae3aeb4def2724e91f35b1e7b7
MD5 76dcdc400f0b59990882ac9ce51a06b9
BLAKE2b-256 322f0821778130ac49243831d722467f63370bf22a57bce6961964d2edb5239b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6.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.6-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ebf156cd64d12e225df683973dd1ae530dff5b1b6876b4cfaccfec0b5b2b1eab
MD5 0aea62e66103546e23a6eeb4f609b281
BLAKE2b-256 a1de6ebeb44a5f2ad8232365c3bb96fcbdee2bc0f9020b2d4ea8a08e078b1354

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 00f0a17776c5afaebcad50969273d6066d372cf4ffeedc9767dab2259f2df89c
MD5 4fca407b0da032eb4658d1ca540290d7
BLAKE2b-256 0daed02c213c5ed1429c8a5687aacb97f42ef65341f273eadb8f5bb512e62926

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b947be29e554a1ed9d5419dffe1fc3170f1376b6e8bd122c934c8f5b1e5d48aa
MD5 5d5c8e80ef9bc19767f54577147bb8b6
BLAKE2b-256 9664726dfeabfb86ac28e0014b7c43e4efb852fe10089f93a5839f0b5cc73e1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6f6383184b014c5edb95b5fd7a997c341dd67ad5bc652c756a1ca5b3e7618118
MD5 cd9c751041047a559c756d201aac6e2f
BLAKE2b-256 b6e0be9c4c4a9052a34bdab952c6e3b1dd68bbcb89bd59bd2c626138dace4de7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7c2d9135e2c19dd9ec033e5f4bca7a1b478cf89c1da13392c454f591dd2724e9
MD5 88422c87b667fc831c87cacc70566343
BLAKE2b-256 dd588107fcc806579f2955f45b190ef47ac1075a1570c6e13149732fbe6974c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 159cfa303ff65e23a8db96e3ffffd49de99eca31bd474f5f6704dc3c12e6de64
MD5 77a63d1694655e9e054813860b7662be
BLAKE2b-256 5d83e6d43c598e0b0ad1771f3173b9f8f87d326c7100f165894be79a8b7c35f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5ac52803e547ac286552afea8f3c36edf7379f6f97c4c2f5eecc7583ac9682da
MD5 ac7878c73c3bd9d63ad8d693906bc34f
BLAKE2b-256 fdc84944f1ae2de3ab78d4a799e756a74d82efd42b518bae010fb0f29f235b14

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f1ebf3f998fddffd2c3d1b91d36d7f689d7cc2c2548b00dd65ebafb81a23860e
MD5 246a5a1faec16cb25a8884fd7622353a
BLAKE2b-256 875d0f0035f693696faf73200d6dc80d27f3f3b917ddffcb999651258c135720

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 85d5916de61a16efed622a9341ac5ee23f4c4f1986c42328b439c4861e28bfcc
MD5 57245888a3f4720fb9c355ff918b96e6
BLAKE2b-256 fb859dc44034022a5cd59180acfc0e2a5fc9f11dc8708e96f25299ca20bc326c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 edb8d169438e447786a5bfca153288361cf0fa87b58fe2b0d2b69390ec311e22
MD5 051d8c03a9678c9e7731ae609504f40a
BLAKE2b-256 fc1afc2a34a70051eae60d85282eb76d65f09203387af07786bfff0b076bd5f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f868c10fe701a8cc900f76fbf4b7efc5b5e6f09dd2bf52680349e0fc5766b96f
MD5 90d9a1fac5ba6b226c8aa952f8c41231
BLAKE2b-256 77d49eaf1adbaf1430c6684e66c46a64a9cc5ae4a813525ab0dc3efe50182b2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a6d9b7c7f1afc34b0e1a560760bfda68fe8cbe7faa4e5d40361f8094af6f86b
MD5 c47d933e84b9c8431f3b664a64b25aab
BLAKE2b-256 2a4643090546c50a62e86bbcd523e96f1200f6d4bf95be2506cbf466b9a739ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3b7cde1a09fee884f2d1022b89f8f0d022b04932c97b299912aae0854d91c1bc
MD5 1b0162becbc5e5e45ba1c22634b3a1ce
BLAKE2b-256 daa68ace23fd6838020f12af6b8fbebe56416c13267ebedb6c309d9a69dcf09d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b788cef270c31101bb0fa0b90a1daecfd124c125f5d7325b27e84243f694ff5a
MD5 eb62e867d7ccbc513113f16d14c50ead
BLAKE2b-256 fd92abe2f7670976c45cd154da3089aeefed720386c58c040039d409e84f7760

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tenforty-2025.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94b0acf514774ba6871b96f89ad03e7b961c222956eedb1df8669aad0af8c771
MD5 6b450872ba0ca917717cbf387a44d7f6
BLAKE2b-256 9448380f034ef06bda7701f7bb85f2d30c3a9976c841cc937aa0848e6d2a243a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenforty-2025.6-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