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 minor at publication, which each wheel requires (e.g. torch == 2.14.*); listed in the release notes
CUDA wheel, from the PhilTorch index Linux x86_64 (manylinux_2_28) CPU and CUDA 3.10–3.13 One build per PyTorch minor and CUDA version; see CUDA wheels
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. Each wheel is built against one PyTorch minor release and requires it (e.g. torch == 2.14.*), because the compiled extension does not load with other minor releases. pip therefore installs that PyTorch minor with PhilTorch, replacing a different one if needed. If a different minor is installed anyway, for example with --no-deps, import philtorch raises an ImportError naming the minor it needs. For CUDA on Linux, use the CUDA wheels; for another PyTorch minor release, build from source.

CUDA wheels

Linux wheels with CUDA kernels are published on a separate package index rather than PyPI. Wheel tags don't record which PyTorch and CUDA build a wheel is for, and PyPI rejects the local version labels that do (e.g. +torch2.14.1.cu132). There is one index per PyTorch minor and CUDA version that PyTorch publishes wheels for. Install PyTorch first, then install PhilTorch from the index that matches it:

python -m pip install torch==2.14.1 --index-url https://download.pytorch.org/whl/cu132
python -m pip install philtorch --index-url https://yoyolicoris.github.io/philtorch/whl/torch2.14-cu132/

To find the matching index for an installed PyTorch, run python -c "import torch; print(torch.__version__, torch.version.cuda)". For example, 2.14.1+cu132 13.2 matches whl/torch2.14-cu132/. On Linux, pip install torch from PyPI installs the CUDA 13.0 build, which matches whl/torch2.14-cu130/.

PyTorch CUDA 12.9 CUDA 13.0 CUDA 13.2
2.14 — whl/torch2.14-cu130/ whl/torch2.14-cu132/
2.13 whl/torch2.13-cu129/ whl/torch2.13-cu130/ whl/torch2.13-cu132/
2.12 whl/torch2.12-cu129/ whl/torch2.12-cu130/ whl/torch2.12-cu132/

The index URLs are relative to https://yoyolicoris.github.io/philtorch/, which lists every index, including those for earlier releases.

  • Requirements: Python 3.10–3.13, an NVIDIA GPU with compute capability 7.5, 8.x, 9.0, 10.x or 12.x, and a driver that supports the wheel's CUDA version.
  • PyTorch: each wheel requires its PyTorch minor (e.g. torch == 2.14.*), so pip keeps the PyTorch you installed.
  • Mismatches: import philtorch raises an ImportError if the installed PyTorch is a different minor release, has no CUDA support, or uses a different CUDA major version. It only warns if the CUDA minor version differs.
  • Use --index-url, not --extra-index-url: with PyPI also searched, pip installs PyPI's CPU-only wheel whenever it is a newer release than the CUDA build in the index, without warning.

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 a headless build server with no visible GPU, set PHILTORCH_FORCE_CUDA=1 to compile the CUDA extension anyway. In that case the installed PyTorch must be a CUDA build, and TORCH_CUDA_ARCH_LIST must also be set to the target architectures (e.g. TORCH_CUDA_ARCH_LIST="8.0 8.6"), because there is no GPU to infer them from. 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:

git clone --branch main 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.
      • delay_state_space:
        • State-space models whose states are delay lines of arbitrary integer length, such as feedback delay networks.
      • 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.
Evaluate an LTI system whose states are delay lines, such as a feedback delay network. philtorch.lti.delay_state_space delays are positive integers, one per line; B, C, D, and out_idx follow state_space. zi holds one initial queue per line, and (y, zf) is returned only when it is given.
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.6.3

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.6.3
File Size Uploaded Provenance
philtorch-0.6.3.tar.gz 157.5 kB With provenance Details

Built distributions (wheels)

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

Total release size: 3.1 MB

Release files / philtorch-0.6.3.tar.gz

Download URL philtorch-0.6.3.tar.gz
Size 157.5 kB
Tags Source
SHA-256 checksum
How to use checksums
40c86356ebd0b54978b0a66883937130781eeaea1798804efc2889956b5127dd
BLAKE2b-256 checksum
How to use checksums
97acd21af7a2b014bfa7c14b6daebe1caed80a450f3158434dbdb93e19bc687f
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp313-cp313-win_amd64.whl
Size 193.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
163f9dc161de512dfa7ecb21dc28264e0d6fbf834dc1e4cc0fc0b0e9b5428e98
BLAKE2b-256 checksum
How to use checksums
dbfb335b504e48ebdf1db7f779fbdd1a4fc6aa16a2fc9c648171e8ad1db7da3a
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp313-cp313-manylinux_2_28_x86_64.whl
Size 371.2 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b9772a589510b75a158f5de063dfc6b84b5d2d721016d796f23f31a34f5d7bf8
BLAKE2b-256 checksum
How to use checksums
c37959c6daf9d77f5fbe92f04b3c1390241759b5975395fa7299d2993970ceef
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp313-cp313-macosx_14_0_arm64.whl
Size 179.2 kB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
9fa1eaf29d0f44509ee126a5d0ff48aaddf661d018140e266805859e5c88961d
BLAKE2b-256 checksum
How to use checksums
eddd564eb0e1e93c27e4843db6a66517a28710a4e3e797a1c4b9a0485f0d9373
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp312-cp312-win_amd64.whl
Size 193.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
59982ba3b2ab367f442dcca736e39dd50f31b3c835ea00e21568f9fd1d11df1c
BLAKE2b-256 checksum
How to use checksums
f163e8db366e7a38c79c51c042a369dcc5873b2229e38b3c1fbcbe068c5f44cc
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp312-cp312-manylinux_2_28_x86_64.whl
Size 370.9 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4bc90cb99748e8f6980f0828cbcd917c88fa8dd12e49a668c924607d4fb90c80
BLAKE2b-256 checksum
How to use checksums
36236d68551d1a24bfd44e2a4e12e469a1a0df0119a11724418dd29b6077374c
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp312-cp312-macosx_14_0_arm64.whl
Size 179.2 kB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
b3e708437a0beb21f0a2fcc0eae7ce1dfe5a1ee41b27ed7eb05648af2aeeac52
BLAKE2b-256 checksum
How to use checksums
ae9aa161eb2740f11368804df0a07cf1394a73563c497d222b928540f43d6af4
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp311-cp311-win_amd64.whl
Size 191.9 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
c32a15ebeaf8b4bb83bf6ca0c9450104358d02ef9a3c07e669bb8ecf33eec5db
BLAKE2b-256 checksum
How to use checksums
cb0739a71b04faeab2697293b70ccbf074c28a5f32dae597510584d424c7d675
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp311-cp311-manylinux_2_28_x86_64.whl
Size 371.5 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4da9c028b435091c83d51a65f662b7cbe55970c29eda8e22af32234141f9a754
BLAKE2b-256 checksum
How to use checksums
87a2e7ec8333aebbbc8219d6f940b3dcd6070c5d166691011aca27598d26c9ab
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp311-cp311-macosx_14_0_arm64.whl
Size 179.0 kB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
aeecf87ff0825033c62e2ff9d49421d136277cf65ee6d1a31c07b1a710e4120a
BLAKE2b-256 checksum
How to use checksums
0916923bd4719e85a4c5c5daeab228d2cf55ed00b4e93fdec3c3eefd922179e4
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp310-cp310-win_amd64.whl
Size 191.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
8587392d541df35a73892fcb8c69e0590757c00a5a2c69e34888effcc2555273
BLAKE2b-256 checksum
How to use checksums
1cff8eab80472a2d5cf520b7768c7bd51315518368be49d6e6f4a76769effdfe
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp310-cp310-manylinux_2_28_x86_64.whl
Size 368.8 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f1a85550a668336f92148efde6aec938f7aebb9ef337f97c67dea326294c4856
BLAKE2b-256 checksum
How to use checksums
0a088dab180a78021649bee24386c6ec0da7d9c4d484b29d0d352fc2d30d1c4e
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 Oct 8, 2026.

Transparency log

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

Download URL philtorch-0.6.3-cp310-cp310-macosx_14_0_arm64.whl
Size 179.0 kB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
3e5870c8c9eaf6b91bffa1981c7d0049467d6588ad769ab28557f3aa1b1b6973
BLAKE2b-256 checksum
How to use checksums
0389607a261a108b5e76ef205c9a80321cd7070d01aeaef360e5d30cae2b18fa
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 Oct 8, 2026.

Transparency log

Security for philtorch 0.6.3

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.6.3.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 8, 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