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

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.2
File Size Uploaded Provenance Actions
flexablelib-3.0.2.tar.gz 252.2 kB Without provenance Details for flexablelib-3.0.2.tar.gz

Built distributions (wheels)

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

Total release size: 4.6 MB

Release files / flexablelib-3.0.2.tar.gz

Download URL flexablelib-3.0.2.tar.gz
Size 252.2 kB
Tags Source
SHA-256 checksum
How to use checksums
728c51e13d74f949ad9e73e8d39f61f394cb76a53474b948974135c205554603
BLAKE2b-256 checksum
How to use checksums
a29a8d237b3379c0edf00e54a2a716f03c101dbf8eb8bde94b11ac23963a059f
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.2-cp314-cp314-win_amd64.whl

Download URL flexablelib-3.0.2-cp314-cp314-win_amd64.whl
Size 152.5 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
5e6bd45c6872117b0a997c74d55a9db2814c9b6a60309b0ca481f00b37cefbbb
BLAKE2b-256 checksum
How to use checksums
e68b5ca7a480c0543cfe0561783201a447b6cdaa1c7563d6d5a3b6b2f8471ed4
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.2-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.2-cp314-cp314-musllinux_1_2_x86_64.whl
Size 164.8 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
f1e649e98d1e35d06f78b3a8fe9724c6bbb7e50cfa8642cffdfcabeaff657276
BLAKE2b-256 checksum
How to use checksums
802005fdbfb6fb5ae490b4ca422203f1c6f39cb5a23cb9b62e8344201c47bd91
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.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 165.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
7598dbf251c12819dfcbcaa287dd7648bb74666893e788343efd52c4639b0da2
BLAKE2b-256 checksum
How to use checksums
9032c67919013b9ed757b963aa9b229521163b4d5069c388edd8b22666d77945
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.2-cp314-cp314-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.2-cp314-cp314-macosx_11_0_arm64.whl
Size 148.3 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
19c967c8c821ad48890dbdda65845aaa5e9b0199c19edae9bc3f197bb147b2b3
BLAKE2b-256 checksum
How to use checksums
991415dc8965cf4984077c680ebdb46becaecd6300441b2f69baa36034c1525a
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.2-cp313-cp313-win_amd64.whl

Download URL flexablelib-3.0.2-cp313-cp313-win_amd64.whl
Size 151.1 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
14f04fcf06c2627a6ad4c09da9ecdf0dbbce665b3e8d8c49bc1ff201159dcbe2
BLAKE2b-256 checksum
How to use checksums
161044d9b499009e722ca4aa4db2979e7b3f655da9e156f6544dcf59b737563b
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.2-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl
Size 164.8 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d1398d7fecd2224ec4b29684885334f41941c4fca947d9b60aee5f996bd1163c
BLAKE2b-256 checksum
How to use checksums
e8d343816ae10fc768ca744bf869cb1eb366fc539fe978a91510721230eca50f
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.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 165.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
6884aab3fccda4c9bec4b57883a58f8f73a9664ea1f3912539a2c804987af562
BLAKE2b-256 checksum
How to use checksums
ab1b04de9dff545d2db74fde435834ebc798c13f3da8cadd8bf465ab9428fbb6
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.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.2-cp313-cp313-macosx_11_0_arm64.whl
Size 148.3 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7c098201f57b751aa8de8ae71aeeadb165e9ae3c8201ccf56fd5e1d00d6512f2
BLAKE2b-256 checksum
How to use checksums
3c7b7697b952788661163f70a11059166cb653c02fca22d1fa993952ca666ae4
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.2-cp312-cp312-win_amd64.whl

Download URL flexablelib-3.0.2-cp312-cp312-win_amd64.whl
Size 151.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
bcfa4963183d079f1a614b36dc9734b331da27323f2ac8cd693dde6b98d51c12
BLAKE2b-256 checksum
How to use checksums
00d5c5017082b1c6543a73a54dbf9a69495eb5cc864c0e512c0b06cf9ba57d6b
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.2-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl
Size 164.8 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
35f434836adf45f18b8573db3784d609a938bb4a0d9618bf905b7bcd4a941949
BLAKE2b-256 checksum
How to use checksums
b142e9e0e6dad67561e419a898158ea90e67da33ed306a8bd703c50d50208274
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.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

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

Download URL flexablelib-3.0.2-cp312-cp312-macosx_11_0_arm64.whl
Size 148.3 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
60dff67fdb20b315b80058487e3f1fcaf4027d776fe50a917ca2ed71207dc0ea
BLAKE2b-256 checksum
How to use checksums
4ebe84db4a08453bdd4c5ac292bc4ee4b469111bf0c01ff21afe0d79de495455
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.2-cp311-cp311-win_amd64.whl

Download URL flexablelib-3.0.2-cp311-cp311-win_amd64.whl
Size 151.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
0e19bb64977c5105d46617401322722cbb0c8edca293c1dc16e0954624724d35
BLAKE2b-256 checksum
How to use checksums
ff8754c1518a403cdb1cadd91e4c080447cced4fa120e9cdfcb28b7aaddae3ef
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.2-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl
Size 164.8 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b27322b1f729a0d7923855ba55b1bddf7bb193e4f7085e395f0172935e095cfa
BLAKE2b-256 checksum
How to use checksums
cab1eaaaf2fe98b42df24a01d7fdd5cd889276166d6cd06fda38886639ffe766
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.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 165.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
963346975218bed7f133db46bf3036ff9019bdaf92ee16f4052584804727f672
BLAKE2b-256 checksum
How to use checksums
964da5804ebc0037d9ae06b1e34b78895f366a406417d0d78c24e7baaa954059
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.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.2-cp311-cp311-macosx_11_0_arm64.whl
Size 148.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5169b2b129196eb0ac197f201ca785fac053847f285e1467192fa5670fd2015b
BLAKE2b-256 checksum
How to use checksums
3dcc375e9611334ce6173619118cd3fd153b2ecab05b97ece3a7c8ef66eba3b0
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.2-cp310-cp310-win_amd64.whl

Download URL flexablelib-3.0.2-cp310-cp310-win_amd64.whl
Size 151.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
179a3993946fe9327172ada84dec7932f5eea9da6b1f14d5de3a1ea4f976b2b9
BLAKE2b-256 checksum
How to use checksums
3072cf8faa2b540b1334cb45ce9deac18edf43cf275eb258d7b1b80f79c2ee89
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.2-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl
Size 162.4 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0ce52d828d23134174be8daf6b6c529649060707321f96910e2e8b0b580bcd72
BLAKE2b-256 checksum
How to use checksums
6f5465501fb9e4e13ddddffcf5b255862ce1583c40248f7aff8794ff0267a594
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.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 162.6 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
0741103671310ed4a4a790323f8e36c39c0bda930941205cee5cd7fa126b980a
BLAKE2b-256 checksum
How to use checksums
a8e37e527d7d8cd516eee68b549acb88c0fd8fbc1741a33855cf7c5362dc4820
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.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.2-cp310-cp310-macosx_11_0_arm64.whl
Size 148.3 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
037971ad6c3949a5a5c18e9700e28db3366ebcc5f1b37b7b10e2aab08b7be651
BLAKE2b-256 checksum
How to use checksums
e17592579a16d21fe16200a2b87c793e03ea247513b7bfaad1e047a1bf6e2e4e
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.2-cp39-cp39-win_amd64.whl

Download URL flexablelib-3.0.2-cp39-cp39-win_amd64.whl
Size 151.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
4955d4ec6a11c67c24bd79330d4f06304c7e7984c33ec023ad53d958cb3b653d
BLAKE2b-256 checksum
How to use checksums
74f6d45584ceeff81ad939520c2a2ad2e12ed5f9286de917e4824ada6ae49bc1
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.2-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl
Size 162.2 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4eef3dec5e6063589f4fed7f14960e3fff7d2786a3722e5f9b901e1c4aba25f0
BLAKE2b-256 checksum
How to use checksums
f2f6c1c23b9840899ba79ddc0319951b4f721f81d04be9437c6edb7d6f155fb6
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.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 162.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
5e7fd1607d705a0b7b0b24b984b317809f212aa8cc42996b7886149ef3f95943
BLAKE2b-256 checksum
How to use checksums
a129fa3fe83a2bd3fcdc0b0391b7d7300da48e4c4e0140fe7e45bde1da540623
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.2-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.2-cp39-cp39-macosx_11_0_arm64.whl
Size 148.3 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5bfc83bdc77c38a18398002049ba13b626f5cd6d306e1794759ccaee55f8dbfe
BLAKE2b-256 checksum
How to use checksums
90c363f2c7042b84d9211dd621fc04a20f61f428765dc3399d9013e06336074f
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.2-cp38-cp38-win_amd64.whl

Download URL flexablelib-3.0.2-cp38-cp38-win_amd64.whl
Size 151.0 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
73648371766a7650baab312ba6026c6629f24ee7490156e193377495a4b0a43c
BLAKE2b-256 checksum
How to use checksums
2cab564d5d99776930492666ee6df8f73fcad6f188ec02a2fa5c1902bf8bbd9d
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.2-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.2-cp38-cp38-musllinux_1_2_x86_64.whl
Size 162.0 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
8eb80d6c98b1ad4db5b17ad338bc2ef2865b806f417869f91abd2630b7b97780
BLAKE2b-256 checksum
How to use checksums
97f49e5b6fafaacf33000f83e77068bae323ac0e771c390f71e7a0c91a7db059
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.2-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.2-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 162.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
50551cd28cc099cae7249e8f14fbbfc905377635c39ad73fc1c0bbf030f7e153
BLAKE2b-256 checksum
How to use checksums
e91b826b718a7c232ec3b599ca26f0506dc94d278939abb9beb2e1fd65b42003
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.2-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.2-cp38-cp38-macosx_11_0_arm64.whl
Size 148.1 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b6e27e55edfe20b990aabe7ee4990aff1e082281c362132beb4f603a7a617c97
BLAKE2b-256 checksum
How to use checksums
997de4c60eebcaea0a48ea167e82fba5457c14abd9e72227130221b53f92e257
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.2

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