Skip to content

Commit f6415ed

Browse files
committed
Use Black and isort for code formatting
1 parent b65c972 commit f6415ed

File tree

122 files changed

+3836
-2998
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+3836
-2998
lines changed

.github/workflows/python-test.yml

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,31 @@ jobs:
6868
with:
6969
python-version: 3.9
7070

71-
- name: "Run static checks"
72-
uses: pre-commit/[email protected]
71+
- name: Get full Python version
72+
id: full-python-version
73+
run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")
74+
75+
- name: Bootstrap poetry
76+
run: |
77+
curl -sL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python - -y
78+
echo "$HOME/.local/bin" >> $GITHUB_PATH
79+
80+
- name: Configure poetry
81+
run: poetry config virtualenvs.in-project true
82+
83+
- name: Set up cache
84+
uses: actions/cache@v2
85+
id: cache
86+
with:
87+
path: .venv
88+
key: venv-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
89+
90+
- name: Ensure cache is healthy
91+
if: steps.cache.outputs.cache-hit == 'true'
92+
run: timeout 10s poetry run pip --version || rm -rf .venv
93+
94+
- name: Install dependencies
95+
run: poetry install
96+
97+
- name: Run static checks
98+
run: poetry run pre-commit run -a

.pre-commit-config.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,32 @@ repos:
88
- repo: meta
99
hooks:
1010
- id: check-hooks-apply
11+
1112
- repo: https://github.com/asottile/pyupgrade
1213
rev: v2.19.0
1314
hooks:
1415
- id: pyupgrade
1516
args: ["--py36-plus"]
17+
1618
- repo: local
1719
hooks:
1820
- id: flynt
1921
name: Convert to f-strings with flynt
2022
entry: flynt
2123
language: python
2224
additional_dependencies: ['flynt==0.64']
25+
26+
- id: black
27+
name: black
28+
entry: black
29+
language: system
30+
require_serial: true
31+
types: [python]
32+
33+
- id: isort
34+
name: isort
35+
entry: isort
36+
args: ['--filter-files']
37+
language: system
38+
require_serial: true
39+
types: [python]

docs/conf.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818

1919
# -- Project information -----------------------------------------------------
2020

21-
project = 'openapi-core'
22-
copyright = '2021, Artur Maciag'
23-
author = 'Artur Maciag'
21+
project = "openapi-core"
22+
copyright = "2021, Artur Maciag"
23+
author = "Artur Maciag"
2424

2525
# The full version, including alpha/beta/rc tags
2626
release = openapi_core.__version__
@@ -40,20 +40,20 @@
4040
]
4141

4242
# Add any paths that contain templates here, relative to this directory.
43-
templates_path = ['_templates']
43+
templates_path = ["_templates"]
4444

4545
# List of patterns, relative to source directory, that match files and
4646
# directories to ignore when looking for source files.
4747
# This pattern also affects html_static_path and html_extra_path.
48-
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
48+
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
4949

5050

5151
# -- Options for HTML output -------------------------------------------------
5252

5353
# The theme to use for HTML and HTML Help pages. See the documentation for
5454
# a list of builtin themes.
5555
#
56-
html_theme = 'sphinx_rtd_theme'
56+
html_theme = "sphinx_rtd_theme"
5757

5858
# Add any paths that contain custom static files (such as style sheets) here,
5959
# relative to this directory. They are copied after the builtin static files,

openapi_core/__init__.py

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,44 @@
11
"""OpenAPI core module"""
2-
from openapi_core.shortcuts import (
3-
create_spec, validate_request, validate_response,
4-
spec_validate_body, spec_validate_parameters, spec_validate_security,
5-
spec_validate_data, spec_validate_headers,
6-
)
2+
from openapi_core.shortcuts import create_spec
3+
from openapi_core.shortcuts import spec_validate_body
4+
from openapi_core.shortcuts import spec_validate_data
5+
from openapi_core.shortcuts import spec_validate_headers
6+
from openapi_core.shortcuts import spec_validate_parameters
7+
from openapi_core.shortcuts import spec_validate_security
8+
from openapi_core.shortcuts import validate_request
9+
from openapi_core.shortcuts import validate_response
10+
from openapi_core.validation.request.validators import RequestBodyValidator
711
from openapi_core.validation.request.validators import (
8-
RequestValidator,
9-
RequestBodyValidator,
1012
RequestParametersValidator,
11-
RequestSecurityValidator,
1213
)
14+
from openapi_core.validation.request.validators import RequestSecurityValidator
15+
from openapi_core.validation.request.validators import RequestValidator
16+
from openapi_core.validation.response.validators import ResponseDataValidator
1317
from openapi_core.validation.response.validators import (
14-
ResponseValidator,
15-
ResponseDataValidator,
1618
ResponseHeadersValidator,
1719
)
20+
from openapi_core.validation.response.validators import ResponseValidator
1821

19-
__author__ = 'Artur Maciag'
20-
__email__ = '[email protected]'
21-
__version__ = '0.14.2'
22-
__url__ = 'https://github.com/p1c2u/openapi-core'
23-
__license__ = 'BSD 3-Clause License'
22+
__author__ = "Artur Maciag"
23+
__email__ = "[email protected]"
24+
__version__ = "0.14.2"
25+
__url__ = "https://github.com/p1c2u/openapi-core"
26+
__license__ = "BSD 3-Clause License"
2427

2528
__all__ = [
26-
'create_spec', 'validate_request', 'validate_response',
27-
'spec_validate_body', 'spec_validate_parameters', 'spec_validate_security',
28-
'spec_validate_data', 'spec_validate_headers',
29-
'RequestValidator', 'ResponseValidator', 'RequestBodyValidator',
30-
'RequestParametersValidator', 'RequestSecurityValidator',
31-
'ResponseDataValidator', 'ResponseHeadersValidator',
29+
"create_spec",
30+
"validate_request",
31+
"validate_response",
32+
"spec_validate_body",
33+
"spec_validate_parameters",
34+
"spec_validate_security",
35+
"spec_validate_data",
36+
"spec_validate_headers",
37+
"RequestValidator",
38+
"ResponseValidator",
39+
"RequestBodyValidator",
40+
"RequestParametersValidator",
41+
"RequestSecurityValidator",
42+
"ResponseDataValidator",
43+
"ResponseHeadersValidator",
3244
]

openapi_core/casting/schemas/casters.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33

44
class BaseSchemaCaster:
5-
65
def __init__(self, schema):
76
self.schema = schema
87

@@ -17,7 +16,6 @@ def cast(self, value):
1716

1817

1918
class CallableSchemaCaster(BaseSchemaCaster):
20-
2119
def __init__(self, schema, caster_callable):
2220
super().__init__(schema)
2321
self.caster_callable = caster_callable
@@ -26,30 +24,27 @@ def cast(self, value):
2624
try:
2725
return self.caster_callable(value)
2826
except (ValueError, TypeError):
29-
raise CastError(value, self.schema['type'])
27+
raise CastError(value, self.schema["type"])
3028

3129

3230
class DummyCaster(BaseSchemaCaster):
33-
3431
def cast(self, value):
3532
return value
3633

3734

3835
class ComplexCaster(BaseSchemaCaster):
39-
4036
def __init__(self, schema, casters_factory):
4137
super().__init__(schema)
4238
self.casters_factory = casters_factory
4339

4440

4541
class ArrayCaster(ComplexCaster):
46-
4742
@property
4843
def items_caster(self):
49-
return self.casters_factory.create(self.schema / 'items')
44+
return self.casters_factory.create(self.schema / "items")
5045

5146
def cast(self, value):
5247
try:
5348
return list(map(self.items_caster, value))
5449
except (ValueError, TypeError):
55-
raise CastError(value, self.schema['type'])
50+
raise CastError(value, self.schema["type"])

openapi_core/casting/schemas/exceptions.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
@dataclass
77
class CastError(OpenAPIError):
88
"""Schema cast operation error"""
9+
910
value: str
1011
type: str
1112

openapi_core/casting/schemas/factories.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
1-
from openapi_core.casting.schemas.casters import (
2-
ArrayCaster, CallableSchemaCaster, DummyCaster,
3-
)
1+
from openapi_core.casting.schemas.casters import ArrayCaster
2+
from openapi_core.casting.schemas.casters import CallableSchemaCaster
3+
from openapi_core.casting.schemas.casters import DummyCaster
44
from openapi_core.casting.schemas.util import forcebool
55

66

77
class SchemaCastersFactory:
88

99
DUMMY_CASTERS = [
10-
'string', 'object', 'any',
10+
"string",
11+
"object",
12+
"any",
1113
]
1214
PRIMITIVE_CASTERS = {
13-
'integer': int,
14-
'number': float,
15-
'boolean': forcebool,
15+
"integer": int,
16+
"number": float,
17+
"boolean": forcebool,
1618
}
1719
COMPLEX_CASTERS = {
18-
'array': ArrayCaster,
20+
"array": ArrayCaster,
1921
}
2022

2123
def create(self, schema):
22-
schema_type = schema.getkey('type', 'any')
24+
schema_type = schema.getkey("type", "any")
2325

2426
if schema_type in self.DUMMY_CASTERS:
2527
return DummyCaster(schema)

openapi_core/contrib/django/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
DjangoOpenAPIResponse = DjangoOpenAPIResponseFactory().create
77

88
__all__ = [
9-
'DjangoOpenAPIRequestFactory', 'DjangoOpenAPIResponseFactory',
10-
'DjangoOpenAPIRequest', 'DjangoOpenAPIResponse',
9+
"DjangoOpenAPIRequestFactory",
10+
"DjangoOpenAPIResponseFactory",
11+
"DjangoOpenAPIRequest",
12+
"DjangoOpenAPIResponse",
1113
]

openapi_core/contrib/django/handlers.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
from openapi_core.exceptions import MissingRequiredParameter
55
from openapi_core.templating.media_types.exceptions import MediaTypeNotFound
6-
from openapi_core.templating.paths.exceptions import (
7-
ServerNotFound, OperationNotFound, PathNotFound,
8-
)
6+
from openapi_core.templating.paths.exceptions import OperationNotFound
7+
from openapi_core.templating.paths.exceptions import PathNotFound
8+
from openapi_core.templating.paths.exceptions import ServerNotFound
99
from openapi_core.validation.exceptions import InvalidSecurity
1010

1111

@@ -22,24 +22,21 @@ class DjangoOpenAPIErrorsHandler:
2222

2323
@classmethod
2424
def handle(cls, errors, req, resp=None):
25-
data_errors = [
26-
cls.format_openapi_error(err)
27-
for err in errors
28-
]
25+
data_errors = [cls.format_openapi_error(err) for err in errors]
2926
data = {
30-
'errors': data_errors,
27+
"errors": data_errors,
3128
}
3229
data_error_max = max(data_errors, key=cls.get_error_status)
33-
return JsonResponse(data, status=data_error_max['status'])
30+
return JsonResponse(data, status=data_error_max["status"])
3431

3532
@classmethod
3633
def format_openapi_error(cls, error):
3734
return {
38-
'title': str(error),
39-
'status': cls.OPENAPI_ERROR_STATUS.get(error.__class__, 400),
40-
'class': str(type(error)),
35+
"title": str(error),
36+
"status": cls.OPENAPI_ERROR_STATUS.get(error.__class__, 400),
37+
"class": str(type(error)),
4138
}
4239

4340
@classmethod
4441
def get_error_status(cls, error):
45-
return error['status']
42+
return error["status"]

openapi_core/contrib/django/middlewares.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ class DjangoOpenAPIMiddleware:
1919
def __init__(self, get_response):
2020
self.get_response = get_response
2121

22-
if not hasattr(settings, 'OPENAPI_SPEC'):
22+
if not hasattr(settings, "OPENAPI_SPEC"):
2323
raise ImproperlyConfigured("OPENAPI_SPEC not defined in settings")
2424

2525
request_validator = RequestValidator(settings.OPENAPI_SPEC)
2626
response_validator = ResponseValidator(settings.OPENAPI_SPEC)
2727
self.validation_processor = OpenAPIProcessor(
28-
request_validator, response_validator)
28+
request_validator, response_validator
29+
)
2930

3031
def __call__(self, request):
3132
openapi_request = self._get_openapi_request(request)
@@ -38,19 +39,18 @@ def __call__(self, request):
3839

3940
openapi_response = self._get_openapi_response(response)
4041
resp_result = self.validation_processor.process_response(
41-
openapi_request, openapi_response)
42+
openapi_request, openapi_response
43+
)
4244
if resp_result.errors:
4345
return self._handle_response_errors(resp_result, request, response)
4446

4547
return response
4648

4749
def _handle_request_errors(self, request_result, req):
48-
return self.errors_handler.handle(
49-
request_result.errors, req, None)
50+
return self.errors_handler.handle(request_result.errors, req, None)
5051

5152
def _handle_response_errors(self, response_result, req, resp):
52-
return self.errors_handler.handle(
53-
response_result.errors, req, resp)
53+
return self.errors_handler.handle(response_result.errors, req, resp)
5454

5555
def _get_openapi_request(self, request):
5656
return self.request_factory.create(request)

0 commit comments

Comments
 (0)