Remove unreachable code, PEP 8 whitespace,
mark debug code in comments
This commit is contained in:
parent
08670008ad
commit
e762441d4d
1 changed files with 53 additions and 55 deletions
|
|
@ -24,11 +24,12 @@ from evennia.utils.utils import lazy_property, to_str, make_iter
|
||||||
|
|
||||||
_TYPECLASS_AGGRESSIVE_CACHE = settings.TYPECLASS_AGGRESSIVE_CACHE
|
_TYPECLASS_AGGRESSIVE_CACHE = settings.TYPECLASS_AGGRESSIVE_CACHE
|
||||||
|
|
||||||
#------------------------------------------------------------
|
# -------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Attributes
|
# Attributes
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------
|
# -------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
class Attribute(SharedMemoryModel):
|
class Attribute(SharedMemoryModel):
|
||||||
"""
|
"""
|
||||||
|
|
@ -90,7 +91,7 @@ class Attribute(SharedMemoryModel):
|
||||||
'date_created', editable=False, auto_now_add=True)
|
'date_created', editable=False, auto_now_add=True)
|
||||||
|
|
||||||
# Database manager
|
# Database manager
|
||||||
#objects = managers.AttributeManager()
|
# objects = managers.AttributeManager()
|
||||||
|
|
||||||
@lazy_property
|
@lazy_property
|
||||||
def locks(self):
|
def locks(self):
|
||||||
|
|
@ -110,12 +111,15 @@ class Attribute(SharedMemoryModel):
|
||||||
|
|
||||||
def __lock_storage_get(self):
|
def __lock_storage_get(self):
|
||||||
return self.db_lock_storage
|
return self.db_lock_storage
|
||||||
|
|
||||||
def __lock_storage_set(self, value):
|
def __lock_storage_set(self, value):
|
||||||
self.db_lock_storage = value
|
self.db_lock_storage = value
|
||||||
self.save(update_fields=["db_lock_storage"])
|
self.save(update_fields=["db_lock_storage"])
|
||||||
|
|
||||||
def __lock_storage_del(self):
|
def __lock_storage_del(self):
|
||||||
self.db_lock_storage = ""
|
self.db_lock_storage = ""
|
||||||
self.save(update_fields=["db_lock_storage"])
|
self.save(update_fields=["db_lock_storage"])
|
||||||
|
|
||||||
lock_storage = property(__lock_storage_get, __lock_storage_set, __lock_storage_del)
|
lock_storage = property(__lock_storage_get, __lock_storage_set, __lock_storage_del)
|
||||||
|
|
||||||
# Wrapper properties to easily set database fields. These are
|
# Wrapper properties to easily set database fields. These are
|
||||||
|
|
@ -127,7 +131,7 @@ class Attribute(SharedMemoryModel):
|
||||||
# is the object in question).
|
# is the object in question).
|
||||||
|
|
||||||
# value property (wraps db_value)
|
# value property (wraps db_value)
|
||||||
#@property
|
# @property
|
||||||
def __value_get(self):
|
def __value_get(self):
|
||||||
"""
|
"""
|
||||||
Getter. Allows for `value = self.value`.
|
Getter. Allows for `value = self.value`.
|
||||||
|
|
@ -137,19 +141,19 @@ class Attribute(SharedMemoryModel):
|
||||||
"""
|
"""
|
||||||
return from_pickle(self.db_value, db_obj=self)
|
return from_pickle(self.db_value, db_obj=self)
|
||||||
|
|
||||||
#@value.setter
|
# @value.setter
|
||||||
def __value_set(self, new_value):
|
def __value_set(self, new_value):
|
||||||
"""
|
"""
|
||||||
Setter. Allows for self.value = value. We cannot cache here,
|
Setter. Allows for self.value = value. We cannot cache here,
|
||||||
see self.__value_get.
|
see self.__value_get.
|
||||||
"""
|
"""
|
||||||
self.db_value = to_pickle(new_value)
|
self.db_value = to_pickle(new_value)
|
||||||
#print "value_set, self.db_value:", repr(self.db_value)
|
# print("value_set, self.db_value:", repr(self.db_value)) # DEBUG
|
||||||
self.save(update_fields=["db_value"])
|
self.save(update_fields=["db_value"])
|
||||||
|
|
||||||
#@value.deleter
|
# @value.deleter
|
||||||
def __value_del(self):
|
def __value_del(self):
|
||||||
"Deleter. Allows for del attr.value. This removes the entire attribute."
|
"""Deleter. Allows for del attr.value. This removes the entire attribute."""
|
||||||
self.delete()
|
self.delete()
|
||||||
value = property(__value_get, __value_set, __value_del)
|
value = property(__value_get, __value_set, __value_del)
|
||||||
|
|
||||||
|
|
@ -163,7 +167,7 @@ class Attribute(SharedMemoryModel):
|
||||||
return smart_str("%s(%s)" % (self.db_key, self.id))
|
return smart_str("%s(%s)" % (self.db_key, self.id))
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return u"%s(%s)" % (self.db_key,self.id)
|
return u"%s(%s)" % (self.db_key, self.id)
|
||||||
|
|
||||||
def access(self, accessing_obj, access_type='read', default=False, **kwargs):
|
def access(self, accessing_obj, access_type='read', default=False, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
|
@ -202,7 +206,7 @@ class AttributeHandler(object):
|
||||||
_attrtype = None
|
_attrtype = None
|
||||||
|
|
||||||
def __init__(self, obj):
|
def __init__(self, obj):
|
||||||
"Initialize handler."
|
"""Initialize handler."""
|
||||||
self.obj = obj
|
self.obj = obj
|
||||||
self._objid = obj.id
|
self._objid = obj.id
|
||||||
self._model = to_str(obj.__dbclass__.__name__.lower())
|
self._model = to_str(obj.__dbclass__.__name__.lower())
|
||||||
|
|
@ -213,10 +217,10 @@ class AttributeHandler(object):
|
||||||
self._cache_complete = False
|
self._cache_complete = False
|
||||||
|
|
||||||
def _fullcache(self):
|
def _fullcache(self):
|
||||||
"Cache all attributes of this object"
|
"""Cache all attributes of this object"""
|
||||||
query = {"%s__id" % self._model : self._objid,
|
query = {"%s__id" % self._model: self._objid,
|
||||||
"attribute__db_model" : self._model,
|
"attribute__db_model": self._model,
|
||||||
"attribute__db_attrtype" : self._attrtype}
|
"attribute__db_attrtype": self._attrtype}
|
||||||
attrs = [conn.attribute for conn in getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query)]
|
attrs = [conn.attribute for conn in getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query)]
|
||||||
self._cache = dict(("%s-%s" % (to_str(attr.db_key).lower(),
|
self._cache = dict(("%s-%s" % (to_str(attr.db_key).lower(),
|
||||||
attr.db_category.lower() if attr.db_category else None),
|
attr.db_category.lower() if attr.db_category else None),
|
||||||
|
|
@ -268,11 +272,11 @@ class AttributeHandler(object):
|
||||||
else:
|
else:
|
||||||
return [] # no such attribute: return an empty list
|
return [] # no such attribute: return an empty list
|
||||||
else:
|
else:
|
||||||
query = {"%s__id" % self._model : self._objid,
|
query = {"%s__id" % self._model: self._objid,
|
||||||
"attribute__db_model" : self._model,
|
"attribute__db_model": self._model,
|
||||||
"attribute__db_attrtype" : self._attrtype,
|
"attribute__db_attrtype": self._attrtype,
|
||||||
"attribute__db_key__iexact" : key.lower(),
|
"attribute__db_key__iexact": key.lower(),
|
||||||
"attribute__db_category__iexact" : category.lower() if category else None}
|
"attribute__db_category__iexact": category.lower() if category else None}
|
||||||
conn = getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query)
|
conn = getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query)
|
||||||
if conn:
|
if conn:
|
||||||
attr = conn[0].attribute
|
attr = conn[0].attribute
|
||||||
|
|
@ -293,12 +297,12 @@ class AttributeHandler(object):
|
||||||
return [attr for key, attr in self._cache.items() if key.endswith(catkey) and attr]
|
return [attr for key, attr in self._cache.items() if key.endswith(catkey) and attr]
|
||||||
else:
|
else:
|
||||||
# we have to query to make this category up-date in the cache
|
# we have to query to make this category up-date in the cache
|
||||||
query = {"%s__id" % self._model : self._objid,
|
query = {"%s__id" % self._model: self._objid,
|
||||||
"attribute__db_model" : self._model,
|
"attribute__db_model": self._model,
|
||||||
"attribute__db_attrtype" : self._attrtype,
|
"attribute__db_attrtype": self._attrtype,
|
||||||
"attribute__db_category__iexact" : category.lower() if category else None}
|
"attribute__db_category__iexact": category.lower() if category else None}
|
||||||
attrs = [conn.attribute for conn in getattr(self.obj,
|
attrs = [conn.attribute for conn
|
||||||
self._m2m_fieldname).through.objects.filter(**query)]
|
in getattr(self.obj, self._m2m_fieldname).through.objects.filter(**query)]
|
||||||
for attr in attrs:
|
for attr in attrs:
|
||||||
if attr.pk:
|
if attr.pk:
|
||||||
cachekey = "%s-%s" % (attr.db_key, category)
|
cachekey = "%s-%s" % (attr.db_key, category)
|
||||||
|
|
@ -306,7 +310,6 @@ class AttributeHandler(object):
|
||||||
# mark category cache as up-to-date
|
# mark category cache as up-to-date
|
||||||
self._catcache[catkey] = True
|
self._catcache[catkey] = True
|
||||||
return attrs
|
return attrs
|
||||||
return []
|
|
||||||
|
|
||||||
def _setcache(self, key, category, attr_obj):
|
def _setcache(self, key, category, attr_obj):
|
||||||
"""
|
"""
|
||||||
|
|
@ -402,6 +405,7 @@ class AttributeHandler(object):
|
||||||
accessing_obj (object, optional): If set, an `attrread`
|
accessing_obj (object, optional): If set, an `attrread`
|
||||||
permission lock will be checked before returning each
|
permission lock will be checked before returning each
|
||||||
looked-after Attribute.
|
looked-after Attribute.
|
||||||
|
default_access (bool, optional):
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
result (any, Attribute or list): This will be the value of the found
|
result (any, Attribute or list): This will be the value of the found
|
||||||
|
|
@ -416,7 +420,7 @@ class AttributeHandler(object):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
class RetDefault(object):
|
class RetDefault(object):
|
||||||
"Holds default values"
|
"""Holds default values"""
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.key = None
|
self.key = None
|
||||||
self.value = default
|
self.value = default
|
||||||
|
|
@ -444,8 +448,7 @@ class AttributeHandler(object):
|
||||||
ret = ret if return_obj else [attr.value for attr in ret if attr]
|
ret = ret if return_obj else [attr.value for attr in ret if attr]
|
||||||
if not ret:
|
if not ret:
|
||||||
return ret if len(key) > 1 else default
|
return ret if len(key) > 1 else default
|
||||||
return ret[0] if len(ret)==1 else ret
|
return ret[0] if len(ret) == 1 else ret
|
||||||
|
|
||||||
|
|
||||||
def add(self, key, value, category=None, lockstring="",
|
def add(self, key, value, category=None, lockstring="",
|
||||||
strattr=False, accessing_obj=None, default_access=True):
|
strattr=False, accessing_obj=None, default_access=True):
|
||||||
|
|
@ -470,8 +473,7 @@ class AttributeHandler(object):
|
||||||
`attrcreate` is defined on the Attribute in question.
|
`attrcreate` is defined on the Attribute in question.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if accessing_obj and not self.obj.access(accessing_obj,
|
if accessing_obj and not self.obj.access(accessing_obj, self._attrcreate, default=default_access):
|
||||||
self._attrcreate, default=default_access):
|
|
||||||
# check create access
|
# check create access
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
@ -494,19 +496,18 @@ class AttributeHandler(object):
|
||||||
attr_obj.value = value
|
attr_obj.value = value
|
||||||
else:
|
else:
|
||||||
# create a new Attribute (no OOB handlers can be notified)
|
# create a new Attribute (no OOB handlers can be notified)
|
||||||
kwargs = {"db_key" : keystr,
|
kwargs = {"db_key": keystr,
|
||||||
"db_category" : category,
|
"db_category": category,
|
||||||
"db_model" : self._model,
|
"db_model": self._model,
|
||||||
"db_attrtype" : self._attrtype,
|
"db_attrtype": self._attrtype,
|
||||||
"db_value" : None if strattr else to_pickle(value),
|
"db_value": None if strattr else to_pickle(value),
|
||||||
"db_strvalue" : value if strattr else None}
|
"db_strvalue": value if strattr else None}
|
||||||
new_attr = Attribute(**kwargs)
|
new_attr = Attribute(**kwargs)
|
||||||
new_attr.save()
|
new_attr.save()
|
||||||
getattr(self.obj, self._m2m_fieldname).add(new_attr)
|
getattr(self.obj, self._m2m_fieldname).add(new_attr)
|
||||||
# update cache
|
# update cache
|
||||||
self._setcache(keystr, category, new_attr)
|
self._setcache(keystr, category, new_attr)
|
||||||
|
|
||||||
|
|
||||||
def batch_add(self, key, value, category=None, lockstring="",
|
def batch_add(self, key, value, category=None, lockstring="",
|
||||||
strattr=False, accessing_obj=None, default_access=True):
|
strattr=False, accessing_obj=None, default_access=True):
|
||||||
"""
|
"""
|
||||||
|
|
@ -535,8 +536,7 @@ class AttributeHandler(object):
|
||||||
RuntimeError: If `key` and `value` lists are not of the
|
RuntimeError: If `key` and `value` lists are not of the
|
||||||
same lengths.
|
same lengths.
|
||||||
"""
|
"""
|
||||||
if accessing_obj and not self.obj.access(accessing_obj,
|
if accessing_obj and not self.obj.access(accessing_obj, self._attrcreate, default=default_access):
|
||||||
self._attrcreate, default=default_access):
|
|
||||||
# check create access
|
# check create access
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
@ -564,12 +564,12 @@ class AttributeHandler(object):
|
||||||
attr_obj.value = new_value
|
attr_obj.value = new_value
|
||||||
else:
|
else:
|
||||||
# create a new Attribute (no OOB handlers can be notified)
|
# create a new Attribute (no OOB handlers can be notified)
|
||||||
kwargs = {"db_key" : keystr,
|
kwargs = {"db_key": keystr,
|
||||||
"db_category" : category,
|
"db_category": category,
|
||||||
"db_model": self._model,
|
"db_model": self._model,
|
||||||
"db_attrtype" : self._attrtype,
|
"db_attrtype": self._attrtype,
|
||||||
"db_value" : None if strattr else to_pickle(new_value),
|
"db_value": None if strattr else to_pickle(new_value),
|
||||||
"db_strvalue" : value if strattr else None}
|
"db_strvalue": value if strattr else None}
|
||||||
new_attr = Attribute(**kwargs)
|
new_attr = Attribute(**kwargs)
|
||||||
new_attr.save()
|
new_attr.save()
|
||||||
new_attrobjs.append(new_attr)
|
new_attrobjs.append(new_attr)
|
||||||
|
|
@ -578,7 +578,6 @@ class AttributeHandler(object):
|
||||||
# Add new objects to m2m field all at once
|
# Add new objects to m2m field all at once
|
||||||
getattr(self.obj, self._m2m_fieldname).add(*new_attrobjs)
|
getattr(self.obj, self._m2m_fieldname).add(*new_attrobjs)
|
||||||
|
|
||||||
|
|
||||||
def remove(self, key, raise_exception=False, category=None,
|
def remove(self, key, raise_exception=False, category=None,
|
||||||
accessing_obj=None, default_access=True):
|
accessing_obj=None, default_access=True):
|
||||||
"""
|
"""
|
||||||
|
|
@ -729,7 +728,6 @@ def initialize_nick_templates(in_template, out_template):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
# create the regex for in_template
|
# create the regex for in_template
|
||||||
regex_string = fnmatch.translate(in_template)
|
regex_string = fnmatch.translate(in_template)
|
||||||
# we must account for a possible line break coming over the wire
|
# we must account for a possible line break coming over the wire
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue