wandb 0.19.9__py3-none-win32.whl → 0.19.11__py3-none-win32.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. wandb/__init__.py +1 -1
  2. wandb/__init__.pyi +6 -3
  3. wandb/_pydantic/__init__.py +14 -8
  4. wandb/_pydantic/base.py +51 -36
  5. wandb/_pydantic/utils.py +73 -0
  6. wandb/_pydantic/v1_compat.py +79 -57
  7. wandb/apis/public/__init__.py +2 -2
  8. wandb/apis/public/api.py +684 -4
  9. wandb/apis/public/artifacts.py +377 -677
  10. wandb/apis/public/automations.py +69 -0
  11. wandb/apis/public/integrations.py +180 -0
  12. wandb/apis/public/projects.py +29 -0
  13. wandb/apis/public/registries/__init__.py +0 -0
  14. wandb/apis/public/registries/_freezable_list.py +179 -0
  15. wandb/apis/public/{registries.py → registries/registries_search.py} +22 -129
  16. wandb/apis/public/registries/registry.py +357 -0
  17. wandb/apis/public/registries/utils.py +140 -0
  18. wandb/apis/public/runs.py +58 -56
  19. wandb/apis/public/utils.py +107 -1
  20. wandb/automations/__init__.py +73 -0
  21. wandb/automations/_filters/__init__.py +40 -0
  22. wandb/automations/_filters/expressions.py +181 -0
  23. wandb/automations/_filters/operators.py +258 -0
  24. wandb/automations/_filters/run_metrics.py +332 -0
  25. wandb/automations/_generated/__init__.py +177 -0
  26. wandb/automations/_generated/create_automation.py +17 -0
  27. wandb/automations/_generated/create_generic_webhook_integration.py +43 -0
  28. wandb/automations/_generated/delete_automation.py +17 -0
  29. wandb/automations/_generated/enums.py +33 -0
  30. wandb/automations/_generated/fragments.py +358 -0
  31. wandb/automations/_generated/generic_webhook_integrations_by_entity.py +22 -0
  32. wandb/automations/_generated/get_automations.py +24 -0
  33. wandb/automations/_generated/get_automations_by_entity.py +26 -0
  34. wandb/automations/_generated/input_types.py +104 -0
  35. wandb/automations/_generated/integrations_by_entity.py +22 -0
  36. wandb/automations/_generated/operations.py +647 -0
  37. wandb/automations/_generated/slack_integrations_by_entity.py +22 -0
  38. wandb/automations/_generated/update_automation.py +17 -0
  39. wandb/automations/_utils.py +237 -0
  40. wandb/automations/_validators.py +165 -0
  41. wandb/automations/actions.py +220 -0
  42. wandb/automations/automations.py +87 -0
  43. wandb/automations/events.py +287 -0
  44. wandb/automations/integrations.py +45 -0
  45. wandb/automations/scopes.py +78 -0
  46. wandb/beta/workflows.py +9 -10
  47. wandb/bin/gpu_stats.exe +0 -0
  48. wandb/bin/wandb-core +0 -0
  49. wandb/cli/cli.py +3 -3
  50. wandb/env.py +11 -0
  51. wandb/integration/keras/keras.py +2 -1
  52. wandb/integration/langchain/wandb_tracer.py +2 -1
  53. wandb/jupyter.py +137 -118
  54. wandb/old/settings.py +4 -1
  55. wandb/old/summary.py +0 -2
  56. wandb/proto/v3/wandb_internal_pb2.py +297 -292
  57. wandb/proto/v3/wandb_settings_pb2.py +2 -2
  58. wandb/proto/v3/wandb_telemetry_pb2.py +10 -10
  59. wandb/proto/v4/wandb_internal_pb2.py +292 -292
  60. wandb/proto/v4/wandb_settings_pb2.py +2 -2
  61. wandb/proto/v4/wandb_telemetry_pb2.py +10 -10
  62. wandb/proto/v5/wandb_internal_pb2.py +292 -292
  63. wandb/proto/v5/wandb_settings_pb2.py +2 -2
  64. wandb/proto/v5/wandb_telemetry_pb2.py +10 -10
  65. wandb/proto/v6/wandb_base_pb2.py +41 -0
  66. wandb/proto/v6/wandb_internal_pb2.py +393 -0
  67. wandb/proto/v6/wandb_server_pb2.py +78 -0
  68. wandb/proto/v6/wandb_settings_pb2.py +58 -0
  69. wandb/proto/v6/wandb_telemetry_pb2.py +52 -0
  70. wandb/proto/wandb_base_pb2.py +2 -0
  71. wandb/proto/wandb_deprecated.py +8 -0
  72. wandb/proto/wandb_internal_pb2.py +3 -1
  73. wandb/proto/wandb_server_pb2.py +2 -0
  74. wandb/proto/wandb_settings_pb2.py +2 -0
  75. wandb/proto/wandb_telemetry_pb2.py +2 -0
  76. wandb/sdk/artifacts/_generated/__init__.py +289 -0
  77. wandb/sdk/artifacts/_generated/add_aliases.py +21 -0
  78. wandb/sdk/artifacts/_generated/artifact_collection_membership_files.py +43 -0
  79. wandb/sdk/artifacts/_generated/artifact_version_files.py +36 -0
  80. wandb/sdk/artifacts/_generated/create_artifact_collection_tag_assignments.py +36 -0
  81. wandb/sdk/artifacts/_generated/delete_aliases.py +21 -0
  82. wandb/sdk/artifacts/_generated/delete_artifact_collection_tag_assignments.py +25 -0
  83. wandb/sdk/artifacts/_generated/delete_artifact_portfolio.py +35 -0
  84. wandb/sdk/artifacts/_generated/delete_artifact_sequence.py +35 -0
  85. wandb/sdk/artifacts/_generated/enums.py +17 -0
  86. wandb/sdk/artifacts/_generated/fetch_linked_artifacts.py +67 -0
  87. wandb/sdk/artifacts/_generated/fragments.py +221 -0
  88. wandb/sdk/artifacts/_generated/input_types.py +28 -0
  89. wandb/sdk/artifacts/_generated/move_artifact_collection.py +35 -0
  90. wandb/sdk/artifacts/_generated/operations.py +611 -0
  91. wandb/sdk/artifacts/_generated/project_artifact_collection.py +101 -0
  92. wandb/sdk/artifacts/_generated/project_artifact_collections.py +33 -0
  93. wandb/sdk/artifacts/_generated/project_artifact_type.py +24 -0
  94. wandb/sdk/artifacts/_generated/project_artifact_types.py +24 -0
  95. wandb/sdk/artifacts/_generated/project_artifacts.py +42 -0
  96. wandb/sdk/artifacts/_generated/run_input_artifacts.py +51 -0
  97. wandb/sdk/artifacts/_generated/run_output_artifacts.py +51 -0
  98. wandb/sdk/artifacts/_generated/update_artifact.py +26 -0
  99. wandb/sdk/artifacts/_generated/update_artifact_portfolio.py +35 -0
  100. wandb/sdk/artifacts/_generated/update_artifact_sequence.py +35 -0
  101. wandb/sdk/artifacts/_graphql_fragments.py +57 -79
  102. wandb/sdk/artifacts/_validators.py +120 -1
  103. wandb/sdk/artifacts/artifact.py +419 -215
  104. wandb/sdk/artifacts/artifact_file_cache.py +4 -6
  105. wandb/sdk/artifacts/artifact_manifest_entry.py +13 -3
  106. wandb/sdk/artifacts/storage_handlers/azure_handler.py +1 -0
  107. wandb/sdk/artifacts/storage_policies/wandb_storage_policy.py +182 -1
  108. wandb/sdk/artifacts/storage_policy.py +3 -0
  109. wandb/sdk/data_types/base_types/media.py +2 -3
  110. wandb/sdk/data_types/base_types/wb_value.py +34 -11
  111. wandb/sdk/data_types/html.py +36 -9
  112. wandb/sdk/data_types/image.py +12 -12
  113. wandb/sdk/data_types/table.py +5 -0
  114. wandb/sdk/data_types/trace_tree.py +2 -0
  115. wandb/sdk/data_types/utils.py +1 -1
  116. wandb/sdk/data_types/video.py +59 -57
  117. wandb/sdk/interface/interface.py +4 -3
  118. wandb/sdk/internal/internal_api.py +21 -31
  119. wandb/sdk/internal/profiler.py +6 -5
  120. wandb/sdk/internal/run.py +13 -6
  121. wandb/sdk/internal/sender.py +5 -2
  122. wandb/sdk/launch/sweeps/utils.py +8 -0
  123. wandb/sdk/lib/apikey.py +25 -4
  124. wandb/sdk/lib/asyncio_compat.py +1 -1
  125. wandb/sdk/lib/deprecate.py +13 -22
  126. wandb/sdk/lib/disabled.py +2 -1
  127. wandb/sdk/lib/printer.py +37 -8
  128. wandb/sdk/lib/printer_asyncio.py +46 -0
  129. wandb/sdk/lib/redirect.py +10 -5
  130. wandb/sdk/projects/_generated/__init__.py +47 -0
  131. wandb/sdk/projects/_generated/delete_project.py +22 -0
  132. wandb/sdk/projects/_generated/enums.py +4 -0
  133. wandb/sdk/projects/_generated/fetch_registry.py +22 -0
  134. wandb/sdk/projects/_generated/fragments.py +41 -0
  135. wandb/sdk/projects/_generated/input_types.py +13 -0
  136. wandb/sdk/projects/_generated/operations.py +88 -0
  137. wandb/sdk/projects/_generated/rename_project.py +27 -0
  138. wandb/sdk/projects/_generated/upsert_registry_project.py +27 -0
  139. wandb/sdk/service/server_sock.py +19 -14
  140. wandb/sdk/service/service.py +18 -8
  141. wandb/sdk/service/streams.py +5 -0
  142. wandb/sdk/verify/verify.py +6 -3
  143. wandb/sdk/wandb_init.py +217 -70
  144. wandb/sdk/wandb_login.py +13 -4
  145. wandb/sdk/wandb_run.py +419 -295
  146. wandb/sdk/wandb_settings.py +27 -10
  147. wandb/sdk/wandb_setup.py +61 -0
  148. wandb/util.py +33 -29
  149. {wandb-0.19.9.dist-info → wandb-0.19.11.dist-info}/METADATA +5 -5
  150. {wandb-0.19.9.dist-info → wandb-0.19.11.dist-info}/RECORD +153 -83
  151. wandb/_globals.py +0 -19
  152. wandb/sdk/internal/_generated/base.py +0 -226
  153. wandb/sdk/internal/_generated/typing_compat.py +0 -14
  154. {wandb-0.19.9.dist-info → wandb-0.19.11.dist-info}/WHEEL +0 -0
  155. {wandb-0.19.9.dist-info → wandb-0.19.11.dist-info}/entry_points.txt +0 -0
  156. {wandb-0.19.9.dist-info → wandb-0.19.11.dist-info}/licenses/LICENSE +0 -0
wandb/jupyter.py CHANGED
@@ -1,160 +1,171 @@
1
+ from __future__ import annotations
2
+
1
3
  import json
2
4
  import logging
3
5
  import os
4
6
  import re
5
7
  import shutil
6
8
  import sys
9
+ import traceback
7
10
  from base64 import b64encode
8
- from typing import Dict
11
+ from typing import Any
9
12
 
13
+ import IPython
14
+ import IPython.display
10
15
  import requests
16
+ from IPython.core.magic import Magics, line_cell_magic, magics_class
17
+ from IPython.core.magic_arguments import argument, magic_arguments, parse_argstring
11
18
  from requests.compat import urljoin
12
19
 
13
20
  import wandb
14
21
  import wandb.util
22
+ from wandb.sdk import wandb_run, wandb_setup
15
23
  from wandb.sdk.lib import filesystem
16
24
 
17
- try:
18
- import IPython
19
- from IPython.core.magic import Magics, line_cell_magic, magics_class
20
- from IPython.core.magic_arguments import argument, magic_arguments, parse_argstring
21
- except ImportError:
22
- wandb.termwarn("ipython is not supported in python 2.7, upgrade to 3.x")
25
+ logger = logging.getLogger(__name__)
23
26
 
24
- class Magics:
25
- pass
26
27
 
27
- def magics_class(*args, **kwargs):
28
- return lambda *args, **kwargs: None
28
+ def display_if_magic_is_used(run: wandb_run.Run) -> bool:
29
+ """Display a run's page if the cell has the %%wandb cell magic.
29
30
 
30
- def magic_arguments(*args, **kwargs):
31
- return lambda *args, **kwargs: None
31
+ Args:
32
+ run: The run to display.
32
33
 
33
- def argument(*args, **kwargs):
34
- return lambda *args, **kwargs: None
34
+ Returns:
35
+ Whether the %%wandb cell magic was present.
36
+ """
37
+ if not _current_cell_wandb_magic:
38
+ return False
35
39
 
36
- def line_cell_magic(*args, **kwargs):
37
- return lambda *args, **kwargs: None
40
+ _current_cell_wandb_magic.display_if_allowed(run)
41
+ return True
38
42
 
39
43
 
40
- logger = logging.getLogger(__name__)
44
+ class _WandbCellMagicState:
45
+ """State for a cell with the %%wandb cell magic."""
41
46
 
42
- __IFrame = None
47
+ def __init__(self, *, height: int) -> None:
48
+ """Initializes the %%wandb cell magic state.
43
49
 
50
+ Args:
51
+ height: The desired height for displayed iframes.
52
+ """
53
+ self._height = height
54
+ self._already_displayed = False
44
55
 
45
- def maybe_display():
46
- """Display a run if the user added cell magic and we have run."""
47
- if __IFrame is not None:
48
- return __IFrame.maybe_display()
49
- return False
56
+ def display_if_allowed(self, run: wandb_run.Run) -> None:
57
+ """Display a run's iframe if one is not already displayed.
50
58
 
59
+ Args:
60
+ run: The run to display.
61
+ """
62
+ if self._already_displayed:
63
+ return
64
+ self._already_displayed = True
51
65
 
52
- def quiet():
53
- if __IFrame is not None:
54
- return __IFrame.opts.get("quiet")
55
- return False
66
+ _display_wandb_run(run, height=self._height)
56
67
 
57
68
 
58
- class IFrame:
59
- def __init__(self, path=None, opts=None):
60
- self.path = path
61
- self.api = wandb.Api()
62
- self.opts = opts or {}
63
- self.displayed = False
64
- self.height = self.opts.get("height", 420)
69
+ _current_cell_wandb_magic: _WandbCellMagicState | None = None
65
70
 
66
- def maybe_display(self) -> bool:
67
- if not self.displayed and (self.path or wandb.run):
68
- IPython.display.display(self)
69
- return self.displayed
70
71
 
71
- def _repr_html_(self):
72
- try:
73
- self.displayed = True
74
- if self.opts.get("workspace", False):
75
- if self.path is None and wandb.run:
76
- self.path = wandb.run.path
77
- if isinstance(self.path, str):
78
- object = self.api.from_path(self.path)
79
- else:
80
- object = wandb.run
81
- if object is None:
82
- if wandb.Api().api_key is None:
83
- return "You must be logged in to render wandb in jupyter, run `wandb.login()`"
84
- else:
85
- object = self.api.project(
86
- "/".join(
87
- [
88
- wandb.Api().default_entity,
89
- wandb.util.auto_project_name(None),
90
- ]
91
- )
92
- )
93
- return object.to_html(self.height, hidden=False)
94
- except wandb.Error as e:
95
- return f"Can't display wandb interface<br/>{e}"
72
+ def _display_by_wandb_path(path: str, *, height: int) -> None:
73
+ """Display a wandb object (usually in an iframe) given its URI.
74
+
75
+ Args:
76
+ path: A path to a run, sweep, project, report, etc.
77
+ height: Height of the iframe in pixels.
78
+ """
79
+ api = wandb.Api()
80
+
81
+ try:
82
+ obj = api.from_path(path)
83
+
84
+ IPython.display.display_html(
85
+ obj.to_html(height=height),
86
+ raw=True,
87
+ )
88
+ except wandb.Error:
89
+ traceback.print_exc()
90
+ IPython.display.display_html(
91
+ f"Path {path!r} does not refer to a W&B object you can access.",
92
+ raw=True,
93
+ )
94
+
95
+
96
+ def _display_wandb_run(run: wandb_run.Run, *, height: int) -> None:
97
+ """Display a run (usually in an iframe).
98
+
99
+ Args:
100
+ run: The run to display.
101
+ height: Height of the iframe in pixels.
102
+ """
103
+ IPython.display.display_html(
104
+ run.to_html(height=height),
105
+ raw=True,
106
+ )
96
107
 
97
108
 
98
109
  @magics_class
99
110
  class WandBMagics(Magics):
100
- def __init__(self, shell, require_interaction=False):
111
+ def __init__(self, shell):
101
112
  super().__init__(shell)
102
- self.options = {}
103
113
 
104
114
  @magic_arguments()
105
115
  @argument(
106
116
  "path",
107
117
  default=None,
108
118
  nargs="?",
109
- help="A path to a resource you want to display, defaults to wandb.run.path",
110
- )
111
- @argument(
112
- "-w",
113
- "--workspace",
114
- default=False,
115
- action="store_true",
116
- help="Display the entire run project workspace",
117
- )
118
- @argument(
119
- "-q",
120
- "--quiet",
121
- default=False,
122
- action="store_true",
123
- help="Display the minimal amount of output",
119
+ help="The path to a resource you want to display.",
124
120
  )
125
121
  @argument(
126
122
  "-h",
127
123
  "--height",
128
124
  default=420,
129
125
  type=int,
130
- help="The height of the iframe in pixels",
126
+ help="The height of the iframe in pixels.",
131
127
  )
132
128
  @line_cell_magic
133
- def wandb(self, line, cell=None):
134
- """Display wandb resources in jupyter. This can be used as cell or line magic.
135
-
136
- %wandb USERNAME/PROJECT/runs/RUN_ID
137
- ---
138
- %%wandb -h 1024
139
- with wandb.init() as run:
140
- run.log({"loss": 1})
129
+ def wandb(self, line: str, cell: str | None = None) -> None:
130
+ """Display wandb resources in Jupyter.
131
+
132
+ This can be used as a line magic:
133
+
134
+ %wandb USERNAME/PROJECT/runs/RUN_ID
135
+
136
+ Or as a cell magic:
137
+
138
+ %%wandb -h 1024
139
+ with wandb.init() as run:
140
+ run.log({"loss": 1})
141
141
  """
142
- # Record options
142
+ global _current_cell_wandb_magic
143
+
143
144
  args = parse_argstring(self.wandb, line)
144
- self.options["height"] = args.height
145
- self.options["workspace"] = args.workspace
146
- self.options["quiet"] = args.quiet
147
- iframe = IFrame(args.path, opts=self.options)
148
- displayed = iframe.maybe_display()
149
- if cell is not None:
150
- if not displayed:
151
- # Store the IFrame globally and attempt to display if we have a run
152
- cell = (
153
- f"wandb.jupyter.__IFrame = wandb.jupyter.IFrame(opts={self.options})\n"
154
- + cell
155
- + "\nwandb.jupyter.__IFrame = None"
156
- )
145
+ path: str | None = args.path
146
+ height: int = args.height
147
+
148
+ if path:
149
+ _display_by_wandb_path(path, height=height)
150
+ displayed = True
151
+ elif run := wandb_setup._setup(start_service=False).most_recent_active_run:
152
+ _display_wandb_run(run, height=height)
153
+ displayed = True
154
+ else:
155
+ displayed = False
156
+
157
+ # If this is being used as a line magic ("%wandb"), we are done.
158
+ # When used as a cell magic ("%%wandb"), we must run the cell.
159
+ if cell is None:
160
+ return
161
+
162
+ if not displayed:
163
+ _current_cell_wandb_magic = _WandbCellMagicState(height=height)
164
+
165
+ try:
157
166
  IPython.get_ipython().run_cell(cell)
167
+ finally:
168
+ _current_cell_wandb_magic = None
158
169
 
159
170
 
160
171
  def notebook_metadata_from_jupyter_servers_and_kernel_id():
@@ -193,7 +204,7 @@ def notebook_metadata_from_jupyter_servers_and_kernel_id():
193
204
  return None
194
205
 
195
206
 
196
- def notebook_metadata(silent: bool) -> Dict[str, str]:
207
+ def notebook_metadata(silent: bool) -> dict[str, str]:
197
208
  """Attempt to query jupyter for the path and name of the notebook file.
198
209
 
199
210
  This can handle different jupyter environments, specifically:
@@ -249,7 +260,7 @@ def jupyter_servers_and_kernel_id():
249
260
  Used to query for the name of the notebook.
250
261
  """
251
262
  try:
252
- import ipykernel
263
+ import ipykernel # type: ignore
253
264
 
254
265
  kernel_id = re.search(
255
266
  "kernel-(.*).json", ipykernel.connect.get_connection_file()
@@ -291,10 +302,13 @@ def attempt_kaggle_load_ipynb():
291
302
  return None
292
303
 
293
304
 
294
- def attempt_colab_login(app_url):
305
+ def attempt_colab_login(
306
+ app_url: str,
307
+ referrer: str | None = None,
308
+ ):
295
309
  """This renders an iframe to wandb in the hopes it posts back an api key."""
296
- from google.colab import output
297
- from google.colab._message import MessageError
310
+ from google.colab import output # type: ignore
311
+ from google.colab._message import MessageError # type: ignore
298
312
  from IPython import display
299
313
 
300
314
  display.display(
@@ -316,7 +330,7 @@ def attempt_colab_login(app_url):
316
330
  document.body.appendChild(iframe)
317
331
  const handshake = new Postmate({{
318
332
  container: iframe,
319
- url: '{}/authorize'
333
+ url: '{}/authorize{}'
320
334
  }});
321
335
  const timeout = setTimeout(() => reject("Couldn't auto authenticate"), 5000)
322
336
  handshake.then(function(child) {{
@@ -327,7 +341,10 @@ def attempt_colab_login(app_url):
327
341
  }});
328
342
  }})
329
343
  }});
330
- """.format(app_url.replace("http:", "https:"))
344
+ """.format(
345
+ app_url.replace("http:", "https:"),
346
+ f"?ref={referrer}" if referrer else "",
347
+ )
331
348
  )
332
349
  )
333
350
  try:
@@ -337,8 +354,8 @@ def attempt_colab_login(app_url):
337
354
 
338
355
 
339
356
  class Notebook:
340
- def __init__(self, settings):
341
- self.outputs = {}
357
+ def __init__(self, settings: wandb.Settings) -> None:
358
+ self.outputs: dict[int, Any] = {}
342
359
  self.settings = settings
343
360
  self.shell = IPython.get_ipython()
344
361
 
@@ -441,10 +458,10 @@ class Notebook:
441
458
 
442
459
  return False
443
460
 
444
- def save_history(self):
461
+ def save_history(self, run: wandb_run.Run):
445
462
  """This saves all cell executions in the current session as a new notebook."""
446
463
  try:
447
- from nbformat import v4, validator, write
464
+ from nbformat import v4, validator, write # type: ignore
448
465
  except ImportError:
449
466
  wandb.termerror(
450
467
  "The nbformat package was not found."
@@ -499,8 +516,8 @@ class Notebook:
499
516
  },
500
517
  )
501
518
  state_path = os.path.join("code", "_session_history.ipynb")
502
- wandb.run._set_config_wandb("session_history", state_path)
503
- filesystem.mkdir_exists_ok(os.path.join(wandb.run.dir, "code"))
519
+ run._set_config_wandb("session_history", state_path)
520
+ filesystem.mkdir_exists_ok(os.path.join(self.settings.files_dir, "code"))
504
521
  with open(
505
522
  os.path.join(self.settings._tmp_code_dir, "_session_history.ipynb"),
506
523
  "w",
@@ -508,7 +525,9 @@ class Notebook:
508
525
  ) as f:
509
526
  write(nb, f, version=4)
510
527
  with open(
511
- os.path.join(wandb.run.dir, state_path), "w", encoding="utf-8"
528
+ os.path.join(self.settings.files_dir, state_path),
529
+ "w",
530
+ encoding="utf-8",
512
531
  ) as f:
513
532
  write(nb, f, version=4)
514
533
  except (OSError, validator.NotebookValidationError):
wandb/old/settings.py CHANGED
@@ -146,6 +146,10 @@ class Settings:
146
146
  try:
147
147
  home_config_dir = os.path.join(os.path.expanduser("~"), ".config", "wandb")
148
148
 
149
+ if os.getenv(env.CONFIG_DIR):
150
+ try_create_dir(os.getenv(env.CONFIG_DIR))
151
+ return os.path.join(os.getenv(env.CONFIG_DIR), "settings")
152
+
149
153
  if not try_create_dir(home_config_dir):
150
154
  temp_config_dir = os.path.join(
151
155
  tempfile.gettempdir(), ".config", "wandb"
@@ -162,7 +166,6 @@ class Settings:
162
166
  else:
163
167
  config_dir = home_config_dir
164
168
 
165
- config_dir = os.environ.get(env.CONFIG_DIR, config_dir)
166
169
  return os.path.join(config_dir, "settings")
167
170
  except Exception:
168
171
  return None
wandb/old/summary.py CHANGED
@@ -379,8 +379,6 @@ class FileSummary(Summary):
379
379
  if self._h5:
380
380
  self._h5.close()
381
381
  self._h5 = None
382
- if wandb.run and wandb.run._jupyter_agent:
383
- wandb.run._jupyter_agent.start()
384
382
 
385
383
 
386
384
  class HTTPSummary(Summary):