#NEWLINE# def __init__( self , url , build_project_directory = '' , project_directory = '' , remote = 'origin' , branch = 'master' , config = None , job_name = None , remote_files = None , atoms_override = None ) : #NEWLINE# #INDENT# "\n        Note: the first line of each parameter docstring will be exposed as command line argument documentation for the\n        clusterrunner build client.\n\n        :param url: url to the git repo (ie: https, ssh)\n        :type url: str\n        :param build_project_directory: the symlinked directory of where PROJECT_DIR should end up being set to\n        :type build_project_directory: str\n        :param project_directory: path within the repo that contains clusterrunner.yaml\n        :type project_directory: str\n        :param remote: The git remote name to fetch from\n        :type remote: str\n        :param branch: The git branch name on the remote to fetch\n        :type branch: str\n        :param config: a yaml string representing the project_type's config\n        :type config: str|None\n        :param job_name: a list of job names we intend to run\n        :type job_name: list [str] | None\n        :param remote_files: dictionary mapping of output file to URL\n        :type remote_files: dict[str, str] | None\n        :param atoms_override: The list of overridden atoms (if specified, will not run atomizer).\n        :type atoms_override: list[str] | None\n        " #NEWLINE# super ( ) . __init__ ( config , job_name , remote_files , atoms_override ) #NEWLINE# self . _url = url #NEWLINE# self . _remote = remote #NEWLINE# self . _branch = branch #NEWLINE# self . _repo_directory = self . get_full_repo_directory ( self . _url ) #NEWLINE# self . _timing_file_directory = self . get_timing_file_directory ( self . _url ) #NEWLINE# self . _local_ref = None #NEWLINE# self . _logger = log . get_logger ( __name__ ) #NEWLINE# fs . create_dir ( self . _repo_directory , self . DIRECTORY_PERMISSIONS ) #NEWLINE# fs . create_dir ( self . _timing_file_directory , self . DIRECTORY_PERMISSIONS ) #NEWLINE# fs . create_dir ( os . path . dirname ( build_project_directory ) ) #NEWLINE# actual_project_directory = os . path . join ( self . _repo_directory , project_directory ) #NEWLINE# try : #NEWLINE# #INDENT# os . unlink ( build_project_directory ) #NEWLINE# #UNINDENT# except FileNotFoundError : #NEWLINE# #INDENT# pass #NEWLINE# #UNINDENT# os . symlink ( actual_project_directory , build_project_directory ) #NEWLINE# self . project_directory = build_project_directory