Пример #1
0
	def __setattr__(self, attr, value):
		if getattr(self, "_useDb", False):
			import songdb
			if attr in songdb.Attribs:
				songdb.updateSongAttribValue(self, attr, value)
		# Note that locally stored attribs might get outdated.
		# Thus, in getFast(), those will not be returned for accuracy=1.
		object.__setattr__(self, attr, value)
Пример #2
0
	def update(self, attr, updateFunc, default=None):
		"updateFunc is supposed to be oldValue->newValue."
		"E.g. you can increment by one or so. While updateFunc is executed, the DB is blocked."
		import songdb
		if getattr(self, "_useDb", False) and attr in songdb.Attribs:
			value = songdb.updateSongAttribValue(self, attr, updateFunc, default=default)
		else:
			value = getattr(self, attr, default)
			value = updateFunc(value)
		# Note that locally stored attribs might get outdated.
		# Thus, in getFast(), those will not be returned for accuracy=1.
		object.__setattr__(self, attr, value)
Пример #3
0
	def update(self, attr, updateFunc, default=None):
		"updateFunc is supposed to be oldValue->newValue."
		"E.g. you can increment by one or so. While updateFunc is executed, the DB is blocked."
		import songdb
		if getattr(self, "_useDb", False) and attr in songdb.Attribs:
			value = songdb.updateSongAttribValue(self, attr, updateFunc, default=default)
		else:
			# Note that we don't use getattr to get the old value for the updateFunc.
			# This is to avoid infinite recursion loops and also because
			# it doesn't exactly match the useDb-case where we don't use getattr
			# but the old value in the DB.
			value = updateFunc(default)
		# Note that locally stored attribs might get outdated.
		# Thus, in getFast(), those will not be returned for accuracy=1.
		object.__setattr__(self, attr, value)
Пример #4
0
	def update(self, attr, updateFunc, default=None):
		"updateFunc is supposed to be oldValue->newValue."
		"E.g. you can increment by one or so. While updateFunc is executed, the DB is blocked."
		import songdb
		if getattr(self, "_useDb", False) and attr in songdb.Attribs:
			value = songdb.updateSongAttribValue(self, attr, updateFunc, default=default)
		else:
			# Note that we don't use getattr to get the old value for the updateFunc.
			# This is to avoid infinite recursion loops and also because
			# it doesn't exactly match the useDb-case where we don't use getattr
			# but the old value in the DB.
			value = updateFunc(default)
		# Note that locally stored attribs might get outdated.
		# Thus, in getFast(), those will not be returned for accuracy=1.
		object.__setattr__(self, attr, value)
		self._updateEvent.push()