Skip to content

Commit

Permalink
Add isort and format code (#45)
Browse files Browse the repository at this point in the history
* add isort settings

* fix tests

* update makefile

* run format

* update makefile

* add noqa

* update travis.yml

* fix test
  • Loading branch information
oscarbc96 authored Apr 20, 2020
1 parent 9a199f4 commit f46fab0
Show file tree
Hide file tree
Showing 30 changed files with 77 additions and 51 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ python:
install:
- make install-dev
script:
- make coverage
- make lint coverage

jobs:
include:
Expand Down
29 changes: 21 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,40 @@ install-dev: install
install-docs:
pip install -e ".[dev,docs]"

format:
format: isort-format black-format

isort-format:
isort --recursive .

black-format:
black .

lint:
lint: isort-lint black-lint flake8-lint

isort-lint:
isort --check-only --recursive .

black-lint:
black --check .
flake8 pycfmodel/ # tests/

component:
pytest -sv tests
flake8-lint:
flake8 .

unit:
pytest -svvv tests

coverage:
coverage run --source=pycfmodel --branch -m pytest tests/ --junitxml=build/test.xml -v
coverage report
coverage xml -i -o build/coverage.xml
coverage html

test: lint component
test: lint unit

freeze:
CUSTOM_COMPILE_COMMAND="make freeze" PIP_CONFIG_FILE=pip.conf pip-compile --no-index --output-file requirements.txt setup.py
CUSTOM_COMPILE_COMMAND="make freeze" pip-compile --no-index --output-file requirements.txt setup.py

freeze-upgrade:
CUSTOM_COMPILE_COMMAND="make freeze-upgrade" pip-compile --no-index --upgrade --output-file requirements.txt setup.py

.PHONY: install install-dev install-docs lint component coverage test freeze freeze-upgrade format
.PHONY: install install-dev install-docs format isort-format black-format lint isort-lint black-lint flake8-lint unit coverage test freeze freeze-upgrade
2 changes: 1 addition & 1 deletion pycfmodel/model/base.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from pydantic import BaseModel, Extra, root_validator

from pycfmodel.utils import is_resolvable_dict, is_conditional_dict
from pycfmodel.utils import is_conditional_dict, is_resolvable_dict


class CustomModel(BaseModel):
Expand Down
2 changes: 1 addition & 1 deletion pycfmodel/model/cf_model.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from datetime import date
from typing import Dict, Union, ClassVar, Optional, List, Any, Collection, Type
from typing import Any, ClassVar, Collection, Dict, List, Optional, Type, Union

from pycfmodel.constants import AWS_NOVALUE
from pycfmodel.model.base import CustomModel
Expand Down
2 changes: 1 addition & 1 deletion pycfmodel/model/parameter.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import List, Optional, Any, ClassVar
from typing import Any, ClassVar, List, Optional

from pydantic import PositiveInt

Expand Down
2 changes: 1 addition & 1 deletion pycfmodel/model/resources/iam_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from pycfmodel.model.base import CustomModel
from pycfmodel.model.resources.iam_policy import IAMPolicy
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.types import ResolvableStr, Resolvable
from pycfmodel.model.types import Resolvable, ResolvableStr


class IAMGroupProperties(CustomModel):
Expand Down
6 changes: 3 additions & 3 deletions pycfmodel/model/resources/iam_managed_policy.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from typing import ClassVar, Optional, List
from typing import ClassVar, List, Optional

from pycfmodel.model.base import CustomModel
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.types import ResolvableStr, Resolvable
from pycfmodel.model.resources.properties.policy_document import PolicyDocument
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.types import Resolvable, ResolvableStr


class IAMManagedPolicyProperties(CustomModel):
Expand Down
4 changes: 2 additions & 2 deletions pycfmodel/model/resources/iam_policy.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from typing import ClassVar, Optional

from pycfmodel.model.base import CustomModel
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.resources.properties.policy_document import PolicyDocument
from pycfmodel.model.types import ResolvableStrOrList, ResolvableStr, Resolvable
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.types import Resolvable, ResolvableStr, ResolvableStrOrList


class IAMPolicyProperties(CustomModel):
Expand Down
2 changes: 1 addition & 1 deletion pycfmodel/model/resources/iam_role.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from pycfmodel.model.resources.properties.policy import Policy
from pycfmodel.model.resources.properties.policy_document import PolicyDocument
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.types import Resolvable, ResolvableStr, ResolvableIntOrStr
from pycfmodel.model.types import Resolvable, ResolvableIntOrStr, ResolvableStr


class IAMRoleProperties(CustomModel):
Expand Down
2 changes: 1 addition & 1 deletion pycfmodel/model/resources/iam_user.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import ClassVar, List, Optional, Dict
from typing import ClassVar, Dict, List, Optional

from pycfmodel.model.base import CustomModel
from pycfmodel.model.parameter import Parameter
Expand Down
4 changes: 2 additions & 2 deletions pycfmodel/model/resources/kms_key.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from typing import ClassVar, List, Optional, Dict
from typing import ClassVar, Dict, List, Optional

from pycfmodel.model.base import CustomModel
from pycfmodel.model.resources.properties.policy_document import PolicyDocument
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.types import ResolvableStr, ResolvableBool, Resolvable, ResolvableInt
from pycfmodel.model.types import Resolvable, ResolvableBool, ResolvableInt, ResolvableStr


class KMSKeyProperties(CustomModel):
Expand Down
2 changes: 1 addition & 1 deletion pycfmodel/model/resources/properties/policy.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from pycfmodel.model.types import ResolvableStr, Resolvable
from pycfmodel.model.resources.properties.policy_document import PolicyDocument
from pycfmodel.model.resources.properties.property import Property
from pycfmodel.model.types import Resolvable, ResolvableStr


class Policy(Property):
Expand Down
2 changes: 1 addition & 1 deletion pycfmodel/model/resources/properties/policy_document.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import re
from typing import List, Pattern, Union, Optional
from typing import List, Optional, Pattern, Union

from pydantic import Extra

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
from ipaddress import IPv4Network, IPv6Network
from typing import Optional

from pydantic import validator

from pycfmodel.constants import IPV4_ZERO_VALUE, IPV6_ZERO_VALUE
from pycfmodel.model.resources.properties.property import Property
from pycfmodel.model.types import (
ResolvableInt,
ResolvableIntOrStr,
ResolvableIPv4Network,
ResolvableIPv6Network,
ResolvableStr,
ResolvableInt,
ResolvableIntOrStr,
)


Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
from ipaddress import IPv4Network, IPv6Network
from typing import Optional

from pydantic import validator

from pycfmodel.constants import IPV4_ZERO_VALUE, IPV6_ZERO_VALUE
from pycfmodel.model.resources.properties.property import Property
from pycfmodel.model.types import (
ResolvableInt,
ResolvableIntOrStr,
ResolvableIPv4Network,
ResolvableIPv6Network,
ResolvableStr,
ResolvableIntOrStr,
ResolvableInt,
)


Expand Down
3 changes: 1 addition & 2 deletions pycfmodel/model/resources/properties/statement.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import logging

from typing import List, Pattern, Optional, Union, Dict
from typing import Dict, List, Optional, Pattern, Union

from pycfmodel.model.resources.properties.property import Property
from pycfmodel.model.types import ResolvableStr, ResolvableStrOrList
Expand Down
2 changes: 1 addition & 1 deletion pycfmodel/model/resources/resource.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Dict, ClassVar, Optional
from typing import ClassVar, Dict, Optional

from pydantic import validator

Expand Down
2 changes: 1 addition & 1 deletion pycfmodel/model/resources/s3_bucket_policy.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from typing import ClassVar

from pycfmodel.model.base import CustomModel
from pycfmodel.model.resources.properties.policy_document import PolicyDocument
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.types import Resolvable, ResolvableStr
from pycfmodel.model.resources.properties.policy_document import PolicyDocument


class S3BucketPolicyProperties(CustomModel):
Expand Down
4 changes: 2 additions & 2 deletions pycfmodel/model/resources/security_group.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from typing import ClassVar, Optional, List, Union, Dict
from typing import ClassVar, Dict, List, Optional, Union

from pycfmodel.model.base import CustomModel
from pycfmodel.model.resources.properties.security_group_egress_prop import SecurityGroupEgressProp
from pycfmodel.model.resources.properties.security_group_ingress_prop import SecurityGroupIngressProp
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.types import ResolvableStr, Resolvable
from pycfmodel.model.types import Resolvable, ResolvableStr


class SecurityGroupProperties(CustomModel):
Expand Down
4 changes: 2 additions & 2 deletions pycfmodel/model/resources/security_group_egress.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import ClassVar, Optional

from pycfmodel.model.resources.properties.security_group_egress_prop import SecurityGroupEgressProp
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.types import ResolvableStr
Expand All @@ -24,7 +25,6 @@ class SecurityGroupEgressProperties(SecurityGroupEgressProp):
GroupId: Optional[ResolvableStr] = None



class SecurityGroupEgress(Resource):
"""
Properties:
Expand All @@ -42,4 +42,4 @@ def ipv4_slash_zero(self) -> bool:
return self.Properties.ipv4_slash_zero()

def ipv6_slash_zero(self) -> bool:
return self.Properties.ipv6_slash_zero()
return self.Properties.ipv6_slash_zero()
1 change: 1 addition & 0 deletions pycfmodel/model/resources/security_group_ingress.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import ClassVar, Optional

from pycfmodel.model.resources.properties.security_group_ingress_prop import SecurityGroupIngressProp
from pycfmodel.model.resources.resource import Resource
from pycfmodel.model.types import ResolvableStr
Expand Down
4 changes: 2 additions & 2 deletions pycfmodel/model/types.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from datetime import date
from ipaddress import IPv4Network, IPv6Network
from typing import Union, List, TypeVar
from typing import List, TypeVar, Union

from pycfmodel.model.base import FunctionDict, ConditionDict
from pycfmodel.model.base import ConditionDict, FunctionDict

T = TypeVar("T")
Resolvable = Union[T, FunctionDict]
Expand Down
1 change: 0 additions & 1 deletion pycfmodel/resolver.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import logging

from base64 import b64encode
from datetime import date
from ipaddress import IPv4Network, IPv6Network
Expand Down
7 changes: 6 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
[tool.black]
line-length = 120
target_version = ['py37']
exclude = 'venv/'
[tool.isort]
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
line_length = 120
12 changes: 9 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
from pathlib import Path

from setuptools import setup, find_namespace_packages

from setuptools import find_namespace_packages, setup

readme = Path(__file__).parent / "README.md"
long_description = readme.read_text()

install_requires = ["pydantic~=1.0"]

dev_requires = ["black==19.3b0", "pytest==3.6.0", "flake8>=3.3.0", "pytest-cov>=2.5.1", "pip-tools==2.0.2"]
dev_requires = [
"black==19.3b0",
"flake8>=3.3.0",
"isort==4.3.21",
"pip-tools==2.0.2",
"pytest==3.6.0",
"pytest-cov>=2.5.1",
]

docs_requires = ["AutoMacDoc==0.3", "mkdocs-material==4.6.3", "mkdocs==1.1", "mkdocstrings==0.10.0"]

Expand Down
1 change: 1 addition & 0 deletions tests/resources/properties/test_statement.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import re

import pytest

from pycfmodel.model.resources.properties.statement import Statement
Expand Down
6 changes: 3 additions & 3 deletions tests/resources/test_security_group_egress.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,12 @@ def test_security_group_egress(security_group_egress_ipv4_1):


def test_slash_zero4(security_group_egress_ipv4_1):
assert security_group_egress_ipv4_1.ipv4_slash_zero() == True
assert security_group_egress_ipv4_1.ipv4_slash_zero() is True


def test_not_slash_zero4(security_group_egress_ipv4_2):
assert security_group_egress_ipv4_2.ipv4_slash_zero() == False
assert security_group_egress_ipv4_2.ipv4_slash_zero() is False


def test_not_slash_zero6(security_group_egress_ipv6):
assert security_group_egress_ipv6.ipv6_slash_zero() == False
assert security_group_egress_ipv6.ipv6_slash_zero() is False
6 changes: 3 additions & 3 deletions tests/resources/test_security_group_ingress.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,12 @@ def test_security_group_ingress(security_group_ingress_ipv4_1):


def test_slash_zero4(security_group_ingress_ipv4_1):
assert security_group_ingress_ipv4_1.ipv4_slash_zero() == True
assert security_group_ingress_ipv4_1.ipv4_slash_zero() is True


def test_not_slash_zero4(security_group_ingress_ipv4_2):
assert security_group_ingress_ipv4_2.ipv4_slash_zero() == False
assert security_group_ingress_ipv4_2.ipv4_slash_zero() is False


def test_not_slash_zero6(security_group_ingress_ipv6):
assert security_group_ingress_ipv6.ipv6_slash_zero() == False
assert security_group_ingress_ipv6.ipv6_slash_zero() is False
2 changes: 1 addition & 1 deletion tests/test_regexs.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pytest

from pycfmodel.constants import CONTAINS_STAR, CONTAINS_CF_PARAM
from pycfmodel.constants import CONTAINS_CF_PARAM, CONTAINS_STAR


@pytest.mark.parametrize(
Expand Down
2 changes: 1 addition & 1 deletion tests/test_resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ def test_template_conditions():
"BoolStr": "True",
"IsEqualNum": {"Fn::Equals": [123456, 123456]},
"IsEqualStr": {"Fn::Equals": ["a", "a"]},
"IsEqualStr": {"Fn::Equals": [True, True]},
"IsEqualBool": {"Fn::Equals": [True, True]},
"IsEqualRef": {"Fn::Equals": [{"Ref": "AWS::AccountId"}, "123"]},
"Not": {"Fn::Not": [False]},
},
Expand Down

0 comments on commit f46fab0

Please sign in to comment.