Skip to content

Commit 80ef496

Browse files
committed
deserialize data form media type py27
1 parent 852c081 commit 80ef496

File tree

5 files changed

+25
-6
lines changed

5 files changed

+25
-6
lines changed

openapi_core/compat.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,22 @@
99
except ImportError:
1010
from backports.functools_partialmethod import partialmethod
1111

12-
__all__ = ['lru_cache', 'partialmethod']
12+
try:
13+
from email.parser import BytesParser
14+
except ImportError:
15+
from future.backports.email.parser import BytesParser
16+
17+
try:
18+
from email.mime.multipart import MIMEMultipart
19+
except ImportError:
20+
from future.backports.email.mime.multipart import MIMEMultipart
21+
22+
try:
23+
from email.mime.nonmultipart import MIMENonMultipart
24+
except ImportError:
25+
from future.backports.email.mime.nonmultipart import MIMENonMultipart
26+
27+
__all__ = [
28+
'lru_cache', 'partialmethod', 'BytesParser',
29+
'MIMEMultipart', 'MIMENonMultipart',
30+
]

openapi_core/deserializing/media_types/util.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
from email.parser import BytesParser
21
from json import loads
32

43
from six import binary_type
54
from six.moves.urllib.parse import parse_qsl
65

6+
from openapi_core.compat import BytesParser
7+
78

89
def json_loads(value):
910
# python 3.5 doesn't support binary input fix

requirements_2.7.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ six
55
lazy-object-proxy
66
backports.functools-lru-cache
77
backports.functools-partialmethod
8+
future==0.18.2
89
enum34
910
attrs
1011
more-itertools==5.0.0

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ install_requires =
3737
more-itertools
3838
backports.functools-lru-cache; python_version<"3.0"
3939
backports.functools-partialmethod; python_version<"3.0"
40+
future; python_version<"3.0"
4041
tests_require =
4142
mock; python_version<"3.0"
4243
pytest

tests/unit/deserializing/test_media_types_deserializers.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
from email.mime.multipart import MIMEMultipart
2-
from email.mime.nonmultipart import MIMENonMultipart
3-
41
import pytest
52

3+
from openapi_core.compat import MIMEMultipart, MIMENonMultipart
64
from openapi_core.deserializing.exceptions import DeserializeError
75
from openapi_core.deserializing.media_types.factories import (
86
MediaTypeDeserializersFactory,
97
)
108
from openapi_core.schema.media_types.models import MediaType
119

1210

13-
class MIMEFormdata(MIMENonMultipart):
11+
class MIMEFormdata(MIMENonMultipart, object):
1412
def __init__(self, keyname, *args, **kwargs):
1513
super(MIMEFormdata, self).__init__(*args, **kwargs)
1614
self.add_header(

0 commit comments

Comments
 (0)