workbench 0.8.224__py3-none-any.whl → 0.8.234__py3-none-any.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 (61) hide show
  1. workbench/__init__.py +1 -0
  2. workbench/algorithms/dataframe/__init__.py +2 -0
  3. workbench/algorithms/dataframe/smart_aggregator.py +161 -0
  4. workbench/algorithms/sql/column_stats.py +0 -1
  5. workbench/algorithms/sql/correlations.py +0 -1
  6. workbench/algorithms/sql/descriptive_stats.py +0 -1
  7. workbench/api/meta.py +0 -1
  8. workbench/cached/cached_meta.py +0 -1
  9. workbench/cached/cached_model.py +37 -7
  10. workbench/core/artifacts/endpoint_core.py +12 -2
  11. workbench/core/artifacts/feature_set_core.py +66 -8
  12. workbench/core/cloud_platform/cloud_meta.py +0 -1
  13. workbench/model_script_utils/model_script_utils.py +30 -0
  14. workbench/model_script_utils/uq_harness.py +0 -1
  15. workbench/model_scripts/chemprop/chemprop.template +3 -0
  16. workbench/model_scripts/chemprop/generated_model_script.py +3 -3
  17. workbench/model_scripts/chemprop/model_script_utils.py +30 -0
  18. workbench/model_scripts/custom_models/chem_info/mol_descriptors.py +0 -1
  19. workbench/model_scripts/custom_models/chem_info/molecular_descriptors.py +0 -1
  20. workbench/model_scripts/custom_models/chem_info/morgan_fingerprints.py +0 -1
  21. workbench/model_scripts/pytorch_model/generated_model_script.py +50 -32
  22. workbench/model_scripts/pytorch_model/model_script_utils.py +30 -0
  23. workbench/model_scripts/pytorch_model/pytorch.template +47 -29
  24. workbench/model_scripts/pytorch_model/uq_harness.py +0 -1
  25. workbench/model_scripts/script_generation.py +0 -1
  26. workbench/model_scripts/xgb_model/model_script_utils.py +30 -0
  27. workbench/model_scripts/xgb_model/uq_harness.py +0 -1
  28. workbench/themes/dark/custom.css +85 -8
  29. workbench/themes/dark/plotly.json +6 -6
  30. workbench/themes/light/custom.css +172 -70
  31. workbench/themes/light/plotly.json +9 -9
  32. workbench/themes/midnight_blue/custom.css +48 -29
  33. workbench/themes/midnight_blue/plotly.json +1 -1
  34. workbench/utils/aws_utils.py +0 -1
  35. workbench/utils/chem_utils/mol_descriptors.py +0 -1
  36. workbench/utils/chem_utils/vis.py +137 -27
  37. workbench/utils/clientside_callbacks.py +41 -0
  38. workbench/utils/markdown_utils.py +61 -0
  39. workbench/utils/pipeline_utils.py +0 -1
  40. workbench/utils/plot_utils.py +8 -110
  41. workbench/web_interface/components/experiments/outlier_plot.py +0 -1
  42. workbench/web_interface/components/model_plot.py +2 -0
  43. workbench/web_interface/components/plugin_unit_test.py +0 -1
  44. workbench/web_interface/components/plugins/ag_table.py +2 -4
  45. workbench/web_interface/components/plugins/confusion_matrix.py +3 -6
  46. workbench/web_interface/components/plugins/model_details.py +28 -11
  47. workbench/web_interface/components/plugins/scatter_plot.py +56 -43
  48. workbench/web_interface/components/settings_menu.py +2 -1
  49. workbench/web_interface/page_views/main_page.py +0 -1
  50. {workbench-0.8.224.dist-info → workbench-0.8.234.dist-info}/METADATA +31 -29
  51. {workbench-0.8.224.dist-info → workbench-0.8.234.dist-info}/RECORD +55 -59
  52. {workbench-0.8.224.dist-info → workbench-0.8.234.dist-info}/WHEEL +1 -1
  53. workbench/themes/quartz/base_css.url +0 -1
  54. workbench/themes/quartz/custom.css +0 -117
  55. workbench/themes/quartz/plotly.json +0 -642
  56. workbench/themes/quartz_dark/base_css.url +0 -1
  57. workbench/themes/quartz_dark/custom.css +0 -131
  58. workbench/themes/quartz_dark/plotly.json +0 -642
  59. {workbench-0.8.224.dist-info → workbench-0.8.234.dist-info}/entry_points.txt +0 -0
  60. {workbench-0.8.224.dist-info → workbench-0.8.234.dist-info}/licenses/LICENSE +0 -0
  61. {workbench-0.8.224.dist-info → workbench-0.8.234.dist-info}/top_level.txt +0 -0
@@ -1,17 +1,79 @@
1
+ /* Light Theme Color Palette - Blue-Purple Blend */
2
+ :root {
3
+ /* Primary colors - blue to purple blend, low saturation */
4
+ --wb-lightest: rgb(215, 218, 225); /* Light blue-lavender - backgrounds */
5
+ --wb-light: rgb(210, 213, 220); /* Slightly lighter - alternate rows */
6
+ --wb-medium: rgb(175, 185, 215); /* Medium blue-purple - headers */
7
+ --wb-accent: rgb(120, 130, 180); /* Blue-purple accent - borders */
8
+ --wb-dark: rgb(80, 90, 140); /* Dark blue-purple - strong accents */
9
+
10
+ /* Text colors */
11
+ --wb-text-primary: rgb(45, 45, 55); /* Primary text */
12
+ --wb-text-bold: rgb(80, 80, 180); /* Bold text */
13
+ --wb-text-italic: rgb(120, 80, 180); /* Italic text */
14
+ --wb-text-muted: rgb(95, 100, 120); /* Muted text */
15
+
16
+ /* Semantic colors */
17
+ --wb-success: rgb(40, 110, 50);
18
+ --wb-info: rgb(60, 80, 160);
19
+ --wb-warning: rgb(170, 90, 10);
20
+ --wb-danger: rgb(180, 50, 80);
21
+ --wb-pink: rgb(200, 100, 200);
22
+
23
+ /* Shadows */
24
+ --wb-shadow: rgba(80, 80, 80, 0.15);
25
+
26
+ /* Dropdown/form colors */
27
+ --wb-dropdown-bg: rgba(215, 215, 215);
28
+ --wb-dropdown-focus: rgba(215, 215, 215);
29
+ --wb-dropdown-hover: rgba(215, 215, 215);
30
+
31
+ /* Container colors */
32
+ --wb-container-bg: rgb(215, 218, 225);
33
+ --wb-table-cell-bg: rgb(215, 218, 225);
34
+
35
+ /* Body gradient colors */
36
+ --wb-body-gradient-start: rgb(180, 195, 215);
37
+ --wb-body-gradient-end: rgb(195, 205, 220);
38
+
39
+ /* Table header gradient colors */
40
+ --wb-header-red-start: rgb(200, 120, 120);
41
+ --wb-header-red-end: rgb(160, 90, 90);
42
+ --wb-header-yellow-start: rgb(180, 175, 100);
43
+ --wb-header-yellow-end: rgb(140, 135, 70);
44
+ --wb-header-green-start: rgb(110, 170, 110);
45
+ --wb-header-green-end: rgb(80, 130, 80);
46
+ --wb-header-purple-start: rgb(160, 120, 180);
47
+ --wb-header-purple-end: rgb(120, 85, 140);
48
+ }
49
+
1
50
  h1, h2, h3, h4 {
2
- color: rgb(80, 80, 80); /* We want the headers dark gray */
51
+ color: var(--wb-text-primary);
3
52
  }
4
53
 
5
54
  body {
6
- color: rgb(80, 80, 80); /* Dark gray text */
7
- /* background: linear-gradient(90deg, rgba(240,240,240,1) 0%, rgba(240,240,240,1) 50%, rgba(150,150,195,1) 100%);*/
8
- /* background: linear-gradient(90deg, rgba(200,200,220,1) 0%, rgba(150,150,195,1) 100%); */
9
- background: linear-gradient(90deg, rgba(200,200,220,1) 0%, rgba(170,170,210,1) 100%);
55
+ color: var(--wb-text-primary);
56
+ background: linear-gradient(90deg, var(--wb-body-gradient-start) 0%, var(--wb-body-gradient-end) 100%);
10
57
  }
11
58
 
12
59
  /* Custom CSS to style bold text */
13
60
  b, strong {
14
- color: rgb(40, 40, 40);
61
+ color: var(--wb-text-bold);
62
+ }
63
+
64
+ /* Custom CSS to style italic text */
65
+ i, em {
66
+ color: var(--wb-text-italic);
67
+ }
68
+
69
+ /* Default link color */
70
+ a {
71
+ color: rgb(40, 80, 200); /* Electric blue for links */
72
+ }
73
+
74
+ /* Hover effect */
75
+ a:hover {
76
+ color: rgb(60, 100, 240); /* Brighter blue on hover */
15
77
  }
16
78
 
17
79
  /* Reduce spacing around lists */
@@ -25,110 +87,125 @@ ul, ol {
25
87
 
26
88
  /* AgGrid custom CSS */
27
89
 
28
- /* Adjust header background color */
29
- .ag-header {
30
- --ag-header-background-color: rgba(150, 150, 195);
31
- }
32
-
33
- /* Adjust cell background and text color */
34
- .ag-cell {
35
- background-color: rgb(240, 240, 240);
36
- color: rgb(80, 80, 80);
37
- }
38
-
39
- /* Alternate row colors */
40
- .ag-row:nth-child(even) .ag-cell {
41
- background-color: rgb(230, 230, 230);
42
- }
43
-
44
- /* AgGrid header text color */
45
- .ag-header-cell-text {
46
- color: rgb(60, 60, 60);
47
- }
48
-
49
- /* Selection color for the entire row */
50
- .ag-row.ag-row-selected .ag-cell {
51
- background-color: rgba(170, 170, 205, 1.0);
90
+ /* AG Grid 33+ uses CSS variables for theming - set them at the theme level */
91
+ [class*="ag-theme-"] {
92
+ --ag-background-color: var(--wb-lightest);
93
+ --ag-odd-row-background-color: var(--wb-lightest);
94
+ --ag-row-background-color: var(--wb-light);
95
+ --ag-selected-row-background-color: var(--wb-medium);
96
+ --ag-row-hover-color: var(--wb-light);
97
+ --ag-header-background-color: var(--wb-medium);
98
+ --ag-border-color: var(--wb-accent);
99
+ --ag-foreground-color: var(--wb-text-primary);
100
+ --ag-header-foreground-color: var(--wb-text-primary);
101
+
102
+ /* Box shadow and rounded corners */
103
+ box-shadow: 2px 2px 6px 5px var(--wb-shadow);
104
+ border-radius: 12px;
105
+ border: 0.5px solid var(--wb-accent);
106
+ margin: 0;
107
+ padding: 0;
52
108
  }
53
109
 
54
- /* There's a one pixel border around the grid that we want to remove */
110
+ /* Remove border from the grid wrapper */
55
111
  .ag-root-wrapper {
56
- border: none !important; /* Force removal with !important */
112
+ border: none !important;
57
113
  }
58
114
 
59
-
60
- /* Box shadow and rounded corners for all AgGrid themes */
61
- [class*="ag-theme-"] {
62
- box-shadow: 2px 2px 6px 5px rgba(0, 0, 0, 0.2); /* Drop shadow */
63
- border-radius: 12px; /* Rounded corners */
64
- border: 0.5px solid rgba(0, 0, 205, 0.5);
65
- margin: 0;
66
- padding: 0;
115
+ /* AG Grid container - remove padding but allow shadow overflow */
116
+ div:has(> [class*="ag-theme-"]) {
117
+ padding: 0 !important;
118
+ overflow: visible !important;
67
119
  }
68
120
 
69
121
  /* Apply styling to Workbench containers */
70
122
  .workbench-container {
71
- background-color: rgba(240, 240, 240, 0.5);
72
- box-shadow: 2px 2px 6px 5px rgba(0, 0, 0, 0.2);
73
- border-radius: 12px; /* Rounded corners */
123
+ background-color: var(--wb-container-bg);
124
+ box-shadow: 2px 2px 6px 5px var(--wb-shadow);
125
+ border-radius: 12px;
74
126
  }
75
127
 
76
128
  /* Apply styling to Workbench Offsets */
77
129
  .workbench-offset {
78
- background-color: rgba(240, 240, 240, 0.25);
79
- box-shadow: 1px 1px 3px 2px rgba(0, 0, 0, 0.2);
80
- border-radius: 12px; /* Rounded corners */
81
- }
82
-
83
- /* Apply styling to Workbench Highlight */
84
- .workbench-highlight {
85
- background-color: rgba(240, 240, 240, 0.5);
86
- box-shadow: 1px 1px 3px 2px rgba(0, 0, 0, 0.2);
87
- border-radius: 12px; /* Rounded corners */
130
+ box-shadow: 1px 1px 3px 2px var(--wb-shadow);
131
+ border-radius: 12px;
88
132
  }
89
133
 
90
134
  /* Apply styling to custom tooltips */
91
135
  .custom-tooltip {
92
- background-color: rgba(240, 240, 240, 1.0);
93
- box-shadow: 2px 2px 6px 5px rgba(0, 0, 0, 0.25);
94
- border-radius: 25px; /* Rounded corners */
95
- overflow: hidden; /* Ensure contents fit inside the rounded corners */
96
- border: 2px solid rgba(128, 128, 128, 1); /* 1-pixel grey */
136
+ background-color: var(--wb-lightest);
137
+ box-shadow: 2px 2px 6px 5px var(--wb-shadow);
138
+ border-radius: 25px;
139
+ overflow: hidden;
140
+ border: 2px solid var(--wb-accent);
97
141
  }
98
142
 
99
143
  /* Some of the HTML/Markdown will use color hints like 'green-text' or 'blue-text' */
100
144
  .green-text {
101
- color: rgb(40, 100, 40);
145
+ color: var(--wb-success);
102
146
  }
103
147
 
104
148
  .blue-text {
105
- color: rgb(70, 70, 160);
149
+ color: var(--wb-info);
106
150
  }
107
151
 
108
152
  .pink-text {
109
- color: rgb(200, 100, 200);
153
+ color: var(--wb-pink);
110
154
  }
111
155
 
112
156
  .red-text {
113
- color: rgb(200, 60, 100);
157
+ color: var(--wb-danger);
114
158
  }
115
159
 
116
160
  .orange-text {
117
- color: rgb(160, 80, 0);
161
+ color: var(--wb-warning);
118
162
  }
119
163
 
120
164
  .alert {
121
- color: rgb(200, 60, 100);
165
+ color: var(--wb-danger);
122
166
  }
123
167
 
124
168
  .warning {
125
- color: rgb(160, 80, 0);
169
+ color: var(--wb-warning);
126
170
  }
127
171
 
128
172
  .good {
129
- color: rgb(40, 100, 40);
173
+ color: var(--wb-success);
174
+ }
175
+
176
+ /* Dropdown styling (dcc.Dropdown) - override Bootstrap's variables */
177
+ .dash-dropdown {
178
+ --bs-body-bg: var(--wb-dropdown-bg);
179
+ --bs-body-color: var(--wb-text-primary);
180
+ --bs-border-color: var(--wb-accent);
181
+ }
182
+
183
+ /* Bootstrap form controls (dbc components) */
184
+ .form-select, .form-control {
185
+ background-color: var(--wb-dropdown-bg) !important;
186
+ border: 1px solid var(--wb-accent) !important;
187
+ color: var(--wb-text-primary) !important;
188
+ }
189
+
190
+ .form-select:focus, .form-control:focus {
191
+ background-color: var(--wb-dropdown-focus) !important;
192
+ border-color: var(--wb-dark) !important;
193
+ box-shadow: 0 0 0 0.2rem var(--wb-shadow) !important;
194
+ }
195
+
196
+ .dropdown-menu {
197
+ background-color: var(--wb-dropdown-bg) !important;
198
+ border: 1px solid var(--wb-accent) !important;
130
199
  }
131
200
 
201
+ .dropdown-item {
202
+ color: var(--wb-text-primary) !important;
203
+ }
204
+
205
+ .dropdown-item:hover, .dropdown-item:focus {
206
+ background-color: var(--wb-dropdown-hover) !important;
207
+ color: var(--wb-text-primary) !important;
208
+ }
132
209
 
133
210
  /* Table styling */
134
211
  table {
@@ -137,15 +214,40 @@ table {
137
214
 
138
215
  th {
139
216
  padding: 10px;
140
- border: 1px solid rgb(120, 120, 120);
141
- background-color: rgba(150, 150, 195);
217
+ border: 1px solid var(--wb-accent);
218
+ background-color: var(--wb-medium);
142
219
  font-weight: bold;
143
220
  text-align: center !important;
144
221
  }
145
222
 
146
223
  td {
147
224
  padding: 5px;
148
- border: 0.5px solid rgb(120, 120, 120);
149
- background-color: rgba(240, 240, 240, 0.5);
225
+ border: 0.5px solid var(--wb-accent);
226
+ background-color: var(--wb-table-cell-bg);
150
227
  text-align: center !important;
151
228
  }
229
+
230
+ /* AG Grid table header colors - gradient theme */
231
+ /* Data Sources tables - red gradient */
232
+ #main_data_sources .ag-header,
233
+ #data_sources_table .ag-header {
234
+ background: linear-gradient(180deg, var(--wb-header-red-start) 0%, var(--wb-header-red-end) 100%) !important;
235
+ }
236
+
237
+ /* Feature Sets tables - yellow/olive gradient */
238
+ #main_feature_sets .ag-header,
239
+ #feature_sets_table .ag-header {
240
+ background: linear-gradient(180deg, var(--wb-header-yellow-start) 0%, var(--wb-header-yellow-end) 100%) !important;
241
+ }
242
+
243
+ /* Models tables - green gradient */
244
+ #main_models .ag-header,
245
+ #models_table .ag-header {
246
+ background: linear-gradient(180deg, var(--wb-header-green-start) 0%, var(--wb-header-green-end) 100%) !important;
247
+ }
248
+
249
+ /* Endpoints tables - purple gradient */
250
+ #main_endpoints .ag-header,
251
+ #endpoints_table .ag-header {
252
+ background: linear-gradient(180deg, var(--wb-header-purple-start) 0%, var(--wb-header-purple-end) 100%) !important;
253
+ }
@@ -133,7 +133,7 @@
133
133
  "ticks": ""
134
134
  },
135
135
  "colorscale": [
136
- [0.0, "rgb(100, 100, 200)"],
136
+ [0.0, "rgba(100, 100, 200, 0.8)"],
137
137
  [0.4, "rgb(100, 200, 100)"],
138
138
  [0.65, "rgb(170, 170, 50)"],
139
139
  [0.85, "rgb(200, 100, 100)"],
@@ -476,14 +476,14 @@
476
476
  },
477
477
  "colorscale": {
478
478
  "diverging": [
479
- [0.0, "rgb(100, 100, 255)"],
479
+ [0.0, "rgba(100, 100, 255, 0.8)"],
480
480
  [0.4, "rgb(100, 240, 100)"],
481
481
  [0.65, "rgb(200, 200, 50)"],
482
482
  [0.85, "rgb(255, 100, 100)"],
483
483
  [1.0, "rgb(255, 100, 100)"]
484
484
  ],
485
485
  "sequential": [
486
- [0.0, "rgb(100, 100, 200)"],
486
+ [0.0, "rgba(100, 100, 200, 0.8)"],
487
487
  [0.4, "rgb(100, 200, 100)"],
488
488
  [0.65, "rgb(170, 170, 50)"],
489
489
  [0.85, "rgb(200, 100, 100)"],
@@ -561,8 +561,8 @@
561
561
  "mapbox": {
562
562
  "style": "light"
563
563
  },
564
- "paper_bgcolor": "rgba(0, 0, 0, 0.0)",
565
- "plot_bgcolor": "rgba(0, 0, 0, 0.0)",
564
+ "paper_bgcolor": "rgba(255, 255, 255, 0.0)",
565
+ "plot_bgcolor": "rgba(255, 255, 255, 0.0)",
566
566
  "polar": {
567
567
  "angularaxis": {
568
568
  "gridcolor": "#EBF0F8",
@@ -633,25 +633,25 @@
633
633
  },
634
634
  "xaxis": {
635
635
  "automargin": true,
636
- "gridcolor": "#ffffff",
636
+ "gridcolor": "rgba(120, 130, 160, 0.3)",
637
637
  "linecolor": "#EBF0F8",
638
638
  "ticks": "",
639
639
  "title": {
640
640
  "standoff": 15
641
641
  },
642
- "zerolinecolor": "#edeeee",
642
+ "zerolinecolor": "rgba(120, 130, 160, 0.4)",
643
643
  "zerolinewidth": 2,
644
644
  "gridwidth": 0.5
645
645
  },
646
646
  "yaxis": {
647
647
  "automargin": true,
648
- "gridcolor": "#ffffff",
648
+ "gridcolor": "rgba(120, 130, 160, 0.3)",
649
649
  "linecolor": "#EBF0F8",
650
650
  "ticks": "",
651
651
  "title": {
652
652
  "standoff": 15
653
653
  },
654
- "zerolinecolor": "#edeeee",
654
+ "zerolinecolor": "rgba(120, 130, 160, 0.4)",
655
655
  "zerolinewidth": 2,
656
656
  "gridwidth": 0.5
657
657
  },
@@ -37,48 +37,42 @@ a:hover {
37
37
 
38
38
  /* AgGrid custom CSS */
39
39
 
40
- /* Adjust header background color */
41
- .ag-header {
40
+ /* AG Grid 33+ uses CSS variables for theming - set them at the theme level */
41
+ [class*="ag-theme-"] {
42
+ --ag-background-color: rgb(54, 55, 88);
43
+ --ag-odd-row-background-color: rgb(54, 55, 88);
44
+ --ag-row-background-color: rgb(58, 59, 92);
45
+ --ag-selected-row-background-color: rgb(32, 75, 105);
46
+ --ag-row-hover-color: rgb(52, 73, 100);
42
47
  --ag-header-background-color: rgb(42, 85, 115);
43
- }
44
-
45
- /* Adjust cell background */
46
- .ag-cell {
47
- background-color: rgb(57, 63, 96);
48
- }
48
+ --ag-border-color: rgba(80, 85, 115, 0.5);
49
+ --ag-foreground-color: rgb(210, 210, 210);
50
+ --ag-header-foreground-color: rgb(220, 220, 220);
49
51
 
50
- /* Alternate row colors */
51
- .ag-row:nth-child(even) .ag-cell {
52
- background-color: rgb(62, 68, 101);
53
- }
54
-
55
- /* Selection color for the entire row */
56
- .ag-row.ag-row-selected .ag-cell {
57
- background-color: rgb(32, 75, 105);
52
+ /* Box shadow and rounded corners */
53
+ box-shadow: 2px 2px 6px 5px rgba(0, 0, 0, 0.25);
54
+ border-radius: 12px;
55
+ border: 0.5px solid rgba(0, 0, 0, 0.5);
56
+ margin: 0;
57
+ padding: 0;
58
58
  }
59
59
 
60
-
61
-
62
- /* There's a one pixel border around the grid that we want to remove */
60
+ /* Remove border from the grid wrapper */
63
61
  .ag-root-wrapper {
64
- border: none !important; /* Force removal with !important */
62
+ border: none !important;
65
63
  }
66
64
 
67
-
68
- /* Box shadow and rounded corners for all AgGrid themes */
69
- [class*="ag-theme-"] {
70
- box-shadow: 2px 2px 6px 5px rgba(0, 0, 0, 0.25);
71
- border-radius: 12px; /* Rounded corners */
72
- border: 0.5px solid rgba(0, 0, 0, 0.5);
73
- margin: 0;
74
- padding: 0;
65
+ /* AG Grid container - remove padding but allow shadow overflow */
66
+ div:has(> [class*="ag-theme-"]) {
67
+ padding: 0 !important;
68
+ overflow: visible !important;
75
69
  }
76
70
 
77
71
  /* Apply styling to Workbench containers */
78
72
  .workbench-container {
79
73
  box-shadow: 2px 2px 6px 5px rgba(0, 0, 0, 0.25);
80
74
  border-radius: 12px; /* Rounded corners */
81
- background-color: rgba(45, 41, 76, 0.5); /* Dark background */
75
+ background-color: rgb(54, 55, 88); /* Dark background */
82
76
  }
83
77
 
84
78
  /* Apply styling to Workbench Offsets */
@@ -185,4 +179,29 @@ td {
185
179
  padding: 5px;
186
180
  border: 0.5px solid #444;
187
181
  text-align: center !important;
182
+ }
183
+
184
+ /* AG Grid table header colors - gradient theme */
185
+ /* Data Sources tables - red gradient */
186
+ #main_data_sources .ag-header,
187
+ #data_sources_table .ag-header {
188
+ background: linear-gradient(180deg, rgb(130, 55, 55) 0%, rgb(80, 35, 35) 100%) !important;
189
+ }
190
+
191
+ /* Feature Sets tables - yellow/olive gradient */
192
+ #main_feature_sets .ag-header,
193
+ #feature_sets_table .ag-header {
194
+ background: linear-gradient(180deg, rgb(110, 105, 50) 0%, rgb(70, 65, 30) 100%) !important;
195
+ }
196
+
197
+ /* Models tables - green gradient */
198
+ #main_models .ag-header,
199
+ #models_table .ag-header {
200
+ background: linear-gradient(180deg, rgb(50, 100, 50) 0%, rgb(30, 60, 30) 100%) !important;
201
+ }
202
+
203
+ /* Endpoints tables - purple gradient */
204
+ #main_endpoints .ag-header,
205
+ #endpoints_table .ag-header {
206
+ background: linear-gradient(180deg, rgb(90, 55, 110) 0%, rgb(55, 30, 70) 100%) !important;
188
207
  }
@@ -528,7 +528,7 @@
528
528
  "style": "dark"
529
529
  },
530
530
  "paper_bgcolor": "rgba(0, 0, 0, 0.0)",
531
- "plot_bgcolor": "rgba(0, 0, 0, 0.0)",
531
+ "plot_bgcolor": "rgb(54, 55, 88)",
532
532
  "polar": {
533
533
  "angularaxis": {
534
534
  "gridcolor": "#506784",
@@ -17,7 +17,6 @@ from botocore.exceptions import ClientError
17
17
  from sagemaker.session import Session as SageSession
18
18
  from collections.abc import Mapping, Iterable
19
19
 
20
-
21
20
  # Workbench Imports
22
21
  from workbench.utils.config_manager import ConfigManager
23
22
  from workbench.utils.deprecated_utils import deprecated
@@ -99,7 +99,6 @@ from rdkit.ML.Descriptors import MoleculeDescriptors
99
99
  from mordred import Calculator as MordredCalculator
100
100
  from mordred import AcidBase, Aromatic, Constitutional, Chi, CarbonTypes
101
101
 
102
-
103
102
  logger = logging.getLogger("workbench")
104
103
  logger.setLevel(logging.DEBUG)
105
104