Skip to content

Commit

Permalink
quick patch for ordereddicts as reported in #246
Browse files Browse the repository at this point in the history
  • Loading branch information
mahmoud committed Jan 18, 2023
1 parent 85a7a3a commit 71a8258
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions glom/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -1910,7 +1910,6 @@ def __subclasshook__(cls, C):
return callable(getattr(C, "__iter__", None))



class _ObjStyleKeysMeta(type):
def __instancecheck__(cls, C):
return hasattr(C, "__dict__") and hasattr(C.__dict__, "keys")
Expand Down Expand Up @@ -2047,7 +2046,6 @@ def get_handler(self, op, obj, path=None, raise_exc=True):
raise UnregisteredTarget(op, obj_type, type_map=type_map, path=path)

self._type_cache[cache_key] = ret

return self._type_cache[cache_key]

def get_type_map(self, op):
Expand All @@ -2071,6 +2069,8 @@ def _register_default_types(self):
self.register(dict, keys=dict.keys)
self.register(list, get=_get_sequence_item)
self.register(tuple, get=_get_sequence_item)
self.register(OrderedDict, get=operator.getitem)
self.register(OrderedDict, keys=OrderedDict.keys)
self.register(_AbstractIterable, iterate=iter)
self.register(_ObjStyleKeys, keys=_ObjStyleKeys.get_keys)

Expand Down Expand Up @@ -2165,7 +2165,7 @@ def register_op(self, op_name, auto_func=None, exact=False):
in self._op_type_map.values()], []))
type_map = self._op_type_map.get(op_name, OrderedDict())
type_tree = self._op_type_tree.get(op_name, OrderedDict())
for t in known_types:
for t in sorted(known_types, key=lambda t: t.__name__):
if t in type_map:
continue
try:
Expand Down

0 comments on commit 71a8258

Please sign in to comment.