{"id":17563979,"url":"https://github.com/federicoceratto/dashing","last_synced_at":"2025-05-16T04:06:21.187Z","repository":{"id":39988521,"uuid":"93248125","full_name":"FedericoCeratto/dashing","owner":"FedericoCeratto","description":"Terminal dashboards for Python","archived":false,"fork":false,"pushed_at":"2024-05-14T09:40:26.000Z","size":122,"stargazers_count":480,"open_issues_count":11,"forks_count":34,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-05-16T04:06:14.697Z","etag":null,"topics":["charts","dashboard","gauges","python","python3","terminal","terminal-based"],"latest_commit_sha":null,"homepage":"https://dashing.readthedocs.io/en/latest/","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/FedericoCeratto.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/LGPL-3.0-or-later.txt","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":"2017-06-03T12:55:18.000Z","updated_at":"2025-05-14T18:01:05.000Z","dependencies_parsed_at":"2024-03-19T11:28:38.822Z","dependency_job_id":"f206c178-35a8-4595-8d03-a9db7509460d","html_url":"https://github.com/FedericoCeratto/dashing","commit_stats":{"total_commits":7,"total_committers":2,"mean_commits":3.5,"dds":0.1428571428571429,"last_synced_commit":"02a768f155ed04a29286e97e75c5ed5c7604f7c8"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FedericoCeratto%2Fdashing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FedericoCeratto%2Fdashing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FedericoCeratto%2Fdashing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FedericoCeratto%2Fdashing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FedericoCeratto","download_url":"https://codeload.github.com/FedericoCeratto/dashing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254464895,"owners_count":22075570,"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","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":["charts","dashboard","gauges","python","python3","terminal","terminal-based"],"created_at":"2024-10-21T13:10:42.451Z","updated_at":"2025-05-16T04:06:16.179Z","avatar_url":"https://github.com/FedericoCeratto.png","language":"Python","readme":"\nimage:https://img.shields.io/badge/status-alpha-orange.svg[badge]\nimage:https://img.shields.io/badge/version-0.1.0-orange.svg[badge]\nimage:https://img.shields.io/pypi/v/dashing.svg?style=plastic[\"Latest Version\", link=\"https://pypi.python.org/pypi/dashing\"]\nimage:https://img.shields.io/badge/License-LGPL%20v3-blue.svg[License]\nimage:https://api.reuse.software/badge/github.com/FedericoCeratto/dashing[REUSE,link=\"https://api.reuse.software/info/github.com/FedericoCeratto/dashing\"]\n\nDashing is a library to quickly create terminal-based dashboards in Python.\n\nimage:https://raw.githubusercontent.com/FedericoCeratto/dashing/gh-pages/tty.gif[Example]\n\nSimilar libraries for other languages: https://github.com/gizak/termui[termui] https://github.com/chjj/blessed[blessed] https://github.com/yaronn/blessed-contrib[blessed-contrib]\n\nFeatures:\n- [x] Sub-character resolution (partially filled blocks)\n- [x] Horizontal and vertical bars with gradient coloring\n- [x] Text and log panes with automated scrolling\n- [x] Automatic scaling of all elements\n- [x] Vertical and horizontal tile splitting\n- [x] Braille-filled charts\n- [x] Theming with 24-bit RGB and HSV colors\n- [x] Color gradients\n\n=== Dependencies\n\nThe link:https://pypi.python.org/pypi/blessed[blessed] library.\n\n=== Installation\n\nUse packages from your Linux distribution, or:\n\n[source,bash]\n----\npip install dashing\n----\n\n\n=== Usage\n\nSee the documentation at https://dashing.readthedocs.io/en/latest/\n\n.Usage\n[source,python]\n----\nimport math\nfrom time import time, sleep\n\nfrom dashing import (\n    ColorRangeVGauge,\n    HBrailleChart,\n    HChart,\n    HGauge,\n    HSplit,\n    Log,\n    Text,\n    VChart,\n    VGauge,\n    VSplit,\n)\n\nif __name__ == '__main__':\n\n    ui = HSplit(\n        VSplit(\n            HGauge(val=50, title=\"only title\", border_color=5),\n            HGauge(label=\"only label\", val=20, border_color=5),\n            HGauge(label=\"only label\", val=30, border_color=5),\n            HGauge(label=\"only label\", val=50, border_color=5),\n            HGauge(label=\"only label\", val=80, border_color=5),\n            HGauge(val=20),\n            HGauge(label=\"label, no border\", val=55),\n            HSplit(\n                VGauge(val=0, border_color=2),\n                VGauge(val=5, border_color=2),\n                VGauge(val=30, border_color=2),\n                VGauge(val=50, border_color=2),\n                VGauge(val=80, border_color=2, color=4),\n                VGauge(val=95, border_color=2, color=3),\n                ColorRangeVGauge(\n                    val=100,\n                    border_color=2,\n                    colormap=(\n                        (33, 2),\n                        (66, 3),\n                        (100, 1),\n                    )\n                ),\n            )\n        ),\n        VSplit(\n            Text('Hello World,\\nthis is dashing.', border_color=2),\n            Log(title='logs', border_color=5),\n            VChart(border_color=2, color=2),\n            HChart(border_color=2, color=2),\n            HBrailleChart(border_color=2, color=2),\n            # HBrailleFilledChart(border_color=2, color=2),\n        ),\n        title='Dashing',\n    )\n    log = ui.items[1].items[1]\n    vchart = ui.items[1].items[2]\n    hchart = ui.items[1].items[3]\n    bchart = ui.items[1].items[4]\n    # bfchart = ui.items[1].items[5]\n    log.append(\"0 -----\")\n    log.append(\"1 Hello\")\n    log.append(\"2 -----\")\n    prev_time = time()\n\n    with open_terminal() as terminal:\n      for cycle in range(0, 200):\n          ui.items[0].items[0].value = int(50 + 49.9 * math.sin(cycle / 80.0))\n          ui.items[0].items[1].value = int(50 + 45 * math.sin(cycle / 20.0))\n          ui.items[0].items[2].value = int(50 + 45 * math.sin(cycle / 30.0 + 3))\n\n          vgauges = ui.items[0].items[-1].items\n          for gaugenum, vg in enumerate(vgauges):\n              vg.value = 50 + 49.9 * math.sin(cycle / 12.0 + gaugenum)\n\n          t = int(time())\n          if t != prev_time:\n              log.append(\"%s\" % t)\n              prev_time = t\n          vchart.append(50 + 50 * math.sin(cycle / 16.0))\n          hchart.append(99.9 * abs(math.sin(cycle / 26.0)))\n          bchart.append(50 + 50 * math.sin(cycle / 6.0))\n          # bfchart.append(50 + 50 * math.sin(cycle / 16.0))\n\n          ui.display(terminal)\n\n          sleep(1.0 / 25)\n----\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedericoceratto%2Fdashing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedericoceratto%2Fdashing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedericoceratto%2Fdashing/lists"}