Metadata-Version: 2.4
Name: pathquery
Version: 0.3.0
Summary: PathQuery is a tool to declaratively define file searches.
Home-page: https://github.com/crdoconnor/pathquery
Author: Colm O'Connor
Author-email: colm.oconnor.github@gmail.com
License: MIT
Keywords: path file search
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Libraries
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: path.py
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: requires-dist
Dynamic: summary

PathQuery
=========

PathQuery is a tool to declaratively define file searches that returns a list
of `path.py <https://github.com/jaraco/path.py>`_ Path objects.

Example
-------

Search for all files recursively except in the node_modules folder and change its perms:

.. code-block:: python

    from pathquery import pathquery

    for path in pathquery("yourdir").ext("js") - pathquery("yourdir/node_modules"):
        path.chmod(0755)

Install
-------

To use::

  $ pip install pathquery

API
---

Path properties can be inspected as part of the query:

.. code-block:: python

    pathquery("yourdir").is_dir()
    pathquery("yourdir").is_not_dir()
    pathquery("yourdir").is_symlink()
    pathquery("yourdir").is_not_symlink()

Queries are also chainable:

.. code-block:: python

    for path in pathquery("yourdir").ext("pyc").is_symlink() - pathq("yourdir/node_modules"):
        path.remove()
