{"id":13478469,"url":"https://github.com/sjmikler/progress-table","last_synced_at":"2025-04-12T19:46:05.313Z","repository":{"id":63377756,"uuid":"567436979","full_name":"sjmikler/progress-table","owner":"sjmikler","description":"Display progress as a pretty table in the command line.","archived":false,"fork":false,"pushed_at":"2025-03-15T15:51:32.000Z","size":24455,"stargazers_count":130,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-05T06:00:44.611Z","etag":null,"topics":["progress-bar","tabular-data","terminal-based"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sjmikler.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.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":"2022-11-17T19:42:00.000Z","updated_at":"2025-04-01T19:39:02.000Z","dependencies_parsed_at":"2024-04-23T23:26:37.944Z","dependency_job_id":"4b99912b-75d3-4fce-86f2-8441467c52cd","html_url":"https://github.com/sjmikler/progress-table","commit_stats":{"total_commits":206,"total_committers":1,"mean_commits":206.0,"dds":0.0,"last_synced_commit":"b00e28611b5aebcf5e71d9008cacb2b2be4c3626"},"previous_names":["gahaalt/progress-table"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjmikler%2Fprogress-table","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjmikler%2Fprogress-table/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjmikler%2Fprogress-table/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjmikler%2Fprogress-table/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sjmikler","download_url":"https://codeload.github.com/sjmikler/progress-table/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625491,"owners_count":21135513,"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":["progress-bar","tabular-data","terminal-based"],"created_at":"2024-07-31T16:01:57.489Z","updated_at":"2025-04-12T19:46:05.291Z","avatar_url":"https://github.com/sjmikler.png","language":"Python","readme":"# Progress Table\n\n[![PyPi version](https://img.shields.io/badge/dynamic/json?label=latest\u0026query=info.version\u0026url=https%3A%2F%2Fpypi.org%2Fpypi%2Fprogress-table%2Fjson)](https://pypi.org/project/progress-table)\n[![PyPI license](https://img.shields.io/badge/dynamic/json?label=license\u0026query=info.license\u0026url=https%3A%2F%2Fpypi.org%2Fpypi%2Fprogress-table%2Fjson)](https://github.com/sjmikler/progress-table/blob/main/LICENSE.txt)\n[![codecov](https://codecov.io/gh/sjmikler/progress-table/graph/badge.svg?token=CDJKF0FFAQ)](https://codecov.io/gh/sjmikler/progress-table)\n\nLightweight utility to display the progress of your process as a pretty table in the command line.\n\n* Alternative to TQDM whenever you want to track metrics produced by your process\n* Designed to monitor ML experiments, but works for any metrics-producing process\n* Allows you to see at a glance what's going on with your process\n* Increases readability and simplifies your command line logging\n\n### Change this:\n\n![example](images/progress-before3.gif)\n\n### Into this:\n\n![example](images/progress-after4.gif)\n\n## Examples\n\nFrom `examples/` directory:\n\n* Neural network training\n\n![example-training](images/examples-training.gif)\n\n* Progress of multi-threaded downloads\n\n![example-download](images/examples-download.gif)\n\n* Simulation and interactive display of Brownian motion\n\n![example-brown2d](images/examples-brown2d.gif)\n\n* Display of a game board\n\n![example-tictactoe](images/examples-tictactoe.gif)\n\n## Quick start code\n\n```python\nimport random\nimport time\n\nfrom progress_table import ProgressTable\n\n# Create table object:\ntable = ProgressTable(num_decimal_places=1)\n\n# You can (optionally) define the columns at the beginning\ntable.add_column(\"x\", color=\"bold red\")\n\nfor step in range(10):\n    x = random.randint(0, 200)\n\n    # You can add entries in a compact way\n    table[\"x\"] = x\n\n    # Or you can use the update method\n    table.update(\"x\", value=x, weight=1.0)\n\n    # Display the progress bar by wrapping an iterator or an integer\n    for _ in table(10):  # -\u003e Equivalent to `table(range(10))`\n        # Set and get values from the table\n        table[\"y\"] = random.randint(0, 200)\n        table[\"x-y\"] = table[\"x\"] - table[\"y\"]\n        table.update(\"average x-y\", value=table[\"x-y\"], weight=1.0, aggregate=\"mean\")\n        time.sleep(0.1)\n\n    # Go to the next row when you're ready\n    table.next_row()\n\n# Close the table when it's finished\ntable.close()\n\n```\n\n\u003e Go to [integrations](docs/integrations.md)\n\u003e page to see examples of integration with deep learning libraries.\n\n## Advanced usage\n\nGo to [advanced usage](docs/advanced-usage.md) page for more information.\n\n## Troubleshooting\n\n### Exceesive output\n\nProgress Table works correctly in most consoles, but there are some exceptions:\n\n* Some cloud logging consoles (e.g. kubernetes) don't support `\\r` properly. You can still use ProgressTable, but with `interactive=0` option. This mode will not display progress bars.\n\n* Some consoles like 'PyCharm Python Console' or 'IDLE' don't support cursor movement. You can still use ProgressTable, but with `interactive=1` option. In this mode, you can display only a single progress bar.\n\n\u003e By default `interactive=2`. You can change the default 'interactive' with an argument when creating the table object or by setting 'PTABLE_INTERACTIVE' environment variable, e.g. `PTABLE_INTERACTIVE=1`.\n\n### Other problems\n\nIf you encounter different messy outputs or other unexpected behavior: please create an issue!\n\n## Installation\n\nInstall Progress Table easily with pip:\n\n```\npip install progress-table\n```\n\n## Links\n\n* [See on GitHub](https://github.com/gahaalt/progress-table)\n* [See on PyPI](https://pypi.org/project/progress-table)\n\n## Alternatives\n\n* Progress bars: great for tracking progress, but they don't provide ways to display data in clear and compact way\n    * `tqdm`\n    * `rich.progress`\n    * `keras.utils.Progbar`\n\n* Libraries displaying data: great for presenting tabular data, but they lack the progress tracking aspect\n    * `rich.table`\n    * `tabulate`\n    * `texttable`\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjmikler%2Fprogress-table","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsjmikler%2Fprogress-table","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjmikler%2Fprogress-table/lists"}