diff --git a/MANIFEST.in b/MANIFEST.in index 1aba38f67..12a54d01a 100755 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1,4 @@ include LICENSE +include requirements/base.txt +include requirements/dev.txt +purge tests \ No newline at end of file diff --git a/Makefile b/Makefile index a7d9f19c4..ffcc26fcb 100755 --- a/Makefile +++ b/Makefile @@ -37,7 +37,7 @@ activate: init: $(info [*] Install requirements...) - @pip install -r requirements-dev.txt -r requirements.txt + @pip install -r requirements/dev.txt -r requirements/base.txt test: $(info [*] Run the unit test with minimum code coverage of $(CODE_COVERAGE)%...) diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index 3590f3b49..000000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,13 +0,0 @@ -coverage==4.3.4 -flake8==3.3.0 -tox==2.2.1 -pytest-cov==2.4.0 -pylint==1.7.2 - -# Test requirements -pytest==3.0.7 -py==1.4.33 -mock==2.0.0 -nose==1.3.7 -parameterized==0.6.1 -requests==2.11.1 diff --git a/requirements.txt b/requirements/base.txt similarity index 85% rename from requirements.txt rename to requirements/base.txt index 0449f83ab..1ad6822be 100755 --- a/requirements.txt +++ b/requirements/base.txt @@ -1,5 +1,5 @@ -boto3==1.6.2 -botocore==1.9.2 +boto3>=1.6.2 +botocore>=1.9.2 docutils==0.14 enum34==1.1.6 functools32==3.2.3.post2 diff --git a/requirements/dev.txt b/requirements/dev.txt new file mode 100644 index 000000000..e8f9e371f --- /dev/null +++ b/requirements/dev.txt @@ -0,0 +1,13 @@ +coverage==4.3.4 +flake8>=3.3.0 +tox>=2.2.1 +pytest-cov>=2.4.0 +pylint>=1.7.2 + +# Test requirements +pytest>=3.0.7 +py>=1.4.33 +mock>=2.0.0 +nose>=1.3.7 +parameterized>=0.6.1 +requests>=2.11.1 diff --git a/samtranslator/__init__.py b/samtranslator/__init__.py index e69de29bb..77f1c8e63 100644 --- a/samtranslator/__init__.py +++ b/samtranslator/__init__.py @@ -0,0 +1 @@ +__version__ = '1.5.0' diff --git a/setup.py b/setup.py index 8e4f97a6d..57460d5b6 100755 --- a/setup.py +++ b/setup.py @@ -1,25 +1,83 @@ -#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# setup.py +# +# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +""" +AWS SAM Serverless Application Model +""" +import io +import os +import re from setuptools import setup, find_packages -with open('README.md') as f: - readme = f.read() +def read(*filenames, **kwargs): + encoding = kwargs.get('encoding', 'utf-8') + sep = kwargs.get('sep', os.linesep) + buf = [] + for filename in filenames: + with io.open(filename, encoding=encoding) as f: + buf.append(f.read()) + return sep.join(buf) + + +def read_version(): + content = read(os.path.join( + os.path.dirname(__file__), 'samtranslator', '__init__.py')) + return re.search(r"__version__ = '([^']+)'", content).group(1) + + +def read_requirements(req='base.txt'): + content = read(os.path.join('requirements', req)) + return [line for line in content.split(os.linesep) + if not line.strip().startswith('#')] -with open('LICENSE') as f: - license = f.read() setup( name='aws-sam-translator', - version='1.4.0', + version=read_version(), description='AWS SAM Translator is a library that transform SAM templates into AWS CloudFormation templates', - long_description=readme, + long_description=read('README.md'), author='Amazon Web Services', author_email='aws-sam-developers@amazon.com', url='https://github.com/awslabs/serverless-application-model', - license=license, + license='Apache License 2.0', # Exclude all but the code folders packages=find_packages(exclude=('tests', 'docs', 'examples', 'versions')), + package_data={'': '*.yaml'}, + install_requires=read_requirements('base.txt'), + extras_require={ + 'dev': read_requirements('dev.txt') + }, keywords="AWS SAM Serverless Application Model", + classifiers=[ + 'Development Status :: 4 - Beta', + 'Environment :: Console', + 'Environment :: Other Environment', + 'Intended Audience :: Developers', + 'Intended Audience :: Information Technology', + 'License :: OSI Approved :: Apache Software License', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2.7', + 'Topic :: Internet', + 'Topic :: Software Development :: Build Tools', + 'Topic :: Utilities', + ] ) - diff --git a/tox.ini b/tox.ini new file mode 100644 index 000000000..20808b9eb --- /dev/null +++ b/tox.ini @@ -0,0 +1,26 @@ +[tox] +envlist=py27, flake8 + +[flake8] +ignore = E126 + +[testenv] +# pytest parameters are included in the pytest.ini +commands=pytest +deps= + coverage + pylint + pytest + py + pytest-cov + mock + nose + parameterized + requests + +[testenv:flake8] +basepython = python2.7 +deps = + flake8 +commands = + flake8 samtranslator tests --max-line-length=120 \ No newline at end of file