Metadata-Version: 1.1
Name: hatch
Version: 0.11.0
Summary: A modern project, package, and virtual env manager
Home-page: https://github.com/ofek/hatch
Author: Ofek Lev
Author-email: ofekmeister@gmail.com
License: MIT/Apache-2.0
Description: Hatch
        =====
        
        .. image:: https://img.shields.io/pypi/v/hatch.svg?style=flat-square
            :target: https://pypi.org/project/hatch
            :alt: Latest PyPI version
        
        .. image:: https://img.shields.io/travis/ofek/hatch/master.svg?style=flat-square
            :target: https://travis-ci.org/ofek/hatch
            :alt: Travis CI
        
        .. image:: https://img.shields.io/codecov/c/github/ofek/hatch/master.svg?style=flat-square
            :target: https://codecov.io/gh/ofek/hatch
            :alt: Codecov
        
        .. image:: https://img.shields.io/pypi/pyversions/hatch.svg?style=flat-square
            :target: https://pypi.org/project/hatch
            :alt: Supported Python versions
        
        .. image:: https://img.shields.io/pypi/l/hatch.svg?style=flat-square
            :target: https://choosealicense.com/licenses
            :alt: License
        
        -----
        
        Hatch is a productivity tool designed to make your workflow easier and more
        efficient, while also reducing the number of other tools you need to know.
        It aims to make the 90% use cases as pleasant as possible.
        
        For me personally, Hatch has entirely replaced the manual (or entire!)
        use of these:
        
        - `Cookiecutter PyPackage <https://github.com/audreyr/cookiecutter-pypackage>`_
        - `pip <https://github.com/pypa/pip>`_
        - `virtualenv <https://github.com/pypa/virtualenv>`_
        - `pyenv <https://github.com/pyenv/pyenv>`_
        - `Pew <https://github.com/berdario/pew>`_
        - `inve <https://gist.github.com/datagrok/2199506>`_
        - `pytest`_
        - `Coverage.py <https://github.com/nedbat/coveragepy>`_
        - `twine <https://github.com/pypa/twine>`_
        - `bumpversion <https://github.com/peritus/bumpversion>`_
        - `zest.releaser <https://github.com/zestsoftware/zest.releaser>`_
        - `Incremental <https://github.com/twisted/incremental>`_
        - ``python setup.py ...``
        
        .. code-block::
        
                       /^\/^\
                     _|__|  O|
            \/     /~     \_/ \
             \____|__________/  \
                    \_______      \
                            `\     \                 \
                              |     |                  \
                             /      /                    \
                            /     /                       \
                          /      /                         \ \
                         /     /                            \  \
                       /     /             _----_            \   \
                      /     /           _-~      ~-_         |   |
                     (      (        _-~    _--_    ~-_     _/   |
                      \      ~-____-~    _-~    ~-_    ~-_-~    /
                        ~-_           _-~          ~-_       _-~
                           ~--______-~                ~-___-~
        
        
        .. contents:: **Table of Contents**
            :backlinks: none
        
        Features
        --------
        
        - Completely cross-platform (terminal colors too!) \\(\*_^)/
        - Configurable project creation! CI service files, readme format/badges, licenses, etc.
        - Easiest virtual environment management available
        - Activation of virtual envs without disruption of current environments
        - Ability to send commands to virtual envs without the need for activation
        - Changed prompts when in a virtual env
        - Installing/updating packages defaults to a per-user basis, allowing global
          usage with elevated privileges
        - Configurable semantic version bumping
        - Robust build/package cleanup
        - Easy testing with code coverage
        - Simple building and releasing for PyPI
        - All commands are environment-aware w.r.t. python/pip
        - Virtual envs can be the target for relevant commands
        - Editable packages can be the target for relevant commands
        
        Usage
        -----
        
        Starting a new project is as easy as:
        
        .. code-block:: bash
        
            $ hatch new my-app
            Created project `my-app`
        
        Now you have a fully functional package that can be built and distributed.
        
        .. code-block:: bash
        
            $ tree --dirsfirst my-app
            my-app
            ├── my_app
            │   └── __init__.py
            ├── tests
            │   └── __init__.py
            ├── LICENSE-APACHE
            ├── LICENSE-MIT
            ├── MANIFEST.in
            ├── README.rst
            ├── requirements.txt
            ├── setup.py
            └── tox.ini
        
            2 directories, 8 files
        
        You can also bump the version of most projects without any setup:
        
        .. code-block:: bash
        
            $ git clone -q https://github.com/requests/requests && cd requests
            $ hatch grow build
            Updated /home/ofek/requests/requests/__version__.py
            2.18.4 -> 2.18.4+build.1
            $ hatch grow fix
            Updated /home/ofek/requests/requests/__version__.py
            2.18.4+build.1 -> 2.18.5
            $ hatch grow pre
            Updated /home/ofek/requests/requests/__version__.py
            2.18.5 -> 2.18.5-rc.1
            $ hatch grow minor
            Updated /home/ofek/requests/requests/__version__.py
            2.18.5-rc.1 -> 2.19.0
            $ hatch grow major
            Updated /home/ofek/requests/requests/__version__.py
            2.19.0 -> 3.0.0
        
        Checking code coverage is a breeze:
        
        .. code-block:: bash
        
            $ git clone https://github.com/ofek/privy && cd privy
            $ hatch test -c
            ========================= test session starts ==========================
            platform linux -- Python 3.5.2, pytest-3.2.1, py-1.4.34, pluggy-0.4.0
            rootdir: /home/ofek/privy, inifile:
            plugins: xdist-1.20.0, mock-1.6.2, httpbin-0.0.7, forked-0.2, cov-2.5.1
            collected 10 items
        
            tests/test_privy.py ..........
        
            ====================== 10 passed in 4.34 seconds =======================
        
            Tests completed, checking coverage...
        
            Name                  Stmts   Miss Branch BrPart  Cover   Missing
            -----------------------------------------------------------------
            privy/__init__.py         1      0      0      0   100%
            privy/core.py            30      0      0      0   100%
            privy/utils.py           13      0      4      0   100%
            tests/__init__.py         0      0      0      0   100%
            tests/test_privy.py      57      0      0      0   100%
            -----------------------------------------------------------------
            TOTAL                   101      0      4      0   100%
        
        Creating virtual envs is incredibly simple:
        
        .. code-block:: bash
        
            $ hatch env my-app
            Already using interpreter /usr/bin/python3
            Successfully saved virtual env `my-app` to `/home/ofek/.virtualenvs/my-app`.
            $ hatch env -ll
            Virtual environments found in /home/ofek/.virtualenvs:
        
            my-app ->
              Version: 3.5.2
              Implementation: CPython
        
        and using them is just as fluid:
        
        .. code-block:: bash
        
            $ which python
            /usr/bin/python
            $ hatch use my-app
            (my-app) $ which python
            /home/ofek/.virtualenvs/my-app/bin/python
        
        Keep reading for so much more!
        
        Installation
        ------------
        
        Hatch is distributed on `PyPI`_ as a universal wheel and is available on
        Linux/macOS and Windows and supports Python 3.5+ and PyPy.
        
        .. code-block:: bash
        
            $ pip3 install --user hatch
        
        or simply ``pip`` if that already points to a Python 3 version.
        
        If ``hatch`` doesn't work on your system immediately after that, please
        run `this command <https://github.com/ofek/pybin#installation>`_ then
        `this command <https://github.com/ofek/pybin#pybin-put>`_.
        
        After the first installation, you may want to run ``hatch config --restore`` to
        ensure your config file is available.
        
        Guide
        -----
        
        - `Command reference <https://github.com/ofek/hatch/blob/master/COMMANDS.rst>`_
        - `Configuration <https://github.com/ofek/hatch/blob/master/CONFIG.rst>`_
        
        Contributing
        ------------
        
        TODO
        ^^^^
        
        *meta*
            - start using AppVeyor
            - next to the snake ascii art, put a ``hatch``\ ed egg (blocks ``1.0.0``)
        
        *project creation*
            - Support `AppVeyor <https://www.appveyor.com/>`_ and `CircleCI <https://circleci.com/>`_.
            - Minimally support `Mercurial <https://en.wikipedia.org/wiki/Mercurial>`_
        
        *Commands*
            - ``bench`` - use `<https://github.com/ionelmc/pytest-benchmark>`_ (blocks ``1.0.0``)
            - ``python`` - installs the desired version of Python. will work on each platform
            - ``style`` - maybe not needed. use `<https://github.com/PyCQA/flake8>`_
            - ``docs`` - maybe not needed. use `<https://github.com/sphinx-doc/sphinx/>`_
        
        License
        -------
        
        Hatch is distributed under the terms of both
        
        - `Apache License, Version 2.0 <https://choosealicense.com/licenses/apache-2.0>`_
        - `MIT License <https://choosealicense.com/licenses/mit>`_
        
        at your option.
        
        Credits
        -------
        
        - All the people who work on `Click <https://github.com/pallets/click>`_
        - All the people involved in the `Python packaging <https://github.com/pypa>`_ ecosystem
        - All the people involved in the `pytest`_ ecosystem
        - `Ned Batchelder <https://twitter.com/nedbat>`_, for his
          `Coverage.py <https://github.com/nedbat/coveragepy>`_ is the unsung heroic tool of the
          Python community. Without it, users would be exposed to more bugs before we are.
        - `Te-jé Rodgers <https://github.com/te-je>`_ for bestowing me the name ``hatch`` on `PyPI`_
        
        History
        -------
        
        Important changes are emphasized.
        
        master
        ^^^^^^
        
        0.11.0
        ^^^^^^
        
        - Package review for Fedora begins!
        - ``clean`` now also removes optimized bytecode files (``*.pyo``).
        
        0.10.0
        ^^^^^^
        
        - ``test`` is now environment-aware by default.
        - Faster virtual environment creation!
        - Full ``xonsh`` support :)
        - More informative output and coloring!
        
        0.9.1
        ^^^^^
        
        - Hatch now uses the proper ``virtualenv`` executable in all circumstances.
        
        0.9.0
        ^^^^^
        
        - Hatch now officially supports ``bash``, ``fish``, ``zsh``, ``cmd``,
          ``powershell``, and ``xonsh`` /\*_^\\
        - The location of virtual environments can now be
          `configured <https://github.com/ofek/hatch/blob/master/CONFIG.rst#virtual-env-location>`_!
        - **Breaking:** Virtual envs can no longer be nested.
        - **Breaking:** Default virtual env location is now ``~/.virtualenvs`` for
          better interoperability with other tools.
        
        0.8.0
        ^^^^^
        
        - You can now ``use`` a new temporary virtual env via the ``-t/--temp`` option!!!
        - Pretty terminal colors {^.^}
        - Nicer self updating for Linux.
        
        0.7.0
        ^^^^^
        
        - Upon project creation, it is now possible to automatically install it
          locally (editable) in a virtual environment.
        - If the ``release`` command is invoked with no path information, it will
          use a ``current_directory/dist`` directory if it exists before defaulting
          to the current directory.
        - **Fix/Change:** Shedding now uses ``/`` as a separator instead of a comma for names.
        
        View `all history <https://github.com/ofek/hatch/blob/master/HISTORY.rst>`_
        
        .. _pytest: https://github.com/pytest-dev
        .. _PyPI: https://pypi.org
        
Keywords: productivity,virtual env,packaging,package manager,cookiecutter,project template,bump version,versioning,cleanup,testing,cli
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
