Skip to main content

pixtreme: A High-Performance Graphics Library with CUDA Support

Project description

pixtreme

pixtreme is a high-performance image processing library for Python, leveraging CuPy and CUDA for GPU-accelerated computations, enabling real-time video processing with advanced features.

Features

  • GPU-Accelerated Processing: Optimized with CuPy's CUDA RawKernel for extremely fast video analysis
  • Comprehensive Color Space Support: BGR, RGB, HSV, YCbCr, YUV (4:2:0, 4:2:2), ACES color spaces
  • Advanced Image Transforms: Affine transformation, resize with 11 interpolation methods
  • Super Resolution: Multiple backend support (ONNX, PyTorch, TensorRT)
  • 3D LUT Processing: Trilinear and tetrahedral interpolation with both CuPy and NumPy implementations
  • Professional Color Management: ACES color space transformations for film/VFX workflows
  • Flexible Data Type Support: Seamless conversion between uint8, uint16, float16, and float32
  • DLPack Integration: Zero-copy tensor sharing between frameworks

Requirements

  • Python >= 3.10

  • CUDA Toolkit 12.x

  • System dependencies:

    basicsr-fixed >= 1.4.2
    cupy-cuda12x >= 13.4.1
    numpy >= 2.2.6
    nvidia-nvimgcodec-cu12-stubs >= 0.5.0.13
    nvidia-nvimgcodec-cu12[all] >= 0.5.0.13
    onnx >= 1.18.0
    onnxconverter-common >= 1.13.0
    onnxruntime-gpu >= 1.22.0
    openexr >= 3.3.3
    spandrel >= 0.4.1
    spandrel_extra_arches >= 0.2.0
    tensorrt >= 10.11.0.33
    tensorrt_stubs >= 10.11.0.33
    torch >= 2.4
    torchvision >= 0.19
    
  • Optional dependencies for OpenCV:

    opencv-python >= 4.11.0.86
    
  • Optional dependencies for OpenCV Contrib:

    opencv-contrib-python >= 4.11.0.86
    

Installation

Standard Installation

pip install pixtreme[opencv]

OpenCV Contrib Installation

pip install pixtreme[opencv-contrib]

Development Installation

git clone https://github.com/minamikik/pixtreme.git
cd pixtreme

curl -LsSf https://astral.sh/uv/install.sh | sh
uv python pin 3.12  # supports 3.10 - 3.13
uv sync --extra dev --extra opencv

API Reference

pixtreme

  • get_device_id() -> int - Get current CUDA device ID
  • get_device_count() -> int - Get number of available CUDA devices
  • Device - CUDA device context manager

pixtreme.color

  • bgr_to_rgb(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert BGR to RGB
  • rgb_to_bgr(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert RGB to BGR
  • bgr_to_grayscale(image: cp.ndarray) -> cp.ndarray - Convert BGR to grayscale
  • rgb_to_grayscale(image: cp.ndarray) -> cp.ndarray - Convert RGB to grayscale using Rec.709 coefficients
  • bgr_to_hsv(image: cp.ndarray) -> cp.ndarray - Convert BGR to HSV
  • hsv_to_bgr(image: cp.ndarray) -> cp.ndarray - Convert HSV to BGR
  • rgb_to_hsv(image: cp.ndarray) -> cp.ndarray - Convert RGB to HSV
  • hsv_to_rgb(image: cp.ndarray) -> cp.ndarray - Convert HSV to RGB
  • bgr_to_ycbcr(image: cp.ndarray) -> cp.ndarray - Convert BGR to YCbCr (10-bit precision, Full Range)
  • rgb_to_ycbcr(image: cp.ndarray) -> cp.ndarray - Convert RGB to YCbCr (10-bit precision, Full Range)
  • ycbcr_to_bgr(image: cp.ndarray) -> cp.ndarray - Convert YCbCr to BGR (10-bit precision, Full Range)
  • ycbcr_to_rgb(image: cp.ndarray) -> cp.ndarray - Convert YCbCr to RGB (10-bit precision, Full Range)
  • ycbcr_full_to_legal(image: cp.ndarray) -> cp.ndarray - Convert Full Range YCbCr to Legal Range YCbCr
  • ycbcr_legal_to_full(image: cp.ndarray) -> cp.ndarray - Convert Legal Range YCbCr to Full Range YCbCr
  • ycbcr_to_grayscale(image: cp.ndarray) -> cp.ndarray - Extract Y channel as grayscale
  • yuv420p_to_ycbcr444(yuv420_data: cp.ndarray, width: int, height: int, interpolation: int = 1) -> cp.ndarray - Convert YUV 4:2:0 planar to YCbCr 4:4:4
  • yuv422p10le_to_ycbcr444(ycbcr422_data: cp.ndarray, width: int, height: int) -> cp.ndarray - Convert 10-bit YUV 4:2:2 to YCbCr 4:4:4
  • uyvy422_to_ycbcr444(uyvy_data: cp.ndarray, height: int, width: int) -> cp.ndarray - Convert UYVY 4:2:2 packed format
  • ndi_uyvy422_to_ycbcr444(uyvy_data: cp.ndarray) -> cp.ndarray - NDI-specific UYVY conversion
  • aces2065_1_to_acescct(image: cp.ndarray) -> cp.ndarray - ACES2065-1 to ACEScct (log encoding)
  • aces2065_1_to_acescg(image: cp.ndarray) -> cp.ndarray - ACES2065-1 to ACEScg (linear)
  • aces2065_1_to_rec709(image: cp.ndarray) -> cp.ndarray - ACES2065-1 to Rec.709
  • acescct_to_aces2065_1(image: cp.ndarray) -> cp.ndarray - ACEScct to ACES2065-1
  • acescg_to_aces2065_1(image: cp.ndarray) -> cp.ndarray - ACEScg to ACES2065-1
  • rec709_to_aces2065_1(image: cp.ndarray) -> cp.ndarray - Rec.709 to ACES2065-1
  • read_lut(file_path: str, use_cache: bool = True, cache_dir: str = "cache") -> cp.ndarray - Read .cube format 3D LUT files
  • apply_lut(frame_rgb: cp.ndarray, lut: cp.ndarray, interpolation: int = 0) -> cp.ndarray - Apply 3D LUT with interpolation
    • interpolation=0: Trilinear interpolation
    • interpolation=1: Tetrahedral interpolation

pixtreme.draw

  • circle(image: cp.ndarray, center: tuple[int, int], radius: int, color: tuple[int, int, int], thickness: int = 1) -> cp.ndarray - Draw a circle on the image
  • rectangle(image: cp.ndarray, top_left: tuple[int, int], bottom_right: tuple[int, int], color: tuple[int, int, int], thickness: int = 1) -> cp.ndarray - Draw a rectangle on the image
  • add_label(image: cp.ndarray, text: str, position: tuple[int, int], color: tuple[int, int, int] = (255, 255, 255), font_scale: float = 1.0, thickness: int = 2) -> cp.ndarray - Add a label to the image
  • put_text(image: cp.ndarray, text: str, position: tuple[int, int], color: tuple[int, int, int] = (255, 255, 255), font_scale: float = 1.0, thickness: int = 2) -> cp.ndarray - Put text on the image

pixtreme.filter

  • GaussianBlur - Gaussian blur filter class
  • gaussian_blur(image: cp.ndarray, kernel_size: int, sigma: float, kernel: cp.ndarray | None = None) -> cp.ndarray - Apply Gaussian blur

pixtreme.io

  • imread(input_path: str, is_rgb: bool = False, is_nvimgcodec: bool = False) -> cp.ndarray - Read image file to GPU memory
  • imwrite(output_path: str, image: cp.ndarray | np.ndarray, param: int = -1, is_rgb: bool = False) -> None - Write GPU image to file
  • imshow(title: str, image: np.ndarray | cp.ndarray | nvimgcodec.Image, scale: float = 1.0, is_rgb: bool = False) -> None - Display GPU image
  • waitkey(delay: int) -> int - Wait for keyboard input
  • destroy_all_windows() -> None - Close all OpenCV windows

pixtreme.transform

  • resize(src: cp.ndarray | list[cp.ndarray], dsize: tuple[int, int] | None = None, fx: float | None = None, fy: float | None = None, interpolation: int = INTER_AUTO) -> cp.ndarray | list[cp.ndarray]
    • Interpolation constants:
      • INTER_NEAREST (0) - Nearest neighbor
      • INTER_LINEAR (1) - Bilinear interpolation
      • INTER_CUBIC (2) - Bicubic interpolation
      • INTER_AREA (3) - Area-based resampling
      • INTER_LANCZOS4 (4) - Lanczos interpolation over 8x8 neighborhood
      • INTER_AUTO (5) - Auto-select based on image size
      • INTER_MITCHELL (6) - Mitchell-Netravali cubic filter
      • INTER_B_SPLINE (7) - B-spline interpolation
      • INTER_CATMULL_ROM (8) - Catmull-Rom spline
      • INTER_LANCZOS2 (9) - Lanczos over 4x4 neighborhood
      • INTER_LANCZOS3 (10) - Lanczos over 6x6 neighborhood
  • affine_transform(src: cp.ndarray, M: cp.ndarray, dsize: tuple, flags: int = INTER_AUTO) -> cp.ndarray - Apply affine transformation
  • get_inverse_matrix(M: cp.ndarray) -> cp.ndarray - Calculate inverse transformation matrix
  • crop_from_kps(image: cp.ndarray, kps: cp.ndarray, size: int = 512) -> tuple[cp.ndarray, cp.ndarray] - Crop image based on keypoints
  • erode(image: cp.ndarray, kernel_size: int, kernel: cp.ndarray | None = None, border_value: float = 0.0) -> cp.ndarray - Morphological erosion

pixtreme.upscale

  • OnnxUpscaler - ONNX Runtime-based upscaling
    • Constructor: OnnxUpscaler(model_path: str | None = None, model_bytes: bytes | None = None, device_id: int = 0, provider_options: list | None = None)
  • TorchUpscaler - PyTorch-based upscaling
    • Constructor: TorchUpscaler(model_path: str | None = None, model_bytes: bytes | None = None, device: str = "cuda")
  • TrtUpscaler - TensorRT-optimized upscaling
    • Constructor: TrtUpscaler(model_path: str | None = None, model_bytes: bytes | None = None, device_id: int = 0)
  • check_torch_model(model_path: str) -> bool - Check if a model is a valid PyTorch model
  • check_onnx_model(model_path: str) -> bool - Check if a model is a valid ONNX model
  • torch_to_onnx(model_path: str, onnx_path: str, input_shape: tuple = (1, 3, 1080, 1920), opset_version: int = 20, precision: str = "fp32", dynamic_axes: dict | None = None, device: str = "cuda") - Convert PyTorch models to ONNX
  • onnx_to_trt_dynamic_shape(onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1024 << 20) - Convert ONNX models to TensorRT with dynamic shape support
  • onnx_to_trt_fixed_shape(onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1024 << 20, input_shape: tuple = (1, 3, 1080, 1920)) - Convert ONNX models to TensorRT with fixed shape support
  • onnx_to_trt(onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1024 << 20) - Convert ONNX models to TensorRT

pixtreme.utils

  • to_uint8(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert to 8-bit unsigned integer
  • to_uint16(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert to 16-bit unsigned integer
  • to_float16(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert to 16-bit float
  • to_float32(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert to 32-bit float
  • to_float64(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray - Convert to 64-bit float
  • to_dtype(image: np.ndarray | cp.ndarray, dtype: str) -> np.ndarray | cp.ndarray - Convert to specified dtype
  • guess_image_layout(image: np.ndarray | cp.ndarray) -> str - Infer image layout (e.g., "HW", "HWC", "CHW", "NHWC", "NCHW", "ambiguous", "unsupported")
  • images_to_batch(images: cp.ndarray | list[cp.ndarray], size: int | tuple[int, int] | None = None, scalefactor: float | None = None, mean: float | tuple[float, float, float] | None = None, swap_rb: bool = True, layout: Layout = "HWC") -> cp.ndarray - Convert to batch format for neural networks
  • image_to_batch(image: cp.ndarray, size: int | tuple[int, int] | None = None, scalefactor: float | None = None, mean: float | tuple[float, float, float] | None = None, swap_rb: bool = True, layout: Layout = "HWC") -> cp.ndarray - Convert single image to batch format
  • image_to_batch_pixelshift(image: cp.ndarray, dim: int = 4, scalefactor: float | None = None, size: int | tuple[int, int] | None = None, swap_rb: bool = True, layout: Layout = "HWC") -> cp.ndarray - Convert image to batch format with pixel shift
  • batch_to_images(batch: cp.ndarray, swap_rb: bool = True, layout: Layout = "NCHW") -> list[cp.ndarray] - Convert batch format back to images
  • to_cupy(image: np.ndarray | torch.Tensor | nvimgcodec.Image) -> cp.ndarray - Convert various formats to CuPy array
  • to_numpy(image: cp.ndarray | torch.Tensor | nvimgcodec.Image) -> np.ndarray - Convert to NumPy array
  • to_tensor(image: np.ndarray | cp.ndarray | nvimgcodec.Image, device: str | torch.device | None = None) -> torch.Tensor - Convert to PyTorch tensor (requires PyTorch)

Usage Examples

Basic Image Processing

import cupy as cp
import pixtreme as px

# Read and convert image
frame_bgr = px.imread("image.jpg")
frame_bgr = px.to_float32(frame_bgr)
frame_rgb = px.bgr_to_rgb(frame_bgr)

# Color space conversions
frame_ycbcr = px.rgb_to_ycbcr(frame_rgb)
frame_hsv = px.rgb_to_hsv(frame_rgb)

# Advanced resize with Mitchell filter
frame_resized = px.resize(frame_rgb, (1920, 1080), interpolation=px.INTER_MITCHELL)

# Apply Gaussian blur
frame_blurred = px.gaussian_blur(frame_resized, 15, 5.0)

# Convert back and save
frame_bgr_out = px.rgb_to_bgr(frame_blurred)
frame_bgr_out = px.to_uint8(frame_bgr_out)
px.imwrite("output.jpg", frame_bgr_out)

Face Processing

import pixtreme as px

# Initialize face processing
detector = px.FaceDetection(model_path="models/detection.onnx")
embedder = px.FaceEmbedding(model_path="models/embedding.onnx")
swapper = px.FaceSwap(model_path="models/swap.onnx")

# Process faces
image = px.imread("portrait.jpg")
faces = detector.get(image)

for face in faces:
    embeddings = embedder.get(face)


    swapped = swapper.get(target_face, source_face)

Super Resolution

import pixtreme as px

# ONNX upscaling
upscaler = px.OnnxUpscaler(model_path="models/esrgan.onnx")
image_hr = upscaler.upscale(image_lr)

# TensorRT optimized upscaling
trt_upscaler = px.TrtUpscaler(model_path="models/esrgan.trt")
image_hr_fast = trt_upscaler.upscale(image_lr)

Professional Color Grading with ACES

import pixtreme as px

# Load image in Rec.709
image = px.imread("footage.png")
image = px.to_float32(image)

# Convert to ACES color space
image_aces = px.rec709_to_aces2065_1(image)

# Work in ACEScg (linear)
image_acescg = px.aces2065_1_to_acescg(image_aces)

# Apply color grading...

# Convert back to Rec.709
image_graded = px.acescg_to_aces2065_1(image_acescg)
image_final = px.aces2065_1_to_rec709(image_graded)

3D LUT Application

import pixtreme as px

# Load LUT
lut = px.read_lut("color_grade.cube")

# Apply with tetrahedral interpolation
image_graded = px.apply_lut(image_rgb, lut, interpolation=1)

Multi-GPU Processing

import pixtreme as px

# Process on specific GPU
with px.Device(1):
    image = px.imread("large_image.jpg")
    processed = px.resize(image, (4096, 2160))
    
# Get device info
device_count = px.get_device_count()
current_device = px.get_device_id()

Performance Notes

  • All color conversion operations use optimized CUDA kernels
  • Supports both legal range (16-235) and full range (0-255) for video processing
  • 10-bit precision support for professional video workflows
  • Zero-copy tensor sharing via DLPack for framework interoperability
  • Batch processing support for multiple images

License

pixtreme is distributed under the MIT License (see LICENSE).

Included Components

Authors

minamik (@minamikik)

Acknowledgments

sync.dev

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pixtreme-0.2.7.tar.gz (10.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pixtreme-0.2.7-cp313-cp313-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.13Windows x86-64

pixtreme-0.2.7-cp313-cp313-musllinux_1_2_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pixtreme-0.2.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pixtreme-0.2.7-cp312-cp312-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.12Windows x86-64

pixtreme-0.2.7-cp312-cp312-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pixtreme-0.2.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pixtreme-0.2.7-cp311-cp311-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.11Windows x86-64

pixtreme-0.2.7-cp311-cp311-musllinux_1_2_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pixtreme-0.2.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pixtreme-0.2.7-cp310-cp310-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.10Windows x86-64

pixtreme-0.2.7-cp310-cp310-musllinux_1_2_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pixtreme-0.2.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pixtreme-0.2.7.tar.gz.

File metadata

  • Download URL: pixtreme-0.2.7.tar.gz
  • Upload date:
  • Size: 10.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.2.7.tar.gz
Algorithm Hash digest
SHA256 306e8c2889fa1328e88372a56a7652af82b21c09421151f70482120c2bc7eee8
MD5 eaa051e7f8f8913fc013ce37e54bad1d
BLAKE2b-256 67e14c5958e6cf10c0378ae7b775b4f96bd56a46d7117e3bf06ee8df6955045e

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.2.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.2.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 64038ae1a5d00d78a177a7a79125ecf89cc97def187aac17a20d69cdedc39cd6
MD5 907363dbad895fad42b88b0fc083b567
BLAKE2b-256 0393ae88552197465d9b97fa067f8d6c711c0ad7d1503cb1b629e5444df8dcde

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.2.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d9bbf170fe5950f201766a99ec84d46bc2723c501da5f33414b3baf790dea350
MD5 4a4e91eb83b1b995cd909266ed64371c
BLAKE2b-256 837f7d549e61ba08014988de846539e07ea6975da3435bfa5e68c9d0953b003f

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.2.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3b803fca81b0af0b7c1fe83b3be8dbfad264961a6b8439dd5023bb84f66654b5
MD5 87e0c6b2ec6e4d9a01c5fe9cd43d7b69
BLAKE2b-256 cf6942ea149e010cf82c2fa8eeddde34e1ed76a3e73e3c8a291cbc05fa388791

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.2.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.2.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2c5f8df7941c83e07e8323de4172df9ec91acda3c7f1c1c80a62913540ec103b
MD5 21f40049e58a141c87b8af13def15d64
BLAKE2b-256 31fceae6bc4e6a8f1f734b3cee2c9a1a1ca53ef72980f07a1e3c7460c1efa283

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.2.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 32d1fc7f311519533eae605d4f16e0a81e50e4c71c8d5522da7c511f8bccedf9
MD5 a1e794864303b63e729f9034634261c1
BLAKE2b-256 b22b36a3dc3afc7b54d04731bd054a8de243a87c2691e40744ed88ef66ad5b6e

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.2.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 86e1c9b760b537f998fb6b1f917752fc87a07e84ce33e2e428f1d0cf74616640
MD5 f1854e6fcd35615495b4166ac7a56416
BLAKE2b-256 cf09c036057c1cd460a6e048c664059e6b310d8133884cab4fce44ff89683f74

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.2.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.2.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 47866b29b061766f756260fdfa23d3d2fbd56749c53008673867fcecc4f369a4
MD5 43bba149b04286904faf346e5c192aac
BLAKE2b-256 4e884fd9f466a919741319e3510c0c4f86b7368df1cf34be9028be95c0bead2c

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.2.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1b7e3d303b224a06c53333788c2b74a262c477a18a7ae42956126e3b093aa915
MD5 a791486e9bb0a27e05c923fdb8160070
BLAKE2b-256 a6763453aba57bab26b409b042f70d52acaa498e1dbfa32e79bcd1a125aa109e

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.2.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a9c8c89082efb8d9532b27bac5d69098cde9240201c8086293e8b749e7621e8
MD5 ccf8f219204c418a9d9e6a425ea010c4
BLAKE2b-256 9b4ac3507e23f67d50a2c0a1e1c9af560fecea9c77010efac91979b97c963ff1

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.2.7-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.2.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 162ed0e463b39ed2277baa64c308237c4d8691749e242be1215275435f0df989
MD5 6a33a41db610a90561c337f31d4e2870
BLAKE2b-256 0d666baadfaba9a4d59faba737cdfb16a5f82bc73326dd0c8465cc588cf09bee

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.2.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 63af9fa2bf68ada9c7ec76b97a831c2f707ef36aa39ef3c45bcd6b230dec3808
MD5 32cb1793c7d6de2b413890174a1832ce
BLAKE2b-256 62d5fc7824f100c83e4737b623ed7ecd87d4fec3d69c253797a19f1cf67ced4b

See more details on using hashes here.

File details

Details for the file pixtreme-0.2.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.2.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2c3464263e2bb33a78f306d184f3019bdb73a0f06345407f55c5e62f7de7c7e4
MD5 d898b1b0a151ad038b0ba875c546b922
BLAKE2b-256 bd2ae9588c96164a410ec5494d18e74db5afd832d6a28ac9128f0da1d7f32afb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page