Pretty and helpful exceptions, automatically
Project description
**Note:** *This a fork of the original* ``better_exceptions`` *library.
This fork is intended to fix some edge cases I reported (see*
`#47 <https://github.com/Qix-/better-exceptions/issues/47>`__), *but for
this it adds two dependencies to the project. The fixed errors are too
small to justify the addition of dependency to the main library, hence
this fork that I publish for personal use.*
better-exceptions |Travis|
==========================
Pretty and more helpful exceptions in Python, automatically.
.. image:: https://github.com/Delgan/better-exceptions/raw/master_fork/screenshot.png
:alt: Example screenshot of exceptions
Usage
-----
Install ``better_exceptions`` via pip:
.. code:: console
$ pip install better_exceptions
And set the ``BETTER_EXCEPTIONS`` environment variable to any value:
.. code:: bash
export BETTER_EXCEPTIONS=1 # Linux / OSX
setx BETTER_EXCEPTIONS 1 # Windows
That's it!
Python REPL (Interactive Shell)
~~~~~~~~~~~~~~
In order to use ``better_exceptions`` in the Python REPL, first install the
package (as instructed above) and run:
.. code:: console
$ python -m better_exceptions
Type "help", "copyright", "credits" or "license" for more information.
(BetterExceptionsConsole)
>>>
in order to drop into a ``better_exceptions``-enabled Python interactive shell.
Advanced Usage
~~~~~~~~~~~~~~
If you want to allow the entirety of values to be outputted instead of
being truncated to a certain amount of characters:
.. code:: python
import better_exceptions
better_exceptions.MAX_LENGTH = None
While using ``better_exceptions`` in production, do not forget to unset
the ``BETTER_EXCEPTIONS`` variable to avoid leaking sensitive data in
your logs.
Troubleshooting
---------------
If you do not see beautiful exceptions, first make sure that the
environment variable does exist. You can try ``echo $BETTER_EXCEPTIONS``
(Linux / OSX) or ``echo %BETTER_EXCEPTIONS%`` (Windows). On Linux and
OSX, the ``export`` command does not add the variable permanently, you
will probably need to edit the ``~/.profile`` file to make it
persistent. On Windows, you need to open a new terminal after the
``setx`` command.
Check that there is no conflict with another library, and that the
``sys.excepthook`` function has been correctly replaced with the
``better_exceptions``'s one. Sometimes other components can set up their
own exception handlers, such as the ``python3-apport`` Ubuntu package
that you may need to uninstall.
Make sure that you have not inadvertently deleted the
``better_exceptions_hook.pth`` file that should be in the same place as
the ``better_exceptions`` folder where all of your Python packages are
installed. Otherwise, try re-installing ``better_exceptions``.
You can also try to manually activate the hook by adding
``import better_exceptions; better_exceptions.hook()`` at the beginning
of your script.
Finally, if you still can not get this module to work, `open a new
issue <https://github.com/Qix-/better-exceptions/issues/new>`__ by
describing your problem precisely and detailing your configuration
(Python and ``better_exceptions`` versions, OS, code snippet,
interpeter, etc.) so that we can reproduce the bug you are experiencing.
License
=======
Copyright © 2017, Josh Junon. Licensed under the `MIT
license <LICENSE.txt>`__.
.. |Travis| image:: https://img.shields.io/travis/Delgan/better-exceptions.svg?style=flat-square
:target: https://travis-ci.org/Delgan/better-exceptions
This fork is intended to fix some edge cases I reported (see*
`#47 <https://github.com/Qix-/better-exceptions/issues/47>`__), *but for
this it adds two dependencies to the project. The fixed errors are too
small to justify the addition of dependency to the main library, hence
this fork that I publish for personal use.*
better-exceptions |Travis|
==========================
Pretty and more helpful exceptions in Python, automatically.
.. image:: https://github.com/Delgan/better-exceptions/raw/master_fork/screenshot.png
:alt: Example screenshot of exceptions
Usage
-----
Install ``better_exceptions`` via pip:
.. code:: console
$ pip install better_exceptions
And set the ``BETTER_EXCEPTIONS`` environment variable to any value:
.. code:: bash
export BETTER_EXCEPTIONS=1 # Linux / OSX
setx BETTER_EXCEPTIONS 1 # Windows
That's it!
Python REPL (Interactive Shell)
~~~~~~~~~~~~~~
In order to use ``better_exceptions`` in the Python REPL, first install the
package (as instructed above) and run:
.. code:: console
$ python -m better_exceptions
Type "help", "copyright", "credits" or "license" for more information.
(BetterExceptionsConsole)
>>>
in order to drop into a ``better_exceptions``-enabled Python interactive shell.
Advanced Usage
~~~~~~~~~~~~~~
If you want to allow the entirety of values to be outputted instead of
being truncated to a certain amount of characters:
.. code:: python
import better_exceptions
better_exceptions.MAX_LENGTH = None
While using ``better_exceptions`` in production, do not forget to unset
the ``BETTER_EXCEPTIONS`` variable to avoid leaking sensitive data in
your logs.
Troubleshooting
---------------
If you do not see beautiful exceptions, first make sure that the
environment variable does exist. You can try ``echo $BETTER_EXCEPTIONS``
(Linux / OSX) or ``echo %BETTER_EXCEPTIONS%`` (Windows). On Linux and
OSX, the ``export`` command does not add the variable permanently, you
will probably need to edit the ``~/.profile`` file to make it
persistent. On Windows, you need to open a new terminal after the
``setx`` command.
Check that there is no conflict with another library, and that the
``sys.excepthook`` function has been correctly replaced with the
``better_exceptions``'s one. Sometimes other components can set up their
own exception handlers, such as the ``python3-apport`` Ubuntu package
that you may need to uninstall.
Make sure that you have not inadvertently deleted the
``better_exceptions_hook.pth`` file that should be in the same place as
the ``better_exceptions`` folder where all of your Python packages are
installed. Otherwise, try re-installing ``better_exceptions``.
You can also try to manually activate the hook by adding
``import better_exceptions; better_exceptions.hook()`` at the beginning
of your script.
Finally, if you still can not get this module to work, `open a new
issue <https://github.com/Qix-/better-exceptions/issues/new>`__ by
describing your problem precisely and detailing your configuration
(Python and ``better_exceptions`` versions, OS, code snippet,
interpeter, etc.) so that we can reproduce the bug you are experiencing.
License
=======
Copyright © 2017, Josh Junon. Licensed under the `MIT
license <LICENSE.txt>`__.
.. |Travis| image:: https://img.shields.io/travis/Delgan/better-exceptions.svg?style=flat-square
:target: https://travis-ci.org/Delgan/better-exceptions
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for better_exceptions_fork-0.2.1.post3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24eeca912c9043bb8249f9ea7fa6305cdbe64eecbe094f8fe8bcc80f6208aa59 |
|
MD5 | df6e03ad92df248fc285673b452614f4 |
|
BLAKE2b-256 | ffbdbff6cafced8f54dfc1aab0dd7cfc9ae5635e0b0d70e387676dc1248eb60d |