flashstudio 0.1.9__tar.gz → 0.2.0__tar.gz
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.
Potentially problematic release.
This version of flashstudio might be problematic. Click here for more details.
- {flashstudio-0.1.9 → flashstudio-0.2.0}/PKG-INFO +1 -1
- {flashstudio-0.1.9 → flashstudio-0.2.0}/README.md +15 -13
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/launcher.py +61 -36
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio.egg-info/PKG-INFO +1 -1
- {flashstudio-0.1.9 → flashstudio-0.2.0}/pyproject.toml +1 -1
- {flashstudio-0.1.9 → flashstudio-0.2.0}/README_PYPI.md +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/app.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/cli.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/components/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/components/project_manager.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/components/sidebar.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/components/styles.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/components/wizard.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/components/zone_drawer/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/constants.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/core/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/core/constants.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/_common.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/overview/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/overview/metrics.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/overview/pipeline_status.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/overview/project_banner.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/overview/quick_actions.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/overview/recent_runs.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/overview/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/page.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/_common.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/download/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/download/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/helpers.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/page.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/preview/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/preview/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/upload/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/upload/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/verify/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/data/verify/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/export/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/export/page.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/export/weights/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/export/weights/exporter.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/export/weights/settings.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/_common.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/data/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/data/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/model/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/model/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/page.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/run/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/run/detection.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/run/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/run/video.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/solution/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/inference/solution/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/_common.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/advanced/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/advanced/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/architecture/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/architecture/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/augment/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/augment/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/hyperparams/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/hyperparams/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/page.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/utils/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/model/utils/config.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/_common.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/launch/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/launch/controls.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/launch/dialogs.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/launch/preflight.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/launch/runner.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/launch/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/checkpoints.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/curves.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/dashboard.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/gt_verification.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/log_viewer.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/parsers.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/run_meta.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/tab.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/visualizations.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/page.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/utils/__init__.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/utils/config.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/utils/device.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/utils/filesystem.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/utils/jobs.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/utils/training_hooks.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio.egg-info/SOURCES.txt +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio.egg-info/dependency_links.txt +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio.egg-info/entry_points.txt +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio.egg-info/requires.txt +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio.egg-info/top_level.txt +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/setup.cfg +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/tests/test_app.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/tests/test_cli.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/tests/test_constants.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/tests/test_launcher.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/tests/test_pipeline_flow.py +0 -0
- {flashstudio-0.1.9 → flashstudio-0.2.0}/tests/test_save_dir_compat.py +0 -0
|
@@ -287,33 +287,35 @@ FlashStudio/
|
|
|
287
287
|
|
|
288
288
|
## Troubleshooting
|
|
289
289
|
|
|
290
|
-
### Colab: "localhost can't be reached"
|
|
290
|
+
### Colab: "localhost can't be reached" or ngrok error
|
|
291
291
|
|
|
292
|
-
|
|
292
|
+
`launch()` uses Colab's built-in proxy automatically. If it doesn't work, run this in a **new cell**:
|
|
293
293
|
|
|
294
294
|
```python
|
|
295
|
+
import subprocess, sys, time
|
|
296
|
+
|
|
297
|
+
proc = subprocess.Popen(
|
|
298
|
+
[sys.executable, "-m", "streamlit", "run",
|
|
299
|
+
__import__('flashstudio.launcher', fromlist=['_get_app_path'])._get_app_path(),
|
|
300
|
+
"--server.port", "8501", "--server.headless", "true",
|
|
301
|
+
"--server.enableCORS", "false", "--server.enableXsrfProtection", "false"],
|
|
302
|
+
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
|
303
|
+
)
|
|
304
|
+
time.sleep(5)
|
|
305
|
+
|
|
295
306
|
from google.colab.output import eval_js
|
|
296
|
-
print(eval_js(
|
|
307
|
+
print(eval_js("google.colab.kernel.proxyPort(8501)"))
|
|
297
308
|
```
|
|
298
309
|
|
|
299
|
-
Open the printed URL in a new tab.
|
|
310
|
+
Open the printed URL in a new tab. No token or signup needed.
|
|
300
311
|
|
|
301
312
|
### Streamlit port already in use
|
|
302
313
|
|
|
303
314
|
```bash
|
|
304
|
-
# Kill existing Streamlit processes
|
|
305
315
|
pkill -f "streamlit run"
|
|
306
|
-
|
|
307
|
-
# Then restart
|
|
308
316
|
flashstudio --port 8501
|
|
309
317
|
```
|
|
310
318
|
|
|
311
|
-
### `ModuleNotFoundError: No module named 'flashdet'`
|
|
312
|
-
|
|
313
|
-
```bash
|
|
314
|
-
pip install flashdet
|
|
315
|
-
```
|
|
316
|
-
|
|
317
319
|
---
|
|
318
320
|
|
|
319
321
|
## Requirements
|
|
@@ -55,14 +55,19 @@ def launch(port: int = 8501, share: bool = True, ngrok_token: str | None = None)
|
|
|
55
55
|
app_path = _get_app_path()
|
|
56
56
|
|
|
57
57
|
if is_colab():
|
|
58
|
-
_launch_colab(app_path, port, share, ngrok_token)
|
|
58
|
+
return _launch_colab(app_path, port, share, ngrok_token)
|
|
59
59
|
else:
|
|
60
60
|
_launch_local(app_path, port)
|
|
61
|
+
return None
|
|
61
62
|
|
|
62
63
|
|
|
63
64
|
def _launch_colab(app_path: str, port: int, share: bool, ngrok_token: str | None):
|
|
64
65
|
"""Launch in Google Colab with automatic tunnel detection."""
|
|
65
66
|
import time as _time
|
|
67
|
+
import urllib.request
|
|
68
|
+
import urllib.error
|
|
69
|
+
|
|
70
|
+
print(" Starting FlashStudio...", end="", flush=True)
|
|
66
71
|
|
|
67
72
|
proc = subprocess.Popen(
|
|
68
73
|
[sys.executable, "-m", "streamlit", "run", app_path,
|
|
@@ -74,28 +79,47 @@ def _launch_colab(app_path: str, port: int, share: bool, ngrok_token: str | None
|
|
|
74
79
|
stderr=subprocess.PIPE,
|
|
75
80
|
)
|
|
76
81
|
|
|
77
|
-
|
|
82
|
+
# Wait until Streamlit is actually responding (up to 30s)
|
|
83
|
+
ready = False
|
|
84
|
+
for i in range(30):
|
|
85
|
+
_time.sleep(1)
|
|
86
|
+
if proc.poll() is not None:
|
|
87
|
+
_, stderr = proc.communicate()
|
|
88
|
+
err_msg = stderr.decode("utf-8", errors="replace")[-500:] if stderr else "Unknown error"
|
|
89
|
+
print(f"\n\n FlashStudio failed to start:\n {err_msg}")
|
|
90
|
+
return proc
|
|
91
|
+
try:
|
|
92
|
+
urllib.request.urlopen(f"http://localhost:{port}/_stcore/health", timeout=2)
|
|
93
|
+
ready = True
|
|
94
|
+
break
|
|
95
|
+
except Exception:
|
|
96
|
+
print(".", end="", flush=True)
|
|
97
|
+
|
|
98
|
+
if ready:
|
|
99
|
+
print(" Ready!")
|
|
100
|
+
else:
|
|
101
|
+
print(" (still loading, URL may take a moment)")
|
|
78
102
|
|
|
79
103
|
public_url = None
|
|
80
104
|
|
|
81
105
|
# Method 1: Colab's built-in proxy (simplest, no install needed)
|
|
106
|
+
try:
|
|
107
|
+
from google.colab.output import eval_js
|
|
108
|
+
result = eval_js(f"google.colab.kernel.proxyPort({port})")
|
|
109
|
+
if result and str(result).startswith("http"):
|
|
110
|
+
public_url = str(result)
|
|
111
|
+
except Exception:
|
|
112
|
+
pass
|
|
113
|
+
|
|
114
|
+
# Method 2: ngrok (only if token is provided)
|
|
82
115
|
if not public_url:
|
|
83
|
-
try:
|
|
84
|
-
from google.colab.output import eval_js
|
|
85
|
-
public_url = str(eval_js(f"google.colab.kernel.proxyPort({port})"))
|
|
86
|
-
except Exception:
|
|
87
|
-
pass
|
|
88
|
-
|
|
89
|
-
# Method 2: ngrok (if token provided or pyngrok available)
|
|
90
|
-
if not public_url and share:
|
|
91
116
|
token = ngrok_token or os.environ.get("NGROK_TOKEN", "")
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
117
|
+
if token:
|
|
118
|
+
try:
|
|
119
|
+
from pyngrok import ngrok, conf
|
|
95
120
|
conf.get_default().auth_token = token
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if token:
|
|
121
|
+
public_url = str(ngrok.connect(port, "http"))
|
|
122
|
+
except ImportError:
|
|
99
123
|
try:
|
|
100
124
|
subprocess.check_call(
|
|
101
125
|
[sys.executable, "-m", "pip", "install", "-q", "pyngrok"],
|
|
@@ -106,22 +130,8 @@ def _launch_colab(app_path: str, port: int, share: bool, ngrok_token: str | None
|
|
|
106
130
|
public_url = str(ngrok.connect(port, "http"))
|
|
107
131
|
except Exception:
|
|
108
132
|
pass
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
# Method 3: localtunnel (no auth needed)
|
|
113
|
-
if not public_url and share:
|
|
114
|
-
try:
|
|
115
|
-
lt_proc = subprocess.run(
|
|
116
|
-
["npx", "localtunnel", "--port", str(port)],
|
|
117
|
-
capture_output=True, text=True, timeout=15,
|
|
118
|
-
)
|
|
119
|
-
for line in lt_proc.stdout.splitlines():
|
|
120
|
-
if "https://" in line:
|
|
121
|
-
public_url = line.strip().split()[-1]
|
|
122
|
-
break
|
|
123
|
-
except Exception:
|
|
124
|
-
pass
|
|
133
|
+
except Exception:
|
|
134
|
+
pass
|
|
125
135
|
|
|
126
136
|
print(f"\n{'=' * 60}")
|
|
127
137
|
print(" FlashStudio is running!")
|
|
@@ -129,8 +139,8 @@ def _launch_colab(app_path: str, port: int, share: bool, ngrok_token: str | None
|
|
|
129
139
|
print(f" Open: {public_url}")
|
|
130
140
|
else:
|
|
131
141
|
print(f" Port: {port}")
|
|
132
|
-
print("
|
|
133
|
-
print("
|
|
142
|
+
print("")
|
|
143
|
+
print(" Run this in a new cell to get the URL:")
|
|
134
144
|
print(f" from google.colab.output import eval_js")
|
|
135
145
|
print(f" print(eval_js('google.colab.kernel.proxyPort({port})'))")
|
|
136
146
|
print(f"{'=' * 60}\n")
|
|
@@ -140,12 +150,27 @@ def _launch_colab(app_path: str, port: int, share: bool, ngrok_token: str | None
|
|
|
140
150
|
from IPython.display import display, HTML
|
|
141
151
|
display(HTML(
|
|
142
152
|
f'<a href="{public_url}" target="_blank" '
|
|
143
|
-
f'style="font-size:16px;padding:
|
|
144
|
-
f'color:white;border-radius:
|
|
153
|
+
f'style="display:inline-block;font-size:16px;padding:10px 24px;'
|
|
154
|
+
f'background:#7C3AED;color:white;border-radius:8px;'
|
|
155
|
+
f'text-decoration:none;font-weight:600;margin:8px 0;">'
|
|
145
156
|
f'Open FlashStudio</a>'
|
|
146
157
|
))
|
|
147
158
|
except Exception:
|
|
148
159
|
pass
|
|
160
|
+
else:
|
|
161
|
+
try:
|
|
162
|
+
from IPython.display import display, HTML
|
|
163
|
+
display(HTML(
|
|
164
|
+
f'<div style="padding:12px;background:#FEF3C7;border-radius:8px;'
|
|
165
|
+
f'margin:8px 0;font-size:14px;">'
|
|
166
|
+
f'Run in a <b>new cell</b>:<br>'
|
|
167
|
+
f'<code style="background:#F3F4F6;padding:4px 8px;border-radius:4px;">'
|
|
168
|
+
f'from google.colab.output import eval_js; '
|
|
169
|
+
f'print(eval_js("google.colab.kernel.proxyPort({port})"))</code>'
|
|
170
|
+
f'</div>'
|
|
171
|
+
))
|
|
172
|
+
except Exception:
|
|
173
|
+
pass
|
|
149
174
|
|
|
150
175
|
return proc
|
|
151
176
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "flashstudio"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.2.0"
|
|
8
8
|
description = "Interactive Training & Inference UI for FlashDet — runs on Google Colab"
|
|
9
9
|
readme = "README_PYPI.md"
|
|
10
10
|
license = {text = "Apache-2.0"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/overview/pipeline_status.py
RENAMED
|
File without changes
|
{flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/overview/project_banner.py
RENAMED
|
File without changes
|
{flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/dashboard/overview/quick_actions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/gt_verification.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flashstudio-0.1.9 → flashstudio-0.2.0}/flashstudio/pages/training/monitor/visualizations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|