Skip to main content

ECG k-Fold utilities

Project description

ECG-k-Fold

Utilities for creating reproducible k-fold splits for open-access ECG datasets (FAIR compliant), packaged as a Python library with a CLI and CI/CD. Includes an option to push datasets to the Hugging Face Hub.

Install

pip install ecg-k-fold

For development:

git clone <this-repo>
cd ECG-k-Fold
make init

Or manually:

git clone <this-repo>
cd ECG-k-Fold
# Install uv if not already installed: curl -LsSf https://astral.sh/uv/install.sh | sh
uv pip install -e .[dev]
uv run pre-commit install

CLI

Push a local dataset directory to the Hugging Face Hub. Requires an access token with write permissions.

export HF_TOKEN=hf_************************
ecg-k-fold push-dataset ./path/to/dataset \
  --repo-id org_or_user/dataset-name \
  --private \
  --commit-message "Add v1"

Flags:

  • --repo-id: target dataset repo, e.g. your-org/ecg-dataset
  • --private/--public: repository visibility (default private)
  • --commit-message: commit title for the upload
  • --token: override HF_TOKEN env var

Dataset contents are uploaded as-is; common temp files are ignored.

Python API

from pathlib import Path
from ecg_k_fold.datasets.push_hf import push_local_dataset_to_hub

push_local_dataset_to_hub(
    local_dir=Path("./path/to/dataset"),
    repo_id="your-org/ecg-dataset",
    private=True,
    commit_message="Initial upload",
    hf_token="hf_...",
)

CI/CD

  • Lint, type-check, and tests run on PRs and pushes to develop and main (.github/workflows/ci.yml).
  • Publishing to PyPI happens on pushing a tag like vX.Y.Z (.github/workflows/publish.yml). Uses PyPI Trusted Publishers, no PyPI token needed. See https://docs.pypi.org/trusted-publishers/
  • A manual workflow can push datasets to Hugging Face (.github/workflows/hf-dataset-push.yml). Set HF_TOKEN in repo secrets.

Gitflow

  • Default branches: main (stable), develop (integration).
  • Create feature branches off develop (feature/<name>), open PRs into develop.
  • Release by creating a tag vX.Y.Z on main to trigger PyPI publish.

See CONTRIBUTING.md for details.

License

Apache-2.0. See LICENSE.

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

ecg_k_fold-0.1.3.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

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

ecg_k_fold-0.1.3-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file ecg_k_fold-0.1.3.tar.gz.

File metadata

  • Download URL: ecg_k_fold-0.1.3.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for ecg_k_fold-0.1.3.tar.gz
Algorithm Hash digest
SHA256 91a0715086a5568c64e854bd98944adebfd57dc291ae7639bc6e5e68cb4f2b74
MD5 f28c6a5d1ce5159092353763c931790b
BLAKE2b-256 eb1bf284f402e02ec84267d052e858b85e519b68d94f9fc910fa0f79ad87e474

See more details on using hashes here.

File details

Details for the file ecg_k_fold-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: ecg_k_fold-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 3.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for ecg_k_fold-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f1d2f7eb96d9df2fafb76f7107623d0d86a50b4ac7c919997d798bcb55d71620
MD5 9bb9a067181603d840a886c4e2d7b948
BLAKE2b-256 5e4f18f88d0d0fbef1257d28e4691dd41669eb2bfe1661df0707f691bb14c5ee

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