| Name | colored-traceback JSON |
| Version |
0.4.2
JSON |
| download |
| home_page | None |
| Summary | Automatically color uncaught exception tracebacks |
| upload_time | 2024-07-13 19:49:37 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | None |
| license | ISC |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
Colored Traceback
=================
Automatically color Python's uncaught exception tracebacks.
This one's for anybody who's ever struggled to read python's stacktraces on the
terminal. Something about the two-lines-per-frame approach really just makes
them tough to scan visually.
Compare this:
::
Traceback (most recent call last):
File "./workflowy.py", line 525, in <module>
main()
File "./workflowy.py", line 37, in main
projects = cli.load_json(args, input_is_pipe)
File "./workflowy.py", line 153, in load_json
return json.load(sys.stdin)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 290, in load
**kw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 383, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
To this:
.. code-block:: python
Traceback (most recent call last):
File "./workflowy.py", line 525, in <module>
main()
File "./workflowy.py", line 37, in main
projects = cli.load_json(args, input_is_pipe)
File "./workflowy.py", line 153, in load_json
return json.load(sys.stdin)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 290, in load
**kw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 383, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Installation
------------
Through pip:
.. code-block:: bash
pip install colored-traceback
Or directly:
.. code-block:: bash
git clone http://www.github.com/staticshock/colored-traceback.py
cd colored-traceback.py
pip install .
On Windows, which has no real support for ANSI escape sequences, this will
also install `colorama`.
Usage
-----
Colored Traceback can be executed as a module:
.. code-block:: bash
python -m colored_traceback somefile.py
Colored Traceback also works well within a script or even directly in the
interpreter REPL. Standard usage will color the output, unless it's being
redirected to a pipe:
.. code-block:: python
import colored_traceback
colored_traceback.add_hook()
If want to retain color even when stderr is being piped, tack on an
`always=True` argument:
.. code-block:: python
import colored_traceback
colored_traceback.add_hook(always=True)
There are also a couple of convenience imports, which get the footprint down to
one line:
.. code-block:: python
# Same as add_hook()
import colored_traceback.auto
# Same as add_hook(always=True)
import colored_traceback.always
It goes without saying that you might want to catch `ImportError`, making the
presence of the package optional:
.. code-block:: python
try:
import colored_traceback.auto
except ImportError:
pass
Raw data
{
"_id": null,
"home_page": null,
"name": "colored-traceback",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Anton Backer <olegov@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/07/80/afcf567031ab8565f8f8d2bd14b007d313ea3258e50394e85b10a405099c/colored-traceback-0.4.2.tar.gz",
"platform": null,
"description": "Colored Traceback\n=================\n\nAutomatically color Python's uncaught exception tracebacks.\n\nThis one's for anybody who's ever struggled to read python's stacktraces on the\nterminal. Something about the two-lines-per-frame approach really just makes\nthem tough to scan visually.\n\nCompare this:\n\n::\n\n Traceback (most recent call last):\n File \"./workflowy.py\", line 525, in <module>\n main()\n File \"./workflowy.py\", line 37, in main\n projects = cli.load_json(args, input_is_pipe)\n File \"./workflowy.py\", line 153, in load_json\n return json.load(sys.stdin)\n File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py\", line 290, in load\n **kw)\n File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py\", line 338, in loads\n return _default_decoder.decode(s)\n File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py\", line 365, in decode\n obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py\", line 383, in raw_decode\n raise ValueError(\"No JSON object could be decoded\")\n ValueError: No JSON object could be decoded\n\nTo this:\n\n.. code-block:: python\n\n Traceback (most recent call last):\n File \"./workflowy.py\", line 525, in <module>\n main()\n File \"./workflowy.py\", line 37, in main\n projects = cli.load_json(args, input_is_pipe)\n File \"./workflowy.py\", line 153, in load_json\n return json.load(sys.stdin)\n File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py\", line 290, in load\n **kw)\n File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py\", line 338, in loads\n return _default_decoder.decode(s)\n File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py\", line 365, in decode\n obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py\", line 383, in raw_decode\n raise ValueError(\"No JSON object could be decoded\")\n ValueError: No JSON object could be decoded\n\nInstallation\n------------\n\nThrough pip:\n\n.. code-block:: bash\n\n pip install colored-traceback\n\nOr directly:\n\n.. code-block:: bash\n\n git clone http://www.github.com/staticshock/colored-traceback.py\n cd colored-traceback.py\n pip install .\n\nOn Windows, which has no real support for ANSI escape sequences, this will\nalso install `colorama`.\n\nUsage\n-----\n\nColored Traceback can be executed as a module:\n\n.. code-block:: bash\n\n python -m colored_traceback somefile.py\n\nColored Traceback also works well within a script or even directly in the\ninterpreter REPL. Standard usage will color the output, unless it's being\nredirected to a pipe:\n\n.. code-block:: python\n\n import colored_traceback\n colored_traceback.add_hook()\n\nIf want to retain color even when stderr is being piped, tack on an\n`always=True` argument:\n\n.. code-block:: python\n\n import colored_traceback\n colored_traceback.add_hook(always=True)\n\nThere are also a couple of convenience imports, which get the footprint down to\none line:\n\n.. code-block:: python\n\n # Same as add_hook()\n import colored_traceback.auto\n\n # Same as add_hook(always=True)\n import colored_traceback.always\n\nIt goes without saying that you might want to catch `ImportError`, making the\npresence of the package optional:\n\n.. code-block:: python\n\n try:\n import colored_traceback.auto\n except ImportError:\n pass\n",
"bugtrack_url": null,
"license": "ISC",
"summary": "Automatically color uncaught exception tracebacks",
"version": "0.4.2",
"project_urls": {
"Source": "https://www.github.com/staticshock/colored-traceback.py"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "da2805e035e2d95dc469408bcb1edfbee5d4fcfe3b0a5fa3701c5f1f10c77c49",
"md5": "54684c0b208f9b96640603d8bad01fed",
"sha256": "8ad752a5b3c4e50bccd99d4a2d01e16d80926b519e07a85437ecbf8b4f8ce884"
},
"downloads": -1,
"filename": "colored_traceback-0.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "54684c0b208f9b96640603d8bad01fed",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 5502,
"upload_time": "2024-07-13T19:49:35",
"upload_time_iso_8601": "2024-07-13T19:49:35.486712Z",
"url": "https://files.pythonhosted.org/packages/da/28/05e035e2d95dc469408bcb1edfbee5d4fcfe3b0a5fa3701c5f1f10c77c49/colored_traceback-0.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0780afcf567031ab8565f8f8d2bd14b007d313ea3258e50394e85b10a405099c",
"md5": "b3660a83cbf8b75f76435fdecb1449d0",
"sha256": "ecbc8e41f0712ea81931d7cd436b8beb9f3eff1595d2498f183e0ef69b56fe84"
},
"downloads": -1,
"filename": "colored-traceback-0.4.2.tar.gz",
"has_sig": false,
"md5_digest": "b3660a83cbf8b75f76435fdecb1449d0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4707,
"upload_time": "2024-07-13T19:49:37",
"upload_time_iso_8601": "2024-07-13T19:49:37.027550Z",
"url": "https://files.pythonhosted.org/packages/07/80/afcf567031ab8565f8f8d2bd14b007d313ea3258e50394e85b10a405099c/colored-traceback-0.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-13 19:49:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "staticshock",
"github_project": "colored-traceback.py",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "colored-traceback"
}