Python bindings for OpenXLSX using pybind11
Project description
pyopenxlsx is a high-performance Python binding for the OpenXLSX C++ library. It aims to provide significantly faster read/write speeds compared to pure Python libraries like openpyxl, while maintaining a Pythonic API design.
Core Features
- High Performance: Powered by the modern C++17 OpenXLSX library.
- Pythonic API: Intuitive interface with properties, iterators, and context managers.
- Async Support:
async/awaitsupport for key I/O operations. - Rich Styling: comprehensive support for fonts, fills, borders, alignments, and number formats.
- Memory Safety: Combines C++ efficiency with Python's automatic memory management.
Tech Stack
| Component | Technology |
|---|---|
| C++ Core | OpenXLSX |
| Bindings | pybind11 |
| Build System | scikit-build-core & CMake |
Installation
From PyPI (Recommended)
# Using pip
pip install pyopenxlsx
# Using uv
uv pip install pyopenxlsx
From Source
# Using uv
uv pip install .
# Or using pip
pip install .
Development Installation
uv pip install -e .
Quick Start
Create and Save a Workbook
from pyopenxlsx import Workbook
# Create a new workbook
with Workbook() as wb:
ws = wb.active
ws.title = "MySheet"
# Write data
ws["A1"].value = "Hello"
ws["B1"].value = 42
ws.cell(row=2, column=1).value = 3.14
# Save
wb.save("example.xlsx")
Read a Workbook
from pyopenxlsx import load_workbook
wb = load_workbook("example.xlsx")
ws = wb["MySheet"]
print(ws["A1"].value) # Output: Hello
wb.close()
Async Operations
pyopenxlsx provides async/await support for all I/O-intensive operations, ensuring your event loop remains responsive.
import asyncio
from pyopenxlsx import Workbook, load_workbook_async, Font
async def main():
# 1. Async context manager for automatic cleanup
async with Workbook() as wb:
ws = wb.active
ws["A1"].value = "Async Data"
# 2. Async stylesheet creation
style_idx = await wb.add_style_async(font=Font(bold=True))
ws["A1"].style_index = style_idx
# 3. Async worksheet operations
new_ws = await wb.create_sheet_async("AsyncSheet")
await new_ws.append_async(["Dynamic", "Row", 123])
# 4. Async range operations
await new_ws.range("A1:C1").clear_async()
# 5. Async save
await wb.save_async("async_example.xlsx")
# 6. Async load
async with await load_workbook_async("async_example.xlsx") as wb:
ws = wb.active
print(ws["A1"].value)
# 7. Async protection
await ws.protect_async(password="secret")
await ws.unprotect_async()
asyncio.run(main())
Styling
from pyopenxlsx import Workbook, Font, Fill, Border, Side, Alignment
wb = Workbook()
ws = wb.active
# Define styles using hex colors (ARGB) or names
# Hex colors can be 6-digit (RRGGBB) or 8-digit (AARRGGBB)
font = Font(name="Arial", size=14, bold=True, color="FF0000") # Red
fill = Fill(pattern_type="solid", color="FFFF00") # Yellow
border = Border(
left=Side(style="thin", color="000000"),
right=Side(style="thin"),
top=Side(style="thick"),
bottom=Side(style="thin")
)
alignment = Alignment(horizontal="center", vertical="center", wrap_text=True)
# Apply style
style_idx = wb.add_style(font=font, fill=fill, border=border, alignment=alignment)
ws["A1"].value = "Styled Cell"
ws["A1"].style_index = style_idx
wb.save("styles.xlsx")
Insert Images
from pyopenxlsx import Workbook
wb = Workbook()
ws = wb.active
# Insert image at A1, automatically maintaining aspect ratio
# Requires Pillow: pip install pillow
ws.add_image("logo.png", anchor="A1", width=200)
# Or specify exact dimensions
ws.add_image("banner.jpg", anchor="B5", width=400, height=100)
wb.save("images.xlsx")
API Documentation
Module Exports
from pyopenxlsx import (
# Core Classes
Workbook, Worksheet, Cell, Range,
load_workbook, load_workbook_async,
# Style Classes
Font, Fill, Border, Side, Alignment, Style, Protection,
# Enums & Constants
XLColor, XLSheetState, XLLineStyle, XLPatternType, XLAlignmentStyle,
XLProperty, XLUnderlineStyle, XLFontSchemeStyle, XLVerticalAlignRunStyle,
XLFillType,
)
Workbook Class
The top-level container for an Excel file.
Constructor
Workbook(filename: str | None = None)
filename: Optional. If provided, opens an existing file; otherwise, creates a new workbook.
Properties
| Property | Type | Description |
|---|---|---|
active |
Worksheet | None |
Get or set the currently active worksheet. |
sheetnames |
list[str] |
Returns a list of all worksheet names. |
properties |
DocumentProperties |
Access document metadata (title, author, etc.). |
styles |
XLStyles |
Access underlying style object (advanced usage). |
workbook |
XLWorkbook |
Access underlying C++ workbook object (advanced usage). |
Methods
| Method | Return Type | Description |
|---|---|---|
save(filename=None) |
None |
Save the workbook. Saves to original path if filename is omitted. |
save_async(filename=None) |
Coroutine |
Asynchronously save the workbook. |
close() |
None |
Close the workbook and release resources. |
close_async() |
Coroutine |
Asynchronously close the workbook. |
create_sheet(title=None, index=None) |
Worksheet |
Create a new worksheet. title defaults to "Sheet1", etc. |
create_sheet_async(...) |
Coroutine |
Asynchronously create a worksheet. |
remove(worksheet) |
None |
Delete the specified worksheet. |
remove_async(worksheet) |
Coroutine |
Asynchronously delete a worksheet. |
copy_worksheet(from_worksheet) |
Worksheet |
Copy a worksheet and return the copy. |
copy_worksheet_async(...) |
Coroutine |
Asynchronously copy a worksheet. |
add_style(...) |
int |
Create a new style and return its index. See below. |
add_style_async(...) |
Coroutine |
Asynchronously create a style. |
get_embedded_images() |
list[ImageInfo] |
Get list of all images embedded in the workbook. |
get_image_data(name) |
bytes |
Get binary data of an embedded image by its name or path. |
extract_images(out_dir) |
list[str] |
Extract all images to a directory. Returns list of file paths. |
extract_images_async(...) |
Coroutine |
Asynchronously extract all images. |
add_style Method
def add_style(
font: Font | int | None = None,
fill: Fill | int | None = None,
border: Border | int | None = None,
alignment: Alignment | None = None,
number_format: str | int | None = None,
protection: Protection | None = None,
) -> int:
Returns: A style index (int) that can be assigned to Cell.style_index.
Example:
# Pass all styles via a Style object
from pyopenxlsx import Style, Font, Fill
style = Style(
font=Font(bold=True),
fill=Fill(color="C8C8C8"), # Hex color
number_format="0.00"
)
idx = wb.add_style(style)
Worksheet Class
Represents a sheet within an Excel file.
Properties
| Property | Type | Description |
|---|---|---|
title |
str |
Get or set the worksheet name. |
index |
int |
Get or set the worksheet index (0-based). |
sheet_state |
str |
Visibility: "visible", "hidden", "very_hidden". |
max_row |
int |
Returns the maximum row index used. |
max_column |
int |
Returns the maximum column index used. |
rows |
Iterator |
Iterate over all rows with data. |
merges |
MergeCells |
Access merged cells information. |
protection |
dict |
Get worksheet protection status (read-only). |
Methods
| Method | Return Type | Description |
|---|---|---|
cell(row, column, value=None) |
Cell |
Get cell by 1-based indices. Optionally set value. |
range(address) |
Range |
Get range by string, e.g., ws.range("A1:C3"). |
range(start, end) |
Range |
Get range by endpoints, e.g., ws.range("A1", "C3"). |
merge_cells(address) |
None |
Merge cells, e.g., ws.merge_cells("A1:B2"). |
merge_cells_async(...) |
Coroutine |
Asynchronously merge cells. |
unmerge_cells(address) |
None |
Unmerge cells. |
unmerge_cells_async(...) |
Coroutine |
Asynchronously unmerge cells. |
append(iterable) |
None |
Append a row of data after the last used row. |
append_async(iterable) |
Coroutine |
Asynchronously append a row. |
set_column_format(col, style_idx) |
None |
Set default style for a column. col can be int or "A". |
set_row_format(row, style_idx) |
None |
Set default style for a row. |
column(col) |
Column |
Get column object for width adjustments. |
protect(...) |
None |
Protect the worksheet. |
protect_async(...) |
Coroutine |
Asynchronously protect the worksheet. |
unprotect() |
None |
Unprotect the worksheet. |
unprotect_async() |
Coroutine |
Asynchronously unprotect. |
add_image(...) |
None |
Insert an image. |
add_image_async(...) |
Coroutine |
Asynchronously insert an image. |
add_image Method
def add_image(
img_path: str,
anchor: str = "A1",
width: int | None = None,
height: int | None = None,
) -> None:
img_path: Path to image (PNG, JPG, GIF).anchor: Top-left cell address.width,height: Pixel dimensions. Requires Pillow for auto-detection if not provided.
Magic Methods
| Method | Description |
|---|---|
__getitem__(key) |
Get cell by address: ws["A1"] |
Cell Class
The fundamental unit of data in Excel.
Properties
| Property | Type | Description |
|---|---|---|
value |
Any |
Get/Set value. Supports str, int, float, bool, datetime. |
formula |
Formula |
Get/Set formula string (without initial =). |
style_index |
int |
Get/Set style index. |
style |
int |
Alias for style_index. |
is_date |
bool |
True if the cell has a date format. |
comment |
str | None |
Get/Set cell comment. Set None to remove. |
font |
XLFont |
Get font object (read-only). |
fill |
XLFill |
Get fill object (read-only). |
border |
XLBorder |
Get border object (read-only). |
alignment |
XLAlignment |
Get alignment object (read-only). |
Date Handling
If is_date is True, value automatically returns a Python datetime object.
# Write
ws["A1"].value = datetime(2024, 1, 15)
ws["A1"].style_index = wb.add_style(number_format=14) # Built-in date format
# Read
print(ws["A1"].value) # datetime.datetime(2024, 1, 15, 0, 0)
print(ws["A1"].is_date) # True
Formulas
Note: Formulas must be set via the formula property, not value.
# Correct
ws["A3"].formula = "SUM(A1:A2)"
# Incorrect (treated as string)
ws["A3"].value = "=SUM(A1:A2)"
Range Class
Represents a rectangular area of cells.
Properties
| Property | Type | Description |
|---|---|---|
address |
str |
Range address, e.g., "A1:C3". |
num_rows |
int |
Row count. |
num_columns |
int |
Column count. |
Methods
| Method | Return Type | Description |
|---|---|---|
clear() |
None |
Clear values in all cells of the range. |
clear_async() |
Coroutine |
Asynchronously clear range. |
Iteration
for cell in ws.range("A1:B2"):
print(cell.value)
Style Classes
Font
Font(name="Arial", size=11, bold=False, italic=False, color=None)
Fill
Fill(pattern_type="solid", color=None, background_color=None)
Border
Border(left=Side(), right=Side(), top=Side(), bottom=Side(), diagonal=Side())
Side
Side(style="thin", color=None)
Styles: "thin", "thick", "dashed", "dotted", "double", "hair", "medium", "mediumDashed", "mediumDashDot", "mediumDashDotDot", "slantDashDot"
Alignment
Alignment(horizontal="center", vertical="center", wrap_text=True)
Options: "left", "center", "right", "general", "top", "bottom"
DocumentProperties
Accessed via wb.properties. Supports dict-like access.
- Metadata:
title,subject,creator,keywords,description,last_modified_by,category,company.
wb.properties["title"] = "My Report"
print(wb.properties["creator"])
Column Class
Accessed via ws.column(col_index) or ws.column("A").
Properties
| Property | Type | Description |
|---|---|---|
width |
float |
Get or set the column width. |
hidden |
bool |
Get or set whether the column is hidden. |
style_index |
int |
Get or set the default style index for the column. |
Formula Class
Accessed via cell.formula.
Properties
| Property | Type | Description |
|---|---|---|
text |
str |
Get or set the formula string. |
Methods
| Method | Return Type | Description |
|---|---|---|
clear() |
None |
Remove the formula from the cell. |
MergeCells Class
Accessed via ws.merges. Represents the collection of merged ranges in a worksheet.
Methods
| Method | Return Type | Description |
|---|---|---|
append(reference) |
None |
Create a merged range (e.g., "A1:B2"). |
delete(index) |
None |
Remove a merged range by its index. |
find(reference) |
int |
Find the index of a merged range. Returns -1 if not found. |
__len__() |
int |
Return the number of merged ranges. |
__getitem__(index) |
XLMergeCell |
Get a merged range object by index. |
__iter__() |
Iterator |
Iterate over all merged ranges. |
__contains__(ref) |
bool |
Check if a reference is within any merged range. |
ImageInfo Class
Returned by wb.get_embedded_images().
Attributes
| Attribute | Type | Description |
|---|---|---|
name |
str |
Filename of the image. |
path |
str |
Internal path in the XLSX archive. |
extension |
str |
File extension (e.g., "png"). |
Helper Functions
load_workbook
def load_workbook(filename: str) -> Workbook:
"""Open an existing Excel file."""
load_workbook_async
async def load_workbook_async(filename: str) -> Workbook:
"""Asynchronously open an existing Excel file."""
is_date_format
def is_date_format(format_code: int | str) -> bool:
"""
Check if a number format code (int) or string represents a date/time format.
Useful for determining if a cell value should be treated as a datetime.
"""
Performance
pyopenxlsx is built for speed. By leveraging the C++ OpenXLSX engine and providing optimized bulk operations, it significantly outperforms pure-Python alternatives.
Benchmarks (pyopenxlsx vs openpyxl)
| Scenario | pyopenxlsx | openpyxl | Speedup |
|---|---|---|---|
| Read (20,000 cells) | ~7ms | ~155ms | 21x |
| Write (1,000 cells) | ~6ms | ~9ms | 1.5x |
| Write (50,000 cells) | ~200ms | ~318ms | 1.6x |
| Bulk Write (50,000 cells) | ~77ms | N/A | 4.1x |
| Iteration (20,000 cells) | ~86ms | ~157ms | 1.8x |
[!NOTE] Benchmarks were performed on a local development machine using
pytest-benchmark. Results may vary based on environment and data complexity. Bulk write usesws.write_range()with NumPy arrays.
Why is it faster?
- C++ Foundation: Core operations happen in highly optimized C++.
- Reduced Object Overhead:
pyopenxlsxminimizes the creation of many PythonCellobjects during bulk operations. - Efficient Memory Mapping: Leverages the memory-efficient design of OpenXLSX.
- Asynchronous I/O: Key operations are available as non-blocking coroutines to maximize throughput in concurrent applications.
Development
Run Tests
# Run all tests
uv run pytest
# With coverage
uv run pytest --cov=src/pyopenxlsx --cov-report=term-missing
License
MIT License. The underlying OpenXLSX library is licensed under its own terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyopenxlsx-0.2.2.tar.gz.
File metadata
- Download URL: pyopenxlsx-0.2.2.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16675289e2a2a0a2f6ad9d0a3864d8f090ec7be42ad683b15801d8100aed1698
|
|
| MD5 |
2b5c32eef4e1072bfa95dd0012b7e2ef
|
|
| BLAKE2b-256 |
424538c0982e4e63c49a0cf4cce992fc3915670e7c972f32c28ba022ca53bcda
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2.tar.gz:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2.tar.gz -
Subject digest:
16675289e2a2a0a2f6ad9d0a3864d8f090ec7be42ad683b15801d8100aed1698 - Sigstore transparency entry: 928193013
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp314-cp314t-win_amd64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp314-cp314t-win_amd64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.14t, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aad13f1a87e0da3cf0a4bedf6e46396b6913c9ab110166cd6393afd1cecc2f34
|
|
| MD5 |
53bed238301b535c4e735bd794a17b30
|
|
| BLAKE2b-256 |
c30fa554b77900aa38f80785a5e9dbea070299b9e330c8ea7404cd9f055255b3
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp314-cp314t-win_amd64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp314-cp314t-win_amd64.whl -
Subject digest:
aad13f1a87e0da3cf0a4bedf6e46396b6913c9ab110166cd6393afd1cecc2f34 - Sigstore transparency entry: 928193077
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp314-cp314t-win32.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp314-cp314t-win32.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.14t, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
249d66007951c285a4e6113dca7875b96b03d973f7ed4aeef1d95a9378599085
|
|
| MD5 |
fe7aed23844fea4a2ada392b5d7f19cc
|
|
| BLAKE2b-256 |
ba9cbc7348e7786e9b20f75282c4b8d0099c0da50fdff84ff79151be802ab1a1
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp314-cp314t-win32.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp314-cp314t-win32.whl -
Subject digest:
249d66007951c285a4e6113dca7875b96b03d973f7ed4aeef1d95a9378599085 - Sigstore transparency entry: 928193040
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4a4b18011a7373230c1ef9911400b3de3e327f982466aefe7598bd38a19fa80
|
|
| MD5 |
e6e74698270bc37eacd12d087aae428d
|
|
| BLAKE2b-256 |
0312c3b5298fda294b9d1f1a5a04953c1e6315c5360f160b56907c875e79db20
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl -
Subject digest:
f4a4b18011a7373230c1ef9911400b3de3e327f982466aefe7598bd38a19fa80 - Sigstore transparency entry: 928193062
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.14t, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8624212302ea1ab5903210d668125fc273636d13092a79ca421077bb583cbe65
|
|
| MD5 |
40564c8284bb2e77bdb60898afda4842
|
|
| BLAKE2b-256 |
646900ffcf1e6271c55036c9b29eae8dcbd36108e3e52be21d1f6d19c1f6eb2b
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
8624212302ea1ab5903210d668125fc273636d13092a79ca421077bb583cbe65 - Sigstore transparency entry: 928193078
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.14t, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfac058494290ac933db4782515debc5e08a2ed3128b8a6f1453b1e4d1a4ecf8
|
|
| MD5 |
14350ed0dbded181aab61f716444fa89
|
|
| BLAKE2b-256 |
cbc12ef5838793a25ec3f250e7a5cf490367d5607108678bed42c4bdd6f40d20
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl -
Subject digest:
bfac058494290ac933db4782515debc5e08a2ed3128b8a6f1453b1e4d1a4ecf8 - Sigstore transparency entry: 928193034
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f5082906f75316fd2c5abbb0d7f25a7e72e363712a3d7ab51e2f9b178ea9201
|
|
| MD5 |
417b25496a1001e5aad7de691a37407c
|
|
| BLAKE2b-256 |
d03efd58a1397e8e1011ffd95a2591db36c5a8c02735af109b19f3c24085aa7d
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp314-cp314-win_amd64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp314-cp314-win_amd64.whl -
Subject digest:
8f5082906f75316fd2c5abbb0d7f25a7e72e363712a3d7ab51e2f9b178ea9201 - Sigstore transparency entry: 928193058
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp314-cp314-win32.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp314-cp314-win32.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.14, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a108ca7fda1681c5232267145901287b82742ce38e6102f22b97e430583e9e2
|
|
| MD5 |
7ea548d41f565364a42c49f92f1f810c
|
|
| BLAKE2b-256 |
2792397903753a683413dcf084f734e1d4a6b68f7f9f06ece3a91ac53865fdb7
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp314-cp314-win32.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp314-cp314-win32.whl -
Subject digest:
7a108ca7fda1681c5232267145901287b82742ce38e6102f22b97e430583e9e2 - Sigstore transparency entry: 928193073
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97c8b4a6244ae804e7ff551e27b6ccb4e5eb0e30037eb81d88f9fc7c77768459
|
|
| MD5 |
f1c02b25a5fb02209b08cd8c4761b779
|
|
| BLAKE2b-256 |
3d883ed0dad71292231b7a2dde3aeb34cb8b82f653a0f23e0baa6efb9e1e9252
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp314-cp314-musllinux_1_2_x86_64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp314-cp314-musllinux_1_2_x86_64.whl -
Subject digest:
97c8b4a6244ae804e7ff551e27b6ccb4e5eb0e30037eb81d88f9fc7c77768459 - Sigstore transparency entry: 928193026
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7bd38a96de472112adb9790ce1f05eb5638421dbb223647a835c6dd69cca116
|
|
| MD5 |
20c3d0160113483fd181747946a40fb3
|
|
| BLAKE2b-256 |
23d14d716ab8f4ab5dc3a883146441ae61813f12c61129874d2946d82cbfaae5
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
e7bd38a96de472112adb9790ce1f05eb5638421dbb223647a835c6dd69cca116 - Sigstore transparency entry: 928193031
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e9e140cdfca1aba952f544b0de9b2df5c9a25d71b517e171c54b567a110e145
|
|
| MD5 |
5b4228b10162a380f02fabcb8fc2dba9
|
|
| BLAKE2b-256 |
6ba3ce4fd6c3898557e841c2d9507bf33f421919299626209220edbfe6a20927
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
7e9e140cdfca1aba952f544b0de9b2df5c9a25d71b517e171c54b567a110e145 - Sigstore transparency entry: 928193054
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
710b94761f584d135ebf0a25d9087f2afda3711a016a27d4090bb4e7ae338e64
|
|
| MD5 |
33b996720a8d1ed15d122834e05bde42
|
|
| BLAKE2b-256 |
fc8ea0efc65f35432d502c6e86bd0429de305cdbe3f502a751664c288424e08a
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp313-cp313-win_amd64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp313-cp313-win_amd64.whl -
Subject digest:
710b94761f584d135ebf0a25d9087f2afda3711a016a27d4090bb4e7ae338e64 - Sigstore transparency entry: 928193057
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp313-cp313-win32.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp313-cp313-win32.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.13, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5620c5b5a9a8cb8ee0904fe8aa7d6d450ffebe84237e793ad61d1cc7a04a63f
|
|
| MD5 |
73e8e66ee74845087240dbff5c684ffb
|
|
| BLAKE2b-256 |
5831b600e50a2908ed99f59ad5539e1dc52b596d90fe0749df06a4af34c9fa97
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp313-cp313-win32.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp313-cp313-win32.whl -
Subject digest:
c5620c5b5a9a8cb8ee0904fe8aa7d6d450ffebe84237e793ad61d1cc7a04a63f - Sigstore transparency entry: 928193051
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfcdf1ca14a4ba9d319daf656ee6ac4b8001d5edd8c8a8031a262ae26f1ab5e3
|
|
| MD5 |
f7da8df757d1105aa6c22d847a0cd7ed
|
|
| BLAKE2b-256 |
369c532dd1263490686d8855b91a3945cdc886c2442e68b232099d5695a63bc9
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl -
Subject digest:
bfcdf1ca14a4ba9d319daf656ee6ac4b8001d5edd8c8a8031a262ae26f1ab5e3 - Sigstore transparency entry: 928193018
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c434e07243c077a3d8398b0e7cf431e3b9e46e38acbb98accf80f5e1f42c24b4
|
|
| MD5 |
10ab152e43e966a8ef06a34bd53de517
|
|
| BLAKE2b-256 |
c1073aa80f4ea3322d6867ae44937316602b1643afc70266e17fa57ca00cd690
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
c434e07243c077a3d8398b0e7cf431e3b9e46e38acbb98accf80f5e1f42c24b4 - Sigstore transparency entry: 928193055
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2df762c3771e5d9e049297218538d305ce45889619cfb34851f9d004cae4829
|
|
| MD5 |
135d63f4a7443b3454ea25d3c938fc57
|
|
| BLAKE2b-256 |
5ec5982758578c939319f698a3a0964b9dc59b52e8d860b47410fa8ca4492af5
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
a2df762c3771e5d9e049297218538d305ce45889619cfb34851f9d004cae4829 - Sigstore transparency entry: 928193022
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b55096699c53c3e134f922734c2b33455fc7d77f653ead915373886e09d070cb
|
|
| MD5 |
6eaa1ac9c894914cdd14e6dd89ec732a
|
|
| BLAKE2b-256 |
d860f036c8f35d697797f6f5e9ed8f00fcfa048c14521a9d2ad9221d5f1da76c
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp312-cp312-win_amd64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp312-cp312-win_amd64.whl -
Subject digest:
b55096699c53c3e134f922734c2b33455fc7d77f653ead915373886e09d070cb - Sigstore transparency entry: 928193035
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp312-cp312-win32.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp312-cp312-win32.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.12, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
564903c15aaa83b46fbdc177ccdd011ae0a9056d4d73b42f294ad5bb0dcb7ba9
|
|
| MD5 |
e625efb4a25191cdd07968b6dbe6a76e
|
|
| BLAKE2b-256 |
0b488947b08dfcd5779e21160195be34d8d85fca8923e3a0c8ab240db9d1c883
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp312-cp312-win32.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp312-cp312-win32.whl -
Subject digest:
564903c15aaa83b46fbdc177ccdd011ae0a9056d4d73b42f294ad5bb0dcb7ba9 - Sigstore transparency entry: 928193045
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
621e3a32327dcb9eeabae28fb3a287d155822e9bb09b8c3f32f688d58c93b8d9
|
|
| MD5 |
ca8f107be7bcbc3cbe2c660bed22a653
|
|
| BLAKE2b-256 |
fa9601a0c043682c00f2001e5fa4c9c37a422efdc31281ebdb8669ff4fd4035b
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl -
Subject digest:
621e3a32327dcb9eeabae28fb3a287d155822e9bb09b8c3f32f688d58c93b8d9 - Sigstore transparency entry: 928193050
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a696eb9bf5f4e15390b0dfb15c1b2425f57faa372f62674ee7324da36470d34d
|
|
| MD5 |
69674f7ad798e94e753a37a4b8f0b946
|
|
| BLAKE2b-256 |
7ee6f084f7dcd711d2994a0cad8641c2db1ce1f2e878f6b9def0fd8be30c50bd
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
a696eb9bf5f4e15390b0dfb15c1b2425f57faa372f62674ee7324da36470d34d - Sigstore transparency entry: 928193085
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
199d747976c8f2078a28b7794068b36daa9aac6c7c7db944cbc5d03ff8244455
|
|
| MD5 |
b220e7a919a53f8dce8a8d117f1c9196
|
|
| BLAKE2b-256 |
839849073b80e9ab166cb9e55234aabc8f0b8baba311cc364ee3774ff784d7d1
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
199d747976c8f2078a28b7794068b36daa9aac6c7c7db944cbc5d03ff8244455 - Sigstore transparency entry: 928193037
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e3ebf1c051b20f68883be18ba4df2cb5263b6ac61f650e904877715725245b3
|
|
| MD5 |
5bf2870669dc3f5bf9a9b94c7fea3451
|
|
| BLAKE2b-256 |
2a135a9d45d94e10a56bac291f18ea9664044eedd8c21ce62997c6c93b7e6364
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp311-cp311-win_amd64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp311-cp311-win_amd64.whl -
Subject digest:
4e3ebf1c051b20f68883be18ba4df2cb5263b6ac61f650e904877715725245b3 - Sigstore transparency entry: 928193071
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp311-cp311-win32.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp311-cp311-win32.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef14774f68c9d304de09258a94e7d165047baa18024c3d1afe77eafc566532b4
|
|
| MD5 |
9947521ae90fe1da948399723a195852
|
|
| BLAKE2b-256 |
916986c64615f586828194747fdba0277ed63fea73d693c30b4460327a58fa93
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp311-cp311-win32.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp311-cp311-win32.whl -
Subject digest:
ef14774f68c9d304de09258a94e7d165047baa18024c3d1afe77eafc566532b4 - Sigstore transparency entry: 928193066
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c6c22226d16dbcb1a14b5f6fb7c53aa403efdc4a4c02fd01eea730e3d222370
|
|
| MD5 |
e6320ef80efc1eb99cc488e1227f2726
|
|
| BLAKE2b-256 |
09923791ab7b34ca1d96acf93db7694d354dc9ac9b625124c9739617bbc51bc4
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp311-cp311-musllinux_1_2_x86_64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp311-cp311-musllinux_1_2_x86_64.whl -
Subject digest:
9c6c22226d16dbcb1a14b5f6fb7c53aa403efdc4a4c02fd01eea730e3d222370 - Sigstore transparency entry: 928193046
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f33f66a9619a65a1aadc544bd4ddb0c1b14a749a8a0f4e0e0786e62d5a574986
|
|
| MD5 |
076b7d11bf899d126e67250673daccaa
|
|
| BLAKE2b-256 |
37632135f3f6be6463eedca89d3f6644807177db00a969dc41248ba48d0a6a15
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
f33f66a9619a65a1aadc544bd4ddb0c1b14a749a8a0f4e0e0786e62d5a574986 - Sigstore transparency entry: 928193043
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyopenxlsx-0.2.2-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyopenxlsx-0.2.2-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3ae1476f194fadaeb51f0f2f09b73cd93010b61b782f43e4f0528869613b032
|
|
| MD5 |
3c380e0a03f1bddf6845a3b9cc4a021f
|
|
| BLAKE2b-256 |
a71f0fdbc58c72e042818d9f6d20da2629d830705b255eaf8f80235a0bda5d39
|
Provenance
The following attestation bundles were made for pyopenxlsx-0.2.2-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
build.yml on twn39/pyopenxlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyopenxlsx-0.2.2-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
f3ae1476f194fadaeb51f0f2f09b73cd93010b61b782f43e4f0528869613b032 - Sigstore transparency entry: 928193052
- Sigstore integration time:
-
Permalink:
twn39/pyopenxlsx@8da48313d877676b1fd928c038d167d25795cab6 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/twn39
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@8da48313d877676b1fd928c038d167d25795cab6 -
Trigger Event:
push
-
Statement type: