Exemplo n.º 1
0
    def needed_addresses(self):
        """Return the addresses and address ranges this formula needs"""
        if self._needed_addresses is None:
            # get all the cells/ranges this formula refers to, and remove dupes
            if self.python_code:
                self._needed_addresses = uniqueify(
                    AddressRange(eval_call[1][2:-2])
                    for eval_call in EVAL_REGEX.findall(self.python_code))
            else:
                self._needed_addresses = ()

        return self._needed_addresses
Exemplo n.º 2
0
    def needed_addresses(self):
        """Return the addresses and address ranges this formula needs"""
        if self._needed_addresses is None:
            # get all the cells/ranges this formula refers to, and remove dupes
            if self.python_code:
                code = iter((self.python_code.encode(), ))
                tokens = tuple(tk.tokenize(lambda: next(code)))
                addrs = []
                for i, t in enumerate(tokens):
                    if t.type == 1 and t.string in ADDR_FUNCS_NAMES and (
                            tokens[i + 1].string == '('
                            and tokens[i + 3].string == ')'):
                        addrs.append(AddressRange(tokens[i + 2].string[1:-1]))
                self._needed_addresses = uniqueify(addrs)
            else:
                self._needed_addresses = ()

        return self._needed_addresses
Exemplo n.º 3
0
    def needed_addresses(self):
        """Return the addresses and address ranges this formula needs"""
        if self._needed_addresses is None:
            # get all the cells/ranges this formula refers to, and remove dupes
            if self.python_code:
                code = iter((self.python_code.encode(),))
                tokens = tuple(tk.tokenize(lambda: next(code)))
                addrs = []
                for i, t in enumerate(tokens):
                    if t.type == 1 and t.string in ADDR_FUNCS_NAMES and (
                            tokens[i + 1].string == '(' and
                            tokens[i + 3].string == ')'):
                        addrs.append(AddressRange(tokens[i + 2].string[1:-1]))
                self._needed_addresses = uniqueify(addrs)
            else:
                self._needed_addresses = ()

        return self._needed_addresses
Exemplo n.º 4
0
def test_uniqueify():
    assert (1, 2, 3, 4) == uniqueify((1, 2, 3, 4, 3))
    assert (4, 1, 2, 3) == uniqueify((4, 1, 2, 3, 4, 3))
Exemplo n.º 5
0
def test_uniqueify():
    assert (1, 2, 3, 4) == uniqueify((1, 2, 3, 4, 3))
    assert (4, 1, 2, 3) == uniqueify((4, 1, 2, 3, 4, 3))