Metadata-Version: 2.1
Name: pynpm
Version: 0.1.2
Summary: Python interface to your NPM and package.json.
Home-page: https://github.com/inveniosoftware/pynpm
Author: CERN
Author-email: info@inveniosoftware.org
License: BSD
Keywords: npm node package.json
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Development Status :: 1 - Planning
Provides-Extra: all
Requires-Dist: Sphinx (>=1.5.1) ; extra == 'all'
Requires-Dist: check-manifest (>=0.25) ; extra == 'all'
Requires-Dist: coverage (>=4.0) ; extra == 'all'
Requires-Dist: isort (>=4.2.2) ; extra == 'all'
Requires-Dist: pydocstyle (>=1.0.0) ; extra == 'all'
Requires-Dist: pytest-cache (>=1.0) ; extra == 'all'
Requires-Dist: pytest-cov (>=1.8.0) ; extra == 'all'
Requires-Dist: pytest-pep8 (>=1.0.6) ; extra == 'all'
Requires-Dist: pytest (>=2.8.0) ; extra == 'all'
Provides-Extra: docs
Requires-Dist: Sphinx (>=1.5.1) ; extra == 'docs'
Provides-Extra: tests
Requires-Dist: check-manifest (>=0.25) ; extra == 'tests'
Requires-Dist: coverage (>=4.0) ; extra == 'tests'
Requires-Dist: isort (>=4.2.2) ; extra == 'tests'
Requires-Dist: pydocstyle (>=1.0.0) ; extra == 'tests'
Requires-Dist: pytest-cache (>=1.0) ; extra == 'tests'
Requires-Dist: pytest-cov (>=1.8.0) ; extra == 'tests'
Requires-Dist: pytest-pep8 (>=1.0.6) ; extra == 'tests'
Requires-Dist: pytest (>=2.8.0) ; extra == 'tests'

=======
 PyNPM
=======

.. image:: https://img.shields.io/travis/inveniosoftware/pynpm.svg
        :target: https://travis-ci.org/inveniosoftware/pynpm

.. image:: https://img.shields.io/coveralls/inveniosoftware/pynpm.svg
        :target: https://coveralls.io/r/inveniosoftware/pynpm

.. image:: https://img.shields.io/github/tag/inveniosoftware/pynpm.svg
        :target: https://github.com/inveniosoftware/pynpm/releases

.. image:: https://img.shields.io/pypi/dm/pynpm.svg
        :target: https://pypi.python.org/pypi/pynpm

.. image:: https://img.shields.io/github/license/inveniosoftware/pynpm.svg
        :target: https://github.com/inveniosoftware/pynpm/blob/master/LICENSE

Python interface to your NPM and package.json.

Further documentation is available on https://pynpm.readthedocs.io/.

Installation
============

PyNPM is on PyPI so all you need is:

.. code-block:: console

   $ pip install pynpm

Usage
=====

First point PyNPM to your ``package.json``:

.. code-block:: python

    from pynpm import NPMPackage
    pkg = NPMPackage('path/to/package.json')

Now you can run e.g. ``npm install`` from within Python:

.. code-block:: python

    pkg.install()

Arguments are also support so you can run e.g. ``npm run build --report``:

.. code-block:: python

    pkg.run_script('build', '--report')

Want to use ``yarn`` instead?

.. code-block:: python

    from pynpm import YarnPackage
    pkg = YarnPackage('path/to/package.json')
    pkg.install()

By default NPM output is piped through and the function call will wait for NPM
to finish. If you want to silence the output or interact with process pass
``wait=False`` and you will get a subprocess.POpen object back:

.. code-block:: python

    p = pkg.install(wait=False)
    p.wait()

By default you can run the following NPM commands:

* ``build``
* ``init``
* ``install``
* ``link``
* ``run-script``
* ``start``
* ``stop``
* ``test``

You can also run other NPM commands or restrict which commands you can run:

.. code-block:: python

    pkg = NPMPackage('path/to/package.json', commands=['install'])


Changes
=======

Version 0.1.2 (released 2020-05-06)

- Deprecated Python versions lower than 3.6.0. Now supporting 3.6.0 and 3.7.0.

Version 0.1.1 (released 2017-05-16)

- Fix problem with testing click CLI output.

Version 0.1.0 (released 2017-05-12)

- Initial public release.


