summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
authorVal Neekman <val@neekware.com>2012-10-14 18:49:13 -0700
committerVal Neekman <val@neekware.com>2012-10-14 18:49:13 -0700
commit64ffcbcedee3bead5e3a20cb1c545854b3bd651b (patch)
tree5b9fd44f1b7e55befc6df7321a092fdd212ebe61 /setup.py
parentbe60050791262776db3c59ff6c4bf7da7c2a1b43 (diff)
downloadpython-slugify-64ffcbcedee3bead5e3a20cb1c545854b3bd651b.tar.gz
Initial version
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/setup.py b/setup.py
new file mode 100755
index 0000000..e2df292
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+
+# -*- coding: utf-8 -*-
+from setuptools import setup
+import re
+import os
+import sys
+
+
+name = 'python-slugify'
+package = 'slugify'
+description = 'A Python slugify application that handles unicode'
+url = 'https://github.com/un33k/python-slugify'
+author = 'Val Neekman'
+author_email = 'info@neekware.com'
+license = 'BSD'
+install_requires = ['Unidecode>=0.04.9']
+classifiers = [
+ 'Development Status :: 3 - Alpha',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: BSD License',
+ 'Operating System :: POSIX',
+ 'Programming Language :: Python',
+]
+
+
+def get_version(package):
+ """
+ Return package version as listed in `__version__` in `init.py`.
+ """
+ init_py = open(os.path.join(package, '__init__.py')).read()
+ return re.search("^__version__ = ['\"]([^'\"]+)['\"]", init_py, re.MULTILINE).group(1)
+
+
+def get_packages(package):
+ """
+ Return root package and all sub-packages.
+ """
+ return [dirpath
+ for dirpath, dirnames, filenames in os.walk(package)
+ if os.path.exists(os.path.join(dirpath, '__init__.py'))]
+
+
+def get_package_data(package):
+ """
+ Return all files under the root package, that are not in a
+ package themselves.
+ """
+ walk = [(dirpath.replace(package + os.sep, '', 1), filenames)
+ for dirpath, dirnames, filenames in os.walk(package)
+ if not os.path.exists(os.path.join(dirpath, '__init__.py'))]
+
+ filepaths = []
+ for base, filenames in walk:
+ filepaths.extend([os.path.join(base, filename)
+ for filename in filenames])
+ return {package: filepaths}
+
+
+if sys.argv[-1] == 'publish':
+ os.system("python setup.py sdist upload")
+ args = {'version': get_version(package)}
+ print "You probably want to also tag the version now:"
+ print " git tag -a %(version)s -m 'version %(version)s'" % args
+ print " git push --tags"
+ sys.exit()
+
+
+setup(
+ name=name,
+ version=get_version(package),
+ url=url,
+ license=license,
+ description=description,
+ author=author,
+ author_email=author_email,
+ packages=get_packages(package),
+ package_data=get_package_data(package),
+ install_requires=install_requires,
+ classifiers=classifiers
+)
+
+