PhilTorch $\Huge \overset{🔥}{\Phi}$
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
- 2025-12-06: We presented our paper, Accelerating Automatic Differentiation of Direct Form Digital Filters, at the Differentiable Systems and Scientific Machine Learning Workshop at EurIPS 2025. The poster is available here.
- 2025-11-10: PhilTorch was first presented at the Audio Developer Conference 2025. The presentation slides are available here.
- 2025-10-31: Our short paper describing the LTI filter implementation in PhilTorch was accepted by the Differentiable Systems and Scientific Machine Learning Workshop at EurIPS 2025. The preprint is available here.
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 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, 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.
- Parameter-varying version of
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.
- A differentiable version of
filtfilt:- A differentiable version of
scipy.signal.filtfilt.
- A differentiable version of
lfilter_zi:- A differentiable version of
scipy.signal.lfilter_zi.
- A differentiable version of
lfiltic:- A differentiable version of
scipy.signal.lfiltic.
- A differentiable version of
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.
Project links
- The contribution guide documents the development and pull-request workflow, and the PhilTorch Roadmap lists current priorities.
- The issue tracker is the place for bug reports and feature requests.
- PhilTorch is distributed under the MIT License; third-party notices are in
LICENSES.
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.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| philtorch-0.6.0.tar.gz | 131.9 kB | With provenance | Details |
Built distributions (wheels)
Total release size: 2.9 MB
Release files / philtorch-0.6.0.tar.gz
| Download URL | philtorch-0.6.0.tar.gz |
|---|---|
| Size | 131.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
06a0601eb03373bd5ab4bb51611f26acdcd1f68a09dd87b5e9108587a585fa02
|
|
BLAKE2b-256 checksum How to use checksums |
c635097027eb2927395366644f1cbc881d99f4c55ebf9f139ee59b64d14df119
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp313-cp313-win_amd64.whl
| Download URL | philtorch-0.6.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 179.9 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
86c1581a248783628f95eb9dea35effa4fcbbfa86c4864f9b1a4492a0937947d
|
|
BLAKE2b-256 checksum How to use checksums |
02c91af7ff98b8502dfca986706fb6b7214c75c32f8914a0f03db287a409af34
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | philtorch-0.6.0-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 358.2 kB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
b483b3b13e1fcacad3cb3838f07d350af44a4276e112e11b35abff007eafb597
|
|
BLAKE2b-256 checksum How to use checksums |
3208a6c8f55757ef3aa4d99c8221599c3266087a127e62d02dee1f486751291a
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp313-cp313-macosx_14_0_arm64.whl
| Download URL | philtorch-0.6.0-cp313-cp313-macosx_14_0_arm64.whl |
|---|---|
| Size | 166.1 kB |
| Tags | CPython 3.13 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
633206793935c144174febc3345e4fb3fd8579cb8021000b200c31dafb5800fb
|
|
BLAKE2b-256 checksum How to use checksums |
f7e09f3310bf254d6b1d5ebe5f485ea811b03547db8ddaae5ba6f39c49cb461b
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp312-cp312-win_amd64.whl
| Download URL | philtorch-0.6.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 179.9 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
70f9d278854d5e3c5608a374fa45b73e9f63c5800db08e57f4bbaee1f37d9ee9
|
|
BLAKE2b-256 checksum How to use checksums |
4f675259f7c4ac31088e80893d286fd5fb15b4672fee8fd3b4768aecd717193d
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | philtorch-0.6.0-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 357.8 kB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1872737e7adfbaff5164afe9126dbae143869659a855188f7e3d9163815da249
|
|
BLAKE2b-256 checksum How to use checksums |
29a9fa5620a438da33ca802226c9835c0107d1a86e13c269e9f7f9432e4d9e9a
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp312-cp312-macosx_14_0_arm64.whl
| Download URL | philtorch-0.6.0-cp312-cp312-macosx_14_0_arm64.whl |
|---|---|
| Size | 166.1 kB |
| Tags | CPython 3.12 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6ffb3e1f5caead0b7ccddd048324b785ba826094305c1c13662052fa5deefaee
|
|
BLAKE2b-256 checksum How to use checksums |
80ff72f2a3375e3883cfc27d37b32f0b1a8800fdeaa0ed0fdedbc95827865799
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp311-cp311-win_amd64.whl
| Download URL | philtorch-0.6.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 178.8 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
312a4846cf01bd67b660e0caac85f9d79b8770db6fb4146c1f44a23caadb8503
|
|
BLAKE2b-256 checksum How to use checksums |
2840d0195655c2a4b57f4c5fcb1ab888dc2239f14fdbdce92bba047396471812
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | philtorch-0.6.0-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 358.4 kB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
77307f1b2e8612d4a964fbeaebce0b07b8fe6b2b1a4730d18a5920553fc478c0
|
|
BLAKE2b-256 checksum How to use checksums |
0ef7f0c3dd714d788e44c768ba959af70e6dbf8870b9c16eaf48eaef0c4821a6
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp311-cp311-macosx_14_0_arm64.whl
| Download URL | philtorch-0.6.0-cp311-cp311-macosx_14_0_arm64.whl |
|---|---|
| Size | 166.0 kB |
| Tags | CPython 3.11 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0658002401e4d9e98de32c7ac295a6bffe4ca3c0606ac8a6922fd23330ce1c45
|
|
BLAKE2b-256 checksum How to use checksums |
eefed51b8a3f1280b0df28db1324acfe0d620a534005fe020197e9215a7da0a0
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp310-cp310-win_amd64.whl
| Download URL | philtorch-0.6.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 177.9 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e809a1c7d8b4bf6c19a2859cdd98212da179a4b2bc0faf1c670a8365ab729b9f
|
|
BLAKE2b-256 checksum How to use checksums |
3bc5a72038041eb42fb74f6dd174388149d378ededcbca08226055713b8661da
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp310-cp310-manylinux_2_28_x86_64.whl
| Download URL | philtorch-0.6.0-cp310-cp310-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 355.7 kB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0622045e2e0160e99f0ac151c686f80158a87809f78406e26de2b5dae99d8d9e
|
|
BLAKE2b-256 checksum How to use checksums |
f25f2e50257685ea48eb8cac147bec38162c9147ac730459acaee23025a26cb1
|
| 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 2, 2026.
Transparency logRelease files / philtorch-0.6.0-cp310-cp310-macosx_14_0_arm64.whl
| Download URL | philtorch-0.6.0-cp310-cp310-macosx_14_0_arm64.whl |
|---|---|
| Size | 166.0 kB |
| Tags | CPython 3.10 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ba01ba8c3e1801dc3262e097c7337cc277f40e53dae084611b70d990b953877b
|
|
BLAKE2b-256 checksum How to use checksums |
21c296280b3d404c3a123a661e80027700fe6b365e8c4cc56985da67fe63826e
|
| 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 2, 2026.
Transparency logSecurity for philtorch 0.6.0
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.
Attestation for philtorch-0.6.0.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 2, 2026.
Transparency logA 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.