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

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.3
File Size Uploaded Provenance Actions
flexablelib-2.2.3.tar.gz 225.7 kB Without provenance Details for flexablelib-2.2.3.tar.gz

Built distributions (wheels)

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

Total release size: 4.6 MB

Release files / flexablelib-2.2.3.tar.gz

Download URL flexablelib-2.2.3.tar.gz
Size 225.7 kB
Tags Source
SHA-256 checksum
How to use checksums
cd85688e7eb17887723a6cac04c0ddaffa8a45b8b4a8f016a0f85e5f1a52f9ff
BLAKE2b-256 checksum
How to use checksums
0c58ad38eb60b7b8362edbc8b38e2a7839554ba4d825f6c94a3c0f6c2534c40e
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.3-cp314-cp314-win_amd64.whl

Download URL flexablelib-2.2.3-cp314-cp314-win_amd64.whl
Size 150.2 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
8b00e31632f46820418e47fa4855dc4e4eb4e9791ffb2b7acda7797d8ac5c015
BLAKE2b-256 checksum
How to use checksums
ec9af502f062d25353fb2c214e1ce7a7eb50058ecaa534cf5f6504e5202bc725
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.3-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.3-cp314-cp314-musllinux_1_2_x86_64.whl
Size 162.6 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1a3492febcafeac167040db30f3b70ed4f13d587639aafac7b4dde295e2cbc90
BLAKE2b-256 checksum
How to use checksums
4b2cf5d87b919e8b7b328cb86d08f2b50374ce7b65af37551b950aad5e6f9c5f
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.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 163.0 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
b7d54a51d6dc482bd38f86abe85832d6ea3946b92de9317bd75594cee5515bfe
BLAKE2b-256 checksum
How to use checksums
bb756bbce0dc8a4fa0478d94beb6c8471e0149cd5601c7344b90686889029f6a
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.3-cp314-cp314-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.3-cp314-cp314-macosx_11_0_arm64.whl
Size 146.1 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bb17e2e8a2858ccb3a8668215247782f7f8545af82f7e99bf7abfab37b3ae9c6
BLAKE2b-256 checksum
How to use checksums
4c49dff174be35b811f7608f81bbc4e245773838547d4ed29685a5b3584d3b2b
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.3-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.2.3-cp313-cp313-win_amd64.whl
Size 148.8 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
cc92b9ba75b79d2d99b7833950ef7899f333305e4fa6e2d75613353421e61f73
BLAKE2b-256 checksum
How to use checksums
d40d5d454b018f59b720e620e2345fca2abbf0b2d82de76bd30b7976e2e5ded5
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.3-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl
Size 162.6 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0839740075da874bc58ca0169bb1fbe34b46a257033317a6f1ae55c9c2ac9d10
BLAKE2b-256 checksum
How to use checksums
6deab6c3856b9f57a07d6f7ff5827673121ae553a6b73b90d02e50f598031391
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.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 163.0 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
660ff7fa4b1761850919dbc88a9f7c780c3c3ae35dcb621423af37c20c2053b0
BLAKE2b-256 checksum
How to use checksums
fbfe7ed99b19fa9bbca21296dd912923f4d37077918bc90b91ef739dc9a61b10
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.3-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.3-cp313-cp313-macosx_11_0_arm64.whl
Size 146.1 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a3c807fa66dd4d00225848819d1c59d4759dd6ac7249b6b0a6fb0d911c40cd49
BLAKE2b-256 checksum
How to use checksums
4a63cd3788289b3b88c63a54296c9973f62a82801d3c88cb838b4cd74403a0f2
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.3-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.2.3-cp312-cp312-win_amd64.whl
Size 148.8 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
65159d50d5405ff7e95cc52e5480e7010669ce54ed13351b54fec3566948c06b
BLAKE2b-256 checksum
How to use checksums
e92d592743c9fbc89193b5abbb7616f2b7b3872791e04758dcaa70c207e01e2b
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.3-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl
Size 162.6 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
9d5d4c88766be9e5010b1acb4826be6575cb8153df4568d67c7a984e3c9491eb
BLAKE2b-256 checksum
How to use checksums
ff2039be12bcce7f63117ecd08b19035f6f089bc8a62c00e85bdd85cfe06a8cd
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.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 163.1 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
d947e5049dd4040eaa9f92fd35faf1eb272c693a5808847d15e78c866d81eb50
BLAKE2b-256 checksum
How to use checksums
b3a268ea7166963497754560081cf290250cc688bdc25e09160d5549727e4e6b
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.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.3-cp312-cp312-macosx_11_0_arm64.whl
Size 146.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
904629f6539286121ff0e8ef79787698b26272668e01de31e17dd0058a074bae
BLAKE2b-256 checksum
How to use checksums
4e5eabc56ea6d6d7c9af31474943217ec9d3fa3dd428bd63b1d206625a4247cc
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.3-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.2.3-cp311-cp311-win_amd64.whl
Size 148.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
70cd1e4cac1195323c72a8351679ab52e3036e598232bf1a735f91cd4c695440
BLAKE2b-256 checksum
How to use checksums
f9b2be9e84e8fdce1544fe0a901d05100070929b3ecfedacecd898b5b848a546
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.3-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl
Size 162.5 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d6593c454798c8e18eee02a8b83639d9cc9b86f3422b99351b4244eb1db56eb4
BLAKE2b-256 checksum
How to use checksums
5ea8f324868b4cc0107e2c4bf8cd459b79d6fcd9cdab0db3e21a4e6569c1f166
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.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 162.9 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
941590d453ffab112ab1e45f087cee045d0a677299b8c38c361506ee2dd18161
BLAKE2b-256 checksum
How to use checksums
2c64842106291b2391b23ab556e58e5785d493858555fcc859a9df6bb9acc2ad
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.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.3-cp311-cp311-macosx_11_0_arm64.whl
Size 146.1 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7827459105e7506dec23f37b66d7db71adb8712ff006a8e3d2dfe6002aa64ba8
BLAKE2b-256 checksum
How to use checksums
05bb1f5d9171db1f981ee660550a5421f7dcaaa45796ffec18896b1c714aecf8
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.3-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.2.3-cp310-cp310-win_amd64.whl
Size 148.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
aefb0277d5768562008a9d747e782b89351e7dc753b4cbb9b38dfb8c3061d25b
BLAKE2b-256 checksum
How to use checksums
9193997279b6db391692a700c30cb068873e62955af9582bd5e0366f4f585440
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.3-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl
Size 160.1 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b2e8823321cb0107b4489cfcc589d1b115f568f2217689621ac27cf0e5e5f7ff
BLAKE2b-256 checksum
How to use checksums
d0640b65d731994951c8d39d8492ba3b6c5023d6afa00f55effb989f9b6ee9f6
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.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 160.4 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
f88d772729a2c71ad4b62b7cb0584ec3d69ca09d1c46f1ac07e07c40369dd00f
BLAKE2b-256 checksum
How to use checksums
6ff214bd1cb85a2f718b82675223fbcb2c3de00e7a3ba620d811ef02561e9620
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.3-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.3-cp310-cp310-macosx_11_0_arm64.whl
Size 146.1 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7fa223e99fa16f86d3b9ae52bfad998f5f4fedb703f2dff037344476633d1933
BLAKE2b-256 checksum
How to use checksums
51226b5eefdb0d5ee091227980441d4ffa9062ae01a6a152ce53f83e62f95c9a
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.3-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.2.3-cp39-cp39-win_amd64.whl
Size 148.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
9460cec2b2c2a4fba3c516247f7ad07ffcc6d0e0b54232d9ea91212e282a6faa
BLAKE2b-256 checksum
How to use checksums
41b6c8ebf2df3f0f7eca34b9fde8e47a3b5a92167b9b8b9a1cd8c45fd945a881
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.3-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl
Size 160.0 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
6d99ddb7adc7772f3267c8c31e4463ff87d80df877e3697ea164c645e018420d
BLAKE2b-256 checksum
How to use checksums
2337a810e1f1b3f358742547ac77c4ee244ce37ed4f62e2176de02a2c1833bb7
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.3-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.3-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 160.2 kB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
f1f958ec736df56fb762e949ebd82fd2d113cd8993785f5fd97494a908d55745
BLAKE2b-256 checksum
How to use checksums
a5f5d0c1ced68e0822f16b178e99c07992d474100e6e9023ec40e6b3c3c9c14b
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.3-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.3-cp39-cp39-macosx_11_0_arm64.whl
Size 146.1 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4b77c12470511969047630a0f0b54214b85c5b1ee30f63e5e60370f291e5f41b
BLAKE2b-256 checksum
How to use checksums
d67de2e5abf99b84cf76906665f835db54ed099fc07b638b49322cf265000326
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.3-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.2.3-cp38-cp38-win_amd64.whl
Size 148.7 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
fd0bd01205c65f221eb51d080f1057a0ddd0302dd477340525fe42747a427554
BLAKE2b-256 checksum
How to use checksums
9d21188002c7f587474ffef87d214750eb2f91b72915d6284ab39671672cf299
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.3-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.3-cp38-cp38-musllinux_1_2_x86_64.whl
Size 159.7 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
6028a43ad5ff80bf8ae49301bfcfcf241a3b5b28e5db967b51eeb9293710f658
BLAKE2b-256 checksum
How to use checksums
fc6c24310b0d7039d91760ff59fa7a78279411f656f38990aa0573744c147387
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.3-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.3-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 160.5 kB
Tags CPython 3.8 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
491384e03958cc1d2ca7d3449cf95d7b85752b899305dd0cb362892c9bf5b417
BLAKE2b-256 checksum
How to use checksums
2183ff8aa4072ae5501329eae262a735237e9439ffc25f1d65f5b4f6be5b9716
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.3-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.3-cp38-cp38-macosx_11_0_arm64.whl
Size 145.8 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0e040a6bf0c1cb49272e45f50006491d01782c3d281c6f5e0aba54821aec5468
BLAKE2b-256 checksum
How to use checksums
3892cab10973a757fb50cabbee48aaf02a26bfd71df6b75ab9de4060491b436f
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.3

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