]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: use OrderedDict instead of sdict
authorFeng, Bob C <bob.c.feng@intel.com>
Mon, 28 Jan 2019 07:03:56 +0000 (15:03 +0800)
committerFeng, Bob C <bob.c.feng@intel.com>
Fri, 1 Feb 2019 03:09:17 +0000 (11:09 +0800)
use OrderedDict instead of sdict, and delete sdict

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
BaseTools/Source/Python/Common/Misc.py

index 2ef8e0783961ec27aad34d5c117b305a8b9426c6..9967ac470cbb225f234d880834979c4a075a817c 100644 (file)
@@ -822,127 +822,6 @@ class Progressor:
             Progressor._ProgressThread.join()\r
             Progressor._ProgressThread = None\r
 \r
-## A dict which can access its keys and/or values orderly\r
-#\r
-#  The class implements a new kind of dict which its keys or values can be\r
-#  accessed in the order they are added into the dict. It guarantees the order\r
-#  by making use of an internal list to keep a copy of keys.\r
-#\r
-class sdict(dict):\r
-    ## Constructor\r
-    def __init__(self):\r
-        dict.__init__(self)\r
-        self._key_list = []\r
-\r
-    ## [] operator\r
-    def __setitem__(self, key, value):\r
-        if key not in self._key_list:\r
-            self._key_list.append(key)\r
-        dict.__setitem__(self, key, value)\r
-\r
-    ## del operator\r
-    def __delitem__(self, key):\r
-        self._key_list.remove(key)\r
-        dict.__delitem__(self, key)\r
-\r
-    ## used in "for k in dict" loop to ensure the correct order\r
-    def __iter__(self):\r
-        return self.iterkeys()\r
-\r
-    ## len() support\r
-    def __len__(self):\r
-        return len(self._key_list)\r
-\r
-    ## "in" test support\r
-    def __contains__(self, key):\r
-        return key in self._key_list\r
-\r
-    ## indexof support\r
-    def index(self, key):\r
-        return self._key_list.index(key)\r
-\r
-    ## insert support\r
-    def insert(self, key, newkey, newvalue, order):\r
-        index = self._key_list.index(key)\r
-        if order == 'BEFORE':\r
-            self._key_list.insert(index, newkey)\r
-            dict.__setitem__(self, newkey, newvalue)\r
-        elif order == 'AFTER':\r
-            self._key_list.insert(index + 1, newkey)\r
-            dict.__setitem__(self, newkey, newvalue)\r
-\r
-    ## append support\r
-    def append(self, sdict):\r
-        for key in sdict:\r
-            if key not in self._key_list:\r
-                self._key_list.append(key)\r
-            dict.__setitem__(self, key, sdict[key])\r
-\r
-    def has_key(self, key):\r
-        return key in self._key_list\r
-\r
-    ## Empty the dict\r
-    def clear(self):\r
-        self._key_list = []\r
-        dict.clear(self)\r
-\r
-    ## Return a copy of keys\r
-    def keys(self):\r
-        keys = []\r
-        for key in self._key_list:\r
-            keys.append(key)\r
-        return keys\r
-\r
-    ## Return a copy of values\r
-    def values(self):\r
-        values = []\r
-        for key in self._key_list:\r
-            values.append(self[key])\r
-        return values\r
-\r
-    ## Return a copy of (key, value) list\r
-    def items(self):\r
-        items = []\r
-        for key in self._key_list:\r
-            items.append((key, self[key]))\r
-        return items\r
-\r
-    ## Iteration support\r
-    def iteritems(self):\r
-        return iter(self.items())\r
-\r
-    ## Keys interation support\r
-    def iterkeys(self):\r
-        return iter(self.keys())\r
-\r
-    ## Values interation support\r
-    def itervalues(self):\r
-        return iter(self.values())\r
-\r
-    ## Return value related to a key, and remove the (key, value) from the dict\r
-    def pop(self, key, *dv):\r
-        value = None\r
-        if key in self._key_list:\r
-            value = self[key]\r
-            self.__delitem__(key)\r
-        elif len(dv) != 0 :\r
-            value = kv[0]\r
-        return value\r
-\r
-    ## Return (key, value) pair, and remove the (key, value) from the dict\r
-    def popitem(self):\r
-        key = self._key_list[-1]\r
-        value = self[key]\r
-        self.__delitem__(key)\r
-        return key, value\r
-\r
-    def update(self, dict=None, **kwargs):\r
-        if dict is not None:\r
-            for k, v in dict.items():\r
-                self[k] = v\r
-        if len(kwargs):\r
-            for k, v in kwargs.items():\r
-                self[k] = v\r
 \r
 ## Dictionary using prioritized list as key\r
 #\r
@@ -1746,7 +1625,7 @@ class SkuClass():
                             ExtraData = "SKU-ID [%s] value %s exceeds the max value of UINT64"\r
                                       % (SkuName, SkuId))\r
 \r
-        self.AvailableSkuIds = sdict()\r
+        self.AvailableSkuIds = OrderedDict()\r
         self.SkuIdSet = []\r
         self.SkuIdNumberSet = []\r
         self.SkuData = SkuIds\r