refactor Python code with lots of None type checks When I wrote this it just felt messy due to the null checks.  Any good ideas on how to clean it up would be most appreciated.

 def getItemsInStock(self):
        itemsInStock = []
        items = self.soup.find_all("ul", {'class':re.compile('results.*')})
        getItems = [x for x in items if x.find("div", class_="quantity")]
        if getItems:
            itemsInStock += getItems
        pages = self.combThroughPages()
        if pages:
            for each in pages:
                self.uri = each
                soup = self.createSoup()
                items = soup.find_all("ul", {'class':re.compile('results.*')})
                if items:
                    inStock = [x for x in items if x.find("div", class_="quantity")]
                    if inStock:
                        itemsInStock += inStock
        if itemsInStock:
            return self.__returnItemDetailAsDictionary(itemsInStock)
        else:
            return None
As an example,

    getItems = [x for x in items if x.find("div", class_="quantity")]
    if getItems:
        itemsInStock += getItems


can be written

    itemsInStock.extend(x for x in items if x.find("div", class_="quantity")]


extend (and for that matter, +=) are no-ops on empty lists.

Now, I'm not sure what some of the function you call return, but I don't like that getItemsInStock returns None if no items are in stock -- it makes more sense to return an empty list in that case. If your other functions did the same, you wouldn't need any of your if guards. Another example:

    pages = self.combThroughPages()
    if pages:
        for each in pages:
            ...


can be written

    for page in self.combThroughPages():
        ...


but only if combThroughPages returns an empty list when there are no, um, pages, I guess? (It's not clear from your function name.)