Browse Source

Merge b76a0b0da5 into 56df1b6d7f

pull/6/merge
Confuseh 9 years ago
committed by GitHub
parent
commit
c23b747d50
  1. 4
      disco/bot/providers/base.py
  2. 11
      disco/types/base.py
  3. 4
      disco/util/hashmap.py

4
disco/bot/providers/base.py

@ -3,8 +3,10 @@ import pickle
from six.moves import map from six.moves import map
if six.PY2:
from UserDict import UserDict from UserDict import UserDict
else:
from collections import UserDict
ROOT_SENTINEL = u'\u200B' ROOT_SENTINEL = u'\u200B'
SEP_SENTINEL = u'\u200D' SEP_SENTINEL = u'\u200D'

11
disco/types/base.py

@ -159,7 +159,7 @@ def binary(obj):
return obj.decode('utf-8') return obj.decode('utf-8')
return unicode(obj) return unicode(obj)
else: else:
return bytes(obj) return bytes(obj, 'utf-8')
def with_equality(field): def with_equality(field):
@ -199,11 +199,14 @@ class ModelMeta(type):
dct = {k: v for k, v in six.iteritems(dct) if k not in fields} dct = {k: v for k, v in six.iteritems(dct) if k not in fields}
if SlottedModel and any(map(lambda k: issubclass(k, SlottedModel), parents)): if SlottedModel and any(map(lambda k: issubclass(k, SlottedModel), parents)):
bases = set(k for k, v in six.iteritems(dct) if isinstance(v, CachedSlotProperty)) # Bases conflict with slots, now it's fine on py2 since it replaces it, on py3 that doesn't work are they even needed?
# bases = set(k for k, v in six.iteritems(dct) if isinstance(v, CachedSlotProperty))
if '__slots__' in dct: if '__slots__' in dct:
dct['__slots__'] = tuple(set(dct['__slots__']) | set(fields.keys()) | bases) # dct['__slots__'] = tuple(set(dct['__slots__']) | set(fields.keys()) | bases)
dct['__slots__'] = tuple(set(dct['__slots__']) | set(fields.keys()))
else: else:
dct['__slots__'] = tuple(fields.keys()) + tuple(bases) # dct['__slots__'] = tuple(fields.keys()) + tuple(bases)
dct['__slots__'] = tuple(fields.keys())
dct['_fields'] = fields dct['_fields'] = fields
return super(ModelMeta, cls).__new__(cls, name, parents, dct) return super(ModelMeta, cls).__new__(cls, name, parents, dct)

4
disco/util/hashmap.py

@ -2,8 +2,10 @@ import six
from six.moves import filter, map from six.moves import filter, map
from collections import defaultdict from collections import defaultdict
if six.PY2:
from UserDict import IterableUserDict from UserDict import IterableUserDict
else:
from collections import UserDict as IterableUserDict
class HashMap(IterableUserDict): class HashMap(IterableUserDict):
def items(self): def items(self):

Loading…
Cancel
Save