From 3f8728b831aedd29329687b57370264a08ccfa88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20=C5=A0imerda?= Date: Thu, 12 Jan 2012 17:23:56 +0100 Subject: [PATCH] Fix integer selectors for invoices on commandline. --- lib/invoice/db/base.py | 2 +- lib/invoice/db/invoices.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/invoice/db/base.py b/lib/invoice/db/base.py index 62838a4..94d8cdd 100644 --- a/lib/invoice/db/base.py +++ b/lib/invoice/db/base.py @@ -72,7 +72,7 @@ class List: if isinstance(selector, str): selector = {"name": selector} if isinstance(selector, int): - selector = {"number": number} + selector = {"number": selector} log.debug("Selecting: {}".format(selector)) assert isinstance(selector, dict) return [item for item in self if all(getattr(item, key) == selector[key] for key in selector)] diff --git a/lib/invoice/db/invoices.py b/lib/invoice/db/invoices.py index 3b8abe3..5c55f92 100644 --- a/lib/invoice/db/invoices.py +++ b/lib/invoice/db/invoices.py @@ -30,10 +30,14 @@ Item: 0000: Item summary def _select(self, selector): if isinstance(selector, str): match = self._regex.match(selector) - if not match: - raise ItemNotFoundError("Item not found: {}".format(selector)) - selector = match.groupdict() - selector["number"] = int(selector["number"]) + if match: + selector = match.groupdict() + selector["number"] = int(selector["number"]) + else: + try: + selector = int(selector) + except TypeError: + raise ItemNotFoundError("Item not found: {}".format(selector)) return super(Invoices, self)._select(selector) def new(self, company_name):