{"id":27974150,"url":"https://github.com/maxverwiebe/termspin","last_synced_at":"2025-08-31T17:43:36.286Z","repository":{"id":291558908,"uuid":"978000449","full_name":"maxverwiebe/TermSpin","owner":"maxverwiebe","description":"Spinners and ProgressBars in terminal-based CLIs","archived":false,"fork":false,"pushed_at":"2025-05-05T10:27:00.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-08T00:12:11.843Z","etag":null,"topics":["cli","helper","library","progressbar","python","python3","spinner"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maxverwiebe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-05-05T10:10:03.000Z","updated_at":"2025-05-05T14:38:27.000Z","dependencies_parsed_at":"2025-05-05T11:27:50.268Z","dependency_job_id":"e036a665-a0e3-4a35-9d04-03f62143b643","html_url":"https://github.com/maxverwiebe/TermSpin","commit_stats":null,"previous_names":["maxverwiebe/termspin"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/maxverwiebe/TermSpin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxverwiebe%2FTermSpin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxverwiebe%2FTermSpin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxverwiebe%2FTermSpin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxverwiebe%2FTermSpin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxverwiebe","download_url":"https://codeload.github.com/maxverwiebe/TermSpin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxverwiebe%2FTermSpin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273017230,"owners_count":25031590,"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-08-31T02:00:09.071Z","response_time":79,"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":["cli","helper","library","progressbar","python","python3","spinner"],"created_at":"2025-05-08T00:11:58.999Z","updated_at":"2025-08-31T17:43:36.272Z","avatar_url":"https://github.com/maxverwiebe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TermSpin\r\n\r\n*A tiny Python 3 helper for stylish terminal feedback.*\r\n\r\n![output](https://github.com/user-attachments/assets/86d6ac8c-1340-42e2-a4de-de430378797f)\r\n\r\n\r\n---\r\n\r\n## Features\r\n\r\n* Animated **spinners** \u0026 progress **bars** with ANSI colours\r\n* Context‑manager API (`with Spinner(): …`)\r\n* Configurable speed, colours, symbols\r\n* ETA calculation for progress bars\r\n* Zero dependencies – pure standard library\r\n\r\n## Installation\r\n\r\n1. Clone this repo\r\n2. Move termspin dir into your project src code\r\n3. Import termspin as seen in the examples\r\n \r\n*PyPi coming soon :)*\r\n\r\n## Quick Start\r\n\r\n```python\r\n# example1.py\r\nfrom termspin import Spinner, SpinnerStyle\r\n\r\nwith Spinner(text=\"Thinking\", theme=SpinnerStyle.WAVE, color=\"\\033[96m\"):\r\n    heavy_calculation()\r\n```\r\n\r\n```python\r\n# example2.py\r\nfrom termspin import ProgressBar, BarStyle\r\n\r\nbar = ProgressBar(total=100, style=BarStyle.STRIPED, show_eta=True)\r\nfor _ in range(100):\r\n    do_work()\r\n    bar.step()\r\nbar.finish()\r\n```\r\n\r\n---\r\n\r\n## Spinner Themes\r\n\r\n| Enum    | Preview           |   |\r\n| ------- | ----------------- | - |\r\n| `DOTS`  | ⠋⠙⠹⠸⠼ …           |   |\r\n| `LINE`  | - \\\\              | / |\r\n| `ARROW` | → ↘ ↓ ↙ ← ↖ ↑ ↗   |   |\r\n| `EARTH` | 🌍 🌎 🌏          |   |\r\n| `CLOCK` | 🕛 🕐 🕑 … 🕚     |   |\r\n| `WAVE`  | ▁ ▂ ▃ ▄ ▅ ▆ ▇ █ … |   |\r\n\r\n## Progress‑Bar Styles\r\n\r\n| Enum      | Fill | Empty | Borders |   |\r\n| --------- | ---- | ----- | ------- | - |\r\n| `CLASSIC` | =    | -     | \\[ ]    |   |\r\n| `BOLD`    | ■    | ␣     | ❮ ❯     |   |\r\n| `MINIMAL` | \\*   | ␣     |         |   |\r\n| `HASH`    | #    | .     | \\[ ]    |   |\r\n| `EMOJI`   | 🚀   | ✨     | 🚩 🎯   |   |\r\n| `ROUNDED` | ●    | ○     | ( )     |   |\r\n| `STRIPED` | ▉    | ▏     | \\[ ]    |   |\r\n| `DOT`     | •    | ·     | { }     |   |\r\n| `HEART`   | ❤    | ♡     | ❤ ❤     |   |\r\n| `MUSIC`   | ♫    | ♩     | ♪ ♪     |   |\r\n| `DNA`     | ▰    | ▱     | ⎡ ⎤     |   |\r\n| `PIXEL`   | █    | ░     | ▐ ▌     |   |\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxverwiebe%2Ftermspin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxverwiebe%2Ftermspin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxverwiebe%2Ftermspin/lists"}