.. image:: https://cdn.rawgit.com/pymc-devs/pytensor/main/doc/images/PyTensor_RGB.svg
:height: 100px
:alt: PyTensor logo
:align: center
|Tests Status| |Coverage|
|Project Name| is a Python library that allows one to define, optimize, and
efficiently evaluate mathematical expressions involving multi-dimensional arrays.
It provides the computational backend for `PyMC <https://github.com/pymc-devs/pymc>`__.
Features
========
- A hackable, pure-Python codebase
- Extensible graph framework suitable for rapid development of custom operators and symbolic optimizations
- Implements an extensible graph transpilation framework that currently provides
compilation via C, `JAX <https://github.com/google/jax>`__, and `Numba <https://github.com/numba/numba>`__
- Contrary to PyTorch and TensorFlow, PyTensor maintains a static graph which can be modified in-place to
allow for advanced optimizations
Getting started
===============
.. code-block:: python
import pytensor
from pytensor import tensor as pt
# Declare two symbolic floating-point scalars
a = pt.dscalar("a")
b = pt.dscalar("b")
# Create a simple example expression
c = a + b
# Convert the expression into a callable object that takes `(a, b)`
# values as input and computes the value of `c`.
f_c = pytensor.function([a, b], c)
assert f_c(1.5, 2.5) == 4.0
# Compute the gradient of the example expression with respect to `a`
dc = pytensor.grad(c, a)
f_dc = pytensor.function([a, b], dc)
assert f_dc(1.5, 2.5) == 1.0
# Compiling functions with `pytensor.function` also optimizes
# expression graphs by removing unnecessary operations and
# replacing computations with more efficient ones.
v = pt.vector("v")
M = pt.matrix("M")
d = a/a + (M + a).dot(v)
pytensor.dprint(d)
# Add [id A]
# ├─ ExpandDims{axis=0} [id B]
# │ └─ True_div [id C]
# │ ├─ a [id D]
# │ └─ a [id D]
# └─ dot [id E]
# ├─ Add [id F]
# │ ├─ M [id G]
# │ └─ ExpandDims{axes=[0, 1]} [id H]
# │ └─ a [id D]
# └─ v [id I]
f_d = pytensor.function([a, v, M], d)
# `a/a` -> `1` and the dot product is replaced with a BLAS function
# (i.e. CGemv)
pytensor.dprint(f_d)
# Add [id A] 5
# ├─ [1.] [id B]
# └─ CGemv{inplace} [id C] 4
# ├─ AllocEmpty{dtype='float64'} [id D] 3
# │ └─ Shape_i{0} [id E] 2
# │ └─ M [id F]
# ├─ 1.0 [id G]
# ├─ Add [id H] 1
# │ ├─ M [id F]
# │ └─ ExpandDims{axes=[0, 1]} [id I] 0
# │ └─ a [id J]
# ├─ v [id K]
# └─ 0.0 [id L]
See `the PyTensor documentation <https://pytensor.readthedocs.io/en/latest/>`__ for in-depth tutorials.
Installation
============
The latest release of |Project Name| can be installed from PyPI using ``pip``:
::
pip install pytensor
Or via conda-forge:
::
conda install -c conda-forge pytensor
The current development branch of |Project Name| can be installed from GitHub, also using ``pip``:
::
pip install git+https://github.com/pymc-devs/pytensor
Background
==========
PyTensor is a fork of `Aesara <https://github.com/aesara-devs/aesara>`__, which is a fork of `Theano <https://github.com/Theano/Theano>`__.
Contributing
============
We welcome bug reports and fixes and improvements to the documentation.
For more information on contributing, please see the
`contributing guide <https://pytensor.readthedocs.io/en/latest/dev_start_guide.html>`__.
A good place to start contributing is by looking through the issues
`here <https://github.com/pymc-devs/pytensor/issues>`__.
.. |Project Name| replace:: PyTensor
.. |Tests Status| image:: https://github.com/pymc-devs/pytensor/workflows/Tests/badge.svg
:target: https://github.com/pymc-devs/pytensor/actions?query=workflow%3ATests+branch%3Amain
.. |Coverage| image:: https://codecov.io/gh/pymc-devs/pytensor/branch/main/graph/badge.svg?token=WVwr8nZYmc
:target: https://codecov.io/gh/pymc-devs/pytensor
Raw data
{
"_id": null,
"home_page": null,
"name": "pytensor",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.10",
"maintainer_email": null,
"keywords": "pytensor, math, numerical, symbolic, blas, numpy, autodiff, differentiation",
"author": null,
"author_email": "pymc-devs <pymc.devs@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/f9/1b/77783110a06ce0afacab063c64f644ea0a450daffa76dcf1bbb09ae2d819/pytensor-2.31.7.tar.gz",
"platform": null,
"description": ".. image:: https://cdn.rawgit.com/pymc-devs/pytensor/main/doc/images/PyTensor_RGB.svg\n :height: 100px\n :alt: PyTensor logo\n :align: center\n\n|Tests Status| |Coverage|\n\n|Project Name| is a Python library that allows one to define, optimize, and\nefficiently evaluate mathematical expressions involving multi-dimensional arrays.\nIt provides the computational backend for `PyMC <https://github.com/pymc-devs/pymc>`__.\n\nFeatures\n========\n\n- A hackable, pure-Python codebase\n- Extensible graph framework suitable for rapid development of custom operators and symbolic optimizations\n- Implements an extensible graph transpilation framework that currently provides\n compilation via C, `JAX <https://github.com/google/jax>`__, and `Numba <https://github.com/numba/numba>`__\n- Contrary to PyTorch and TensorFlow, PyTensor maintains a static graph which can be modified in-place to\n allow for advanced optimizations\n\nGetting started\n===============\n\n.. code-block:: python\n\n import pytensor\n from pytensor import tensor as pt\n\n # Declare two symbolic floating-point scalars\n a = pt.dscalar(\"a\")\n b = pt.dscalar(\"b\")\n\n # Create a simple example expression\n c = a + b\n\n # Convert the expression into a callable object that takes `(a, b)`\n # values as input and computes the value of `c`.\n f_c = pytensor.function([a, b], c)\n\n assert f_c(1.5, 2.5) == 4.0\n\n # Compute the gradient of the example expression with respect to `a`\n dc = pytensor.grad(c, a)\n\n f_dc = pytensor.function([a, b], dc)\n\n assert f_dc(1.5, 2.5) == 1.0\n\n # Compiling functions with `pytensor.function` also optimizes\n # expression graphs by removing unnecessary operations and\n # replacing computations with more efficient ones.\n\n v = pt.vector(\"v\")\n M = pt.matrix(\"M\")\n\n d = a/a + (M + a).dot(v)\n\n pytensor.dprint(d)\n # Add [id A]\n # \u251c\u2500 ExpandDims{axis=0} [id B]\n # \u2502 \u2514\u2500 True_div [id C]\n # \u2502 \u251c\u2500 a [id D]\n # \u2502 \u2514\u2500 a [id D]\n # \u2514\u2500 dot [id E]\n # \u251c\u2500 Add [id F]\n # \u2502 \u251c\u2500 M [id G]\n # \u2502 \u2514\u2500 ExpandDims{axes=[0, 1]} [id H]\n # \u2502 \u2514\u2500 a [id D]\n # \u2514\u2500 v [id I]\n\n f_d = pytensor.function([a, v, M], d)\n\n # `a/a` -> `1` and the dot product is replaced with a BLAS function\n # (i.e. CGemv)\n pytensor.dprint(f_d)\n # Add [id A] 5\n # \u251c\u2500 [1.] [id B]\n # \u2514\u2500 CGemv{inplace} [id C] 4\n # \u251c\u2500 AllocEmpty{dtype='float64'} [id D] 3\n # \u2502 \u2514\u2500 Shape_i{0} [id E] 2\n # \u2502 \u2514\u2500 M [id F]\n # \u251c\u2500 1.0 [id G]\n # \u251c\u2500 Add [id H] 1\n # \u2502 \u251c\u2500 M [id F]\n # \u2502 \u2514\u2500 ExpandDims{axes=[0, 1]} [id I] 0\n # \u2502 \u2514\u2500 a [id J]\n # \u251c\u2500 v [id K]\n # \u2514\u2500 0.0 [id L]\n\nSee `the PyTensor documentation <https://pytensor.readthedocs.io/en/latest/>`__ for in-depth tutorials.\n\n\nInstallation\n============\n\nThe latest release of |Project Name| can be installed from PyPI using ``pip``:\n\n::\n\n pip install pytensor\n\n\nOr via conda-forge:\n\n::\n\n conda install -c conda-forge pytensor\n\n\nThe current development branch of |Project Name| can be installed from GitHub, also using ``pip``:\n\n::\n\n pip install git+https://github.com/pymc-devs/pytensor\n\n\nBackground\n==========\n\nPyTensor is a fork of `Aesara <https://github.com/aesara-devs/aesara>`__, which is a fork of `Theano <https://github.com/Theano/Theano>`__.\n\nContributing\n============\n\nWe welcome bug reports and fixes and improvements to the documentation.\n\nFor more information on contributing, please see the\n`contributing guide <https://pytensor.readthedocs.io/en/latest/dev_start_guide.html>`__.\n\nA good place to start contributing is by looking through the issues\n`here <https://github.com/pymc-devs/pytensor/issues>`__.\n\n\n.. |Project Name| replace:: PyTensor\n.. |Tests Status| image:: https://github.com/pymc-devs/pytensor/workflows/Tests/badge.svg\n :target: https://github.com/pymc-devs/pytensor/actions?query=workflow%3ATests+branch%3Amain\n.. |Coverage| image:: https://codecov.io/gh/pymc-devs/pytensor/branch/main/graph/badge.svg?token=WVwr8nZYmc\n :target: https://codecov.io/gh/pymc-devs/pytensor\n",
"bugtrack_url": null,
"license": null,
"summary": "Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs.",
"version": "2.31.7",
"project_urls": {
"documentation": "https://pytensor.readthedocs.io/en/latest/",
"homepage": "https://github.com/pymc-devs/pytensor",
"repository": "https://github.com/pymc-devs/pytensor"
},
"split_keywords": [
"pytensor",
" math",
" numerical",
" symbolic",
" blas",
" numpy",
" autodiff",
" differentiation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "3d75ea4fb7bc3252f313c7a4d0d124aa9c8f020cb668300f3c4d742807383772",
"md5": "83eae65917a62613ee2d4ba38507e1ce",
"sha256": "142814427e0e82d8f3db83529faa6073d33ce9e571cb22096547af19016ad025"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "83eae65917a62613ee2d4ba38507e1ce",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.14,>=3.10",
"size": 1438513,
"upload_time": "2025-07-09T00:33:49",
"upload_time_iso_8601": "2025-07-09T00:33:49.860186Z",
"url": "https://files.pythonhosted.org/packages/3d/75/ea4fb7bc3252f313c7a4d0d124aa9c8f020cb668300f3c4d742807383772/pytensor-2.31.7-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ca482de01b59238517308348ba97624e85781e6061a622bef71616df54e52256",
"md5": "5f7f64b3059ce9f58f87e5cbefb7a74c",
"sha256": "70e262a5c4be0055f25dbbb8512c1eb2899cb80e6a630b95ea387356a825f823"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "5f7f64b3059ce9f58f87e5cbefb7a74c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.14,>=3.10",
"size": 1892231,
"upload_time": "2025-07-09T00:33:52",
"upload_time_iso_8601": "2025-07-09T00:33:52.094743Z",
"url": "https://files.pythonhosted.org/packages/ca/48/2de01b59238517308348ba97624e85781e6061a622bef71616df54e52256/pytensor-2.31.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c2688123d9794351e1b22f8d1ff8e4dce770e722b22d5bd58c9b0bd397540383",
"md5": "07c400974d2789aa76421ae14fd2e467",
"sha256": "2343df3dc9eb46903a4c68591dcc36a05b2c9309a0748a47e3933a3864765d4d"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp310-cp310-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "07c400974d2789aa76421ae14fd2e467",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.14,>=3.10",
"size": 1908596,
"upload_time": "2025-07-09T00:33:54",
"upload_time_iso_8601": "2025-07-09T00:33:54.262713Z",
"url": "https://files.pythonhosted.org/packages/c2/68/8123d9794351e1b22f8d1ff8e4dce770e722b22d5bd58c9b0bd397540383/pytensor-2.31.7-cp310-cp310-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7d2a33b5eb1c537f79e13a2f3aaf429bc6abed86148208181c76af64ddf4c396",
"md5": "1fb7e1a21f3603536ca5461883d63b0d",
"sha256": "58927b06df3168e9df005dadc2869613f4fba12ed6b49096e8a3fc29583aaa9d"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "1fb7e1a21f3603536ca5461883d63b0d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.14,>=3.10",
"size": 1918935,
"upload_time": "2025-07-09T00:33:56",
"upload_time_iso_8601": "2025-07-09T00:33:56.320058Z",
"url": "https://files.pythonhosted.org/packages/7d/2a/33b5eb1c537f79e13a2f3aaf429bc6abed86148208181c76af64ddf4c396/pytensor-2.31.7-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bba23937ad756662120492ea926e22ba62c7c0606694139479e458d806ed9125",
"md5": "afc8add56353761d0191d8ae14f39ea4",
"sha256": "2ae4fca59c4858353b4025b48a09b07d80bced723369355b2284e357e5f15299"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "afc8add56353761d0191d8ae14f39ea4",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.14,>=3.10",
"size": 1437758,
"upload_time": "2025-07-09T00:33:59",
"upload_time_iso_8601": "2025-07-09T00:33:59.303977Z",
"url": "https://files.pythonhosted.org/packages/bb/a2/3937ad756662120492ea926e22ba62c7c0606694139479e458d806ed9125/pytensor-2.31.7-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3ae8bcc2b73e4e5d46663a10295358397c11dfb251ccc108e2129173532b80ce",
"md5": "eea5001f450597b40003c9c23ab5c69c",
"sha256": "5983ced37b9c91fe7fb6c8cc44b432e68bfb266ffc0cab145406fba578039acb"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "eea5001f450597b40003c9c23ab5c69c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.14,>=3.10",
"size": 1624436,
"upload_time": "2025-07-09T00:34:01",
"upload_time_iso_8601": "2025-07-09T00:34:01.449796Z",
"url": "https://files.pythonhosted.org/packages/3a/e8/bcc2b73e4e5d46663a10295358397c11dfb251ccc108e2129173532b80ce/pytensor-2.31.7-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fb3db2e1e1e5d99d5273fa317cbbd27f3d70d688c287e4e2ccd3d81a93040aaa",
"md5": "8ebeea8f09dc72d3fe25650f852b89a0",
"sha256": "81f37c7b0ec42e2f5a0509b1753a0becac029dd902dad59360e24d5270d30d9c"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "8ebeea8f09dc72d3fe25650f852b89a0",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.14,>=3.10",
"size": 2109404,
"upload_time": "2025-07-09T00:34:03",
"upload_time_iso_8601": "2025-07-09T00:34:03.182941Z",
"url": "https://files.pythonhosted.org/packages/fb/3d/b2e1e1e5d99d5273fa317cbbd27f3d70d688c287e4e2ccd3d81a93040aaa/pytensor-2.31.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7b0076c159227f82d7ad62b9d4e5a13c55404d615eb969c5e4388c40b72acdef",
"md5": "c901ee605054ae0db6f74567ea23fef1",
"sha256": "44bf1e2ee2e49cfbc95cc9fbeac4534dc18fc325735ad13ae8ef585cce7b7bf8"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp311-cp311-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "c901ee605054ae0db6f74567ea23fef1",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.14,>=3.10",
"size": 2123068,
"upload_time": "2025-07-09T00:34:05",
"upload_time_iso_8601": "2025-07-09T00:34:05.370964Z",
"url": "https://files.pythonhosted.org/packages/7b/00/76c159227f82d7ad62b9d4e5a13c55404d615eb969c5e4388c40b72acdef/pytensor-2.31.7-cp311-cp311-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f7edacf9bbb19f57cf8308700fdb41990163196ce10bd2dec15cbdc429609933",
"md5": "12db097fd3b8e122ce8427b142f45abe",
"sha256": "9ff160177c7209f5803715e297d9052eff968f4ae50e3ad787ee496bf0fd53af"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "12db097fd3b8e122ce8427b142f45abe",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.14,>=3.10",
"size": 2138152,
"upload_time": "2025-07-09T00:34:07",
"upload_time_iso_8601": "2025-07-09T00:34:07.100932Z",
"url": "https://files.pythonhosted.org/packages/f7/ed/acf9bbb19f57cf8308700fdb41990163196ce10bd2dec15cbdc429609933/pytensor-2.31.7-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6d038eaf7204149b92cf3987c1ec1d9f976fef9ccf0a732e51eee9844aee1476",
"md5": "00119813f141937e8053210d33097e3c",
"sha256": "38acc41d2724fad9f87795106754b5e79f9374ec35450a0b3382c5fbe01bc850"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "00119813f141937e8053210d33097e3c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.14,>=3.10",
"size": 1622332,
"upload_time": "2025-07-09T00:34:09",
"upload_time_iso_8601": "2025-07-09T00:34:09.053188Z",
"url": "https://files.pythonhosted.org/packages/6d/03/8eaf7204149b92cf3987c1ec1d9f976fef9ccf0a732e51eee9844aee1476/pytensor-2.31.7-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e07a92e2bd5b6752780703685a818e2d4d96360a3906bf58985a383cf84bd03d",
"md5": "14aceaa1f32963b81d04269957bc0671",
"sha256": "c863122dc61638aa87c7277da984fe266eba6cf53e04a0cf5acbeac1fbe4e325"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "14aceaa1f32963b81d04269957bc0671",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.14,>=3.10",
"size": 1624386,
"upload_time": "2025-07-09T00:34:10",
"upload_time_iso_8601": "2025-07-09T00:34:10.678923Z",
"url": "https://files.pythonhosted.org/packages/e0/7a/92e2bd5b6752780703685a818e2d4d96360a3906bf58985a383cf84bd03d/pytensor-2.31.7-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "43a59205f8420f59466a36b18ca41f09767ff0aed48ddb2ecb2c6d170bd201e8",
"md5": "29855d1733597bcaf7cb147e67492680",
"sha256": "1489a55acb192528974f343f8cc67fc53cac0fbeb0bc02d4281f0a207fa506b5"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "29855d1733597bcaf7cb147e67492680",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.14,>=3.10",
"size": 2100754,
"upload_time": "2025-07-09T00:34:12",
"upload_time_iso_8601": "2025-07-09T00:34:12.314682Z",
"url": "https://files.pythonhosted.org/packages/43/a5/9205f8420f59466a36b18ca41f09767ff0aed48ddb2ecb2c6d170bd201e8/pytensor-2.31.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9b51676da3fcf776fd50af0b7e9d5e662c584a23456afeb8598fa87135b61af9",
"md5": "88cfd356eb25660b3513746c5ce06f95",
"sha256": "e79aaea8e1a94d115bcd895c82f8a6bf0dd651518a980108ca718ff182afb24b"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp312-cp312-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "88cfd356eb25660b3513746c5ce06f95",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.14,>=3.10",
"size": 2115814,
"upload_time": "2025-07-09T00:34:14",
"upload_time_iso_8601": "2025-07-09T00:34:14.325951Z",
"url": "https://files.pythonhosted.org/packages/9b/51/676da3fcf776fd50af0b7e9d5e662c584a23456afeb8598fa87135b61af9/pytensor-2.31.7-cp312-cp312-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "52627f2ff99f244afbe318f45cb69c6e548e7135caf4a5b89b5b32a6646af59b",
"md5": "9b2e1704636d37e669f9b27d2ec427cd",
"sha256": "5aab6ff129ed85910b42965eef4a58b53d072c123200763677b6787a165d1aab"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "9b2e1704636d37e669f9b27d2ec427cd",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.14,>=3.10",
"size": 2139405,
"upload_time": "2025-07-09T00:34:15",
"upload_time_iso_8601": "2025-07-09T00:34:15.985427Z",
"url": "https://files.pythonhosted.org/packages/52/62/7f2ff99f244afbe318f45cb69c6e548e7135caf4a5b89b5b32a6646af59b/pytensor-2.31.7-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3b56bebc6fadc66ef513c7b87a5d1de46e522ff4d57bd1acfb39f5f400b2b06e",
"md5": "a881f33de3e77a439311fb37c3e6f390",
"sha256": "ab478a722dedc89e31634f189343a416293e27555be6ea6f4620598f05ecd583"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "a881f33de3e77a439311fb37c3e6f390",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.14,>=3.10",
"size": 1623709,
"upload_time": "2025-07-09T00:34:17",
"upload_time_iso_8601": "2025-07-09T00:34:17.947562Z",
"url": "https://files.pythonhosted.org/packages/3b/56/bebc6fadc66ef513c7b87a5d1de46e522ff4d57bd1acfb39f5f400b2b06e/pytensor-2.31.7-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e9ed9c5dedd5c2616fabf1f94b40adf0defde1f4c7dc8afc9319bf60da5611af",
"md5": "f80826d9c73914cf88ee82bdb995772e",
"sha256": "2c3b463f392bb46d99ce9f060faaae13420277f446de5f4d6c18ac095bf83439"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "f80826d9c73914cf88ee82bdb995772e",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<3.14,>=3.10",
"size": 1623518,
"upload_time": "2025-07-09T00:34:19",
"upload_time_iso_8601": "2025-07-09T00:34:19.584457Z",
"url": "https://files.pythonhosted.org/packages/e9/ed/9c5dedd5c2616fabf1f94b40adf0defde1f4c7dc8afc9319bf60da5611af/pytensor-2.31.7-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ace447e7e2818c8b1acbd64f9a0ab3de001e484fb3545c82b37c350d71eb9e7b",
"md5": "76cfb23bdd4f0d1039147cdfc9a775a3",
"sha256": "e5abd20541c9d9a4340fde4da63cab5a6b4ec3228f0070b539bb6188f2255512"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "76cfb23bdd4f0d1039147cdfc9a775a3",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<3.14,>=3.10",
"size": 2094291,
"upload_time": "2025-07-09T00:34:21",
"upload_time_iso_8601": "2025-07-09T00:34:21.772875Z",
"url": "https://files.pythonhosted.org/packages/ac/e4/47e7e2818c8b1acbd64f9a0ab3de001e484fb3545c82b37c350d71eb9e7b/pytensor-2.31.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a9fd6d75179820edb49ed42467e3f78ba1c9bf305f1bdc65524f97de4578114b",
"md5": "e7e8a48517a199c9fbd66c77fe353a3b",
"sha256": "99468fb50b3765b43bb82a3f411dcd37b3f5ce922870d8374ddf9cbc01033d68"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp313-cp313-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "e7e8a48517a199c9fbd66c77fe353a3b",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<3.14,>=3.10",
"size": 2116022,
"upload_time": "2025-07-09T00:34:24",
"upload_time_iso_8601": "2025-07-09T00:34:24.007894Z",
"url": "https://files.pythonhosted.org/packages/a9/fd/6d75179820edb49ed42467e3f78ba1c9bf305f1bdc65524f97de4578114b/pytensor-2.31.7-cp313-cp313-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6d1e6ff8891aaee7295b8c5d62149832cf38e8af141e703f69263bdb47564e6a",
"md5": "98cdfa616b67bd72eaf50c88daa5eee4",
"sha256": "e7df2d29568602544eb1733d09075a6f229470fc6b96fc03ba8036997eef58a7"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "98cdfa616b67bd72eaf50c88daa5eee4",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<3.14,>=3.10",
"size": 2134927,
"upload_time": "2025-07-09T00:34:25",
"upload_time_iso_8601": "2025-07-09T00:34:25.865208Z",
"url": "https://files.pythonhosted.org/packages/6d/1e/6ff8891aaee7295b8c5d62149832cf38e8af141e703f69263bdb47564e6a/pytensor-2.31.7-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "61f3e341e9d5d20f31a15beaa61dd16b3254db93542830f3814acf5e895b27c0",
"md5": "0c4d757f34793f0c7f29944eb7ec9611",
"sha256": "f1b533058ad2503aa40df7db3aec99cfb1eff5c158ec7cb58892db940ff585ac"
},
"downloads": -1,
"filename": "pytensor-2.31.7-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "0c4d757f34793f0c7f29944eb7ec9611",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<3.14,>=3.10",
"size": 1623504,
"upload_time": "2025-07-09T00:34:27",
"upload_time_iso_8601": "2025-07-09T00:34:27.511603Z",
"url": "https://files.pythonhosted.org/packages/61/f3/e341e9d5d20f31a15beaa61dd16b3254db93542830f3814acf5e895b27c0/pytensor-2.31.7-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0a3d33859b753186d3bcae89fd2ddfd5b180569030db3ace02a26c0d3b56c449",
"md5": "51f0809decf8cab055edd17ef24d2890",
"sha256": "d7f89c7eaedd8ce4323289602b41be28e8aaee14c73a52c701079f25c4247aa8"
},
"downloads": -1,
"filename": "pytensor-2.31.7-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "51f0809decf8cab055edd17ef24d2890",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": "<3.14,>=3.10",
"size": 1338497,
"upload_time": "2025-07-09T00:34:28",
"upload_time_iso_8601": "2025-07-09T00:34:28.942791Z",
"url": "https://files.pythonhosted.org/packages/0a/3d/33859b753186d3bcae89fd2ddfd5b180569030db3ace02a26c0d3b56c449/pytensor-2.31.7-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f91b77783110a06ce0afacab063c64f644ea0a450daffa76dcf1bbb09ae2d819",
"md5": "e8eed931b1808c4645b0608f572d90b6",
"sha256": "0af99e240c95bc0223886eefb4343b0e9dc6fba349b70b107b3a6fbb9cb66409"
},
"downloads": -1,
"filename": "pytensor-2.31.7.tar.gz",
"has_sig": false,
"md5_digest": "e8eed931b1808c4645b0608f572d90b6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.10",
"size": 4431862,
"upload_time": "2025-07-09T00:34:30",
"upload_time_iso_8601": "2025-07-09T00:34:30.557968Z",
"url": "https://files.pythonhosted.org/packages/f9/1b/77783110a06ce0afacab063c64f644ea0a450daffa76dcf1bbb09ae2d819/pytensor-2.31.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 00:34:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pymc-devs",
"github_project": "pytensor",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pytensor"
}