Skip to main content

flexablelib

Fast, dependency-free terminal tables for Python.
56 border styles · ANSI colours · cell merges · decimal alignment · width fitting · CSV / Markdown / HTML / Excel / LaTeX I/O

PyPI version Python versions Tests Downloads per month Development status License: MIT Typed


flexablelib turns rows and columns into readable tables for terminals, logs, reports and docs. It has no runtime dependencies, ships prebuilt wheels with an optional C speed-up, and is covered by 1,000+ tests on Python 3.8 – 3.14.

A rounded flexablelib table with a coloured header and a red value

Install

pip install flexablelib

Optional extras: pip install "flexablelib[pandas]", "flexablelib[excel]", "flexablelib[html]" or "flexablelib[all]". The base install stays dependency-free.

30-second quickstart

from flexablelib import Table

table = Table(
    rows=[
        ["api-gateway", "eu-west-1", 99.982, 1240],
        ["auth", "us-east-1", 99.9, 312],
        ["billing", "us-east-1", 98.75, 87],
    ],
    headers=["Service", "Region", "Uptime %", "RPS"],
)
table.style_name = "rounded"            # 56 styles, see style_examples.md
table.header_color = "bold cyan"
table.color_rule = lambda value, row, column: (
    "red" if column == "Uptime %" and value < 99.5 else None
)
print(table)
╭─────────────┬───────────┬──────────┬──────╮
│ Service     │ Region    │ Uptime % │  RPS │
├─────────────┼───────────┼──────────┼──────┤
│ api-gateway │ eu-west-1 │   99.982 │ 1240 │
│ auth        │ us-east-1 │   99.9   │  312 │
│ billing     │ us-east-1 │   98.75  │   87 │
╰─────────────┴───────────┴──────────┴──────╯

Numbers align on the decimal point, colours never break alignment, and the same table exports anywhere:

table.to_markdown()                # GitHub / docs
table.to_html("report.html")       # self-contained, sortable, offline
table.to_csv("out.csv"); table.to_latex(); table.to_rst(); table.to_asciidoc()
table.to_excel("report.xlsx")      # pip install "flexablelib[excel]"
Table.from_csv("sales.csv"); Table.from_markdown(md); Table.from_pandas(df)
Styles — 56 presets, from ascii to blocks
Several border styles
Themes — table.apply_theme("ocean")
Theme presets
Text on borders — table.border_text("Production", where="top")
Labels written into the table frame
Cell merges — table.merge_cells(0, 0, last_row=1)
Vertically merged cells
Zebra rows, footer, caption
Striped rows with a footer and caption
Decimal alignment — floats and scientific notation
Numbers aligned on the decimal point

More: all 56 styles · wrapping and ellipsis overflow · per-column / per-cell colour and alignment · vertical alignment · paginate() · stream() for live rows · transpose() · nested tables · fit_terminal() · hide_columns · sort_by · Roman / custom index.

How it compares

A factual feature matrix from our survey of 89 table libraries. A dash means the feature was not found in that library's documentation during the survey, not a claim that it is impossible there.

flexablelib tabulate prettytable rich
Runtime dependencies none none wcwidth markdown-it-py, pygments
Border style presets 56 many tablefmt — (hrules/vrules toggles) box styles
Decimal-point alignment ✓ ✓ — —
Row and column cell merges ✓ — — —
ANSI colours (header, rows, cells, borders) ✓ — — ✓
Zebra rows / caption / footer ✓ — — ✓
Text written on borders ✓ — — —
Wrap / truncate / ellipsis overflow ✓ — max width ✓
Sorting, pagination ✓ — ✓ —
Exports CSV, MD, HTML, Excel, RST, AsciiDoc, LaTeX HTML, LaTeX, MD, RST, org, jira, … HTML, CSV, JSON, LaTeX — (console)
Readers CSV, Markdown, HTML, dicts, pandas, Excel — CSV, DB cursor, HTML —
Nested tables ✓ — — ✓ (renderables)

rich is a full terminal-rendering toolkit (markup, live displays, progress bars) and tabulate covers many more markup dialects; pick flexablelib when you want a dependency-free, table-focused library with styling, merges and I/O in one place.

Production notes

  • Zero runtime dependencies. Readers/writers that need a third-party package (pandas, openpyxl, lxml) are opt-in extras and imported lazily.
  • Performance. Rendering 10,000 rows × 6 columns takes ~157 ms with the C extension (~172 ms pure Python), on par with prettytable, ~1.3× faster than tabulate and ~18× faster than rich's table. pandas to_string() is faster still (~85 ms). Full method and numbers: docs/BENCHMARKS.md.
  • Wheels. Prebuilt for CPython 3.8 – 3.14 on Linux (manylinux, musllinux), Windows x64 and macOS arm64. Anywhere else it builds from source or falls back to pure Python — installation never fails for want of a compiler. from flexablelib.fast import implementation; implementation() tells you which backend is live.
  • Colour safety. Escape sequences are emitted only to a TTY by default, never when NO_COLOR is set; FORCE_COLOR or table.use_colors = True overrides. Logs and files stay clean.
  • Unicode. Widths are measured in terminal columns, so CJK, emoji and coloured text stay aligned.
  • Windows. Box-drawing styles need a UTF-8 console (chcp 65001 or PYTHONUTF8=1; Windows Terminal is usually UTF-8 already). ASCII styles (ascii, grid, psql, markdown, …) work on any code page.
  • Typed. Ships py.typed (PEP 561).
  • Stability. flexablelib follows semantic versioning: within 2.x, public Table attributes and methods are not removed or renamed without a deprecation period; new features arrive in minor/patch releases and every release is listed in the CHANGELOG.
  • Support. Bugs and requests: issues. Security reports: SECURITY.md. Contributions: CONTRIBUTING.md.

Windows console encoding

chcp 65001
set PYTHONUTF8=1

(PowerShell: $env:PYTHONUTF8=1.)

Guide

Usage

Creating a table is simple.

Code Example

from flexablelib import Table

new_table = Table()
print(new_table)

Output

++
++
++

This is an empty table. It has no data so it only displays this strange thing.

A table that has columns but no rows — a query that came back empty — shows its headers rather than raising:

┌──────┬───────┐
│ name │ value │
╞══════╪═══════╡
└──────┴───────┘

It's possible to add data as columns or rows, or even alternating each one. Any untitled column will be named automatically.

Code Example

new_table.add_column('Name', ['Jade', 'John', 'Jane'])
new_table.add_column('Age', [20, 30, 40])
new_table.add_column('Results', [9.651, 3, 245.7])
print(new_table)

Output

+----------------------+
| Name   Age   Results |
+======+=====+=========+
| Jade |  20 |   9.651 |
| John |  30 |   3     |
| Jane |  40 | 245.7   |
+------+-----+---------+

Code Example

new_table = Table()
new_table.add_column('Name', ['Jade', 'John', 'Jane'])
new_table.add_column('Age', [20, 30, 40])
new_table.add_column('Test\nResults', [9.651, 3, 245.7])
new_table.add_row(['Piotr\nBaltimore', 27, 3.5])
new_table.add_row(['Sam', 21, 0.6519])
print(new_table)

Output

+----------------------------+
| Name        Age       Test |
|                    Results |
+===========+=====+==========+
| Jade      |  20 |   9.651  |
| John      |  30 |   3      |
| Jane      |  40 | 245.7    |
| Piotr     |  27 |   3.5    |
| Baltimore |     |          |
| Sam       |  21 |   0.6519 |
+-----------+-----+----------+

As it is visible, the table will format automatically new lines and data types, for now without trying to parse strings that could be converted to another type.

The Table class offers a variety of options that allow things like showing the index of each row, changing the style of the table, hiding the headers, etc.

See style examples here.

Code Example

new_table = Table()
new_table.add_column('Name', ['Jade', 'John'])
new_table.add_column('Age', [20, 30])
new_table.add_column('Test\nResults', [9.651, 3, 245.7])
new_table.add_row(['Piotr\nBaltimore', 27, 3.5])
new_table.add_row(['Sam', 21])
new_table.show_index = True
new_table.style_name = 'pretty_columns'
new_table.missing_value = '?'
print(new_table)

Output

╒═══╤═══════════╤═════╤═════════╕
│ i │ Name      │ Age │    Test │
│   │           │     │ Results │
╞═══╪═══════════╪═════╪═════════╡
│ 0 │ Jade      │  20 │   9.651 │
│ 1 │ John      │  30 │   3     │
│ 2 │ ?         │   ? │ 245.7   │
│ 3 │ Piotr     │  27 │   3.5   │
│   │ Baltimore │     │         │
│ 4 │ Sam       │  21 │       ? │
╘═══╧═══════════╧═════╧═════════╛

The missing value aligns as if it was of the same type of the other data in the column.

This shows how to get the row and column count. If the index is shown, this count remains unaffected by that column, although, you can get the internal count.

Code Example

new_table.show_index = False
new_table.show_headers = False
print(new_table)
print('row:', new_table.row_count)
print('columns:', new_table.column_count)
new_table.show_index = True
print(new_table)
print('internal_row_count:', new_table.internal_row_count)
print('internal_column_count:', new_table.internal_column_count)

Output

╒═══════════╤════╤═════════╕
│ Jade      │ 20 │   9.651 │
│ John      │ 30 │   3     │
│ ?         │  ? │ 245.7   │
│ Piotr     │ 27 │   3.5   │
│ Baltimore │    │         │
│ Sam       │ 21 │       ? │
╘═══════════╧════╧═════════╛
row: 5
columns: 3
╒═══╤═══════════╤════╤═════════╕
│ 0 │ Jade      │ 20 │   9.651 │
│ 1 │ John      │ 30 │   3     │
│ 2 │ ?         │  ? │ 245.7   │
│ 3 │ Piotr     │ 27 │   3.5   │
│   │ Baltimore │    │         │
│ 4 │ Sam       │ 21 │       ? │
╘═══╧═══════════╧════╧═════════╛
internal_row_count: 5
internal_column_count: 4

Colour

Colour the header, the borders, whole columns, whole rows, or individual cells. Specs accept names, attributes, 256-colour indexes and hex triples.

table.header_color = 'bold cyan'
table.border_color = 'grey'
table.column_colors = {'Service': 'bright_white'}
table.color_rule = lambda value, row, column: (
    'red' if column == 'Delta' and value < 0 else None
)

color_rule receives the original value, so numeric comparisons work directly.

Colour is emitted only to a terminal by default, and never when NO_COLOR is set. FORCE_COLOR or table.use_colors = True overrides that. Because compose() returns a string you may send anywhere, the default errs toward not embedding escape sequences in something bound for a file.

Widths are measured in terminal columns, not characters, so coloured cells and CJK or emoji data stay aligned.

Reading and writing

Table.from_csv('sales.csv')          # numeric columns parsed and aligned
Table.from_html(markup)              # standard library parser, no dependency
Table.from_dicts(records)
Table.from_pandas(dataframe)         # pip install flexablelib[pandas]
Table.from_excel('report.xlsx')      # pip install flexablelib[excel]

table.to_csv('out.csv')
table.to_markdown()
table.to_html('report.html', paginate=25)
table.to_excel('report.xlsx')

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

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

table.parse_str_numbers = True

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

table.rows is a copy of the data, with None in empty cells (the same values as to_records()), 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 56 border styles, as data
│   ├── table_strings.py     separator lines and data rows
│   ├── cells.py             cell padding, justification, wrapping
│   ├── options.py           constants and defaults
│   └── utils.py             type predicates and small helpers
├── tests/                   pytest suite — see ARCHITECTURE.md#testing
├── docs/                    issue history and design notes
├── logos/                   brand assets — see logos/README.md
├── ARCHITECTURE.md          how it all fits together
├── style_examples.md        all 56 styles rendered
├── package.json             canonical version number (no npm deps)
└── setup.py                 reads the version from package.json

Run the tests from the repository root:

pip install -r requirements-dev.txt
python -m pytest

See ARCHITECTURE.md for the rendering pipeline, how styles are defined, and how to add one.

Metadata

Release files for flexablelib 2.1.1

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

Source distribution (sdist)

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

Built distributions (wheels)

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

Total release size: 4.4 MB

Release files / flexablelib-2.1.1.tar.gz

Download URL flexablelib-2.1.1.tar.gz
Size 213.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d77da310a700585ad8d6c121c74ad0b1ba13977ecf0edac3a5d6e83e93c8f38d
BLAKE2b-256 checksum
How to use checksums
3146977634d3b4db7d1560d5eb697ece13f8891d7c81170fedaff98fddebec9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

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

Download URL flexablelib-2.1.1-cp314-cp314-win_amd64.whl
Size 144.8 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
85bd037ee7a86c05a597fc98478056c1457471191f179af153fe7c9fb8ce2362
BLAKE2b-256 checksum
How to use checksums
4c14be70e7e711c1c5993a7340a063a5f32806ae5cb68ee053525655326ed389
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

Download URL flexablelib-2.1.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 157.7 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
9baec3f2ca5e03717c74aee5ebc00c07018e1776e982941d1891a5c1c78cc221
BLAKE2b-256 checksum
How to use checksums
6498d98285f517e88aab8c0fcbee1caf968545e368c8948d342e2c19e82c1706
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL flexablelib-2.1.1-cp314-cp314-macosx_11_0_arm64.whl
Size 140.8 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6e15c92b7a8a29180731a8aa9bf9658cabf8a721466bd792647ec4ee44fa80c7
BLAKE2b-256 checksum
How to use checksums
8459786de2ac2a7e1214370452627b94ecea19e50693d12e58c666a06038cae4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

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

Download URL flexablelib-2.1.1-cp313-cp313-win_amd64.whl
Size 143.4 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
87ad6c7450087c068f08327b7c66d963a18edee3931f814d011c7874721675ab
BLAKE2b-256 checksum
How to use checksums
90f0b6e6f5e1e4b998d470a6195e913c83e0d68219daafbb898aa757c86d7c06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

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

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

Download URL flexablelib-2.1.1-cp313-cp313-macosx_11_0_arm64.whl
Size 140.8 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6f05ef423ef66da1bf500c66c2a36b6c23b16f636165e2fcb15e3f88c581d626
BLAKE2b-256 checksum
How to use checksums
58cf4becaf25ceed6f8de6dd27dc4435b49525a0ce0e4a2644fe55126afbb571
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

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

Download URL flexablelib-2.1.1-cp312-cp312-win_amd64.whl
Size 143.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
6e654fc9f890127c95c32eebafc2818d192e2c79171776dccd8cf256e825a39f
BLAKE2b-256 checksum
How to use checksums
89a6569c2b993ea7b63742207d776836993210ae2b137423ac7a49ad6f626f52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

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

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

Download URL flexablelib-2.1.1-cp312-cp312-macosx_11_0_arm64.whl
Size 140.8 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0fb0bccd2d5b8efe9af4d9c9900c4d52ba2af66098d879cf00b3749c3957476b
BLAKE2b-256 checksum
How to use checksums
6f498526b9dd275c50f39d56859e27a2b71f6480becfbf85fc4829697cd37c9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

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

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

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

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

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

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

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

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

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

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

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

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

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

Download URL flexablelib-2.1.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 155.1 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
62a747ecfcc36a32fc75b2dd4b3a078cbd36e5aad6baecef67c17853b28ba5bd
BLAKE2b-256 checksum
How to use checksums
3802ac900449c2b8fbff647e8557b798e3e252319d4e0d129ed46028b0734a61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

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

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

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

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

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

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

Download URL flexablelib-2.1.1-cp39-cp39-macosx_11_0_arm64.whl
Size 140.8 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
953853d65f24bbcc2a0a053a4101226686c64efa3fce3061cc1436e87a5ff1b0
BLAKE2b-256 checksum
How to use checksums
6a200f9bb1ab43105a47543ee68a2933e59e3f4c862f5a374873e17a381acb02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

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

Download URL flexablelib-2.1.1-cp38-cp38-win_amd64.whl
Size 143.3 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
8e5b8f0e1b066b5621f104f3586dd570a8d61d1f30a3dbeee0862dcc2c20d836
BLAKE2b-256 checksum
How to use checksums
53b8c942948706edcea8b95de6cd663947a47ee2f6bdddc3fc9b13598ad2c9e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

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

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

Download URL flexablelib-2.1.1-cp38-cp38-macosx_11_0_arm64.whl
Size 140.5 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f4d1a468a8220a826ecb8b9dc0edf9f189dd6f569b2b50f9489c1beaf0614d5a
BLAKE2b-256 checksum
How to use checksums
b07796c4857ef3e750364a79bfb6b2ddb94ff8c6349f0274389711a62c0dcc44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Security for flexablelib 2.1.1

Provenance

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

No provenance found

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

A note on package security

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

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

Release history Release notifications | RSS feed

This release

2.1.1 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