Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pelutils

Ruff basedpyright checks Coverage Status PyPi Python versions image readthedocs

The Swiss army knife of Python projects

Every project, experiment, or one-off script inevitably ends up reinventing much of the same plumbing: some way to time a loop, saving and loading data to and from disk in a convenient and human-readable manner, a decent logger, parsing a config file, a readable table. pelutils bundles the good versions of these so you can get straight to the actual work. It has no required dependencies beyond the scientific-Python staples, ships type hints (including py.typed), and is easy to start using.

📖 Full documentation: pelutils.readthedocs.io

Highlights

  • Logger — easy-to-use, colourful console output, log files with rotation, automatic stacktrace capture, and safe logging from multiple processes.
  • Timer & profiler — a Matlab-style tick/tock timer and a near-zero-overhead profiler that prints a readable breakdown of where your time goes.
  • UniversalJsonModel — a pydantic.BaseModel that can save any attribute to a human-readable JSON file (numpy arrays, tensors, and other unserialisable types are pickled transparently) and load it straight back.
  • JobParser — one parser that unifies command-line arguments and config files, with support for running many jobs from a single config and auto-documenting them.
  • unique — a linear-time drop-in for numpy.unique, dramatically faster on large arrays (backed by a small C extension).
  • Data-science helpers — a matplotlib Figure context manager with improved default settings over matplotlib, histogram binning, reparametrised scipy distributions, z_score, LaTeX-ready tables, and numpy type aliases.

Installation

pip install pelutils

pelutils supports Python 3.11+. A small subset of functionality can additionally make use of PyTorch, which must be installed separately.

Importing: every feature lives in its own submodule and must be imported from there — e.g. from pelutils.logging import log. Only __version__ is exported at the top level. See the docs for the full API.

Coding agents

The documentation is published in a form suited for coding agents: llms.txt is a short index of what pelutils offers, and llms-full.txt contains the usage guide and public API in one file. To make sure agents working in your project reach for pelutils instead of rewriting its functionality, add something like this to your AGENTS.md or CLAUDE.md:

This project uses `pelutils` (logging, timing and profiling, JSON serialization, config
parsing, fast `unique`, plotting, stats, tables). Before writing a utility, check
https://pelutils.readthedocs.io/en/stable/llms.txt to see if it already exists.

Logging

Python's built-in logging is powerful but fiddly to set up, and a bare print gives you no importance levels, no timestamps, and nothing on disk to look at afterwards. This logger hits the sweet spot: one configure call and you get colour-coded, timestamped output to both the console and a log file, with severity levels, log rotation, one-line exception logging, and multiprocessing-safe collection.

from pelutils.logging import log, LogLevels

# Set up the logger by giving it the file to write to
# Omit the path to only print, never write a file
log.configure("train.log")

# If an exeption occurs anywhere in the code inside `log.log_errors`, it is logged with its full, chained stacktrace, then re-raised
with log.log_errors:
    log.section("Training run")  # Highlighted section header
    log(f"Loaded {len(dataset):,} samples")  # Logs at INFO level
    for epoch in range(epochs):
        loss = train_one_epoch()
        log.debug(f"Epoch {epoch}: loss {loss:.4f}")  # Logs at DEBUG level - by default, only saved to the log file, but not printed to the console
        if loss > 1e3:
            log.warning("Loss is diverging")  # Logs at WARNING level
    log.debug("Final weights", model.state_dict().keys())

    save_checkpoint(model)

# Temporarily change or silence the log level
with log.level(LogLevels.ERROR):
    log.warning("Suppressed")

# Rotate the log file by time or size
log.configure("train.log", rotation="day")    # or "1 GB", "hour", ...

When using multiprocessing, wrap a worker in with log.collect(): so its lines are written together instead of interleaving with other processes. See the logging docs for input helpers, multiple loggers, and more.

Timing and profiling

When you want to know where a script spends its time, cProfile gives you a wall of function-level numbers, and manual time.perf_counter() calls quickly turn into bookkeeping. TickTock sits in between: wrap the sections you care about in named, nestable context managers and print a readable table of totals, hit counts, averages, and each section's share of its parent's time. The per-profile overhead is tiny, so it happily lives inside hot loops and long-running jobs.

from pelutils.ticktock import TT

# Time a single block, Matlab style
TT.tick()
model = train_model(data)
print(f"Training took {TT.tock():.1f} s")

# Profile named sections across a loop, nesting them however you like
for image in images:
    with TT.profile("Process image"):
        with TT.profile("Load"):
            img = load(image)
        with TT.profile("Resize"):
            img = resize(img, (224, 224))
        with TT.profile("Inference"):
            predict(model, img)

# Profile loop-body work element by element without manual context managers
for image in TT.profile_loop("Process image", images):
    process(image)

# Or profile the time spent fetching elements from a lazy iterator
for batch in TT.profile_next("Load batch", iter(dataloader)):
    train_on(batch)

# Print a table of hits, total time, and average time for each section
print(TT)

with TT.profile("name", hits=n): records n hits at once, which is handy for very tight loops or for a block that processes n items in parallel. TT.do_at_interval(...) turns the same instance into a throttle for periodic tasks. The default TT is a shared instance that is safe to profile with from multiple threads and asyncio tasks; construct your own with TickTock() when you need isolation.

Serialisation

UniversalJsonModel is for storing Pydantic models that contain a mixture of ordinary JSON values and Python-specific values. Ordinary values remain JSON, so the file structure can be inspected and diffed. Values that JSON cannot represent, such as NumPy arrays, tensors, and other Python objects, are stored as base64-encoded pickle payloads.

The save() and load() methods support convient file-based workflows. save() serialises the model to a JSON file, while load() reconstructs the model from one. Use to_json_dict() and from_json_dict(...) when the serialized representation belongs inside another structure or is handled by another storage layer.

import numpy as np
from pydantic import BaseModel
from pelutils.serialization import UniversalJsonModel
from pelutils.types import FloatArray

class Nested(BaseModel):
    label: str

class Result(UniversalJsonModel):
    accuracy: float
    predictions: FloatArray   # numpy arrays are handled automatically
    meta: Nested

result = Result(
    accuracy=0.97,
    predictions=np.arange(5, dtype=np.float16),
    meta=Nested(label="run-1"),
)

result.save("results/run-1.json")
result = Result.load("results/run-1.json")

pretty_json is a string-returning formatter for standalone dictionaries and lists. It fills the same role as json.dumps, with compact nested containers and wrapped primitive lists; write the returned string to a file when needed. The module also includes JSONL read/write helpers (jsonl_dump, jsonl_load, ...) for newline-delimited records.

This format is intended for trusted configuration objects, application state, experiment results, etc., not as a language-neutral interchange format. Pickle payloads are Python-specific and loading them can execute arbitrary code. Do not load files from untrusted sources.

Config and command-line argument parsing

JobParser combines typed command-line options with INI config files. CLI values override config values, which override defaults. Declare RequiredArg for values every job must provide, OptionalArg for values with defaults, and Flag for booleans. Names are --kebab-case on the command line and snake_case attributes on the resulting job.

from pathlib import Path
from pelutils.job_parser import Flag, JobParser, OptionalArg, RequiredArg

parser = JobParser(
    RequiredArg("data-path", help="Training data directory"),
    OptionalArg("learning-rate", default=1e-4, type=float, help="Optimizer learning rate"),
    Flag("fp16", help="Use mixed precision"),
    multiple_jobs=True,
)

for job in parser.parse_jobs():
    print(job.name, job.data_path, job.learning_rate, job.fp16)
    job.write_documentation(Path("runs") / job.name / "arguments.ini")
    # ... run your application with the resolved job values

A single config file can define several named jobs (with a shared [DEFAULT] section), and one CLI override applies to all of them:

python main.py --config-file config.ini --learning-rate 5e-5

For a single job, drop multiple_jobs=True and call parse_job() instead. A config path can target one section directly, e.g. --config-file config.ini:low-lr. See the job parser docs for auto-documentation details.

To get fully typed jobs and Pydantic validation, declare the arguments as a ArgparseModel instead. Parsing returns instances of your class, and config files and overrides work the same way:

from pathlib import Path
from pydantic import Field
from pelutils.job_parser import ArgparseModel

class TrainJob(ArgparseModel):
    """Train a model."""

    data_path: Path = Field(description="Training data directory")
    learning_rate: float = Field(1e-4, gt=0, description="Optimizer learning rate")
    fp16: bool = False

for job in TrainJob.parse_jobs():  # Or TrainJob.parse_job() for a single job
    print(job.name, job.data_path, job.learning_rate, job.fp16)

Fast unique

A linear-time alternative to numpy.unique, significantly faster on large arrays. Unlike with np.unique, the returned elements are unsorted.

import numpy as np
from pelutils.array import unique

x = np.random.randint(0, 100, size=10_000_000)
values = unique(x)
values, index, inverse, counts = unique(
    x, return_index=True, return_inverse=True, return_counts=True,
)
values, groups = unique([1, 2, 3, 1], return_groups=True)  # groups[0] is array([0, 3])

Large arrays use multiple threads, limited by the n_threads argument, or else the available CPUs up to 8.

Data science

Statistics

Common statistical helpers, plus wrappers around SciPy distributions reparametrised as in Jim Pitman's Probability (rather than SciPy's loc/scale, which are unintuitive for many distributions).

from pelutils.stats import expon
from pelutils.stats import z_score

# 95 % confidence interval half-width for a standard normal
half_width = z_score()  # standard deviation is 1

# Upper 1 % critical value for an Exponential(lambda=2)
zval = z_score(alpha=0.01, two_sided=False, distribution=expon(lambda_=2))

Plotting

The Figure context manager fixes common matplotlib annoyances — sensible default figure and font sizes, easy styling — and saves and closes the figure for you while restoring rcParams afterwards.

import matplotlib.pyplot as plt
from pelutils.plots import Figure, histogram, normal_binning

with Figure("plot.png", figsize=(20, 10), fontsize=20):
    plt.scatter(x, y, label="Data")
    plt.grid()
    plt.title("Very nice plot")
# Saved to plot.png and closed here

# histogram returns x and y coordinates ready for unpacking
plt.plot(*histogram(data, binning_fn=normal_binning))

Three binning functions are provided — linear_binning, log_binning, and normal_binning (more resolution near the centre of roughly-normal data) — and custom binning functions are supported. See the plotting docs.

Numpy type aliases

Type aliases so you (and your type checker) do not have to track array dtypes by hand.

from pelutils.types import FloatArray, IntArray, BoolArray

def process(features: FloatArray, labels: IntArray, mask: BoolArray): ...

Also included

  • pelutils.misc.Table — build aligned text tables which can be exported to LaTeX with Table.to_latex() or Markdown with Table.to_markdown().
  • pelutils.misc.hardware_info / OS — describe the machine the code runs on.
  • pelutils.misc.git_repo_info — the repo and commit the code is executing in.
  • Assorted file and dict helpers (reverse_line_iterator, except_keys, ...).
  • pelutils.tests — pytest helpers: a UnitTestCollection base class with a managed temp directory, and a restore_argv decorator.

Supported platforms

Precompiled wheels are provided for most common platforms. If no wheel matches, pip builds from source which requires <Python.h> — install it with sudo apt install python3-dev (Ubuntu) or sudo dnf install python3-devel (Fedora).

32-bit systems are not fully supported. Most of the library is Python-only and should work but using any C-dependent code (namely unique and SparseGridBlobDetection) is likely to end in a segfault.

Development

Use uv for dependency management, builds, and running development tools. Install uv, then from the repository root sync the development environment (a C compiler and Python headers are required to build the native extension):

uv sync --python 3.11 --group dev

The dev dependency group includes CPU-only PyTorch and documentation tools.

Run checks and tools through uv run:

# Linting and formatting
uv run --python 3.11 ruff format pelutils tests
uv run --python 3.11 ruff check pelutils tests
# Type checking
uv run --python 3.11 basedpyright pelutils
# Unit tests
uv run --python 3.11 pytest tests --cov pelutils
# Build docs
uv run --python 3.11 make -C docs html
# Preview at docs/build/html/index.html

After changing C sources, rebuild the extension with uv sync --python 3.11 --group dev --reinstall-package pelutils.

The wheel-build CI tests each built wheel in a cibuildwheel environment provisioned from the locked dev group with uv; pytest runs against the installed wheel. Read the Docs also syncs that group through uv.

Updating and releasing

pelutils uses the master branch as a stable development branch. The release branch contains the latest version on PyPI. New features should be made in feature branches from master that can be merged into master once ready. When a new release is ready, update pyproject.toml and rebase master onto release. Then push a new tag from release named vX.Y.Z.

When new code is merged into master, the checks listed above are run. To build distribution artifacts locally, use uv build --python 3.11.

Metadata

Release files for pelutils 4.6.0a1

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

Source distribution (sdist)

Source distribution for pelutils 4.6.0a1
File Size Uploaded Provenance Actions
pelutils-4.6.0a1.tar.gz 89.2 kB Without provenance Details for pelutils-4.6.0a1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pelutils 4.6.0a1
File Actions
pelutils-4.6.0a1-cp315-cp315t-win_arm64.whl CPython 3.15 CPython 3.15 free-threading Windows ARM64 Details for pelutils-4.6.0a1-cp315-cp315t-win_arm64.whl
pelutils-4.6.0a1-cp315-cp315t-win_amd64.whl CPython 3.15 CPython 3.15 free-threading Windows x86-64 Details for pelutils-4.6.0a1-cp315-cp315t-win_amd64.whl
pelutils-4.6.0a1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for pelutils-4.6.0a1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pelutils-4.6.0a1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details for pelutils-4.6.0a1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
pelutils-4.6.0a1-cp315-cp315t-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64 Details for pelutils-4.6.0a1-cp315-cp315t-macosx_11_0_arm64.whl
pelutils-4.6.0a1-cp315-cp315-win_arm64.whl CPython 3.15 CPython 3.15 Windows ARM64 Details for pelutils-4.6.0a1-cp315-cp315-win_arm64.whl
pelutils-4.6.0a1-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details for pelutils-4.6.0a1-cp315-cp315-win_amd64.whl
pelutils-4.6.0a1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for pelutils-4.6.0a1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pelutils-4.6.0a1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details for pelutils-4.6.0a1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
pelutils-4.6.0a1-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details for pelutils-4.6.0a1-cp315-cp315-macosx_11_0_arm64.whl
pelutils-4.6.0a1-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details for pelutils-4.6.0a1-cp314-cp314t-win_arm64.whl
pelutils-4.6.0a1-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for pelutils-4.6.0a1-cp314-cp314t-win_amd64.whl
pelutils-4.6.0a1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for pelutils-4.6.0a1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pelutils-4.6.0a1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details for pelutils-4.6.0a1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
pelutils-4.6.0a1-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details for pelutils-4.6.0a1-cp314-cp314t-macosx_11_0_arm64.whl
pelutils-4.6.0a1-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details for pelutils-4.6.0a1-cp314-cp314-win_arm64.whl
pelutils-4.6.0a1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for pelutils-4.6.0a1-cp314-cp314-win_amd64.whl
pelutils-4.6.0a1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for pelutils-4.6.0a1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pelutils-4.6.0a1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details for pelutils-4.6.0a1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
pelutils-4.6.0a1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for pelutils-4.6.0a1-cp314-cp314-macosx_11_0_arm64.whl
pelutils-4.6.0a1-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details for pelutils-4.6.0a1-cp313-cp313-win_arm64.whl
pelutils-4.6.0a1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for pelutils-4.6.0a1-cp313-cp313-win_amd64.whl
pelutils-4.6.0a1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for pelutils-4.6.0a1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pelutils-4.6.0a1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details for pelutils-4.6.0a1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
pelutils-4.6.0a1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for pelutils-4.6.0a1-cp313-cp313-macosx_11_0_arm64.whl
pelutils-4.6.0a1-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details for pelutils-4.6.0a1-cp312-cp312-win_arm64.whl
pelutils-4.6.0a1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for pelutils-4.6.0a1-cp312-cp312-win_amd64.whl
pelutils-4.6.0a1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for pelutils-4.6.0a1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pelutils-4.6.0a1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for pelutils-4.6.0a1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
pelutils-4.6.0a1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for pelutils-4.6.0a1-cp312-cp312-macosx_11_0_arm64.whl
pelutils-4.6.0a1-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details for pelutils-4.6.0a1-cp311-cp311-win_arm64.whl
pelutils-4.6.0a1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for pelutils-4.6.0a1-cp311-cp311-win_amd64.whl
pelutils-4.6.0a1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for pelutils-4.6.0a1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pelutils-4.6.0a1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for pelutils-4.6.0a1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
pelutils-4.6.0a1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for pelutils-4.6.0a1-cp311-cp311-macosx_11_0_arm64.whl

Total release size: 4.7 MB

Release files / pelutils-4.6.0a1.tar.gz

Download URL pelutils-4.6.0a1.tar.gz
Size 89.2 kB
Tags Source
SHA-256 checksum
How to use checksums
23edbf0858557fd8560c5c683b42457cd1684b7dbb71e732b9d205f13507b497
BLAKE2b-256 checksum
How to use checksums
cfffbd1b36aabb7bec12f4026345ecfc29340090561ab648007691524c5c90df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp315-cp315t-win_arm64.whl

Download URL pelutils-4.6.0a1-cp315-cp315t-win_arm64.whl
Size 112.1 kB
Tags CPython 3.15 CPython 3.15 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
d184cd32bd5e3b2d0fbb46330302ac516754509db0e65a7d1d9428d7fe89a569
BLAKE2b-256 checksum
How to use checksums
36cb59503ef0e3248cb307b98c70f64fcfee461bc5f7f2833d2470ec10ddebdc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp315-cp315t-win_amd64.whl

Download URL pelutils-4.6.0a1-cp315-cp315t-win_amd64.whl
Size 112.5 kB
Tags CPython 3.15 CPython 3.15 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
931dc53df7e1d48ce49100afe09637429afa0bce30fc28a51a49ef007943c7e4
BLAKE2b-256 checksum
How to use checksums
682f0e194622f7ee0b844ebb01a295c1cd639074756c19c24aa3445ac569b668
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pelutils-4.6.0a1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 164.9 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d5f01e3501e68df51f94bfb21fca0d0d9fa48422abe72d194a62a8be85519d08
BLAKE2b-256 checksum
How to use checksums
974a430b996e67b1199eaaae9664364610181e8866d2fd90137e7f9b41d8624c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pelutils-4.6.0a1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 162.1 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
7364c789d1fe77feadc151861025f6f36b324bd51bd84dc88992871a73a87ea4
BLAKE2b-256 checksum
How to use checksums
cec8d307d3bb68be8e2714c70207a7c1e172a29f26ce9b225dbb2cd55a49c632
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp315-cp315t-macosx_11_0_arm64.whl

Download URL pelutils-4.6.0a1-cp315-cp315t-macosx_11_0_arm64.whl
Size 113.8 kB
Tags CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0b16d6b205bf09dbb128f0db65e7f3b34e8a544193b1e5b20c56cd7a35985876
BLAKE2b-256 checksum
How to use checksums
d371815fecfd76e1d87a9f7d927369ae13b162a5731d983e9d8219393554a42e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp315-cp315-win_arm64.whl

Download URL pelutils-4.6.0a1-cp315-cp315-win_arm64.whl
Size 112.0 kB
Tags CPython 3.15 Windows ARM64
SHA-256 checksum
How to use checksums
391c07c6a0e1ac897f1f507c4240246764683443c577bb864bf29a78396ad82f
BLAKE2b-256 checksum
How to use checksums
f96ad13740dd1f7e3993293d9f462b5ff8729a95e50247344a7f76698d8a7753
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp315-cp315-win_amd64.whl

Download URL pelutils-4.6.0a1-cp315-cp315-win_amd64.whl
Size 112.4 kB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
9496e9bddf0b81364dc909cb9ea9c59878d06a55c16851e43b831b37036a9450
BLAKE2b-256 checksum
How to use checksums
6783ca2df891a03cce21c4be784ed9e67d1efc06f263edc806f9dd8814b7dc5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pelutils-4.6.0a1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 164.2 kB
Tags CPython 3.15 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
44149f2bb7273a75ea43e8ef3a512d2972a907b1a5ea05f241e99fba95d7e06b
BLAKE2b-256 checksum
How to use checksums
ab847689908d3c342d247e73a5b79d051057fa94eb707de20c404f84845cb297
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pelutils-4.6.0a1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 161.5 kB
Tags CPython 3.15 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f753da2b0f33dad4670216ed0d2187344163aee000f80ace41d49c6a3528971c
BLAKE2b-256 checksum
How to use checksums
46a22b3242a3fba80ce45d0f32738791f0afdd6ab049e54234d79d8f83c02c48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp315-cp315-macosx_11_0_arm64.whl

Download URL pelutils-4.6.0a1-cp315-cp315-macosx_11_0_arm64.whl
Size 113.6 kB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c5e6cbaaa8caaf9ae348d6e328b4be95c9b449cf62573bfa86e63db3bac0c463
BLAKE2b-256 checksum
How to use checksums
c37ec2d80fecc7931614e00432b26c48b97accc02b492a5839fe7c4cf117e33f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp314-cp314t-win_arm64.whl

Download URL pelutils-4.6.0a1-cp314-cp314t-win_arm64.whl
Size 112.1 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
5caba9a225ec36713411510a8d16d6a1cb143fe0d161f59f135ea096c0ea8562
BLAKE2b-256 checksum
How to use checksums
049144204e029ba73320023a8818621c3d9cb5223d74b0895a7876df25b01d76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp314-cp314t-win_amd64.whl

Download URL pelutils-4.6.0a1-cp314-cp314t-win_amd64.whl
Size 112.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
aa57ec487b0cb9bbe1b25e5813e45cee63d26b4d7d00aa2d7abe8fe06e9da205
BLAKE2b-256 checksum
How to use checksums
07c52560268d36c58b0ae12776bfbaf54a9298884195d438bf3bebb0a2cc565e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pelutils-4.6.0a1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 164.1 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
43549692f5488319ff61ca5b4bcc21e8ae17045c92a596b12bd75aea9a83c8bb
BLAKE2b-256 checksum
How to use checksums
e79b1d67616ae9b7b7c42d7790e7dd9ecfaec787dbe94a73aa34018bb07a5a8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pelutils-4.6.0a1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 161.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ec8d2c1d46c7f8c2e20464c16a2b7e50e9cc807cfd6052bd4dfc5871fb95c3f7
BLAKE2b-256 checksum
How to use checksums
97ba709a03e31cb13c3c5840d9550d00ab1720bde0210bb328c72ea823255f3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp314-cp314t-macosx_11_0_arm64.whl

Download URL pelutils-4.6.0a1-cp314-cp314t-macosx_11_0_arm64.whl
Size 113.7 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1045eb29a7cb1fbc492b346dd68612d6c07f1b8125b9f348008a54bb4693a4eb
BLAKE2b-256 checksum
How to use checksums
272701476847ce690d7caa0e090e144f7f58cb81c75ad13da5e7b931bc9a289e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp314-cp314-win_arm64.whl

Download URL pelutils-4.6.0a1-cp314-cp314-win_arm64.whl
Size 112.0 kB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
34173809c71b5c0b748a2fd1baa9b650ee7cb18d19118b9f24c9fb9876703f69
BLAKE2b-256 checksum
How to use checksums
331f891608cfc07aaccbc1b0f0027b906ce28df0ac76970ba5fe77694c5868f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp314-cp314-win_amd64.whl

Download URL pelutils-4.6.0a1-cp314-cp314-win_amd64.whl
Size 112.4 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
3eb9cb683201013563f7ce655a2a88be658587c0852f6ad7f680eb44580e9045
BLAKE2b-256 checksum
How to use checksums
2e97f797617a537a0a6dbebc735142561c7c370503d2626e492c01133d08d05a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pelutils-4.6.0a1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 163.4 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
82ef6e91f3bb00e157a78b5619b6898a89b78181197a31dd2836f8a2090e4628
BLAKE2b-256 checksum
How to use checksums
1dbbc714d929c7724a2d409617538bb43a469f3cee16173121246dbe1b6917a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pelutils-4.6.0a1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 160.9 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e72af16e6d992347829f284864a96e0ae5a029c138d751c611a5da3ab6f4049e
BLAKE2b-256 checksum
How to use checksums
0849ec5507723f5b46688b2de865a6f442ae946be4594a59fcd22029066a95f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp314-cp314-macosx_11_0_arm64.whl

Download URL pelutils-4.6.0a1-cp314-cp314-macosx_11_0_arm64.whl
Size 113.6 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6730febeedcebe7bbeda996ae3fa79b54ae92cc98e00ddfd2aaf2b979b166f5b
BLAKE2b-256 checksum
How to use checksums
2a626015cd80d7569053d760ac14f71c1bb685985a17ac48927a8fee82620196
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp313-cp313-win_arm64.whl

Download URL pelutils-4.6.0a1-cp313-cp313-win_arm64.whl
Size 111.5 kB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
7bc431cea1259442ade9bb4a681ceb8d52bc3ba2fd0fc3a4716648b9f1456207
BLAKE2b-256 checksum
How to use checksums
84e70cb6573ea6ed457891e69ea02c75bdddad39af38a43d3f1ad04988418fb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp313-cp313-win_amd64.whl

Download URL pelutils-4.6.0a1-cp313-cp313-win_amd64.whl
Size 112.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
bf878f7572841029bb244c5d4b6286cbaf4ba4551c20f4aa5b1cf14e64aabab7
BLAKE2b-256 checksum
How to use checksums
7b9d59e9b578584a37765454c445a9339bf9e465e4c95936442828283240140b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pelutils-4.6.0a1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 163.4 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3da930763d4e9d5da96eebcabfe0f5951565b049d1bc306d9c64deef90d42f47
BLAKE2b-256 checksum
How to use checksums
db9a07d623e3710074e2a0ea4e9de7e6db9c173da07fcf7a673b68cb4c208400
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pelutils-4.6.0a1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 160.8 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fef515844a676be00eb10068a7a0f6bf8c13a6e4fbf5ed17f2a2cea7af014a51
BLAKE2b-256 checksum
How to use checksums
d31d0b8679014884a7d54656be7f9e07979d2a231e7468032627657cae9e2301
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp313-cp313-macosx_11_0_arm64.whl

Download URL pelutils-4.6.0a1-cp313-cp313-macosx_11_0_arm64.whl
Size 113.6 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
77b80f85669f07ee05dc6db9edd3ba4cab0f2b85215fa09d0f676cede548d8f8
BLAKE2b-256 checksum
How to use checksums
730d982feb7df6003e22e695bbcb4bbcda4c0198d4e23492b32506f81a1c9708
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp312-cp312-win_arm64.whl

Download URL pelutils-4.6.0a1-cp312-cp312-win_arm64.whl
Size 111.5 kB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
59f48f8121038f41fec1a6da4cf546051793d5ca670e22db95afa8163057eb8e
BLAKE2b-256 checksum
How to use checksums
0cb45c2be39c1da5dd83dbaaa0c20ee8bfef980db5718be357c1b7435ade3bcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp312-cp312-win_amd64.whl

Download URL pelutils-4.6.0a1-cp312-cp312-win_amd64.whl
Size 112.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2cf7a89cdaa30b8adf876b00d5bb1b3f7584db87adeec8af27c249511be9c0cd
BLAKE2b-256 checksum
How to use checksums
4fca0d219bb0e46684741fb6b36e96b3fbcb86535552d70d5fe3eba6cea26b0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pelutils-4.6.0a1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 163.4 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
31187281aa51c893f78cb8c6b197997b0a6e0fe9d811234c5997e34ecfd37090
BLAKE2b-256 checksum
How to use checksums
f06094587e9d915cb864eda40736867c2f965227b52dce4304973662b14d24ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pelutils-4.6.0a1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 160.8 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5a7b8f0379f46e895b264cfad6efbe880748638fb509c9efc4463ca793cbc790
BLAKE2b-256 checksum
How to use checksums
c3278cd289f0161ed253edaf7d3f4c135dd2909d3f0f0a39ca6a7a866492180e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp312-cp312-macosx_11_0_arm64.whl

Download URL pelutils-4.6.0a1-cp312-cp312-macosx_11_0_arm64.whl
Size 113.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
08a76200aede130336e5b723cf1bf188d437d9975a2452f03f65b5c7be5f257b
BLAKE2b-256 checksum
How to use checksums
3fdfc37dcf443383d6c517d38346987d16848cb95babef4eaae5683306bb41d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp311-cp311-win_arm64.whl

Download URL pelutils-4.6.0a1-cp311-cp311-win_arm64.whl
Size 111.5 kB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
3182319df5da351f3d1f484b3c01e65b94170c83db4bec939cd9006602c35606
BLAKE2b-256 checksum
How to use checksums
3cb09522daa2be2f0f883b3af6274f9acd51d730e8e2a7742536cc62a70d9d66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp311-cp311-win_amd64.whl

Download URL pelutils-4.6.0a1-cp311-cp311-win_amd64.whl
Size 112.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b9aa95f19c56b06bdd28faaeafc0af2861c96031bee73e5224d567b6f6b6570c
BLAKE2b-256 checksum
How to use checksums
827d4f8c82e366e41033ae90799ee7393bb9b5cfe8489d359f502fb4842ab30d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pelutils-4.6.0a1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 163.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
346e9c18b9779ff10c54567e5ffd80ea8db5bd86eb863a9371ab25e14a78f807
BLAKE2b-256 checksum
How to use checksums
aba39d68d1befc6e1ced9e64fe874e201a671082158b51813e89217926c5eff9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pelutils-4.6.0a1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 160.6 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2c8e0f2af7b6adfa6c970ab695ba53414cfced95db29bb0f3f60e714a40fa033
BLAKE2b-256 checksum
How to use checksums
2bed5418806963dd6fba3bf4e0a3b155cc72e5bc0ae134faaa789e6b8ae69975
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pelutils-4.6.0a1-cp311-cp311-macosx_11_0_arm64.whl

Download URL pelutils-4.6.0a1-cp311-cp311-macosx_11_0_arm64.whl
Size 113.6 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
26cff2ac3a2360eec8daccfb78dffc42783ccaf5d490df38994d7698f7fc137b
BLAKE2b-256 checksum
How to use checksums
672ae8ccafc7756dff3110be84a8dfcd1636a0ae8def7e52ff6e53379d06461e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for pelutils 4.6.0a1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

Release history Release notifications | RSS feed

This release
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