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

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.1
File Size Uploaded Provenance Actions
flexablelib-2.2.1.tar.gz 223.3 kB Without provenance Details for flexablelib-2.2.1.tar.gz

Built distributions (wheels)

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

Total release size: 4.5 MB

Release files / flexablelib-2.2.1.tar.gz

Download URL flexablelib-2.2.1.tar.gz
Size 223.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9110967647e634c9603f6485738c263c069f319e312c41b5a057d72069d27db9
BLAKE2b-256 checksum
How to use checksums
285c4f1af4b05cfd40a46d63bb77389f06870624614e2b2a8211b9ab36fb4443
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.1-cp314-cp314-win_amd64.whl

Download URL flexablelib-2.2.1-cp314-cp314-win_amd64.whl
Size 149.4 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
c81207ea557b9f3ea17e52e9775ed8d782fc06230bc2223d4f0a92d974acc866
BLAKE2b-256 checksum
How to use checksums
7b9435ab7d1d66bef516dabdbb4ad6c47e77b58fa9827d7d5616de9d798a2d7d
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.1-cp314-cp314-musllinux_1_2_x86_64.whl

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

Download URL flexablelib-2.2.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 162.3 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
99a19b0b64db60e699b9b406f8bdf184271c97a77b3cda44c722dd11db238092
BLAKE2b-256 checksum
How to use checksums
1835930112a79c56a19102384cd6d6669c728301205bc4ad08860c8b4f823a9e
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.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.1-cp314-cp314-macosx_11_0_arm64.whl
Size 145.3 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e224d6cdb01b359c5ab4f11c2d895cfdb462efc3fd17b0e4e00cfb7ed78b472b
BLAKE2b-256 checksum
How to use checksums
125d92a08d810e2cb64ccf9b87edabc60fca4d418eb6527f125315bea81c1a43
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.1-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.2.1-cp313-cp313-win_amd64.whl
Size 148.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
c9a21ccf649f00daaad7bc5e5ae64e17996e1b98be056437ce8f3fc5c2cf028a
BLAKE2b-256 checksum
How to use checksums
788e29d44710718ac715933a1c0f9751df747d70899f4a3036f290238cb85e76
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.1-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Size 161.8 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
adeb9909360a7bead44ede2dc39a626cf1b35bfa92ee478b5515f27ee6dcb134
BLAKE2b-256 checksum
How to use checksums
e67a297f9ea1a8674a7deebc0e50bc3dc6a6862eff33f92709832871038bfd1a
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.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 162.3 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
373e2d7d0fb552766091b653936ccc69fdb3390955ece259b77f77645cd5091e
BLAKE2b-256 checksum
How to use checksums
04aefedac808643ee4cfe61b0a465a68b35ccc9fac9663e748dd673bdd83e430
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.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.1-cp313-cp313-macosx_11_0_arm64.whl
Size 145.3 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6fec626602ab477bc890e022294331e8dbb3a3b4fba33fff9cda08a791c20841
BLAKE2b-256 checksum
How to use checksums
6c6226acd1e57c9a8b9bd62fa81f5b2bbc9ce7e92f2a8660c92ed2faa29809c3
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.1-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.2.1-cp312-cp312-win_amd64.whl
Size 148.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cdd9f3f34fec47b9f0d49c1a3d26893ac4e034d1c97cbf20a783db8081ce90bf
BLAKE2b-256 checksum
How to use checksums
863ea3b217e2ed1e3f43ca6c854a24a24520aa097a72ede4f53781d5e452f5d0
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.1-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Size 161.8 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
6ad4258bd79b5882b43a569db7d7dc2cfa4a4d1ddaa1107dd55438bc6c7552d2
BLAKE2b-256 checksum
How to use checksums
fcaea109878770f4d0ce0dba6321017afd9b3bfc39f475dc2f0f84a1beda008b
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.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 162.3 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
d2ec94c8535cf23a2dce43dc1e2761dfcd1070ab7f1384c6cc23ce6ca13e2c05
BLAKE2b-256 checksum
How to use checksums
f2f248d99e5e0b2433164bbc5f5778a49dee4fe43b0a44db3e9e5acaef5715ef
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.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.1-cp312-cp312-macosx_11_0_arm64.whl
Size 145.3 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
732e8769af6d82b2c8ebe9470da36c5007ce5e4fadec2ab6c74be15f75a87bff
BLAKE2b-256 checksum
How to use checksums
12ce510367312af51b8fefc0c89abcff03d2865353d9beef99eb3fccaf050001
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.1-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.2.1-cp311-cp311-win_amd64.whl
Size 148.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
3005146c17653e9c0c29e0ec8af76f765a607e9007bdc0079da78cfc1e69f2a7
BLAKE2b-256 checksum
How to use checksums
d62c43635b7b430075d30161492a97bc8cc002007f80ec87d9dfc0d9c1685646
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.1-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Size 161.8 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
9082d89f3100d9523123097c0714cdb31b88fc2b01a1d8ad1ae1a090dd1137be
BLAKE2b-256 checksum
How to use checksums
7cf8065170cbe9caaba17cfd20451d1b0e635b9b70370e241d5f6860e44b5380
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.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 162.2 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
fb572ef4c007e24f47086ace9c18bdac5e2f9fd3e409fed0ab8be7138cfd164d
BLAKE2b-256 checksum
How to use checksums
3e6fa2851f506b51b09f974dce0b01ca3dbb9abde1ebe9524c00ed6087cb6c19
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.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.1-cp311-cp311-macosx_11_0_arm64.whl
Size 145.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7bb080dba019eb7cdcfafba156e80c55cf798d326083f251aab186cb4bb9d879
BLAKE2b-256 checksum
How to use checksums
86364f59ff4e0be9c7bef4bf738247b786c5dec0b17e1d1db19fc2997c5ef6e4
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.1-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.2.1-cp310-cp310-win_amd64.whl
Size 148.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
44ab42126daf1c0b6d131c84c420bb571d28aed22e04ef9fb1a7822245835011
BLAKE2b-256 checksum
How to use checksums
3e292e16c39b2e2d8783f41b7ee5ffcc07bad809abe3a53035764d7418f7e773
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.1-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
Size 159.4 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
eb780bec67d7ab420948b1fee780d4d7907d172f2b67524d1bb6cd7ab8508431
BLAKE2b-256 checksum
How to use checksums
395816b8e66d0e0341537a0508669c98f3fa37c8da7b08db48566589143b3d7f
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.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 159.6 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
865915e3dabd211b87be8c0a78ea97a10b0acd2e416cb5f56ea78739b05aa404
BLAKE2b-256 checksum
How to use checksums
39782ae392a6a9f6ef7b86e25b1990585105fffe8537d0130674375f0c8e6220
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.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.1-cp310-cp310-macosx_11_0_arm64.whl
Size 145.3 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3551a3b6b0ecb4872cd0b6c10e9e747a4eeaad0e15ed8c1417d19be4ecb0b2f8
BLAKE2b-256 checksum
How to use checksums
998c87b743e73096072a142c783462812e36d7af1c615d28f6f287cf40f6d321
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.1-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.2.1-cp39-cp39-win_amd64.whl
Size 148.0 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
09e1c2de60d0ee1c3533de51e9899dcb4564a139cf8641cf8925129e3a0e90c3
BLAKE2b-256 checksum
How to use checksums
09c51bb5b7e3eb74985f0210d38ab61963a8fdca139f0d875ff90af9ba97e6fc
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.1-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.1-cp39-cp39-musllinux_1_2_x86_64.whl
Size 159.2 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
63c340ed7e361d63fa062092f0ced1d6e55fbfc5cc8acb44d3ed3025abad5e90
BLAKE2b-256 checksum
How to use checksums
b1748cd2733e9e7c62c8e58efaa7fec77844976eb54f084ac34878f486c104b5
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.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 159.5 kB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
a57d1fcf5bcfef1be12e696da9a549a528636a3ed7ca26fdb09e0db78e598d52
BLAKE2b-256 checksum
How to use checksums
cdcd2536e655807066b06ad5c78fd24e71765d696c5223be379d3cc412be773b
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.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.1-cp39-cp39-macosx_11_0_arm64.whl
Size 145.3 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f9ab08f4c747e661ecc7e9ce6ded531344f6700879909a71a7219782706463c3
BLAKE2b-256 checksum
How to use checksums
3cc27b54d176d95996d709161274cd2070c87e567ab1f185a63d88d614507902
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.1-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.2.1-cp38-cp38-win_amd64.whl
Size 147.9 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
bd6aa4a5ac4e7be2b614957222dd8a3f0d06ab43dcbcdc03da676f9bf2f9fe5d
BLAKE2b-256 checksum
How to use checksums
c1615e3b7f8ba7c31f4bed91fee8dcfac5a7d2d7b6e48f857ae952985c1a5b6a
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.1-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.2.1-cp38-cp38-musllinux_1_2_x86_64.whl
Size 159.0 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
6ad17ca7ab9d4642e10e896430c4124bcbcb607902737301e9bbba6251210731
BLAKE2b-256 checksum
How to use checksums
50ce1302a2ca43b9dc66299987c1506a3556384c7280dc0bad9db0e4704846df
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.1-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.2.1-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 159.8 kB
Tags CPython 3.8 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
782a6a823a401818b7a4c6b5313e55bb1eba3ab7ca39f70e8e980313b41d2dc5
BLAKE2b-256 checksum
How to use checksums
b54b35dc1103f098ce0a5e0de37252ea314069e4ade5a2df938ba3809640b4a4
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.1-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.2.1-cp38-cp38-macosx_11_0_arm64.whl
Size 145.1 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3d260ed0491aa5e23465d7579275fefa72e3802d4317915fa338affe805f963b
BLAKE2b-256 checksum
How to use checksums
8c4e00c51186d5a4da6cd74d33e36b3c75b4380f5538a9a27367f15fe0061949
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.1

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