def get_project(self, name):
        if self._cache is None:
            result = self._get_project(name)
        elif name in self._cache:
            result = self._cache[name]
        else:
            result = self._get_project(name)
            self._cache[name] = result
        return result
after every row/column recalculate remaining area
dataset/ETHPy150Open francelabs/datafari/windows/python/Lib/site-packages/pip/_vendor/distlib/locators.py/Locator.get_project--crossover with--dataset/ETHPy150Open qtile/qtile/libqtile/layout/ratiotile.py/GridInfo.get_sizes_advanced