[2] | 1 | import ez_setup |
---|
| 2 | ez_setup.use_setuptools() |
---|
| 3 | from setuptools import setup, find_packages |
---|
| 4 | import re, os |
---|
| 5 | |
---|
| 6 | version = '1.7.3' |
---|
| 7 | |
---|
| 8 | news = os.path.join(os.path.dirname(__file__), 'docs', 'news.txt') |
---|
| 9 | news = open(news).read() |
---|
| 10 | parts = re.split(r'([0-9\.]+)\s*\n\r?-+\n\r?', news) |
---|
| 11 | found_news = '' |
---|
| 12 | for i in range(len(parts)-1): |
---|
| 13 | if parts[i] == version: |
---|
| 14 | found_news = parts[i+i] |
---|
| 15 | break |
---|
| 16 | if not found_news: |
---|
| 17 | print 'Warning: no news for this version found' |
---|
| 18 | |
---|
| 19 | long_description="""\ |
---|
| 20 | This is a pluggable command-line tool. |
---|
| 21 | |
---|
| 22 | It includes some built-in features; |
---|
| 23 | |
---|
| 24 | * Create file layouts for packages. For instance, ``paste create |
---|
| 25 | --template=basic_package MyPackage`` will create a `setuptools |
---|
| 26 | <http://peak.telecommunity.com/DevCenter/setuptools>`_-ready |
---|
| 27 | file layout. |
---|
| 28 | |
---|
| 29 | * Serving up web applications, with configuration based on |
---|
| 30 | `paste.deploy <http://pythonpaste.org/deploy/paste-deploy.html>`_. |
---|
| 31 | |
---|
| 32 | The latest version is available in a `Subversion repository |
---|
| 33 | <http://svn.pythonpaste.org/Paste/Script/trunk#egg=PasteScript-dev>`_. |
---|
| 34 | |
---|
| 35 | For the latest changes see the `news file |
---|
| 36 | <http://pythonpaste.org/script/news.html>`_. |
---|
| 37 | """ |
---|
| 38 | |
---|
| 39 | if found_news: |
---|
| 40 | title = 'Changes in %s' % version |
---|
| 41 | long_description += "\n%s\n%s\n" % (title, '-'*len(title)) |
---|
| 42 | long_description += found_news |
---|
| 43 | |
---|
| 44 | setup( |
---|
| 45 | name="PasteScript", |
---|
| 46 | version=version, |
---|
| 47 | description="A pluggable command-line frontend, including commands to setup package file layouts", |
---|
| 48 | long_description=long_description, |
---|
| 49 | classifiers=[ |
---|
| 50 | "Development Status :: 5 - Production/Stable", |
---|
| 51 | "Intended Audience :: Developers", |
---|
| 52 | "License :: OSI Approved :: MIT License", |
---|
| 53 | "Programming Language :: Python", |
---|
| 54 | "Topic :: Internet :: WWW/HTTP", |
---|
| 55 | "Topic :: Internet :: WWW/HTTP :: Dynamic Content", |
---|
| 56 | "Topic :: Software Development :: Libraries :: Python Modules", |
---|
| 57 | "Framework :: Paste", |
---|
| 58 | ], |
---|
| 59 | keywords='web wsgi setuptools framework command-line setup', |
---|
| 60 | author="Ian Bicking", |
---|
| 61 | author_email="ianb@colorstudy.com", |
---|
| 62 | url="http://pythonpaste.org/script/", |
---|
| 63 | namespace_packages=['paste'], |
---|
| 64 | license='MIT', |
---|
| 65 | packages=find_packages(exclude='tests'), |
---|
| 66 | package_data={ |
---|
| 67 | 'paste.script': ['paster-templates/basic_package/setup.*', |
---|
| 68 | 'paster-templates/basic_package/tests/*.py', |
---|
| 69 | # @@: docs/ doesn't have any files :( |
---|
| 70 | 'paster-templates/basic_package/+package+/*.py'], |
---|
| 71 | }, |
---|
| 72 | zip_safe=False, |
---|
| 73 | scripts=['scripts/paster'], |
---|
| 74 | extras_require={ |
---|
| 75 | 'Templating': [], |
---|
| 76 | 'Cheetah': ['Cheetah'], |
---|
| 77 | 'Config': ['PasteDeploy'], |
---|
| 78 | 'WSGIUtils': ['WSGIUtils'], |
---|
| 79 | 'Flup': ['Flup'], |
---|
| 80 | # the Paste feature means the complete set of features; |
---|
| 81 | # (other features are truly optional) |
---|
| 82 | 'Paste': ['PasteDeploy', 'Cheetah'], |
---|
| 83 | }, |
---|
| 84 | entry_points=""" |
---|
| 85 | [paste.global_paster_command] |
---|
| 86 | help=paste.script.help:HelpCommand |
---|
| 87 | create=paste.script.create_distro:CreateDistroCommand [Templating] |
---|
| 88 | serve=paste.script.serve:ServeCommand [Config] |
---|
| 89 | request=paste.script.request:RequestCommand [Config] |
---|
| 90 | post=paste.script.request:RequestCommand [Config] |
---|
| 91 | exe=paste.script.exe:ExeCommand |
---|
| 92 | points=paste.script.entrypoints:EntryPointCommand |
---|
| 93 | make-config=paste.script.appinstall:MakeConfigCommand |
---|
| 94 | setup-app=paste.script.appinstall:SetupCommand |
---|
| 95 | |
---|
| 96 | [paste.paster_command] |
---|
| 97 | grep = paste.script.grep:GrepCommand |
---|
| 98 | |
---|
| 99 | [paste.paster_create_template] |
---|
| 100 | basic_package=paste.script.templates:BasicPackage |
---|
| 101 | |
---|
| 102 | [paste.server_runner] |
---|
| 103 | wsgiutils=paste.script.wsgiutils_server:run_server [WSGIUtils] |
---|
| 104 | flup_ajp_thread=paste.script.flup_server:run_ajp_thread [Flup] |
---|
| 105 | flup_ajp_fork=paste.script.flup_server:run_ajp_fork [Flup] |
---|
| 106 | flup_fcgi_thread=paste.script.flup_server:run_fcgi_thread [Flup] |
---|
| 107 | flup_fcgi_fork=paste.script.flup_server:run_fcgi_fork [Flup] |
---|
| 108 | flup_scgi_thread=paste.script.flup_server:run_scgi_thread [Flup] |
---|
| 109 | flup_scgi_fork=paste.script.flup_server:run_scgi_fork [Flup] |
---|
| 110 | cgi=paste.script.cgi_server:paste_run_cgi |
---|
| 111 | cherrypy=paste.script.cherrypy_server:cpwsgi_server |
---|
| 112 | twisted=paste.script.twisted_web2_server:run_twisted |
---|
| 113 | |
---|
| 114 | [paste.app_factory] |
---|
| 115 | test=paste.script.testapp:make_test_application |
---|
| 116 | |
---|
| 117 | [paste.entry_point_description] |
---|
| 118 | paste.entry_point_description = paste.script.epdesc:MetaEntryPointDescription |
---|
| 119 | paste.paster_create_template = paste.script.epdesc:CreateTemplateDescription |
---|
| 120 | paste.paster_command = paste.script.epdesc:PasterCommandDescription |
---|
| 121 | paste.global_paster_command = paste.script.epdesc:GlobalPasterCommandDescription |
---|
| 122 | paste.app_install = paste.script.epdesc:AppInstallDescription |
---|
| 123 | |
---|
| 124 | # These aren't part of Paste Script particularly, but |
---|
| 125 | # we'll document them here |
---|
| 126 | console_scripts = paste.script.epdesc:ConsoleScriptsDescription |
---|
| 127 | # @@: Need non-console scripts... |
---|
| 128 | distutils.commands = paste.script.epdesc:DistutilsCommandsDescription |
---|
| 129 | distutils.setup_keywords = paste.script.epdesc:SetupKeywordsDescription |
---|
| 130 | egg_info.writers = paste.script.epdesc:EggInfoWriters |
---|
| 131 | # @@: Not sure what this does: |
---|
| 132 | #setuptools.file_finders = paste.script.epdesc:SetuptoolsFileFinders |
---|
| 133 | |
---|
| 134 | [console_scripts] |
---|
| 135 | paster=paste.script.command:run |
---|
| 136 | |
---|
| 137 | [distutils.setup_keywords] |
---|
| 138 | paster_plugins = setuptools.dist:assert_string_list |
---|
| 139 | |
---|
| 140 | [egg_info.writers] |
---|
| 141 | paster_plugins.txt = setuptools.command.egg_info:write_arg |
---|
| 142 | """, |
---|
| 143 | install_requires=[ |
---|
| 144 | ], |
---|
| 145 | ) |
---|