whichcraft 0.6.1
This package provides cross-platform cross-python shutil.which functionality.
License: BSD
Keywords: whichcraft

===============================
whichcraft
===============================

.. image:: https://badge.fury.io/py/whichcraft.svg
    :target: http://badge.fury.io/py/whichcraft

.. image:: https://travis-ci.org/pydanny/whichcraft.svg?branch=master
        :target: https://travis-ci.org/pydanny/whichcraft

.. image:: https://codecov.io/gh/pydanny/whichcraft/branch/master/graph/badge.svg
        :target: http://codecov.io/github/pydanny/whichcraft?branch=master

.. image:: https://ci.appveyor.com/api/projects/status/v9coijayykhkeu4d?svg=true
        :target: https://ci.appveyor.com/project/pydanny/whichcraft

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/ambv/black
    :alt: Code style: black

::

    That code in my care
    That sly command-line stare
    That strips my operating system bare
    It's whichcraft

This package provides cross-platform cross-python ``shutil.which`` functionality.

Usage
=====

On Linux, Mac, Windows for Python 2.7 or any of the maintained 3s:

.. code-block:: python

    >>> from whichcraft import which
    >>> which('date')
    '/bin/date'
    >>> which('calendar')
    '/bin/calendar'
    >>> which('cookiecutter')
    '/Users/pydanny/.envs/fun/bin/cookiecutter'
    >>> which('a-made-up-name') is None
    True


Notes
=====

This is a shim of the ``shutil.which`` function that's designed to work across
multiple versions of Python and inside of windows. The code for Python 2.x is
based on Python 3 code that I extracted from source. I originally did this for
Cookiecutter_ but pulled it out in order to reduce line count for that project.

Edgecase: Date function works perfectly on mac os and linux system, hence returns string.
But is an in-built function in windows hence returns none as value when called in
windows.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter

Sponsor
=======

This work is sponsored by BriteCore, which does awesome things with Python, Django, JavaScript, and AWS. `Apply for a job if you're interested!`_

.. image:: https://avatars1.githubusercontent.com/u/967173?s=200&v=4
    :target: http://engineering-application.britecore.com/
    :alt: Code style: black

.. _BriteCore: https://www.britecore.com/
.. _`Apply for a job if you're interested!`: http://engineering-application.britecore.com/


History
=========

0.6.1 (2019-09-06)
---------------------

* Fix versioning issue

0.6.0 (2019-07-12)
---------------------

* Remove lingering unicode issues
* Add BriteCore as a sponsor

0.5.3 (2018-10-10)
---------------------

* Add BriteCore as a sponsor

0.5.2 (2018-10-09)
---------------------

* Remove any mention of 3.2 and 3.3

0.5.1 (2018-10-09)
---------------------

* Fix setup.py so it works with older Python

0.5.0 (2018-10-09)
---------------------

* Add 3.7 support thanks to @rooterkyberian
* Remove any mention of 2.6

0.4.2 (2018-04-16)
---------------------

* Use black for code formatting
* Move status to production/stable
* Drop Python 2.6 and 3.3 support

0.4.1 (2017-04-25)
---------------------

* Added tests to support Python 3.6

0.3.1 (2016-05-10)
---------------------

* Now testing for `which` directly, so we can support versions of Python 3 before 3.3 (@nickcoghlan)

0.3.1 (2016-04-24)
---------------------

* Correcting version in whichcraft.py

0.3.0 (2016-04-24)
---------------------

* Include tests in release source tarball (@Edwardbetts)

0.2.0 (2016-04-23)
---------------------

* Python 3.5 compatability

0.1.1 (2015-09-09)
---------------------

* Added lyrics

0.1.0 (2015-09-09)
---------------------

* First release on PyPI.