Skip to content

Commit 086e0b1

Browse files
authored
Merge pull request #308 from jparise/schema-parameters-extensions
Add extensions support for the Parameter model
2 parents 098b015 + 4c725af commit 086e0b1

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

openapi_core/schema/parameters/factories.py

+9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""OpenAPI core parameters factories module"""
22
from openapi_core.compat import lru_cache
33
from openapi_core.schema.content.factories import ContentFactory
4+
from openapi_core.schema.extensions.generators import ExtensionsGenerator
45
from openapi_core.schema.parameters.models import Parameter
56

67

@@ -32,14 +33,22 @@ def create(self, parameter_spec, parameter_name=None):
3233
if content_spec:
3334
content = self.content_factory.create(content_spec)
3435

36+
extensions = self.extensions_generator.generate(parameter_deref)
37+
3538
return Parameter(
3639
parameter_name, parameter_in,
3740
schema=schema, required=required,
3841
allow_empty_value=allow_empty_value,
3942
style=style, explode=explode, content=content,
43+
extensions=extensions,
4044
)
4145

4246
@property
4347
@lru_cache()
4448
def content_factory(self):
4549
return ContentFactory(self.dereferencer, self.schemas_registry)
50+
51+
@property
52+
@lru_cache()
53+
def extensions_generator(self):
54+
return ExtensionsGenerator(self.dereferencer)

openapi_core/schema/parameters/models.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ class Parameter(object):
1515
def __init__(
1616
self, name, location, schema=None, required=False,
1717
deprecated=False, allow_empty_value=False,
18-
items=None, style=None, explode=None, content=None):
18+
items=None, style=None, explode=None, content=None,
19+
extensions=None):
1920
self.name = name
2021
self.location = ParameterLocation(location)
2122
self.schema = schema
@@ -31,6 +32,7 @@ def __init__(
3132
self.style = ParameterStyle(style or self.default_style)
3233
self.explode = self.default_explode if explode is None else explode
3334
self.content = content
35+
self.extensions = extensions and dict(extensions) or {}
3436

3537
@property
3638
def aslist(self):

0 commit comments

Comments
 (0)