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.12

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.12
File Size Uploaded Provenance Actions
flexablelib-2.0.12.tar.gz 153.5 kB Without provenance Details for flexablelib-2.0.12.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for flexablelib 2.0.12
File Actions
flexablelib-2.0.12-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for flexablelib-2.0.12-cp313-cp313-win_amd64.whl
flexablelib-2.0.12-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.12-cp313-cp313-musllinux_1_2_x86_64.whl
flexablelib-2.0.12-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.5+ x86-64, Linux glibc 2.17+ x86-64 Details for flexablelib-2.0.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.12-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for flexablelib-2.0.12-cp313-cp313-macosx_11_0_arm64.whl
flexablelib-2.0.12-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for flexablelib-2.0.12-cp312-cp312-win_amd64.whl
flexablelib-2.0.12-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.12-cp312-cp312-musllinux_1_2_x86_64.whl
flexablelib-2.0.12-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.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.12-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for flexablelib-2.0.12-cp312-cp312-macosx_11_0_arm64.whl
flexablelib-2.0.12-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for flexablelib-2.0.12-cp311-cp311-win_amd64.whl
flexablelib-2.0.12-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.12-cp311-cp311-musllinux_1_2_x86_64.whl
flexablelib-2.0.12-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.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.12-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for flexablelib-2.0.12-cp311-cp311-macosx_11_0_arm64.whl
flexablelib-2.0.12-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for flexablelib-2.0.12-cp310-cp310-win_amd64.whl
flexablelib-2.0.12-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.12-cp310-cp310-musllinux_1_2_x86_64.whl
flexablelib-2.0.12-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.5+ x86-64, Linux glibc 2.17+ x86-64 Details for flexablelib-2.0.12-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.12-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for flexablelib-2.0.12-cp310-cp310-macosx_11_0_arm64.whl
flexablelib-2.0.12-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for flexablelib-2.0.12-cp39-cp39-win_amd64.whl
flexablelib-2.0.12-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.12-cp39-cp39-musllinux_1_2_x86_64.whl
flexablelib-2.0.12-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.5+ x86-64, Linux glibc 2.17+ x86-64 Details for flexablelib-2.0.12-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.12-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for flexablelib-2.0.12-cp39-cp39-macosx_11_0_arm64.whl
flexablelib-2.0.12-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for flexablelib-2.0.12-cp38-cp38-win_amd64.whl
flexablelib-2.0.12-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.12-cp38-cp38-musllinux_1_2_x86_64.whl
flexablelib-2.0.12-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.12-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
flexablelib-2.0.12-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details for flexablelib-2.0.12-cp38-cp38-macosx_11_0_arm64.whl

Total release size: 2.9 MB

Release files / flexablelib-2.0.12.tar.gz

Download URL flexablelib-2.0.12.tar.gz
Size 153.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1edd471888552c38d74edb9204c45550778d22b9c386dcd9d5e795dcb9f5ca22
BLAKE2b-256 checksum
How to use checksums
2d86a2c28d9f31f1b0fb5ab65a8cccad97be25d90bc66658d17e0cbb87f43b32
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.12-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.0.12-cp313-cp313-win_amd64.whl
Size 109.1 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
8126f5075b4818c1999b734a0fa776be0bdf47c43de9fd2f39a7fe46145b2f9d
BLAKE2b-256 checksum
How to use checksums
79498cc9b672709c55c8383d2ec4e12df467b1ef86c491da5944cbd7828bc989
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.12-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.12-cp313-cp313-musllinux_1_2_x86_64.whl
Size 123.2 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ccafe06b057182345eca26d7e19988291c952541923016ac48b4b562098300ea
BLAKE2b-256 checksum
How to use checksums
86561276ce7de38542ee7f6a77f654ccf7e6853d1e802cbc5c9912e5ca505f3e
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.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 123.6 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
f32b9c252664240992784b43c60ccef72480762c5a8c9eda537a69dbf4675605
BLAKE2b-256 checksum
How to use checksums
9d5a7297d3628d1100b517f0726c4c6f885fae6b0170bef4d107e0d97e4fef66
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.12-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.12-cp313-cp313-macosx_11_0_arm64.whl
Size 106.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2884c9365ceb840f498a3c4a0834cf8ca684f6f17166f20bf64a8f62a59a0a1d
BLAKE2b-256 checksum
How to use checksums
ed5f2b76f1fcfae83b7f0483e20b3c36c51e31369a1ede5163e28fe40e25b750
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.12-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.0.12-cp312-cp312-win_amd64.whl
Size 109.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
92b0bef49ceae54308eb8cea9e9133abcfdc1b59cc1ff14010d5ecdaab7aff7c
BLAKE2b-256 checksum
How to use checksums
c99fd53b842b1f97dd8ce9a7c1354b441a32aeaaacedbc7ad0551a7bd92534b2
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.12-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.12-cp312-cp312-musllinux_1_2_x86_64.whl
Size 123.1 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
eb2b9d37b16c9464b72ac99154695234fd95364212c3d06d4af1fe60f55b27bf
BLAKE2b-256 checksum
How to use checksums
60675b9c06f7059fcf5b3275f4925a5995e701ae66661f7fcde38fe8479db614
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.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 123.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
7ec4367ba3174942f2cffea30ace410f227c8ded861d7f423700a3ce83e9a941
BLAKE2b-256 checksum
How to use checksums
335ccd2fa1363160fa3df7fe35b1e2921119e91f2df04757f648b2a6db2a87c6
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.12-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.12-cp312-cp312-macosx_11_0_arm64.whl
Size 106.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d904f8b1f8a66197cec4c86be5735cb91f2371e1203c15cdba87c97b99f4a3c0
BLAKE2b-256 checksum
How to use checksums
57825a8427462db8546222d4361d06a49c6952d1952831b6ee62851ed7c8b421
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.12-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.0.12-cp311-cp311-win_amd64.whl
Size 109.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5db6d1699be37b60613df15a4d257ff60ed1a1503dae07c0d92385e147328d62
BLAKE2b-256 checksum
How to use checksums
b0806ea66fd376af1c6e81ba587a5645f4e3403584dc8c2767b38ff475c1f035
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.12-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.12-cp311-cp311-musllinux_1_2_x86_64.whl
Size 123.1 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
168e5bb6ec9f675c226c3f4e4444741918a047a5143b7480ad051a94c436c17b
BLAKE2b-256 checksum
How to use checksums
4a420b812c589dd643d85fe980de192eb519c25d56adfe4c71c4765d934b2b1c
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.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 123.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
ee12384d306177b24e4ffa77b800a65827190c810b10ea1622ea145f829b9451
BLAKE2b-256 checksum
How to use checksums
18546d5aed11b3b062aa0c060c7eda03a5081b29dcbb36c8ba895abf6ea71949
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.12-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.12-cp311-cp311-macosx_11_0_arm64.whl
Size 106.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a0070ada6604fc3c79d84ce82bf029c623c7ef922f9b8268b74b530632df6b42
BLAKE2b-256 checksum
How to use checksums
43956d47d9e19d7ba3e6082148df432eb5a12abb4dc12d74a4c6d3ba9c8f1efe
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.12-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.0.12-cp310-cp310-win_amd64.whl
Size 109.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
c9ee3288627559b66b43d95bd1ada6b475d9f6a310b7d88409411e5cdbecc735
BLAKE2b-256 checksum
How to use checksums
5ac121022e4ac1d008e91c6c6dd35d185917a6f1de268f21cc001ab6c88c35a1
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.12-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.12-cp310-cp310-musllinux_1_2_x86_64.whl
Size 120.7 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
07ba886db98b10d08d79dd677b9ee5b82b507cd9c29f7d35ffd34aead436edba
BLAKE2b-256 checksum
How to use checksums
fc6403d37d609fc76a0c84d4a91ba8d6699ded82b8c1b0628b116f40d8205591
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.12-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.12-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 120.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
ae22bfa4cb307891517931e289872f8cbaa48d63c913a52a4dbe8cd01eabd40b
BLAKE2b-256 checksum
How to use checksums
6537cdc284f08334e0107957c6bbb84d1201359897910fe32ac80f9e48689a6d
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.12-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.12-cp310-cp310-macosx_11_0_arm64.whl
Size 106.7 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
062490b4d0725636e4d93f9f906eb14fde80cc90f9e2cea792238889f535e198
BLAKE2b-256 checksum
How to use checksums
3ea9b868b61aad44bed7fd2e42016e9ccda5d46be168a82406f2d57c0eceef82
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.12-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.0.12-cp39-cp39-win_amd64.whl
Size 109.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
6f3988fa7489d4b8ee0a5b82677c7056d7805da4d6914f991f6a1ce15fad9a48
BLAKE2b-256 checksum
How to use checksums
2ed3a923d0a86683f58a1b0994640db28b730ab7febe3ba5bdcfcf27ace2b0c2
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.12-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.12-cp39-cp39-musllinux_1_2_x86_64.whl
Size 120.6 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7b2ca33e29c27a9f1dcf2e077d4d155d1c56f21d637a835e54cbc5b539217357
BLAKE2b-256 checksum
How to use checksums
e14d2a9154499b06fb0e96f6c94f69a0ddd6fba1caf08f87a5868476178a0fa5
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.12-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.12-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 120.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
58c2bcf8643dcdfd60aacc8eba418cfb65a41c2d120004bbf8d9bf36d2ad50a3
BLAKE2b-256 checksum
How to use checksums
125a5bc2a652d7d618fff8d18bb97439c89f6493b628eb2c0ac48d4ae8a97eb9
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.12-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.12-cp39-cp39-macosx_11_0_arm64.whl
Size 106.7 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1ee89aed0549a2f90e84f4afd4f69891cc388a13616336270a38c10a1fa9893d
BLAKE2b-256 checksum
How to use checksums
4a93528c6acbc0a2a4b8d2a99095188ec015938c00f10745487e0e35342f402e
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.12-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.0.12-cp38-cp38-win_amd64.whl
Size 109.0 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
cd309086ef380e34a5ba118860370354aa4972af269457788c328fd64ac81f95
BLAKE2b-256 checksum
How to use checksums
5e11cc8ed2b0fb09d9096458437907017965e56ab20bcd6c6f2e92319e0034ce
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.12-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.12-cp38-cp38-musllinux_1_2_x86_64.whl
Size 120.3 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
cb41180197e3e321da08415b9e959595af8a966d68aba62ee16e9858832a4a5c
BLAKE2b-256 checksum
How to use checksums
cece894d9263cd73cb8c35c5a94eb4636b526f1b929796585d17b32b5db5173b
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.12-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.12-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 120.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
dbeed9d816d0eeb8f57642f6b52f132b46506a53bd76b1c186c964ffbd9d4820
BLAKE2b-256 checksum
How to use checksums
51f9609cbc847c10fd8a7b73fa7c2f9ca59afe1b54a7f1f0d836f4c289052b9f
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.12-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.12-cp38-cp38-macosx_11_0_arm64.whl
Size 106.4 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
430107c2b798c421288e5114235fcae353a17ed56c8e20a70613ead65cdcc7e8
BLAKE2b-256 checksum
How to use checksums
7d352250fc91cf16f7dcb997f206f96dec3a6e4a5f0f6958fadbe65d4b55a59e
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.12

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.12 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