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

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.15
File Size Uploaded Provenance Actions
flexablelib-2.0.15.tar.gz 167.0 kB Without provenance Details for flexablelib-2.0.15.tar.gz

Built distributions (wheels)

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

Total release size: 3.2 MB

Release files / flexablelib-2.0.15.tar.gz

Download URL flexablelib-2.0.15.tar.gz
Size 167.0 kB
Tags Source
SHA-256 checksum
How to use checksums
78461da69d7e1c6d025c4a2fce90b65fd91a5424b863da9b27fd2e8e3026da5f
BLAKE2b-256 checksum
How to use checksums
ed3425778f6f06289eb2de27de2e3f2cec0128e4f73319d56451c8240b069a87
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.15-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.0.15-cp313-cp313-win_amd64.whl
Size 118.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
4652453f7388018d02b4dc26c36661adcfd0f86f04b894358cc8b4bc53bf1efd
BLAKE2b-256 checksum
How to use checksums
4d35624448b345ac23f903285201bc28a68dd5d35bb6a6aeccd90fd2af956f79
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.15-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.15-cp313-cp313-musllinux_1_2_x86_64.whl
Size 132.9 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
5b159f45221f2839579c7316640471f3c9c353d0c623b381c482fd0982561dd2
BLAKE2b-256 checksum
How to use checksums
d9e68b70565c65e75dcf01167f6703cc0ca0b19470262852e0abf7b76b1721ee
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.15-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.15-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 133.2 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
0043d323142a4e9b8a7e596559be20794c583bb7b284e080a54a90b6a1978d8e
BLAKE2b-256 checksum
How to use checksums
31e2c15fb3ec72d4a5db1d9e70fa787653641d4cd59c94ba98e5748b8bedbf7b
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.15-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.15-cp313-cp313-macosx_11_0_arm64.whl
Size 116.4 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9234f08b49504a4ec0659bec4ce11700c202f2987fdf958c35708436d89deb2b
BLAKE2b-256 checksum
How to use checksums
cb3c9517f853a2841e803c9e16faba5faca537a7673d6c30d31bfa2d0a9d4acd
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.15-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.0.15-cp312-cp312-win_amd64.whl
Size 118.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
c9b8343b2a43adc683eea9f538d14d0ec81bf2b4a6535899f23a6f34bd8762a1
BLAKE2b-256 checksum
How to use checksums
4a60fa0918dd32ab8801fc3f9b0440a18ad5e9fc1ff2168e42647f59c09afd2e
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.15-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.15-cp312-cp312-musllinux_1_2_x86_64.whl
Size 132.8 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
94b3f1a164563c2c7de8f4fcd20348df3154ff814813d3d2bcacaf532d92a999
BLAKE2b-256 checksum
How to use checksums
d03a45b7f61bb503269196458c50c3106e3e2307bb8c786d1466e0512b3117e9
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.15-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.15-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 133.3 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
21d9bece2b1e964d33f0133abdb67c9e08752006e63a6ab20ac020e27525f687
BLAKE2b-256 checksum
How to use checksums
2a2469d15ca257e919741f54634de5363a93120e71c9dc294b1c0119dd0fe99f
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.15-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.15-cp312-cp312-macosx_11_0_arm64.whl
Size 116.4 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
08f5945631598cccc01d709dc072d7454077b92995a33d57ecc26d20321049d0
BLAKE2b-256 checksum
How to use checksums
899e12e410781d6ffaca0c6419e7e7a0f4b0f7392e45021bf6454955b079d5d7
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.15-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.0.15-cp311-cp311-win_amd64.whl
Size 118.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
d5dd8ea2c16e0f86f05a7c0bbe620c997d379ab3efccef783090bcfefb284ce4
BLAKE2b-256 checksum
How to use checksums
4eddd2dc68ba186af6696f6cd0f3a5ac926fc47adda69e23d6e18c5457596192
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.15-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.15-cp311-cp311-musllinux_1_2_x86_64.whl
Size 132.8 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
6f0c451dda464cdd66b31c3344810298a2bf48f71b69056b2c7d61172a0a687d
BLAKE2b-256 checksum
How to use checksums
0eca441db6619b99be9818feb07ea704c310e57cf155f0c4708b78d4ebbae437
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.15-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.15-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 133.0 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
d837c8c4c364c2db08a7cded964eda4c627232b9614f28e3a20d24c4f943e8a4
BLAKE2b-256 checksum
How to use checksums
51bf99c7bbdc6d68315295142274fedb966667f0513f9938b66a6c75ea2276d9
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.15-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.15-cp311-cp311-macosx_11_0_arm64.whl
Size 116.4 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
79d351e10bac25a3fca369efe2f6bf3482aa8c4294e88cde3871dba05bcdb52b
BLAKE2b-256 checksum
How to use checksums
773dd16e05514c75c1c70905c720ead9ea7604273046848086d054debb67886a
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.15-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.0.15-cp310-cp310-win_amd64.whl
Size 118.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
0c2a97d8aaca86c7eaf870aae879a927cdd820d7b35dccc168d6e209472a6895
BLAKE2b-256 checksum
How to use checksums
839c59b1679a28cc5b51863f7e8aa0beea1a6de3378fedb01aa6e7d4b739c5e5
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.15-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.15-cp310-cp310-musllinux_1_2_x86_64.whl
Size 130.4 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
379bfd546ad55b3bc53ffe55dbfbaffece9a15bfd7024a02a63ecf665c346cd0
BLAKE2b-256 checksum
How to use checksums
b35ce719f9acd1320f4b2bb765d848b61c6e29ba970c39a18fc03600d1b395ce
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.15-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.15-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 130.5 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
dc8a514c5d4133d686e00b76385de4b66d1f280b1ad0ab51b3713cec49fb8b5b
BLAKE2b-256 checksum
How to use checksums
6129a6cc4917eb74696e62fff50093268d26be468fdb17f483e6df50efc41809
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.15-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.15-cp310-cp310-macosx_11_0_arm64.whl
Size 116.4 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
dfcb82cd4f951145b8884f69c6f6f6575fb69d8edcc6b0daabe39bee35a83721
BLAKE2b-256 checksum
How to use checksums
2265ac23ba71fc21167b261a4d6feeb4c0637772b2788b9a4ede37280ae7ec49
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.15-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.0.15-cp39-cp39-win_amd64.whl
Size 118.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
f5bf73d8655002f70e81ee6f512e36e747bd53100825a1810f0212dccb743ba9
BLAKE2b-256 checksum
How to use checksums
053a9776e473a921ef3751500bc5c7b6d14ba675e192e3d62b3f6849da96b7bb
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.15-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.15-cp39-cp39-musllinux_1_2_x86_64.whl
Size 130.3 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
34ce1fc435d7c07ce0b1df17674d736170bdc0e8d88882884953253a0220566e
BLAKE2b-256 checksum
How to use checksums
c035f90b6446a81dd1e972ad3e29889348f4ae1b44b21d53e8b6df3c573cf6de
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.15-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.15-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 130.3 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
874f0506954013b6f5fb89bca6e00fac196d4a9e6d25e8244a8a07732a4d5efe
BLAKE2b-256 checksum
How to use checksums
fc7c0af52e3131821bc6eb6172622238b4e4cf9086825d2cb471882f8bb3d846
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.15-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.15-cp39-cp39-macosx_11_0_arm64.whl
Size 116.4 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3d0bf1518ffa6489e9981552e6136255b7efd1ff75a42c2cd8de898f23f2dbec
BLAKE2b-256 checksum
How to use checksums
8a05878cc7995376529a9272c7f0979e3e83188216ba2ef8cedc5a58364ad02f
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.15-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.0.15-cp38-cp38-win_amd64.whl
Size 118.7 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
2c57b78ab7b3ff1a6959ecd36a7745c235fecd63dae07986cfc403273eecd91e
BLAKE2b-256 checksum
How to use checksums
7975a5662d0421a0c8874cf8101b5ea7d424c426ef0cca7fd04ec53946ed83ff
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.15-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.15-cp38-cp38-musllinux_1_2_x86_64.whl
Size 130.0 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
625a769d8f3b47cfca9163a3a99a474cd96085167ddc8c7e05fa6e46c8e6d766
BLAKE2b-256 checksum
How to use checksums
3ab0ebee54beff2aa30e9fe6cf78498867e594d319a5e016b3da453ce6ab4bc9
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.15-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.15-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 130.6 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
1b44f13acb28b9bb023d57b06c9e1ff90c66ffbf30b07cbd6b7dba74796b4ade
BLAKE2b-256 checksum
How to use checksums
4b27947a1d4918c3c022e979e0dbaa7abaa6b13b95aa78ce53d563d60c4aeef6
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.15-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.15-cp38-cp38-macosx_11_0_arm64.whl
Size 116.1 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
eec56bedfd1a8688445938ab5a22c67bc8b8a6d8097e6bb36b04b3c9155f0321
BLAKE2b-256 checksum
How to use checksums
f9a490ce8408132e6a649be73cd1beb29a0fb05fcab05162d1eb30f61f6010bb
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.15

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