70 lines
2.4 KiB
Python
70 lines
2.4 KiB
Python
#!/usr/bin/env python
|
|
import io
|
|
import os
|
|
import re
|
|
from setuptools import setup
|
|
from setuptools import find_packages
|
|
from setuptools.command.test import test as TestCommand
|
|
|
|
def find_version(filename):
|
|
"""Uses re to pull out the assigned value to __version__ in filename."""
|
|
|
|
with io.open(filename, "r", encoding="utf-8") as version_file:
|
|
version_match = re.search(r'^__version__ = [\'"]([^\'"]*)[\'"]',
|
|
version_file.read(), re.M)
|
|
if version_match:
|
|
return version_match.group(1)
|
|
return "0.0-version-unknown"
|
|
|
|
|
|
class PyTest(TestCommand):
|
|
"""TestCommand subclass to use pytest with setup.py test."""
|
|
|
|
def finalize_options(self):
|
|
"""Find our package name and test options to fill out test_args."""
|
|
|
|
TestCommand.finalize_options(self)
|
|
self.test_args = ['-rx', '--cov', 'cloudbender',
|
|
'--cov-report', 'term-missing']
|
|
self.test_suite = True
|
|
|
|
def run_tests(self):
|
|
"""Taken from http://pytest.org/latest/goodpractises.html."""
|
|
|
|
# have to import here, outside the eggs aren't loaded
|
|
import pytest
|
|
errno = pytest.main(self.test_args)
|
|
raise SystemExit(errno)
|
|
|
|
|
|
if os.path.isfile("README.md"):
|
|
with io.open("README.md", encoding="utf-8") as opendescr:
|
|
long_description = opendescr.read()
|
|
else:
|
|
long_description = __doc__
|
|
|
|
setup(
|
|
name='cloudbender',
|
|
version=find_version("cloudbender/__init__.py"),
|
|
description='Toolset to render and manage AWS Cloudformation',
|
|
python_requires='>=3.7',
|
|
long_description=long_description,
|
|
long_description_content_type="text/markdown",
|
|
author='Stefan Reimer',
|
|
author_email='stefan@zero-downtime.net',
|
|
url='https://git.zero-downtime.net/ZeroDownTime/CloudBender',
|
|
packages=find_packages(),
|
|
package_data={ 'cloudbender': ['templates/*.md', 'templates/*.yaml'], },
|
|
include_package_data=True,
|
|
entry_points={'console_scripts': [ "cloudbender = cloudbender.cli:cli" ]},
|
|
install_requires=['boto3', 'Jinja2', 'click', 'cfn-lint>=0.34', 'pyminifier', 'pulumi>=3.0.0,<4.0.0', 'pulumi-aws>=4.0.0,<5.0.0'], #'apprise'
|
|
tests_require=["pytest-cov", "moto", "mock", 'pytest'],
|
|
cmdclass={"test": PyTest},
|
|
classifiers=[
|
|
"Development Status :: 4 - Beta",
|
|
"Environment :: Console",
|
|
"Operating System :: POSIX",
|
|
"Programming Language :: Python",
|
|
"License :: OSI Approved :: GNU Affero General Public License v3"
|
|
])
|