Skip to main content

flexablelib

Fast, dependency-free terminal tables for Python.
54 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"            # 54 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 — 54 presets, from ascii_rows to borderless
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 54 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 54 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_rows, ascii_double_underline_rows, 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 = 'double_horizontal'
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.

Changed in 2.3.0: an explicit None is a missing cell, just like a padding gap or table.missing. It displays missing_value (blank by default), not the text "None". Set table.missing_value = '?' to show gaps explicitly. Use the string "None" if you want that literal text. This applies to printing, compose(), pagination, streaming, and transposition in every style.

Missing cells do not turn numeric columns into text: numeric alignment and the decimal axis are preserved, and overflow='wrap' does not split floats because a column contains None. Raw rows and exports still represent gaps as None; rendering Table(rows=table.rows) reproduces the same cells (copy headers and display settings too if you changed them).

table = Table(rows=[[924.87], [None], [1.25]])
assert 'None' not in table.compose()
assert Table(rows=table.rows).compose() == table.compose()
table.missing_value = '?'  # changes the display, not stored None values

See missing-cell semantics for migration details.

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 54 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 54 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 3.0.0

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

Source distribution (sdist)

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

Built distributions (wheels)

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

Total release size: 4.6 MB

Release files / flexablelib-3.0.0.tar.gz

Download URL flexablelib-3.0.0.tar.gz
Size 248.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7398d908681de4d85c4eb40cde022e233e9192c944400d494d438f27ecaae3a9
BLAKE2b-256 checksum
How to use checksums
aeff303e2ce533f5fe043968327d3a2ecc37a7643de9871d36e2808be94d5ca8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL flexablelib-3.0.0-cp314-cp314-win_amd64.whl
Size 152.6 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
567bae73448e868d01aa25d0fa3141887fd84f6ff62c06ae32a567ffc379e2d1
BLAKE2b-256 checksum
How to use checksums
3d55f792e360e26fc2ec4cd56dce96ea7e185cec356e0ee8e3becf7ba0aec4b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL flexablelib-3.0.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 164.9 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
9afc1874be3c3ff981a6c7c355db40760e65865e406dede273e379b8260e1a05
BLAKE2b-256 checksum
How to use checksums
132c0ac6ba300990e52910a6c6fe456548a970f65af6c063276ded10a097237f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL flexablelib-3.0.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 165.4 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
247d96bf01d4377e3226cc3e9bb2d4774d03f257eb3c19ea8a7c6d7b183679df
BLAKE2b-256 checksum
How to use checksums
4df5784baed62c0f6adfe9541b12ce472e8d6e481f4b0ce3f924aca05dbbdd93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL flexablelib-3.0.0-cp314-cp314-macosx_11_0_arm64.whl
Size 148.4 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
75d8eae5f3b6f11d01854eae862d65c6f7f9e687401a37face2599150ed4c162
BLAKE2b-256 checksum
How to use checksums
25b2b166c083a3c20a22f49b2baa8016ce2b36576bb9c60f4207760aebf89314
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

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

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

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

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

Download URL flexablelib-3.0.0-cp313-cp313-macosx_11_0_arm64.whl
Size 148.4 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
42725890523c29d8e0f19b8e5b41f603221f55244ff5ef93ba90b3a24fffba90
BLAKE2b-256 checksum
How to use checksums
521be28e74e46356d733ad3cf215156295427fef5697861e2186ba43e485a3a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

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

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

Download URL flexablelib-3.0.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 165.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
650c9ac9c9564d56942a4e333adc64573d91f2f8068486e5858e04e9957d7e61
BLAKE2b-256 checksum
How to use checksums
a5e1191efa200c13d12179cf2bd7e3b0bb5e7a27856b4bcec3f6e70351704dba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL flexablelib-3.0.0-cp312-cp312-macosx_11_0_arm64.whl
Size 148.4 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4b1b7ad2e02b4f5620fe25d04be421b3d2524a2c9baade7482061e262830d244
BLAKE2b-256 checksum
How to use checksums
82d763306683f96ed9c343cf3f784a048092a98ea5ccb4a835e5245a5f4f6155
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

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

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

Download URL flexablelib-3.0.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 165.3 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
06558dca08611fa39aca3294205f5bd0acb79e4132b52c8a9a97c9cff7af0a1e
BLAKE2b-256 checksum
How to use checksums
74ec4f4ae5ae96fb9912045f4f42c8e74122dcad2e1b85d4e3e92b9f877090c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL flexablelib-3.0.0-cp311-cp311-macosx_11_0_arm64.whl
Size 148.4 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c2370c7d924b38a04558ed4a6c0009682b536094cb5c635614ec34a003befd1c
BLAKE2b-256 checksum
How to use checksums
25721ca4529156e00bd2a2c74590db5bb0cd7c13ed07472829387c43e84793e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL flexablelib-3.0.0-cp310-cp310-win_amd64.whl
Size 151.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
50ab2fe2bc46208b54f0410e1d4fde1c41519f25968d2c2acefd740bfc74b223
BLAKE2b-256 checksum
How to use checksums
4ef5c5bf847937fa71769aefa38d0fa7d12da6ab664b42f05807855093e53492
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

Download URL flexablelib-3.0.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 162.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
0862813ef30418ef03f28e7bf7e80a791f65f6f5cf5a3bc071509c70c20f24ea
BLAKE2b-256 checksum
How to use checksums
0ef5c6aafdd66fe109921d95965aae329ccd345f7554107021323317ca87630f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

Download URL flexablelib-3.0.0-cp39-cp39-win_amd64.whl
Size 151.2 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
ffa2349ad8b49a627588c634b5fbea5065930b29fa0be7adcf24a7a048acc282
BLAKE2b-256 checksum
How to use checksums
623c31d699db50dc00594fa6208a17c6851ca6ea0833dac87d98516bad0d5678
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

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

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

Download URL flexablelib-3.0.0-cp39-cp39-macosx_11_0_arm64.whl
Size 148.4 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
67ecf002b06a11e052cda837e45796d123a42fecd1cf5f7d2a05d3ea21b2ebce
BLAKE2b-256 checksum
How to use checksums
02bc8b4147fdf06b828f243f048bb83db4d165009530969afe82c232ff0ccdd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

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

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

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

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

Download URL flexablelib-3.0.0-cp38-cp38-macosx_11_0_arm64.whl
Size 148.2 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
34aa734446a0c255487f2a7627a5ad0a1b47b2a5ce09e5891ee3409bd080a001
BLAKE2b-256 checksum
How to use checksums
3da6ddd62cc9b7d3927e109f1a459cebc0b0cbd62a895030aeb4222b2e5e6a6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for flexablelib 3.0.0

Provenance

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

No provenance found

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

A note on package security

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

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

Release history Release notifications | RSS feed

This release

3.0.0 This release

29 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page