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

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.13
File Size Uploaded Provenance Actions
flexablelib-2.0.13.tar.gz 157.7 kB Without provenance Details for flexablelib-2.0.13.tar.gz

Built distributions (wheels)

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

Total release size: 3.0 MB

Release files / flexablelib-2.0.13.tar.gz

Download URL flexablelib-2.0.13.tar.gz
Size 157.7 kB
Tags Source
SHA-256 checksum
How to use checksums
137e714cbf64576eac032b81b9634c7f969759d1b8c490ba190a8c7835eea60b
BLAKE2b-256 checksum
How to use checksums
975df49072b77529f211321a0a14524d4eaac9998fc9926dd457b829c36aca66
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.13-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.0.13-cp313-cp313-win_amd64.whl
Size 112.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
4457a1cca2f305fb0da872cfd5846061de5a4ac58eb6c48aa0de8ef070ea83b0
BLAKE2b-256 checksum
How to use checksums
8e119fa323625cca9dfe6ec005cb41175fbaa00c649904b5432c7aa9f1f0fabc
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.13-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.13-cp313-cp313-musllinux_1_2_x86_64.whl
Size 126.0 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d98a8bb17828f23bbffde8837d23bda4c49400961190683ebf2455b748f10a8d
BLAKE2b-256 checksum
How to use checksums
ad7234c378f0b1b4537efe5f0e1d089d67afe69ba8984a973d7a7858794ca2f5
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.13-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.13-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 126.4 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
8152abe7a8b324066cdd4ba1d1ea97b85a71b76569e25e3534344f315da6bde7
BLAKE2b-256 checksum
How to use checksums
8cbd433698cddbf799c21a008435d558530159b9c88714b4a451c714b505cf60
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.13-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.13-cp313-cp313-macosx_11_0_arm64.whl
Size 109.6 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b812f768955e221f0671760e8cf3f33443fcc01c80ec6eac43a3b1d98b49cbba
BLAKE2b-256 checksum
How to use checksums
0ba6e7dfca48ad1dc81738df82338de55b8221e8d845cbd47c4646efa195bd26
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.13-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.0.13-cp312-cp312-win_amd64.whl
Size 112.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
66db64b8f4d313be9e93d7d00fa356ac24a215fa0ad7712ce7a8f1c40204e1e6
BLAKE2b-256 checksum
How to use checksums
e6a4503e87f1e3936976470a01d8b90154bb31eebc23d661ae4a4ea48a01e101
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.13-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.13-cp312-cp312-musllinux_1_2_x86_64.whl
Size 126.0 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
996808d8e692613ee494f6ac5d40dcf3310cf33f5c10d94bac9760601b34fe70
BLAKE2b-256 checksum
How to use checksums
112287653315042a319be96d78d2d98c307fd3d3b48573dc0201abbc108965f7
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.13-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.13-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 126.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
4ff2ad9b95a496995c2269260405de205453994a5c8a593c5c0eb09728425b37
BLAKE2b-256 checksum
How to use checksums
ea65a6e86fa91cde29bbc9e06353a72886b66281a352fabf67a1acdcf124645d
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.13-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.13-cp312-cp312-macosx_11_0_arm64.whl
Size 109.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d8a83326657872baed90d31eb009c615e7195e32a4163cbb779846ee7692396f
BLAKE2b-256 checksum
How to use checksums
3c2683197d7ec190aced118aa6c28edc96a971fa47a0509e642025437079b31c
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.13-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.0.13-cp311-cp311-win_amd64.whl
Size 111.9 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
76d9911f1352b5cacb8114d4ec238a5c834c7e3e416ba6cdd6196b2b0fbc24dd
BLAKE2b-256 checksum
How to use checksums
606956afd1592b22383c3fcc9003218d48b64908882dfe0e9576bfa9be1067b3
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.13-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.13-cp311-cp311-musllinux_1_2_x86_64.whl
Size 126.0 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7520630a07ef9ff5e6bc1e1914888d937f673e424f28aede303b0d50ae56995b
BLAKE2b-256 checksum
How to use checksums
0aa12113410c6a1587f16b29d7b9630ea349bc7595b3d59c57b9b8afb84dac8f
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.13-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.13-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 126.2 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
a83785d32fb30dffa8f6b3488e70f96cf713b3fd84c16210fd9dfecd35f8aba7
BLAKE2b-256 checksum
How to use checksums
e947e75583b343a5430f81cc57985f8e3c4c524bafdf0f6051ea382e7b921805
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.13-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.13-cp311-cp311-macosx_11_0_arm64.whl
Size 109.5 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8805f4097a9f8fe76069f83bf676b6d1bd5087e1e52681a7d1589d96445d4ed1
BLAKE2b-256 checksum
How to use checksums
b9c3797b5d6c730bd2713b7f8f3a5b6e752c7071b5153c812ad73990a92a0379
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.13-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.0.13-cp310-cp310-win_amd64.whl
Size 111.9 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
5451d68a5f43f69874572df08ef0daa34e147490b14b00ea27ef35207ab5cf7d
BLAKE2b-256 checksum
How to use checksums
18b3cb28f8991e1416fc0976fb068e4409e20c149ebb1abe94fa527b2b9a4976
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.13-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.13-cp310-cp310-musllinux_1_2_x86_64.whl
Size 123.6 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
372b542c3d63cbf8076b7dc295c670f8f1a6ccfed652ab319053b1b16c19643b
BLAKE2b-256 checksum
How to use checksums
f1ea0b3a882ed9103a2baf38cbdab3265374fdc4ccac1e635ccd3ff6b7438bd3
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.13-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.13-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 123.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
3282a47e620ac77b2ad6ffc0a0421c3bda2e4697208fb93a14461890232f5aba
BLAKE2b-256 checksum
How to use checksums
ae758f71e59127289682c5aa7aa974ff466219634a741bfb6f1ef37c1a35fed8
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.13-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.13-cp310-cp310-macosx_11_0_arm64.whl
Size 109.5 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e6a81afe49d6029f4dd4de5a7f1204b107cde9b0dabd3d5b35954029eb97fe56
BLAKE2b-256 checksum
How to use checksums
1e219dcc8211d801c90b4e54fc694af2e306eee8576e893b5ad5bf66ee60fbbe
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.13-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.0.13-cp39-cp39-win_amd64.whl
Size 111.9 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
76d6ba24389f3399a35054514dae5201e22f51e201ce231333d5aa3a147164b4
BLAKE2b-256 checksum
How to use checksums
802e3de9ddf765f7b473e745dcf63f16ada815fb4f78584fcde17b3e72df33a9
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.13-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.13-cp39-cp39-musllinux_1_2_x86_64.whl
Size 123.4 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
eb9b4dee36d65eb5ce867e38b5879532b7a195581bc62cc51683c70f87c6cb21
BLAKE2b-256 checksum
How to use checksums
54184c9721a047af3ea6ce1955d0e03f0c3b265b515ef615f84742bceb7f223c
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.13-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.13-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 123.5 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
889b09087bf88bdb7a626db90764ecd2174f49e89f393f494f8219f204c9f5ce
BLAKE2b-256 checksum
How to use checksums
3dc98ea9406d0dc1f3dfa9c162c57c3e0089062c8ffd8f6a8dc87db66d2f5812
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.13-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.13-cp39-cp39-macosx_11_0_arm64.whl
Size 109.5 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b2792f38158b3129dfde4938a181c0ff27de9f6a07785f5140f869a8cdb4d684
BLAKE2b-256 checksum
How to use checksums
5f94d8d29df73b8afb45d3c03bf4c5de4101f51aadbd424ccf0877d1679a516c
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.13-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.0.13-cp38-cp38-win_amd64.whl
Size 111.8 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
5d12129a7e03b7cbb0038decfea68ae9b67406bfbc6bac827be7422a1da5b006
BLAKE2b-256 checksum
How to use checksums
4cc4b632b204bed626efabc1f7468461389445897359cb4f007866ca3faaef47
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.13-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.13-cp38-cp38-musllinux_1_2_x86_64.whl
Size 123.2 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
736189c2c634a4d39d35bd4d593a637123b43963c55d4f52fb631e1af0101c47
BLAKE2b-256 checksum
How to use checksums
5afbf0435549d147afb45b66bedb630ebbaf9e1e91e5327d5260c767fd097f6d
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.13-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.13-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 123.8 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
de0379bcc21818e6a28f2ae1a102ff995ac0a9752b6178e3c8251dea1747789a
BLAKE2b-256 checksum
How to use checksums
cad853f6eb46d79b323d04911fc1dc83024270d10a15838b4496400f5e934715
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.13-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.13-cp38-cp38-macosx_11_0_arm64.whl
Size 109.3 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
21eee7b105626f36729907a27143f564a52b8c8d63fe04b7c0792854fe064e70
BLAKE2b-256 checksum
How to use checksums
bcdfd141b017499e0c89ea2b41f8b0d2c14725261ecc1592f7356b4a4193ab76
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.13

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