From 2e0a5e54c846dacda3272f4338187284159d3dce Mon Sep 17 00:00:00 2001
From: Asif Saif Uddin <auvipy@gmail.com>
Date: Sun, 16 Oct 2022 13:34:04 +0600
Subject: [PATCH 1/3] try using python dict instead of ordered dict in metadata

---
 rest_framework_json_api/metadata.py | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/rest_framework_json_api/metadata.py b/rest_framework_json_api/metadata.py
index 1906de71..9f60b0b6 100644
--- a/rest_framework_json_api/metadata.py
+++ b/rest_framework_json_api/metadata.py
@@ -1,5 +1,3 @@
-from collections import OrderedDict
-
 from django.db.models.fields import related
 from django.utils.encoding import force_str
 from rest_framework import serializers
@@ -65,7 +63,7 @@ class JSONAPIMetadata(SimpleMetadata):
         )
 
     def determine_metadata(self, request, view):
-        metadata = OrderedDict()
+        metadata = {}
         metadata["name"] = view.get_view_name()
         metadata["description"] = view.get_view_description()
         metadata["renders"] = [
@@ -92,19 +90,19 @@ def get_serializer_info(self, serializer):
         # Remove the URL field if present
         serializer.fields.pop(api_settings.URL_FIELD_NAME, None)
 
-        return OrderedDict(
+        return {
             [
                 (format_field_name(field_name), self.get_field_info(field))
                 for field_name, field in serializer.fields.items()
             ]
-        )
+        }
 
     def get_field_info(self, field):
         """
         Given an instance of a serializer field, return a dictionary
         of metadata about it.
         """
-        field_info = OrderedDict()
+        field_info = {}
         serializer = field.parent
 
         if isinstance(field, serializers.ManyRelatedField):

From 6a74ec78bb591e9f52d6220c1461a3583bf30b42 Mon Sep 17 00:00:00 2001
From: Asif Saif Uddin <auvipy@gmail.com>
Date: Sun, 16 Oct 2022 13:36:43 +0600
Subject: [PATCH 2/3] try using python dict instead of ordered dict in
 pagination field

---
 rest_framework_json_api/pagination.py | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/rest_framework_json_api/pagination.py b/rest_framework_json_api/pagination.py
index 6cbd744c..3c37a20d 100644
--- a/rest_framework_json_api/pagination.py
+++ b/rest_framework_json_api/pagination.py
@@ -1,7 +1,6 @@
 """
 Pagination fields
 """
-from collections import OrderedDict
 
 from rest_framework.pagination import LimitOffsetPagination, PageNumberPagination
 from rest_framework.utils.urls import remove_query_param, replace_query_param
@@ -36,22 +35,22 @@ def get_paginated_response(self, data):
             {
                 "results": data,
                 "meta": {
-                    "pagination": OrderedDict(
+                    "pagination": {
                         [
                             ("page", self.page.number),
                             ("pages", self.page.paginator.num_pages),
                             ("count", self.page.paginator.count),
                         ]
-                    )
+                    }
                 },
-                "links": OrderedDict(
+                "links": {
                     [
                         ("first", self.build_link(1)),
                         ("last", self.build_link(self.page.paginator.num_pages)),
                         ("next", self.build_link(next)),
                         ("prev", self.build_link(previous)),
                     ]
-                ),
+                },
             }
         )
 
@@ -97,21 +96,21 @@ def get_paginated_response(self, data):
             {
                 "results": data,
                 "meta": {
-                    "pagination": OrderedDict(
+                    "pagination": {
                         [
                             ("count", self.count),
                             ("limit", self.limit),
                             ("offset", self.offset),
                         ]
-                    )
+                    }
                 },
-                "links": OrderedDict(
+                "links": {
                     [
                         ("first", self.get_first_link()),
                         ("last", self.get_last_link()),
                         ("next", self.get_next_link()),
                         ("prev", self.get_previous_link()),
                     ]
-                ),
+                },
             }
         )

From a830b6fac85136a6cb4ab92477e11946d7aa78e5 Mon Sep 17 00:00:00 2001
From: Asif Saif Uddin <auvipy@gmail.com>
Date: Sun, 16 Oct 2022 13:44:57 +0600
Subject: [PATCH 3/3] try using python dict instead of ordered dict in
 relations

---
 rest_framework_json_api/relations.py | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/rest_framework_json_api/relations.py b/rest_framework_json_api/relations.py
index 6cca15c8..a521c68a 100644
--- a/rest_framework_json_api/relations.py
+++ b/rest_framework_json_api/relations.py
@@ -1,5 +1,4 @@
 import json
-from collections import OrderedDict
 
 import inflection
 from django.core.exceptions import ImproperlyConfigured
@@ -104,7 +103,7 @@ def get_url(self, name, view_name, kwargs, request):
     def get_links(self, obj=None, lookup_field="pk"):
         request = self.context.get("request", None)
         view = self.context.get("view", None)
-        return_data = OrderedDict()
+        return_data = {}
 
         kwargs = {
             lookup_field: getattr(obj, lookup_field)
@@ -257,7 +256,7 @@ def to_representation(self, value):
         if resource_type is None or not self._skip_polymorphic_optimization:
             resource_type = get_resource_type_from_instance(value)
 
-        return OrderedDict([("type", resource_type), ("id", str(pk))])
+        return {[("type", resource_type), ("id", str(pk))]}
 
     def get_resource_type_from_included_serializer(self):
         """
@@ -301,12 +300,12 @@ def get_choices(self, cutoff=None):
         if cutoff is not None:
             queryset = queryset[:cutoff]
 
-        return OrderedDict(
+        return {
             [
                 (json.dumps(self.to_representation(item)), self.display_value(item))
                 for item in queryset
             ]
-        )
+        }
 
 
 class PolymorphicResourceRelatedField(ResourceRelatedField):