diff --git a/AUTHORS.rst b/AUTHORS.rst
index 4623a7d..17ee91a 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -12,3 +12,4 @@ Contributors
 
 * Edward Betts (@EdwardBetts)
 * Nick Coghlan (@ncoghlan)
+* rooterkyberian (@rooterkyberian)
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index 024b002..82eabdf 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -74,13 +74,16 @@ Ready to contribute? Here's how to set up `whichcraft` for local development.
 
    Now you can make your changes locally.
 
-5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox::
+5. Run `black` (python 3.6 or highter) when making any changes to enforce code style::
 
-    $ flake8 whichcraft.py test_whichcraft.py
-    $ py.test
+    $ black .
+
+5. When you're done making changes, check the tests, including testing other Python versions with tox::
+
+    $ pytest
     $ tox
 
-   To get flake8 and tox, just pip install them into your virtualenv.
+   To get pytest and tox, just pip install them into your virtualenv.
 
 6. Commit your changes and push your branch to GitHub::
 
@@ -99,13 +102,6 @@ Before you submit a pull request, check that it meets these guidelines:
 2. If the pull request adds functionality, the docs should be updated. Put
    your new functionality into a function with a docstring, and add the
    feature to the list in README.rst.
-3. The pull request should work for Python 2.6, 2.7, 3.3, and 3.4, and for PyPy. Check
+3. The pull request should work for Python 2.7, 3.3, 3.4, 3.5, 3.6, 3.7 and for PyPy. Check
    https://travis-ci.org/pydanny/whichcraft/pull_requests
    and make sure that the tests pass for all supported Python versions.
-
-Tips
-----
-
-To run a subset of tests::
-
-    TODO
\ No newline at end of file
diff --git a/HISTORY.rst b/HISTORY.rst
index 19bf3d9..0fc027f 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -1,12 +1,34 @@
 History
 =========
 
+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)
 ---------------------
 
diff --git a/PKG-INFO b/PKG-INFO
index 03ddbaf..ba2ee49 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: whichcraft
-Version: 0.4.1
+Version: 0.5.2
 Summary: This package provides cross-platform cross-python shutil.which functionality.
 Home-page: https://github.com/pydanny/whichcraft
 Author: Daniel Roy Greenfeld
@@ -16,12 +16,16 @@ Description: ===============================
         .. image:: https://travis-ci.org/pydanny/whichcraft.svg?branch=master
                 :target: https://travis-ci.org/pydanny/whichcraft
         
-        .. image:: http://codecov.io/github/pydanny/whichcraft/coverage.svg?branch=master
+        .. 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
@@ -34,12 +38,12 @@ Description: ===============================
         Usage
         =====
         
-        On Linux, Mac, Windows for Python 2.6, 2.7, or any of the 3s:
+        On Linux, Mac, Windows for Python 2.7 or any of the maintained 3s:
         
         .. code-block:: python
         
-            >>> from whichcraft import which
-            >>> which('date')
+            >>> from whichcraft import which
+            >>> which('date')
             '/bin/date'
             >>> which('calendar')
             '/bin/calendar'
@@ -63,12 +67,34 @@ Description: ===============================
         History
         =========
         
+        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)
         ---------------------
         
@@ -101,15 +127,14 @@ Description: ===============================
         
 Keywords: whichcraft
 Platform: UNKNOWN
-Classifier: Development Status :: 3 - Alpha
+Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: BSD License
 Classifier: Natural Language :: English
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.2
-Classifier: Programming Language :: Python :: 3.3
 Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
diff --git a/README.rst b/README.rst
index 04edb7b..abad344 100644
--- a/README.rst
+++ b/README.rst
@@ -8,12 +8,16 @@ whichcraft
 .. image:: https://travis-ci.org/pydanny/whichcraft.svg?branch=master
         :target: https://travis-ci.org/pydanny/whichcraft
 
-.. image:: http://codecov.io/github/pydanny/whichcraft/coverage.svg?branch=master
+.. 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
@@ -26,12 +30,12 @@ This package provides cross-platform cross-python ``shutil.which`` functionality
 Usage
 =====
 
-On Linux, Mac, Windows for Python 2.6, 2.7, or any of the 3s:
+On Linux, Mac, Windows for Python 2.7 or any of the maintained 3s:
 
 .. code-block:: python
 
-    >>> from whichcraft import which
-    >>> which('date')
+    >>> from whichcraft import which
+    >>> which('date')
     '/bin/date'
     >>> which('calendar')
     '/bin/calendar'
diff --git a/debian/changelog b/debian/changelog
index 62c89a6..a9e16f1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,13 @@
-whichcraft (0.4.1-2) UNRELEASED; urgency=medium
+whichcraft (0.5.2-1) UNRELEASED; urgency=medium
 
+  [ Ondřej Nový ]
   * d/control: Set Vcs-* to salsa.debian.org
   * d/copyright: Use https protocol in Format field
 
- -- Ondřej Nový <onovy@debian.org>  Tue, 13 Feb 2018 09:58:02 +0100
+  [ Debian Janitor ]
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Thu, 27 Jun 2019 04:00:50 +0000
 
 whichcraft (0.4.1-1) unstable; urgency=medium
 
diff --git a/setup.cfg b/setup.cfg
index 414c525..087e850 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -7,5 +7,4 @@ universal = 1
 [egg_info]
 tag_build = 
 tag_date = 0
-tag_svn_revision = 0
 
diff --git a/setup.py b/setup.py
index 8cd42cb..ce38a61 100644
--- a/setup.py
+++ b/setup.py
@@ -9,63 +9,69 @@ try:
 except ImportError:
     from distutils.core import setup
 
-version = "0.4.1"
+version = "0.5.2"
 
-if sys.argv[-1] == 'publish':
+if sys.argv[-1] == "publish":
     try:
         import wheel
     except ImportError:
         raise ImportError("Fix: pip install wheel")
-    os.system('python setup.py sdist bdist_wheel upload')
-    print("You probably want to also tag the version now:")
-    print("  git tag -a %s -m 'version %s'" % (version, version))
-    print("  git push --tags")
+    try:
+        import twine
+    except ImportError:
+        raise ImportError("Fix: pip install twine")        
+
+    os.system("python setup.py sdist bdist_wheel")
+    os.system("twine upload dist/*")
+    print("You might want to tag a release now")
     sys.exit()
 
-if sys.argv[-1] == 'tag':
+if sys.argv[-1] == "tag":
     print("Tagging the version on github:")
     os.system("git tag -a %s -m 'version %s'" % (version, version))
     os.system("git push --tags")
     sys.exit()
 
-readme = open('README.rst').read()
-history = open('HISTORY.rst').read().replace('.. :changelog:', '')
+readme = open("README.rst").read()
+history = open("HISTORY.rst").read().replace(".. :changelog:", "")
+
 
 def get_requirements(filename):
     f = open(filename).read()
     reqs = [
-            # loop through list of requirements
-            x.strip() for x in f.splitlines()
-                # filter out comments and empty lines
-                if not x.strip().startswith('#')
-            ]
+        # loop through list of requirements
+        x.strip()
+        for x in f.splitlines()
+        # filter out comments and empty lines
+        if not x.strip().startswith("#")
+    ]
     return reqs
 
+
 setup(
-    name='whichcraft',
+    name="whichcraft",
     version=version,
     description="""This package provides cross-platform cross-python shutil.which functionality.""",
-    long_description=readme + '\n\n' + history,
-    author='Daniel Roy Greenfeld',
-    author_email='pydanny@gmail.com',
-    url='https://github.com/pydanny/whichcraft',
+    long_description=readme + "\n\n" + history,
+    author="Daniel Roy Greenfeld",
+    author_email="pydanny@gmail.com",
+    url="https://github.com/pydanny/whichcraft",
     include_package_data=True,
-    py_modules=['whichcraft'],
+    py_modules=["whichcraft"],
     license="BSD",
     zip_safe=False,
-    keywords='whichcraft',
+    keywords="whichcraft",
     classifiers=[
-        'Development Status :: 3 - Alpha',
-        'Intended Audience :: Developers',
-        'License :: OSI Approved :: BSD License',
-        'Natural Language :: English',
-        'Programming Language :: Python :: 2',
-        'Programming Language :: Python :: 2.7',
-        'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.2',
-        'Programming Language :: Python :: 3.3',
-        'Programming Language :: Python :: 3.4',
-        'Programming Language :: Python :: 3.5',
-        'Programming Language :: Python :: 3.6',
+        "Development Status :: 5 - Production/Stable",
+        "Intended Audience :: Developers",
+        "License :: OSI Approved :: BSD License",
+        "Natural Language :: English",
+        "Programming Language :: Python :: 2",
+        "Programming Language :: Python :: 2.7",
+        "Programming Language :: Python :: 3",
+        "Programming Language :: Python :: 3.4",
+        "Programming Language :: Python :: 3.5",
+        "Programming Language :: Python :: 3.6",
+        "Programming Language :: Python :: 3.7",
     ],
 )
diff --git a/test_whichcraft.py b/test_whichcraft.py
index 239944d..7d388a0 100644
--- a/test_whichcraft.py
+++ b/test_whichcraft.py
@@ -5,7 +5,7 @@ from whichcraft import which
 
 
 def test_existing_command():
-    cmd = which('date')
+    cmd = which("date")
     assert cmd
     assert os.path.exists(cmd)
     assert os.access(cmd, os.F_OK | os.X_OK)
@@ -13,8 +13,8 @@ def test_existing_command():
 
 
 def test_non_existing_command():
-    assert which('stringthatisntashellcommand') is None
+    assert which("stringthatisntashellcommand") is None
 
 
-if __name__ == '__main__':
+if __name__ == "__main__":
     pytest.main()
diff --git a/whichcraft.egg-info/PKG-INFO b/whichcraft.egg-info/PKG-INFO
index 03ddbaf..ba2ee49 100644
--- a/whichcraft.egg-info/PKG-INFO
+++ b/whichcraft.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: whichcraft
-Version: 0.4.1
+Version: 0.5.2
 Summary: This package provides cross-platform cross-python shutil.which functionality.
 Home-page: https://github.com/pydanny/whichcraft
 Author: Daniel Roy Greenfeld
@@ -16,12 +16,16 @@ Description: ===============================
         .. image:: https://travis-ci.org/pydanny/whichcraft.svg?branch=master
                 :target: https://travis-ci.org/pydanny/whichcraft
         
-        .. image:: http://codecov.io/github/pydanny/whichcraft/coverage.svg?branch=master
+        .. 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
@@ -34,12 +38,12 @@ Description: ===============================
         Usage
         =====
         
-        On Linux, Mac, Windows for Python 2.6, 2.7, or any of the 3s:
+        On Linux, Mac, Windows for Python 2.7 or any of the maintained 3s:
         
         .. code-block:: python
         
-            >>> from whichcraft import which
-            >>> which('date')
+            >>> from whichcraft import which
+            >>> which('date')
             '/bin/date'
             >>> which('calendar')
             '/bin/calendar'
@@ -63,12 +67,34 @@ Description: ===============================
         History
         =========
         
+        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)
         ---------------------
         
@@ -101,15 +127,14 @@ Description: ===============================
         
 Keywords: whichcraft
 Platform: UNKNOWN
-Classifier: Development Status :: 3 - Alpha
+Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: BSD License
 Classifier: Natural Language :: English
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.2
-Classifier: Programming Language :: Python :: 3.3
 Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
diff --git a/whichcraft.py b/whichcraft.py
index d7b06f4..5f0d1a0 100644
--- a/whichcraft.py
+++ b/whichcraft.py
@@ -1,15 +1,15 @@
 # -*- coding: utf-8 -*-
 
-__author__ = 'Daniel Roy Greenfeld'
-__email__ = 'pydanny@gmail.com'
-__version__ = '0.4.1'
+__author__ = "Daniel Roy Greenfeld"
+__email__ = "pydanny@gmail.com"
+__version__ = "0.5.2"
 
 import os
 import sys
 
-try:    # Forced testing
+try:  # Forced testing
     from shutil import which
-except ImportError:    # Forced testing
+except ImportError:  # Forced testing
     # Versions prior to Python 3.3 don't have shutil.which
 
     def which(cmd, mode=os.F_OK | os.X_OK, path=None):
@@ -24,9 +24,9 @@ except ImportError:    # Forced testing
         # Check that a given file can be accessed with the correct mode.
         # Additionally check that `file` is not a directory, as on Windows
         # directories pass the os.access check.
+
         def _access_check(fn, mode):
-            return (os.path.exists(fn) and os.access(fn, mode) and
-                    not os.path.isdir(fn))
+            return os.path.exists(fn) and os.access(fn, mode) and not os.path.isdir(fn)
 
         # If we're given a path with a directory part, look it up directly
         # rather than referring to PATH directories. This includes checking
@@ -34,12 +34,14 @@ except ImportError:    # Forced testing
         if os.path.dirname(cmd):
             if _access_check(cmd, mode):
                 return cmd
+
             return None
 
         if path is None:
             path = os.environ.get("PATH", os.defpath)
         if not path:
             return None
+
         path = path.split(os.pathsep)
 
         if sys.platform == "win32":
@@ -71,4 +73,5 @@ except ImportError:    # Forced testing
                     name = os.path.join(dir, thefile)
                     if _access_check(name, mode):
                         return name
+
         return None