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

to_html writes one self-contained file — the stylesheet and the sorting, filtering and pagination script are inline — so it works offline and from a file:// URL.

Text formats deliver everything as strings, and a column of strings is left-aligned. parse_str_numbers converts numeric-looking text so it aligns as numbers; the readers turn it on for you:

table.parse_str_numbers = True

Values with leading zeros are left alone, so '007' stays a string.

Merging cells

Render a rectangular block as a single cell, across columns, down rows, or both. Coordinates are inclusive, zero-based, and ignore the index column.

table.merge_cells(0, 0, last_column=2, value='Quarter summary')
table.merge_cells(1, 0, last_row=3)                # keeps the top-left content
table.merge_cells(0, 0, 2, 2, value='Total', align='r')

A merge never widens the table -- columns are still sized by their unmerged content -- so text longer than its span is truncated.

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

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flexablelib 2.0.19
File Size Uploaded Provenance Actions
flexablelib-2.0.19.tar.gz 201.0 kB Without provenance Details for flexablelib-2.0.19.tar.gz

Built distributions (wheels)

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

Total release size: 4.3 MB

Release files / flexablelib-2.0.19.tar.gz

Download URL flexablelib-2.0.19.tar.gz
Size 201.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a6ac8e6d6eb42e31c03f05677311fc9985a9e2ff6665d23f958a6e3c80a4e7ce
BLAKE2b-256 checksum
How to use checksums
1d18728a00d2f96af79751cb52ca03c7c387b0ab235857855e6e93bf4879c32b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp314-cp314-win_amd64.whl

Download URL flexablelib-2.0.19-cp314-cp314-win_amd64.whl
Size 140.5 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
f75d6462d64355cf241bee786b3659656ec911c8d1d1d7dff3a2ef62d628dd50
BLAKE2b-256 checksum
How to use checksums
9b2f8063b745dc0c8731b7b4c2afd99b8f7fea63fbba2c7af3f37071b441b064
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.19-cp314-cp314-musllinux_1_2_x86_64.whl
Size 153.0 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1f2d0927188f07c969f7f60eb38d7f5cd7722e12536c38229679df974256f18b
BLAKE2b-256 checksum
How to use checksums
96c82bc68881f6a252dcdfe866ab980cecc4dd8564f9104613ec07f71b3b84aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.19-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 153.5 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
051d9ab8bc6d694fd4273785fe4697a070d152b06f03ee18228c51a624e5e1ae
BLAKE2b-256 checksum
How to use checksums
1dbee12bcc112ed7a94c1e17636fe940443a0f398878c62a60c963583508f152
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp314-cp314-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.19-cp314-cp314-macosx_11_0_arm64.whl
Size 136.5 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
91c0bbcbd3c436957979cb5bae496de0ab1945823e51e22594a958cca469f843
BLAKE2b-256 checksum
How to use checksums
84c1562d6b9c37c75fc2b18fc95eb6498e5317ea4b061a83eebb789f678c4af0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / flexablelib-2.0.19-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.0.19-cp313-cp313-win_amd64.whl
Size 139.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
016d568d951fc32814d6e9a262dfc0cc9d957a4a2e34b16f0be6ed62bc61c044
BLAKE2b-256 checksum
How to use checksums
d6223b747542bc1476d61651fa18b063b712ec42b523ffcce6ded98bc018dc8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.19-cp313-cp313-musllinux_1_2_x86_64.whl
Size 153.0 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b1858b31fc84ca7ca57ed5037be7ecec26831b63e0c7e53e7e6a9c7b0f7460b0
BLAKE2b-256 checksum
How to use checksums
17edb6d44f114899b277d1490e131bd7d9e6163b550d1aa381389dbbc3d35ba0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.19-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 153.5 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
e2260418ba36f521d6518fafc6342f35821e6222ff8d1d77214eb6b5ecb23599
BLAKE2b-256 checksum
How to use checksums
3365433fcfd9877a5636f1004c0b7dbca5d48bf771315bfa74bf951366d21346
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.19-cp313-cp313-macosx_11_0_arm64.whl
Size 136.5 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
935daf1e28960b46dc6f54ba9fc2fb572affe570e3bceaaa6f4fdeff82348497
BLAKE2b-256 checksum
How to use checksums
20e24cfdb11423665430d47110cfe62bdb24a5810ee96edbf1ee10bbdf6d63e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / flexablelib-2.0.19-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.0.19-cp312-cp312-win_amd64.whl
Size 139.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
95f5a1a13f973e0ee82e5abf88f06909b23f9bbf243c97d1bc7304cc9da718c0
BLAKE2b-256 checksum
How to use checksums
b5a6697c331d05a2088c2d7426a9839d62559ad557a4f3679fa4e7d60bc9bda6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.19-cp312-cp312-musllinux_1_2_x86_64.whl
Size 153.0 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1c57d0f46025dfbf74592e5f4790d312477e93689f29ff37e243480286e936d9
BLAKE2b-256 checksum
How to use checksums
3f9848824c73b73c120a7ea6e2a1122aba1a5621039ea3549906209876decbc7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.19-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 153.5 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
7e1ecf2ceea822aa3f2bfbfcd33655a154a05912e7ffcb362562c7402a17dfe2
BLAKE2b-256 checksum
How to use checksums
04d6d29ce02673e1015ac88980aec9fb1ec9282bf04554d4ad2323634d3e07c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.19-cp312-cp312-macosx_11_0_arm64.whl
Size 136.5 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
03cf83c372a14ca120afa0fa818d32f0d1ecc0e6cd650487e7581fcd190e5577
BLAKE2b-256 checksum
How to use checksums
121b888e48547fbd3528628f6461adc60fc578bc0ce7b8b0aba584de2ec39893
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / flexablelib-2.0.19-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.0.19-cp311-cp311-win_amd64.whl
Size 139.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
dce79c8e3acf9d67e1778363b79b68b5dfb88beba90dec5d9c0cf9f7a9f86bcc
BLAKE2b-256 checksum
How to use checksums
f7a48774551900386bda8bba4bd34514be64fe8df702a2f7255addb21f0ba48d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.19-cp311-cp311-musllinux_1_2_x86_64.whl
Size 153.0 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b4e6ecb6d38c1eca01ad99b17526106578f5972c7b7df3ee5e8e541a27e5b1a6
BLAKE2b-256 checksum
How to use checksums
71c83e015178f161e4231228e6d2467ce4d8a3e4e29f4b514c0b6216011ad3d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.19-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 153.4 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
966fa844678840afe52d3e6a9d94d5d9071c1bac1a77c091b7b944627ecb5bc9
BLAKE2b-256 checksum
How to use checksums
5496f95dc2d03aef9f32cec39c0cd1083acb76b9f75b2485aa5b0575d225fa1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.19-cp311-cp311-macosx_11_0_arm64.whl
Size 136.5 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
af4591c335420ddda7a4af706006f171cb68832486106cae514530068763df31
BLAKE2b-256 checksum
How to use checksums
ed2f2bf004d12b69ad36ae761af475b7df2ec25b941fb79ab7bc861842c85cf8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / flexablelib-2.0.19-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.0.19-cp310-cp310-win_amd64.whl
Size 139.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
800ac98da79f0f67b416afc46d7b834e2f76171b742e260c72e7c931f319f29d
BLAKE2b-256 checksum
How to use checksums
9e0f1ddff011fb85f3800bf781b225b1586c921656e297dde2097a94edc469bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.19-cp310-cp310-musllinux_1_2_x86_64.whl
Size 150.6 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d2824f4b3715ec41fdbb44f5ab18a4cc0701a07914bb88041bf3c02c75d5ec25
BLAKE2b-256 checksum
How to use checksums
a043bf3528f191375c58c079c101637ab06903069655a78dcb44b62f6d858f77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.19-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 150.8 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
73b693f8f167d13a9938fa853c4974b1f4591fe326aa727f44d4a9a28ebc6529
BLAKE2b-256 checksum
How to use checksums
2e528d5a569adfa02b6474caf5d13ddf86752b9f990921090c85e77f4745794c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.19-cp310-cp310-macosx_11_0_arm64.whl
Size 136.5 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6f22d222b01dc8803c3b4764aef8f51bc09eb07ab8a507ad441c55376c77fe09
BLAKE2b-256 checksum
How to use checksums
fd8ee9b0f5c0da8fca16f316a126277f4f2fee03993c88caa1da26155f2abd36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / flexablelib-2.0.19-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.0.19-cp39-cp39-win_amd64.whl
Size 139.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
3a7b01684e01b419cd3d52f7a6a592f965493205acf8e52bff091e0e8ec7fe7e
BLAKE2b-256 checksum
How to use checksums
167c34c4b78209d07da1f94202f16ab474043eeebf47704e85af23a75daab948
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.19-cp39-cp39-musllinux_1_2_x86_64.whl
Size 150.4 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
12efbd22d55bf14914da7659a3e119df8008ab66f4bf461e11f3aed80bb0501f
BLAKE2b-256 checksum
How to use checksums
0f9fd97563b43c7b03288e76ffa8558c33f7d5e893c224f36b33ee04e37f3ab9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.19-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 150.7 kB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
7272a882c856f34bc08f44d92b7afe057af9b2b35c9218048654c0386aff9d67
BLAKE2b-256 checksum
How to use checksums
ee7dbc2a019977a40d2e5093df28b081fa3a5623239f42c8a0e5d894e3366d53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.19-cp39-cp39-macosx_11_0_arm64.whl
Size 136.5 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7456d099bcde362fc1f0f69eba28c160d7c85514a47f2c0f0e06cdcd931eb72d
BLAKE2b-256 checksum
How to use checksums
26d4893a74b9374479bbfccc7aaa9313d6de724b3e3e29bd0258de7d5be4914a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / flexablelib-2.0.19-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.0.19-cp38-cp38-win_amd64.whl
Size 139.0 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
008e82ae69de95166be83480f8202f1273e34f2401cf9f12250054d388697386
BLAKE2b-256 checksum
How to use checksums
fcb5ebe89eee50278d230db03bd6522d50022fbbb34b0e305975d281be74d93f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.19-cp38-cp38-musllinux_1_2_x86_64.whl
Size 150.2 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
9f11681751f691fba95aad3cae2b8265d2936174bfcd556cc7789c2624dda1e1
BLAKE2b-256 checksum
How to use checksums
278fffda3047e9fd0ede87e08481043ce7df461dd9bc903be281d3f53fc27dc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.19-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 151.0 kB
Tags CPython 3.8 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
aecccb410e6e926aef3f5d7069e5b55cefe3834991d5654fb2bc9db2e293dab9
BLAKE2b-256 checksum
How to use checksums
337aa0802a939db6ac8be39072b2c1d152fe6ead245498ed4e5a3224e6661151
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / flexablelib-2.0.19-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.19-cp38-cp38-macosx_11_0_arm64.whl
Size 136.2 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c1c2a12d680b45e74a3a5e2ecc04b614155680d401b75d92fe84af9d7f42d7ee
BLAKE2b-256 checksum
How to use checksums
747e9c92a0cfe046a2c63a17d324ea0a6a996c415dd0e5eb10879d7b8551c1a6
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.0.19

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.0.19 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