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 43 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.9

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.9
File Size Uploaded Provenance Actions
flexablelib-2.0.9.tar.gz 143.6 kB Without provenance Details for flexablelib-2.0.9.tar.gz

Built distributions (wheels)

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

Total release size: 2.7 MB

Release files / flexablelib-2.0.9.tar.gz

Download URL flexablelib-2.0.9.tar.gz
Size 143.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3ef838fe13f3c220840265323f2402fdbc88c1a763760f73114c8824236a7e81
BLAKE2b-256 checksum
How to use checksums
5a7f2cfebe954409e3aa408172f4a8a4b7985795bc92e86f3ac69d1538d62e6c
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.9-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.0.9-cp313-cp313-win_amd64.whl
Size 101.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
44af2bc69f386f112e12c8474c50ad24b5719a8c61443122aad06bfeabd18bfb
BLAKE2b-256 checksum
How to use checksums
44e6b4f3cfd41c25c900fff20ac61a5c423aff1677c8885f7a927c1eb4562a71
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.9-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.9-cp313-cp313-musllinux_1_2_x86_64.whl
Size 115.2 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
15188d068135795bef7afd189b155e7fbf868861e167a1c8da46b03b98f78ecf
BLAKE2b-256 checksum
How to use checksums
502a2b8b86f042942641b7d30b52bfee2ec0a64b49717094bb57b031c99f4d94
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.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 115.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
f4a464851faef10be6798ea03284bf6ee5e38d94c03179489be7cd1f1e775996
BLAKE2b-256 checksum
How to use checksums
1a8bdafde7c7c40febea47733f690aafb5089160c4b85fff7d56807f9315405b
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.9-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.9-cp313-cp313-macosx_11_0_arm64.whl
Size 98.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3ba358570d5d67551e609b551e020de889620e08333f6451fc46750bca62cd1d
BLAKE2b-256 checksum
How to use checksums
4ae83b749c4e345bb42a1cd174a09f1a5fc7d465a715c94e9c0c89293cc1e8e9
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.9-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.0.9-cp312-cp312-win_amd64.whl
Size 101.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
5d6707c67d875ab7fd21f926ffde6246193009e12be817902ff9d5c4a3738bc6
BLAKE2b-256 checksum
How to use checksums
745cd1db20116bff9e46286cd8bfabcd1d91332d43fe96c8e5b783984e13e362
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.9-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.9-cp312-cp312-musllinux_1_2_x86_64.whl
Size 115.1 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
952a9248bba98781bf1e5430ec8a1324ab0533fa622c719644dc3ac71adbb61b
BLAKE2b-256 checksum
How to use checksums
c2807041ecc712a99be4afcd047d141229ac1667105b73f85fc8771ba511e5af
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.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 115.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
b45f2652233d98828b57970702b0b7ae135146471264eb32024e5dbe9cdda7d3
BLAKE2b-256 checksum
How to use checksums
33de585d863853f192115e46021fae7a1ab0be5ddf1562cd0ded4dedee126c41
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.9-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.9-cp312-cp312-macosx_11_0_arm64.whl
Size 98.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f3faaf454ca55bf23076f20e3d2e83b6a1b55fedc7fc0606ceaac7c2ef684473
BLAKE2b-256 checksum
How to use checksums
636dd9eb3d34b4ed41e0370f719b9a03d425f5bfd409abe0538bdcfd7e2e0ad3
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.9-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.0.9-cp311-cp311-win_amd64.whl
Size 101.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
ca794ca92e0b10cd2b15333f7cb98c900ad231934f211e1defd70631fdae866d
BLAKE2b-256 checksum
How to use checksums
b65990a66cae9604fa106f60e303ee2a1ad9114abc10819c5f0d41cc935252ec
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.9-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.9-cp311-cp311-musllinux_1_2_x86_64.whl
Size 115.1 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
979a43d169ea5eb72a719adaa4b202627834f46cac535606744dcdcdf33c67a6
BLAKE2b-256 checksum
How to use checksums
dbb51b90309fb90beef00b013f704c7c5463ed7833e86f8453c85f800b425cd2
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.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 115.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
45f7c9a644fa6ae8d904c9263b5d4d95bc6263119d70c87bc58b0d5788ed41a5
BLAKE2b-256 checksum
How to use checksums
51c486613503c761664d4cf7fba4d560f79c43dec49809637e8edecf3875ccd9
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.9-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.9-cp311-cp311-macosx_11_0_arm64.whl
Size 98.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
da07d38d4329e07e25dbf7a550f6d412e06930b47f1812bee9478b44eae87a67
BLAKE2b-256 checksum
How to use checksums
7445b09645e7a05d98dbd3d48a4be82b327bcf4349e1b6230219b8339b075d00
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.9-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.0.9-cp310-cp310-win_amd64.whl
Size 101.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
f9f3528a480e9531c131fcc68662cf76e5000627aef4065670a004b2ca3c4ba4
BLAKE2b-256 checksum
How to use checksums
22db01bdff9e494659811b3bc4e0d6c869fd3cafc95a4b384850de940b855d3d
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.9-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.9-cp310-cp310-musllinux_1_2_x86_64.whl
Size 112.7 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
5dafd87cefec84e67da6f9c49eab9a2eae62beb79394091974592a886eb3ce36
BLAKE2b-256 checksum
How to use checksums
2d3a2ff221f79af8934a21683d7999b0d177a3e247ef6ef2b9325c2e9c1d54a3
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.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 112.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
659cd8a61967238cdcd3297d643314cb25bc60d47da9404c4a7f65338607509e
BLAKE2b-256 checksum
How to use checksums
1054dd0a81ffffac78d69016860f6c28e224d6105f5a2be39e47989777e7931c
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.9-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.9-cp310-cp310-macosx_11_0_arm64.whl
Size 98.7 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
27fc10918561f73459aa19bb1067bb36eee9753423244acdddc0783845fe5721
BLAKE2b-256 checksum
How to use checksums
6f3de1dee10dfc65a7356c052c584c187de15027beb02c6d276be8f24f7b8afa
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.9-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.0.9-cp39-cp39-win_amd64.whl
Size 101.0 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
301122b5aa33dc48ea9eca1c506879dd74457df168d464974d06e61f80ec05b8
BLAKE2b-256 checksum
How to use checksums
c5aa38be3b1e163faaba0e211bd6a2c6ce19a77a0c8fd1bc7856ac655d6786d3
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.9-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.9-cp39-cp39-musllinux_1_2_x86_64.whl
Size 112.6 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
087b38cea09f1c5f20d660d934b432af4e63b731af83c02b89bbbe95b52745d6
BLAKE2b-256 checksum
How to use checksums
412d688705935b4f662d4944672dd5ff52a3e658d46b85ce621f0ac737050f47
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.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 112.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
fd22b87a3b161938c940fd9ef22ea3d2189de87a03abd9bcb2f320f714bee692
BLAKE2b-256 checksum
How to use checksums
e1dd96dd49b434a43cc28275eddd3c3745565bbd90eadd26046489a7595e9e5c
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.9-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.9-cp39-cp39-macosx_11_0_arm64.whl
Size 98.7 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4481a2d0f7899833fb28ff57e3ec9982b40aa9dad19ba801019a3013b6d1ec6d
BLAKE2b-256 checksum
How to use checksums
a9cc267e17ac18ca3a4e1757643600a1f8b62a845a518a5cdfd2bcebafc5986d
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.9-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.0.9-cp38-cp38-win_amd64.whl
Size 100.9 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
4f824097dbe50f5a73104e1ffde88c6d33773ad90ac9958f8729c6ee105fa6ad
BLAKE2b-256 checksum
How to use checksums
2b90770fb78e08d5d46096d2a82beeee3c3361add85c1cad9114d4c55f233e6b
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.9-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.9-cp38-cp38-musllinux_1_2_x86_64.whl
Size 112.3 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b55ba50543938e6c4ebdc3d64e5c4b5c356c165421baf704b0cad68416959c9b
BLAKE2b-256 checksum
How to use checksums
e51aa0eadbcec43a3dc681df4a93a8bf7f1b691cd3a1c279163382791a79360c
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.9-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.9-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 112.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
0309b3694cb13aa07b55bc407899282f5d85175828e017b33b08a2dbf79f41a0
BLAKE2b-256 checksum
How to use checksums
85eedbc2f9a47ea9a22dd0ca674a7641e87fa6222bc3a8505a940ecc08f053f0
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.9-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.9-cp38-cp38-macosx_11_0_arm64.whl
Size 98.4 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f7a602a658d694d6234e58b81564c66724c70f7e89f4b5797b2e4b6a74730b30
BLAKE2b-256 checksum
How to use checksums
5f52eaecedf8acb3c8c7824fef1eeb94eb9df92d661f9d9d56f7e6dfc5583bfa
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.9

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