Source

bloodhound-dashboard / setup.py

#!/usr/bin/env python

#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.


try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

DESC = """Project dashboard for Apache(TM) Bloodhound

Add custom dashboards in multiple pages of Bloodhound sites.
"""

versions = [
    (1, 0, 0),
    ]
    
latest = '.'.join(str(x) for x in versions[-1])

status = {
            'planning' :  "Development Status :: 1 - Planning",
            'pre-alpha' : "Development Status :: 2 - Pre-Alpha",
            'alpha' :     "Development Status :: 3 - Alpha",
            'beta' :      "Development Status :: 4 - Beta",
            'stable' :    "Development Status :: 5 - Production/Stable",
            'mature' :    "Development Status :: 6 - Mature",
            'inactive' :  "Development Status :: 7 - Inactive"
         }
dev_status = status["alpha"]

cats = [
      dev_status,
      "Environment :: Plugins", 
      "Environment :: Web Environment", 
      "Framework :: Trac", 
      "Intended Audience :: Developers", 
      "Intended Audience :: Information Technology", 
      "Intended Audience :: Other Audience", 
      "Intended Audience :: System Administrators", 
      "License :: Unknown", 
      "Operating System :: OS Independent", 
      "Programming Language :: Python", 
      "Programming Language :: Python :: 2.5", 
      "Programming Language :: Python :: 2.6",
      "Programming Language :: Python :: 2.7",
      "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries", 
      "Topic :: Internet :: WWW/HTTP :: HTTP Servers", 
      "Topic :: Internet :: WWW/HTTP :: WSGI", 
      "Topic :: Software Development :: Bug Tracking", 
      "Topic :: Software Development :: Libraries :: Application Frameworks", 
      "Topic :: Software Development :: Libraries :: Python Modules", 
      "Topic :: Software Development :: User Interfaces",
      "Topic :: Software Development :: Widget Sets"
    ]

# Be compatible with older versions of Python
from sys import version
if version < '2.2.3':
    from distutils.dist import DistributionMetadata
    DistributionMetadata.classifiers = None
    DistributionMetadata.download_url = None

# Add the change log to the package description.
chglog = None
try:
    from os.path import dirname, join
    chglog = open(join(dirname(__file__), "CHANGES"))
    DESC+= ('\n\n' + chglog.read())
finally:
    if chglog:
        chglog.close()

DIST_NM = 'BloodhoundDashboardPlugin'
PKG_INFO = {'bhdashboard' : ('bhdashboard',                     # Package dir
                            # Package data
                            ['../CHANGES', '../TODO', '../COPYRIGHT', 
                              '../NOTICE', '../README', '../TESTING_README',
                              'htdocs/*.*', 'htdocs/css/*.css',
                              'htdocs/img/*.*', 'htdocs/js/*.js',
                              'templates/*'],
                          ), 
            'bhdashboard.widgets' : ('bhdashboard/widgets',     # Package dir
                            # Package data
                            ['templates/*', 'htdocs/*.css'],
                          ), 
            'bhdashboard.layouts' : ('bhdashboard/layouts',     # Package dir
                            # Package data
                            ['templates/*'],
                          ), 
            'bhdashboard.tests' : ('bhdashboard/tests',     # Package dir
                            # Package data
                            ['data/**'],
                          ), 
            }

ENTRY_POINTS = r"""
               [trac.plugins]
               bhdashboard.admin = bhdashboard.admin
               bhdashboard.api = bhdashboard.api
               bhdashboard.macros = bhdashboard.macros
               bhdashboard.layouts.bootstrap = bhdashboard.layouts.bootstrap
               bhdashboard.widgets.containers = bhdashboard.widgets.containers
               bhdashboard.widgets.query = bhdashboard.widgets.query
               bhdashboard.widgets.report = bhdashboard.widgets.report
               bhdashboard.widgets.ticket = bhdashboard.widgets.ticket
               bhdashboard.widgets.timeline = bhdashboard.widgets.timeline
               """

setup(
    name=DIST_NM,
    version=latest,
    description=DESC.split('\n', 1)[0],
    requires = ['trac'],
    tests_require = ['dutest>=0.2.4', 'TracXMLRPC'],
    install_requires = [
        'setuptools>=0.6b1',
        'Trac>=0.11',
    ],
    package_dir = dict([p, i[0]] for p, i in PKG_INFO.iteritems()),
    packages = PKG_INFO.keys(),
    package_data = dict([p, i[1]] for p, i in PKG_INFO.iteritems()),
    include_package_data=True,
    provides = ['%s (%s)' % (p, latest) for p in PKG_INFO.keys()],
    obsoletes = ['%s (>=%s.0.0, <%s)' % (p, versions[-1][0], latest) \
                  for p in PKG_INFO.keys()],
    entry_points = ENTRY_POINTS,
    classifiers = cats,
    long_description= DESC
    )