Skip to main content

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.

The package and the ideas behind it are discussed in a blog post here. tenforty also works well driven by a coding agent (Claude Code, Codex, and friends) — the validated inputs and informative error messages make it a good tool-call target.

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.

If you've landed here while looking for open-source US tax computation, it's worth knowing the landscape — a few excellent projects approach this problem from different angles, and one of them may fit your task better:

  • Tax-Calculator (Policy Simulation Library) is a federal income and payroll tax microsimulation model with a long pedigree in the policy-economics world. Its special power is counterfactual law: every rate, bracket, and phase-out is a reformable parameter, so it can answer "what would this filer (or the whole country) pay under a proposed reform?" It models per-spouse income attribution and has been validated against NBER's TAXSIM for years. If your question is about policy analysis, revenue estimation, or distributional effects, start there. tenforty uses Tax-Calculator as an independent validation oracle for its own federal results — see docs/taxcalc-differential-audit.md.
  • TAXSIM (NBER) is the long-standing academic reference model for US federal and state income taxes, callable remotely.
  • PolicyEngine-US models federal and many state taxes alongside benefit programs, with a policy-reform focus similar to Tax-Calculator's.

What tenforty brings to this neighborhood: state returns computed locally, form-level fidelity (actual form lines, via Open Tax Solver), exact marginal rates via automatic differentiation, an input solver, and a deliberately simple API. It's built for an individual interrogating their own return — sensitivity analysis, what-if sweeps, optimization. Performance depends on the backend, graph, and API path: a small Rust demo-graph benchmark is not a measurement of a complete return through Python or the browser. The shipped Python and browser graph paths use the interpreter, not the experimental JIT. If your question is "what would this return look like, federal and state, and how does it change as inputs move?" — that's the job this package is built for.

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

Python 3.10–3.14 is supported on Linux and macOS. Python 3.15 is experimental: CI builds and installs a wheel on both platforms, requires both the OTS and Rust graph backends, and runs the standard test suite. These checks cover the regular CPython build, not the free-threaded build or optional notebook and Tax-Calculator dependencies.

Use Python 3.10–3.14 for supported installations. Prebuilt Python 3.15 wheels are not published yet; testing 3.15 from source requires a C++ compiler and Rust, and dependencies may also need to compile from source. Full 3.15 support will be reconsidered after the final Python release and wheel validation.

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 Legacy choice: "Standard" is automatic greater-of; "Itemized" forces federal itemization (contract)
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
self_employment_income float 0.0 Schedule C profit used by Schedule SE and QBI
qbi_w2_wages float 0.0 W-2 wages paid by the QBI business or aggregation
qbi_ubia float 0.0 UBIA of qualified property for that business or aggregation
qbi_is_sstb bool False Whether that business or aggregation is an SSTB
schedule_1_income float 0.0
itemized_deductions float 0.0
state_adjustment float 0.0
incentive_stock_option_gains float 0.0

The three qbi_ inputs describe one trade or business, or businesses the taxpayer has validly aggregated for section 199A. They are not totals across unrelated businesses, because Form 8995-A applies its wage and UBIA limitation per business or valid aggregation. Their defaults model a non-SSTB business with no business W-2 wages or qualified property. The OTS backend uses OTS's Form 8995 for the independent QBI base and taxable-income ceiling, then applies the missing Form 8995-A wage, property, and SSTB limitation in tenforty's orchestration layer before rerunning Form 1040.

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_qbi_deduction Qualified business income deduction (Form 8995/8995-A)
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.

Marginal Rates for Every Input

The graph backend can differentiate a selected output with respect to every continuous public input at once:

from tenforty import marginal_rates

rates = marginal_rates(
    year=2024,
    state="CA",
    filing_status="Single",
    w2_income=100_000,
)

rates["w2_income"]

The returned dictionary uses the same natural input names as evaluate_return. It includes federal inputs and any continuous inputs mapped by the selected state; discrete choices such as filing status and number of dependents are omitted. The existing marginal_rate(..., wrt="w2_income") function remains available for one input at a time.

Tax calculations are piecewise functions. At a bracket, phase-out, or other active boundary, both marginal-rate APIs report the composed function's right-hand derivative: the change implied by adding a small amount to that input. Smooth entries in marginal_rates share one reverse-mode traversal per resolved output.

The reproducible autodiff planning examples show a full next-dollar table, the interaction between wages and long-term-gain stacking, and a bounded ordinary-income sizing exercise. They also measure where forward simulation remains competitive and explain why derivatives alone cannot find true tax cliffs.

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.

Metadata

Release files for tenforty 2025.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tenforty 2025.12
File Size Uploaded Provenance
tenforty-2025.12.tar.gz 1.9 MB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for tenforty 2025.12
File
tenforty-2025.12-cp315-cp315-musllinux_1_2_x86_64.whl CPython 3.15 CPython 3.15 Linux musl 1.2+ x86-64 Details
tenforty-2025.12-cp315-cp315-manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64 Details
tenforty-2025.12-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details
tenforty-2025.12-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
tenforty-2025.12-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
tenforty-2025.12-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
tenforty-2025.12-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
tenforty-2025.12-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
tenforty-2025.12-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
tenforty-2025.12-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
tenforty-2025.12-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
tenforty-2025.12-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
tenforty-2025.12-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
tenforty-2025.12-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
tenforty-2025.12-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
tenforty-2025.12-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
tenforty-2025.12-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
tenforty-2025.12-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 79.4 MB

Release files / tenforty-2025.12.tar.gz

Download URL tenforty-2025.12.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
a6e096f1fcf51ac12941817a6a61db8faf04948abd395a8932ee245c7453c88d
BLAKE2b-256 checksum
How to use checksums
cfe36ca7b94bc533cb27ac22295a8a11c81792358318db7bed8846d4aae62fe4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp315-cp315-musllinux_1_2_x86_64.whl

Download URL tenforty-2025.12-cp315-cp315-musllinux_1_2_x86_64.whl
Size 4.7 MB
Tags CPython 3.15 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
f1cee07400cd726881618d56fcc01d7b63bcd18c5444067e3ba5c122b30b4d96
BLAKE2b-256 checksum
How to use checksums
21e831609ad911946c34d01bdddfdebc202b4de7f5d3f1bba9255b1aeb921954
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp315-cp315-manylinux_2_28_x86_64.whl

Download URL tenforty-2025.12-cp315-cp315-manylinux_2_28_x86_64.whl
Size 4.7 MB
Tags CPython 3.15 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
099e15c38e9c0a38cedec461425f673f76209a1021d4ad6f1d87c386de865613
BLAKE2b-256 checksum
How to use checksums
485ded226576d86ff2586a23cd292c8bf5e4c57ade6933c75fa9bddbf9076661
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp315-cp315-macosx_11_0_arm64.whl

Download URL tenforty-2025.12-cp315-cp315-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a0f556323a2f9b98aaedd7db81c00bfce6f18fae7b686f52f85633b2e546600e
BLAKE2b-256 checksum
How to use checksums
0010464c922260a3e2d058a19b38521e0e38b0b480b84ee0ad978ad55f4da113
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL tenforty-2025.12-cp314-cp314-musllinux_1_2_x86_64.whl
Size 4.7 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
298673ca545d3eb1484d316e2b0130a08e87fedede89c00af7a6d361c9287fd0
BLAKE2b-256 checksum
How to use checksums
ea9cdd437feec8668f9179a0756cac71aa05320e1b027368f1cddb3629896f08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL tenforty-2025.12-cp314-cp314-manylinux_2_28_x86_64.whl
Size 4.6 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0685bcf6cf0f077fda9baf77b2fccc3f1c06e2680de443754a7a7183f1924d5f
BLAKE2b-256 checksum
How to use checksums
a063a08933342f1f225123c0e0f40cd867e9196f3fa513e2dc152d17226aad52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp314-cp314-macosx_11_0_arm64.whl

Download URL tenforty-2025.12-cp314-cp314-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d5c2b574f0c38817e576ee53083bdb15dbe7260da1831d025eccfdf23d4531c4
BLAKE2b-256 checksum
How to use checksums
a366f41ffbee00778251855ba3cafe2fc5f344e99dfaf16ad21591a028b8daec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL tenforty-2025.12-cp313-cp313-musllinux_1_2_x86_64.whl
Size 4.7 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
a02c0c944fae6160891a7b51e352c319fe5696a343e815757c2f05c81f608ca0
BLAKE2b-256 checksum
How to use checksums
351b11469f395a7e3fb1fcab1295aba92eb6053cf51845f5570a4ab7c1561417
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL tenforty-2025.12-cp313-cp313-manylinux_2_28_x86_64.whl
Size 4.6 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c633e19a26b3ced2821e84ff695d0e078e8cfca86a8d28e6b1dc5d468c3fce72
BLAKE2b-256 checksum
How to use checksums
d65ba67f5d6080c995fa2821073b9b165fe14df700e56f116fb3dec03673d592
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp313-cp313-macosx_11_0_arm64.whl

Download URL tenforty-2025.12-cp313-cp313-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9ad4d16ddcfc22ea908d2dbf4d9faf1f664ea2adce363acdb86adf36dde6002a
BLAKE2b-256 checksum
How to use checksums
b66758255c7b20f14544a1c8f27ea3b67fbfbcb687e876e25670a61925007f1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL tenforty-2025.12-cp312-cp312-musllinux_1_2_x86_64.whl
Size 4.7 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
aba6048cb322b6c154a22dcf694a03401296fab020a58b63a872ee8cf4549ab7
BLAKE2b-256 checksum
How to use checksums
fb22c5698cfb42611b3bbab9b2b881bb9c42ad79c71d324cf869816dfdab0d4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL tenforty-2025.12-cp312-cp312-manylinux_2_28_x86_64.whl
Size 4.6 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ed646fda01aee71c370d205d2e0fefc49068349be9385d4fc01101adcd9e1239
BLAKE2b-256 checksum
How to use checksums
a976eaaa2a1b00a22b6a9a58ed8cf49f55b87431cc01480ab6f6a6fd8c9edce1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp312-cp312-macosx_11_0_arm64.whl

Download URL tenforty-2025.12-cp312-cp312-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3f76c8e8099606b3b7ccd5b0b3af5d3ca2c9231e424f74c85d6df211eeec1ba2
BLAKE2b-256 checksum
How to use checksums
5764bba24b2f41e5ce45205fbba259665c4a1718d0b959abdfdc15732ac3f5c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL tenforty-2025.12-cp311-cp311-musllinux_1_2_x86_64.whl
Size 4.7 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
491d569d256ee46cdc922815ab7f5ea268c5b1deb4e8f7a5db73002c557da0f0
BLAKE2b-256 checksum
How to use checksums
18d63f6308c7a15e37abbf0fb956512b9c64ef7c72be3dd81b3dcef6cf87beb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL tenforty-2025.12-cp311-cp311-manylinux_2_28_x86_64.whl
Size 4.6 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7a8b98af9f52f49cd79d0f5584fc584215817a9b61d9807e949c04593bdf18f8
BLAKE2b-256 checksum
How to use checksums
0c2a5bc0bf24bf28f869996aa09a3820382e7eca53cbe009b420fe55aeb54fa9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp311-cp311-macosx_11_0_arm64.whl

Download URL tenforty-2025.12-cp311-cp311-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
dffb714df5b48131a0a472d59274b9aa7597cf9e2399940b262e3658aa9fb293
BLAKE2b-256 checksum
How to use checksums
6120461ed9b98ca647d91fd7dfc5243b76d5d3bd1cb8dd11fe37d39ff8e5ac07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL tenforty-2025.12-cp310-cp310-musllinux_1_2_x86_64.whl
Size 4.7 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
2baa95034ab1059e80c51f2b9f545e7bc132866f120d75572e09464b7fc1bee3
BLAKE2b-256 checksum
How to use checksums
1bc89386d6d6573f7f215664946bd6f4c08ef4fe7635f8a7751bb3b0af5d8011
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL tenforty-2025.12-cp310-cp310-manylinux_2_28_x86_64.whl
Size 4.6 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3a1cd84b95bf5a34c131330cbcd40b491ef07adfe3c35296f65982910d42fddc
BLAKE2b-256 checksum
How to use checksums
2c1238f578a84f9025cceebcb600fea45be0d4223d9592884a50a51b260d53ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / tenforty-2025.12-cp310-cp310-macosx_11_0_arm64.whl

Download URL tenforty-2025.12-cp310-cp310-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4091e5964baad147f58f28922fafcbfec70a8ccb7806cf7d15a9b0e5511366db
BLAKE2b-256 checksum
How to use checksums
4d4e7ab898a2a8af021e4aef9b0b380255c393cb10d6bd900270085e6d022df6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for tenforty 2025.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 19 files in this release have been uploaded with provenance metadata.

Select from 19 files

Attestation for tenforty-2025.12.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page