Permalink
Browse files

Add __version__ and setup.py

  • Loading branch information...
1 parent 9a3d599 commit 39095c7acdb51cb8960ce81868f87934bc7c6ed1 @j4mie j4mie committed Feb 16, 2012
Showing with 74 additions and 0 deletions.
  1. +71 −0 setup.py
  2. +3 −0 userroles/__init__.py
View
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+from setuptools import setup
+import re
+import os
+import sys
+
+
+name = 'django-user-roles'
+package = 'userroles'
+description = 'Simple role-based user permissions for Django.'
+url = 'http://github.com/dabapps/django-user-roles'
+author = 'Tom Christie'
+license = 'BSD'
+install_requires = []
+
+
+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(name)}
+ 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,
+ packages=get_packages(package),
+ package_data=get_package_data(package),
+ install_requires=install_requires
+)
View
@@ -3,6 +3,9 @@
from django.utils import importlib
+__version__ = '0.0.1'
+
+
_IMPORT_FAILED = "Could not import role profile '%s'"
_INCORRECT_ARGS = "USER_ROLES should be a list of strings and/or two-tuples"

0 comments on commit 39095c7

Please sign in to comment.