Skip to main content

High-performance Python bindings for the BCSV (Binary CSV) library with pandas integration

Project description

PyBCSV — Python Bindings for BCSV Library

High-performance Python bindings for the BCSV (Binary CSV) library — fast, compact time-series storage with pandas integration.

Features

  • High Performance: Binary format with optional LZ4 compression and delta encoding
  • Pandas Integration: Columnar DataFrame read/write via numpy zero-copy
  • Type Safety: Preserves column types and data integrity (10 numeric types + strings)
  • Cross-platform: Linux (x86_64, ARM64), macOS (x86_64, ARM64), Windows (AMD64)
  • Context Managers: All readers/writers support with statements
  • Streaming I/O: Row-by-row read/write, never loads entire file into memory
  • Direct Access: Random-access reads by row index via ReaderDirectAccess
  • Sampler: Bytecode VM for server-side row filtering and column projection
  • CSV Interop: Convert between CSV and BCSV via from_csv() / to_csv()

Installation

pip install pybcsv

# With pandas support
pip install pybcsv[pandas]

Quick Start

Write and Read

import pybcsv

# Define schema
layout = pybcsv.Layout()
layout.add_column("id", pybcsv.INT32)
layout.add_column("name", pybcsv.STRING)
layout.add_column("value", pybcsv.DOUBLE)

# Write rows (context manager auto-closes)
with pybcsv.Writer(layout) as writer:
    writer.open("data.bcsv")
    writer.write_row([1, "Alice", 123.45])
    writer.write_row([2, "Bob", 678.90])

# Read all rows
with pybcsv.Reader() as reader:
    reader.open("data.bcsv")
    for row in reader:          # iterator protocol
        print(row)
    # or: all_rows = reader.read_all()

Pandas Integration

import pybcsv
import pandas as pd

df = pd.DataFrame({
    'id': [1, 2, 3],
    'name': ['Alice', 'Bob', 'Charlie'],
    'value': [123.45, 678.90, 111.22]
})

# Write DataFrame (columnar path, numpy zero-copy for numerics)
pybcsv.write_dataframe(df, "data.bcsv")

# Read back as DataFrame
df_read = pybcsv.read_dataframe("data.bcsv")

CSV Conversion

import pybcsv

pybcsv.from_csv("input.csv", "output.bcsv")   # CSV → BCSV
pybcsv.to_csv("output.bcsv", "output.csv")    # BCSV → CSV

Polars Integration

Zero-copy Polars DataFrame I/O via the Arrow C Data Interface:

import pybcsv

# Read BCSV → Polars DataFrame (zero-copy via Arrow)
df = pybcsv.read_polars("data.bcsv")

# Write Polars DataFrame → BCSV
pybcsv.write_polars(df, "output.bcsv", row_codec="delta")

Install with the optional Polars dependency:

pip install pybcsv[polars]

Random Access

import pybcsv

with pybcsv.ReaderDirectAccess() as da:
    da.open("data.bcsv")
    print(f"Total rows: {len(da)}")
    row = da[42]         # read row 42 directly (O(1) seek)
    print(da.read(100))  # alternative syntax

Available Types

Constant Description
pybcsv.BOOL Boolean
pybcsv.INT8 / pybcsv.UINT8 8-bit integers
pybcsv.INT16 / pybcsv.UINT16 16-bit integers
pybcsv.INT32 / pybcsv.UINT32 32-bit integers
pybcsv.INT64 / pybcsv.UINT64 64-bit integers
pybcsv.FLOAT 32-bit float
pybcsv.DOUBLE 64-bit float
pybcsv.STRING Variable-length string

API Reference

Layout

layout = pybcsv.Layout()                              # empty layout
layout = pybcsv.Layout([ColumnDefinition("x", INT32)]) # from list

layout.add_column(name: str, type: ColumnType)
layout.add_column(col: ColumnDefinition)
layout.column_count() -> int
layout.column_name(index: int) -> str
layout.column_type(index: int) -> ColumnType
layout.has_column(name: str) -> bool
layout.column_index(name: str) -> int
layout.get_column_names() -> list[str]
layout.get_column_types() -> list[ColumnType]
layout.get_column(index: int) -> ColumnDefinition
len(layout)           # column count
layout[i]             # ColumnDefinition at index i

Writer

writer = pybcsv.Writer(layout: Layout, row_codec: str = "delta")
writer.open(filename: str, overwrite: bool = False,
            compression_level: int = 1, block_size_kb: int = 64,
            flags: FileFlags = FileFlags.BATCH_COMPRESS)  # raises RuntimeError on failure
writer.write_row(values: list)
writer.write_rows(rows: list[list])     # batch write
writer.flush()
writer.close()
writer.is_open() -> bool
writer.row_count() -> int
writer.row_codec() -> str
writer.compression_level() -> int
writer.layout() -> Layout

# Context manager
with pybcsv.Writer(layout) as w:
    w.open("out.bcsv")
    w.write_row([...])

Row codec options: "flat", "zoh" (zero-order hold), "delta" (default).

Reader

reader = pybcsv.Reader()
reader.open(filename: str)              # raises RuntimeError on failure
reader.read_next() -> bool              # advance to next row
reader.read_row() -> list | None        # read+advance, None at EOF
reader.read_all() -> list[list]         # read remaining rows
reader.close()
reader.is_open() -> bool
reader.layout() -> Layout
reader.row_pos() -> int                 # current row index
reader.row_value(column: int) -> Any    # typed value from current row
reader.row_dict() -> dict               # current row as {name: value}
reader.file_flags() -> FileFlags
reader.compression_level() -> int
reader.version_string() -> str
reader.creation_time() -> str
reader.count_rows() -> int              # total row count

# Iterator protocol
for row in reader:
    print(row)

# Context manager
with pybcsv.Reader() as r:
    r.open("data.bcsv")
    for row in r:
        print(row)

ReaderDirectAccess

Random-access reader — reads any row by index without scanning.

da = pybcsv.ReaderDirectAccess()
da.open(filename: str, rebuild_footer: bool = False)
da.read(index: int) -> list             # read row at index
da.row_count() -> int
da.layout() -> Layout
da.close()
da.is_open() -> bool
da.file_flags() -> FileFlags
da.compression_level() -> int
da.version_string() -> str
da.creation_time() -> str

len(da)               # row count
da[i]                 # read row at index i

CsvWriter / CsvReader

Native CSV I/O with the same Layout-based schema.

# Write CSV
csv_w = pybcsv.CsvWriter(layout, delimiter=',', decimal_sep='.')
csv_w.open(filename, overwrite=False, include_header=True)
csv_w.write_row(values)
csv_w.write_rows(rows)
csv_w.close()

# Read CSV
csv_r = pybcsv.CsvReader(layout, delimiter=',', decimal_sep='.')
csv_r.open(filename, has_header=True)
for row in csv_r:       # iterator support
    print(row)
csv_r.close()

Sampler

Bytecode VM for filtering and projecting rows from an open Reader.

reader = pybcsv.Reader()
reader.open("data.bcsv")

sampler = pybcsv.Sampler(reader)
sampler.set_conditional("col_a > 10")    # filter expression
sampler.set_selection("col_a, col_b")    # column projection

result = sampler.output_layout()         # SamplerCompileResult (bool-testable)
if result:
    for row in sampler:                  # iterate matching rows
        print(row)

FileFlags

pybcsv.FileFlags.NONE
pybcsv.FileFlags.ZERO_ORDER_HOLD
pybcsv.FileFlags.NO_FILE_INDEX
pybcsv.FileFlags.STREAM_MODE
pybcsv.FileFlags.BATCH_COMPRESS
pybcsv.FileFlags.DELTA_ENCODING

# Combinable with | and &
flags = pybcsv.FileFlags.BATCH_COMPRESS | pybcsv.FileFlags.NO_FILE_INDEX

Utility Functions

# Pandas integration (requires pandas)
pybcsv.write_dataframe(df, filename,
                       compression_level=1,
                       row_codec="delta",
                       type_hints=None)  # dict[str, ColumnType]
pybcsv.read_dataframe(filename, columns=None)  # -> pd.DataFrame

# CSV conversion (requires pandas)
pybcsv.from_csv(csv_file, bcsv_file, compression_level=1, type_hints=None)
pybcsv.to_csv(bcsv_file, csv_file)

# Columnar I/O (numpy arrays)
pybcsv.read_columns(filename) -> dict[str, np.ndarray | list[str]]
pybcsv.write_columns(filename, columns, col_order, col_types,
                     row_codec="delta", compression_level=1)
# Type utilities
pybcsv.type_to_string(column_type) -> str

Testing

pip install pybcsv[test]
python -m pytest tests/ -v

File Structure

python/
├── pybcsv/
│   ├── __init__.py           # Public API and exports
│   ├── __version__.py        # Version (setuptools-scm)
│   ├── bindings.cpp          # C++ nanobind bindings
│   └── pandas_utils.py       # Pandas/CSV integration
├── examples/
│   ├── basic_usage.py        # Core BCSV operations
│   ├── pandas_integration.py # DataFrame examples
│   ├── advanced_usage.py     # DirectAccess, Sampler, CSV, columnar I/O
│   └── performance_benchmark.py
├── tests/                    # 17 test modules (pytest)
├── benchmarks/               # Python benchmark runner
├── pyproject.toml
└── README.md

Known Limitations

  • Arrow string columns: 2 GB per batch. The Arrow C Data Interface uses utf8 format ("u") with int32 offsets, limiting the total byte size of any single string column within one batch to ~2 GB. An OverflowError is raised at runtime if this limit is exceeded. For most workloads this is not an issue. If you hit this limit, consider splitting data into smaller batches.

  • No native null/missing value support. BCSV is a fixed-width binary format without a null bitmap. When writing a pandas DataFrame with NaN/None values, they are coerced to zero, False, or empty string by default (with a warning). Use strict=True in write_dataframe() to reject NaN values instead.

Compatibility

  • Python: 3.11, 3.12, 3.13
  • Platforms: Linux (x86_64, ARM64), macOS (x86_64, ARM64), Windows (AMD64)
  • Compilers: GCC 13+, Clang 16+, MSVC 2022 17.4+, Apple Clang (Xcode 15.4+)
  • C++ Standard: C++20
  • Dependencies:
    • numpy >= 1.19.0 (required)
    • pandas >= 1.0.0 (optional — pip install pybcsv[pandas])

License

MIT — see LICENSE for details.

Publishing

Wheels are built automatically via GitHub Actions (cibuildwheel) and published using Trusted Publisher (OIDC) — no API tokens required.

  • TestPyPI: every push to main/master or version tags
  • PyPI: only on v* tags (e.g. git tag v1.4.0 && git push origin v1.4.0)
  1. Trigger the publish workflow:
  • The workflow triggers on pushes to the release branch or via manual workflow_dispatch.
  1. Install from TestPyPI for verification:
# in a fresh virtualenv
python -m venv venv && source venv/bin/activate
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple pybcsv
python -c "import pybcsv; print(pybcsv.__version__)"

If the import and version check succeed the wheel is good for release.

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

pybcsv-1.5.3.tar.gz (397.8 kB view details)

Uploaded Source

Built Distributions

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

pybcsv-1.5.3-cp313-cp313-win_amd64.whl (370.4 kB view details)

Uploaded CPython 3.13Windows x86-64

pybcsv-1.5.3-cp313-cp313-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pybcsv-1.5.3-cp313-cp313-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

pybcsv-1.5.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (726.4 kB view details)

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

pybcsv-1.5.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (669.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pybcsv-1.5.3-cp313-cp313-macosx_13_0_x86_64.whl (423.9 kB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

pybcsv-1.5.3-cp313-cp313-macosx_13_0_arm64.whl (393.8 kB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

pybcsv-1.5.3-cp312-cp312-win_amd64.whl (370.4 kB view details)

Uploaded CPython 3.12Windows x86-64

pybcsv-1.5.3-cp312-cp312-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pybcsv-1.5.3-cp312-cp312-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

pybcsv-1.5.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (726.5 kB view details)

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

pybcsv-1.5.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (669.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pybcsv-1.5.3-cp312-cp312-macosx_13_0_x86_64.whl (424.0 kB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

pybcsv-1.5.3-cp312-cp312-macosx_13_0_arm64.whl (393.8 kB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

pybcsv-1.5.3-cp311-cp311-win_amd64.whl (370.5 kB view details)

Uploaded CPython 3.11Windows x86-64

pybcsv-1.5.3-cp311-cp311-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pybcsv-1.5.3-cp311-cp311-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pybcsv-1.5.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (729.0 kB view details)

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

pybcsv-1.5.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (670.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pybcsv-1.5.3-cp311-cp311-macosx_13_0_x86_64.whl (423.1 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

pybcsv-1.5.3-cp311-cp311-macosx_13_0_arm64.whl (394.0 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

File details

Details for the file pybcsv-1.5.3.tar.gz.

File metadata

  • Download URL: pybcsv-1.5.3.tar.gz
  • Upload date:
  • Size: 397.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pybcsv-1.5.3.tar.gz
Algorithm Hash digest
SHA256 a8e9a29e7ed909ef9ff1aaecc8e17b7741008fc9b9753b4669cde4e5462f41d8
MD5 f73f46210d3adf3d5a544d2c57d522ef
BLAKE2b-256 739bb317064771c19d4d161b30183ccbde3da1e5cd6b37adc8f9081f6171714d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3.tar.gz:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pybcsv-1.5.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 370.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pybcsv-1.5.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3a58daaf1d7076893f7873be7644e9bac780b4fc93eeb8b8c62fe7c221007608
MD5 78e2327524824d0cc5c9c302f2726ce4
BLAKE2b-256 1e718ff8ba275f84ffb799568b3cfbd1f10a84999856ecdc2af32af412e919f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp313-cp313-win_amd64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 543b9a998e44da477508763ab070c1d9ae85366175a2433daa7c30a3569d938a
MD5 3dacd7c9d6bb1861a8bafdefb1e13ae2
BLAKE2b-256 7b67313eb975679e9e535cb91049ba75a71f020f645299b2e2478137bb9c0136

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 70e3453019a9f2618561a38bc6de58534d2b50487c38f121dfb3ce35e4e26456
MD5 d83261c8dba5eb622dc8216afb789072
BLAKE2b-256 3320ea5d5c12fd2986bbc1b892bae205eed4b5b2dab9f5b8097724d71f2d5bc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fbb049b73c103ac80112aee34055003234ff4300c731eff8f26c55c7d7a7296e
MD5 44e70d8b6b1c6421c4883e8fd7c4b3c9
BLAKE2b-256 afba99f27989a89079fb2208aa5ec4418d028f2a48e81f0ae63fd1aa2f0c7aef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 af2c18f7fe43059d7362f9daa4c4babc45701c4714ca95a5e1002b49866c5259
MD5 a96c3e18eed144bd61f2155a5a6b085f
BLAKE2b-256 af6887d18cf4f95f064ffce5ae6461c7d2a7a54f419743e196da4aebc6925b6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0b385f3d8a1fd90f92fbdf163b12b8a9b1105603bea2ae4f3a177690600db527
MD5 76ac2817329bf6887ca1dc3a4da52ede
BLAKE2b-256 96c0db846891135e4fc516156fa4199fe394e49036aa293919826e2b37658625

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp313-cp313-macosx_13_0_x86_64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 9510b4b65750833e0f75c5e1bced7c3ee843a70e2288b382154c9389208e0a01
MD5 f2cac1ee4e2f4f3ffb16ab93c1b80c3d
BLAKE2b-256 6f8ab901332d35c302bd48298675275eca7f38cd38c5494558f54b58dae8034b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp313-cp313-macosx_13_0_arm64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pybcsv-1.5.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 370.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pybcsv-1.5.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1a54908cfb0ede6e9605a4f46919f15a7d84e555d012ff3011ccf37dcf1e52ef
MD5 e959d231e2bb404ebcea9b2a0309d166
BLAKE2b-256 8df6a83702a4615bd4c8f5b94c9ee933c8980aca92c2f6907dbf47dd2da946d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp312-cp312-win_amd64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 98884cd526bc84a25dba0994ac6f3b19b378fffb87f9a20be576828708e588d3
MD5 1add362f71c5d37ba16cdf4805489f6d
BLAKE2b-256 e7bce5a9fce48e9583f04ac6e29f25ae57e8a24f81c6a7eb951c4a12db0ce62d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bfc5af1dc0cb7485e8af40a17e882fb3afc6b5392c988b84589baef2ae60095a
MD5 64cf59760a38922ed2a4d6d38fc8cd8c
BLAKE2b-256 28f1b5f988b0c6d9c95329f174d86d2ecab48d2957319c10d89421422a48afd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7722147e29022c0c68c026ca313220ed7ce5dc6981cf0d558a149a4e34335b0d
MD5 e70c72a5af7fb1d2fb8011e4c28ab1f8
BLAKE2b-256 d14db7976fb91ab98e425ad8a531a951e19a558f20a1ea6cb893e2ec0fa14a77

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5be69d3b196b9c66bae9ab99412c101f9676a8c1efd59ecdc04382f6fdd8471b
MD5 556c05459587d848a83c749a9d6ebb63
BLAKE2b-256 6b167b5805a55fc94060bb449c941bea3ee907dc57f67942831ab73d0dbb4f56

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 24fa9d91243c8b11a847154b901c397d031161591711b09979740a1f654ad1c9
MD5 fbcb0bb3a7460f146b1f86742d46b6c7
BLAKE2b-256 bdb8d9fb299145ad8f9fcc0d4c73ec1e6ed15000fb359d8cc792808662d8887e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp312-cp312-macosx_13_0_x86_64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 ac0a78573fc319ef734b17f01026b9c3e742826e5aaee9bfa0d96c2b8ca63988
MD5 272bbd53d7122c053bee9df419020efa
BLAKE2b-256 b7b2f01850ec81d3ffd5a0e8dae312112aa1321a569322f70eb8fb7ff3d1c5a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp312-cp312-macosx_13_0_arm64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pybcsv-1.5.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 370.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pybcsv-1.5.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 336880a1bf27702d1f8f3824fb06b30b37a1a05d174acbdc2a706b2c2d391c70
MD5 caf62d1e98a0227845ad8d0c4cefcd08
BLAKE2b-256 c58252076fb89f2ca0ffa7f2f1d0b87a24e1870bb99ccb2842a6341755e336bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp311-cp311-win_amd64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e97f4434a6ff3909edd840c79bdf1009fc929837187d21001935e05a31ba8de0
MD5 fb6313273d97997af93613ba31b7bd26
BLAKE2b-256 da20907ca265cb956a6e17f8ad3c98aed05637f384de36ddd7d9e065f4a869be

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9fba2dbe945565a6b963a6a2bcc3754b759c012946fac26aea1c31ee353bae33
MD5 e89ffbbd602be68aaeaf5546d24c8e7c
BLAKE2b-256 04249336ba4e944d8127124fd664c161949fd8d89bbf112c81bebfbe4acf57e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7d6d242f6311516dafb9eb28ae37d2bc0af29b20614f467d2fde2cc20f3d0519
MD5 c22017e6400bc80b0a55b2e1f9ecc0b2
BLAKE2b-256 958caff97385f1affeb458c9bd65f54ad3d303b1ed457e16bd45cdb4282dc941

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 961c745982a0c1bf0d4171b484e4ce423fb81071b8b5c1437d3deec252676555
MD5 9b651360406209e03551f2700b292cdd
BLAKE2b-256 efbe7cacc08dcab4609d3e5050bc5aa57d12e656d39ee2cb1abac2968872ea6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 65cbf7e7ada6826e6435c572cecdef44f4ce302e432c11f71d40dc180043591a
MD5 fcf9ecbbb6d599941304ceabb83600cc
BLAKE2b-256 d457908f87bf83e6579113922f35c184d5d6f6e99183c88717c4b3866314d2f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp311-cp311-macosx_13_0_x86_64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybcsv-1.5.3-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for pybcsv-1.5.3-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 f168dc7729d222b6191f18aee4b16b44821dd36dc0795fc6cf35ab6eaba9e4ed
MD5 84d53b8387d9cb79eaa5a16653a15ef9
BLAKE2b-256 c6879b33d43ad58a8acc66bbb30f79a1971444b402088dea1149acd53c4f0e20

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybcsv-1.5.3-cp311-cp311-macosx_13_0_arm64.whl:

Publisher: build-and-publish.yml on webertob/bcsv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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