Metadata-Version: 2.1
Name: pytoolbox
Version: 14.0.0
Summary: Toolbox for Python scripts
Home-page: https://github.com/davidfischer-ch/pytoolbox
Author: David Fischer
Author-email: david@fisch3r.net
License: EUPL 1.1
Description: =========
        Pytoolbox
        =========
        
        .. image:: https://badge.fury.io/py/pytoolbox.png
           :target: http://badge.fury.io/py/pytoolbox
        
        .. image:: https://secure.travis-ci.org/davidfischer-ch/pytoolbox.png
           :target: http://travis-ci.org/davidfischer-ch/pytoolbox
        
        .. image:: https://coveralls.io/repos/davidfischer-ch/pytoolbox/badge.png
           :target: https://coveralls.io/r/davidfischer-ch/pytoolbox
        
        .. image:: https://landscape.io/github/davidfischer-ch/pytoolbox/master/landscape.png
           :target: https://landscape.io/github/davidfischer-ch/pytoolbox/master
        
        .. image:: https://badge.waffle.io/davidfischer-ch/pytoolbox.png?label=ready&title=Ready
           :target: https://waffle.io/davidfischer-ch/pytoolbox
           :alt: 'Stories in Ready'
        
        Afraid of red status ? Please click on the link, sometimes this is not my fault ;-)
        
        This module is a Toolbox for Python scripts.
        
        Documentation: https://pytoolbox.readthedocs.org
        
        Repository: https://github.com/davidfischer-ch/pytoolbox
        
        This library supports Python 3.6, 3.7, 3.8... and PyPy 3.6.
        
        ------------------------------------
        What the release number stands for ?
        ------------------------------------
        
        I do my best to follow this interesting recommendation : `Semantic Versioning 2.0.0 <http://semver.org/>`_
        
        -------------------
        How to install it ?
        -------------------
        
        Install some packages that are not handled by pip::
        
            $ sudo apt-get install gir1.2-gexiv2-0.10 libexiv2-dev liblzma-dev libxml2-dev libxslt-dev libyaml-dev libz-dev
            $ sudo apt-get install ffmpeg git-core python3-dev python3-gi python3-pip screen
        
        Make sure that pip is up-to-date (PIPception)::
        
            $ source /some/python3/venv/bin/active
            $ pip install --upgrade pip
        
        Then, you only need to run ``setup.py``::
        
            $ source /some/python3/venv/bin/activate
            $ python setup.py install
        
        --------------------------------
        How to enable features/modules ?
        --------------------------------
        
        Example::
        
            $ python setup.py install --help
        
            Common commands: (see '--help-commands' for more)
        
              setup.py build      will build the package underneath 'build/'
              setup.py install    will install the package
        
            Global options:
              --verbose (-v)  run verbosely (default)
              --quiet (-q)    run quietly (turns verbosity off)
              --dry-run (-n)  don't actually do anything
              --help (-h)     show detailed help message
              --no-user-cfg   ignore pydistutils.cfg in your home directory
        
            Options for 'WithExtra' command:
              ...
              --extra-all                          Install dependencies for All Modules.
              --extra-atlassian                    Install dependencies for Atlassian.
              --extra-aws                          Install dependencies for AWS.
              --extra-django                       Install dependencies for Django.
              --extra-django-filter                Install dependencies for Django Filter.
              --extra-django-formtools             Install dependencies for Django Form Tools.
              --extra-flask                        Install dependencies for Flask.
              --extra-imaging                      Install dependencies for Imaging.
              --extra-jinja2                       Install dependencies for Jinja2.
              --extra-logging                      Install dependencies for Logging.
              --extra-network                      Install dependencies for Networking.
              --extra-pandas                       Install dependencies for Pandas.
              --extra-rest-framework               Install dependencies for Django REST Framework.
              --extra-selenium                     Install dependencies for Selenium.
              --extra-smpte2022                    Install dependencies for SMPTE-2022.
              --extra-unittest                     Install dependencies for Unit Test.
              --extra-vision                       Install dependencies for Vision.
              --extra-voluptuous                   Install dependencies for Voluptuous.
              --extra-doc                          Install dependencies for Pytoolbox Docs.
              --extra-test                         Install dependencies for Pytoolbox Tests.
        
            usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
               or: setup.py --help [cmd1 cmd2 ...]
               or: setup.py --help-commands
               or: setup.py cmd --help
        
        
            $ python setup.py install --extra-smpte2022
        
        Another way to do this, with ``pip``::
        
            $ pip install -e .[django,flask,mongo,smpte2022]
        
        -----------------------
        How to check coverage ?
        -----------------------
        
        ::
        
            $ source /some/python3/venv/bin/activate
            $ pip install -e .[all,test]
            $ pytest
            $ xdg-open htmlcov/index.html
        
        Remarks:
        
        * All Django related modules are excluded from tests!
        * However I am using them with Django 1.8 up to 3.1.0.
        
        ---------------
        How to use it ?
        ---------------
        
        Here is an example ``hello.py`` using the cmd function provided by ``pytoolbox``::
        
            $ from pytoolbox.subprocess import cmd
            $ print(cmd('echo Hello World!')['stdout'])
        
        -------------------------------
        How to generate documentation ?
        -------------------------------
        
        The documentation is generated by `Sphinx <http://sphinx-doc.org/ext/autodoc.html>`_.
        In fact most of this documentation is extracted from the docstrings of the code.
        
        Here is the procedure::
        
            $ source /some/python3/venv/bin/activate
            $ pip install -e .[docs]
            $ xdg-open docs/build/html/index.html
        
        -------------------------------------------------
        How to add it to dependencies of my own project ?
        -------------------------------------------------
        
        Here is an example ``setup.py`` for a project called *my-cool-project*::
        
        	from setuptools import setup
        
        	setup(
              name='my-cool-project',
        		  version='0.8',
        		  author='Firstname Lastname',
        		  author_email='author@something.com',
        		  install_requires=['...', 'pytoolbox>=14<15', '...'],
        		  tests_require=['...', 'pytest', '...'],
        		  license='GPLv3',
        		  url='https://github.com/nickname/my-cool-project',
        		  packages=['my_cool_project'])
        
        
        See `pip vcs support <http://www.pip-installer.org/en/latest/logic.html#vcs-support>`_ to get further details about this.
        
        You also need to install ``git-core``, but it is probably already the case, at least on your development computer ;-)
        
        2014 - 2021 David Fischer
        
Keywords: celery,ffmpeg,django,flask,json,juju,mock,pillow,rsync,rtp,selenium,smpte 2022-1,screen,subprocess
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Framework :: Django
Classifier: Framework :: Flask
Classifier: License :: OSI Approved :: European Union Public Licence 1.1 (EUPL 1.1)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.6
Provides-Extra: atlassian
Provides-Extra: aws
Provides-Extra: django
Provides-Extra: django_filter
Provides-Extra: django_formtools
Provides-Extra: flask
Provides-Extra: imaging
Provides-Extra: jinja2
Provides-Extra: logging
Provides-Extra: network
Provides-Extra: pandas
Provides-Extra: rest_framework
Provides-Extra: selenium
Provides-Extra: smpte2022
Provides-Extra: unittest
Provides-Extra: vision
Provides-Extra: voluptuous
Provides-Extra: all
Provides-Extra: doc
Provides-Extra: test
