more updates on the deployment stuff
This commit is contained in:
176
setup.py
176
setup.py
@@ -1,147 +1,45 @@
|
||||
import ast
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
from fnmatch import fnmatchcase
|
||||
|
||||
from distutils.util import convert_path
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
|
||||
def read(*path):
|
||||
return open(os.path.join(os.path.abspath(os.path.dirname(__file__)),
|
||||
*path)).read()
|
||||
|
||||
# Provided as an attribute, so you can append to these instead
|
||||
# of replicating them:
|
||||
standard_exclude = ["*.py", "*.pyc", "*~", ".*", "*.bak"]
|
||||
standard_exclude_directories = [
|
||||
".*", "CVS", "_darcs", "./build",
|
||||
"./dist", "EGG-INFO", "*.egg-info"
|
||||
]
|
||||
|
||||
# Copied from paste/util/finddata.py
|
||||
def find_package_data(where=".", package="", exclude=standard_exclude,
|
||||
exclude_directories=standard_exclude_directories,
|
||||
only_in_packages=True, show_ignored=False):
|
||||
"""
|
||||
Return a dictionary suitable for use in ``package_data``
|
||||
in a distutils ``setup.py`` file.
|
||||
The dictionary looks like::
|
||||
{"package": [files]}
|
||||
Where ``files`` is a list of all the files in that package that
|
||||
don't match anything in ``exclude``.
|
||||
If ``only_in_packages`` is true, then top-level directories that
|
||||
are not packages won't be included (but directories under packages
|
||||
will).
|
||||
Directories matching any pattern in ``exclude_directories`` will
|
||||
be ignored; by default directories with leading ``.``, ``CVS``,
|
||||
and ``_darcs`` will be ignored.
|
||||
If ``show_ignored`` is true, then all the files that aren't
|
||||
included in package data are shown on stderr (for debugging
|
||||
purposes).
|
||||
Note patterns use wildcards, or can be exact paths (including
|
||||
leading ``./``), and all searching is case-insensitive.
|
||||
"""
|
||||
|
||||
out = {}
|
||||
stack = [(convert_path(where), "", package, only_in_packages)]
|
||||
while stack:
|
||||
where, prefix, package, only_in_packages = stack.pop(0)
|
||||
for name in os.listdir(where):
|
||||
fn = os.path.join(where, name)
|
||||
if os.path.isdir(fn):
|
||||
bad_name = False
|
||||
for pattern in exclude_directories:
|
||||
if (fnmatchcase(name, pattern) or
|
||||
fn.lower() == pattern.lower()):
|
||||
bad_name = True
|
||||
if show_ignored:
|
||||
sys.stderr.write("Directory %s ignored by pattern %s" % (fn, pattern))
|
||||
break
|
||||
if bad_name:
|
||||
continue
|
||||
if os.path.isfile(os.path.join(fn, "__init__.py")) \
|
||||
and not prefix:
|
||||
if not package:
|
||||
new_package = name
|
||||
else:
|
||||
new_package = package + "." + name
|
||||
stack.append((fn, "", new_package, False))
|
||||
else:
|
||||
stack.append((fn, prefix + name + "/", package,
|
||||
only_in_packages))
|
||||
elif package or not only_in_packages:
|
||||
# is a file
|
||||
bad_name = False
|
||||
for pattern in exclude:
|
||||
if (fnmatchcase(name, pattern) or
|
||||
fn.lower() == pattern.lower()):
|
||||
bad_name = True
|
||||
if show_ignored:
|
||||
sys.stderr.write("File %s ignored by pattern %s" % (fn, pattern))
|
||||
break
|
||||
if bad_name:
|
||||
continue
|
||||
out.setdefault(package, []).append(prefix + name)
|
||||
return out
|
||||
|
||||
excluded_directories = standard_exclude_directories + ["example", "tests"]
|
||||
package_data = find_package_data(exclude_directories=excluded_directories)
|
||||
|
||||
DESCRIPTION = "A Django email backend for Amazon's Simple Email Service"
|
||||
|
||||
LONG_DESCRIPTION = None
|
||||
try:
|
||||
LONG_DESCRIPTION = open('README.rst').read()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# Parse version
|
||||
_version_re = re.compile(r"VERSION\s+=\s+(.*)")
|
||||
with open("django_aws_ses/__init__.py", "rb") as f:
|
||||
version = ".".join(
|
||||
map(str, ast.literal_eval(_version_re.search(f.read().decode("utf-8")).group(1)))
|
||||
)
|
||||
|
||||
CLASSIFIERS = [
|
||||
'Development Status :: 4 - Beta',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: MIT License',
|
||||
'Operating System :: OS Independent',
|
||||
'Programming Language :: Python',
|
||||
'Topic :: Software Development :: Libraries :: Python Modules',
|
||||
'Framework :: Django',
|
||||
'Framework :: Django :: 1.11',
|
||||
'Framework :: Django :: 2.0',
|
||||
'Framework :: Django :: 2.1',
|
||||
'Framework :: Django :: 2.2',
|
||||
'Programming Language :: Python :: 2',
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.4',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Programming Language :: Python :: 3.6',
|
||||
]
|
||||
with open("README.md", "r", encoding="utf-8") as f:
|
||||
long_description = f.read()
|
||||
|
||||
setup(
|
||||
name='django_aws_ses',
|
||||
version=version,
|
||||
packages=find_packages(exclude=['example', 'tests']),
|
||||
package_data=package_data,
|
||||
python_requires='>=2.7',
|
||||
author='ZeeksGeeks',
|
||||
author_email='development@zeeksgeeks.com',
|
||||
url='https://github.com/django-ses/django-ses',
|
||||
license='MIT',
|
||||
description=DESCRIPTION,
|
||||
long_description=LONG_DESCRIPTION,
|
||||
platforms=['any'],
|
||||
classifiers=CLASSIFIERS,
|
||||
install_requires=["boto3>=1.0.0", "pytz>=2016.10", "future>=0.16.0", "django>1.10"],
|
||||
name="django_aws_ses",
|
||||
version="0.1.0",
|
||||
packages=find_packages(exclude=["tests"]),
|
||||
include_package_data=True,
|
||||
python_requires=">=3.8",
|
||||
install_requires=[
|
||||
"django>=3.2",
|
||||
"boto3>=1.18",
|
||||
"requests>=2.25",
|
||||
"cryptography>=3.4",
|
||||
"dnspython>=2.1",
|
||||
"pytz>=2021.1",
|
||||
],
|
||||
extras_require={
|
||||
'bounce': ['requests<3', 'M2Crypto'],
|
||||
"dkim": ["dkimpy>=1.0"],
|
||||
},
|
||||
author="Ray Jessop",
|
||||
author_email="development@zeeksgeeks.com",
|
||||
description="A Django email backend for Amazon SES",
|
||||
long_description=long_description,
|
||||
long_description_content_type="text/markdown",
|
||||
url="https://github.com/zeeksgeeks/django_aws_ses",
|
||||
license="MIT",
|
||||
classifiers=[
|
||||
"Development Status :: 4 - Beta",
|
||||
"Framework :: Django",
|
||||
"Framework :: Django :: 3.2",
|
||||
"Framework :: Django :: 4.0",
|
||||
"Framework :: Django :: 4.2",
|
||||
"Intended Audience :: Developers",
|
||||
"License :: OSI Approved :: MIT License",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Topic :: Communications :: Email",
|
||||
],
|
||||
)
|
||||
Reference in New Issue
Block a user