{"id":20070350,"url":"https://github.com/jimmadge/qintervals","last_synced_at":"2026-05-12T15:34:41.540Z","repository":{"id":131125900,"uuid":"146749829","full_name":"JimMadge/qintervals","owner":"JimMadge","description":"An interval training program written in Python with a Qt GUI.","archived":false,"fork":false,"pushed_at":"2020-08-21T19:57:10.000Z","size":145,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-02T11:48:34.007Z","etag":null,"topics":["interval-training","python","qt-gui","workout","yaml"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JimMadge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-30T12:56:59.000Z","updated_at":"2020-08-21T19:57:13.000Z","dependencies_parsed_at":"2023-06-03T22:30:22.209Z","dependency_job_id":null,"html_url":"https://github.com/JimMadge/qintervals","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JimMadge/qintervals","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JimMadge%2Fqintervals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JimMadge%2Fqintervals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JimMadge%2Fqintervals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JimMadge%2Fqintervals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JimMadge","download_url":"https://codeload.github.com/JimMadge/qintervals/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JimMadge%2Fqintervals/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286079811,"owners_count":27282121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-26T02:00:06.075Z","response_time":193,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["interval-training","python","qt-gui","workout","yaml"],"created_at":"2024-11-13T14:22:15.020Z","updated_at":"2025-11-26T15:04:33.973Z","avatar_url":"https://github.com/JimMadge.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# qintervals\n[![Build Status](https://travis-ci.org/JimMadge/qintervals.svg?branch=master)](https://travis-ci.org/JimMadge/qintervals)\n[![codecov](https://codecov.io/gh/JimMadge/qintervals/branch/master/graph/badge.svg)](https://codecov.io/gh/JimMadge/qintervals)\n\nAn interval training program written in Python with a Qt GUI.\n\n## Installation\n### User Installation with pip\n\nTo use qintervals you will need to ensure you have Qt5 installed\n\nClone the repository\n\n```\n$ git clone https://github.com/JimMadge/qintervals.git\n```\n\nInstall using pip\n```\n$ cd qintervals\n$ pip3 install --user .\n````\n\n`qintervals` will be installed to `~/.local/bin` so ensure this directory is in\nyour `$PATH`.\n\n## Usage\n\n`qintervals` takes a single positional argument, the path to a YAML workout\nfile. Example workout files may be found in the [examples](./examples) directory.\n\nTo run one of the examples\n\n```\n$ qintervals qintervals/examples/threshold.yml\n```\n\n## Workout File Format\n\nA workout is a series of intervals, or blocks (groups of repeated intervals).\n\nWorkout files are written in [YAML](https://yaml.org/). There are two top-level\nkeys\n\n| key         | description                                            |\n| ---         | ---                                                    |\n| `title`     | title of the workout                                   |\n| `intervals` | ordered list of `interval`s or `block`s in the workout |\n\nEach interval has the following keys\n\n| key      | description                                                                               |\n| ---      | ---                                                                                       |\n| `type`   | type of interval, one of `warmup`, `warmdown`, `work` or `rest`                           |\n| `name`   | interval label that is displayed by the program, can be used to give instructions         |\n| `length` | length of the interval given as a whole number of minutes or seconds _e.g._ `30s` or `5m` |\n\nA block has the following keys\n\n| key              | description                              |\n| ---              | ---                                      |\n| `repeats`        | number of times to repeat a block        |\n| `intervals`      | ordered list of intervals or blocks      |\n| `skip_last_rest` | skip the last interval if it is a rest*  |\n\n(*useful when a block is followed by a rest interval and you want to avoid having two rest intervals in a row)\n\nFor example\n\n```yaml\ntitle: Threshold\nintervals:\n  - type: warmup\n    name: Warm up\n    length: 10m\n\n  - type: work\n    name: Zone 3\n    length: 10m\n\n  - type: rest\n    name: Rest\n    length: 5m\n\n  - block:\n      repeats: 2\n      skip_last_rest: true\n      intervals:\n        - type: work\n          name: Zone 4, low\n          length: 5m\n        - type: rest\n          name: Rest\n          length: 60s\n\n...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjimmadge%2Fqintervals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjimmadge%2Fqintervals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjimmadge%2Fqintervals/lists"}