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 42 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.8

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.8
File Size Uploaded Provenance Actions
flexablelib-2.0.8.tar.gz 142.9 kB Without provenance Details for flexablelib-2.0.8.tar.gz

Built distributions (wheels)

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

Total release size: 2.1 MB

Release files / flexablelib-2.0.8.tar.gz

Download URL flexablelib-2.0.8.tar.gz
Size 142.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0c8b7e521c1c21c9584c8c1bd112c84f7b2c0a4742a4d1facadbb0ef526a1d51
BLAKE2b-256 checksum
How to use checksums
380ad7ff671f8414df739dd4f5325127c2e7277abb2c9e47ebd216ccd96dd56b
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.8-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.0.8-cp313-cp313-win_amd64.whl
Size 100.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
a9a92f91c1f5b59cf9e61b7cb16e4b47cd664a16ef78b92dcd625de9573305b4
BLAKE2b-256 checksum
How to use checksums
10e99f4ab3c22724977cc33e4126ff35aa4ada6e7022bc583a34785c4c512428
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.8-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.8-cp313-cp313-musllinux_1_2_x86_64.whl
Size 115.0 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
c6b39ebc7fedc2fe56dba728deecdc295d39b9a1e12c4aa456bab533e433bc35
BLAKE2b-256 checksum
How to use checksums
3425c9aeb54d715ea7061fc4693a0c8de70ed2b217dc8b23c3201ea291cf4959
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.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 115.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
b7a30981df0523bef166dc21c6ffaa94492ee80432b196f455033f67c516c078
BLAKE2b-256 checksum
How to use checksums
0b08119a2138019df8d3315b196d79bf83a6927234cacc0a601e5df3582147c3
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.8-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.0.8-cp312-cp312-win_amd64.whl
Size 100.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ddc17c6525d21e73b87cfa068167d9d96824011aa9d776b06fb3d2468b185452
BLAKE2b-256 checksum
How to use checksums
3811d8cabf57bc4752e27fc8dd2d3e9e1d1fbc54c1987820c9aeeecad9290d26
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.8-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.8-cp312-cp312-musllinux_1_2_x86_64.whl
Size 115.0 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
51f68a88fd65ed338039217f7f986113aa5b2d541da899fd236dc7cc26131b3e
BLAKE2b-256 checksum
How to use checksums
1c4219050de1c348f97667815ee501f5d2f93f94ca0eeba584af846e5453b71d
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.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 115.4 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
13c8dd09019f3daa3f71c13f3f780119547afe1260c0d81f8a454fbca825333e
BLAKE2b-256 checksum
How to use checksums
f53cf458dbf6b958f9b69d0406112b25eb86ef95676b065714291b8d522ee214
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.8-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.0.8-cp311-cp311-win_amd64.whl
Size 100.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
bd486be9e3f8361507da9065c9fa7addd3cd8eb83159e23a18a20454e16c5523
BLAKE2b-256 checksum
How to use checksums
9e96151bda7e606bf792325833f7b61598923767756bf40f5a7dffaff8e7251c
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.8-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.8-cp311-cp311-musllinux_1_2_x86_64.whl
Size 114.9 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e9618b172f9c2640e815d6b6c5b26f5ef3e034af891529508222eb4edd46d0d9
BLAKE2b-256 checksum
How to use checksums
32a89e23aeb4b8db537f9567ce2970e6d5122ba49626616e65b958931b9102f5
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.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 115.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
4b449983ce53308c616a0e3ec26e7af5320f68ebf99e49ea1b9e1b7282ff4c51
BLAKE2b-256 checksum
How to use checksums
ccc251e8435779cfcd4d31b92bcbd0e08efff9de55d9186c6369e9bcbe153000
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.8-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.0.8-cp310-cp310-win_amd64.whl
Size 100.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
d6042732103d44bdcfdb3a3429cb40efccd75fca4831086aca1cb3aad9ffa9b4
BLAKE2b-256 checksum
How to use checksums
16c92751fc0606db52e6d93937d5c1a0c0a5c4bd992ca7c7bdc04274b8c70df7
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.8-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.8-cp310-cp310-musllinux_1_2_x86_64.whl
Size 112.6 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
f28c81df808734a9269caec8b69308ed190e20007c43f6ff2b12b8436e6cf270
BLAKE2b-256 checksum
How to use checksums
a079f7454f1c5a46dc5f15949a45dd981802aade6b0a353a10f837afa4f18fa4
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.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 112.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
80fcb2db157ad48cb941fc84f78723301f7b228493d0ad35ab0e5d92076cc665
BLAKE2b-256 checksum
How to use checksums
1bf82a2288341945409d2b2bd460838d1fe5214e1b78d8488be1e66af369fc6e
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.8-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.0.8-cp39-cp39-win_amd64.whl
Size 100.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
e37e6504e43fa8f5d047c15705f9cb588394c309191f2179bc85e5cc8c7c4237
BLAKE2b-256 checksum
How to use checksums
707c639ab0b91cce5d870577858f8483e6e2c0fde792bfbfe5780c75813340b8
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.8-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.8-cp39-cp39-musllinux_1_2_x86_64.whl
Size 112.4 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ec6aeca90dd63300a0c59af15c9feeebd2c7b4b864843b6276376ce52b12655d
BLAKE2b-256 checksum
How to use checksums
9c38ac816c54aab96a2b5862e80c25c34e57d76fc2ba578dbaa32585da72e9e2
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.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 112.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
f469a95452d8590a123935ceeaa4172b5f19a26a05ea613afa172a25b69f0e91
BLAKE2b-256 checksum
How to use checksums
6c5d61477b7b3d4557b513370f5853f5d8dc37efcae2db74ed282dbb1c0a7685
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.8-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.0.8-cp38-cp38-win_amd64.whl
Size 100.7 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
15168f3b86e965bc8072e761084a67ba4d4ec1a4e344013bd236bbd2f0be6cf4
BLAKE2b-256 checksum
How to use checksums
2a61e011b0db579a057e5dfc4edec78430532a841ab9639868f92800f323ca7a
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.8-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.8-cp38-cp38-musllinux_1_2_x86_64.whl
Size 112.2 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
6df45d4d6a2ebb246d9005b46481a1bc7598b976cba665883045dda2c2c79457
BLAKE2b-256 checksum
How to use checksums
3dd25a3c33d1b986eb2260f037afc1a2d57c74514555064a0071a2d3bd707803
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.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexablelib-2.0.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 112.7 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
bee696a73f720701288c6444bffd1dbe855fbd8b1260013da80e24895c0776c0
BLAKE2b-256 checksum
How to use checksums
8a442e010ebe8ca4ffbac93e9e7fd7b7ea5cdbd1bd45507d0472c2a286b4baf6
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.8

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.8 This release

19 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