{"id":1038,"library":"wasabi","title":"Wasabi","description":"Wasabi is a lightweight console printing and formatting toolkit designed by Explosion, the creators of spaCy. It aims to make console output more readable and visually appealing with minimal overhead. The library is currently at version 1.1.3 and is actively maintained, receiving regular updates often in conjunction with other Explosion projects.","status":"active","version":"1.1.3","language":"python","source_language":"en","source_url":"https://github.com/explosion/wasabi","tags":["console","logging","formatting","cli","toolkit"],"install":[{"cmd":"pip install wasabi","lang":"bash","label":"Install stable version"}],"dependencies":[{"reason":"Required for type hints on Python versions older than 3.8.","package":"typing-extensions","optional":true}],"imports":[{"symbol":"Printer","correct":"from wasabi import Printer"},{"note":"Pre-initialized Printer instance for quick use without custom configuration.","symbol":"msg","correct":"from wasabi import msg"}],"quickstart":{"code":"from wasabi import Printer\n\n# Instantiate a Printer for custom configuration\nmsg = Printer(pretty=True, hide_tags=False)\n\nmsg.text(\"Starting application...\", icon=\"🚀\")\nmsg.good(\"Configuration loaded successfully.\")\nmsg.warn(\"API key not found, running in limited mode.\")\nmsg.fail(\"Database connection failed.\")\n\n# Print a divider\nmsg.divider(\"Summary\")\n\n# Using the global 'msg' instance (pre-configured)\nfrom wasabi import msg as default_msg\ndefault_msg.info(\"Default printer message.\")","lang":"python","description":"Initializes a `Printer` instance to format and print messages with various styles (good, warn, fail, info, text) and includes dividers. It also demonstrates using the pre-initialized `msg` object."},"warnings":[{"fix":"Upgrade your Python interpreter to version 3.6 or higher.","message":"Wasabi dropped support for Python 3.5 and earlier versions starting from v1.1.0. Ensure your environment uses Python 3.6 or newer.","severity":"breaking","affected_versions":">=1.1.0"},{"fix":"Avoid `exits=True` in non-critical scenarios or wrap the call in a `try-except SystemExit` block if you need to catch the exit.","message":"The `Printer.fail()` method, when called with `exits=True` or `exits=1`, will terminate the script by calling `sys.exit()` after printing. This is useful for critical failures but can halt execution prematurely if not intended.","severity":"gotcha","affected_versions":"All"},{"fix":"Use `msg = Printer(pretty=False, ...)` for customized behavior instead of the global `msg` object.","message":"The `from wasabi import msg` object is a pre-configured `Printer` instance. If you need custom settings (e.g., `pretty=False`, different colors), you must instantiate `from wasabi import Printer` directly.","severity":"gotcha","affected_versions":"All"},{"fix":"Evaluate your formatting requirements; for advanced table rendering, progress bars, or highly custom UI elements, other libraries may be more suitable.","message":"Wasabi is designed to be lightweight and specific for console output by Explosion's projects. For highly complex or full-featured formatting needs, consider alternative, more general-purpose libraries.","severity":"gotcha","affected_versions":"All"},{"fix":"Remove the `hide_tags` argument from your `Printer` instantiation. If you previously used it to disable tags, consider alternative methods for managing tag display.","message":"The `Printer` class no longer accepts the `hide_tags` argument. This functionality was removed in Wasabi v1.0.0.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Remove the `hide_tags` argument from the `Printer` constructor. If you intended to customize tag visibility, investigate the `tag_map` argument introduced in `wasabi` v1.0.0 as a replacement.","message":"The `Printer` constructor no longer accepts the `hide_tags` keyword argument. This argument was removed in `wasabi` v1.0.0 during a significant refactoring of the `Printer` class.","severity":"breaking","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-05-12T22:55:56.286Z","next_check":"2026-06-27T00:00:00.000Z","problems":[{"fix":"pip install wasabi","cause":"The 'wasabi' library is not installed in the current Python environment.","error":"ModuleNotFoundError: No module named 'wasabi'"},{"fix":"from wasabi import Printer\np = Printer()\np.text('Hello')","cause":"The 'Printer' class was used without being explicitly imported from the 'wasabi' package.","error":"NameError: name 'Printer' is not defined"},{"fix":"from wasabi import Printer\np = Printer()\np.info('This is an info message')","cause":"A method specific to an instantiated 'Printer' object (like 'info') is being incorrectly called directly on the 'wasabi' module, instead of on a 'Printer' instance.","error":"AttributeError: module 'wasabi' has no attribute 'info'"}],"ecosystem":"pypi","meta_description":null,"install_score":100,"install_tag":"verified","quickstart_score":null,"quickstart_tag":null,"pypi_latest":"1.1.3","cli_name":"","install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.07,"mem_mb":4.2,"disk_size":"18.0M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.1,"mem_mb":4.2,"disk_size":"18.0M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.5,"import_time_s":0.05,"mem_mb":4.2,"disk_size":"19M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.06,"mem_mb":4.2,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.1,"mem_mb":4.4,"disk_size":"19.9M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.12,"mem_mb":4.4,"disk_size":"19.9M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.6,"import_time_s":0.09,"mem_mb":4.4,"disk_size":"20M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.09,"mem_mb":4.4,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.09,"mem_mb":4.3,"disk_size":"11.8M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.11,"mem_mb":4.3,"disk_size":"11.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.5,"import_time_s":0.09,"mem_mb":4.3,"disk_size":"12M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.09,"mem_mb":4.3,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.09,"mem_mb":4.5,"disk_size":"11.5M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.1,"mem_mb":4.5,"disk_size":"11.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.4,"import_time_s":0.09,"mem_mb":4.3,"disk_size":"12M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.09,"mem_mb":4.3,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.07,"mem_mb":4.1,"disk_size":"17.5M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.09,"mem_mb":4.1,"disk_size":"17.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.7,"import_time_s":0.06,"mem_mb":4.1,"disk_size":"18M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.07,"mem_mb":4.1,"disk_size":"18M"}]},"quickstart_checks":{"last_tested":"2026-04-24","tag":null,"tag_description":null,"results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}}