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

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.0
File Size Uploaded Provenance Actions
flexablelib-2.2.0.tar.gz 219.8 kB Without provenance Details for flexablelib-2.2.0.tar.gz

Built distributions (wheels)

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

Total release size: 4.5 MB

Release files / flexablelib-2.2.0.tar.gz

Download URL flexablelib-2.2.0.tar.gz
Size 219.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ced915c350d8df68dd87e01f81a011c00a2feaa21e6c0602c2665e4f29346df5
BLAKE2b-256 checksum
How to use checksums
5a454c49be9d122c9a5a51bd8713ab311674113baf817c7a508f1fb2a0093fe2
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.0-cp314-cp314-win_amd64.whl

Download URL flexablelib-2.2.0-cp314-cp314-win_amd64.whl
Size 147.8 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
7bb70c014e6a02b5ec9cd04e84458fbef65a88446b4b5436ff5390506e13fecd
BLAKE2b-256 checksum
How to use checksums
a2d32086012c5fd85a3e1b21a80b2647b958284ca2516ed4d2ba26156e87da4a
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.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 160.2 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ba1d414ef6611156af5ed0c9518be9f0d9185c08c5ddb895cffeb6abcfb8b9b6
BLAKE2b-256 checksum
How to use checksums
e3b348ce8153f8b6b6097fcab8b7b7140a8f6fc0d1d981b922cefc368beca919
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.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 160.7 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
c46b96f4022bd387dc5d648ea385c15f6f3dd1f0821c8d011c11a44748c07fac
BLAKE2b-256 checksum
How to use checksums
cc60392e99628847046c8e0b421b2a6125f9ec94b5f2e8e5de998276328469ce
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.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.0-cp314-cp314-macosx_11_0_arm64.whl
Size 143.7 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4ef3f3c0453e446ec7f7d6a0a37609a1d88eae291bdce45d2f417381b8cb09c8
BLAKE2b-256 checksum
How to use checksums
9c5dee3d00afed04e70601fc490fae70d3a46d97859aac6d0116eb2d400b6b31
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.2.0-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.2.0-cp313-cp313-win_amd64.whl
Size 146.4 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
c7e20ff541be440ad0ea5e80d4f0868491daea7eef71d26004b953af7503e717
BLAKE2b-256 checksum
How to use checksums
96d1ccf7f847f411943caf5eb36eaba77ef15b635a8dabab13b7aa2a62b16b80
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.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 160.2 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
518292926838a84e4da050499ce4acd7aece117666d9c4f2d963e7d7a3b09233
BLAKE2b-256 checksum
How to use checksums
600667cc89d28c7cce40214ecce1323f11b9975fb26207654146339107946676
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.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 160.7 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
7a5c54a346a5d0dadc3d56acbfd2511ec8296da434ae7203625c2b9a41ca078f
BLAKE2b-256 checksum
How to use checksums
040bd1f741165601fd2e44384ce08c4f7008a06f71c4b8949b6c97e195f43e1a
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.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.0-cp313-cp313-macosx_11_0_arm64.whl
Size 143.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d9f96c9e4d9916f7b57c2e44da312b35159b0d49b5ac8cc0e82264b164bdd4fa
BLAKE2b-256 checksum
How to use checksums
02378f6264f9f47c895039e00ef6156d832b8cd8f2290e0f2a9e1bbeda5595de
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.2.0-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.2.0-cp312-cp312-win_amd64.whl
Size 146.4 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f841e156552f69dcf8022dc2ca0bdfd881466e610787140f5b8b32f8dc9ff6e6
BLAKE2b-256 checksum
How to use checksums
e2b8b8bb0719a309fa03e4608c37287ec28a5b7854c55945566fa1d0a1df9b8d
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.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 160.2 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
374bcf7328f9389d1d060d5877b73713df8241e0ca5e14fb26e2305c6b370033
BLAKE2b-256 checksum
How to use checksums
bb960c127e619f19c7ab3c06dc8e6d72c710c2ea75816065cdc797dce287f102
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.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 160.7 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
18bb1551ff02b8291f834e92bbab4de641fd70ac81471acd95354359c37c24da
BLAKE2b-256 checksum
How to use checksums
6822f544058a79ff048ef5a5b1019b364a19f7329b400bfdad53cfaaad304f2c
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.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.0-cp312-cp312-macosx_11_0_arm64.whl
Size 143.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e4f57eb61f94f059cd190da7aef348a15b1db8c17c09cd53f476862afbc095d9
BLAKE2b-256 checksum
How to use checksums
ded292c54e94d8397f98d310835bf1ecd7e4dc20f815de0fb5c276da1ae103ed
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.2.0-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.2.0-cp311-cp311-win_amd64.whl
Size 146.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
d6f99748d2867f12c51fe300a18f671347154fbf5ab6ac733784f8f3062a6ea3
BLAKE2b-256 checksum
How to use checksums
fc8cadf5fa76a2a3ba22f286854d1cc7c1026bc56b0e88125b44550fc35b8864
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.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 160.2 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4df4cb718b67e3d831fbcb0de0ccc96f1d3103c3d36c55af0ac725cfb0194af7
BLAKE2b-256 checksum
How to use checksums
052b8ac6a137da1d6e6ead647b4f188c667848a3ad8244c4c1e4d54500e7db17
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.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 160.6 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
044cf5ca247fb8e92fa0c2cc0ff399fe29142ec24ec4f4356e8221eeffb689fb
BLAKE2b-256 checksum
How to use checksums
0759e49ad7bdc27980ced24147a7181b65035a9905071deaffad7c84d6aba4e7
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.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
Size 143.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
205b96dc1ab20f8b5b82807928c0e7db09f7f2164e95783bdde99074f33d6172
BLAKE2b-256 checksum
How to use checksums
74c24f817ec26d264828dd52e557a5346c9f24de61dd9a9abc5749c3139a12f0
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.2.0-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.2.0-cp310-cp310-win_amd64.whl
Size 146.4 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
c2733503886614b31a0bed47cc795a6c60bb18334ecfefc14e7ede1e36ba095d
BLAKE2b-256 checksum
How to use checksums
ed63eca762031488c0ccebc5f77e31e6307257f4f32eb980e806acfb51ecbfde
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.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 157.8 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0ecdce9f55f0a849ac746051e77bdb57c0a1044339bdb39a0ac6eca22b4c9a79
BLAKE2b-256 checksum
How to use checksums
807b9911edab62e183451507d988ccf93551f3780b148eb2cc3ad9ae0bee960c
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.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 158.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
d3e391340faed8c43ddc81ebf87527f606b3a010407177c6f9d2d42b6209f048
BLAKE2b-256 checksum
How to use checksums
a1586e2272327c71d75ecd20e40d5c94fb0e5eb9550bd7f89f2206d7925faddd
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.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.0-cp310-cp310-macosx_11_0_arm64.whl
Size 143.7 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b142f503fd63574836e7cbd1b83d5e46f67ffca6ff94208fccba12d0ce60fa2f
BLAKE2b-256 checksum
How to use checksums
a60c0430dfd1ae831e5c644855f93a3bccb2eecb3922158eca6871f1a99929c7
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.2.0-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.2.0-cp39-cp39-win_amd64.whl
Size 146.4 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
ed7fd3072ac18502738311da2459d6fa51eba520c8119a4f9d206cac62f44e22
BLAKE2b-256 checksum
How to use checksums
6c35382427b2fdd59c8d39447a14da4b295a5c4651c058a2798a6af1bd7289ed
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.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 157.6 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
8cc6744e5c6cf0e4dea912eb4200f95590a0ab393251da540073b71c2389d931
BLAKE2b-256 checksum
How to use checksums
b74d51933928a44f61df2661293abe470c2181f017fe8861025452334e8e2819
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.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 157.9 kB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
df876c965f6516d37988f655fc03ed2b8a94bfc4d4309144b8c0188d550c0511
BLAKE2b-256 checksum
How to use checksums
b23f5b4826660f8d8ae6c91013e963504a7e82bcedfb19b71c829fdeaa22aadf
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.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.0-cp39-cp39-macosx_11_0_arm64.whl
Size 143.7 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b08d7e817b85664ce2139f1df316caf0ffe53f3aaee7e84a45455dc9e1d486cb
BLAKE2b-256 checksum
How to use checksums
643bd91b5d9d218f2b19205a0b3809e60445f14bee2a1213727ef7dab63e2f3d
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.2.0-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.2.0-cp38-cp38-win_amd64.whl
Size 146.3 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
87e45d01407aad531170417f1ed0fbf7fd6e8241bbf1f6f95d00afdfb46228ac
BLAKE2b-256 checksum
How to use checksums
4f779ab257ac25215e7be2cad5ee62d71641d0a38930eefc7422d76279da7924
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.0-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.0-cp38-cp38-musllinux_1_2_x86_64.whl
Size 157.4 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3e37d22e03ce4e88454915dfa061276faf28de95eee0cd69254b0e21eef45650
BLAKE2b-256 checksum
How to use checksums
a4df93d92975612a3331a5a76b2c8c84e8330b1c9fea491bedabfdcfd91d6bdd
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.0-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.0-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 158.2 kB
Tags CPython 3.8 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
312bd629c905432c9a2a74539adecb5d1f1a81fc2e85c4b4b1af2a201c9a8578
BLAKE2b-256 checksum
How to use checksums
5d35365831e628f4e27767a6b6090f8c163574f7d45ac2830e1ee62855e729be
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.0-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.0-cp38-cp38-macosx_11_0_arm64.whl
Size 143.5 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c2881e494ce82b6e372939055f5f0e23bc00ab779574bb35cd645ac95599488d
BLAKE2b-256 checksum
How to use checksums
55812dac8408354757f69953614fae2784dcff767a8dc31ba7f013d7753dd998
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Security for flexablelib 2.2.0

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