Permalink
Switch branches/tags
Nothing to show
Find file
142 lines (132 sloc) 4.62 KB
#!/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
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)
# guard against import errors in case this is the first run of setup.py and we
# don't have any dependencies (including baseplate) yet
try:
from baseplate.integration.thrift.command import ThriftBuildPyCommand
except ImportError:
print "Cannot find Baseplate. Skipping Thrift build."
else:
commands["build_py"] = ThriftBuildPyCommand
setup(
name="r2",
version="",
install_requires=[
"Pylons",
"Routes",
"mako>=0.5",
"boto >= 2.0",
"pytz",
"pycrypto",
"Babel>=1.0",
"cython>=0.14",
"SQLAlchemy",
"BeautifulSoup",
"chardet",
"psycopg2",
"pycassa>=1.7.0",
"pycaptcha",
"amqplib",
"py-bcrypt",
"snudown>=1.1.0",
"l2cs>=2.0.2",
"lxml",
"kazoo",
"stripe",
"requests",
"tinycss2",
"unidecode",
"PyYAML",
"Pillow",
"pylibmc==1.2.2",
"webob",
"webtest",
"python-snappy",
"httpagentparser==1.7.8",
"raven",
],
# setup tests (allowing for "python setup.py test")
tests_require=['mock', 'nose', 'coverage'],
test_suite="nose.collector",
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]
fastly = r2.lib.providers.cdn.fastly:FastlyCdnProvider
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
[r2.provider.support]
zendesk = r2.lib.providers.support.zendesk:ZenDeskProvider
[r2.provider.search]
cloudsearch = r2.lib.providers.search.cloudsearch:CloudSearchProvider
solr = r2.lib.providers.search.solr:SolrSearchProvider
[r2.provider.image_resizing]
imgix = r2.lib.providers.image_resizing.imgix:ImgixImageResizingProvider
no_op = r2.lib.providers.image_resizing.no_op:NoOpImageResizingProvider
unsplashit = r2.lib.providers.image_resizing.unsplashit:UnsplashitImageResizingProvider
[r2.provider.email]
null = r2.lib.providers.email.null:NullEmailProvider
mailgun = r2.lib.providers.email.mailgun:MailgunEmailProvider
""",
)