Skip to main content

PhilTorch $\Huge \overset{🔥}{\Phi}$

PyPI version Python versions Build CPU wheels codecov OpenReview License: MIT

PhilTorch provides differentiable, time-domain linear digital filters for PyTorch.

  • Differentiate through filter coefficients, inputs, and initial states with PyTorch autograd.
  • Process batched signals and filters whose coefficients vary at every time step.
  • Compute in the time domain without FFTs, through a pure functional API with no stateful objects.
  • Run on native CPU, CUDA, and MPS kernels.

News

Installation

PhilTorch requires its compiled philtorch._C extension; there is no pure-PyTorch fallback when the extension is missing.

Route Platforms Kernels Python PyTorch
PyPI wheel Linux x86_64 (manylinux_2_28), macOS 14+ arm64, Windows AMD64 CPU, plus float32 scalar-LTI MPS on macOS 3.10–3.13 The latest stable release at publication, listed in the release notes
Source build Any platform with a C++ toolchain CPU, MPS, or CUDA 3.10+ 2.4 or newer

PyPI wheels

python -m pip install philtorch

Wheels contain no CUDA kernels. They are built against one PyTorch minor release and are not guaranteed to work with other minor releases, so build from source if you use CUDA or a different PyTorch minor release.

Source builds

Install PyTorch first with the PyTorch installation selector, then build PhilTorch against it without build isolation:

python -m pip install "setuptools>=77.0.3" "setuptools_scm>=8" wheel
python -m pip install --no-binary=philtorch --no-build-isolation philtorch

The build compiles a CUDA extension when torch.cuda.is_available() is true and CUDA_HOME is set, and a CPU-only C++ extension otherwise. On macOS, when the installed PyTorch supports OpenMP, the build also needs Homebrew llvm and libomp, unless PHILTORCH_DISABLE_OPENMP=1 is set.

For an editable install from Git, clone with submodules:

git clone --branch v0.5 --recurse-submodules https://github.com/yoyolicoris/philtorch.git
cd philtorch
python -m pip install torch  # Choose the correct CPU or CUDA build first.
python -m pip install "setuptools>=77.0.3" "setuptools_scm>=8" wheel
python -m pip install --editable . --no-build-isolation

Package versions come from Git tags through setuptools_scm, so keep the tag metadata when building from a checkout.

Development version

Development builds from dev are published to TestPyPI:

python -m pip install -i https://test.pypi.org/simple/ philtorch

Quickstart

Filtering with SciPy-designed coefficients

import torch
from scipy.signal import butter

from philtorch.lti import filtfilt, lfilter, lfilter_zi

x = torch.randn(201, dtype=torch.float64)

b_np, a_np = butter(3, 0.05)
# Normalize so that a0 = 1, then drop a0 from the denominator.
b = torch.from_numpy(b_np / a_np[0])
a = torch.from_numpy(a_np[1:] / a_np[0])

# lfilter_zi takes (a, b), the reverse of SciPy's lfilter_zi(b, a).
zi = lfilter_zi(a, b)

y, _ = lfilter(b, a, x, zi=zi * x[0])
y_zero_phase = filtfilt(b, a, x)

Module overview

  • philtorch: Root module.
    • lpv: Functions under it are for linear parameter-varying filters.
      • fir:
        • Finite Impulse Response filters.
      • allpole:
        • All-pole filters.
      • lfilter:
        • Parameter-varying version of scipy.signal.lfilter. It supports not only transposed direct form II but also transposed direct form I, direct form I, and direct form II structures.
      • state_space:
        • Parameter-varying state-space models.
      • state_space_recursion:
        • The core recursion function for state-space models.
      • linear_recurrence:
        • A linear recurrence function with scalar coefficients.
    • lti: Functions under it are for linear time-invariant filters.
      • fir:
        • Finite Impulse Response filters.
      • lfilter:
        • A differentiable version of scipy.signal.lfilter. It supports not only transposed direct form II but also transposed direct form I, direct form I, and direct form II structures.
      • filtfilt:
        • A differentiable version of scipy.signal.filtfilt.
      • lfilter_zi:
        • A differentiable version of scipy.signal.lfilter_zi.
      • lfiltic:
        • A differentiable version of scipy.signal.lfiltic.
      • state_space:
        • State-space models.
      • diag_state_space:
        • State-space models with diagonalisable state matrix.
      • state_space_recursion:
        • The core recursion function for state-space models.
      • linear_recurrence:
        • A linear recurrence function with scalar coefficients.
      • comb_filter:
        • Delayed all-pole comb filters.
      • cubic_spline:
        • Cubic-spline interpolation for integer upsampling.
    • utils: Utility functions.
    • mat: Matrix operations.
    • poly: Polynomial operations.

For detailed API reference, please refer to the docstring of each function.

Choose the right API

The supported high-level interfaces are exported from philtorch.lti for fixed coefficients and philtorch.lpv for coefficients that vary over time.

Intent API Notes
Apply a fixed-coefficient causal IIR or FIR filter. philtorch.lti.lfilter or philtorch.lti.fir lfilter supports df2, tdf2, df1, and tdf1 forms.
Apply a fixed-coefficient zero-phase filter. philtorch.lti.filtfilt Runs the LTI filter forward and backward; edge padding is enabled by default and can be disabled with padmode=None.
Construct or recover IIR filter state. philtorch.lti.lfilter_zi or philtorch.lti.lfiltic These helpers use the same normalized a0 = 1 coefficients as lfilter.
Apply a time-varying filter. philtorch.lpv.lfilter, philtorch.lpv.fir, or philtorch.lpv.allpole Coefficient tensors include a time dimension aligned with the input. lpv.lfilter defaults to backend="ssm"; backend="torchlpc" does not support form="tdf2".
Evaluate a scalar linear recurrence. philtorch.lti.linear_recurrence or philtorch.lpv.linear_recurrence Choose the namespace according to whether the recurrence coefficient is fixed or time-varying.
Evaluate a state-space system. philtorch.lti.state_space or philtorch.lpv.state_space Use state_space_recursion directly when only the internal state sequence is needed.
Evaluate an LTI state-space system through eigendecomposition. philtorch.lti.diag_state_space Requires a diagonalisable A, or explicitly supplied L, V, and/or Vinv; diagonalisation failures propagate.
Apply an LTI comb filter or cubic-spline interpolation. philtorch.lti.comb_filter or philtorch.lti.cubic_spline These utilities are also part of the public LTI exports.

Comparison with scipy.signal

PhilTorch functions take PyTorch tensors, support autograd and batching, and keep the input dtype and device. Coefficients are normalized so that a0 = 1: divide SciPy's b and a by a[0], then pass a[1:] as the denominator, as in the Quickstart example.

SciPy PhilTorch Differences
lfilter philtorch.lti.lfilter, philtorch.lti.fir Filters the last axis of 1-D or batched 2-D tensors, batches coefficients, and supports df2, tdf2, df1, and tdf1. fir is the batched FIR-only path.
lfiltic philtorch.lti.lfiltic Builds the filter state from past inputs and outputs.
lfilter_zi philtorch.lti.lfilter_zi Takes (a, b), the reverse of SciPy's (b, a).
filtfilt philtorch.lti.filtfilt Defaults to padmode="replicate" and disables padding with padmode=None; method="gust" is not implemented and irlen is unused.
cspline1d, cspline1d_eval philtorch.lti.cubic_spline Upsamples batched 2-D signals by an integer factor only; no arbitrary evaluation points or smoothing (lamb must be zero); uses PyTorch reflect padding unless scipy_padding=True.
dlsim philtorch.lti.state_space Takes A, B, C, D tensors instead of a system object and returns the output, plus the final state when zi is given; no time vector or full state trajectory. dimpulse and dstep can be reproduced with explicit impulse or step inputs.
— philtorch.lpv.lfilter, philtorch.lpv.fir, philtorch.lpv.allpole, philtorch.lpv.state_space Time-varying filters and state-space models whose coefficients carry a time dimension.
— philtorch.lti.linear_recurrence, philtorch.lpv.linear_recurrence, state_space_recursion Differentiable scalar recurrences and internal state sequences.
— philtorch.lti.diag_state_space State-space evaluation through the eigendecomposition of a diagonalizable A.
— philtorch.lti.comb_filter Delayed all-pole comb recurrence with a given coefficient and delay; it does not design filters like iircomb.

Performance

Recursive filters are hard to parallelize, so PhilTorch implements custom C++ and CUDA kernels. With the default unroll_factor=1, the state-space paths (lfilter, state_space, and state_space_recursion) choose a kernel from the device and the filter order, which is the state size M:

Device LTI, M = 1 LTI, M = 2 LTI, M ≥ 3 LPV, M = 1 LPV, M = 2 LPV, M = 3 LPV, M ≥ 4
CPU ✓ ✓ ✓ ✓ ✓ ✓ ✓
CUDA (source builds) ✓ ✓ loop ✓ ✓ ✓¹ loop
MPS ✓² ✗ loop ✗ ✗ loop loop

✓ native kernel · loop: PyTorch recurrence loop · ✗ raises an error because no kernel exists for the device; use CPU or unroll_factor > 1 instead. ¹ Real dtypes only; complex inputs use the loop. ² float32 only.

Setting 1 < unroll_factor < sequence length switches to a block-unrolled PyTorch recursion, which computes blocks in parallel with matrix multiplications (background); larger values fall back to a plain PyTorch loop. It is slower than the native kernels but much faster than a naive loop. Good starting points are 8 on CPU and 16–32 on CUDA, but benchmark your own batch size, sequence length, state size, dtype, and device, for example with torch.utils.benchmark. Native kernels are fastest for first- and second-order filters, so prefer cascades or parallel banks of such sections, especially on CUDA.

Examples

Fibonacci numbers with state_space

philtorch.lti.state_space computes

\begin{aligned}
\mathbf{h}_{n+1} &= \mathbf{A} \mathbf{h}_n + \mathbf{B} \mathbf{x}_n, \\
\mathbf{y}_n &= \mathbf{C} \mathbf{h}_n + \mathbf{D} \mathbf{x}_n.
\end{aligned}

Setting the following, with $\mathbf{B} = \mathbf{D} = 0$ and no input, yields the Fibonacci numbers:

\mathbf{A} = \begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix}, \qquad
\mathbf{C} = \begin{bmatrix} 1 & 0 \end{bmatrix}, \qquad
\mathbf{h}_0 = \begin{bmatrix} 1 \\ 0 \end{bmatrix}.
import torch

from philtorch.lti import state_space

A = torch.tensor([[1, 1], [1, 0]])
C = torch.tensor([1, 0])
x = torch.zeros(1, 10).long()
h0 = torch.tensor([1, 0])
y, _ = state_space(A, x, C=C, zi=h0)
print(y)
tensor([[ 1,  1,  2,  3,  5,  8, 13, 21, 34, 55]])

This produces the first ten Fibonacci numbers, where $F_n = F_{n-1} + F_{n-2}$ with $F_0 = F_1 = 1$.

Learning filter parameters

The low-pass estimation notebook demonstrates learning filter parameters by gradient descent.

Paper and citation

PhilTorch's LTI direct-form filtering work is described in Accelerating Automatic Differentiation of Direct Form Digital Filters by Chin-Yun Yu and György Fazekas.

@inproceedings{yu2025accelerating,
  title={Accelerating Automatic Differentiation of Direct Form Digital Filters},
  author={Yu, Chin-Yun and Fazekas, György},
  booktitle={Differentiable Systems and Scientific Machine Learning Workshop at EurIPS 2025},
  year={2025},
  url={https://openreview.net/forum?id=ZhwIyvtBNB}
}

Metadata

Release files for philtorch 0.5

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

Source distribution (sdist)

Source distribution for philtorch 0.5
File Size Uploaded Provenance
philtorch-0.5.tar.gz 863.1 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for philtorch 0.5
File
philtorch-0.5-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
philtorch-0.5-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
philtorch-0.5-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
philtorch-0.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
philtorch-0.5-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
philtorch-0.5-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
philtorch-0.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
philtorch-0.5-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
philtorch-0.5-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
philtorch-0.5-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
philtorch-0.5-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
philtorch-0.5-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details

Total release size: 60.1 MB

Release files / philtorch-0.5.tar.gz

Download URL philtorch-0.5.tar.gz
Size 863.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7c56862436275640626cd75b5f2f6622f648eb45aedbf4e59e6536bade333f32
BLAKE2b-256 checksum
How to use checksums
cbb4f340d0b8c049532c2c50c45cde124d2345bfae366f9b57d6894de6193aa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp313-cp313-win_amd64.whl

Download URL philtorch-0.5-cp313-cp313-win_amd64.whl
Size 934.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
1ec5fcae85433c2ad9a2bba220556e013596df6ac85c0c92423cb922e08cd889
BLAKE2b-256 checksum
How to use checksums
0d1cbb228d2d92563d227422db6cab483ee77881c02aa0045276ccae5e87916a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL philtorch-0.5-cp313-cp313-manylinux_2_28_x86_64.whl
Size 13.0 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
64982a5e362296ba6b340fb36b96f79be9245b36cf4e8ff92c7a0dee4cf50332
BLAKE2b-256 checksum
How to use checksums
edbbc0d97a2f28d4155465315072dbaed0b3c8613791f0e1a6d46e09cd38b943
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp313-cp313-macosx_14_0_arm64.whl

Download URL philtorch-0.5-cp313-cp313-macosx_14_0_arm64.whl
Size 921.7 kB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
b3c223e70700257353a75f51e8a914bb9c2dbfb1846d3d881ccd81d73f763d9a
BLAKE2b-256 checksum
How to use checksums
4aa878ea320809efee681f996247fb6dc812e18b6f5c6c4c517360b32089484f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp312-cp312-win_amd64.whl

Download URL philtorch-0.5-cp312-cp312-win_amd64.whl
Size 934.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
a0fb8df10c122f2c9255eacda5f9145192d50df79222456836a6d2cb53c1642e
BLAKE2b-256 checksum
How to use checksums
7c6a4fe0c741f7de3caf8188867212a14059c42849fb42bb4666a6662acaacc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL philtorch-0.5-cp312-cp312-manylinux_2_28_x86_64.whl
Size 13.0 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ad0e452a7a8e85ae06dc953fd6552a039876b16fa1d70ac8522a11948ef68072
BLAKE2b-256 checksum
How to use checksums
40f7a2b2156aa21e1e2242f8ff3099e7e626b6d1231d1e3e359996f32907c030
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp312-cp312-macosx_14_0_arm64.whl

Download URL philtorch-0.5-cp312-cp312-macosx_14_0_arm64.whl
Size 921.7 kB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
7b96d08097ff9a9b38f1235e66a838433c9fb7e6dbfbcc5e9e209e1424fc68a1
BLAKE2b-256 checksum
How to use checksums
29e252ed6359df48f4c22dda2b148194314bfa2c5560a547aec34b57bfd470e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp311-cp311-win_amd64.whl

Download URL philtorch-0.5-cp311-cp311-win_amd64.whl
Size 933.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b373307624fc8d2e5fe44667da3fce6aea50084952d94d098bcfc2c707f5cb3c
BLAKE2b-256 checksum
How to use checksums
233a7c8952f2d79ef3b60a8bea35324ff54aa0dc20a9bee55b3420f105e0ff5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL philtorch-0.5-cp311-cp311-manylinux_2_28_x86_64.whl
Size 13.0 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2fe4b4a18d1bf7abd8923319581031b1514ec793dc1d3cedd14eea71263425af
BLAKE2b-256 checksum
How to use checksums
25b6a356d3f27fe9e4a7ffc517f972d8b5cbc12b7f1576bd19af4f6f839c8816
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp311-cp311-macosx_14_0_arm64.whl

Download URL philtorch-0.5-cp311-cp311-macosx_14_0_arm64.whl
Size 921.6 kB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
f20e9a94c6508c047a6400a44e4643810e750d197d7e7dc2c14658490b02b1d3
BLAKE2b-256 checksum
How to use checksums
3fe24a0bb2c8c8b9455e8819d259a9b3435d081b44dad2990c191d036b3b1b1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp310-cp310-win_amd64.whl

Download URL philtorch-0.5-cp310-cp310-win_amd64.whl
Size 932.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b6a05f94a1665bb4a8fe6a05cf55a6d3d427380cc992392b1231b46208f5c7c8
BLAKE2b-256 checksum
How to use checksums
d15a0cf4f387ae66051a7cb23f6c4fb18c117fd960b36b54c5e7909f181cd542
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL philtorch-0.5-cp310-cp310-manylinux_2_28_x86_64.whl
Size 12.9 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e807360ee0c36896b995cec3f060906b947568a43642e985483a7e15cc66e9d6
BLAKE2b-256 checksum
How to use checksums
4a03139a7972a5868ed834dd55018906c5c58e8eac75a7f95dd154cdebd410c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / philtorch-0.5-cp310-cp310-macosx_14_0_arm64.whl

Download URL philtorch-0.5-cp310-cp310-macosx_14_0_arm64.whl
Size 921.6 kB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
a0ab971e0d29284a1407bd8d92e68b0dfa8238107181ea676c22a7bbe33ae7ad
BLAKE2b-256 checksum
How to use checksums
4a1feaddf9cd48edc892c4e87d5b649918289ad2b7fc23c0f29370cd300c0821
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Security for philtorch 0.5

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 13 files in this release have been uploaded with provenance metadata.

Select from 13 files

Attestation for philtorch-0.5.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 Sep 30, 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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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