Metadata-Version: 2.0
Name: path.py
Version: 11.0
Summary: A module wrapper for os.path
Home-page: https://github.com/jaraco/path.py
Author: Jason R. Coombs
Author-email: jaraco@jaraco.com
License: UNKNOWN
Description-Content-Type: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=2.7,!=3.1,!=3.2,!=3.3
Provides-Extra: docs
Requires-Dist: sphinx; extra == 'docs'
Requires-Dist: jaraco.packaging (>=3.2); extra == 'docs'
Requires-Dist: rst.linker (>=1.9); extra == 'docs'
Provides-Extra: testing
Requires-Dist: pytest (>=3.0); extra == 'testing'
Requires-Dist: pytest-sugar; extra == 'testing'
Requires-Dist: collective.checkdocs; extra == 'testing'
Requires-Dist: appdirs; extra == 'testing'
Requires-Dist: packaging; extra == 'testing'
Requires-Dist: pygments; extra == 'testing'

.. image:: https://img.shields.io/pypi/v/path.py.svg
   :target: https://pypi.org/project/path.py

.. image:: https://img.shields.io/pypi/pyversions/path.py.svg

.. image:: https://img.shields.io/travis/jaraco/path.py/master.svg
   :target: https://travis-ci.org/jaraco/path.py

.. image:: https://readthedocs.org/projects/pathpy/badge/?version=latest
   :target: https://pathpy.readthedocs.io/en/latest/?badge=latest

``path.py`` implements a path objects as first-class entities, allowing
common operations on files to be invoked on those path objects directly. For
example:

.. code-block:: python

    from path import Path
    d = Path('/home/guido/bin')
    for f in d.files('*.py'):
        f.chmod(0o755)

``path.py`` is `hosted at Github <https://github.com/jaraco/path.py>`_.

Find `the documentatation here <https://pathpy.readthedocs.io>`_.

Guides and Testimonials
=======================

Yasoob has written the Python 101 `Writing a Cleanup Script
<http://freepythontips.wordpress.com/2014/01/23/python-101-writing-a-cleanup-script/>`_
based on ``path.py``.

Installing
==========

Path.py may be installed using ``setuptools``, ``distribute``, or ``pip``::

    pip install path.py

The latest release is always updated to the `Python Package Index
<http://pypi.python.org/pypi/path.py>`_.

You may also always download the source distribution (zip/tarball), extract
it, and run ``python setup.py`` to install it.

Advantages
==========

Python 3.4 introduced
`pathlib <https://docs.python.org/3/library/pathlib.html>`_,
which shares many characteristics with ``path.py``. In particular,
it provides an object encapsulation for representing filesystem paths.
One may have imagined ``pathlib`` would supersede ``path.py``.

But the implementation and the usage quickly diverge, and ``path.py``
has several advantages over ``pathlib``:

- ``path.py`` implementsbits ``Path`` objects as a subclass of
  ``str`` (unicode on Python 2), and as a result these ``Path``
  objects may be passed directly to other APIs that expect simple
  text representations of paths, whereas with ``pathlib``, one
  must first cast values to strings before passing them to
  APIs unaware of pathlib.
- ``path.py`` goes beyond exposing basic functionality of a path
  and exposes commonly-used behaviors on a path, providing
  methods like ``rmtree`` (from shlib) and ``remove_p`` (remove
  a file if it exists).
- As a PyPI-hosted package, ``path.py`` is free to iterate
  more quickly than a stdlib package. Contributions are welcomed
  and encouraged.

Alternatives
============

In addition to
`pathlib <https://docs.python.org/3/library/pathlib.html>`_, the
`pylib project <https://pypi.org/project/py/>`_ implements a
`LocalPath <https://github.com/pytest-dev/py/blob/72601dc8bbb5e11298bf9775bb23b0a395deb09b/py/_path/local.py#L106>`_
class, which shares some behaviors and interfaces with ``path.py``.

Development
===========

To install an in-development version, use the Github links to clone or
download a snapshot of the latest code. Alternatively, if you have git
installed, you may be able to use ``pip`` to install directly from
the repository::

    pip install git+https://github.com/jaraco/path.py.git

Testing
=======

Tests are continuously run by Travis-CI: |BuildStatus|_

.. |BuildStatus| image:: https://secure.travis-ci.org/jaraco/path.py.png
.. _BuildStatus: http://travis-ci.org/jaraco/path.py

To run the tests, refer to the ``.travis.yml`` file for the steps run on the
Travis-CI hosts.

Releasing
=========

Tagged releases are automatically published to PyPI by Travis-CI, assuming
the tests pass.


