# Import Modules\r
#\r
from __future__ import absolute_import\r
-import Common.LongFilePathOs as os\r
+\r
import sys\r
import string\r
import threading\r
import shutil\r
from random import sample\r
from struct import pack\r
-from UserDict import IterableUserDict\r
-from UserList import UserList\r
+import uuid\r
+import subprocess\r
+from collections import OrderedDict\r
\r
+import Common.LongFilePathOs as os\r
from Common import EdkLogger as EdkLogger\r
from Common import GlobalData as GlobalData\r
-from .DataType import *\r
-from .BuildToolError import *\r
+from Common.DataType import *\r
+from Common.BuildToolError import *\r
from CommonDataClass.DataClass import *\r
-from .Parsing import GetSplitValueList\r
+from Common.Parsing import GetSplitValueList\r
from Common.LongFilePathSupport import OpenLongFilePath as open\r
from Common.MultipleWorkspace import MultipleWorkspace as mws\r
-import uuid\r
from CommonDataClass.Exceptions import BadExpression\r
from Common.caching import cached_property\r
-import subprocess\r
-from collections import OrderedDict\r
+\r
## Regular expression used to find out place holders in string template\r
gPlaceholderPattern = re.compile("\$\{([^$()\s]+)\}", re.MULTILINE | re.UNICODE)\r
\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(IterableUserDict):\r
+class sdict(dict):\r
## Constructor\r
def __init__(self):\r
- IterableUserDict.__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
- IterableUserDict.__setitem__(self, key, value)\r
+ dict.__setitem__(self, key, value)\r
\r
## del operator\r
def __delitem__(self, key):\r
self._key_list.remove(key)\r
- IterableUserDict.__delitem__(self, 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
index = self._key_list.index(key)\r
if order == 'BEFORE':\r
self._key_list.insert(index, newkey)\r
- IterableUserDict.__setitem__(self, newkey, newvalue)\r
+ dict.__setitem__(self, newkey, newvalue)\r
elif order == 'AFTER':\r
self._key_list.insert(index + 1, newkey)\r
- IterableUserDict.__setitem__(self, newkey, newvalue)\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
- IterableUserDict.__setitem__(self, key, sdict[key])\r
+ dict.__setitem__(self, key, sdict[key])\r
\r
def has_key(self, key):\r
return key in self._key_list\r
## Empty the dict\r
def clear(self):\r
self._key_list = []\r
- IterableUserDict.clear(self)\r
+ dict.clear(self)\r
\r
## Return a copy of keys\r
def keys(self):\r