mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-22 05:18:11 -05:00
130 lines
4.0 KiB
Python
130 lines
4.0 KiB
Python
#!/usr/bin/env python
|
|
# The contents of this file are subject to the Common Public Attribution
|
|
# License Version 1.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://code.reddit.com/LICENSE. The License is based on the Mozilla Public
|
|
# License Version 1.1, but Sections 14 and 15 have been added to cover use of
|
|
# software over a computer network and provide for limited attribution for the
|
|
# Original Developer. In addition, Exhibit A has been modified to be consistent
|
|
# with Exhibit B.
|
|
#
|
|
# Software distributed under the License is distributed on an "AS IS" basis,
|
|
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
|
# the specific language governing rights and limitations under the License.
|
|
#
|
|
# The Original Code is reddit.
|
|
#
|
|
# The Original Developer is the Initial Developer. The Initial Developer of
|
|
# the Original Code is reddit Inc.
|
|
#
|
|
# All portions of the code written by reddit are Copyright (c) 2006-2015 reddit
|
|
# Inc. All Rights Reserved.
|
|
###############################################################################
|
|
|
|
import os
|
|
import fnmatch
|
|
import sys
|
|
|
|
|
|
try:
|
|
import pkg_resources
|
|
except ImportError:
|
|
print "Distribute >= 0.6.16 is required to run this."
|
|
sys.exit(1)
|
|
else:
|
|
pkg_resources.require("distribute>=0.6.16")
|
|
|
|
|
|
from setuptools import setup, find_packages, Extension
|
|
|
|
|
|
commands = {}
|
|
|
|
|
|
try:
|
|
from Cython.Build import cythonize
|
|
except ImportError:
|
|
print "Cannot find Cython. Skipping Cython build."
|
|
pyx_extensions = []
|
|
else:
|
|
pyx_files = []
|
|
for root, directories, files in os.walk('.'):
|
|
for f in fnmatch.filter(files, '*.pyx'):
|
|
pyx_files.append(os.path.join(root, f))
|
|
pyx_extensions = cythonize(pyx_files)
|
|
|
|
|
|
setup(
|
|
name="r2",
|
|
version="",
|
|
install_requires=[
|
|
"webob==1.0.8",
|
|
"webtest<=1.4.3", # anything newer requires WebOb>=1.2.0
|
|
"Pylons==0.9.7",
|
|
"Routes==1.11",
|
|
"mako>=0.5",
|
|
"boto >= 2.0",
|
|
"pytz",
|
|
"pycrypto",
|
|
"Babel>=1.0",
|
|
"cython>=0.14",
|
|
"SQLAlchemy==0.7.4",
|
|
"BeautifulSoup",
|
|
"chardet",
|
|
"psycopg2",
|
|
"pycassa>=1.7.0",
|
|
"PIL",
|
|
"pycaptcha",
|
|
"amqplib",
|
|
"pylibmc>=1.2.1",
|
|
"py-bcrypt",
|
|
"snudown>=1.1.0",
|
|
"l2cs>=2.0.2",
|
|
"lxml",
|
|
"kazoo",
|
|
"stripe",
|
|
"requests<1.0.0",
|
|
"tinycss2",
|
|
"unidecode",
|
|
"PyYAML",
|
|
],
|
|
# Extra dependencies that aren't needed for running the app.
|
|
# * https://pythonhosted.org/setuptools/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies
|
|
# * https://github.com/pypa/sampleproject/blob/300f04dc44df51492deb859ac98ba521d2c7a17a/setup.py#L71-L77
|
|
extras_require = {
|
|
'test': ['mock'],
|
|
},
|
|
dependency_links=[
|
|
"https://github.com/reddit/snudown/archive/v1.1.3.tar.gz#egg=snudown-1.1.3",
|
|
"https://s3.amazonaws.com/code.reddit.com/pycaptcha-0.4.tar.gz#egg=pycaptcha-0.4",
|
|
],
|
|
packages=find_packages(exclude=["ez_setup"]),
|
|
cmdclass=commands,
|
|
ext_modules=pyx_extensions + [
|
|
Extension(
|
|
"Cfilters",
|
|
sources=[
|
|
"r2/lib/c/filters.c",
|
|
]
|
|
),
|
|
],
|
|
entry_points="""
|
|
[paste.app_factory]
|
|
main=r2:make_app
|
|
[paste.paster_command]
|
|
run = r2.commands:RunCommand
|
|
shell = pylons.commands:ShellCommand
|
|
[paste.filter_app_factory]
|
|
gzip = r2.lib.gzipper:make_gzip_middleware
|
|
[r2.provider.media]
|
|
s3 = r2.lib.providers.media.s3:S3MediaProvider
|
|
filesystem = r2.lib.providers.media.filesystem:FileSystemMediaProvider
|
|
[r2.provider.cdn]
|
|
cloudflare = r2.lib.providers.cdn.cloudflare:CloudFlareCdnProvider
|
|
null = r2.lib.providers.cdn.null:NullCdnProvider
|
|
[r2.provider.auth]
|
|
cookie = r2.lib.providers.auth.cookie:CookieAuthenticationProvider
|
|
http = r2.lib.providers.auth.http:HttpAuthenticationProvider
|
|
""",
|
|
)
|