Skip to main content

This module removes some of the boiler-plate code required to use the excellent pytables module to save and access structured data.

Example Usage:

>>> from simpletable import SimpleTable
>>> import tables

define a table as a subclass of simple table.

>>> RGB = tables.Enum(list('RGB'))
>>> class ATable(SimpleTable):
...     x = tables.Float32Col()
...     y = tables.Float32Col()
...     name = tables.StringCol(16)
...     color = tables.EnumCol(RGB, 'R', 'uint8')

instantiate with: args: filename, tablename

>>> tbl = ATable('test_docs.h5', 'atable1')

insert as with pytables:

>>> row = tbl.row
>>> for i in range(50):
...    row['x'], row['y'] = i, i * 10
...    row['name'] = "name_%i" % i
...    # NOTE how we have to manually translate the enum column.
...    row['color'] = RGB['G']
...    row.append()
>>> tbl.flush()

can have the enum cols automatically translated using insert

>>> data = {'x': 1000, 'y': 2000, 'color': 'G', 'name': 'flintstone'}
>>> tbl.insert(data, row)
>>> row.append()
>>> tbl.flush()

there is also insert_many() method with takes an iterable of dicts with keys matching the colunns (x, y, name) in this case.

query the data (query() alias of tables’ readWhere() note that pytables sends back the data with enum cols as they were and does nothing to translate them to their original values.

>>> tbl.query('(x > 4) & (y < 70)') #doctest: +NORMALIZE_WHITESPACE
array([(1, 'name_5', 5.0, 50.0), (1, 'name_6', 6.0, 60.0)],
       dtype=[('color', '|u1'), ('name', '|S16'), ('x', '<f4'), ('y', '<f4')])

get translated enumcols in an iterator with the .q method.

>>> r = tbl.q('x == 1000') # doctest: +NORMALIZE_WHITESPACE
>>> r # doctest: +ELLIPSIS
<generator ...>
>>> list(r)
[{'color': 'G', 'x': 1000.0, 'name': 'flintstone', 'y': 2000.0}]

or use the translate_enum method

>>> for row_with_enum in tbl.query('(x > 4) & (y < 70)'):
...     tbl.translate_enum(row_with_enum)
{'color': 'G', 'x': 5.0, 'name': 'name_5', 'y': 50.0}
{'color': 'G', 'x': 6.0, 'name': 'name_6', 'y': 60.0}

Note that using q or translate_enum will affect performance.

Metadata

Release files for simpletable 0.2.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 simpletable 0.2.2
File Size Uploaded
simpletable-0.2.2.tar.gz 3.5 kB Details

Release files / simpletable-0.2.2.tar.gz

Download URL simpletable-0.2.2.tar.gz
Size 3.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5cb028eaf37fef83821d9bfd0726c5cd4e4440dcc93e8e0ac253c11b04caa279
BLAKE2b-256 checksum
How to use checksums
84ce6dbd6c6cfc8b672aa6f3c1e9134be6801985218610877ae8161430b50b69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.2 This release

1 release file

0.2

1 release file

0.1

1 release file

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