======
Pyppyn
======
.. image:: https://img.shields.io/github/license/plus3it/pyppyn.svg
:target: ./LICENSE
:alt: License
.. image:: https://travis-ci.org/plus3it/pyppyn.svg?branch=master
:target: http://travis-ci.org/plus3it/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
.. image:: https://pullreminders.com/badge.svg
:target: https://pullreminders.com?ref=badge
:alt: Pull Reminder
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 `GravityBee <https://github.com/plus3it/gravitybee>`_ and `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.5
[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")
# Load config, install dependencies and import a module from the package
p.process_config()
print("Package requires:", p.get_required(include_extras_require=False))
Contribute
==========
``Pyppyn`` is hosted on `GitHub <http://github.com/plus3it/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 <CONTRIBUTING.md>`_.
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.5.0 - 2022.04.21
-------------------
* [DEPRECATION] Deprecates Python 3.6 support.
0.4.0 - 2021.08.02
-------------------
* [FEATURE] Add option to include/exclude extras_require from required packages,
using `get_required(include_extras_require=False)`.
0.3.17 - 2020.02.27
-------------------
* [FIX] Remove standard packages from setup.cfg install requires.
0.3.13 - 2020.01.15
-------------------
* [ENHANCEMENT] Remove pipenv files, update setup.cfg dependencies.
0.3.12 - 2020.01.14
-------------------
* [ENHANCEMENT] Update dependencies.
0.3.11 - 2019.05.06
-------------------
* [ENHANCEMENT] Update dependencies.
0.3.10 - 2019.02.05
-------------------
* [ENHANCEMENT] Perform work in '.pyppyn' directory.
0.3.9 - 2019.01.29
------------------
* [ENHANCEMENT] Minor cleanup.
* [ENHANCEMENT] Transfer to Plus3IT.
0.3.8 - 2019.01.24
------------------
* [ENHANCEMENT] Restructure Travis CI linting, testing, deploying so
deploy only happens when other stages complete successfully.
* [ENHANCEMENT] Improve speed of MacOS builds significantly.
0.3.7 - 2019.01.23
------------------
* [ENHANCEMENT] Minor change to Travis CI, remove AppVeyor.
0.3.6 - 2019.01.23
------------------
* [ENHANCEMENT] Replace print with log.
* [ENHANCEMENT] Improve compatibility across Windows, MacOS,
Linux; add tests to Travis CI.
0.3.5 - 2019.01.05
------------------
* [ENHANCEMENT] Fix flake8, pylint issues, add pipenv Pipfile, fix
compatibility with Python 3.7.
0.3.4 - 2018.06.20
------------------
* [FIX] Determine available module(s) from a package
was not working on Windows. This functionality is not
required by GravityBee so it was removed to allow
everything to work smoothly on Windows.
* [ENHANCEMENT] Clean up code, comments.
0.3.3 - 2018.05.07
------------------
* [ENHANCEMENT] Integrate with `Satsuki <https://github.com/plus3it/satsuki>`_ to simplify the release process.
* [ENHANCEMENT] Integrate with `GravityBee <https://github.com/plus3it/gravitybee>`_ to create standalone
executables for platforms.
0.3.2 - 2018.04.26
------------------
* [FIX] Minor tweak to way that work directories are created to
avoid namespace collisions using UUIDs.
0.3.1 - 2018.04.24
------------------
* [ENHANCEMENT] Add convenience methods for accessing configuration data.
* [FIX] Improve state handling.
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!
Raw data
{
"_id": null,
"home_page": "https://github.com/plus3it/pyppyn",
"name": "pyppyn",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "YakDriver",
"author_email": "projects@plus3it.com",
"download_url": "https://files.pythonhosted.org/packages/de/7c/b64e8e70b88fb494914f5bbf27ee7a582f8fcf56a98046ae4308bdecc411/pyppyn-0.5.5.tar.gz",
"platform": "Linux",
"description": "======\nPyppyn\n======\n\n.. image:: https://img.shields.io/github/license/plus3it/pyppyn.svg\n :target: ./LICENSE\n :alt: License\n.. image:: https://travis-ci.org/plus3it/pyppyn.svg?branch=master\n :target: http://travis-ci.org/plus3it/pyppyn\n :alt: Build Status\n.. image:: https://img.shields.io/pypi/pyversions/pyppyn.svg\n :target: https://pypi.python.org/pypi/pyppyn\n :alt: Python Version Compatibility\n.. image:: https://img.shields.io/pypi/v/pyppyn.svg\n :target: https://pypi.python.org/pypi/pyppyn\n :alt: Version\n.. image:: https://pullreminders.com/badge.svg\n :target: https://pullreminders.com?ref=badge\n :alt: Pull Reminder\n\nPyppyn helps you dynamically read setup configurations and load dependencies.\n\nSince ``pip`` is excellent at reading setup configurations and loading dependencies, why Pyppyn?\nIf you need programmatic access to dependency information, for\nexample, in dynamically creating standalone\napplications using `GravityBee <https://github.com/plus3it/gravitybee>`_ and `PyInstaller <http://www.pyinstaller.org>`_, Pyppyn can help you out.\n\nPyppyn can be used in scripts or using the CLI. Either way, it can be\ninstalled easily.\n\n.. code-block:: bash\n\n $ pip install pyppyn\n\nCLI\n===\n\n``Pyppyn`` will display help in typical fashion.\n\n.. code-block:: bash\n\n $ pyppyn --help\n\nExample\n=======\n\nTo parse the included test mini Python package (tests/minipippy),\nwith a setup.cfg and setup.py file, and install the required\ndependencies, you can use this command. This allows you to install\ndependencies without installing the package.\n\n.. code-block:: bash\n\n $ pyppyn --setup-path tests/minipippy --platform linux -v -a\n Pyppyn CLI, 0.3.5\n [Pyppyn] Platform: linux\n [Pyppyn] Setup path: tests/minipippy\n [Pyppyn] Reading configuration of tests/minipippy\n [Pyppyn] Building wheel from tests/minipippy\n [...]\n [Pyppyn] Extracting wheel (unzipping)\n [Pyppyn] Wheel archive found: ./minipippy-4.8.2-py2.py3-none-any.whl\n [Pyppyn] Unzipping: ./minipippy-4.8.2-py2.py3-none-any.whl\n [Pyppyn] Going through wheel directories\n [Pyppyn] Looking at wheel top level\n [Pyppyn] Reading names of console scripts\n [Pyppyn] Reading wheel metadata\n [Pyppyn] Cleaning up wheel\n [Pyppyn] This Python: 3.6\n [Pyppyn] Version from tests/minipippy : 4.8.2\n [Pyppyn] Unsupported marker [ six ]: platform_system == \"linux\" and python_version > \"3.3\"\n [Pyppyn] Install Requires:\n [Pyppyn] \tGenerally required: ['backoff', 'click', 'pyyaml']\n [Pyppyn] \tFor this OS: []\n [Pyppyn] \tFor this Python version: []\n [Pyppyn] \tUnparsed markers: ['six']\n [Pyppyn] \tOthers listed by not required (e.g., wrong platform): ['defusedxml', 'pypiwin32']\n [Pyppyn] Installing package: backoff\n [Pyppyn] Imported module: backoff\n [Pyppyn] Installing package: click\n [Pyppyn] Imported module: click\n [Pyppyn] Installing package: pyyaml\n [Pyppyn] Imported module: yaml\n\n\nFrom Python\n===========\n\nThis is a sample usage of Pyppyn from a Python script.\n\n.. code-block:: python\n\n import pyppyn\n\n # Create an instance\n p = pyppyn.ConfigRep(setup_path=\"tests/minipippy\")\n\n # Load config, install dependencies and import a module from the package\n p.process_config()\n\n print(\"Package requires:\", p.get_required(include_extras_require=False))\n\nContribute\n==========\n\n``Pyppyn`` is hosted on `GitHub <http://github.com/plus3it/pyppyn>`_ and is an open source project that welcomes contributions of all kinds from the community.\n\nFor more information about contributing, see `the contributor guidelines <CONTRIBUTING.md>`_.\n\nNamesake\n========\n\nThis module is named in\nhonor of Pippin, a companion, friend, Bichon Frise-Shih Tzu mix. He\npassed away on March 30, 2018 at the age of 12 after a battle with\ndiabetes, blindness, deafness, and loss of smell. Pleasant to the\nend, he was a great, great dog.\n\n\nCHANGE LOG\n==========\n\n0.5.0 - 2022.04.21\n-------------------\n* [DEPRECATION] Deprecates Python 3.6 support.\n\n0.4.0 - 2021.08.02\n-------------------\n* [FEATURE] Add option to include/exclude extras_require from required packages,\n using `get_required(include_extras_require=False)`.\n\n0.3.17 - 2020.02.27\n-------------------\n* [FIX] Remove standard packages from setup.cfg install requires.\n\n0.3.13 - 2020.01.15\n-------------------\n* [ENHANCEMENT] Remove pipenv files, update setup.cfg dependencies.\n\n0.3.12 - 2020.01.14\n-------------------\n* [ENHANCEMENT] Update dependencies.\n\n0.3.11 - 2019.05.06\n-------------------\n* [ENHANCEMENT] Update dependencies.\n\n0.3.10 - 2019.02.05\n-------------------\n* [ENHANCEMENT] Perform work in '.pyppyn' directory.\n\n0.3.9 - 2019.01.29\n------------------\n* [ENHANCEMENT] Minor cleanup.\n* [ENHANCEMENT] Transfer to Plus3IT.\n\n0.3.8 - 2019.01.24\n------------------\n* [ENHANCEMENT] Restructure Travis CI linting, testing, deploying so\n deploy only happens when other stages complete successfully.\n* [ENHANCEMENT] Improve speed of MacOS builds significantly.\n\n0.3.7 - 2019.01.23\n------------------\n* [ENHANCEMENT] Minor change to Travis CI, remove AppVeyor.\n\n0.3.6 - 2019.01.23\n------------------\n* [ENHANCEMENT] Replace print with log.\n* [ENHANCEMENT] Improve compatibility across Windows, MacOS,\n Linux; add tests to Travis CI.\n\n0.3.5 - 2019.01.05\n------------------\n* [ENHANCEMENT] Fix flake8, pylint issues, add pipenv Pipfile, fix\n compatibility with Python 3.7.\n\n0.3.4 - 2018.06.20\n------------------\n* [FIX] Determine available module(s) from a package\n was not working on Windows. This functionality is not\n required by GravityBee so it was removed to allow\n everything to work smoothly on Windows.\n* [ENHANCEMENT] Clean up code, comments.\n\n0.3.3 - 2018.05.07\n------------------\n* [ENHANCEMENT] Integrate with `Satsuki <https://github.com/plus3it/satsuki>`_ to simplify the release process.\n* [ENHANCEMENT] Integrate with `GravityBee <https://github.com/plus3it/gravitybee>`_ to create standalone\n executables for platforms.\n\n0.3.2 - 2018.04.26\n------------------\n* [FIX] Minor tweak to way that work directories are created to\n avoid namespace collisions using UUIDs.\n\n0.3.1 - 2018.04.24\n------------------\n* [ENHANCEMENT] Add convenience methods for accessing configuration data.\n* [FIX] Improve state handling.\n\n0.3.0 - 2018.04.23\n------------------\n* [ENHANCEMENT] Now provides support for packages with setup.py\n and/or setup.cfg configuations.\n\n0.2.3 - 2018.04.16\n------------------\n* [ENHANCEMENT] Improved usability by maintaining state of instances\n of ConfigRep, so methods can be called and object will know whether\n it is in the correct state to respond. It will call appropriate\n prerequisite methods if not.\n* [ENHANCEMENT] Provide a convenience method to give all required\n packages in one list.\n\n0.2.2 - 2018.04.13\n------------------\n* [ENHANCEMENT] Changed format of readme and changelog to RST, and\n simplified setup.py as a result.\n\n0.2.1 - 2018.04.13\n------------------\nProvides these capabilities (in limited form):\n\n* [ENHANCEMENT] Extract package dependencies from setup.cfg file.\n* [ENHANCEMENT] Determine which dependencies will be needed on the\n current os/python version.\n* [ENHANCEMENT] Find a module associated with a package.\n* [ENHANCEMENT] Install (and import) dependencies.\n\n0.1.0 - 2018.04.10\n------------------\n* Initial release!\n",
"bugtrack_url": null,
"license": "Apache Software License 2.0",
"summary": "Python package to dynamically read setup configurations and load dependencies.",
"version": "0.5.5",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "dfa459ef525182b268d0ae938e4f1b93",
"sha256": "47be07abdd58ca21d3514571b6759d3dd77ffb97d34d2a4f64b9ece0226799c2"
},
"downloads": -1,
"filename": "pyppyn-0.5.5-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "dfa459ef525182b268d0ae938e4f1b93",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 14406,
"upload_time": "2022-12-06T16:24:18",
"upload_time_iso_8601": "2022-12-06T16:24:18.125588Z",
"url": "https://files.pythonhosted.org/packages/4f/f1/56d144139d709595f69e7876d3e23392149b665bb8a430d89d1d7f42b552/pyppyn-0.5.5-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "9ff8a33513586550a853d038d5a48d51",
"sha256": "3a01a6a3184772d82bd8a36497501c98c3caae58e01e65093e072f482df1097c"
},
"downloads": -1,
"filename": "pyppyn-0.5.5.tar.gz",
"has_sig": false,
"md5_digest": "9ff8a33513586550a853d038d5a48d51",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20744,
"upload_time": "2022-12-06T16:24:20",
"upload_time_iso_8601": "2022-12-06T16:24:20.174837Z",
"url": "https://files.pythonhosted.org/packages/de/7c/b64e8e70b88fb494914f5bbf27ee7a582f8fcf56a98046ae4308bdecc411/pyppyn-0.5.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-06 16:24:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "plus3it",
"github_project": "pyppyn",
"travis_ci": true,
"coveralls": false,
"github_actions": true,
"lcname": "pyppyn"
}