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

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.3
File Size Uploaded Provenance Actions
flexablelib-3.0.3.tar.gz 258.9 kB Without provenance Details for flexablelib-3.0.3.tar.gz

Built distributions (wheels)

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

Total release size: 4.8 MB

Release files / flexablelib-3.0.3.tar.gz

Download URL flexablelib-3.0.3.tar.gz
Size 258.9 kB
Tags Source
SHA-256 checksum
How to use checksums
82b748fecbd7b837a060561bca515a12c8da240e6506ccf610ca04308f6b3ec2
BLAKE2b-256 checksum
How to use checksums
095d6bf970b07365a4cffb3985b7da49497e5870140d677704500e8f4ea9cc18
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.3-cp314-cp314-win_amd64.whl

Download URL flexablelib-3.0.3-cp314-cp314-win_amd64.whl
Size 157.9 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
043c501748e83d609d8f7353647e70ee74ec456795bd87e727fd322933250255
BLAKE2b-256 checksum
How to use checksums
909a2f90a2d114d4a92a96718df8fd52d9c7d6d8f990fe7c85368b7b9e6eb6ec
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.3-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl
Size 170.1 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
da461f8bfdea669f1246f73223c578d9b565c09c204aaff0b8ff980ca88562ef
BLAKE2b-256 checksum
How to use checksums
61418a61903a41683f4e586dcf912eebe60136839f06619e798cc5e41ebd0a38
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.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 170.6 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
42b5b42fd01e7fa90e14911a535818cadf33860addc61209915067c9e0a22468
BLAKE2b-256 checksum
How to use checksums
5be78e739520ef39e5a4cfb4839ff7a900048bc536b853543c1172e354934a26
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.3-cp314-cp314-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.3-cp314-cp314-macosx_11_0_arm64.whl
Size 153.6 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
91d29078cd58fe2794aee7457d7827d8056929e797c2757d9106f36f99d9f89f
BLAKE2b-256 checksum
How to use checksums
d5c60626ad05a546130262fdcfbe0925b00249fee2883d4f1f7a7f401461c1ad
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.3-cp313-cp313-win_amd64.whl

Download URL flexablelib-3.0.3-cp313-cp313-win_amd64.whl
Size 156.5 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
256fb11874bdae97d9ebeb0650bd86a143dd01e13329b041d03dee45901b80bd
BLAKE2b-256 checksum
How to use checksums
9e46ec09054aa2ec09c9ae4f6daeadde32fb598bec13870e82e56a946e4724f0
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.3-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl
Size 170.2 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
a8999bbf66ec0df4086c04c818c93a4d2477ec9ce543f0c10835156d3d6ee48a
BLAKE2b-256 checksum
How to use checksums
0a676c0d2b5d6a38e08b859e9c55ca07e28415feff8451d23c28826463734438
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.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 170.6 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
b46b0551fa1348195e4c8f625fbe68a6ea7ef425225276bff6d6731c5c3f6b57
BLAKE2b-256 checksum
How to use checksums
e37b9a6190c86ff8f3d80a9d60ba70ed4b77e4adc326b2e4cc4d1eb3f35cb35f
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.3-cp313-cp313-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.3-cp313-cp313-macosx_11_0_arm64.whl
Size 153.6 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
db89e617fb23dfdb539385071bac8a3a32a373c6e5aeed528c26957abe8de842
BLAKE2b-256 checksum
How to use checksums
ed95f57b99bcbebf51c666e7d2a18c197e32f8084704a30d2b28fb0caef7d304
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.3-cp312-cp312-win_amd64.whl

Download URL flexablelib-3.0.3-cp312-cp312-win_amd64.whl
Size 156.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2c8c726799b0c704fd391e39c17784ef4bc04f5724663d153285e5e51e383e46
BLAKE2b-256 checksum
How to use checksums
57a5c9fd673f501652102cae2c38dd177e7a8330ea2005b598c464b29c0312bd
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.3-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl
Size 170.1 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0332895cf30443d12df5a9cf7534d08530dd781e89b2dced76362cff655d92c7
BLAKE2b-256 checksum
How to use checksums
d8f139c629fef59f4b8b4c562567cb1d4dec620fb64cc90a5cf8336d1c4e7224
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.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 170.6 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
b066d47406d4a6c06f8306a866f13f36f0ed70398a8098762f2d4f42d715189d
BLAKE2b-256 checksum
How to use checksums
bfe3a2e340aa67e354309d3ff6f19f4595022e60c3919ebc9e73b4bf639bbab6
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.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.3-cp312-cp312-macosx_11_0_arm64.whl
Size 153.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
143e8dc9bd1a8c891c26f4c4fe67c188be5e277a224df9155843e1df73b026f1
BLAKE2b-256 checksum
How to use checksums
f342f2a1a7c5e2e173a9c172722a70e1a1e12dee2f67bcbd7ea65a7c0fc00081
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.3-cp311-cp311-win_amd64.whl

Download URL flexablelib-3.0.3-cp311-cp311-win_amd64.whl
Size 156.5 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
e96b3fbfd20a7ce83895f1fa565e7a86a2aa62a1f21f8b452981ab3ceeaf7a01
BLAKE2b-256 checksum
How to use checksums
4c9ef5202e559be1c4660df15ee88c1620776d8228de800d9401126773ad48df
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.3-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl
Size 170.1 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
2e963bd58554d9dc650655605f31cf1e1dd8543054e440090fe678f4510e0973
BLAKE2b-256 checksum
How to use checksums
57dd128e1f0a9b670f9517532ffce22537faf4fefa122028614bb7f62c3b2272
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.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 170.5 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
00329381c9c46f8a0d5680fe2332501536574a380634091127e8b485d10104de
BLAKE2b-256 checksum
How to use checksums
c0e80093a928983695b4d28c3dfffe97bea0f2fe8c3a69136f19e1c0352a20ba
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.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.3-cp311-cp311-macosx_11_0_arm64.whl
Size 153.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
736abf6df9afb93d3c5cd00c16812406cc0697363651ea773600cea06668dca2
BLAKE2b-256 checksum
How to use checksums
96ac4ca981c26bddc3c09938d09195f8171308734c9d00d361054c68a8949bdb
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.3-cp310-cp310-win_amd64.whl

Download URL flexablelib-3.0.3-cp310-cp310-win_amd64.whl
Size 156.5 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
4ff0343a84643fa1a7d86e2faae501a8d22756309955ccd2e2998699f363a45d
BLAKE2b-256 checksum
How to use checksums
a29c815657c3f0605e174c39851f98abb0eccecf7c3b0d9065b81f5d2dbcff86
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.3-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl
Size 167.7 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
a66fadc49de030bcbbde771fc93c0c22524ed0b7f9cb7a7dfaa6b276ed946419
BLAKE2b-256 checksum
How to use checksums
8bcaef626963264e22d77021a0d647a2089c8689bfb6c09631de6108f5338f92
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.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 168.0 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
b323f4dfe8e51b6e14927da3069788f52afce4d743a7d5881334b0fc3b976a63
BLAKE2b-256 checksum
How to use checksums
b67200629d0d8753075e1e102ebbc4ec22c8faf52c55303b9e9bc18f716f4e56
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.3-cp310-cp310-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.3-cp310-cp310-macosx_11_0_arm64.whl
Size 153.7 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fe1c4559099fbc5873dce5661302b94d0ebeb08bee0d887f9c3dcc39335f7a5c
BLAKE2b-256 checksum
How to use checksums
9a7cd78e8677e643312eba4fb55839ed96c15df7073ff2208de10bb2b65203e5
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.3-cp39-cp39-win_amd64.whl

Download URL flexablelib-3.0.3-cp39-cp39-win_amd64.whl
Size 156.5 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
aedc95c622b71e85cb2c9a06dd42cbb3ef49a842fd4aba087b3c0684a82cb921
BLAKE2b-256 checksum
How to use checksums
d3f27827ae5f252b497371c149bcc1a974bbf8d600b60f71ac2a7aa9f0e3af35
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.3-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl
Size 167.6 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1ad47c8d7ecc1308b61dab1f750b220b02f849bd56b9e896030782db17c27f0e
BLAKE2b-256 checksum
How to use checksums
824cc3ca0ab4196ff67c3462acee7708bf82ea9a8b7f374d3c65a36bf94b0dd4
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.3-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.3-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 167.8 kB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
9905db9b991118c509f544c957b08beff8df76cd8719da53c7e182f6e73e5c32
BLAKE2b-256 checksum
How to use checksums
e9581cae4aad406a659a0ee5c7cb30203f4b36e19613689bb284ce7944a37507
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.3-cp39-cp39-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.3-cp39-cp39-macosx_11_0_arm64.whl
Size 153.7 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0caf74093fa918baa13692b632d6cea9ab5b2813d557a4226e7cd936c9914f68
BLAKE2b-256 checksum
How to use checksums
6165b4b872f3730976f4e2d187842355adec80bcdde34b245df39af6dc705c3c
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.3-cp38-cp38-win_amd64.whl

Download URL flexablelib-3.0.3-cp38-cp38-win_amd64.whl
Size 156.4 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
c1e5fa571d3c9946b0a04f0370b4643c244d257e71522137ed4b216924fd1acb
BLAKE2b-256 checksum
How to use checksums
80f67ca7732f725d29a8e264f7e5f8a17cb3e266d915da84124e27372111a850
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.3-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL flexablelib-3.0.3-cp38-cp38-musllinux_1_2_x86_64.whl
Size 167.3 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3db6fde36e78c788ea0ac2582fa3b6f4373e522a4c11d4bcaf4df946a89f9994
BLAKE2b-256 checksum
How to use checksums
bea5156185b3123c32968b7a0ac43cb4fd4623855a72b8f2e2a5a1673060e38b
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.3-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL flexablelib-3.0.3-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 168.1 kB
Tags CPython 3.8 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
092387a5e85dec56787f134cb90f2da3a9d9e2131156c57563b357edb410d3bb
BLAKE2b-256 checksum
How to use checksums
2aa5f65338cbebbc0debf74b26a2b44d3b3278097e96b1414b87bf37a0807cde
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.3-cp38-cp38-macosx_11_0_arm64.whl

Download URL flexablelib-3.0.3-cp38-cp38-macosx_11_0_arm64.whl
Size 153.4 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
db499d26f966245ba9d6948dbc6a51e86353ebe314d1fb8e7d82f9af5513ba88
BLAKE2b-256 checksum
How to use checksums
ae579b4004aba58abb48cb78461afb8fdea7707ac88c86304373d25b1507bdb6
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.3

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