Skip to content

Commit 180ee00

Browse files
Merge pull request #817 from hugapi/develop
Release 2.5.6
2 parents 8f71844 + 2295257 commit 180ee00

16 files changed

+95
-34
lines changed

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 2.5.5
2+
current_version = 2.5.6
33

44
[bumpversion:file:.env]
55

.coveragerc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ exclude_lines = def hug
77
sys.stdout.buffer.write
88
class Socket
99
pragma: no cover
10+
except ImportError:
11+
if MARSHMALLOW_MAJOR_VERSION is None or MARSHMALLOW_MAJOR_VERSION == 2:

.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ fi
1111

1212
export PROJECT_NAME=$OPEN_PROJECT_NAME
1313
export PROJECT_DIR="$PWD"
14-
export PROJECT_VERSION="2.5.5"
14+
export PROJECT_VERSION="2.5.6"
1515

1616
if [ ! -d "venv" ]; then
1717
if ! hash pyvenv 2>/dev/null; then

ACKNOWLEDGEMENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Code Contributors
5151
- Stanislav (@atmo)
5252
- Lordran (@xzycn)
5353
- Stephan Fitzpatrick (@knowsuchagency)
54-
54+
- Edvard Majakari (@EdvardM)
5555

5656
Documenters
5757
===================

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ Ideally, within a virtual environment.
1111

1212
Changelog
1313
=========
14+
### 2.5.6 - June 20, 2019
15+
- Fixed issue #815: map_params() causes api documentation to lose param type information
16+
- Improved project testing: restoring 100% coverage
17+
1418
### 2.5.5 - June 13, 2019
1519
- Fixed issue #808: Problems with command line invocation via hug CLI
1620
- Fixed issue #647: Support for arbitrary URL complexity when using CORS middleware

hug/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@
2121
"""
2222
from __future__ import absolute_import
2323

24-
current = "2.5.5"
24+
current = "2.5.6"

hug/api.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,8 +348,7 @@ def version_router(
348348
self, request, response, api_version=None, versions=None, not_found=None, **kwargs
349349
):
350350
"""Intelligently routes a request to the correct handler based on the version being requested"""
351-
if versions is None:
352-
versions = {}
351+
versions = {} if versions is None else versions
353352
request_version = self.determine_version(request, api_version)
354353
if request_version:
355354
request_version = int(request_version)

hug/interface.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ def __init__(self, route, function):
212212
for name, transform in self.interface.input_transformations.items()
213213
}
214214
else:
215+
self.map_params = {}
215216
self.input_transformations = self.interface.input_transformations
216217

217218
if "output" in route:
@@ -323,7 +324,7 @@ def documentation(self, add_to=None):
323324
inputs = doc.setdefault("inputs", OrderedDict())
324325
types = self.interface.spec.__annotations__
325326
for argument in parameters:
326-
kind = types.get(argument, text)
327+
kind = types.get(self._remap_entry(argument), text)
327328
if getattr(kind, "directive", None) is True:
328329
continue
329330

@@ -340,6 +341,9 @@ def _rewrite_params(self, params):
340341
if interface_name in params:
341342
params[internal_name] = params.pop(interface_name)
342343

344+
def _remap_entry(self, interface_name):
345+
return self.map_params.get(interface_name, interface_name)
346+
343347
@staticmethod
344348
def cleanup_parameters(parameters, exception=None):
345349
for _parameter, directive in parameters.items():
@@ -417,8 +421,7 @@ def __call__(self, *args, **kwargs):
417421
self.api.delete_context(context, errors=errors)
418422
return outputs(errors) if outputs else errors
419423

420-
if getattr(self, "map_params", None):
421-
self._rewrite_params(kwargs)
424+
self._rewrite_params(kwargs)
422425
try:
423426
result = self.interface(**kwargs)
424427
if self.transform:
@@ -617,8 +620,7 @@ def exit_callback(message):
617620
elif add_options_to:
618621
pass_to_function[add_options_to].append(option)
619622

620-
if getattr(self, "map_params", None):
621-
self._rewrite_params(pass_to_function)
623+
self._rewrite_params(pass_to_function)
622624

623625
try:
624626
if args:
@@ -816,8 +818,7 @@ def call_function(self, parameters):
816818
parameters = {
817819
key: value for key, value in parameters.items() if key in self.all_parameters
818820
}
819-
if getattr(self, "map_params", None):
820-
self._rewrite_params(parameters)
821+
self._rewrite_params(parameters)
821822

822823
return self.interface(**parameters)
823824

@@ -854,7 +855,7 @@ def render_content(self, content, context, request, response, **kwargs):
854855
if size:
855856
response.set_stream(content, size)
856857
else:
857-
response.stream = content
858+
response.stream = content # pragma: no cover
858859
else:
859860
response.data = content
860861

hug/routing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ def allow_origins(
317317
response_headers = {}
318318
if origins:
319319

320-
@hug.response_middleware()
320+
@hug.response_middleware(api=self.route.get("api", None))
321321
def process_data(request, response, resource):
322322
if "ORIGIN" in request.headers:
323323
origin = request.headers["ORIGIN"]

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def list_modules(dirname):
7878

7979
setup(
8080
name="hug",
81-
version="2.5.5",
81+
version="2.5.6",
8282
description="A Python framework that makes developing APIs "
8383
"as simple as possible, but no simpler.",
8484
long_description=long_description,

0 commit comments

Comments
 (0)