A fast, memory-efficient spreadsheet I/O library for Python, powered by Rust
Project description
Features • Benchmarks • Installation • Quick Start • API • Roadmap • Contributing
Why OpenSheet Core?
Existing Python spreadsheet libraries force you to choose between performance, memory efficiency, broad format support, and easy installation. OpenSheet Core eliminates that tradeoff with a native Rust core exposed through a clean Python API — installable with a single pip install.
Features
- Streaming XLSX reader — row-by-row iteration without loading the entire file into memory
- Streaming XLSX writer — write millions of rows with constant memory usage
- Formula support — read and write formulas with optional cached values
- Date/time support — read and write
datetime.dateanddatetime.datetimecells with automatic Excel serial number conversion - Merged cells — read and write merged cell ranges
- Column widths & row heights — set and read custom column widths and row heights
- Freeze panes — freeze rows and/or columns so they stay visible when scrolling
- Auto-filter — add drop-down filter controls to column headers
- Number formats — write and read cells with custom number formats (currency, percentage, custom format strings)
- Cell styling — fonts (bold, italic, underline, name, size, color), fills, borders (thin, medium, thick, dashed, dotted, double), alignment (horizontal, vertical, wrap text, rotation), and number formats on styled cells
- Typed cell extraction — strings, numbers, booleans, dates, datetimes, formulas, and empty cells are returned as native Python types
- Context manager support — Pythonic
withstatement for safe resource management - AI/RAG-ready — convert spreadsheets to markdown, chunked text, or plain text for LLM pipelines (planned)
- Cross-platform — tested on Linux, macOS, and Windows across Python 3.9–3.13
- Pandas integration — read XLSX files into DataFrames and write DataFrames to XLSX (
pip install opensheet-core[pandas]) - Zero Python dependencies — single native extension, no dependency tree to manage
Benchmarks
Benchmarked against openpyxl 3.1.5 on a 100,000-row x 10-column dataset (1M cells), 5 interleaved runs, current RSS measurement (not high-water mark):
| Operation | OpenSheet Core | openpyxl | Speedup | Memory (RSS delta) |
|---|---|---|---|---|
| Write | 2.3s | 3.7s | 1.6x faster | 1.7x less (1.2 MB vs 2.1 MB) |
| Read | 253ms | 3.5s | 13.8x faster | 2.5x less (13.5 MB vs 33.3 MB) |
OpenSheet Core is faster and uses less memory for both reads and writes. The speed advantage comes from a Rust streaming parser with deferred shared-string resolution — strings are stored as indices during parsing and only converted to Python objects at the boundary. Write memory is low because the Rust writer streams data directly to disk.
Run it yourself:
python benchmarks/benchmark.pySee the Benchmarking Methodology doc for details on how we measure and avoid common benchmarking pitfalls.
Installation
pip install opensheet-core
# With pandas support
pip install opensheet-core[pandas]
From source (requires Rust toolchain)
pip install maturin
git clone https://github.com/0xNadr/opensheet-core
cd opensheet-core
maturin develop --release
Quick Start
Reading an XLSX file
from opensheet_core import read_xlsx, read_sheet
# Read all sheets
sheets = read_xlsx("report.xlsx")
for sheet in sheets:
print(f"Sheet: {sheet['name']}")
for row in sheet["rows"]:
print(row) # List of typed Python values
# Read a specific sheet
rows = read_sheet("report.xlsx", sheet_name="Data")
Writing an XLSX file
from opensheet_core import XlsxWriter
with XlsxWriter("output.xlsx") as writer:
writer.add_sheet("Data")
writer.write_row(["Name", "Age", "Active"])
writer.write_row(["Alice", 30, True])
writer.write_row(["Bob", 25, False])
Writing dates
import datetime
from opensheet_core import XlsxWriter
with XlsxWriter("output.xlsx") as writer:
writer.add_sheet("Events")
writer.write_row(["Event", "Date", "Timestamp"])
writer.write_row(["Launch", datetime.date(2025, 3, 15), datetime.datetime(2025, 3, 15, 14, 30)])
Merging cells
from opensheet_core import XlsxWriter
with XlsxWriter("output.xlsx") as writer:
writer.add_sheet("Report")
writer.write_row(["Title spanning three columns", "", ""])
writer.write_row(["A", "B", "C"])
writer.merge_cells("A1:C1")
Column widths and row heights
from opensheet_core import XlsxWriter
with XlsxWriter("output.xlsx") as writer:
writer.add_sheet("Data")
writer.set_column_width("A", 25.0) # By letter
writer.set_column_width(1, 15.0) # By 0-based index
writer.set_row_height(1, 30.0) # Row 1 (1-based)
writer.write_row(["Name", "Age"])
writer.write_row(["Alice", 30])
Freeze panes
from opensheet_core import XlsxWriter
with XlsxWriter("output.xlsx") as writer:
writer.add_sheet("Data")
writer.freeze_panes(row=1, col=0) # Freeze top row
writer.write_row(["Header1", "Header2", "Header3"])
writer.write_row(["data", "data", "data"])
Auto-filter
from opensheet_core import XlsxWriter
with XlsxWriter("output.xlsx") as writer:
writer.add_sheet("Data")
writer.write_row(["Name", "Age", "City"])
writer.write_row(["Alice", 30, "NYC"])
writer.write_row(["Bob", 25, "LA"])
writer.auto_filter("A1:C1")
Number formats
from opensheet_core import XlsxWriter, FormattedCell
with XlsxWriter("output.xlsx") as writer:
writer.add_sheet("Finance")
writer.write_row(["Item", "Price", "Tax Rate"])
writer.write_row([
"Widget",
FormattedCell(19.99, "$#,##0.00"), # Currency
FormattedCell(0.08, "0.00%"), # Percentage
])
Cell styling
from opensheet_core import XlsxWriter, CellStyle, StyledCell
with XlsxWriter("output.xlsx") as writer:
writer.add_sheet("Report")
# Bold header with fill color
writer.write_row([
StyledCell("Name", CellStyle(bold=True, fill_color="4472C4", font_color="FFFFFF")),
StyledCell("Score", CellStyle(bold=True, fill_color="4472C4", font_color="FFFFFF")),
])
# Data with borders and alignment
writer.write_row([
StyledCell("Alice", CellStyle(border="thin", horizontal_alignment="left")),
StyledCell(95, CellStyle(border="thin", number_format="0.0")),
])
Writing formulas
from opensheet_core import XlsxWriter, Formula
with XlsxWriter("output.xlsx") as writer:
writer.add_sheet("Budget")
writer.write_row(["Item", "Cost"])
writer.write_row(["Rent", 1200])
writer.write_row(["Food", 400])
writer.write_row(["Total", Formula("SUM(B2:B3)", cached_value=1600)])
Pandas integration
import pandas as pd
from opensheet_core import read_xlsx_df, to_xlsx
# Read XLSX into a DataFrame
df = read_xlsx_df("data.xlsx", sheet_name="Sheet1")
# Write a DataFrame to XLSX
df = pd.DataFrame({"Name": ["Alice", "Bob"], "Age": [30, 25]})
to_xlsx(df, "output.xlsx", sheet_name="Results")
API Reference
read_xlsx(path: str) -> list[dict]
Reads an XLSX file and returns a list of dicts with "name" (str), "rows" (list of lists), "merges" (list of range strings like "A1:C1"), "column_widths" (dict of 0-based col index to width), "row_heights" (dict of 0-based row index to height), "freeze_pane" (tuple of (rows_frozen, cols_frozen) or None), and "auto_filter" (range string like "A1:C1" or None). Each cell is a typed Python value (str, int, float, bool, datetime.date, datetime.datetime, Formula, FormattedCell, or None).
read_sheet(path, sheet_name=None, sheet_index=None) -> list[list]
Reads a single sheet by name or index. Returns the first sheet by default.
sheet_names(path: str) -> list[str]
Returns the list of sheet names in a workbook.
XlsxWriter(path: str)
Streaming XLSX writer. Use as a context manager.
| Method | Description |
|---|---|
add_sheet(name: str) |
Create a new worksheet |
write_row(values: list) |
Write a row of values to the current sheet |
merge_cells(range: str) |
Merge a range of cells (e.g. "A1:C1") |
set_column_width(column, width) |
Set column width (column is a letter or 0-based int) |
set_row_height(row, height) |
Set row height in points (row is 1-based) |
freeze_panes(row=0, col=0) |
Freeze top row rows and left col columns |
auto_filter(range) |
Set auto-filter on a range (e.g. "A1:C1") |
close() |
Finalize and close the file |
read_xlsx_df(path, sheet_name=None, sheet_index=None, header=True)
Reads a single XLSX sheet into a pandas DataFrame. Requires pip install opensheet-core[pandas]. When header=True (default), the first row is used as column names. Formulas are unwrapped to cached values, FormattedCell values are unwrapped to plain numbers.
to_xlsx(df, path, sheet_name="Sheet1", header=True, index=False)
Writes a pandas DataFrame to an XLSX file. Handles numpy int/float/bool types, NaN/NaT (written as empty cells), and datetime64/Timestamp columns. Set index=True to include the DataFrame index as column(s).
CellStyle(**kwargs)
Style properties for a cell. All parameters are keyword-only. Properties: bold (bool), italic (bool), underline (bool), font_name (str), font_size (float), font_color (str, hex RGB), fill_color (str, hex RGB), border (str, shorthand for all 4 sides), border_left/border_right/border_top/border_bottom (str: "thin", "medium", "thick", "dashed", "dotted", "double"), border_color (str, hex RGB), horizontal_alignment (str: "left", "center", "right"), vertical_alignment (str: "top", "center", "bottom"), wrap_text (bool), text_rotation (int, 0-180), number_format (str, Excel format code).
StyledCell(value, style: CellStyle)
A cell value with styling. Pass as a cell value in write_row(). Returned by read_xlsx() and read_sheet() for cells that have visual styling. The inner value can be a string, number, bool, date, datetime, or formula.
FormattedCell(value, number_format: str)
A numeric value with a custom Excel number format code. Pass as a cell value in write_row(). Returned by read_xlsx() for cells with non-default number formats. Common format codes: "$#,##0.00" (currency), "0.00%" (percentage), "#,##0" (thousands separator).
Formula(formula: str, cached_value=None)
Represents a spreadsheet formula. Pass as a cell value when writing, and received when reading cells that contain formulas.
Architecture
┌──────────────────────────┐
│ Python API │ ← opensheet_core (PyO3 bindings)
├──────────────────────────┤
│ Rust Core │ ← Streaming parser & writer
│ ┌────────┐ ┌──────────┐ │
│ │ Reader │ │ Writer │ │
│ │ (SAX) │ │ (Stream) │ │
│ └────────┘ └──────────┘ │
├──────────────────────────┤
│ quick-xml │ zip │ ← Dependencies
└──────────────────────────┘
Feature Comparison vs openpyxl
OpenSheet Core is designed to be a faster, memory-efficient alternative to openpyxl for the most common spreadsheet workflows. Here's where we stand:
What we already do better
| OpenSheet Core | openpyxl | |
|---|---|---|
| Write 1M cells | ~2.3s | ~3.7s |
| Read 1M cells | ~0.25s | ~3.5s |
| Write memory | 1.2 MB RSS delta | 2.1 MB RSS delta |
| Read memory | 13.5 MB RSS delta | 33.3 MB RSS delta |
| Python dependencies | Zero | Several |
| Architecture | Rust streaming core | Pure Python DOM |
Memory optimization: shared strings are stored as indices during parsing and resolved to Python objects at the boundary via pre-interned lookup, avoiding duplicate string allocations. A future streaming iterator API will bring constant-memory reads.
Feature coverage
| Category | Feature | openpyxl | OpenSheet Core |
|---|---|---|---|
| Formats | .xlsx read/write | Yes | Yes |
| .xlsm (macro-enabled) | Yes | Planned | |
| .xltx/.xltm (templates) | Yes | — | |
| Cell Types | Strings, numbers, booleans | Yes | Yes |
| Dates and datetimes | Yes | Yes | |
| Formulas with cached values | Yes | Yes | |
| Rich text | Yes | Planned | |
| Error values | Yes | Planned | |
| Styling | Fonts (name, size, bold, italic, color) | Yes | Yes |
| Fill (solid, pattern, gradient) | Yes | Solid | |
| Borders (14 styles) | Yes | 6 styles | |
| Alignment (horizontal, vertical, wrap, rotation) | Yes | Yes | |
| Number formats (30+ builtins + custom) | Yes | Yes | |
| Named styles | Yes | Planned | |
| Conditional formatting (6 rule types) | Yes | Planned | |
| Worksheet | Merged cells | Yes | Yes |
| Freeze panes | Yes | Yes | |
| Auto-filter | Yes | Yes | |
| Column widths / row heights | Yes | Yes | |
| Data validation (7 types) | Yes | Planned | |
| Sheet protection | Yes | Planned | |
| Row/column insert/delete | Yes | — | |
| Print settings | Yes | Planned | |
| Row/column grouping | Yes | — | |
| Workbook | Named ranges / defined names | Yes | Planned |
| Document properties | Yes | Planned | |
| Workbook protection | Yes | — | |
| Multiple sheet states (hidden, veryHidden) | Yes | Planned | |
| Charts | 12+ chart types (bar, line, pie, scatter, etc.) | Yes | Planned |
| 3D variants and combined charts | Yes | — | |
| Images | Embed PNG/JPEG | Yes | Planned |
| Tables | Structured tables with styles | Yes | Planned |
| Pivot Tables | Read/preserve existing | Yes | — |
| VBA/Macros | Preserve on load (.xlsm) | Yes | Planned |
| Integration | Pandas DataFrame I/O | Yes | Yes |
| NumPy type support | Yes | Yes | |
| AI/RAG | Markdown/text extraction for LLMs | — | Planned |
| Embedding-sized chunking | — | Planned | |
| LangChain / LlamaIndex loaders | — | Planned | |
| Performance | Streaming read (constant memory) | Yes (read_only mode) | Yes (default) |
| Streaming write (constant memory) | Yes (write_only mode) | Yes (default) |
Legend: Yes = implemented, Planned = on the roadmap, — = not planned for now
Our approach
We are not trying to clone openpyxl. We are building a fast, safe, memory-efficient core for the most common Excel workflows. The goal is to cover the ~80% of features that people use day-to-day, while being up to 14x faster and using 2–3x less memory. Streaming is the default, not an opt-in mode.
Roadmap
Done
- XLSX reading with typed cell extraction
- Streaming XLSX writing with low memory usage
- Formula read/write support with cached values
- Date/time cell support with automatic serial number conversion
- Merged cell metadata (read and write)
- Python bindings via PyO3
- Type stubs (
.pyi) andpy.typedmarker for IDE autocomplete - CI across Linux, macOS, Windows (Python 3.9–3.13)
- Prebuilt wheels on PyPI
- Benchmarks vs openpyxl
- Runnable benchmark script (
python benchmarks/benchmark.py) - Zero Python dependencies
- Column widths and row heights
- Freeze panes
- Auto-filter
- Number formats (currency, percentage, custom format strings)
- Pandas DataFrame integration (
read_xlsx_df/to_xlsx) - Basic cell styling (fonts, fills, borders, alignment)
Phase 1.5 — AI/RAG integration
-
xlsx_to_markdown()— convert sheets to structured markdown tables for LLM consumption -
xlsx_to_chunks()— yield embedding-sized chunks with header attachment and merge-aware boundaries -
xlsx_to_text()— plain text extraction for simple pipelines and search indexes - LangChain
OpenSheetLoaderdocument loader - LlamaIndex
OpenSheetReaderdata connector
Phase 2 — Broader compatibility
- Named ranges / defined names
- Data validation
- Comments and hyperlinks
- .xlsm read support (preserve macros)
- Sheet protection
- Structured tables with styles
- Multiple sheet states (hidden, veryHidden)
Phase 3 — Rich content and ecosystem
- Charts (bar, line, pie, scatter — most common types)
- Image embedding (PNG, JPEG)
- Conditional formatting
- Document and custom properties
- NumPy type support
- Broader test corpus and fuzzing
- Security hardening (XML attack prevention)
Docs & community
- Migration guide: openpyxl → opensheet-core (side-by-side code comparisons)
- FastAPI/Flask streaming XLSX download examples
- Benchmark methodology documentation
- Dedicated benchmark page with chart visualizations
Project Status
v0.2.0 — streaming reader and writer with formula, date/time, merged cell, column width/row height, freeze pane, auto-filter, number format, cell styling, and pandas DataFrame support. 135 passing tests and prebuilt wheels on PyPI. The API may change before 1.0.
Contributing
Contributions are welcome! Here are some great ways to get involved:
- Report bugs or real-world spreadsheet edge cases
- Submit representative sample files for testing
- Suggest benchmark scenarios
- Improve documentation
- Open PRs for roadmap items
License
Built with Rust and PyO3 | Open digital infrastructure for the Python ecosystem
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
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 opensheet_core-0.2.0.tar.gz.
File metadata
- Download URL: opensheet_core-0.2.0.tar.gz
- Upload date:
- Size: 80.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6151015c00c0412b08878fe0ebae0ec1754bb2da1656244e998a664e052911c6
|
|
| MD5 |
f847af516db403feca0545568ca62147
|
|
| BLAKE2b-256 |
1810de80b9f746bae2215114876b73914a85e5c6578104cac8fb4129def98885
|
File details
Details for the file opensheet_core-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 607.9 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95cc6ca6369bf3695b9e1385ab7c43834d457788708f0ac926632ce8fc8294c8
|
|
| MD5 |
1009c28db114d22057ea26bfade5519d
|
|
| BLAKE2b-256 |
82372431ff3ac6102ded3fde08f99f27fd4e632e0f08c8ba33637bdb5b711529
|
File details
Details for the file opensheet_core-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 592.6 kB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf144569a087f7cb2defe22ab62bd21d393eae9c52bb69b769806b7cc160fe56
|
|
| MD5 |
331f2f5f002fc70583d624e00aa50c2c
|
|
| BLAKE2b-256 |
e1be3ee74bbd390ff1074fa1a9edeaf00ac72cf10e0cd8204662d2850a1f8883
|
File details
Details for the file opensheet_core-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 589.0 kB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29be821012ffee5901de9c1f631884af8b01ac9893ed24d159bd1bc59e9c697f
|
|
| MD5 |
16059029f3ffefb9e39b48b190e3fd19
|
|
| BLAKE2b-256 |
5e237a070ad72450737779be660fbc22982a3c4c1a238d4f8432c637ade80401
|
File details
Details for the file opensheet_core-0.2.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 491.0 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53635451b9f3848c6f1b10922f9b9897ca26b65849a1f3090e635c042269cc1f
|
|
| MD5 |
8261a268d9663ce50f498061e32f04c1
|
|
| BLAKE2b-256 |
048c326a0d6e478e13572ff254bcdd2ca2b089da2ff58e447784d4fa4c803cb5
|
File details
Details for the file opensheet_core-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 607.8 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4e2216a04239542765f2f56f4e343729f622cae82d240ef34f730b39b12aeab
|
|
| MD5 |
ec87e0b4e9363481c5afc68fc79e1fac
|
|
| BLAKE2b-256 |
975d7d737eab7b2b6bbc496795fa528186022e1f5432e68618ce54dc58ef62b9
|
File details
Details for the file opensheet_core-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 591.8 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efa94995328e712ce0e5abf5f31c7386bbeee32ba0ceeea5391135843b1d96f5
|
|
| MD5 |
0f7d6ec5d665bd9c59a86585818b0760
|
|
| BLAKE2b-256 |
4de3af4df74d4904c2c8bfd0e37d0e02946e2bc255a28c93dcacce503dddf0e7
|
File details
Details for the file opensheet_core-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 556.8 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
045cda8af7c5b8a69674121b2d8993ba3f2d7844caf64a0751416c94bc7bc223
|
|
| MD5 |
cb4f0c05ff019a6217e32d60912a67f3
|
|
| BLAKE2b-256 |
326d3b38af2afb2c90dc7d9ecaafc08b4f1a2bcfba9ba92e9bce1dacd90765c2
|
File details
Details for the file opensheet_core-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 582.0 kB
- Tags: CPython 3.14, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a438249ccc13b682f34967ca40ff2e10a82f401659bb90db52e712ea17193b82
|
|
| MD5 |
042076516d54c19a276b327dc3b58f4c
|
|
| BLAKE2b-256 |
baa08906c5e10862ec67cca776c51fc2c4ebb93e1939d342f52b537d0b7494a4
|
File details
Details for the file opensheet_core-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 589.0 kB
- Tags: CPython 3.13t, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c979c74f120608af898403833b971f4bde94878a3d444cd1514aa9586c2141a
|
|
| MD5 |
777f9c1a09a9bf4b83524ab78c27e08e
|
|
| BLAKE2b-256 |
2eb2b84c0b94ac6b6add45ca7a0aeb26bc060b2539e35c4fcb671979c3bf64f9
|
File details
Details for the file opensheet_core-0.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 490.9 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
183c7025ec6d8ccbf341b5660a5bb0b20852726291f35907fe367b7d3dce0979
|
|
| MD5 |
b6a1c64897681732726d049b877dd927
|
|
| BLAKE2b-256 |
0a8340501daca2c8be3f2f134967fa2296352c193b9c7e6d0d0371e6a0ac3bbe
|
File details
Details for the file opensheet_core-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 607.9 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fefa2cd442fbb79d608d8a3aed13a8bf4c83ebb902323cac724a0dfce4a6c03
|
|
| MD5 |
0258c45e7b12428ef431b6b90e08c886
|
|
| BLAKE2b-256 |
1611e62e40653555cad67c84df72e4db46793c1315328cb2e55c5a72332c762d
|
File details
Details for the file opensheet_core-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 592.0 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f84fff088993142021d099fbea6fe34bb224064ec7a304715c647f70d75f0e04
|
|
| MD5 |
1d4123a8c4c40a1c82ba1ae2d09db8f4
|
|
| BLAKE2b-256 |
89f6d10376cc6a90b3758b5a50c71bd27fb29f2d937c54a86a0e7826dce4ff41
|
File details
Details for the file opensheet_core-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 556.8 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c6725a4c1b0127ef3dd91eae11299a7d92c74661e905718a50a5deec34946c4
|
|
| MD5 |
5b25628b83aca3603d4c8c81738d4896
|
|
| BLAKE2b-256 |
b716d3395b687aec7d3367057529f712b47d905ca240b621a628e03675b10e1b
|
File details
Details for the file opensheet_core-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 582.0 kB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a0466a79e677392cb4827026fda2b467aca6b78e0807b6af57bfc56f01f79c9
|
|
| MD5 |
62f5b930391186bd12e8b1135fea4db8
|
|
| BLAKE2b-256 |
b3c1566c2177dd275269ea31f79aa91d969d4611cf45d91e64a6048527eea33b
|
File details
Details for the file opensheet_core-0.2.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 491.2 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
855d48ecb7043ccd0c6013b24b57f533999e9e50195b0584ffbc69d0d52bfb62
|
|
| MD5 |
09cdb87db80781619b34c57ae9875d3c
|
|
| BLAKE2b-256 |
70f14f8dd44bc32acb984fb0c23bdaff1fd08767b5862d8acce7f9b67ab92001
|
File details
Details for the file opensheet_core-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 608.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebcb2f9fc281a375863ac9c03b4f1f06e693a75999f748285e0c0cdf076f87a1
|
|
| MD5 |
4cbea6674d3850b1f6c771e71f6543e0
|
|
| BLAKE2b-256 |
5d5cbee8f6ed3cd9ececbb9707e89a0ce0961469e5b957e4762485743a39bdec
|
File details
Details for the file opensheet_core-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 592.3 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64883a34c1ab2351feed67899afcd4a657aa32b9f4e0e5c6f6185c1b50b67410
|
|
| MD5 |
7769ee9d41287810b296d9259f3559a8
|
|
| BLAKE2b-256 |
67e429a63160d9dcd8023644ac2340731929e7188eeb112f2db8dba4d7b2197c
|
File details
Details for the file opensheet_core-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 556.9 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3de5fd28b64e5390ac3cac58dca821d463758408b7a02ad13a5d430afc59d926
|
|
| MD5 |
3bbe694f1ee65f9398370e38d8161f7f
|
|
| BLAKE2b-256 |
d29760e3dd279a54b1af4a9eb9a4a82902589e552342086b6b3821e52b1e1baf
|
File details
Details for the file opensheet_core-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 582.3 kB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b19b929a788906fa31cf66b38003fb658bdb3c55fd57b5b41470434f9a231b8
|
|
| MD5 |
9957e970e609daab21c490ab8f584715
|
|
| BLAKE2b-256 |
c71a024a1b7d9f1330b750a863e8e7dec0744ee24ba4a7cf63be393c5da3672b
|
File details
Details for the file opensheet_core-0.2.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 493.5 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f0f64114fa93af4108091f82af9f1bdcbd52e236e520cbd03150d65b57e0095
|
|
| MD5 |
97a22337979785d358d52e933e5fa244
|
|
| BLAKE2b-256 |
5c425ff3681e8721574c83ceb83b8d461095f460da5bbd57b774cae64619c2a5
|
File details
Details for the file opensheet_core-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 607.0 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75761077507da25b00e552e72974abbf5b6294ef8790d21bcf5679b520f9746b
|
|
| MD5 |
5f207de4cf84340fc074d9d33fa231f2
|
|
| BLAKE2b-256 |
2569e648982ed24f75f920d3876d425d1e643d7772c33955cee670d621c9eba6
|
File details
Details for the file opensheet_core-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 591.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2e17d50caaaf90626395750661011878639455600ac0e1490670948d6c46c43
|
|
| MD5 |
da0f550db46fe2d97fa508455656c6e3
|
|
| BLAKE2b-256 |
b4d7cdf6180eccaceca99cc62cd2e92bba056d5661c7ee6b313ee3fe213871aa
|
File details
Details for the file opensheet_core-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 557.5 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f470f5ab37d3f12e026fd40c260e359ad453656b9fb9cd73980b99f622b40cc7
|
|
| MD5 |
944d4af1a045f0a2e2b46f705b4f94d0
|
|
| BLAKE2b-256 |
51577d2c34cd2d671aad634ce09613382f9652b9f0f7f848890bb38b02a78c13
|
File details
Details for the file opensheet_core-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 583.1 kB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a0a6d60ace9068cbc20616273b8e51b0324d1b2d51247587595d4bfe4b189cc
|
|
| MD5 |
ad1e158f243833cae0e7dfd88668a039
|
|
| BLAKE2b-256 |
3b44d88c661e44a3b0b3e7e018c80a085529017de69abc2054a4444127c0fc65
|
File details
Details for the file opensheet_core-0.2.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 493.6 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe8fd5737ba284c7e112e8eb54c1e9e08600893883a1c56ef906370cf81a722c
|
|
| MD5 |
034cf243e8f66454dfe6a8eff72953b8
|
|
| BLAKE2b-256 |
7a54db3fbfb3e2c860f0b1593c74608878d1b84ba3112c5f355e5feda9f48c7b
|
File details
Details for the file opensheet_core-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 607.2 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5d0296e355478e8e44bf213e087ea9521feb098f2e4ac4faad65b830bd3faf3
|
|
| MD5 |
838ad196bcfc4da670d4f407e9f6f58f
|
|
| BLAKE2b-256 |
64881c4e57ff83daf4f0a280efe3832f5aee88c572143a2dbbf6ac6d0e831ecd
|
File details
Details for the file opensheet_core-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 591.4 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eda251db8a08598a3e1fcc00ec374d4f6a97262e1d488700a07b4447cd11e5a9
|
|
| MD5 |
ce45af9e5e89d93f5aba711a9bf3208c
|
|
| BLAKE2b-256 |
fbdb27d915f1435958142d8c74b7d82ceffbf680c89893118463d8cb8eb56018
|
File details
Details for the file opensheet_core-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 609.7 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e562c3288d2b317eed67052a78490aa6686146ae45f797925e433d507884e1b
|
|
| MD5 |
85a3962efce7f2442a5d01a2f4cdd5c2
|
|
| BLAKE2b-256 |
6f46d11f3e68b1ddf4c8c3ea61a9a8e1897942934205ca0cb7a4786aae86d5ee
|
File details
Details for the file opensheet_core-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: opensheet_core-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 593.9 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29e2467063850f02f9ea99a7dafd963da17efee9e07313f140a491b5d94f2e78
|
|
| MD5 |
17cc9b43065eaaad510dafa26f01b3f0
|
|
| BLAKE2b-256 |
b3cc294e59960382056335ca1c456650b6f6c99e1183d6679c9746ed58a05199
|