Skip to main content

Tabular file remodeling and reorganizing tools for event files and datasets.

Project description

Maintainability Code Coverage Python3 Documentation

The table-remodeler

Tabular file remodeling and reorganizing tools for event files and datasets.

Overview

table-remodeler provides a flexible, operation-based framework for transforming tabular data files through JSON-configurable pipelines. Originally extracted from the hed-python remodeling tools, this package operates as a standalone tool while maintaining compatibility with HED (Hierarchical Event Descriptors) annotations via the hedtools dependency.

Key features:

  • Operation-based architecture for reproducible data transformations
  • JSON-configurable pipelines for batch processing
  • Support for HED-annotated event files (via hedtools package)
  • Built-in backup and restore functionality
  • Both programmatic API and command-line interface
  • Extensible: create custom operations by extending BaseOp

Installation

pip install table-remodeler

For development:

git clone https://github.com/hed-standard/table-remodeler.git
cd table-remodeler
pip install -e .

Quick start

Python API

from remodel import Dispatcher

# Define operations
operations = [
    {
        "operation": "remove_columns",
        "parameters": {"column_names": ["unnecessary_col"]}
    },
    {
        "operation": "rename_columns",
        "parameters": {"column_mapping": {"old_name": "new_name"}}
    }
]

# Execute operations
dispatcher = Dispatcher(operations, data_root="/path/to/dataset")
dispatcher.run_operations()

Command line

# Run remodeling operations
run_remodel /path/to/data /path/to/operations.json

# Create backup before modifications
run_remodel_backup /path/to/data --backup-name my_backup

# Restore from backup
run_remodel_restore /path/to/data --backup-name my_backup

Available operations

Data Transformation

  • factor_column - Create factor columns from value mappings
  • merge_consecutive - Merge consecutive rows with same values
  • remap_columns - Remap column values using lookup tables
  • remove_columns - Remove specified columns
  • remove_rows - Remove rows based on criteria
  • rename_columns - Rename columns
  • reorder_columns - Reorder columns
  • split_rows - Split rows based on criteria

HED-specific operations

  • factor_hed_tags - Factor HED tags into separate columns
  • factor_hed_type - Factor by HED tag types
  • summarize_hed_tags - Summarize HED tag usage
  • summarize_hed_type - Summarize HED types
  • summarize_hed_validation - Validate HED annotations
  • summarize_definitions - Extract HED definitions
  • summarize_sidecar_from_events - Generate sidecar from events

Analysis operations

  • summarize_column_names - List column names across files
  • summarize_column_values - Summarize unique values per column

Documentation

Full API and developer documentation is available at https://www.hedtags.org/table-remodeler.

Users of the table-remodeler should look at the HED remodeling quickstart and HED remodeling tools.

Building Documentation

To build the documentation locally:

  1. Install documentation dependencies:

    pip install -r docs/requirements.txt
    
  2. Build the HTML documentation:

    sphinx-build -b html docs docs/_build/html
    
  3. View the documentation by opening docs/_build/html/index.html in your web browser.

Requirements

  • Python 3.10+
  • pandas
  • numpy
  • hedtools (for HED-specific operations)

License

MIT License - see LICENSE file for details

Contributing

Contributions are welcome! Please see the development setup in the documentation.

Related Projects

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

table_remodeler-0.1.0.tar.gz (50.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

table_remodeler-0.1.0-py3-none-any.whl (68.6 kB view details)

Uploaded Python 3

File details

Details for the file table_remodeler-0.1.0.tar.gz.

File metadata

  • Download URL: table_remodeler-0.1.0.tar.gz
  • Upload date:
  • Size: 50.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for table_remodeler-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e1231da79addca46168e4dab3a1a19f7e589fd59a4c3ed013101b00cf8f7b6c1
MD5 968d2238710f21058bb451586bd4bb0b
BLAKE2b-256 4656fb7dfb0d6398578f4ae349d4fdbed720345b22d07e7f19e0b8816b1d4a4b

See more details on using hashes here.

File details

Details for the file table_remodeler-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for table_remodeler-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec8077739e7f44995e90725e8d4a39bee674ce48cf6b49facae68ee31d066c93
MD5 63fef83bdc588b235e40862cd1ca5c94
BLAKE2b-256 b47c0a1ead98cf61abdb27b4f243da86a9779287c62fd222d99e685cb9a5e6a8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page