What's the tidy/elegant way to protect this against null/empty parameters?

tinnews at isbd.co.uk tinnews at isbd.co.uk
Mon Oct 15 07:23:45 EDT 2012


I want to fix an error in some code I have installed, however I don't
really want to just bodge it.

The function producing the error is:-

    def get_text(self, idx):               # override !
        node = self.items[idx]

        a= [
            ", ".join(node.tags),
            node.comment,
            node.folderName,
            cd2rd(node.date),
            node.name,
            '[' + self.rating_stars[node.rating] + ']'
            ] [self.select]

        return a


The error occurs when node[] (or at least its members) turn out to be
empty, you get a Traceback that ends with:-

  File "/usr/lib/jbrout/jbrout/listview.py", line 608, in draw_cell layout.set_text(self.get_text(thumbnail_num))
  File "/usr/lib/jbrout/jbrout.py", line 325, in get_text ", ".join(node.tags),
  TypeError: sequence item 0: expected string, NoneType found

Now its *probably* something higher up the tree causing the problem
(it's only one particular image in 20 thousand or so that breaks
things) but I really want to just get things working.  So, what's the
neatest way to protect the get_text() method from empty data?


-- 
Chris Green



More information about the Python-list mailing list