def git_repo(): with CliRunner().isolated_filesystem(): r = git.Repo.init(".") os.mkdir("wandb") # Because the forked process doesn't use my monkey patch above with open("wandb/settings", "w") as f: f.write("[default]\nproject: test") open("README", "wb").close() r.index.add(["README"]) r.index.commit("Initial commit") yield GitRepo(lazy=False)
def __init__(self, default_settings=None, load_settings=True, retry_timedelta=datetime.timedelta(days=1), environ=os.environ): self._environ = environ self.default_settings = { 'section': "default", 'run': "latest", 'git_remote': "origin", 'ignore_globs': [], 'base_url': "https://api.wandb.ai" } self.retry_timedelta = retry_timedelta self.default_settings.update(default_settings or {}) self._settings = None self.retry_uploads = 10 self.settings_parser = configparser.ConfigParser() if load_settings: potential_settings_paths = [ os.path.expanduser('~/.wandb/settings') ] potential_settings_paths.append( os.path.join(wandb_dir(), 'settings')) files = self.settings_parser.read(potential_settings_paths) self.settings_file = files[0] if len(files) > 0 else "Not found" else: self.settings_file = "Not found" self.git = GitRepo(remote=self.settings("git_remote")) # Mutable settings set by the _file_stream_api self.dynamic_settings = { 'system_sample_seconds': 2, 'system_samples': 15, 'heartbeat_seconds': 30, } self.client = Client(transport=RequestsHTTPTransport( headers={ 'User-Agent': self.user_agent, 'X-WANDB-USERNAME': env.get_username(env=self._environ) }, use_json=True, # this timeout won't apply when the DNS lookup fails. in that case, it will be 60s # https://bugs.python.org/issue22889 timeout=self.HTTP_TIMEOUT, auth=("api", self.api_key or ""), url='%s/graphql' % self.settings('base_url'))) self.gql = retry.Retry( self.execute, retry_timedelta=retry_timedelta, check_retry_fn=util.no_retry_auth, retryable_exceptions=(RetryError, requests.RequestException)) self._current_run_id = None self._file_stream_api = None
def __init__(self, default_settings=None, load_settings=True, retry_timedelta=datetime.timedelta(days=1)): self.default_settings = { 'section': "default", 'entity': "models", 'run': "latest", 'git_remote': "origin", 'git_tag': False, 'base_url': "https://api.wandb.ai" } self.retry_timedelta = retry_timedelta self.default_settings.update(default_settings or {}) self._settings = None self.retries = 3 self._settings_parser = configparser.ConfigParser() self.tagged = False if load_settings: potential_settings_paths = [ os.path.expanduser('~/.wandb/settings') ] potential_settings_paths.append( os.path.join(wandb_dir(), 'settings')) files = self._settings_parser.read(potential_settings_paths) self.settings_file = files[0] if len(files) > 0 else "Not found" else: self.settings_file = "Not found" self.git = GitRepo(remote=self.settings("git_remote")) client = Client(retries=1, transport=RequestsHTTPTransport( headers={'User-Agent': self.user_agent}, use_json=True, timeout=self.HTTP_TIMEOUT, auth=("api", self.api_key), url='%s/graphql' % self.settings('base_url'))) # 1-day worth of retry self.gql = retry.Retry(client.execute, retry_timedelta=retry_timedelta, retryable_exceptions=(RetryError, requests.HTTPError)) self._current_run_id = None self._file_stream_api = None