jacscanomaly
jacscanomaly is a Python package for scan-based anomaly detection in time-series light curves.
The package is designed to detect microlensing planetary anomalies by scanning residuals after fitting a single lens model (e.g., PSPL), with low-memory C++ backends for large survey light curves and JAX-based fitters for flexible model development.
Features
- Scan-based anomaly detection on residuals after single-lens fitting
- C++ survey backends for the PSPL fit and anomaly grid scan
- JAX model components for flexible single-lens and higher-order models
- Candidate quality diagnostics: effective contributing points, peak-contribution fraction, and time-correlation metrics
- Built-in visualization: PSPL fit, residuals, and anomaly scan summary
Documentation
The full documentation is available on ReadTheDocs:
https://jacscanomaly.readthedocs.io/en/latest/
Start with:
Installation
pip install jacscanomaly
Quick Example
import numpy as np
import matplotlib.pyplot as plt
from jacscanomaly import CandidateCriteria, Finder, FinderConfig
# load data (time, flux, flux_err)
data = np.load("example_data.npy")
time, flux, ferr = data[:, 0], data[:, 1], data[:, 2]
# run anomaly finder
config = FinderConfig(
fitter_kind="pspl",
candidate_criteria=CandidateCriteria(min_n_eff=2.0),
)
finder = Finder(config)
result = finder.run(time, flux, ferr)
# For magnitude data, pass mag and magerr in the same positions and select it:
# result = finder.run(time, mag, magerr, data_kind="mag")
# You can still pass an explicit initial guess if desired:
# p0 = np.array([10000, 10, 0.3])
# result = finder.run(time, flux, ferr, p0)
result.print_summary()
# In notebooks, get a one-row table:
# display(result.summary_table())
Visualization
finder.plot_result()
finder.plot_anomaly_window()
plt.show()
These commands produce two complementary visualizations:
-
Three-panel summary plot (
finder.plot_result)- Top: Observed light curve with the best-fit baseline model (PSPL)
- Middle: Residuals after baseline fitting
- Bottom: Anomaly scan result (Δχ² vs. time), showing where localized deviations from the baseline model are detected
-
Focused anomaly window plot (
finder.plot_anomaly_window)- A zoomed-in view around the best anomaly candidate
- Residuals are shown together with the anomaly template and the flat model
Example notebooks are available in example/:
template_scan_example.ipynbfor the standard bell-template scantemplate_free_example.ipynbfor the template-free residual chi-square scan
For a refined planetary residual, measure its peaks and dips directly:
features = signal.measure_features()
print(features.n_peaks, features.n_dips)
for feature in features.features:
print(feature.kind, feature.time, feature.timescale, feature.strength)
This measurement does not assign a caustic shape or estimate binary-lens parameters.
Method Overview
The workflow of jacscanomaly is:
-
First fitting Fit a single lens model (e.g. PSPL) to the full light curve.
-
Residual analysis Compute residuals:
residual = data − single_lens_model -
Local anomaly scan For each grid point
(t0, teff), compare:- a flat model
- an anomaly template model within a local time window.
-
Detection statistic The improvement is measured by:
Δχ² = χ²_flat − χ²_anomaly
Anomaly Score
To quantify how significant the best anomaly candidate is relative to others, we define a score:
score = (Δχ²_best − median(Δχ²_others)) / robust_scale(Δχ²_others)
The reference population is restricted to raw clusters from the same observing
season and a comparable teff. Candidate-quality cuts are applied only after
raw cluster extraction, so changing those cuts does not redefine the score
background. The center and scale are estimated robustly with the median and
MAD. Strong secondary candidates are removed with adaptive one-sided clipping
rather than an unconditional percentile cut.
This measures how strongly the best candidate stands out from the rest of the grid.
Since v0.4.0, the score background is local to the candidate's observing
season and timescale, with robust median/MAD normalization. Quality cuts do not
change that background, and strong secondary clusters are removed only by
adaptive one-sided clipping. In checks on four retained Roman light curves,
the selected candidate and its Δχ² were unchanged while the score changed
moderately, indicating that the normalization is less sensitive to unrelated
seasons and timescales. Existing simscan efficiency maps using score
thresholds should be recalibrated with v0.4.0 scores.
Candidate Quality Diagnostics
Large Δχ² values can sometimes be dominated by one or two points. To make this
visible, jacscanomaly stores per-candidate support diagnostics in
result.best.quality and per-grid diagnostics in result.grid_metrics_all.
For the best candidate:
q = result.best.quality
print(q.n_window) # points in the local chi2 window
print(q.n_contrib) # points above the per-point improvement threshold
print(q.n_eff) # effective number of contributing points
print(q.peak_frac) # strongest-point fraction of total positive improvement
print(q.rho1) # lag-1 autocorrelation of per-point improvements
print(q.longest_run) # longest consecutive run of contributing points
The effective point count is computed from positive per-point improvements using a participation-ratio style statistic:
n_eff = (sum_i u_i)^2 / sum_i u_i^2
where u_i = max(0, chi2_flat_i - chi2_anomaly_i). A one-point-dominated
candidate has n_eff close to 1 and a large peak_frac.
result.grid_metrics_all is a NumPy array with columns:
[t0, teff, dchi2, n_window, n_contrib, n_eff, peak_frac, rho1, longest_run]
Result Summaries
AnomalyResult provides both CLI-friendly and notebook-friendly summaries:
result.print_summary() # print formatted text
text = result.summary_text() # return formatted text
row = result.summary_dict() # return a plain dictionary
table = result.summary_table() # pandas.DataFrame when pandas is installed
print(result) also shows the formatted summary text.
Configuration
Key parameters are controlled via FinderConfig:
from jacscanomaly import CandidateCriteria, FinderConfig
config = FinderConfig(
grid_backend="cpp", # default for PSPL survey scans
single_fit_backend="cpp",
teff_init=0.03, # initial anomaly timescale
teff_grid_n=20, # number of teff grid points
sigma=3.0, # per-point improvement threshold for n_contrib
candidate_criteria=CandidateCriteria(min_n_eff=2.0),
best_score_teff_ratio=2.0,
best_score_upper_clip_sigma=5.0,
)
See FinderConfig for the full list of options.
For finite-source single-lens baselines without JAX autodiff, use the VBMicrolensing finite-difference fitters:
config = FinderConfig(
fitter_kind="fspl_vbm_fd",
grid_backend="cpp",
)
For GULLS-convention spacecraft parallax:
config = FinderConfig(
fitter_kind="fspl_space_parallax_gulls_vbm_fd",
grid_backend="cpp",
ra_deg=267.3,
dec_deg=-29.9,
tref=2461504.0,
satellite_ephemeris_path="gulls_orbit5_heliocentric.dat",
)
These fitters evaluate finite-source magnification with
VBMicrolensing.ESPLMag and optimize nonlinear parameters with SciPy
finite-difference least squares. They are useful for large CPU survey runs
where JAX FSPL autodiff overhead dominates runtime.
Example Data
The light curves used as examples in this repository are drawn from an original set of 2,371 simulated Roman light curves generated by the Roman Galactic Exoplanet Survey Project Infrastructure Team (RGES PIT), WG07 Survey Simulations and Pipeline Validation (Farzaneh Zohrabi, Matthew Penny, Macy Huston, Ali Crisp, et al).
This representative sample of 2,371 light curves was selected assuming the Cassan exoplanet mass function and consists of simulated Roman light curves of planetary microlensing events, including higher-order effects such as parallax and orbital motion.
Algorithmic Background
The anomaly scan implemented in jacscanomaly is inspired by the
systematic anomaly search methodology developed for microlensing surveys
(e.g., the KMTNet AnomalyFinder series). In particular, the approach
of scanning residual light curves over a grid of anomaly times and
durations is based on key ideas presented in:
Zang, W., Jung, Y., Yee, J., et al. (2021). Systematic KMTNet Planetary Anomaly Search, Paper I: OGLE-2019-BLG-1053Lb, A Buried Terrestrial Planet. The Astronomical Journal, 162, 163.
DOI: 10.3847/1538-3881/ac12d4 :contentReference[oaicite:3]{index=3}
This work described a semi-automated search algorithm that iteratively
scans events for localized deviations relative to a baseline model and
quantifies the significance of detected signals — an idea that is central
to the grid-scan and Δχ² evaluation in jacscanomaly.
Finite-source magnification (FSPL)
jacscanomaly provides two FSPL implementation families:
- JAX/microjax fitters:
fspl,fspl_parallax, andfspl_space_parallax. - CPU finite-difference fitters using VBMicrolensing ESPL magnification:
fspl_vbm_fdandfspl_space_parallax_gulls_vbm_fd.
Install the VBM backend dependencies with:
pip install -e ".[vbm]"
The VBM fitters keep the anomaly grid scan in the compiled C++ backend when
grid_backend="cpp" is selected.
For the JAX/microjax FSPL fitters, finite-source magnifications are computed using an external JAX-based implementation.
The original FFT-based extended-source algorithm is from: https://github.com/git-sunao/fft-extended-source
This algorithm is provided in JAX form by: https://github.com/ShotaMiyazaki94/microjax
Specifically, jacscanomaly uses the FFT disk-integration implementation
available through:
from microjax.fastlens import fspl_disk
Note:
jacscanomaly currently requires the GitHub source version of microjax.
The PyPI package microjaxx==0.1.1 may not expose
microjax.fastlens.fspl_disk.
Install microjax from source before using FSPL functionality:
git clone https://github.com/ShotaMiyazaki94/microjax.git
cd microjax
python -m pip install -e .
You can verify the installation with:
from microjax.fastlens import fspl_disk
Citation
If you use jacscanomaly in academic work, including journal articles, conference proceedings, or theses, please cite the software.
Citation metadata is provided in the citation.cff file in this repository,
which can be used directly by GitHub and reference managers.
Requirements
- Python ≥ 3.9
- numpy
- jax
- jaxopt
- matplotlib
Optional for VBM finite-difference FSPL fitters:
- scipy
- VBMicrolensing
Development
Install the package with development dependencies:
pip install -e ".[dev]"
Run the unit tests:
pytest
Run the tests with coverage:
coverage run -m pytest
coverage report
Build the Sphinx documentation locally:
sphinx-build -W -b html docs docs/_build/html
Release files for jacscanomaly 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jacscanomaly-0.5.1.tar.gz | 1.9 MB | Details |
Built distributions (wheels)
Total release size: 32.6 MB
Release files / jacscanomaly-0.5.1.tar.gz
| Download URL | jacscanomaly-0.5.1.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
78f96b071c2b4f73c6fc9ab58275abe0ef9e3ddb615678a2504b219f6e520a73
|
|
BLAKE2b-256 checksum How to use checksums |
ac73bb378d61a4cd0ccbe2add3ad24a3d0f5525aa08d63784da382106e08312f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp313-cp313-win_amd64.whl
| Download URL | jacscanomaly-0.5.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6c0d1fc5e9ab3b0137386433245a21d4c1b4e9ad4d9224f5c68149f273bbe5dd
|
|
BLAKE2b-256 checksum How to use checksums |
11acba6c3cc8812479b680513a44138ca6f12e1305d661f9ac15936755fb7fca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | jacscanomaly-0.5.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0d56e5ed287049b216d983d471728640f09207847124ce5af92ba66d132d8a5b
|
|
BLAKE2b-256 checksum How to use checksums |
6b2ba6b00e3125cd446c21c5560d20d2bc25de54262aeb834f00f1cf451d14b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | jacscanomaly-0.5.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b71dc996f5856da9e998bb23f9c294ff99102a629156f9a659ba58ad0b6e957b
|
|
BLAKE2b-256 checksum How to use checksums |
d86acf1496a8f88550bc1110cfea3c81f7101b44ae30aab381d9846881b6fbba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp312-cp312-win_amd64.whl
| Download URL | jacscanomaly-0.5.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
637db05bcddcd5efda2034f138ff7943f6e211fe527c5229bb1fb19fc5415399
|
|
BLAKE2b-256 checksum How to use checksums |
fa99e4d3c3296e9f3852222be4cbe5e1d652c7bfbe81b4ecdeb830b0fa19c6c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | jacscanomaly-0.5.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f24697ba8407b2988d2df441dbbfde000fbcb8ee653bfe8f4475b358c7ae30c2
|
|
BLAKE2b-256 checksum How to use checksums |
143061da50271902040230ae00d88de7a70cd1e4dc9c07a276cf422ac027f5c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | jacscanomaly-0.5.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1b67d18b814bf5d2d919e0141eac435951e81ab58e88b33973469ca2847df601
|
|
BLAKE2b-256 checksum How to use checksums |
4490963df4b5495e6a43a74a444f7148e4e73a77aa1958cdbb8cf27c0c9ace6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp311-cp311-win_amd64.whl
| Download URL | jacscanomaly-0.5.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a5f433a146597456bbadc5bd106f5ae62f1d843a0cfee8bc875b3050df1a3e38
|
|
BLAKE2b-256 checksum How to use checksums |
7b70388ec570e2c3dfd859d7dee11cdbef8a8362edc754d1266df0dc37bc5aeb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | jacscanomaly-0.5.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
95d293443d804443fb8d0ad4b5b6539006e888f7ed1c81d2bb2bac911793c665
|
|
BLAKE2b-256 checksum How to use checksums |
b56caef880cb738af38d65e1f42a079a55b3375cc55423cba72ba6e8b54ac3f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | jacscanomaly-0.5.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
750245838b2de8bd9db0410d747301feb0dfd8293ab6cd545e88b9fd2d911b59
|
|
BLAKE2b-256 checksum How to use checksums |
05f9b079d50e8b751fc8bba16fc8901fff6183716fb2012b455525034f3e0b3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp310-cp310-win_amd64.whl
| Download URL | jacscanomaly-0.5.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6029d9d00e7540c9a824d23a6eaa6cf2073d160fe6908203ec0eefaf16915a66
|
|
BLAKE2b-256 checksum How to use checksums |
b3f1f8c2260166b95988058463c046e8b318d8f302740c2d26e64b3d5e4ca5b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | jacscanomaly-0.5.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
035b27dcda7bee6db9293e1ed5d2a653c360a2f35aa67114e44383eb24b99c34
|
|
BLAKE2b-256 checksum How to use checksums |
9080ab716c7845b1a0de78500b0efd7f17485e1a79293b71979967c61ea45c40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | jacscanomaly-0.5.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1131cbb293e72e6c8ab1546c2847ad53cb55763ea074fe565d913c2b425682c4
|
|
BLAKE2b-256 checksum How to use checksums |
efbc9d44d1535600721fe35bf34491db478aa52fa48d779d16c0dbf0189c6fce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp39-cp39-win_amd64.whl
| Download URL | jacscanomaly-0.5.1-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e9ec95cc9e5c6e4f991a8b4c9bf5198af35b10c4be9f427e2d34130a63ac3192
|
|
BLAKE2b-256 checksum How to use checksums |
a37ce6b5fbd18b762c7ed76c7bb96c0037469939316f9a820845083cf983d99d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | jacscanomaly-0.5.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4eca004d8ab2c27ed26d770e201b975dcec467dc177e2f373fe8e0d222f24c05
|
|
BLAKE2b-256 checksum How to use checksums |
1667414b94715029e7c707b37e2a3e85eb998ca3510245933daf1af4f378f040
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency logRelease files / jacscanomaly-0.5.1-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | jacscanomaly-0.5.1-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c15f2083df796bea1175224f3544a7cdb2a025d9b3f6fee6d593bf753e5e3fd2
|
|
BLAKE2b-256 checksum How to use checksums |
87930b83ef402a42de4a99a86c08ca236c2c98bf4d70f892614c96bffe88bb09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 28, 2026.
Transparency log