@@ -197,41 +197,40 @@ def initialize(self) -> None:
197197 span_processors : list [SpanProcessor ] = []
198198 metric_readers : list [MetricReader ] = []
199199
200- self .server = self .server or DEFAULT_SERVER_URL
201- if self .server is None and self .local_dir is False :
200+ self .server = self .server or ( DEFAULT_SERVER_URL if self . token else None )
201+ if not ( self .server and self . token and self .local_dir ) :
202202 warn_at_user_stacklevel (
203203 "Your current configuration won't persist run data anywhere. "
204204 "Use `dreadnode.init(server=..., token=...)`, `dreadnode.init(local_dir=...)`, "
205205 f"or use environment variables ({ ENV_SERVER_URL } , { ENV_API_TOKEN } , { ENV_LOCAL_DIR } )." ,
206206 category = DreadnodeConfigWarning ,
207207 )
208208
209- if self .server :
210- parsed_url = urlparse (self .server )
211- if not parsed_url .scheme :
212- netloc = parsed_url .path .split ("/" )[0 ]
213- path = "/" .join (parsed_url .path .split ("/" )[1 :])
214- parsed_new = parsed_url ._replace (
215- scheme = "https" , netloc = netloc , path = f"/{ path } " if path else ""
216- )
217- self .server = urlunparse (parsed_new )
218-
219- if self .local_dir is not False :
209+ if self .local_dir :
220210 config = FileExportConfig (
221211 base_path = self .local_dir ,
222212 prefix = self .project + "-" if self .project else "" ,
223213 )
224214 span_processors .append (BatchSpanProcessor (FileSpanExporter (config )))
225215 metric_readers .append (FileMetricReader (config ))
226216
227- if self .token is not None :
228- self ._api = ApiClient (self .server , self .token )
229-
217+ if self .token and self .server :
230218 try :
219+ parsed_url = urlparse (self .server )
220+ if not parsed_url .scheme :
221+ netloc = parsed_url .path .split ("/" )[0 ]
222+ path = "/" .join (parsed_url .path .split ("/" )[1 :])
223+ parsed_new = parsed_url ._replace (
224+ scheme = "https" , netloc = netloc , path = f"/{ path } " if path else ""
225+ )
226+ self .server = urlunparse (parsed_new )
227+
228+ self ._api = ApiClient (self .server , self .token )
229+
231230 self ._api .list_projects ()
232231 except Exception as e :
233232 raise RuntimeError (
234- "Failed to authenticate with the provided server and token " ,
233+ "Failed to connect to the Dreadnode server. " ,
235234 ) from e
236235
237236 headers = {"User-Agent" : f"dreadnode/{ VERSION } " , "X-Api-Key" : self .token }
0 commit comments