Skip to main content

flexablelib

Flexible Table Library — console and HTML tables for Python.

PyPI version Python versions Downloads per month Development status License


flexablelib

Flexible Table Library

Python package for formatting tabular data as console and HTML tables: border styles, cell merges, ANSI colors, per-type and decimal alignment, width fitting, I/O helpers, and optional C-accelerated text measurement.

Installation

pip install flexablelib on Windows.

pip3 install flexablelib on Linux

Prebuilt wheels (with the C speedups) are published for Linux (manylinux/musllinux), Windows (x64) and macOS (arm64); other platforms build from the sdist or fall back to pure Python.

Windows console encoding

Box-drawing styles (┌─┐, ╔═╗, ...) need a UTF-8 console. Legacy cp1252 consoles raise UnicodeEncodeError for them, while ASCII styles work everywhere. Enable UTF-8 with either:

chcp 65001
set PYTHONUTF8=1

(PowerShell: $env:PYTHONUTF8=1.) Windows Terminal with Python 3.8+ is usually UTF-8 already.

Usage

Creating a table is simple.

Code Example

from flexablelib import Table

new_table = Table()
print(new_table)

Output

++
++
++

This is an empty table. It has no data so it only displays this strange thing.

A table that has columns but no rows — a query that came back empty — shows its headers rather than raising:

┌──────┬───────┐
│ name │ value │
╞══════╪═══════╡
└──────┴───────┘

It's possible to add data as columns or rows, or even alternating each one. Any untitled column will be named automatically.

Code Example

new_table.add_column('Name', ['Jade', 'John', 'Jane'])
new_table.add_column('Age', [20, 30, 40])
new_table.add_column('Results', [9.651, 3, 245.7])
print(new_table)

Output

+----------------------+
| Name   Age   Results |
+======+=====+=========+
| Jade |  20 |   9.651 |
| John |  30 |   3     |
| Jane |  40 | 245.7   |
+------+-----+---------+

Code Example

new_table = Table()
new_table.add_column('Name', ['Jade', 'John', 'Jane'])
new_table.add_column('Age', [20, 30, 40])
new_table.add_column('Test\nResults', [9.651, 3, 245.7])
new_table.add_row(['Piotr\nBaltimore', 27, 3.5])
new_table.add_row(['Sam', 21, 0.6519])
print(new_table)

Output

+----------------------------+
| Name        Age       Test |
|                    Results |
+===========+=====+==========+
| Jade      |  20 |   9.651  |
| John      |  30 |   3      |
| Jane      |  40 | 245.7    |
| Piotr     |  27 |   3.5    |
| Baltimore |     |          |
| Sam       |  21 |   0.6519 |
+-----------+-----+----------+

As it is visible, the table will format automatically new lines and data types, for now without trying to parse strings that could be converted to another type.

The Table class offers a variety of options that allow things like showing the index of each row, changing the style of the table, hiding the headers, etc.

See style examples here.

Code Example

new_table = Table()
new_table.add_column('Name', ['Jade', 'John'])
new_table.add_column('Age', [20, 30])
new_table.add_column('Test\nResults', [9.651, 3, 245.7])
new_table.add_row(['Piotr\nBaltimore', 27, 3.5])
new_table.add_row(['Sam', 21])
new_table.show_index = True
new_table.style_name = 'pretty_columns'
new_table.missing_value = '?'
print(new_table)

Output

╒═══╤═══════════╤═════╤═════════╕
│ i │ Name      │ Age │    Test │
│   │           │     │ Results │
╞═══╪═══════════╪═════╪═════════╡
│ 0 │ Jade      │  20 │   9.651 │
│ 1 │ John      │  30 │   3     │
│ 2 │ ?         │   ? │ 245.7   │
│ 3 │ Piotr     │  27 │   3.5   │
│   │ Baltimore │     │         │
│ 4 │ Sam       │  21 │       ? │
╘═══╧═══════════╧═════╧═════════╛

The missing value aligns as if it was of the same type of the other data in the column.

This shows how to get the row and column count. If the index is shown, this count remains unaffected by that column, although, you can get the internal count.

Code Example

new_table.show_index = False
new_table.show_headers = False
print(new_table)
print('row:', new_table.row_count)
print('columns:', new_table.column_count)
new_table.show_index = True
print(new_table)
print('internal_row_count:', new_table.internal_row_count)
print('internal_column_count:', new_table.internal_column_count)

Output

╒═══════════╤════╤═════════╕
│ Jade      │ 20 │   9.651 │
│ John      │ 30 │   3     │
│ ?         │  ? │ 245.7   │
│ Piotr     │ 27 │   3.5   │
│ Baltimore │    │         │
│ Sam       │ 21 │       ? │
╘═══════════╧════╧═════════╛
row: 5
columns: 3
╒═══╤═══════════╤════╤═════════╕
│ 0 │ Jade      │ 20 │   9.651 │
│ 1 │ John      │ 30 │   3     │
│ 2 │ ?         │  ? │ 245.7   │
│ 3 │ Piotr     │ 27 │   3.5   │
│   │ Baltimore │    │         │
│ 4 │ Sam       │ 21 │       ? │
╘═══╧═══════════╧════╧═════════╛
internal_row_count: 5
internal_column_count: 4

Colour

Colour the header, the borders, whole columns, whole rows, or individual cells. Specs accept names, attributes, 256-colour indexes and hex triples.

table.header_color = 'bold cyan'
table.border_color = 'grey'
table.column_colors = {'Service': 'bright_white'}
table.color_rule = lambda value, row, column: (
    'red' if column == 'Delta' and value < 0 else None
)

color_rule receives the original value, so numeric comparisons work directly.

Colour is emitted only to a terminal by default, and never when NO_COLOR is set. FORCE_COLOR or table.use_colors = True overrides that. Because compose() returns a string you may send anywhere, the default errs toward not embedding escape sequences in something bound for a file.

Widths are measured in terminal columns, not characters, so coloured cells and CJK or emoji data stay aligned.

Reading and writing

Table.from_csv('sales.csv')          # numeric columns parsed and aligned
Table.from_html(markup)              # standard library parser, no dependency
Table.from_dicts(records)
Table.from_pandas(dataframe)         # pip install flexablelib[pandas]
Table.from_excel('report.xlsx')      # pip install flexablelib[excel]

table.to_csv('out.csv')
table.to_markdown()
table.to_html('report.html', paginate=25)
table.to_excel('report.xlsx')

to_html writes one self-contained file — the stylesheet and the sorting, filtering and pagination script are inline — so it works offline and from a file:// URL.

Text formats deliver everything as strings, and a column of strings is left-aligned. parse_str_numbers converts numeric-looking text so it aligns as numbers; the readers turn it on for you:

table.parse_str_numbers = True

Values with leading zeros are left alone, so '007' stays a string.

Merging cells

Render a rectangular block as a single cell, across columns, down rows, or both. Coordinates are inclusive, zero-based, and ignore the index column.

table.merge_cells(0, 0, last_column=2, value='Quarter summary')
table.merge_cells(1, 0, last_row=3)                # keeps the top-left content
table.merge_cells(0, 0, 2, 2, value='Total', align='r')

A merge never widens the table -- columns are still sized by their unmerged content -- so text longer than its span is truncated.

Performance

An optional C extension accelerates text measurement, and the render pipeline avoids the second measuring pass when the table already fits. On identical data:

Library 100x4 2000x4 10000x6
flexablelib 1.0 ms 16.9 ms 147 ms
prettytable 1.4 ms 23.2 ms 174 ms
tabulate 1.7 ms 27.5 ms 193 ms
pandas .to_string() 1.7 ms 22.9 ms 228 ms

Reproduce with python3 tools/benchmark.py. This measures one job: turning data already in memory into formatted text. pandas is an analysis engine and to_string is a convenience within it, so this says nothing about groupby or joins.

The extension is built automatically where a compiler is available and falls back to pure Python where it is not, so installation never fails for want of a toolchain.

from flexablelib.fast import implementation
print(implementation())   # 'C extension' or 'pure Python'

Notes

  • A column named "i" does not collide with the index column (utils.IndexColumnTitle).
  • Exponential numbers align on the decimal / exponent axis with the rest of the float column.
  • Shrinking a float column drops decimals instead of chopping characters, so decimal alignment survives a terminal fit (#23).

Open work and the issue map: docs/ISSUES.md.

Project Layout

flexablelib/                 # GitHub repository
├── flexablelib/            the Python package (no runtime dependencies)
│   ├── __init__.py          public API: Table, TableComposition, SeparatorLine
│   ├── table.py             the Table class — state and render orchestration
│   ├── columns.py           type inference, alignment, column widths
│   ├── style_compositions.py   the 42 border styles, as data
│   ├── table_strings.py     separator lines and data rows
│   ├── cells.py             cell padding, justification, wrapping
│   ├── options.py           constants and defaults
│   └── utils.py             type predicates and small helpers
├── tests/                   pytest suite — see ARCHITECTURE.md#testing
├── docs/                    issue history and design notes
├── logos/                   brand assets — see logos/README.md
├── ARCHITECTURE.md          how it all fits together
├── style_examples.md        all 56 styles rendered
├── package.json             canonical version number; drives the release
└── setup.py                 reads the version from package.json

Run the tests from the repository root:

pip install -r requirements-dev.txt
python -m pytest

See ARCHITECTURE.md for the rendering pipeline, how styles are defined, and how to add one.

Metadata

Release files for flexablelib 2.0.16

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

Source distribution (sdist)

Source distribution for flexablelib 2.0.16
File Size Uploaded Provenance Actions
flexablelib-2.0.16.tar.gz 172.9 kB Without provenance Details for flexablelib-2.0.16.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for flexablelib 2.0.16
File Actions
flexablelib-2.0.16-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for flexablelib-2.0.16-cp313-cp313-win_amd64.whl
flexablelib-2.0.16-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for flexablelib-2.0.16-cp313-cp313-musllinux_1_2_x86_64.whl
flexablelib-2.0.16-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.0.16-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.16-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for flexablelib-2.0.16-cp313-cp313-macosx_11_0_arm64.whl
flexablelib-2.0.16-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for flexablelib-2.0.16-cp312-cp312-win_amd64.whl
flexablelib-2.0.16-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for flexablelib-2.0.16-cp312-cp312-musllinux_1_2_x86_64.whl
flexablelib-2.0.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.0.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.16-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for flexablelib-2.0.16-cp312-cp312-macosx_11_0_arm64.whl
flexablelib-2.0.16-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for flexablelib-2.0.16-cp311-cp311-win_amd64.whl
flexablelib-2.0.16-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for flexablelib-2.0.16-cp311-cp311-musllinux_1_2_x86_64.whl
flexablelib-2.0.16-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.0.16-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.16-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for flexablelib-2.0.16-cp311-cp311-macosx_11_0_arm64.whl
flexablelib-2.0.16-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for flexablelib-2.0.16-cp310-cp310-win_amd64.whl
flexablelib-2.0.16-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for flexablelib-2.0.16-cp310-cp310-musllinux_1_2_x86_64.whl
flexablelib-2.0.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.0.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.16-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for flexablelib-2.0.16-cp310-cp310-macosx_11_0_arm64.whl
flexablelib-2.0.16-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for flexablelib-2.0.16-cp39-cp39-win_amd64.whl
flexablelib-2.0.16-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details for flexablelib-2.0.16-cp39-cp39-musllinux_1_2_x86_64.whl
flexablelib-2.0.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.0.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.16-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for flexablelib-2.0.16-cp39-cp39-macosx_11_0_arm64.whl
flexablelib-2.0.16-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for flexablelib-2.0.16-cp38-cp38-win_amd64.whl
flexablelib-2.0.16-cp38-cp38-musllinux_1_2_x86_64.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ x86-64 Details for flexablelib-2.0.16-cp38-cp38-musllinux_1_2_x86_64.whl
flexablelib-2.0.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details for flexablelib-2.0.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.16-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details for flexablelib-2.0.16-cp38-cp38-macosx_11_0_arm64.whl

Total release size: 3.3 MB

Release files / flexablelib-2.0.16.tar.gz

Download URL flexablelib-2.0.16.tar.gz
Size 172.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2213efb2c55093b6267ddc13effb68f176aec1348330fccbd7179e56b8c5b24e
BLAKE2b-256 checksum
How to use checksums
d5909526bed333905146818aecf63639ceda552e4a668085c2f57a902128f69f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / flexablelib-2.0.16-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.0.16-cp313-cp313-win_amd64.whl
Size 123.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
72b0fcc26e00e0f5aa02d5a9000695664361f06952a565ebd58860a7556882f8
BLAKE2b-256 checksum
How to use checksums
1d7c9dd0d9fd0048b8ddea84b7b2188c20f1d57e2c3b91f5ca16beb1c089ed77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.16-cp313-cp313-musllinux_1_2_x86_64.whl
Size 137.2 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d4863852bf5fe365a7ab02421e72d596e29a0776b735ffbce0a9e6dd0473b998
BLAKE2b-256 checksum
How to use checksums
e942f0b632d539008e02a279a18b619ac8b3e9d5ede4212af62f24dc52cce79c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.16-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 137.5 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
e6b5af9ed1bcb004896163d703690fa91fe3aa274068e8c20fc92f61b666fb74
BLAKE2b-256 checksum
How to use checksums
f673c3d7add27199b8ffb8b6a060b1ced2525ea539101b242ba6fb19fc272aff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.16-cp313-cp313-macosx_11_0_arm64.whl
Size 120.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9ce46c8beb51f3cd5835983fd5604957f0f9a39390d604ef753407cf1d56c692
BLAKE2b-256 checksum
How to use checksums
55bbfd715ecfb8bb8163493935720a61fcf843ecb816bbf8527c07be282b65cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.0.16-cp312-cp312-win_amd64.whl
Size 123.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f0bd1d8c0f933eedabc5fd791fe7012aad625dd8011bce1a9a07bca201222fb1
BLAKE2b-256 checksum
How to use checksums
af5e88140a56994dcb8fc504ddbd0cf7307a9fc82e55a0836406527cf6b586d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.16-cp312-cp312-musllinux_1_2_x86_64.whl
Size 137.1 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
51456953adb2d98c219193d77bb748c4fce9c6a1c4a36b5c010413d5cc3e7155
BLAKE2b-256 checksum
How to use checksums
761867e72b1e64da9c6acf58370cf08ad5872f4483e65c4934b143a34495a4d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 137.6 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
ef6acfb8760df15ee81cf21f42778c4ab35f3d0a05dd69b8f4a9613301e73534
BLAKE2b-256 checksum
How to use checksums
097344840a63ecfcfae119d3f61dbc6228ef6538ff61b9ea27562aa6ddc4964f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.16-cp312-cp312-macosx_11_0_arm64.whl
Size 120.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9e57b30b398a8df6fa996af98b5c46fcf76df272bc3a98e7a16970c99d3e502b
BLAKE2b-256 checksum
How to use checksums
268349b6fca37dbcbe40f8a376c316df4ee5091711351a7adbd2d7b17172e723
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.0.16-cp311-cp311-win_amd64.whl
Size 123.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
a41bac20765424eec0b9b7099199a25aadb9784ae537b0ac316066473b8ae511
BLAKE2b-256 checksum
How to use checksums
450b5586d0cfca100a51083929f9ffb3e2c2d7591b39434376d2dcdb3e4d8d15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.16-cp311-cp311-musllinux_1_2_x86_64.whl
Size 137.1 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
836d70b2be8ac4bad795a6e3ce021f6eb956ffeac5b6f23723d682d92a6b765c
BLAKE2b-256 checksum
How to use checksums
991540f297f0d3357f0e90239bb514feff5e5b31c81257870eec87133fdacc47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.16-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 137.4 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
72bf6c563412a7f0bd5a614d1f31afdca9a51b92da4632244c251961ad7b1efd
BLAKE2b-256 checksum
How to use checksums
2e33cf08e92059d7f4a79e4a2f18c5dafa2b23da7a47edd16c1de0228b696eac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.16-cp311-cp311-macosx_11_0_arm64.whl
Size 120.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e31dd8a406c78e49edcd9dd1aa54d9c51f10294c0aa3b057c8b3e89996b8dae6
BLAKE2b-256 checksum
How to use checksums
c63c9084095207e3c468a73408ece0b043adc272fef75c37e49f0151c4330022
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.0.16-cp310-cp310-win_amd64.whl
Size 123.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
ec687718752236aadff7999d33528384840ebefee2f39e206b94694129331e03
BLAKE2b-256 checksum
How to use checksums
a70aedec4d599f5973a774ca88fd7b7c116ee3e70befd1ab16f12058285017b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.16-cp310-cp310-musllinux_1_2_x86_64.whl
Size 134.7 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d7b4b26cf20701261201f3d7616c674852f53e9f8697d2237193f992a691ec88
BLAKE2b-256 checksum
How to use checksums
d49de4c7eb3d3814412d0874ceca1af80ca2e144ecabfdfa01c5655193d05a2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 134.8 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
33433d3575a34946be129b70b86159920fcf45c8ef7dc01d482d948ddc405fe3
BLAKE2b-256 checksum
How to use checksums
80ce11e92a47cf322ac6732dd1a0298cb8139590a177962b271e5f5f59e2b3eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.16-cp310-cp310-macosx_11_0_arm64.whl
Size 120.7 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
73344f684859d3841bf69324af142ad010cc55e8112c1306fd86b2ff23fb315c
BLAKE2b-256 checksum
How to use checksums
140e45e857f078485b96681eaf7a4d916a0bcf4dc1241d1705061a7bfa16861e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.0.16-cp39-cp39-win_amd64.whl
Size 123.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
875e05b21748ec9fa60a483bb93522987a0e57a7e1f69dd73cd90314ad495a79
BLAKE2b-256 checksum
How to use checksums
7deb2fe53f3cf34621bf608acfe191087cafc404d1a285117d8b6ababce203a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.16-cp39-cp39-musllinux_1_2_x86_64.whl
Size 134.6 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d99c4fbfae788c444a8029991cfa0db3dbc345a743e855377a69c2f2c7f19596
BLAKE2b-256 checksum
How to use checksums
557c81fab3f9ac6aaefa7e25b5ee3e034baedeefff553bdf13f70d17e26b957f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 134.6 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
eb073d3fd8b0167bdbfb3ff7d4e5c8f4ad811eb9391981603a9aea2c8482f603
BLAKE2b-256 checksum
How to use checksums
9f2a9fba4eb41f0ccaddecb7f2a328c48546bef068d54647c44cdd82f7478610
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.16-cp39-cp39-macosx_11_0_arm64.whl
Size 120.7 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bb78c7839ad7d6d406df7fc1a14fc2eabf1310c22db7361c14b92da529c7631e
BLAKE2b-256 checksum
How to use checksums
5409e3b2239a00e9e04ab7dd630f22f7a8ef542fa95af85dab920a40c6c98c60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.0.16-cp38-cp38-win_amd64.whl
Size 123.1 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
954b0db1ffcb45cabf44cdfe1d359a595727054ef28d77c037ce9bc8cb5614dc
BLAKE2b-256 checksum
How to use checksums
a77e81f9d521e43920d5d5eac8017630711c49d655ca059f6c4d0b04061f25a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.16-cp38-cp38-musllinux_1_2_x86_64.whl
Size 134.3 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
bcf6254db5bda127e907ec64f8c757f5b5aec359fe7f4dd51890c1e28deac130
BLAKE2b-256 checksum
How to use checksums
a7584aacafd6d1f9b7e4db41b72ed2925a936a128223250cab5e502426baa70d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 134.9 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
4fe8a0bfdff3612b94c86bcd6ad714126566d40511d6a9722cc016ff2a4b5f68
BLAKE2b-256 checksum
How to use checksums
926c3f778b40c116c51966015b2974c51dda8933489e8fdad936fb93b1541a5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.16-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.16-cp38-cp38-macosx_11_0_arm64.whl
Size 120.4 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
10c155e22f5e57e0f862e3f9206351ee6a90522bd168f0bf3ea021eade3b2618
BLAKE2b-256 checksum
How to use checksums
f5af3370139682515be3ceded46673f7e8063fafde576a8dfd4918647d9c9032
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for flexablelib 2.0.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

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

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.0.16 This release

25 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page