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.13 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.18

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.18
File Size Uploaded Provenance Actions
flexablelib-2.0.18.tar.gz 190.3 kB Without provenance Details for flexablelib-2.0.18.tar.gz

Built distributions (wheels)

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

Total release size: 4.1 MB

Release files / flexablelib-2.0.18.tar.gz

Download URL flexablelib-2.0.18.tar.gz
Size 190.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a6b72e32d359e969cf1aada83b88934c90853f92341f25d9c07d6d9e8ec9cdec
BLAKE2b-256 checksum
How to use checksums
2a351102a36623f93e5acecf23e7b566ffc5421ff34c9e11c28d84ba64774f9a
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.18-cp314-cp314-win_amd64.whl

Download URL flexablelib-2.0.18-cp314-cp314-win_amd64.whl
Size 136.3 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
1c77afbe17f28b946baadf76ae1a8f858dca57ab92e4067cb686c78de558fa76
BLAKE2b-256 checksum
How to use checksums
d1c1cab0bf09acb50d4c8004c61cbdbd4994f1304128207f4186c7225488e760
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.18-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.18-cp314-cp314-musllinux_1_2_x86_64.whl
Size 148.9 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b399416723584601dfd09bb2cc0fd2c1c0a32ad8f3f20c2a0f68102162a766c1
BLAKE2b-256 checksum
How to use checksums
d2bbc940a4a918bf99ffe8e5895275e5884cdb1fb9a74033dd8123b2666bfb13
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.18-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.18-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 149.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
c938ef30bff96c99bfeed998a9e1916038da1a89fdbc6f7c6905483ccecfe0a6
BLAKE2b-256 checksum
How to use checksums
ba7f8d60c4850444d42c215be98559e8265f70684b835e826f98e33992f961e4
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.18-cp314-cp314-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.18-cp314-cp314-macosx_11_0_arm64.whl
Size 132.4 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
49fbf14542a9ef1049e4a0023bcec37cb49197195a9f231fd7936b3396657d1a
BLAKE2b-256 checksum
How to use checksums
e9d8cb7e06c72de0015c51035021599c195ac853d0796887d73efd6129d608fd
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.18-cp313-cp313-win_amd64.whl

Download URL flexablelib-2.0.18-cp313-cp313-win_amd64.whl
Size 135.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
b6a824d581e9daf653f0280bc04c5b788b602045ad23b8ae3fb088fe33271bba
BLAKE2b-256 checksum
How to use checksums
28de2cfe401bc8fc03b39e7422c1e63d75ac69b6195540694ef746e66190114d
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.18-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.18-cp313-cp313-musllinux_1_2_x86_64.whl
Size 148.9 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
aa80f18f7b4bbdcd5f59568aec6833f6e68e347cf0873c2a375452ef3039ae2a
BLAKE2b-256 checksum
How to use checksums
9075f159a62f22cf9f8cd67eb5ce17128e71c654a43337db9c9e0fa398a1123f
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.18-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.18-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 149.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
c357e4338cbda84be73ffab2134ba6ef9f28457e69fc9dffd828789520cf254f
BLAKE2b-256 checksum
How to use checksums
2fe96ab4eff76df9aa284dd359b4afc1d0ee0eef76af6f1763581c88cfe7c2ba
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.18-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.18-cp313-cp313-macosx_11_0_arm64.whl
Size 132.4 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e346d81a3a0905e05b7388e59d1684e0ca20873c2e4a4bb416cbe86d078bb923
BLAKE2b-256 checksum
How to use checksums
5c8fa464b8e94f536dbe900e9e1f86b3c071315c5d952cc798bcbd73a3b9be74
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.18-cp312-cp312-win_amd64.whl

Download URL flexablelib-2.0.18-cp312-cp312-win_amd64.whl
Size 135.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
4c2461c5ec7ad76387443ef5befe0c6e9aa1151fe101c8e345a4377f320dd310
BLAKE2b-256 checksum
How to use checksums
1f5b7872fc8eeba730fbb9b71656f6b1eaec888833dda38e8ae7525e41802079
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.18-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.18-cp312-cp312-musllinux_1_2_x86_64.whl
Size 148.8 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
2da3800d9a2d94f380084a81532b48b9ba79c37bf964fb9c39a6f69182cb827c
BLAKE2b-256 checksum
How to use checksums
ccc5d8c8bdfe12462608b15586d35afa230bf102dec81b82b2aa99cc214fa36d
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.18-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.18-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 149.4 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
adec804d913417b317f2fc883edeff4cf4a374e167fc4622e01e549eeb8201b5
BLAKE2b-256 checksum
How to use checksums
7500595c27df71cbda4ec6c9aafeec7bde1a532462425251f6c9b160ed1af0de
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.18-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.18-cp312-cp312-macosx_11_0_arm64.whl
Size 132.4 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0f9d39c224765dbc8f3e68d8e0f242963503e948cc578f5be2a3406bf2c2cb67
BLAKE2b-256 checksum
How to use checksums
48628dc6a82474562715f0f11610637430757f36916069959a2dbce5a77d229e
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.18-cp311-cp311-win_amd64.whl

Download URL flexablelib-2.0.18-cp311-cp311-win_amd64.whl
Size 134.9 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
45e859fdada9c76adeeb969b691d4e8b5852c2a3a9fd0beee6bb6533f8ea72cd
BLAKE2b-256 checksum
How to use checksums
a59d9fa6717bf589ced288066fc1fa51d975198a76a890fa6da63a08079102a4
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.18-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.18-cp311-cp311-musllinux_1_2_x86_64.whl
Size 148.8 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
99edbba73ad4db3c24dc809d6366921876af55abc63f556bf214e96474b52120
BLAKE2b-256 checksum
How to use checksums
c87e46c72a65a5c244715c6b78c02d28597b4579a5f9705ebefb6654d46725e9
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.18-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.18-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 149.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
ddf00a5ea828a307df3cbaa5b5c39cf2cb0e9a6b27ca8edc4659ea22d39efa1f
BLAKE2b-256 checksum
How to use checksums
ccf95bad4c39c7015874ba6407a0d9e5247d19ab3a897982e3b80db6c74c6a2b
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.18-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.18-cp311-cp311-macosx_11_0_arm64.whl
Size 132.4 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
dea8602269eb9a445a8acc30d855e70ddc5eb45578c95ab6343fb3604efe2503
BLAKE2b-256 checksum
How to use checksums
62d8b97508650ecc2d291575a0aaa57465b1ff4f7f19782a835749c3ccdbbabe
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.18-cp310-cp310-win_amd64.whl

Download URL flexablelib-2.0.18-cp310-cp310-win_amd64.whl
Size 134.9 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
df3d58400d2110aa4a8eb65a6d9b5d9a054d02aecb1e8fe2efaa4400e71ef990
BLAKE2b-256 checksum
How to use checksums
0400b2d53a6dea3e30f06d5eabed51f84682ee55436e8a01fd0de07a24d1b0ba
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.18-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.18-cp310-cp310-musllinux_1_2_x86_64.whl
Size 146.4 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0443b90bc4c06cd14b9ef2716180eb26853e1461fcb4af494b3bace971c6a49a
BLAKE2b-256 checksum
How to use checksums
e9adc4c32052ab9b543125add87a3577175c31b6b9071fde7c2fa7470a003aa4
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.18-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.18-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 146.7 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
2002a4badfcbc65f29921d45c44513c05da6c07fb0db8b5568febd96c02ca0ac
BLAKE2b-256 checksum
How to use checksums
6896f441d4602fefb5a942b88d37ad239732cc0899330b02ece2e55818f056fd
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.18-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.18-cp310-cp310-macosx_11_0_arm64.whl
Size 132.4 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1fb54d29bfa534c909ae72b40ca80be88c60641fb686167051bb7c904dfee39f
BLAKE2b-256 checksum
How to use checksums
c4c25ffe95de617f9638f55857d9d96a646b9de95faaf75d68abd1365e50881a
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.18-cp39-cp39-win_amd64.whl

Download URL flexablelib-2.0.18-cp39-cp39-win_amd64.whl
Size 134.9 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
6454d364ec976884f23e2f2c57365637b0fcf4f64cfb72659939f9320da52b8e
BLAKE2b-256 checksum
How to use checksums
efba33e738b0802e6ea5bc8ef42923b06b3389775f62f0c9152d6c45fd83002a
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.18-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.18-cp39-cp39-musllinux_1_2_x86_64.whl
Size 146.3 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7a5bf61d81aa97aedf7801629c9e6d7d633764a4a3e0ee2cc45329467b4ec81c
BLAKE2b-256 checksum
How to use checksums
01524caa01258be56e3d19aa7c3fcb7cace83020ef6f47ac10d52ce4be41f176
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.18-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.18-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 146.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
95b99c988ca616cb352c278b7467f96941dc716b221a5c83dbe71e2885cdb29f
BLAKE2b-256 checksum
How to use checksums
de7950552ee1d90418656af2e9cbe6d22363a54f300446f760b8e0c83ddf0f6f
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.18-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.18-cp39-cp39-macosx_11_0_arm64.whl
Size 132.4 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d746d7f4ad23931e1b6773aea4d2ffb2548ea40ed34c7fb648449fe86fdee069
BLAKE2b-256 checksum
How to use checksums
d54835ab3695aeadb265cb69cd061d9f27f1f071228537d00e43d76ff8047744
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.18-cp38-cp38-win_amd64.whl

Download URL flexablelib-2.0.18-cp38-cp38-win_amd64.whl
Size 134.8 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
fd26e4be8bc9512c58b3c4575a8e1638df223b65fb8e07a6abafa55b95d61bdc
BLAKE2b-256 checksum
How to use checksums
3f30fd0464b6895c0303d95cb1cae50364e91720ccf7978155ccb153378c8998
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.18-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-2.0.18-cp38-cp38-musllinux_1_2_x86_64.whl
Size 146.0 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
03f2309350903d2875af3717a3fd9d45f00a485535084e3c2fa0d18dcfffad4c
BLAKE2b-256 checksum
How to use checksums
05c7a24a7c1f7ab8e9f4249dcb74345d07d7a06a7c5074d0953be4b5047b598a
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.18-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-2.0.18-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 146.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
3e85d9fb945c21a44ed462eab78a560d49604feede6270a0e733d6b842d3d487
BLAKE2b-256 checksum
How to use checksums
d3f5bc7de45d3713f3590da4c865c3fd788dc568465b87fcc4c24a2f157be029
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.18-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-2.0.18-cp38-cp38-macosx_11_0_arm64.whl
Size 132.1 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cc37edd15901277a70981ee73a34e8bfbe3b3ac1c3b6dc95d601a4bd62d4e083
BLAKE2b-256 checksum
How to use checksums
89868f1ffe3bd635fe12b16bf845d3bea6f176df409918c28c7407b5593aecd2
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.0.18

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