Sets the dependency string (for the LEX Dependency Tracker) for a lot.
        Requires administrator access.
        :param id: Identifier of the lot
        :param internal: List of dependency identifiers for internal files (LEX lots) that the lot depends on
        :param external: List of (name, link) tuples for external files (STEX, TSC, ...) that the lot depends on
        :return: Created dependency string that was sent to the server, in plaintext and base64 encoded
        :rtype: str

def set_dependencies(self, id, internal=list(), external=list()):
        """
        Sets the dependency string (for the LEX Dependency Tracker) for a lot.
        Requires administrator access.
        :param id: Identifier of the lot
        :param internal: List of dependency identifiers for internal files (LEX lots) that the lot depends on
        :param external: List of (name, link) tuples for external files (STEX, TSC, ...) that the lot depends on
        :return: Created dependency string that was sent to the server, in plaintext and base64 encoded
        :rtype: str
        """
        dependency_str = 'NONE'
        if len(internal) > 0 or len(external) > 0:
            deps = internal
            for (name, link) in external:
                deps.append("{0}@{1}".format(name, link))
            dependency_str = '$'.join(str(x) for x in deps)

        params = {
            'string': b64encode(dependency_str.encode('ascii'))
        }

        url = self._base + 'lot/{0}/dependency-string'.format(id)
        r = requests.put(url, auth=self._auth, params=params)
        r.raise_for_status()

        return {
            'plain': dependency_str,
            'encoded': params['string']
        }