Library to compute US federal taxes, and state taxes for some states.
Project description
tenforty
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:
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
polarssupport. - 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_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"
)
)
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",
)
)
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",
)
)
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",
)
)
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:
- Development Guide - Package internals, Cython extensions, and environment setup
- Error Handling - Configuring
on_errorpolicies and exception types - IRS Validation - Testing methodology against official IRS and state sources
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tenforty-2025.5.tar.gz.
File metadata
- Download URL: tenforty-2025.5.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ada532cbe21cadc5e740379c1961bcc9cf2cdb3cba962725e03e2e9e13e52f0
|
|
| MD5 |
b4e828d20d0a64045251ceb2eeaefbd2
|
|
| BLAKE2b-256 |
7e2b4997e91ae92419adba92d8319dab94f8220b60350bbb5fe166636c211c59
|
Provenance
The following attestation bundles were made for tenforty-2025.5.tar.gz:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5.tar.gz -
Subject digest:
4ada532cbe21cadc5e740379c1961bcc9cf2cdb3cba962725e03e2e9e13e52f0 - Sigstore transparency entry: 953324317
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: tenforty-2025.5-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec45977760b3f9640f453e3c47fc877593347ebe8bee6810ca3493a11b9e1ca1
|
|
| MD5 |
04751290831866dccfbc37b444675f2b
|
|
| BLAKE2b-256 |
90934f4a3bc61712cc1a3b4de4b89a70893257935d501650cf725187e7043f5f
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp314-cp314-musllinux_1_2_x86_64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp314-cp314-musllinux_1_2_x86_64.whl -
Subject digest:
ec45977760b3f9640f453e3c47fc877593347ebe8bee6810ca3493a11b9e1ca1 - Sigstore transparency entry: 953324336
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp314-cp314-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: tenforty-2025.5-cp314-cp314-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.14, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da3f28a0c0b57f2c87e77347ca4e8202d5df6a4b9ba3c53a33393b3a72a2bf9d
|
|
| MD5 |
1d3064fb30093b626d1ee029ef8ef029
|
|
| BLAKE2b-256 |
75c4a84dbfc84e12d62e44c28917ad507a7834ebd4517df8c0819906b85516d9
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp314-cp314-manylinux_2_28_x86_64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp314-cp314-manylinux_2_28_x86_64.whl -
Subject digest:
da3f28a0c0b57f2c87e77347ca4e8202d5df6a4b9ba3c53a33393b3a72a2bf9d - Sigstore transparency entry: 953324334
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: tenforty-2025.5-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93d55c104f24ddfc5ddcf089485c082b8fd0150dbcbd7f4ac919cd43e2572b57
|
|
| MD5 |
26cb35111d9951a5f511bffdeed81e3b
|
|
| BLAKE2b-256 |
acaf7c30b1b3d42a5f23f66c990b34f9301879478dc78a54fc13646060809e56
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
93d55c104f24ddfc5ddcf089485c082b8fd0150dbcbd7f4ac919cd43e2572b57 - Sigstore transparency entry: 953324324
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: tenforty-2025.5-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58276ecd270a9332dc66cab1962886fdafe2ae10ec550e512f3f3b593ce237b0
|
|
| MD5 |
350eb73f271166a3a28b8059e1a016ff
|
|
| BLAKE2b-256 |
573bc260290d8417a5c00b815e66347c4f7f8becf6ff97e1623ee4c730dd5446
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp313-cp313-musllinux_1_2_x86_64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp313-cp313-musllinux_1_2_x86_64.whl -
Subject digest:
58276ecd270a9332dc66cab1962886fdafe2ae10ec550e512f3f3b593ce237b0 - Sigstore transparency entry: 953324322
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: tenforty-2025.5-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ed07ccdc350b60768b5a4356daa1385631fc455c6dbe9a3aed0054894cd49c2
|
|
| MD5 |
902b5bce18b22b1b426f4b9997e73ee5
|
|
| BLAKE2b-256 |
9a8fba1b3f461aa926e53cd020ece16fd4771da56dc6aca22458eac172396e20
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp313-cp313-manylinux_2_28_x86_64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp313-cp313-manylinux_2_28_x86_64.whl -
Subject digest:
9ed07ccdc350b60768b5a4356daa1385631fc455c6dbe9a3aed0054894cd49c2 - Sigstore transparency entry: 953324332
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: tenforty-2025.5-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03dabc8d42dce568488c568103e6a5144a682caa67304fe91cd9fe4c645fcda4
|
|
| MD5 |
9945517124cc0792ce3e389d7930399c
|
|
| BLAKE2b-256 |
ac6fdf3d0ff0e8ad0a6e718941cd2fd118b7bdabc2e5227928185099f078ecbc
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
03dabc8d42dce568488c568103e6a5144a682caa67304fe91cd9fe4c645fcda4 - Sigstore transparency entry: 953324320
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: tenforty-2025.5-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0622207d15d4b5642ee61ea58bd7b51b1df12b11d69c85aed7ad69fe1e3ef081
|
|
| MD5 |
88157ab7d0446f75955e4fd81dab4e60
|
|
| BLAKE2b-256 |
77bca52b5c5b962cada295382bd219e3f4c5d905f9333bef6c81a1c503dc0f61
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp312-cp312-musllinux_1_2_x86_64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp312-cp312-musllinux_1_2_x86_64.whl -
Subject digest:
0622207d15d4b5642ee61ea58bd7b51b1df12b11d69c85aed7ad69fe1e3ef081 - Sigstore transparency entry: 953324327
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: tenforty-2025.5-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2da7e1accf5d0abeaf26a9ab96c1e4b06f03d6f4afe20381c2f534ca3f6ce6ac
|
|
| MD5 |
8f8db80ae1105bccf2f144296a4bc916
|
|
| BLAKE2b-256 |
2fce202bd39384bf79990d7303ea4807cedd904e8c4524a334b44d266bd20211
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp312-cp312-manylinux_2_28_x86_64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp312-cp312-manylinux_2_28_x86_64.whl -
Subject digest:
2da7e1accf5d0abeaf26a9ab96c1e4b06f03d6f4afe20381c2f534ca3f6ce6ac - Sigstore transparency entry: 953324333
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: tenforty-2025.5-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36c3c21582b584ed4f93ac8d5d624865e7ee7441eca8251d2713ab02bef35770
|
|
| MD5 |
c40248591ccec105e251438ea0dacefb
|
|
| BLAKE2b-256 |
cf647a062b23740228e5e830cd440303e2aac7f44edf4578e9fe50a7ac27f670
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
36c3c21582b584ed4f93ac8d5d624865e7ee7441eca8251d2713ab02bef35770 - Sigstore transparency entry: 953324330
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: tenforty-2025.5-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93dcf13c4613fc4acf715f9cdf3d37bd2a5f1b4a8a4e6edc122174bd0eff0a87
|
|
| MD5 |
715f13ef03f2a38c5f1e2232f89dd5c9
|
|
| BLAKE2b-256 |
ae613e4d8b57f3397715c90e155fe3d229eb7690b51e20230404911e4733e4fb
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp311-cp311-musllinux_1_2_x86_64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp311-cp311-musllinux_1_2_x86_64.whl -
Subject digest:
93dcf13c4613fc4acf715f9cdf3d37bd2a5f1b4a8a4e6edc122174bd0eff0a87 - Sigstore transparency entry: 953324325
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: tenforty-2025.5-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88b112bbd53599ad79ca7d2cb998f767c860f72706b21d4a0c4becd870794a19
|
|
| MD5 |
faad33993cd9c50c08b2300e4bf7dd04
|
|
| BLAKE2b-256 |
b117f92913f470bd56c6240aee6aa54ad12d89061f9662533769d8064fcb9b37
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp311-cp311-manylinux_2_28_x86_64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp311-cp311-manylinux_2_28_x86_64.whl -
Subject digest:
88b112bbd53599ad79ca7d2cb998f767c860f72706b21d4a0c4becd870794a19 - Sigstore transparency entry: 953324318
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: tenforty-2025.5-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba72f5ddb2d56022ecddf9909d5c274aa8459bbe4ae30bd34a8d81b145fdf7d0
|
|
| MD5 |
ac83f0984473fab888a2fb24c84573ac
|
|
| BLAKE2b-256 |
c1bdc0680fc4334f2bf653df1e1e73acb9a8a97f5e264727eb8f957410c5b744
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
ba72f5ddb2d56022ecddf9909d5c274aa8459bbe4ae30bd34a8d81b145fdf7d0 - Sigstore transparency entry: 953324328
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: tenforty-2025.5-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91e5d7bdb7e5f9c4c4b10a2895f3f1c048bf10c892adba106547fb1dcf69f5e0
|
|
| MD5 |
784546c77df7843a0ba8ead61afc15cb
|
|
| BLAKE2b-256 |
2fad4919e7a43a45aeb34920a8c316136b4fa48fa813fcb2dd8212c670a4d12c
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp310-cp310-musllinux_1_2_x86_64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp310-cp310-musllinux_1_2_x86_64.whl -
Subject digest:
91e5d7bdb7e5f9c4c4b10a2895f3f1c048bf10c892adba106547fb1dcf69f5e0 - Sigstore transparency entry: 953324329
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp310-cp310-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: tenforty-2025.5-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0f5b1d36408c6da93939c26757056d30eec3c6a4af7234bed46e3785878e5f6
|
|
| MD5 |
2a48db068137a95234ea4bd3b2c8d799
|
|
| BLAKE2b-256 |
95735590049109441d85a3b50e2f6f7f178da27d6f35ad3daaf00ad57e987655
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp310-cp310-manylinux_2_28_x86_64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp310-cp310-manylinux_2_28_x86_64.whl -
Subject digest:
e0f5b1d36408c6da93939c26757056d30eec3c6a4af7234bed46e3785878e5f6 - Sigstore transparency entry: 953324335
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenforty-2025.5-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: tenforty-2025.5-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62453161b65e2bf03bb21142cc504c0cdb32e107e324e47b0c8e16fdad2ba55c
|
|
| MD5 |
bef6a87e98eec78af32c1eb7ae6a2ba3
|
|
| BLAKE2b-256 |
ce790ef0168beb0fd69a01b6cd38538e10d32bfdfd15e3e51a8f01017767a341
|
Provenance
The following attestation bundles were made for tenforty-2025.5-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
deploy.yml on mmacpherson/tenforty
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenforty-2025.5-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
62453161b65e2bf03bb21142cc504c0cdb32e107e324e47b0c8e16fdad2ba55c - Sigstore transparency entry: 953324323
- Sigstore integration time:
-
Permalink:
mmacpherson/tenforty@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Branch / Tag:
refs/tags/v2025.5 - Owner: https://github.com/mmacpherson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@9b5dd5c559c23f67b226de9c52f9186ef6210967 -
Trigger Event:
push
-
Statement type: