docs: def _parse_dependencies(string):
      """
      This function actually parses the dependencies are sorts them into
      the buildable and given dependencies
      """
      contents = _get_contents_between(string, '(', ')')
      unsorted_dependencies = contents.split(',')
      _check_parameters(unsorted_dependencies, ('?',))
  
      buildable_dependencies = []
      given_dependencies = []
      for dependency in unsorted_dependencies:
          if dependency[0] == '?':
              given_dependencies.append(dependency[1:])
          else:
              buildable_dependencies.append(dependency)
  
      string = string[string.index(')') + 1:]
      return buildable_dependencies, given_dependencies, string