Josh VanderLinden avatar Josh VanderLinden committed 988d8d3

Updating the setup.py script to be much better. Changes to deal with updated setup.py. Updating AUTHORS file.

Comments (0)

Files changed (4)

 django-tracking was written by Josh VanderLinden
+
+There have been many contributions, including:
+
+ramusus (https://github.com/ramusus/django-tracking)
+jezdez (https://bitbucket.org/jezdez/django-tracking)
-include README LICENSE AUTHORS CHANGES
-recursive-include tracking/templates *.html *.js
-recursive-include tracking/media/tracking/* *.zip *.js
-recursive-include tracking/locale/*/LC_MESSAGES *.po *.mo
+include README.rst LICENSE AUTHORS CHANGES
+recursive-include tracking/ *.*
+recursive-exclude tracking/ .*.swp *.pyc
+recursive-exclude demo/ *.*
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from distutils.core import setup
-from distutils.command.install_data import install_data
-from distutils.command.install import INSTALL_SCHEMES
+from setuptools import setup, find_packages
 import sys, os
 import tracking
 
-class osx_install_data(install_data):
-    # On MacOS, the platform-specific lib dir is /System/Library/Framework/Python/.../
-    # which is wrong. Python 2.5 supplied with MacOS 10.5 has an Apple-specific fix
-    # for this in distutils.command.install_data#306. It fixes install_lib but not
-    # install_data, which is why we roll our own install_data class.
-
-    def finalize_options(self):
-        # By the time finalize_options is called, install.install_lib is set to the
-        # fixed directory, so we set the installdir to install_lib. The
-        # install_data class uses ('install_data', 'install_dir') instead.
-        self.set_undefined_options('install', ('install_lib', 'install_dir'))
-        install_data.finalize_options(self)
-
-if sys.platform == "darwin":
-    cmdclasses = {'install_data': osx_install_data}
-else:
-    cmdclasses = {'install_data': install_data}
-
-def fullsplit(path, result=None):
-    """
-    Split a pathname into components (the opposite of os.path.join) in a
-    platform-neutral way.
-    """
-    if result is None:
-        result = []
-    head, tail = os.path.split(path)
-    if head == '':
-        return [tail] + result
-    if head == path:
-        return result
-    return fullsplit(head, [tail] + result)
-
-# Tell distutils to put the data_files in platform-specific installation
-# locations. See here for an explanation:
-# http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb
-for scheme in INSTALL_SCHEMES.values():
-    scheme['data'] = scheme['purelib']
-
-packages, data_files = [], []
-root_dir = os.path.dirname(__file__)
-if root_dir != '':
-    os.chdir(root_dir)
-tracking_dir = 'tracking'
-
-for path, dirs, files in os.walk(tracking_dir):
-    # ignore hidden directories and files
-    for i, d in enumerate(dirs):
-        if d.startswith('.'): del dirs[i]
-
-    if '__init__.py' in files:
-        packages.append('.'.join(fullsplit(path)))
-    elif files:
-        data_files.append((path, [os.path.join(path, f) for f in files]))
-
 setup(
     name='django-tracking',
     version=tracking.get_version(),
-    url='http://code.google.com/p/django-tracking/',
+    description="Basic visitor tracking and blacklisting for Django",
+    long_description=open('README.rst', 'r').read(),
+    keywords='django, tracking, visitors',
     author='Josh VanderLinden',
-    author_email='codekoala@gmail.com',
+    author_email='codekoala at gmail dot com',
+    url='http://bitbucket.org/codekoala/django-tracking',
     license='MIT',
-    packages=packages,
-    cmdclass = cmdclasses,
-    data_files=data_files,
-    description="Basic visitor tracking and blacklisting for Django",
-    long_description="""
-django-tracking is a simple attempt at keeping track of visitors to your
-Django-powered Web site.
-
-Features:
-
- - Tracks the following information about your visitors:
-   - Session key
-   - IP address
-   - User agent
-   - Whether or not they are a registered user and logged in
-   - Where they came from (http-referer)
-   - What page on your site they last visited
-   - How many pages on your site they have visited
- - Allows user-agent filtering for visitor tracking
- - Automatic clean-up of old visitor records
- - Can ban certain IP addresses, rendering the site useless to visitors
-   from those IP's (great for stopping spam)
- - The ability to have a live feed of active users on your website
- - Template tags to:
-   - display how many active users there are on your site
-   - determine how many active users are on the same page within your site
-"""
-)
+    package_dir={'tracking': 'tracking'},
+    include_package_data=True,
+    packages=find_packages(),
+    classifiers=[
+        "Development Status :: 5 - Production/Stable",
+        "Environment :: Web Environment",
+        "Framework :: Django",
+        "Intended Audience :: Developers",
+        "Intended Audience :: Information Technology",
+        "Intended Audience :: System Administrators",
+        "License :: OSI Approved :: MIT License",
+        "Natural Language :: English",
+        "Operating System :: OS Independent",
+        "Programming Language :: Python",
+        "Topic :: Internet :: Log Analysis",
+        "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Page Counters",
+        "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware",
+        "Topic :: Security",
+        "Topic :: System :: Monitoring",
+        "Topic :: Utilities",
+    ]
+)

tracking/__init__.py

-from django.conf import settings
-from django.core.urlresolvers import reverse, NoReverseMatch
-
-VERSION = (0, 3, 2)
+VERSION = (0, 3, 3)
 
 def get_version():
     "Returns the version as a human-format string."
     return '.'.join([str(i) for i in VERSION])
 
 # initialize the URL prefixes that we shouldn't track
-prefixes = getattr(settings, 'NO_TRACKING_PREFIXES', [])
-if '!!initialized!!' not in prefixes:
-    if settings.MEDIA_URL and settings.MEDIA_URL != '/':
-        prefixes.append(settings.MEDIA_URL)
+try:
+    from django.conf import settings
+    prefixes = getattr(settings, 'NO_TRACKING_PREFIXES', [])
+except ImportError:
+    pass
+else:
+    if '!!initialized!!' not in prefixes:
+        from django.core.urlresolvers import reverse, NoReverseMatch
+        if settings.MEDIA_URL and settings.MEDIA_URL != '/':
+            prefixes.append(settings.MEDIA_URL)
 
-    if settings.ADMIN_MEDIA_PREFIX:
-        prefixes.append(settings.ADMIN_MEDIA_PREFIX)
+        if settings.ADMIN_MEDIA_PREFIX:
+            prefixes.append(settings.ADMIN_MEDIA_PREFIX)
 
-    try:
-        # finally, don't track requests to the tracker update pages
-        prefixes.append(reverse('tracking-refresh-active-users'))
-    except NoReverseMatch:
-        # django-tracking hasn't been included in the URLconf if we get here
-        pass
+        try:
+            # finally, don't track requests to the tracker update pages
+            prefixes.append(reverse('tracking-refresh-active-users'))
+        except NoReverseMatch:
+            # django-tracking hasn't been included in the URLconf if we get here
+            pass
 
-    prefixes.append('!!initialized!!')
+        prefixes.append('!!initialized!!')
 
-    settings.NO_TRACKING_PREFIXES = prefixes
+        settings.NO_TRACKING_PREFIXES = prefixes
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.