Metadata-Version: 2.1
Name: pyppyn
Version: 0.3.0
Summary: Python package to dynamically read setup configurations and load dependencies.
Home-page: https://github.com/YakDriver/pyppyn
Author: YakDriver
Author-email: projects@plus3it.com
License: Apache Software License 2.0
Platform: Linux
Platform: Windows
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
Requires-Dist: distlib
Requires-Dist: setuptools
Requires-Dist: click

======
Pyppyn
======

.. image:: https://img.shields.io/github/license/YakDriver/pyppyn.svg
    :target: ./LICENSE
    :alt: License
.. image:: https://travis-ci.org/YakDriver/pyppyn.svg?branch=master
    :target: http://travis-ci.org/YakDriver/pyppyn
    :alt: Build Status
.. image:: https://img.shields.io/pypi/pyversions/pyppyn.svg
    :target: https://pypi.python.org/pypi/pyppyn
    :alt: Python Version Compatibility
.. image:: https://img.shields.io/pypi/v/pyppyn.svg
    :target: https://pypi.python.org/pypi/pyppyn
    :alt: Version

Pyppyn helps you dynamically read setup configurations and load dependencies.

Since ``pip`` is excellent at reading setup configurations and loading dependencies, why Pyppyn?
If you need programmatic access to dependency information, for example, in dynamically creating standalone
applications using `PyInstaller <http://www.pyinstaller.org>`_ Pyppyn can help you out.

Pyppyn can be used in scripts or using the CLI. Either way, it can be installed easily.

.. code-block:: bash

    $ pip install pyppyn

CLI
===

``Pyppyn`` will display help in typical fashion.

.. code-block:: bash

    $ pyppyn --help

Example
=======

To parse the included test mini Python package (tests/minipippy),
with a setup.cfg and setup.py file, and install the required
dependencies, you can use this command. This allows you to install
dependencies without installing the package.

.. code-block:: bash

    $ pyppyn --setup-path tests/minipippy --platform linux -v -a
    Pyppyn CLI, 0.3.0
    [Pyppyn] Verbose mode
    [Pyppyn] Platform: linux
    [Pyppyn] Setup path: tests/minipippy
    [Pyppyn] Reading configuration of tests/minipippy
    [Pyppyn] Building wheel from tests/minipippy
    [...]
    [Pyppyn] Extracting wheel (unzipping)
    [Pyppyn] Wheel archive found: ./minipippy-4.8.2-py2.py3-none-any.whl
    [Pyppyn] Unzipping: ./minipippy-4.8.2-py2.py3-none-any.whl
    [Pyppyn] Going through wheel directories
    [Pyppyn] Looking at wheel top level
    [Pyppyn] Reading names of console scripts
    [Pyppyn] Reading wheel metadata
    [Pyppyn] Cleaning up wheel
    [Pyppyn] This Python: 3.6
    [Pyppyn] Version from tests/minipippy : 4.8.2
    [Pyppyn] Unsupported marker [ six ]: platform_system == "linux" and python_version > "3.3"
    [Pyppyn] Install Requires:
    [Pyppyn] 	Generally required: ['backoff', 'click', 'pyyaml']
    [Pyppyn] 	For this OS: []
    [Pyppyn] 	For this Python version: []
    [Pyppyn] 	Unparsed markers: ['six']
    [Pyppyn] 	Others listed by not required (e.g., wrong platform): ['defusedxml', 'pypiwin32']
    [Pyppyn] Installing package: backoff
    [Pyppyn] Imported module: backoff
    [Pyppyn] Installing package: click
    [Pyppyn] Imported module: click
    [Pyppyn] Installing package: pyyaml
    [Pyppyn] Imported module: yaml


From Python
===========

This is a sample usage of Pyppyn from a Python script.

.. code-block:: python

    import pyppyn

    # Create an instance
    p = pyppyn.ConfigRep(setup_path="tests/minipippy",verbose=True)

    # Load config, install dependencies and import a module from the package
    p.process_config()

    print("Package requires:", p.get_required())

Contribute
==========

``Pyppyn`` is hosted on `GitHub <http://github.com/YakDriver/pyppyn>`_ and is an open source project that welcomes contributions of all kinds from the community.

For more information about contributing, see `the contributor guidelines <https://github.com/YakDriver/pyppyn/CONTRIBUTING.rst>`_.

Namesake
========

This module is named in
honor of Pippin, a companion, friend, Bichon Frise-Shih Tzu mix. He
passed away on March 30, 2018 at the age of 12 after a battle with
diabetes, blindness, deafness, and loss of smell. Pleasant to the
end, he was a great, great dog.


CHANGE LOG
==========

0.3.0 - 2018.04.23
------------------
* [ENHANCEMENT] Now provides support for packages with setup.py and/or setup.cfg configuations.

0.2.3 - 2018.04.16
------------------
* [ENHANCEMENT] Improved usability by maintaining state of instances of ConfigRep, so methods can be called and object will know whether it is in the correct state to respond. It will call appropriate prerequisite methods if not.
* [ENHANCEMENT] Provide a convenience method to give all required packages in one list.

0.2.2 - 2018.04.13
------------------
* [ENHANCEMENT] Changed format of readme and changelog to RST, and simplified setup.py as a result.

0.2.1 - 2018.04.13
------------------
Provides these capabilities (in limited form):

* [ENHANCEMENT] Extract package dependencies from setup.cfg file.
* [ENHANCEMENT] Determine which dependencies will be needed on the current os/python version.
* [ENHANCEMENT] Find a module associated with a package.
* [ENHANCEMENT] Install (and import) dependencies.

0.1.0 - 2018.04.10
------------------
* Initial release!

