{"id":2381,"library":"alive-progress","title":"alive-progress","description":"alive-progress is a versatile and highly customizable Python library for creating animated progress bars in the terminal. It provides visual feedback for long-running tasks with real-time throughput, Estimated Time of Arrival (ETA), and a variety of cool animations. Currently at version 3.3.0, the library maintains an active development and release cadence, offering robust features for CLI applications.","status":"active","version":"3.3.0","language":"python","source_language":"en","source_url":"https://github.com/rsalmei/alive-progress","tags":["progress","bar","spinner","terminal","animation","cli","visual","eta","monitoring","python"],"install":[{"cmd":"pip install alive-progress","lang":"bash","label":"Install latest version"}],"dependencies":[],"imports":[{"symbol":"alive_bar","correct":"from alive_progress import alive_bar"},{"note":"A convenient wrapper for iterables, automatically handling bar updates.","symbol":"alive_it","correct":"from alive_progress import alive_it"}],"quickstart":{"code":"import time\nfrom alive_progress import alive_bar\n\nTOTAL_ITEMS = 100\n\nwith alive_bar(TOTAL_ITEMS, title='Processing items') as bar:\n    for i in range(TOTAL_ITEMS):\n        # Simulate a task\n        time.sleep(0.05)\n        bar() # Update the progress bar\n\nprint(\"Task completed!\")","lang":"python","description":"This quickstart demonstrates the most common usage pattern for `alive-progress` using the `alive_bar` context manager. It initializes a progress bar with a total count and updates it in each iteration of a loop."},"warnings":[{"fix":"Use `with alive_bar(total, force_tty=True) as bar:` to explicitly enable the display in such environments.","message":"When running in non-interactive environments like PyCharm consoles, Jupyter notebooks, or shell pipelines, alive-progress might automatically detect a non-TTY environment and only print the final receipt. To force the progress bar display, use the `force_tty=True` argument.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Always use the `text='your message'` keyword argument when setting an inline message: `bar(text='current status')`. The `bar()` call without arguments increments the bar.","message":"The method for setting inline messages within the progress bar changed in earlier major versions. Older versions used `bar('message')` to set text while incrementing. Current versions (3.x) use `bar(text='message')` for this purpose. Calling `bar('message')` without the `text=` keyword in 3.x will likely result in an error or unexpected behavior as it would try to interpret 'message' as an increment count.","severity":"breaking","affected_versions":"Likely 2.x to 3.x transitions, 3.x and newer"},{"fix":"If `total` is provided, `bar()` increments. To set a specific percentage, call `bar(fractional_value)` (e.g., `bar(i / total)`). If no `total` is given, it operates in 'unknown' mode with no ETA, and `bar()` simply updates the spinner.","message":"When `alive_bar` is initialized with a `total`, calling `bar()` without arguments increments an internal counter. To manually set the progress by a percentage (e.g., 15%), you must pass the fractional value to `bar()`: `bar(0.15)`. Mixing these approaches or passing a raw count when percentage is expected (or vice-versa) without understanding the mode can lead to incorrect progress display.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Ensure your project uses Python 3.9 or newer.","message":"Support for older Python versions has been dropped. The library officially supports Python >=3.9.","severity":"deprecated","affected_versions":"<3.9"}],"env_vars":null,"search_vec":"'3.3.0':51 'activ':56 'aliv':2,5 'alive-progress':1,4 'anim':17,47,71 'applic':66 'arriv':40 'bar':19,68 'cadenc':60 'cli':65,72 'cool':46 'creat':16 'current':48 'customiz':12 'develop':57 'estim':37 'eta':41,74 'featur':63 'feedback':26 'high':11 'librari':14,53 'long':29 'long-run':28 'maintain':54 'monitor':75 'offer':61 'progress':3,6,18,67 'provid':24 'python':13,76 'real':34 'real-tim':33 'releas':59 'robust':62 'run':30 'spinner':69 'task':31 'termin':22,70 'throughput':36 'time':35,38 'varieti':44 'versatil':9 'version':50 'visual':25,73","created_at":"2026-04-11T01:25:45.227596+00:00","updated_at":"2026-04-15T19:59:30.440053+00:00","problems":[{"fix":"Install the package using pip: 'pip install alive-progress'.","cause":"The 'alive-progress' package is not installed in the Python environment.","error":"ModuleNotFoundError: No module named 'alive_progress'"},{"fix":"Ensure the package is installed and use the correct import statement: 'from alive_progress import alive_bar'.","cause":"The 'alive-progress' package is not installed or the import statement is incorrect.","error":"ImportError: cannot import name 'alive_bar' from 'alive_progress'"},{"fix":"Enable notebook mode by adding 'from alive_progress.notebook import set_notebook' and 'set_notebook()' before using 'alive_bar'.","cause":"The 'alive-progress' bar is not displaying correctly in Jupyter Notebook due to compatibility issues.","error":"AttributeError: 'FloatProgress' object has no attribute 'style'"},{"fix":"Force TTY mode by setting 'force_tty=True' in 'alive_bar': 'with alive_bar(100, force_tty=True) as bar:'.","cause":"The progress bar does not display correctly in PyCharm's console due to its default settings.","error":"alive_progress bar not working on PyCharm"},{"fix":"Upgrade alive-progress to version 3.0 or newer: `pip install --upgrade alive-progress`","cause":"Older versions of 'alive-progress' (prior to v3.0) had issues with its print/logging hooks when multiple instances or complex threading/multiprocessing environments tried to concurrently manage terminal output.","error":"TypeError: unhashable type: 'types.SimpleNamespace'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"3.3.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/rsalmei/alive-progress","docs":null,"changelog":null,"pypi":"https://pypi.org/project/alive-progress/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["observability","devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-28","last_verified":"2026-08-28","next_check":"2026-07-28","install_tag":null}}