Skip to main content

flexablelib

Fast, dependency-free terminal tables for Python.
56 border styles · ANSI colours · cell merges · decimal alignment · width fitting · CSV / Markdown / HTML / Excel / LaTeX I/O

PyPI version Python versions Tests Downloads per month Development status License: MIT Typed


flexablelib turns rows and columns into readable tables for terminals, logs, reports and docs. It has no runtime dependencies, ships prebuilt wheels with an optional C speed-up, and is covered by 1,000+ tests on Python 3.8 – 3.14.

A rounded flexablelib table with a coloured header and a red value

Install

pip install flexablelib

Optional extras: pip install "flexablelib[pandas]", "flexablelib[excel]", "flexablelib[html]" or "flexablelib[all]". The base install stays dependency-free.

30-second quickstart

from flexablelib import Table

table = Table(
    rows=[
        ["api-gateway", "eu-west-1", 99.982, 1240],
        ["auth", "us-east-1", 99.9, 312],
        ["billing", "us-east-1", 98.75, 87],
    ],
    headers=["Service", "Region", "Uptime %", "RPS"],
)
table.style_name = "rounded"            # 56 styles, see style_examples.md
table.header_color = "bold cyan"
table.color_rule = lambda value, row, column: (
    "red" if column == "Uptime %" and value < 99.5 else None
)
print(table)
╭─────────────┬───────────┬──────────┬──────╮
│ Service     │ Region    │ Uptime % │  RPS │
├─────────────┼───────────┼──────────┼──────┤
│ api-gateway │ eu-west-1 │   99.982 │ 1240 │
│ auth        │ us-east-1 │   99.9   │  312 │
│ billing     │ us-east-1 │   98.75  │   87 │
╰─────────────┴───────────┴──────────┴──────╯

Numbers align on the decimal point, colours never break alignment, and the same table exports anywhere:

table.to_markdown()                # GitHub / docs
table.to_html("report.html")       # self-contained, sortable, offline
table.to_csv("out.csv"); table.to_latex(); table.to_rst(); table.to_asciidoc()
table.to_excel("report.xlsx")      # pip install "flexablelib[excel]"
Table.from_csv("sales.csv"); Table.from_markdown(md); Table.from_pandas(df)
Styles — 56 presets, from ascii to blocks
Several border styles
Themes — table.apply_theme("ocean")
Theme presets
Text on borders — table.border_text("Production", where="top")
Labels written into the table frame
Cell merges — table.merge_cells(0, 0, last_row=1)
Vertically merged cells
Zebra rows, footer, caption
Striped rows with a footer and caption
Decimal alignment — floats and scientific notation
Numbers aligned on the decimal point

More: all 56 styles · wrapping and ellipsis overflow · per-column / per-cell colour and alignment · vertical alignment · paginate() · stream() for live rows · transpose() · nested tables · fit_terminal() · hide_columns · sort_by · Roman / custom index.

How it compares

A factual feature matrix from our survey of 89 table libraries. A dash means the feature was not found in that library's documentation during the survey, not a claim that it is impossible there.

flexablelib tabulate prettytable rich
Runtime dependencies none none wcwidth markdown-it-py, pygments
Border style presets 56 many tablefmt — (hrules/vrules toggles) box styles
Decimal-point alignment ✓ ✓ — —
Row and column cell merges ✓ — — —
ANSI colours (header, rows, cells, borders) ✓ — — ✓
Zebra rows / caption / footer ✓ — — ✓
Text written on borders ✓ — — —
Wrap / truncate / ellipsis overflow ✓ — max width ✓
Sorting, pagination ✓ — ✓ —
Exports CSV, MD, HTML, Excel, RST, AsciiDoc, LaTeX HTML, LaTeX, MD, RST, org, jira, … HTML, CSV, JSON, LaTeX — (console)
Readers CSV, Markdown, HTML, dicts, pandas, Excel — CSV, DB cursor, HTML —
Nested tables ✓ — — ✓ (renderables)

rich is a full terminal-rendering toolkit (markup, live displays, progress bars) and tabulate covers many more markup dialects; pick flexablelib when you want a dependency-free, table-focused library with styling, merges and I/O in one place.

Production notes

  • Zero runtime dependencies. Readers/writers that need a third-party package (pandas, openpyxl, lxml) are opt-in extras and imported lazily.
  • Performance. Rendering 10,000 rows × 6 columns takes ~157 ms with the C extension (~172 ms pure Python), on par with prettytable, ~1.3× faster than tabulate and ~18× faster than rich's table. pandas to_string() is faster still (~85 ms). Full method and numbers: docs/BENCHMARKS.md.
  • Wheels. Prebuilt for CPython 3.8 – 3.14 on Linux (manylinux, musllinux), Windows x64 and macOS arm64. Anywhere else it builds from source or falls back to pure Python — installation never fails for want of a compiler. from flexablelib.fast import implementation; implementation() tells you which backend is live.
  • Colour safety. Escape sequences are emitted only to a TTY by default, never when NO_COLOR is set; FORCE_COLOR or table.use_colors = True overrides. Logs and files stay clean.
  • Unicode. Widths are measured in terminal columns, so CJK, emoji and coloured text stay aligned.
  • Windows. Box-drawing styles need a UTF-8 console (chcp 65001 or PYTHONUTF8=1; Windows Terminal is usually UTF-8 already). ASCII styles (ascii, grid, psql, markdown, …) work on any code page.
  • Typed. Ships py.typed (PEP 561).
  • Stability. flexablelib follows semantic versioning: within 2.x, public Table attributes and methods are not removed or renamed without a deprecation period; new features arrive in minor/patch releases and every release is listed in the CHANGELOG.
  • Support. Bugs and requests: issues. Security reports: SECURITY.md. Contributions: CONTRIBUTING.md.

Windows console encoding

chcp 65001
set PYTHONUTF8=1

(PowerShell: $env:PYTHONUTF8=1.)

Guide

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')

Since 2.2.0 every export writes the table as print(table) shows it: rows in sort_by order (with sort_reverse and callables), row_filter applied, hide_columns left out, and the text formats (to_csv, to_markdown, to_html, to_rst, to_asciidoc, to_latex) hold the formatted strings — float_format, int_format, leading_zeros, custom_format, strip_cells — without padding or colour. Empty cells are empty strings.

table.sort_by, table.sort_reverse = 'Uptime', True
table.row_filter = lambda row: row[1] < 99.9
table.float_format = '.1f'
table.to_markdown()                  # same rows, order and numbers as print(table)

to_records() keeps the stored Python values (numbers stay numbers, gaps are None) in display order; to_records(formatted=True) gives the printed strings. to_excel() writes numbers as numbers and turns simple format specs (',d', '.2f', '.1%', '{:,.2f}'…) into the cell's Excel number format.

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.

table.rows is a copy of the stored data, in insertion order and with None in empty cells (sorting, filtering and formats do not touch it), so editing it does not change the table. Use add_row and set_cell instead:

table.set_cell(0, 'Uptime', 98.2)    # row position, column position or header
table.set_cell(1, 2, table.missing)  # empty a cell

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.

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 56 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 (no npm deps)
└── 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.2.4

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.2.4
File Size Uploaded Provenance Actions
flexablelib-2.2.4.tar.gz 239.8 kB Without provenance Details for flexablelib-2.2.4.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for flexablelib 2.2.4
File Actions
flexablelib-2.2.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for flexablelib-2.2.4-cp314-cp314-win_amd64.whl
flexablelib-2.2.4-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for flexablelib-2.2.4-cp314-cp314-musllinux_1_2_x86_64.whl
flexablelib-2.2.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.2.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
flexablelib-2.2.4-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for flexablelib-2.2.4-cp314-cp314-macosx_11_0_arm64.whl
flexablelib-2.2.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for flexablelib-2.2.4-cp313-cp313-win_amd64.whl
flexablelib-2.2.4-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for flexablelib-2.2.4-cp313-cp313-musllinux_1_2_x86_64.whl
flexablelib-2.2.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.2.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
flexablelib-2.2.4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for flexablelib-2.2.4-cp313-cp313-macosx_11_0_arm64.whl
flexablelib-2.2.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for flexablelib-2.2.4-cp312-cp312-win_amd64.whl
flexablelib-2.2.4-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for flexablelib-2.2.4-cp312-cp312-musllinux_1_2_x86_64.whl
flexablelib-2.2.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details for flexablelib-2.2.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
flexablelib-2.2.4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for flexablelib-2.2.4-cp312-cp312-macosx_11_0_arm64.whl
flexablelib-2.2.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for flexablelib-2.2.4-cp311-cp311-win_amd64.whl
flexablelib-2.2.4-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for flexablelib-2.2.4-cp311-cp311-musllinux_1_2_x86_64.whl
flexablelib-2.2.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.2.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
flexablelib-2.2.4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for flexablelib-2.2.4-cp311-cp311-macosx_11_0_arm64.whl
flexablelib-2.2.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for flexablelib-2.2.4-cp310-cp310-win_amd64.whl
flexablelib-2.2.4-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for flexablelib-2.2.4-cp310-cp310-musllinux_1_2_x86_64.whl
flexablelib-2.2.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.2.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
flexablelib-2.2.4-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for flexablelib-2.2.4-cp310-cp310-macosx_11_0_arm64.whl
flexablelib-2.2.4-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for flexablelib-2.2.4-cp39-cp39-win_amd64.whl
flexablelib-2.2.4-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details for flexablelib-2.2.4-cp39-cp39-musllinux_1_2_x86_64.whl
flexablelib-2.2.4-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.2.4-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
flexablelib-2.2.4-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for flexablelib-2.2.4-cp39-cp39-macosx_11_0_arm64.whl
flexablelib-2.2.4-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for flexablelib-2.2.4-cp38-cp38-win_amd64.whl
flexablelib-2.2.4-cp38-cp38-musllinux_1_2_x86_64.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ x86-64 Details for flexablelib-2.2.4-cp38-cp38-musllinux_1_2_x86_64.whl
flexablelib-2.2.4-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details for flexablelib-2.2.4-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
flexablelib-2.2.4-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details for flexablelib-2.2.4-cp38-cp38-macosx_11_0_arm64.whl

Total release size: 4.6 MB

Release files / flexablelib-2.2.4.tar.gz

Download URL flexablelib-2.2.4.tar.gz
Size 239.8 kB
Tags Source
SHA-256 checksum
How to use checksums
71237d8d3cf30392c05585f2311c2f78e223e32d05129e31f01a3bec09548d87
BLAKE2b-256 checksum
How to use checksums
07ee2263f64d81012f684486cf3892fc4e8e4cf600ed3a22799bc700791d4b1f
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.2.4-cp314-cp314-win_amd64.whl

Download URL flexablelib-2.2.4-cp314-cp314-win_amd64.whl
Size 153.0 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
9f0eafbb2aa1e6437327c8c1ab914d48bc23ec3fbd4717761bfe0de9a42bc4ab
BLAKE2b-256 checksum
How to use checksums
6e6479b3b9a96de24d4ce7db14c131fbf384ef5851a78fed7696a59c56de4298
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.2.4-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.4-cp314-cp314-musllinux_1_2_x86_64.whl
Size 165.3 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
9352c31d11f93490cd5b4076137b42a1b6b9757affdb82ec2913e0ce40dc4b10
BLAKE2b-256 checksum
How to use checksums
2f521a1f0cadd2f77706775bbc4923279477dfa778c571d628a0d2e7e7013898
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.2.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 165.8 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
631106dc9e6f39b8cdc8b8a6b16e6499312424c9178e74b2fcb17a10f8b6b70c
BLAKE2b-256 checksum
How to use checksums
7c87df099a68407a9da44e504b9f89512f70cfa0313341fcde09489a84a167a0
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.2.4-cp314-cp314-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.4-cp314-cp314-macosx_11_0_arm64.whl
Size 148.8 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8cb6da825a05e6a29a086ac4d9618ad50c1dd822d0a1f24f15abb8a18c8601eb
BLAKE2b-256 checksum
How to use checksums
bd78a86347efaad30d3ab1267171d2f201e84115ee559e29614fa3f6c21d9276
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.2.4-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.2.4-cp313-cp313-win_amd64.whl
Size 151.6 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
6f546b429fb11f8bfd8bcd2622e9f5891653055ba1d5b088b1273d44b7275101
BLAKE2b-256 checksum
How to use checksums
a13c938e8a966d453709138105236248f67d93d9444e0a5bd2d586cbaa77b782
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.2.4-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.4-cp313-cp313-musllinux_1_2_x86_64.whl
Size 165.3 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
cbf5e0d429eebde7d81788cd49cea64194ae8eebf5fdeb7b19202360cf61fb96
BLAKE2b-256 checksum
How to use checksums
32a59cb749accf37dce1bb66dd0812f1bdc48119f557c14ae0a16d2599eb0a60
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.2.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 165.8 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
9badd2b19ae40a09a2d8a15158abdc347f9d3cc61fb110956c057f6df715e894
BLAKE2b-256 checksum
How to use checksums
816aca2d8a7e81ffbf8f0e01ebb4b94eb2b5cf98214648052abdcb4906e3d9f1
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.2.4-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.4-cp313-cp313-macosx_11_0_arm64.whl
Size 148.8 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3db522e0cc788a3270c71682b5a3e97251be880b9d1d81b73e71f827edce142c
BLAKE2b-256 checksum
How to use checksums
6812b4a185e9f5f124e283f031b78755cd2b9cbbac408c527308509a9b39ed96
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.2.4-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.2.4-cp312-cp312-win_amd64.whl
Size 151.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
8fe193155a4c446c7cbc80a050209ed9958e98cbfadb1f532f787b63b9442a87
BLAKE2b-256 checksum
How to use checksums
4c396c258f2583543ad94e528ee116889ec76c654bd153b3a751b7b295e0a580
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.2.4-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.4-cp312-cp312-musllinux_1_2_x86_64.whl
Size 165.3 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1aab0c1d4ee5da2140f9f8d647dac0c97539b47c714c7d8395cf3fc614d98f84
BLAKE2b-256 checksum
How to use checksums
566c863c04174e10361a03cc72aaae68848639de543a5fd970ad532a81f4e131
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.2.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 165.8 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
a31d43a1c1887b76f628d8ddc376545966289604933122305140eb21ab145744
BLAKE2b-256 checksum
How to use checksums
ba51efed46efcf115ca1b661b99d249a93879cf0f39a3e1a29a1897a81e158b3
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.2.4-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.4-cp312-cp312-macosx_11_0_arm64.whl
Size 148.8 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b394474329127f9d850b406a1c72f1e7ca5340886a578d3f5c3ed387421a8e5d
BLAKE2b-256 checksum
How to use checksums
be912b9958749f73393d083c270afff89123b370fe89d8a216a685e431c9cdf2
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.2.4-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.2.4-cp311-cp311-win_amd64.whl
Size 151.6 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
f18381dbbbfc26ef286493343761be9e25c5fa3bc9c44d87ae465904b6daabe3
BLAKE2b-256 checksum
How to use checksums
45bfca132827a1c7e29c6dc4afcfd46fb4b296d888fdd7773d35a9b3237a4d4f
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.2.4-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.4-cp311-cp311-musllinux_1_2_x86_64.whl
Size 165.3 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e36e0cb0ea9521b109bb563d980c002693eb8474bcd83a2859b1eef9d4676b98
BLAKE2b-256 checksum
How to use checksums
30aeb42773473299b25f985820d26806f7ffee0d3bed6af4779a59d5ba9f4805
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.2.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 165.7 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
9d4d0c4e3fe7278881e7aaea3a91c555e31f77ec655e240831fb02865202735c
BLAKE2b-256 checksum
How to use checksums
f6a7a32f11ff4e56e8fb13015d178c0453a0c66bd0e512474cfb70fddbeac2cf
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.2.4-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.4-cp311-cp311-macosx_11_0_arm64.whl
Size 148.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7873788a886fb94fa4e01cb6d3d90a0c11c8877941346980d6f9aab420b584eb
BLAKE2b-256 checksum
How to use checksums
072acab69dfdaa84e31b73c35b4e72805474c7ca2a43c7af56b798f7070132fd
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.2.4-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.2.4-cp310-cp310-win_amd64.whl
Size 151.6 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
67d60f787844f2f32c8997ece220241a923fcd969075ef0950a6b3c607bec16e
BLAKE2b-256 checksum
How to use checksums
00b9ad121d686b406a5cdef6076efa8463923d0a8ce819e54eee404d2d915529
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.2.4-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.4-cp310-cp310-musllinux_1_2_x86_64.whl
Size 162.9 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
a8f88bf6f86522a2b8cb04c9c91a1de81355fbe2ccf42341a153760572240c7b
BLAKE2b-256 checksum
How to use checksums
e0da2171dab897c4c1faf36376f936f5a344119bfa4171cf2f5f348e21576cf2
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.2.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 163.1 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
098964628477043c4341935c08cd055b0998a187b879179ccac3813fa00c790d
BLAKE2b-256 checksum
How to use checksums
3add53891fcd37a090cf58ee058087601c61314f109cc10f7ab2f593ac2221bb
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.2.4-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.4-cp310-cp310-macosx_11_0_arm64.whl
Size 148.8 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cd5a68d25a1e916fed6bcfc2e7a58541200ef7d543ab1de4af5a38ee9c32fb78
BLAKE2b-256 checksum
How to use checksums
d43dea9a27f5d454d7e0bac3dbd7487e4f75dd9d9b57930941f7a4a5b8a55097
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.2.4-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.2.4-cp39-cp39-win_amd64.whl
Size 151.6 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
44ea20557c4f02cbc1398743b0d34b84c702ce783299997fbae1f45dd799f968
BLAKE2b-256 checksum
How to use checksums
937708e0ea732485420f228e7a1239dc85c50e82b14f9a5efa018dd4fd49ca96
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.2.4-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.4-cp39-cp39-musllinux_1_2_x86_64.whl
Size 162.7 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d866a35464edd9378524e4491f11bca4e851d3b71bf2863264457144cfd8499d
BLAKE2b-256 checksum
How to use checksums
e6fb21401a7ca748311dbd9d7f3f34cc8752d336bcbab8c76b05a08dc01bef1f
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.2.4-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.4-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 163.0 kB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
14965fa7ed0648c25086c98dd56951204d3c085e2e780926310266cdb4c20224
BLAKE2b-256 checksum
How to use checksums
6c579404da63fe7a6cdfe5eca58a71b5b5a3b49034c1b50646ebac231c136f93
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.2.4-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.4-cp39-cp39-macosx_11_0_arm64.whl
Size 148.8 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
943f32937cc9e7c140ff6a436da06c86211473dabfab1942fbbbf8cd3bc7ae18
BLAKE2b-256 checksum
How to use checksums
ed1c921625ba99541331ba9a0c7a955517fc16188a1b01eebed673585113f3e9
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.2.4-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.2.4-cp38-cp38-win_amd64.whl
Size 151.5 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
5ca5150355b1d3f85585e65611e0091deb0fc6fcb5eb0fc6c46a7efedc2a7699
BLAKE2b-256 checksum
How to use checksums
56ed200d46036a6fed8128d2dd0c0b1c5e2c4e637c612b11a81cd1e129349ede
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.2.4-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.4-cp38-cp38-musllinux_1_2_x86_64.whl
Size 162.5 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0f52810b3f9853d5114948c3e50d8b92fd65a0effc7015682e177c8136bdf4b5
BLAKE2b-256 checksum
How to use checksums
d55431ffba997f48224e2304d323767c087304060375e6c341a894dc8a4c6759
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.2.4-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.4-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 163.3 kB
Tags CPython 3.8 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
491d60a16fd947162f75c73eccf6a176bfed0fb21f69cd70fd1ad10898b5903f
BLAKE2b-256 checksum
How to use checksums
78f77af6eb5cb537419d524aaf5ca9fea9ed116daf246bbd94d7fce86eb6ab71
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.2.4-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.4-cp38-cp38-macosx_11_0_arm64.whl
Size 148.6 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
121141f71f5a6b7f6da9c9420c2229937a102258d51979ae5ee616ddf1a4fef4
BLAKE2b-256 checksum
How to use checksums
444309b1b1abab7cd321c64ed18162e32ebb06d327d5e40d7ee3c369b8afc7d7
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.2.4

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

29 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