code: def _guess_package(self, path):
      
      supported_prefixes = ('com', 'org', 'net',)
      package = ''
      slash = path.rfind(os.path.sep)
      prefix_with_slash = max(path.rfind(os.path.join('', prefix, ''))
                              for prefix in supported_prefixes)
      if prefix_with_slash < 0:
        package = path[:slash]
      elif prefix_with_slash >= 0:
        package = path[prefix_with_slash:slash]
      package = package.replace(os.path.sep, ' ')
      package = package.strip().replace(' ', '.')
      return package
docs: Used in execute_codegen to actually invoke the compiler with the proper arguments, and in
      _sources_to_be_generated to declare what the generated files will be.