[PATCH] Factor out duplicate code

Harald Meland harald.meland at usit.uio.no
Wed Oct 12 09:30:10 BST 2005


[Michael Ellerman]

> This is a bit nit-picky, but a more Pythonish way to do the above is:
>
> @staticmethod
> def create(kind, file_id, name, parent_id):
> 	"""Return an inventory entry of specified kind"""
> 	try:
> 		klass = InventoryEntry.versionable_kinds[kind]
> 		return klass(file_id, name, parent_id)
> 	except KeyError:
> 		raise BadFileKindError("unknown kind %r" % kind)

Even more nitpicky, but the above code risks eating any KeyErrors
raised in klass.__init__().  Use

	try:
		klass = InventoryEntry.versionable_kinds[kind]
	except KeyError:
		raise BadFileKindError("unknown kind %r" % kind)
	else:
		return klass(file_id, name, parent_id)

to avoid that.
-- 
Harald




More information about the bazaar mailing list