Metadata-Version: 2.0
Name: devpy
Version: 0.1.7
Summary: Tools to help development and debugging
Home-page: https://github.com/sametmax/devpy/
Author: Sam & Max
Author-email: lesametlemax@gmail.com
License: MIT
Keywords: devpy dev
Platform: UNKNOWN
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Requires-Dist: Pygments
Requires-Dist: colorama
Requires-Dist: colored-traceback
Requires-Dist: colorlog

DEVPY
-----

Devpy is a set of tools to ease Python development.

Install
=========

::

    pip install devpy

Quick demo
===========

Devpy provide a quick dev setup for logging that you can replace later by a more robust solution:

.. code:: python

    import devpy.develop as log

    log.info('This is an info')
    log.warning('This is a warning')
    log.error('This is an error')
    log.critical('This is a critical error')

    log.info('Now let me crash the program. This stack trace is automatically in the log file:')

    import codecs

    codecs.open('/thisdoesnotexist')


This gives:


.. image:: screenshot.png


Autolog
========

Setuping proper loging is tedious, so you may want to do it later, but you wish you could get basic logging right now:

.. code:: python

    import devpy

    # Get a logger that automatically log to console and a rotating file
    # The rotating file is setup in the temp directory of your system, in
    # a subdir named after your script name.
    # Logs are colored in the console according their level.
    # The file path is printed at the begining of the program.

    log = devpy.autolog() # log is a regular stdlib logger object

    # start logging:

    log.info('Yes')

Once you have time to setup logging seriously, you can just replace the autolog with a regular custom Python logger, and all your logs will still work.

Setting the environment variable DEVPY_LOG_LEVEL to an integer or a level name (debug, info, error, warning, critical...) will set the autolog log to it.

Setting the environment variable DEVPY_COLOR_LOG to 0 disable the color in the log.

autolog parameters:

- level (default=-1): the general log level
- name (defaul=name of the root module): the name of the log file
- path (default=OS temp dir + name): path to the log file
- log_on_crash (default=True): add a hook to log the stack trace in case of a crash
- log_filename (default=True): log log file pat at the program start
- color_log (default=True): add colors to the log


Stacktrace helper
=================

Format the stack trace so that:

- it separates the various logicial blocs
- it emphasis the lines of your program and not the stdlb
- lines of your program are syntax highlighted

Just do:

.. code:: python

    import devpy
    devpy.color_traceback()


All helpers at once
===================

Two ways:

.. code:: python

    import devpy
    log = devpy.dev_mode()  # can set color_traceback=True, autolog=True

    # or just
    # import devpy.develop as log
    # for a one liner to activate it all

