mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-12 08:28:08 -05:00
142 lines
4.6 KiB
Python
142 lines
4.6 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
|
|
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
|
|
""",
|
|
)
|