Skip to content

Commit 8ab5e31

Browse files
committed
Removed OrderedDict in serializers, utils and views
1 parent 848d333 commit 8ab5e31

File tree

4 files changed

+17
-36
lines changed

4 files changed

+17
-36
lines changed

rest_framework_json_api/serializers.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from collections import OrderedDict
21
from collections.abc import Mapping
32

43
import inflection
@@ -95,7 +94,7 @@ def __init__(self, *args, **kwargs):
9594
pass
9695
else:
9796
fieldset = request.query_params.get(param_name).split(",")
98-
# iterate over a *copy* of self.fields' underlying OrderedDict, because we may
97+
# iterate over a *copy* of self.fields' underlying dict, because we may
9998
# modify the original during the iteration.
10099
# self.fields is a `rest_framework.utils.serializer_helpers.BindingDict`
101100
for field_name, _field in self.fields.fields.copy().items():
@@ -305,7 +304,7 @@ def get_field_names(self, declared_fields, info):
305304
"""
306305
meta_fields = getattr(self.Meta, "meta_fields", [])
307306

308-
declared = OrderedDict()
307+
declared = {}
309308
for field_name in set(declared_fields.keys()):
310309
field = declared_fields[field_name]
311310
if field_name not in meta_fields:

rest_framework_json_api/utils.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import inspect
22
import operator
3-
from collections import OrderedDict
43

54
import inflection
65
from django.conf import settings
@@ -107,11 +106,7 @@ def format_field_names(obj, format_type=None):
107106
format_type = json_api_settings.FORMAT_FIELD_NAMES
108107

109108
if isinstance(obj, dict):
110-
formatted = OrderedDict()
111-
for key, value in obj.items():
112-
key = format_value(key, format_type)
113-
formatted[key] = value
114-
return formatted
109+
return {format_value(key, format_type): value for key, value in obj.items()}
115110

116111
return obj
117112

rest_framework_json_api/views.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
from rest_framework_json_api.serializers import ResourceIdentifierObjectSerializer
2424
from rest_framework_json_api.utils import (
2525
Hyperlink,
26-
OrderedDict,
2726
get_included_resources,
2827
get_resource_type_from_instance,
2928
undo_format_link_segment,
@@ -275,7 +274,7 @@ def get_url(self, name, view_name, kwargs, request):
275274
return Hyperlink(url, name)
276275

277276
def get_links(self):
278-
return_data = OrderedDict()
277+
return_data = {}
279278
self_link = self.get_url(
280279
"self", self.self_link_view_name, self.kwargs, self.request
281280
)
@@ -284,9 +283,9 @@ def get_links(self):
284283
"related", self.related_link_view_name, related_kwargs, self.request
285284
)
286285
if self_link:
287-
return_data.update({"self": self_link})
286+
return_data["self"] = self_link
288287
if related_link:
289-
return_data.update({"related": related_link})
288+
return_data["related"] = related_link
290289
return return_data
291290

292291
def get(self, request, *args, **kwargs):

tests/test_pagination.py

+11-23
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from collections import OrderedDict
2-
31
from rest_framework.request import Request
42

53
from rest_framework_json_api.pagination import JsonApiLimitOffsetPagination
@@ -27,28 +25,18 @@ def test_get_paginated_response(self, rf):
2725

2826
expected_content = {
2927
"results": list(range(11, 16)),
30-
"links": OrderedDict(
31-
[
32-
("first", "http://testserver/?page%5Blimit%5D=5"),
33-
(
34-
"last",
35-
"http://testserver/?page%5Blimit%5D=5&page%5Boffset%5D=100",
36-
),
37-
(
38-
"next",
39-
"http://testserver/?page%5Blimit%5D=5&page%5Boffset%5D=15",
40-
),
41-
("prev", "http://testserver/?page%5Blimit%5D=5&page%5Boffset%5D=5"),
42-
]
43-
),
28+
"links": {
29+
"first": "http://testserver/?page%5Blimit%5D=5",
30+
"last": "http://testserver/?page%5Blimit%5D=5&page%5Boffset%5D=100",
31+
"next": "http://testserver/?page%5Blimit%5D=5&page%5Boffset%5D=15",
32+
"prev": "http://testserver/?page%5Blimit%5D=5&page%5Boffset%5D=5",
33+
},
4434
"meta": {
45-
"pagination": OrderedDict(
46-
[
47-
("count", count),
48-
("limit", limit),
49-
("offset", offset),
50-
]
51-
)
35+
"pagination": {
36+
"count": count,
37+
"limit": limit,
38+
"offset": offset,
39+
}
5240
},
5341
}
5442

0 commit comments

Comments
 (0)