Permalink
Browse files

Update setup.py

  • Loading branch information...
1 parent c88924b commit 789432b84f71335a92ae25d99e8db6458511512f @paltman paltman committed Jul 13, 2012
Showing with 124 additions and 36 deletions.
  1. +1 −20 privileges/__init__.py
  2. +123 −16 setup.py
View
21 privileges/__init__.py
@@ -1,23 +1,4 @@
-VERSION = (0, 1, 0, "a", 1) # following PEP 386
-DEV_N = 3
-POST_N = 0
-
-
-def build_version():
- version = "%s.%s" % (VERSION[0], VERSION[1])
- if VERSION[2]:
- version = "%s.%s" % (version, VERSION[2])
- if VERSION[3] != "f":
- version = "%s%s%s" % (version, VERSION[3], VERSION[4])
- if DEV_N:
- version = "%s.dev%s" % (version, DEV_N)
- elif POST_N > 0:
- version = "%s.post%s" % (version, POST_N)
- return version
-
-
-__version__ = build_version()
-
+__version__ = "0.1"
handlers = set()
View
139 setup.py
@@ -1,29 +1,136 @@
-from distutils.core import setup
+import codecs
+import os
+import sys
+from distutils.util import convert_path
+from fnmatch import fnmatchcase
+from setuptools import setup, find_packages
-VERSION = __import__("privileges").__version__
+
+def read(fname):
+ return codecs.open(os.path.join(os.path.dirname(__file__), fname)).read()
+
+
+# Provided as an attribute, so you can append to these instead
+# of replicating them:
+standard_exclude = ["*.py", "*.pyc", "*$py.class", "*~", ".*", "*.bak"]
+standard_exclude_directories = [
+ ".*", "CVS", "_darcs", "./build", "./dist", "EGG-INFO", "*.egg-info"
+]
+
+
+# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
+# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+# Note: you may want to copy this into your setup.py file verbatim, as
+# you can't import this from another package, when you don't know if
+# that package is installed yet.
+def find_package_data(
+ where=".",
+ package="",
+ exclude=standard_exclude,
+ exclude_directories=standard_exclude_directories,
+ only_in_packages=True,
+ show_ignored=False):
+ """
+ Return a dictionary suitable for use in ``package_data``
+ in a distutils ``setup.py`` file.
+
+ The dictionary looks like::
+
+ {"package": [files]}
+
+ Where ``files`` is a list of all the files in that package that
+ don"t match anything in ``exclude``.
+
+ If ``only_in_packages`` is true, then top-level directories that
+ are not packages won"t be included (but directories under packages
+ will).
+
+ Directories matching any pattern in ``exclude_directories`` will
+ be ignored; by default directories with leading ``.``, ``CVS``,
+ and ``_darcs`` will be ignored.
+
+ If ``show_ignored`` is true, then all the files that aren"t
+ included in package data are shown on stderr (for debugging
+ purposes).
+
+ Note patterns use wildcards, or can be exact paths (including
+ leading ``./``), and all searching is case-insensitive.
+ """
+ out = {}
+ stack = [(convert_path(where), "", package, only_in_packages)]
+ while stack:
+ where, prefix, package, only_in_packages = stack.pop(0)
+ for name in os.listdir(where):
+ fn = os.path.join(where, name)
+ if os.path.isdir(fn):
+ bad_name = False
+ for pattern in exclude_directories:
+ if (fnmatchcase(name, pattern)
+ or fn.lower() == pattern.lower()):
+ bad_name = True
+ if show_ignored:
+ print >> sys.stderr, (
+ "Directory %s ignored by pattern %s"
+ % (fn, pattern))
+ break
+ if bad_name:
+ continue
+ if (os.path.isfile(os.path.join(fn, "__init__.py"))
+ and not prefix):
+ if not package:
+ new_package = name
+ else:
+ new_package = package + "." + name
+ stack.append((fn, "", new_package, False))
+ else:
+ stack.append((fn, prefix + name + "/", package, only_in_packages))
+ elif package or not only_in_packages:
+ # is a file
+ bad_name = False
+ for pattern in exclude:
+ if (fnmatchcase(name, pattern)
+ or fn.lower() == pattern.lower()):
+ bad_name = True
+ if show_ignored:
+ print >> sys.stderr, (
+ "File %s ignored by pattern %s"
+ % (fn, pattern))
+ break
+ if bad_name:
+ continue
+ out.setdefault(package, []).append(prefix+name)
+ return out
+
+
+PACKAGE = "privileges"
+NAME = "privileges"
+DESCRIPTION = "a privileges app for Django"
+AUTHOR = "Patrick Altman"
+AUTHOR_EMAIL = "paltman@eldarion.com"
+URL = "https://github.com/eldarion/privileges"
+VERSION = __import__(PACKAGE).__version__
setup(
- name = "privileges",
- version = VERSION,
- author = "Eldarion",
- author_email = "development@eldarion.com",
- description = "an extensible privileges app",
- long_description = open("README.rst").read(),
- license = "BSD",
- url = "http://github.com/eldarion/privileges",
- packages = [
- "privileges",
- "privileges.templatetags",
- ],
- classifiers = [
+ name=NAME,
+ version=VERSION,
+ description=DESCRIPTION,
+ long_description=read("README.rst"),
+ author=AUTHOR,
+ author_email=AUTHOR_EMAIL,
+ license="BSD",
+ url=URL,
+ packages=find_packages(exclude=["tests.*", "tests"]),
+ package_data=find_package_data(PACKAGE, only_in_packages=False),
+ classifiers=[
"Development Status :: 3 - Alpha",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Framework :: Django",
- ]
+ ],
+ zip_safe=False,
)

0 comments on commit 789432b

Please sign in to comment.