Galaxydude2 commited on
Commit
0300aa7
·
verified ·
1 Parent(s): 20fe62f

Update Gradio app via Colab

Browse files
.config/.last_opt_in_prompt.yaml ADDED
@@ -0,0 +1 @@
 
 
1
+ {}
.config/.last_survey_prompt.yaml ADDED
@@ -0,0 +1 @@
 
 
1
+ last_prompt_time: 1765463661.5765684
.config/.last_update_check.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"last_update_check_time": 1765463667.7616901, "last_update_check_revision": 20251205141901, "notifications": [], "last_nag_times": {}}
.config/active_config ADDED
@@ -0,0 +1 @@
 
 
1
+ default
.config/config_sentinel ADDED
File without changes
.config/configurations/config_default ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ [component_manager]
2
+ disable_update_check = true
3
+
4
+ [compute]
5
+ gce_metadata_read_timeout_sec = 0
6
+
.config/default_configs.db ADDED
Binary file (12.3 kB). View file
 
.config/gce ADDED
@@ -0,0 +1 @@
 
 
1
+ False
.config/hidden_gcloud_config_universe_descriptor_data_cache_configs.db ADDED
Binary file (12.3 kB). View file
 
.config/logs/2025.12.11/14.33.40.102128.log ADDED
@@ -0,0 +1,765 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-12-11 14:33:52,130 DEBUG root Loaded Command Group: ['gcloud', 'components']
2
+ 2025-12-11 14:33:52,134 DEBUG root Loaded Command Group: ['gcloud', 'components', 'update']
3
+ 2025-12-11 14:33:52,136 DEBUG root Running [gcloud.components.update] with arguments: [--compile-python: "True", --quiet: "True", COMPONENT-IDS:6: "['core', 'gcloud-deps', 'bq', 'gcloud', 'gcloud-crc32c', 'gsutil']"]
4
+ 2025-12-11 14:33:52,137 INFO ___FILE_ONLY___ Beginning update. This process may take several minutes.
5
+
6
+ 2025-12-11 14:33:52,177 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
7
+ 2025-12-11 14:33:53,128 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components-2.json HTTP/1.1" 200 24778
8
+ 2025-12-11 14:33:53,138 INFO ___FILE_ONLY___
9
+
10
+ 2025-12-11 14:33:53,139 INFO ___FILE_ONLY___
11
+ Your current Google Cloud CLI version is: 549.0.0
12
+
13
+ 2025-12-11 14:33:53,139 INFO ___FILE_ONLY___ Installing components from version: 549.0.0
14
+
15
+ 2025-12-11 14:33:53,139 INFO ___FILE_ONLY___
16
+
17
+ 2025-12-11 14:33:53,139 DEBUG root Chosen display Format:table[box,title="These components will be removed."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
18
+ 2025-12-11 14:33:53,140 DEBUG root Chosen display Format:table[box,title="These components will be updated."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
19
+ 2025-12-11 14:33:53,140 DEBUG root Chosen display Format:table[box,title="These components will be installed."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
20
+ 2025-12-11 14:33:53,186 INFO ___FILE_ONLY___ ┌──────────────────────────────────────────────────────────────────────────────┐
21
+ 2025-12-11 14:33:53,186 INFO ___FILE_ONLY___
22
+
23
+ 2025-12-11 14:33:53,186 INFO ___FILE_ONLY___ │ These components will be installed. │
24
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___
25
+
26
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___ ├─────────────────────────────────────────────────────┬────────────┬───────────┤
27
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___
28
+
29
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___ │ Name │ Version │ Size │
30
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___
31
+
32
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___ ├─────────────────────────────────────────────────────┼────────────┼───────────┤
33
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___
34
+
35
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___ │
36
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___ BigQuery Command Line Tool
37
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___
38
+ 2025-12-11 14:33:53,187 INFO ___FILE_ONLY___ │
39
+ 2025-12-11 14:33:53,188 INFO ___FILE_ONLY___ 2.1.25
40
+ 2025-12-11 14:33:53,188 INFO ___FILE_ONLY___
41
+ 2025-12-11 14:33:53,188 INFO ___FILE_ONLY___ │
42
+ 2025-12-11 14:33:53,188 INFO ___FILE_ONLY___ 1.8 MiB
43
+ 2025-12-11 14:33:53,188 INFO ___FILE_ONLY___
44
+ 2025-12-11 14:33:53,188 INFO ___FILE_ONLY___ │
45
+ 2025-12-11 14:33:53,188 INFO ___FILE_ONLY___
46
+
47
+ 2025-12-11 14:33:53,188 INFO ___FILE_ONLY___ │
48
+ 2025-12-11 14:33:53,188 INFO ___FILE_ONLY___ BigQuery Command Line Tool (Platform Specific)
49
+ 2025-12-11 14:33:53,189 INFO ___FILE_ONLY___
50
+ 2025-12-11 14:33:53,189 INFO ___FILE_ONLY___ │
51
+ 2025-12-11 14:33:53,189 INFO ___FILE_ONLY___ 2.1.25
52
+ 2025-12-11 14:33:53,189 INFO ___FILE_ONLY___
53
+ 2025-12-11 14:33:53,189 INFO ___FILE_ONLY___ │
54
+ 2025-12-11 14:33:53,189 INFO ___FILE_ONLY___ < 1 MiB
55
+ 2025-12-11 14:33:53,189 INFO ___FILE_ONLY___
56
+ 2025-12-11 14:33:53,189 INFO ___FILE_ONLY___ │
57
+ 2025-12-11 14:33:53,189 INFO ___FILE_ONLY___
58
+
59
+ 2025-12-11 14:33:53,190 INFO ___FILE_ONLY___ │
60
+ 2025-12-11 14:33:53,190 INFO ___FILE_ONLY___ Bundled Python 3.13 (Platform Specific)
61
+ 2025-12-11 14:33:53,190 INFO ___FILE_ONLY___
62
+ 2025-12-11 14:33:53,190 INFO ___FILE_ONLY___ │
63
+ 2025-12-11 14:33:53,190 INFO ___FILE_ONLY___ 3.13.7
64
+ 2025-12-11 14:33:53,190 INFO ___FILE_ONLY___
65
+ 2025-12-11 14:33:53,190 INFO ___FILE_ONLY___ │
66
+ 2025-12-11 14:33:53,190 INFO ___FILE_ONLY___ 138.5 MiB
67
+ 2025-12-11 14:33:53,190 INFO ___FILE_ONLY___
68
+ 2025-12-11 14:33:53,190 INFO ___FILE_ONLY___ │
69
+ 2025-12-11 14:33:53,191 INFO ___FILE_ONLY___
70
+
71
+ 2025-12-11 14:33:53,191 INFO ___FILE_ONLY___ │
72
+ 2025-12-11 14:33:53,191 INFO ___FILE_ONLY___ Cloud Storage Command Line Tool
73
+ 2025-12-11 14:33:53,191 INFO ___FILE_ONLY___
74
+ 2025-12-11 14:33:53,191 INFO ___FILE_ONLY___ │
75
+ 2025-12-11 14:33:53,191 INFO ___FILE_ONLY___ 5.35
76
+ 2025-12-11 14:33:53,191 INFO ___FILE_ONLY___
77
+ 2025-12-11 14:33:53,191 INFO ___FILE_ONLY___ │
78
+ 2025-12-11 14:33:53,191 INFO ___FILE_ONLY___ 12.4 MiB
79
+ 2025-12-11 14:33:53,191 INFO ___FILE_ONLY___
80
+ 2025-12-11 14:33:53,192 INFO ___FILE_ONLY___ │
81
+ 2025-12-11 14:33:53,192 INFO ___FILE_ONLY___
82
+
83
+ 2025-12-11 14:33:53,192 INFO ___FILE_ONLY___ │
84
+ 2025-12-11 14:33:53,192 INFO ___FILE_ONLY___ Cloud Storage Command Line Tool (Platform Specific)
85
+ 2025-12-11 14:33:53,192 INFO ___FILE_ONLY___
86
+ 2025-12-11 14:33:53,192 INFO ___FILE_ONLY___ │
87
+ 2025-12-11 14:33:53,192 INFO ___FILE_ONLY___ 5.35
88
+ 2025-12-11 14:33:53,192 INFO ___FILE_ONLY___
89
+ 2025-12-11 14:33:53,192 INFO ___FILE_ONLY___ │
90
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___ < 1 MiB
91
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___
92
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___ │
93
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___
94
+
95
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___ │
96
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___ Google Cloud CLI Core Libraries (Platform Specific)
97
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___
98
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___ │
99
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___ 2025.10.31
100
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___
101
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___ │
102
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___ < 1 MiB
103
+ 2025-12-11 14:33:53,193 INFO ___FILE_ONLY___
104
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___ │
105
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___
106
+
107
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___ │
108
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___ Google Cloud CRC32C Hash Tool (Platform Specific)
109
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___
110
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___ │
111
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___ 1.0.0
112
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___
113
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___ │
114
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___ 1.5 MiB
115
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___
116
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___ │
117
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___
118
+
119
+ 2025-12-11 14:33:53,194 INFO ___FILE_ONLY___ │
120
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___ gcloud cli dependencies (Platform Specific)
121
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___
122
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___ │
123
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___ 2021.04.16
124
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___
125
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___ │
126
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___ < 1 MiB
127
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___
128
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___ │
129
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___
130
+
131
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___ └─────────────────────────────────────────────────────┴────────────┴───────────┘
132
+ 2025-12-11 14:33:53,195 INFO ___FILE_ONLY___
133
+
134
+ 2025-12-11 14:33:53,196 INFO ___FILE_ONLY___
135
+
136
+ 2025-12-11 14:33:53,199 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
137
+ 2025-12-11 14:33:54,156 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/RELEASE_NOTES HTTP/1.1" 200 342027
138
+ 2025-12-11 14:33:54,692 INFO ___FILE_ONLY___ For the latest full release notes, please visit:
139
+ https://cloud.google.com/sdk/release_notes
140
+
141
+
142
+ 2025-12-11 14:33:54,693 INFO ___FILE_ONLY___ Performing in place update...
143
+
144
+
145
+ 2025-12-11 14:33:54,695 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
146
+
147
+ 2025-12-11 14:33:54,695 INFO ___FILE_ONLY___ ╠═ Downloading: BigQuery Command Line Tool ═╣
148
+
149
+ 2025-12-11 14:33:54,695 INFO ___FILE_ONLY___ ╚
150
+ 2025-12-11 14:33:54,698 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
151
+ 2025-12-11 14:33:55,694 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-bq-20251024121634.tar.gz HTTP/1.1" 200 1911793
152
+ 2025-12-11 14:33:55,706 INFO ___FILE_ONLY___ ═
153
+ 2025-12-11 14:33:55,706 INFO ___FILE_ONLY___ ═
154
+ 2025-12-11 14:33:55,707 INFO ___FILE_ONLY___ ═
155
+ 2025-12-11 14:33:55,707 INFO ___FILE_ONLY___ ═
156
+ 2025-12-11 14:33:55,707 INFO ___FILE_ONLY___ ═
157
+ 2025-12-11 14:33:55,707 INFO ___FILE_ONLY___ ═
158
+ 2025-12-11 14:33:55,707 INFO ___FILE_ONLY___ ═
159
+ 2025-12-11 14:33:55,708 INFO ___FILE_ONLY___ ═
160
+ 2025-12-11 14:33:55,708 INFO ___FILE_ONLY___ ═
161
+ 2025-12-11 14:33:55,708 INFO ___FILE_ONLY___ ═
162
+ 2025-12-11 14:33:55,708 INFO ___FILE_ONLY___ ═
163
+ 2025-12-11 14:33:55,708 INFO ___FILE_ONLY___ ═
164
+ 2025-12-11 14:33:55,708 INFO ___FILE_ONLY___ ═
165
+ 2025-12-11 14:33:55,709 INFO ___FILE_ONLY___ ═
166
+ 2025-12-11 14:33:55,709 INFO ___FILE_ONLY___ ═
167
+ 2025-12-11 14:33:55,709 INFO ___FILE_ONLY___ ═
168
+ 2025-12-11 14:33:55,709 INFO ___FILE_ONLY___ ═
169
+ 2025-12-11 14:33:55,709 INFO ___FILE_ONLY___ ═
170
+ 2025-12-11 14:33:55,709 INFO ___FILE_ONLY___ ═
171
+ 2025-12-11 14:33:55,709 INFO ___FILE_ONLY___ ═
172
+ 2025-12-11 14:33:55,709 INFO ___FILE_ONLY___ ═
173
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
174
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
175
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
176
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
177
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
178
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
179
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
180
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
181
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
182
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
183
+ 2025-12-11 14:33:55,710 INFO ___FILE_ONLY___ ═
184
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
185
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
186
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
187
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
188
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
189
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
190
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
191
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
192
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
193
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
194
+ 2025-12-11 14:33:55,711 INFO ___FILE_ONLY___ ═
195
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
196
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
197
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
198
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
199
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
200
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
201
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
202
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
203
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
204
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
205
+ 2025-12-11 14:33:55,712 INFO ___FILE_ONLY___ ═
206
+ 2025-12-11 14:33:55,713 INFO ___FILE_ONLY___ ═
207
+ 2025-12-11 14:33:55,713 INFO ___FILE_ONLY___ ═
208
+ 2025-12-11 14:33:55,713 INFO ___FILE_ONLY___ ═
209
+ 2025-12-11 14:33:55,713 INFO ___FILE_ONLY___ ═
210
+ 2025-12-11 14:33:55,713 INFO ___FILE_ONLY___ ═
211
+ 2025-12-11 14:33:55,713 INFO ___FILE_ONLY___ ═
212
+ 2025-12-11 14:33:55,713 INFO ___FILE_ONLY___ ╝
213
+
214
+ 2025-12-11 14:33:55,715 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
215
+
216
+ 2025-12-11 14:33:55,716 INFO ___FILE_ONLY___ ╠═ Downloading: BigQuery Command Line Tool (Platform Spe... ═╣
217
+
218
+ 2025-12-11 14:33:55,716 INFO ___FILE_ONLY___ ╚
219
+ 2025-12-11 14:33:55,719 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
220
+ 2025-12-11 14:33:56,672 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-bq-nix-20251031202127.tar.gz HTTP/1.1" 200 1932
221
+ 2025-12-11 14:33:56,672 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
222
+ 2025-12-11 14:33:56,672 INFO ___FILE_ONLY___ ╝
223
+
224
+ 2025-12-11 14:33:56,674 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
225
+
226
+ 2025-12-11 14:33:56,674 INFO ___FILE_ONLY___ ╠═ Downloading: Bundled Python 3.13 ═╣
227
+
228
+ 2025-12-11 14:33:56,675 INFO ___FILE_ONLY___ ╚
229
+ 2025-12-11 14:33:56,675 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
230
+ 2025-12-11 14:33:56,675 INFO ___FILE_ONLY___ ╝
231
+
232
+ 2025-12-11 14:33:56,676 INFO ___FILE_ONLY___ ╔════════════════════════════════════���═══════════════════════╗
233
+
234
+ 2025-12-11 14:33:56,676 INFO ___FILE_ONLY___ ╠═ Downloading: Bundled Python 3.13 (Platform Specific) ═╣
235
+
236
+ 2025-12-11 14:33:56,677 INFO ___FILE_ONLY___ ╚
237
+ 2025-12-11 14:33:56,679 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
238
+ 2025-12-11 14:33:57,634 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-bundled-python3-unix-linux-x86_64-20251205141901.tar.gz HTTP/1.1" 200 145280047
239
+ 2025-12-11 14:33:58,130 INFO ___FILE_ONLY___ ═
240
+ 2025-12-11 14:33:58,133 INFO ___FILE_ONLY___ ═
241
+ 2025-12-11 14:33:58,135 INFO ___FILE_ONLY___ ═
242
+ 2025-12-11 14:33:58,138 INFO ___FILE_ONLY___ ═
243
+ 2025-12-11 14:33:58,141 INFO ___FILE_ONLY___ ═
244
+ 2025-12-11 14:33:58,143 INFO ___FILE_ONLY___ ═
245
+ 2025-12-11 14:33:58,146 INFO ___FILE_ONLY___ ═
246
+ 2025-12-11 14:33:58,149 INFO ___FILE_ONLY___ ═
247
+ 2025-12-11 14:33:58,151 INFO ___FILE_ONLY___ ═
248
+ 2025-12-11 14:33:58,154 INFO ___FILE_ONLY___ ═
249
+ 2025-12-11 14:33:58,156 INFO ___FILE_ONLY___ ═
250
+ 2025-12-11 14:33:58,159 INFO ___FILE_ONLY___ ═
251
+ 2025-12-11 14:33:58,161 INFO ___FILE_ONLY___ ═
252
+ 2025-12-11 14:33:58,164 INFO ___FILE_ONLY___ ═
253
+ 2025-12-11 14:33:58,167 INFO ___FILE_ONLY___ ═
254
+ 2025-12-11 14:33:58,169 INFO ___FILE_ONLY___ ═
255
+ 2025-12-11 14:33:58,172 INFO ___FILE_ONLY___ ═
256
+ 2025-12-11 14:33:58,174 INFO ___FILE_ONLY___ ═
257
+ 2025-12-11 14:33:58,177 INFO ___FILE_ONLY___ ═
258
+ 2025-12-11 14:33:58,179 INFO ___FILE_ONLY___ ═
259
+ 2025-12-11 14:33:58,182 INFO ___FILE_ONLY___ ═
260
+ 2025-12-11 14:33:58,185 INFO ___FILE_ONLY___ ═
261
+ 2025-12-11 14:33:58,187 INFO ___FILE_ONLY___ ═
262
+ 2025-12-11 14:33:58,190 INFO ___FILE_ONLY___ ═
263
+ 2025-12-11 14:33:58,192 INFO ___FILE_ONLY___ ═
264
+ 2025-12-11 14:33:58,195 INFO ___FILE_ONLY___ ═
265
+ 2025-12-11 14:33:58,197 INFO ___FILE_ONLY___ ═
266
+ 2025-12-11 14:33:58,200 INFO ___FILE_ONLY___ ═
267
+ 2025-12-11 14:33:58,203 INFO ___FILE_ONLY___ ═
268
+ 2025-12-11 14:33:58,205 INFO ___FILE_ONLY___ ═
269
+ 2025-12-11 14:33:58,208 INFO ___FILE_ONLY___ ═
270
+ 2025-12-11 14:33:58,210 INFO ___FILE_ONLY___ ═
271
+ 2025-12-11 14:33:58,213 INFO ___FILE_ONLY___ ═
272
+ 2025-12-11 14:33:58,216 INFO ___FILE_ONLY___ ═
273
+ 2025-12-11 14:33:58,218 INFO ___FILE_ONLY___ ═
274
+ 2025-12-11 14:33:58,221 INFO ___FILE_ONLY___ ═
275
+ 2025-12-11 14:33:58,223 INFO ___FILE_ONLY___ ═
276
+ 2025-12-11 14:33:58,226 INFO ___FILE_ONLY___ ═
277
+ 2025-12-11 14:33:58,228 INFO ___FILE_ONLY___ ═
278
+ 2025-12-11 14:33:58,231 INFO ___FILE_ONLY___ ═
279
+ 2025-12-11 14:33:58,233 INFO ___FILE_ONLY___ ═
280
+ 2025-12-11 14:33:58,235 INFO ___FILE_ONLY___ ═
281
+ 2025-12-11 14:33:58,238 INFO ___FILE_ONLY___ ═
282
+ 2025-12-11 14:33:58,240 INFO ___FILE_ONLY___ ═
283
+ 2025-12-11 14:33:58,243 INFO ___FILE_ONLY___ ═
284
+ 2025-12-11 14:33:58,245 INFO ___FILE_ONLY___ ═
285
+ 2025-12-11 14:33:58,248 INFO ___FILE_ONLY___ ═
286
+ 2025-12-11 14:33:58,250 INFO ___FILE_ONLY___ ═
287
+ 2025-12-11 14:33:58,253 INFO ___FILE_ONLY___ ═
288
+ 2025-12-11 14:33:58,255 INFO ___FILE_ONLY___ ═
289
+ 2025-12-11 14:33:58,258 INFO ___FILE_ONLY___ ═
290
+ 2025-12-11 14:33:58,260 INFO ___FILE_ONLY___ ═
291
+ 2025-12-11 14:33:58,262 INFO ___FILE_ONLY___ ═
292
+ 2025-12-11 14:33:58,265 INFO ___FILE_ONLY___ ═
293
+ 2025-12-11 14:33:58,267 INFO ___FILE_ONLY___ ═
294
+ 2025-12-11 14:33:58,270 INFO ___FILE_ONLY___ ═
295
+ 2025-12-11 14:33:58,272 INFO ___FILE_ONLY___ ═
296
+ 2025-12-11 14:33:58,275 INFO ___FILE_ONLY___ ═
297
+ 2025-12-11 14:33:58,277 INFO ___FILE_ONLY___ ═
298
+ 2025-12-11 14:33:58,280 INFO ___FILE_ONLY___ ═
299
+ 2025-12-11 14:33:58,280 INFO ___FILE_ONLY___ ╝
300
+
301
+ 2025-12-11 14:33:58,282 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
302
+
303
+ 2025-12-11 14:33:58,282 INFO ___FILE_ONLY___ ╠═ Downloading: Cloud Storage Command Line Tool ═╣
304
+
305
+ 2025-12-11 14:33:58,283 INFO ___FILE_ONLY___ ╚
306
+ 2025-12-11 14:33:58,285 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
307
+ 2025-12-11 14:33:59,220 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-gsutil-20250627154417.tar.gz HTTP/1.1" 200 12962791
308
+ 2025-12-11 14:33:59,279 INFO ___FILE_ONLY___ ═
309
+ 2025-12-11 14:33:59,280 INFO ___FILE_ONLY___ ═
310
+ 2025-12-11 14:33:59,280 INFO ___FILE_ONLY___ ═
311
+ 2025-12-11 14:33:59,280 INFO ___FILE_ONLY___ ═
312
+ 2025-12-11 14:33:59,281 INFO ___FILE_ONLY___ ═
313
+ 2025-12-11 14:33:59,281 INFO ___FILE_ONLY___ ═
314
+ 2025-12-11 14:33:59,282 INFO ___FILE_ONLY___ ═
315
+ 2025-12-11 14:33:59,282 INFO ___FILE_ONLY___ ═
316
+ 2025-12-11 14:33:59,282 INFO ___FILE_ONLY___ ═
317
+ 2025-12-11 14:33:59,283 INFO ___FILE_ONLY___ ═
318
+ 2025-12-11 14:33:59,283 INFO ___FILE_ONLY___ ═
319
+ 2025-12-11 14:33:59,283 INFO ___FILE_ONLY___ ═
320
+ 2025-12-11 14:33:59,284 INFO ___FILE_ONLY___ ═
321
+ 2025-12-11 14:33:59,284 INFO ___FILE_ONLY___ ═
322
+ 2025-12-11 14:33:59,284 INFO ___FILE_ONLY___ ═
323
+ 2025-12-11 14:33:59,285 INFO ___FILE_ONLY___ ═
324
+ 2025-12-11 14:33:59,285 INFO ___FILE_ONLY___ ═
325
+ 2025-12-11 14:33:59,285 INFO ___FILE_ONLY___ ═
326
+ 2025-12-11 14:33:59,286 INFO ___FILE_ONLY___ ═
327
+ 2025-12-11 14:33:59,286 INFO ___FILE_ONLY___ ═
328
+ 2025-12-11 14:33:59,286 INFO ___FILE_ONLY___ ═
329
+ 2025-12-11 14:33:59,287 INFO ___FILE_ONLY___ ═
330
+ 2025-12-11 14:33:59,287 INFO ___FILE_ONLY___ ═
331
+ 2025-12-11 14:33:59,287 INFO ___FILE_ONLY___ ═
332
+ 2025-12-11 14:33:59,288 INFO ___FILE_ONLY___ ═
333
+ 2025-12-11 14:33:59,288 INFO ___FILE_ONLY___ ═
334
+ 2025-12-11 14:33:59,288 INFO ___FILE_ONLY___ ═
335
+ 2025-12-11 14:33:59,289 INFO ___FILE_ONLY___ ═
336
+ 2025-12-11 14:33:59,289 INFO ___FILE_ONLY___ ═
337
+ 2025-12-11 14:33:59,289 INFO ___FILE_ONLY___ ═
338
+ 2025-12-11 14:33:59,290 INFO ___FILE_ONLY___ ═
339
+ 2025-12-11 14:33:59,290 INFO ___FILE_ONLY___ ═
340
+ 2025-12-11 14:33:59,290 INFO ___FILE_ONLY___ ═
341
+ 2025-12-11 14:33:59,291 INFO ___FILE_ONLY___ ═
342
+ 2025-12-11 14:33:59,291 INFO ___FILE_ONLY___ ═
343
+ 2025-12-11 14:33:59,291 INFO ___FILE_ONLY___ ═
344
+ 2025-12-11 14:33:59,292 INFO ___FILE_ONLY___ ═
345
+ 2025-12-11 14:33:59,292 INFO ___FILE_ONLY___ ═
346
+ 2025-12-11 14:33:59,292 INFO ___FILE_ONLY___ ═
347
+ 2025-12-11 14:33:59,293 INFO ___FILE_ONLY___ ═
348
+ 2025-12-11 14:33:59,293 INFO ___FILE_ONLY___ ═
349
+ 2025-12-11 14:33:59,293 INFO ___FILE_ONLY___ ═
350
+ 2025-12-11 14:33:59,293 INFO ___FILE_ONLY___ ═
351
+ 2025-12-11 14:33:59,294 INFO ___FILE_ONLY___ ═
352
+ 2025-12-11 14:33:59,294 INFO ___FILE_ONLY___ ═
353
+ 2025-12-11 14:33:59,294 INFO ___FILE_ONLY___ ═
354
+ 2025-12-11 14:33:59,295 INFO ___FILE_ONLY___ ═
355
+ 2025-12-11 14:33:59,295 INFO ___FILE_ONLY___ ═
356
+ 2025-12-11 14:33:59,295 INFO ___FILE_ONLY___ ═
357
+ 2025-12-11 14:33:59,296 INFO ___FILE_ONLY___ ═
358
+ 2025-12-11 14:33:59,296 INFO ___FILE_ONLY___ ═
359
+ 2025-12-11 14:33:59,296 INFO ___FILE_ONLY___ ═
360
+ 2025-12-11 14:33:59,297 INFO ___FILE_ONLY___ ═
361
+ 2025-12-11 14:33:59,297 INFO ___FILE_ONLY___ ═
362
+ 2025-12-11 14:33:59,297 INFO ___FILE_ONLY___ ═
363
+ 2025-12-11 14:33:59,297 INFO ___FILE_ONLY___ ═
364
+ 2025-12-11 14:33:59,298 INFO ___FILE_ONLY___ ═
365
+ 2025-12-11 14:33:59,298 INFO ___FILE_ONLY___ ═
366
+ 2025-12-11 14:33:59,298 INFO ___FILE_ONLY___ ═
367
+ 2025-12-11 14:33:59,299 INFO ___FILE_ONLY___ ═
368
+ 2025-12-11 14:33:59,299 INFO ___FILE_ONLY___ ╝
369
+
370
+ 2025-12-11 14:33:59,301 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
371
+
372
+ 2025-12-11 14:33:59,301 INFO ___FILE_ONLY___ ╠═ Downloading: Cloud Storage Command Line Tool (Platfor... ═╣
373
+
374
+ 2025-12-11 14:33:59,301 INFO ___FILE_ONLY___ ╚
375
+ 2025-12-11 14:33:59,304 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
376
+ 2025-12-11 14:34:00,265 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-gsutil-nix-20251031202127.tar.gz HTTP/1.1" 200 1949
377
+ 2025-12-11 14:34:00,265 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
378
+ 2025-12-11 14:34:00,266 INFO ___FILE_ONLY___ ╝
379
+
380
+ 2025-12-11 14:34:00,267 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
381
+
382
+ 2025-12-11 14:34:00,268 INFO ___FILE_ONLY___ ╠═ Downloading: Default set of gcloud commands ═╣
383
+
384
+ 2025-12-11 14:34:00,268 INFO ___FILE_ONLY___ ╚
385
+ 2025-12-11 14:34:00,268 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
386
+ 2025-12-11 14:34:00,268 INFO ___FILE_ONLY___ ╝
387
+
388
+ 2025-12-11 14:34:00,270 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
389
+
390
+ 2025-12-11 14:34:00,270 INFO ___FILE_ONLY___ ╠═ Downloading: Google Cloud CLI Core Libraries (Platfor... ═╣
391
+
392
+ 2025-12-11 14:34:00,270 INFO ___FILE_ONLY___ ╚
393
+ 2025-12-11 14:34:00,272 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
394
+ 2025-12-11 14:34:01,212 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-core-nix-20251031202127.tar.gz HTTP/1.1" 200 2326
395
+ 2025-12-11 14:34:01,213 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
396
+ 2025-12-11 14:34:01,213 INFO ___FILE_ONLY___ ╝
397
+
398
+ 2025-12-11 14:34:01,215 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
399
+
400
+ 2025-12-11 14:34:01,215 INFO ___FILE_ONLY___ ╠═ Downloading: Google Cloud CRC32C Hash Tool ═╣
401
+
402
+ 2025-12-11 14:34:01,215 INFO ___FILE_ONLY___ ╚
403
+ 2025-12-11 14:34:01,215 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
404
+ 2025-12-11 14:34:01,215 INFO ___FILE_ONLY___ ╝
405
+
406
+ 2025-12-11 14:34:01,217 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
407
+
408
+ 2025-12-11 14:34:01,217 INFO ___FILE_ONLY___ ╠═ Downloading: Google Cloud CRC32C Hash Tool (Platform ... ═╣
409
+
410
+ 2025-12-11 14:34:01,217 INFO ___FILE_ONLY___ ╚
411
+ 2025-12-11 14:34:01,220 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
412
+ 2025-12-11 14:34:02,185 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-gcloud-crc32c-linux-x86_64-20251031202127.tar.gz HTTP/1.1" 200 1531280
413
+ 2025-12-11 14:34:02,196 INFO ___FILE_ONLY___ ═
414
+ 2025-12-11 14:34:02,196 INFO ___FILE_ONLY___ ═
415
+ 2025-12-11 14:34:02,197 INFO ___FILE_ONLY___ ═
416
+ 2025-12-11 14:34:02,197 INFO ___FILE_ONLY___ ═
417
+ 2025-12-11 14:34:02,197 INFO ___FILE_ONLY___ ═
418
+ 2025-12-11 14:34:02,197 INFO ___FILE_ONLY___ ═
419
+ 2025-12-11 14:34:02,197 INFO ___FILE_ONLY___ ═
420
+ 2025-12-11 14:34:02,197 INFO ___FILE_ONLY___ ═
421
+ 2025-12-11 14:34:02,197 INFO ___FILE_ONLY___ ═
422
+ 2025-12-11 14:34:02,197 INFO ___FILE_ONLY___ ═
423
+ 2025-12-11 14:34:02,198 INFO ___FILE_ONLY___ ═
424
+ 2025-12-11 14:34:02,198 INFO ___FILE_ONLY___ ═
425
+ 2025-12-11 14:34:02,198 INFO ___FILE_ONLY___ ═
426
+ 2025-12-11 14:34:02,198 INFO ___FILE_ONLY___ ═
427
+ 2025-12-11 14:34:02,198 INFO ___FILE_ONLY___ ═
428
+ 2025-12-11 14:34:02,198 INFO ___FILE_ONLY___ ═
429
+ 2025-12-11 14:34:02,198 INFO ___FILE_ONLY___ ═
430
+ 2025-12-11 14:34:02,198 INFO ___FILE_ONLY___ ═
431
+ 2025-12-11 14:34:02,198 INFO ___FILE_ONLY___ ═
432
+ 2025-12-11 14:34:02,199 INFO ___FILE_ONLY___ ═
433
+ 2025-12-11 14:34:02,199 INFO ___FILE_ONLY___ ═
434
+ 2025-12-11 14:34:02,199 INFO ___FILE_ONLY___ ═
435
+ 2025-12-11 14:34:02,199 INFO ___FILE_ONLY___ ═
436
+ 2025-12-11 14:34:02,199 INFO ___FILE_ONLY___ ═
437
+ 2025-12-11 14:34:02,199 INFO ___FILE_ONLY___ ═
438
+ 2025-12-11 14:34:02,199 INFO ___FILE_ONLY___ ═
439
+ 2025-12-11 14:34:02,199 INFO ___FILE_ONLY___ ═
440
+ 2025-12-11 14:34:02,200 INFO ___FILE_ONLY___ ═
441
+ 2025-12-11 14:34:02,200 INFO ___FILE_ONLY___ ═
442
+ 2025-12-11 14:34:02,200 INFO ___FILE_ONLY___ ═
443
+ 2025-12-11 14:34:02,200 INFO ___FILE_ONLY___ ═
444
+ 2025-12-11 14:34:02,200 INFO ___FILE_ONLY___ ═
445
+ 2025-12-11 14:34:02,200 INFO ___FILE_ONLY___ ═
446
+ 2025-12-11 14:34:02,200 INFO ___FILE_ONLY___ ═
447
+ 2025-12-11 14:34:02,200 INFO ___FILE_ONLY___ ═
448
+ 2025-12-11 14:34:02,201 INFO ___FILE_ONLY___ ═
449
+ 2025-12-11 14:34:02,201 INFO ___FILE_ONLY___ ═
450
+ 2025-12-11 14:34:02,201 INFO ___FILE_ONLY___ ═
451
+ 2025-12-11 14:34:02,201 INFO ___FILE_ONLY___ ═
452
+ 2025-12-11 14:34:02,201 INFO ___FILE_ONLY___ ═
453
+ 2025-12-11 14:34:02,201 INFO ___FILE_ONLY___ ═
454
+ 2025-12-11 14:34:02,201 INFO ___FILE_ONLY___ ═
455
+ 2025-12-11 14:34:02,201 INFO ___FILE_ONLY___ ═
456
+ 2025-12-11 14:34:02,201 INFO ___FILE_ONLY___ ═
457
+ 2025-12-11 14:34:02,202 INFO ___FILE_ONLY___ ═
458
+ 2025-12-11 14:34:02,202 INFO ___FILE_ONLY___ ═
459
+ 2025-12-11 14:34:02,202 INFO ___FILE_ONLY___ ═
460
+ 2025-12-11 14:34:02,202 INFO ___FILE_ONLY___ ═
461
+ 2025-12-11 14:34:02,202 INFO ___FILE_ONLY___ ═
462
+ 2025-12-11 14:34:02,202 INFO ___FILE_ONLY___ ═
463
+ 2025-12-11 14:34:02,202 INFO ___FILE_ONLY___ ═
464
+ 2025-12-11 14:34:02,202 INFO ___FILE_ONLY___ ═
465
+ 2025-12-11 14:34:02,202 INFO ___FILE_ONLY___ ═
466
+ 2025-12-11 14:34:02,203 INFO ___FILE_ONLY___ ═
467
+ 2025-12-11 14:34:02,203 INFO ___FILE_ONLY___ ═
468
+ 2025-12-11 14:34:02,203 INFO ___FILE_ONLY___ ═
469
+ 2025-12-11 14:34:02,203 INFO ___FILE_ONLY___ ═
470
+ 2025-12-11 14:34:02,203 INFO ___FILE_ONLY___ ═
471
+ 2025-12-11 14:34:02,203 INFO ___FILE_ONLY___ ═
472
+ 2025-12-11 14:34:02,203 INFO ___FILE_ONLY___ ═
473
+ 2025-12-11 14:34:02,203 INFO ___FILE_ONLY___ ╝
474
+
475
+ 2025-12-11 14:34:02,205 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
476
+
477
+ 2025-12-11 14:34:02,205 INFO ___FILE_ONLY___ ╠═ Downloading: gcloud cli dependencies (Platform Specific) ═╣
478
+
479
+ 2025-12-11 14:34:02,205 INFO ___FILE_ONLY___ ╚
480
+ 2025-12-11 14:34:02,208 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
481
+ 2025-12-11 14:34:03,144 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-gcloud-deps-linux-x86_64-20210416153011.tar.gz HTTP/1.1" 200 104
482
+ 2025-12-11 14:34:03,145 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
483
+ 2025-12-11 14:34:03,145 INFO ___FILE_ONLY___ ╝
484
+
485
+ 2025-12-11 14:34:03,147 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
486
+
487
+ 2025-12-11 14:34:03,147 INFO ___FILE_ONLY___ ╠═ Installing: BigQuery Command Line Tool ═╣
488
+
489
+ 2025-12-11 14:34:03,147 INFO ___FILE_ONLY___ ╚
490
+ 2025-12-11 14:34:03,248 INFO ___FILE_ONLY___ ═
491
+ 2025-12-11 14:34:03,250 INFO ___FILE_ONLY___ ═
492
+ 2025-12-11 14:34:03,253 INFO ___FILE_ONLY___ ═
493
+ 2025-12-11 14:34:03,255 INFO ___FILE_ONLY___ ═
494
+ 2025-12-11 14:34:03,258 INFO ___FILE_ONLY___ ═
495
+ 2025-12-11 14:34:03,261 INFO ___FILE_ONLY___ ═
496
+ 2025-12-11 14:34:03,262 INFO ___FILE_ONLY___ ═
497
+ 2025-12-11 14:34:03,265 INFO ___FILE_ONLY___ ═
498
+ 2025-12-11 14:34:03,267 INFO ___FILE_ONLY___ ═
499
+ 2025-12-11 14:34:03,269 INFO ___FILE_ONLY___ ═
500
+ 2025-12-11 14:34:03,271 INFO ___FILE_ONLY___ ═
501
+ 2025-12-11 14:34:03,273 INFO ___FILE_ONLY___ ═
502
+ 2025-12-11 14:34:03,276 INFO ___FILE_ONLY___ ═
503
+ 2025-12-11 14:34:03,278 INFO ___FILE_ONLY___ ═
504
+ 2025-12-11 14:34:03,280 INFO ___FILE_ONLY___ ═
505
+ 2025-12-11 14:34:03,282 INFO ___FILE_ONLY___ ═
506
+ 2025-12-11 14:34:03,285 INFO ___FILE_ONLY___ ═
507
+ 2025-12-11 14:34:03,288 INFO ___FILE_ONLY___ ═
508
+ 2025-12-11 14:34:03,290 INFO ___FILE_ONLY___ ═
509
+ 2025-12-11 14:34:03,292 INFO ___FILE_ONLY___ ═
510
+ 2025-12-11 14:34:03,294 INFO ___FILE_ONLY___ ═
511
+ 2025-12-11 14:34:03,296 INFO ___FILE_ONLY___ ═
512
+ 2025-12-11 14:34:03,298 INFO ___FILE_ONLY___ ═
513
+ 2025-12-11 14:34:03,301 INFO ___FILE_ONLY___ ═
514
+ 2025-12-11 14:34:03,303 INFO ___FILE_ONLY___ ═
515
+ 2025-12-11 14:34:03,305 INFO ___FILE_ONLY___ ═
516
+ 2025-12-11 14:34:03,307 INFO ___FILE_ONLY___ ═
517
+ 2025-12-11 14:34:03,309 INFO ___FILE_ONLY___ ═
518
+ 2025-12-11 14:34:03,310 INFO ___FILE_ONLY___ ═
519
+ 2025-12-11 14:34:03,312 INFO ___FILE_ONLY___ ═
520
+ 2025-12-11 14:34:03,314 INFO ___FILE_ONLY___ ═
521
+ 2025-12-11 14:34:03,315 INFO ___FILE_ONLY___ ═
522
+ 2025-12-11 14:34:03,317 INFO ___FILE_ONLY___ ═
523
+ 2025-12-11 14:34:03,320 INFO ___FILE_ONLY___ ═
524
+ 2025-12-11 14:34:03,322 INFO ___FILE_ONLY___ ═
525
+ 2025-12-11 14:34:03,325 INFO ___FILE_ONLY___ ═
526
+ 2025-12-11 14:34:03,327 INFO ___FILE_ONLY___ ═
527
+ 2025-12-11 14:34:03,330 INFO ___FILE_ONLY___ ═
528
+ 2025-12-11 14:34:03,341 INFO ___FILE_ONLY___ ═
529
+ 2025-12-11 14:34:03,345 INFO ___FILE_ONLY___ ═
530
+ 2025-12-11 14:34:03,347 INFO ___FILE_ONLY___ ═
531
+ 2025-12-11 14:34:03,349 INFO ___FILE_ONLY___ ═
532
+ 2025-12-11 14:34:03,352 INFO ___FILE_ONLY___ ═
533
+ 2025-12-11 14:34:03,354 INFO ___FILE_ONLY___ ═
534
+ 2025-12-11 14:34:03,357 INFO ___FILE_ONLY___ ═
535
+ 2025-12-11 14:34:03,361 INFO ___FILE_ONLY___ ═
536
+ 2025-12-11 14:34:03,364 INFO ___FILE_ONLY___ ═
537
+ 2025-12-11 14:34:03,366 INFO ___FILE_ONLY___ ═
538
+ 2025-12-11 14:34:03,368 INFO ___FILE_ONLY___ ═
539
+ 2025-12-11 14:34:03,370 INFO ___FILE_ONLY___ ═
540
+ 2025-12-11 14:34:03,372 INFO ___FILE_ONLY___ ═
541
+ 2025-12-11 14:34:03,375 INFO ___FILE_ONLY___ ═
542
+ 2025-12-11 14:34:03,378 INFO ___FILE_ONLY___ ═
543
+ 2025-12-11 14:34:03,380 INFO ___FILE_ONLY___ ═
544
+ 2025-12-11 14:34:03,382 INFO ___FILE_ONLY___ ═
545
+ 2025-12-11 14:34:03,385 INFO ___FILE_ONLY___ ═
546
+ 2025-12-11 14:34:03,387 INFO ___FILE_ONLY___ ═
547
+ 2025-12-11 14:34:03,389 INFO ___FILE_ONLY___ ═
548
+ 2025-12-11 14:34:03,391 INFO ___FILE_ONLY___ ═
549
+ 2025-12-11 14:34:03,393 INFO ___FILE_ONLY___ ═
550
+ 2025-12-11 14:34:03,393 INFO ___FILE_ONLY___ ╝
551
+
552
+ 2025-12-11 14:34:03,401 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
553
+
554
+ 2025-12-11 14:34:03,401 INFO ___FILE_ONLY___ ╠═ Installing: BigQuery Command Line Tool (Platform Spec... ═╣
555
+
556
+ 2025-12-11 14:34:03,401 INFO ___FILE_ONLY___ ╚
557
+ 2025-12-11 14:34:03,402 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
558
+ 2025-12-11 14:34:03,402 INFO ___FILE_ONLY___ ╝
559
+
560
+ 2025-12-11 14:34:03,407 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
561
+
562
+ 2025-12-11 14:34:03,407 INFO ___FILE_ONLY___ ╠═ Installing: Bundled Python 3.13 ═╣
563
+
564
+ 2025-12-11 14:34:03,407 INFO ___FILE_ONLY___ ╚
565
+ 2025-12-11 14:34:03,410 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
566
+ 2025-12-11 14:34:03,411 INFO ___FILE_ONLY___ ╝
567
+
568
+ 2025-12-11 14:34:03,412 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
569
+
570
+ 2025-12-11 14:34:03,412 INFO ___FILE_ONLY___ ╠═ Installing: Bundled Python 3.13 (Platform Specific) ═╣
571
+
572
+ 2025-12-11 14:34:03,412 INFO ___FILE_ONLY___ ╚
573
+ 2025-12-11 14:34:06,495 INFO ___FILE_ONLY___ ═
574
+ 2025-12-11 14:34:06,510 INFO ___FILE_ONLY___ ═
575
+ 2025-12-11 14:34:06,524 INFO ___FILE_ONLY___ ═
576
+ 2025-12-11 14:34:08,831 INFO ___FILE_ONLY___ ═
577
+ 2025-12-11 14:34:08,855 INFO ___FILE_ONLY___ ═
578
+ 2025-12-11 14:34:08,882 INFO ___FILE_ONLY___ ═
579
+ 2025-12-11 14:34:08,900 INFO ___FILE_ONLY___ ═
580
+ 2025-12-11 14:34:08,930 INFO ___FILE_ONLY___ ═
581
+ 2025-12-11 14:34:08,945 INFO ___FILE_ONLY___ ═
582
+ 2025-12-11 14:34:09,040 INFO ___FILE_ONLY___ ═
583
+ 2025-12-11 14:34:09,057 INFO ___FILE_ONLY___ ═
584
+ 2025-12-11 14:34:09,073 INFO ___FILE_ONLY___ ═
585
+ 2025-12-11 14:34:09,102 INFO ___FILE_ONLY___ ═
586
+ 2025-12-11 14:34:09,117 INFO ___FILE_ONLY___ ═
587
+ 2025-12-11 14:34:09,133 INFO ___FILE_ONLY___ ═
588
+ 2025-12-11 14:34:09,147 INFO ___FILE_ONLY___ ═
589
+ 2025-12-11 14:34:09,163 INFO ___FILE_ONLY___ ═
590
+ 2025-12-11 14:34:09,179 INFO ___FILE_ONLY___ ═
591
+ 2025-12-11 14:34:09,195 INFO ___FILE_ONLY___ ═
592
+ 2025-12-11 14:34:09,212 INFO ___FILE_ONLY___ ═
593
+ 2025-12-11 14:34:09,228 INFO ___FILE_ONLY___ ═
594
+ 2025-12-11 14:34:09,245 INFO ___FILE_ONLY___ ═
595
+ 2025-12-11 14:34:09,261 INFO ___FILE_ONLY___ ═
596
+ 2025-12-11 14:34:09,279 INFO ___FILE_ONLY___ ═
597
+ 2025-12-11 14:34:09,888 INFO ___FILE_ONLY___ ═
598
+ 2025-12-11 14:34:09,908 INFO ___FILE_ONLY___ ═
599
+ 2025-12-11 14:34:09,934 INFO ___FILE_ONLY___ ═
600
+ 2025-12-11 14:34:09,948 INFO ___FILE_ONLY___ ═
601
+ 2025-12-11 14:34:09,959 INFO ___FILE_ONLY___ ═
602
+ 2025-12-11 14:34:09,971 INFO ___FILE_ONLY___ ═
603
+ 2025-12-11 14:34:09,983 INFO ___FILE_ONLY___ ═
604
+ 2025-12-11 14:34:09,995 INFO ___FILE_ONLY___ ═
605
+ 2025-12-11 14:34:10,007 INFO ___FILE_ONLY___ ═
606
+ 2025-12-11 14:34:10,018 INFO ___FILE_ONLY___ ═
607
+ 2025-12-11 14:34:10,029 INFO ___FILE_ONLY___ ═
608
+ 2025-12-11 14:34:10,041 INFO ___FILE_ONLY___ ═
609
+ 2025-12-11 14:34:10,052 INFO ___FILE_ONLY___ ═
610
+ 2025-12-11 14:34:10,064 INFO ___FILE_ONLY___ ═
611
+ 2025-12-11 14:34:10,075 INFO ___FILE_ONLY___ ═
612
+ 2025-12-11 14:34:10,087 INFO ___FILE_ONLY___ ═
613
+ 2025-12-11 14:34:10,098 INFO ___FILE_ONLY___ ═
614
+ 2025-12-11 14:34:10,110 INFO ___FILE_ONLY___ ═
615
+ 2025-12-11 14:34:10,122 INFO ___FILE_ONLY___ ═
616
+ 2025-12-11 14:34:10,133 INFO ___FILE_ONLY___ ═
617
+ 2025-12-11 14:34:10,145 INFO ___FILE_ONLY___ ═
618
+ 2025-12-11 14:34:10,156 INFO ___FILE_ONLY___ ═
619
+ 2025-12-11 14:34:10,168 INFO ___FILE_ONLY___ ═
620
+ 2025-12-11 14:34:10,180 INFO ___FILE_ONLY___ ═
621
+ 2025-12-11 14:34:10,191 INFO ___FILE_ONLY___ ═
622
+ 2025-12-11 14:34:10,202 INFO ___FILE_ONLY___ ═
623
+ 2025-12-11 14:34:10,214 INFO ___FILE_ONLY___ ═
624
+ 2025-12-11 14:34:10,225 INFO ___FILE_ONLY___ ═
625
+ 2025-12-11 14:34:10,238 INFO ___FILE_ONLY___ ═
626
+ 2025-12-11 14:34:10,250 INFO ___FILE_ONLY___ ═
627
+ 2025-12-11 14:34:10,261 INFO ___FILE_ONLY___ ═
628
+ 2025-12-11 14:34:10,273 INFO ___FILE_ONLY___ ═
629
+ 2025-12-11 14:34:10,285 INFO ___FILE_ONLY___ ═
630
+ 2025-12-11 14:34:10,297 INFO ___FILE_ONLY___ ═
631
+ 2025-12-11 14:34:10,308 INFO ___FILE_ONLY___ ═
632
+ 2025-12-11 14:34:10,320 INFO ___FILE_ONLY___ ═
633
+ 2025-12-11 14:34:10,320 INFO ___FILE_ONLY___ ╝
634
+
635
+ 2025-12-11 14:34:10,380 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
636
+
637
+ 2025-12-11 14:34:10,380 INFO ___FILE_ONLY___ ╠═ Installing: Cloud Storage Command Line Tool ═╣
638
+
639
+ 2025-12-11 14:34:10,380 INFO ___FILE_ONLY___ ╚
640
+ 2025-12-11 14:34:10,924 INFO ___FILE_ONLY___ ═
641
+ 2025-12-11 14:34:10,935 INFO ___FILE_ONLY___ ═
642
+ 2025-12-11 14:34:10,945 INFO ___FILE_ONLY___ ═
643
+ 2025-12-11 14:34:10,954 INFO ___FILE_ONLY___ ═
644
+ 2025-12-11 14:34:10,963 INFO ___FILE_ONLY___ ═
645
+ 2025-12-11 14:34:10,996 INFO ___FILE_ONLY___ ═
646
+ 2025-12-11 14:34:11,009 INFO ___FILE_ONLY___ ═
647
+ 2025-12-11 14:34:11,024 INFO ___FILE_ONLY___ ═
648
+ 2025-12-11 14:34:11,038 INFO ___FILE_ONLY___ ═
649
+ 2025-12-11 14:34:11,052 INFO ___FILE_ONLY___ ═
650
+ 2025-12-11 14:34:11,068 INFO ___FILE_ONLY___ ═
651
+ 2025-12-11 14:34:11,079 INFO ___FILE_ONLY___ ═
652
+ 2025-12-11 14:34:11,089 INFO ___FILE_ONLY___ ═
653
+ 2025-12-11 14:34:11,097 INFO ___FILE_ONLY___ ═
654
+ 2025-12-11 14:34:11,106 INFO ___FILE_ONLY___ ═
655
+ 2025-12-11 14:34:11,122 INFO ___FILE_ONLY___ ═
656
+ 2025-12-11 14:34:11,135 INFO ___FILE_ONLY___ ═
657
+ 2025-12-11 14:34:11,144 INFO ___FILE_ONLY___ ═
658
+ 2025-12-11 14:34:11,154 INFO ___FILE_ONLY___ ═
659
+ 2025-12-11 14:34:11,165 INFO ___FILE_ONLY___ ═
660
+ 2025-12-11 14:34:11,174 INFO ___FILE_ONLY___ ═
661
+ 2025-12-11 14:34:11,185 INFO ___FILE_ONLY___ ═
662
+ 2025-12-11 14:34:11,195 INFO ___FILE_ONLY___ ═
663
+ 2025-12-11 14:34:11,205 INFO ___FILE_ONLY___ ═
664
+ 2025-12-11 14:34:11,214 INFO ___FILE_ONLY___ ═
665
+ 2025-12-11 14:34:11,223 INFO ___FILE_ONLY___ ═
666
+ 2025-12-11 14:34:11,234 INFO ___FILE_ONLY___ ═
667
+ 2025-12-11 14:34:11,246 INFO ___FILE_ONLY___ ═
668
+ 2025-12-11 14:34:11,262 INFO ___FILE_ONLY___ ═
669
+ 2025-12-11 14:34:11,273 INFO ___FILE_ONLY___ ═
670
+ 2025-12-11 14:34:11,284 INFO ___FILE_ONLY___ ═
671
+ 2025-12-11 14:34:11,304 INFO ___FILE_ONLY___ ═
672
+ 2025-12-11 14:34:11,319 INFO ___FILE_ONLY___ ═
673
+ 2025-12-11 14:34:11,336 INFO ___FILE_ONLY___ ═
674
+ 2025-12-11 14:34:11,350 INFO ___FILE_ONLY___ ═
675
+ 2025-12-11 14:34:11,365 INFO ___FILE_ONLY___ ═
676
+ 2025-12-11 14:34:11,374 INFO ___FILE_ONLY___ ═
677
+ 2025-12-11 14:34:11,384 INFO ___FILE_ONLY___ ═
678
+ 2025-12-11 14:34:11,419 INFO ___FILE_ONLY___ ═
679
+ 2025-12-11 14:34:11,432 INFO ___FILE_ONLY___ ═
680
+ 2025-12-11 14:34:11,442 INFO ___FILE_ONLY___ ═
681
+ 2025-12-11 14:34:11,452 INFO ___FILE_ONLY___ ═
682
+ 2025-12-11 14:34:11,461 INFO ___FILE_ONLY___ ═
683
+ 2025-12-11 14:34:11,472 INFO ___FILE_ONLY___ ═
684
+ 2025-12-11 14:34:11,481 INFO ___FILE_ONLY___ ═
685
+ 2025-12-11 14:34:11,490 INFO ___FILE_ONLY___ ═
686
+ 2025-12-11 14:34:11,500 INFO ___FILE_ONLY___ ═
687
+ 2025-12-11 14:34:11,508 INFO ___FILE_ONLY___ ═
688
+ 2025-12-11 14:34:11,517 INFO ___FILE_ONLY___ ═
689
+ 2025-12-11 14:34:11,529 INFO ___FILE_ONLY___ ═
690
+ 2025-12-11 14:34:11,542 INFO ___FILE_ONLY___ ═
691
+ 2025-12-11 14:34:11,554 INFO ___FILE_ONLY___ ═
692
+ 2025-12-11 14:34:11,567 INFO ___FILE_ONLY___ ═
693
+ 2025-12-11 14:34:11,581 INFO ___FILE_ONLY___ ═
694
+ 2025-12-11 14:34:11,595 INFO ___FILE_ONLY___ ═
695
+ 2025-12-11 14:34:11,611 INFO ___FILE_ONLY___ ═
696
+ 2025-12-11 14:34:11,628 INFO ___FILE_ONLY___ ═
697
+ 2025-12-11 14:34:11,649 INFO ___FILE_ONLY___ ═
698
+ 2025-12-11 14:34:11,666 INFO ___FILE_ONLY___ ═
699
+ 2025-12-11 14:34:11,683 INFO ___FILE_ONLY___ ═
700
+ 2025-12-11 14:34:11,683 INFO ___FILE_ONLY___ ╝
701
+
702
+ 2025-12-11 14:34:11,713 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
703
+
704
+ 2025-12-11 14:34:11,713 INFO ___FILE_ONLY___ ╠═ Installing: Cloud Storage Command Line Tool (Platform... ═╣
705
+
706
+ 2025-12-11 14:34:11,713 INFO ___FILE_ONLY___ ╚
707
+ 2025-12-11 14:34:11,714 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
708
+ 2025-12-11 14:34:11,714 INFO ___FILE_ONLY___ ╝
709
+
710
+ 2025-12-11 14:34:11,719 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
711
+
712
+ 2025-12-11 14:34:11,719 INFO ___FILE_ONLY___ ╠═ Installing: Default set of gcloud commands ═╣
713
+
714
+ 2025-12-11 14:34:11,719 INFO ___FILE_ONLY___ ╚
715
+ 2025-12-11 14:34:11,722 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
716
+ 2025-12-11 14:34:11,722 INFO ___FILE_ONLY___ ╝
717
+
718
+ 2025-12-11 14:34:11,724 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
719
+
720
+ 2025-12-11 14:34:11,724 INFO ___FILE_ONLY___ ╠═ Installing: Google Cloud CLI Core Libraries (Platform... ═╣
721
+
722
+ 2025-12-11 14:34:11,724 INFO ___FILE_ONLY___ ╚
723
+ 2025-12-11 14:34:11,725 INFO ___FILE_ONLY___ ══════════════════════════════
724
+ 2025-12-11 14:34:11,725 INFO ___FILE_ONLY___ ══════════════════════════════
725
+ 2025-12-11 14:34:11,725 INFO ___FILE_ONLY___ ╝
726
+
727
+ 2025-12-11 14:34:11,730 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
728
+
729
+ 2025-12-11 14:34:11,730 INFO ___FILE_ONLY___ ╠═ Installing: Google Cloud CRC32C Hash Tool ═╣
730
+
731
+ 2025-12-11 14:34:11,730 INFO ___FILE_ONLY___ ╚
732
+ 2025-12-11 14:34:11,733 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
733
+ 2025-12-11 14:34:11,733 INFO ___FILE_ONLY___ ╝
734
+
735
+ 2025-12-11 14:34:11,734 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
736
+
737
+ 2025-12-11 14:34:11,734 INFO ___FILE_ONLY___ ╠═ Installing: Google Cloud CRC32C Hash Tool (Platform S... ═╣
738
+
739
+ 2025-12-11 14:34:11,735 INFO ___FILE_ONLY___ ╚
740
+ 2025-12-11 14:34:11,770 INFO ___FILE_ONLY___ ══════════════════════════════
741
+ 2025-12-11 14:34:11,771 INFO ___FILE_ONLY___ ══════════════════════════════
742
+ 2025-12-11 14:34:11,771 INFO ___FILE_ONLY___ ╝
743
+
744
+ 2025-12-11 14:34:11,776 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
745
+
746
+ 2025-12-11 14:34:11,776 INFO ___FILE_ONLY___ ╠═ Installing: gcloud cli dependencies (Platform Specific) ═╣
747
+
748
+ 2025-12-11 14:34:11,776 INFO ___FILE_ONLY___ ╚
749
+ 2025-12-11 14:34:11,776 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
750
+ 2025-12-11 14:34:11,776 INFO ___FILE_ONLY___ ╝
751
+
752
+ 2025-12-11 14:34:11,781 DEBUG root Updating notification cache...
753
+ 2025-12-11 14:34:11,782 INFO ___FILE_ONLY___
754
+
755
+ 2025-12-11 14:34:11,784 INFO ___FILE_ONLY___ Performing post processing steps...
756
+ 2025-12-11 14:34:11,784 DEBUG root Executing command: ['/tools/google-cloud-sdk/bin/gcloud', 'components', 'post-process']
757
+ 2025-12-11 14:34:21,345 DEBUG ___FILE_ONLY___
758
+ 2025-12-11 14:34:21,346 DEBUG ___FILE_ONLY___
759
+ 2025-12-11 14:34:21,572 INFO root descriptor_list: [{'universeDomain': 'googleapis.com', 'universeShortName': '', 'authenticationDomain': 'auth.cloud.google.com', 'projectPrefix': '', 'cloudWebDomain': 'cloud.google.com', 'documentationDomain': 'cloud.google.com', 'version': '1.0.0', 'state': 'primary', 'artifactRegistryDomain': 'pkg.dev'}]
760
+ 2025-12-11 14:34:21,573 INFO ___FILE_ONLY___
761
+ Update done!
762
+
763
+
764
+ 2025-12-11 14:34:21,575 DEBUG root Chosen display Format:none
765
+ 2025-12-11 14:34:21,576 INFO root Display format: "none"
.config/logs/2025.12.11/14.34.12.303029.log ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ 2025-12-11 14:34:12,303 DEBUG root Loaded Command Group: ['gcloud', 'components']
2
+ 2025-12-11 14:34:12,305 DEBUG root Loaded Command Group: ['gcloud', 'components', 'post_process']
3
+ 2025-12-11 14:34:12,307 DEBUG root Running [gcloud.components.post-process] with arguments: []
4
+ 2025-12-11 14:34:21,219 DEBUG root Chosen display Format:none
5
+ 2025-12-11 14:34:21,220 INFO root Display format: "none"
.config/logs/2025.12.11/14.34.22.298248.log ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-12-11 14:34:22,299 DEBUG root Loaded Command Group: ['gcloud', 'components']
2
+ 2025-12-11 14:34:22,333 DEBUG root Loaded Command Group: ['gcloud', 'components', 'update']
3
+ 2025-12-11 14:34:22,336 DEBUG root Running [gcloud.components.update] with arguments: [--quiet: "True", COMPONENT-IDS:8: "['gcloud', 'core', 'bq', 'gsutil', 'compute', 'preview', 'alpha', 'beta']"]
4
+ 2025-12-11 14:34:22,337 INFO ___FILE_ONLY___ Beginning update. This process may take several minutes.
5
+
6
+ 2025-12-11 14:34:22,346 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
7
+ 2025-12-11 14:34:23,310 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components-2.json HTTP/1.1" 200 24778
8
+ 2025-12-11 14:34:23,323 WARNING root Component [compute] no longer exists.
9
+ 2025-12-11 14:34:23,324 INFO ___FILE_ONLY___
10
+
11
+ 2025-12-11 14:34:23,324 INFO ___FILE_ONLY___
12
+ Your current Google Cloud CLI version is: 549.0.0
13
+
14
+ 2025-12-11 14:34:23,324 INFO ___FILE_ONLY___ Installing components from version: 549.0.0
15
+
16
+ 2025-12-11 14:34:23,325 INFO ___FILE_ONLY___
17
+
18
+ 2025-12-11 14:34:23,325 DEBUG root Chosen display Format:table[box,title="These components will be removed."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
19
+ 2025-12-11 14:34:23,325 DEBUG root Chosen display Format:table[box,title="These components will be updated."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
20
+ 2025-12-11 14:34:23,326 DEBUG root Chosen display Format:table[box,title="These components will be installed."](details.display_name:label=Name:align=left,version.version_string:label=Version:align=right,data.size.size(zero="",min=1048576):label=Size:align=right)
21
+ 2025-12-11 14:34:23,343 INFO ___FILE_ONLY___ ┌────────────────────────────────────────────────┐
22
+ 2025-12-11 14:34:23,343 INFO ___FILE_ONLY___
23
+
24
+ 2025-12-11 14:34:23,343 INFO ___FILE_ONLY___ │ These components will be installed. │
25
+ 2025-12-11 14:34:23,343 INFO ___FILE_ONLY___
26
+
27
+ 2025-12-11 14:34:23,343 INFO ___FILE_ONLY___ ├─────────────────────────┬────────────┬─────────┤
28
+ 2025-12-11 14:34:23,344 INFO ___FILE_ONLY___
29
+
30
+ 2025-12-11 14:34:23,344 INFO ___FILE_ONLY___ │ Name │ Version │ Size │
31
+ 2025-12-11 14:34:23,344 INFO ___FILE_ONLY___
32
+
33
+ 2025-12-11 14:34:23,344 INFO ___FILE_ONLY___ ├─────────────────────────┼────────────┼─────────┤
34
+ 2025-12-11 14:34:23,344 INFO ___FILE_ONLY___
35
+
36
+ 2025-12-11 14:34:23,344 INFO ___FILE_ONLY___ │
37
+ 2025-12-11 14:34:23,344 INFO ___FILE_ONLY___ gcloud Alpha Commands
38
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___
39
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___ │
40
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___ 2025.12.05
41
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___
42
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___ │
43
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___ < 1 MiB
44
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___
45
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___ │
46
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___
47
+
48
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___ │
49
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___ gcloud Beta Commands
50
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___
51
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___ │
52
+ 2025-12-11 14:34:23,345 INFO ___FILE_ONLY___ 2025.12.05
53
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___
54
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___ │
55
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___ < 1 MiB
56
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___
57
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___ │
58
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___
59
+
60
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___ │
61
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___ gcloud Preview Commands
62
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___
63
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___ │
64
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___
65
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___
66
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___ │
67
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___ < 1 MiB
68
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___
69
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___ │
70
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___
71
+
72
+ 2025-12-11 14:34:23,346 INFO ___FILE_ONLY___ └─────────────────────────┴────────────┴─────────┘
73
+ 2025-12-11 14:34:23,347 INFO ___FILE_ONLY___
74
+
75
+ 2025-12-11 14:34:23,347 INFO ___FILE_ONLY___
76
+
77
+ 2025-12-11 14:34:23,350 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
78
+ 2025-12-11 14:34:24,295 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/RELEASE_NOTES HTTP/1.1" 200 342027
79
+ 2025-12-11 14:34:24,828 INFO ___FILE_ONLY___ For the latest full release notes, please visit:
80
+ https://cloud.google.com/sdk/release_notes
81
+
82
+
83
+ 2025-12-11 14:34:24,828 INFO ___FILE_ONLY___ Performing in place update...
84
+
85
+
86
+ 2025-12-11 14:34:24,830 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
87
+
88
+ 2025-12-11 14:34:24,830 INFO ___FILE_ONLY___ ╠═ Downloading: gcloud Alpha Commands ═╣
89
+
90
+ 2025-12-11 14:34:24,830 INFO ___FILE_ONLY___ ╚
91
+ 2025-12-11 14:34:24,833 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
92
+ 2025-12-11 14:34:25,781 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-alpha-20251205141901.tar.gz HTTP/1.1" 200 800
93
+ 2025-12-11 14:34:25,782 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
94
+ 2025-12-11 14:34:25,782 INFO ___FILE_ONLY___ ╝
95
+
96
+ 2025-12-11 14:34:25,784 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
97
+
98
+ 2025-12-11 14:34:25,784 INFO ___FILE_ONLY___ ╠═ Downloading: gcloud Beta Commands ═╣
99
+
100
+ 2025-12-11 14:34:25,784 INFO ___FILE_ONLY___ ╚
101
+ 2025-12-11 14:34:25,787 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
102
+ 2025-12-11 14:34:26,726 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-beta-20251205141901.tar.gz HTTP/1.1" 200 797
103
+ 2025-12-11 14:34:26,727 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
104
+ 2025-12-11 14:34:26,727 INFO ___FILE_ONLY___ ╝
105
+
106
+ 2025-12-11 14:34:26,729 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
107
+
108
+ 2025-12-11 14:34:26,729 INFO ___FILE_ONLY___ ╠═ Downloading: gcloud Preview Commands ═╣
109
+
110
+ 2025-12-11 14:34:26,729 INFO ___FILE_ONLY___ ╚
111
+ 2025-12-11 14:34:26,732 DEBUG urllib3.connectionpool Starting new HTTPS connection (1): dl.google.com:443
112
+ 2025-12-11 14:34:27,739 DEBUG urllib3.connectionpool https://dl.google.com:443 "GET /dl/cloudsdk/channels/rapid/components/google-cloud-sdk-preview-20241115154308.tar.gz HTTP/1.1" 200 823
113
+ 2025-12-11 14:34:27,740 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
114
+ 2025-12-11 14:34:27,740 INFO ___FILE_ONLY___ ╝
115
+
116
+ 2025-12-11 14:34:27,742 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
117
+
118
+ 2025-12-11 14:34:27,742 INFO ___FILE_ONLY___ ╠═ Installing: gcloud Alpha Commands ═╣
119
+
120
+ 2025-12-11 14:34:27,742 INFO ___FILE_ONLY___ ╚
121
+ 2025-12-11 14:34:27,743 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
122
+ 2025-12-11 14:34:27,743 INFO ___FILE_ONLY___ ╝
123
+
124
+ 2025-12-11 14:34:27,750 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
125
+
126
+ 2025-12-11 14:34:27,750 INFO ___FILE_ONLY___ ╠═ Installing: gcloud Beta Commands ═╣
127
+
128
+ 2025-12-11 14:34:27,750 INFO ___FILE_ONLY___ ╚
129
+ 2025-12-11 14:34:27,751 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
130
+ 2025-12-11 14:34:27,751 INFO ___FILE_ONLY___ ╝
131
+
132
+ 2025-12-11 14:34:27,755 INFO ___FILE_ONLY___ ╔════════════════════════════════════════════════════════════╗
133
+
134
+ 2025-12-11 14:34:27,755 INFO ___FILE_ONLY___ ╠═ Installing: gcloud Preview Commands ═╣
135
+
136
+ 2025-12-11 14:34:27,755 INFO ___FILE_ONLY___ ╚
137
+ 2025-12-11 14:34:27,756 INFO ___FILE_ONLY___ ════════════════════════════════════════════════════════════
138
+ 2025-12-11 14:34:27,756 INFO ___FILE_ONLY___ ╝
139
+
140
+ 2025-12-11 14:34:27,761 DEBUG root Updating notification cache...
141
+ 2025-12-11 14:34:27,762 INFO ___FILE_ONLY___
142
+
143
+ 2025-12-11 14:34:27,763 INFO ___FILE_ONLY___ Performing post processing steps...
144
+ 2025-12-11 14:34:27,764 DEBUG root Executing command: ['/tools/google-cloud-sdk/bin/gcloud', 'components', 'post-process']
145
+ 2025-12-11 14:34:37,413 DEBUG ___FILE_ONLY___
146
+ 2025-12-11 14:34:37,413 DEBUG ___FILE_ONLY___
147
+ 2025-12-11 14:34:37,529 INFO root descriptor_list: [{'universeDomain': 'googleapis.com', 'universeShortName': '', 'authenticationDomain': 'auth.cloud.google.com', 'projectPrefix': '', 'cloudWebDomain': 'cloud.google.com', 'documentationDomain': 'cloud.google.com', 'version': '1.0.0', 'state': 'primary', 'artifactRegistryDomain': 'pkg.dev'}]
148
+ 2025-12-11 14:34:37,530 INFO ___FILE_ONLY___
149
+ Update done!
150
+
151
+
152
+ 2025-12-11 14:34:37,532 DEBUG root Chosen display Format:none
153
+ 2025-12-11 14:34:37,532 INFO root Display format: "none"
.config/logs/2025.12.11/14.34.28.289959.log ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ 2025-12-11 14:34:28,290 DEBUG root Loaded Command Group: ['gcloud', 'components']
2
+ 2025-12-11 14:34:28,292 DEBUG root Loaded Command Group: ['gcloud', 'components', 'post_process']
3
+ 2025-12-11 14:34:28,293 DEBUG root Running [gcloud.components.post-process] with arguments: []
4
+ 2025-12-11 14:34:37,289 DEBUG root Chosen display Format:none
5
+ 2025-12-11 14:34:37,290 INFO root Display format: "none"
.config/logs/2025.12.11/14.34.38.212031.log ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ 2025-12-11 14:34:38,213 DEBUG root Loaded Command Group: ['gcloud', 'config']
2
+ 2025-12-11 14:34:38,311 DEBUG root Loaded Command Group: ['gcloud', 'config', 'set']
3
+ 2025-12-11 14:34:38,313 DEBUG root Running [gcloud.config.set] with arguments: [SECTION/PROPERTY: "component_manager/disable_update_check", VALUE: "true"]
4
+ 2025-12-11 14:34:38,314 INFO ___FILE_ONLY___ Updated property [component_manager/disable_update_check].
5
+
6
+ 2025-12-11 14:34:38,314 DEBUG root Chosen display Format:default
7
+ 2025-12-11 14:34:38,315 INFO root Display format: "default"
8
+ 2025-12-11 14:34:38,320 DEBUG root SDK update checks are disabled.
.config/logs/2025.12.11/14.34.39.029902.log ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ 2025-12-11 14:34:39,031 DEBUG root Loaded Command Group: ['gcloud', 'config']
2
+ 2025-12-11 14:34:39,120 DEBUG root Loaded Command Group: ['gcloud', 'config', 'set']
3
+ 2025-12-11 14:34:39,123 DEBUG root Running [gcloud.config.set] with arguments: [SECTION/PROPERTY: "compute/gce_metadata_read_timeout_sec", VALUE: "0"]
4
+ 2025-12-11 14:34:39,123 INFO ___FILE_ONLY___ Updated property [compute/gce_metadata_read_timeout_sec].
5
+
6
+ 2025-12-11 14:34:39,124 DEBUG root Chosen display Format:default
7
+ 2025-12-11 14:34:39,125 INFO root Display format: "default"
8
+ 2025-12-11 14:34:39,131 DEBUG root SDK update checks are disabled.
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ sample_data/mnist_test.csv filter=lfs diff=lfs merge=lfs -text
37
+ sample_data/mnist_train_small.csv filter=lfs diff=lfs merge=lfs -text
.gradio/certificate.pem ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
3
+ TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
4
+ cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
5
+ WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
6
+ ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
7
+ MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
8
+ h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
9
+ 0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
10
+ A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
11
+ T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
12
+ B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
13
+ B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
14
+ KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
15
+ OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
16
+ jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
17
+ qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
18
+ rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
19
+ HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
20
+ hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
21
+ ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
22
+ 3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
23
+ NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
24
+ ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
25
+ TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
26
+ jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
27
+ oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
28
+ 4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
29
+ mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
30
+ emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
31
+ -----END CERTIFICATE-----
README.md CHANGED
@@ -1,12 +1,6 @@
1
  ---
2
- title: ANA2
3
- emoji: 🌍
4
- colorFrom: green
5
- colorTo: blue
6
- sdk: gradio
7
- sdk_version: 6.2.0
8
  app_file: app.py
9
- pinned: false
 
10
  ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: ana
 
 
 
 
 
3
  app_file: app.py
4
+ sdk: gradio
5
+ sdk_version: 5.50.0
6
  ---
 
 
app.py ADDED
@@ -0,0 +1,564 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import sys
3
+ if 'google.colab' in sys.modules:
4
+ !pip install deepface nudenet opencv-python
5
+
6
+ from PIL import Image, ImageDraw, ImageFont
7
+ import numpy as np
8
+ import gradio as gr
9
+ import os
10
+ import cv2
11
+ from deepface import DeepFace
12
+ from nudenet import NudeDetector
13
+ import io
14
+ import tempfile
15
+
16
+ # --- Constants for image generation ---
17
+ FONT_SIZE_TITLE = 28
18
+ FONT_SIZE_DESC = 20
19
+ PADDING = 30
20
+ ITEM_SPACING = 50
21
+ BORDER_COLOR = (255, 20, 147)
22
+ BORDER_WIDTH = 3
23
+ TEXT_COLOR = (255, 20, 147)
24
+ BACKGROUND_COLOR = (0, 0, 0)
25
+ ERROR_IMAGE_WIDTH = 800
26
+ ERROR_IMAGE_HEIGHT = 400
27
+ TARGET_MAX_DIMENSION = 400
28
+ PIXELS_PER_CM_ESTIMATE = 15
29
+
30
+ # Try to load a font, fall back to default if not available
31
+ try:
32
+ FONT_TITLE = ImageFont.truetype("arial.ttf", FONT_SIZE_TITLE)
33
+ try:
34
+ FONT_DESC = ImageFont.truetype("arialbd.ttf", FONT_SIZE_DESC)
35
+ except IOError:
36
+ print("Could not load arialbd.ttf, falling back to arial.ttf for FONT_DESC.")
37
+ FONT_DESC = ImageFont.truetype("arial.ttf", FONT_SIZE_DESC)
38
+ FONT_ERROR = ImageFont.truetype("arial.ttf", 24)
39
+ FONT_LABEL_SIMPLE = ImageFont.truetype("arial.ttf", 14)
40
+ except IOError:
41
+ print("Could not load arial.ttf, using default font.")
42
+ FONT_TITLE = ImageFont.load_default()
43
+ FONT_DESC = ImageFont.load_default()
44
+ FONT_ERROR = ImageFont.load_default()
45
+ FONT_LABEL_SIMPLE = ImageFont.load_default()
46
+
47
+ def create_error_image(message):
48
+ error_img = Image.new('RGB', (ERROR_IMAGE_WIDTH, ERROR_IMAGE_HEIGHT), color=BACKGROUND_COLOR)
49
+ draw = ImageDraw.Draw(error_img)
50
+
51
+ bbox = FONT_ERROR.getbbox(message)
52
+ text_width = bbox[2] - bbox[0]
53
+ text_height = bbox[3] - bbox[1]
54
+
55
+ x = (ERROR_IMAGE_WIDTH - text_width) / 2
56
+ y = (ERROR_IMAGE_HEIGHT - text_height) / 2
57
+
58
+ draw.text((x, y), message, font=FONT_ERROR, fill=TEXT_COLOR)
59
+ return error_img
60
+
61
+ def resize_crop(crop_img, target_max_dim):
62
+ if crop_img.width == 0 or crop_img.height == 0:
63
+ return crop_img
64
+
65
+ if crop_img.width > crop_img.height:
66
+ new_width = target_max_dim
67
+ new_height = int(crop_img.height * (target_max_dim / crop_img.width))
68
+ else:
69
+ new_height = target_max_dim
70
+ new_width = int(crop_img.width * (target_max_dim / crop_img.height))
71
+
72
+ return crop_img.resize((new_width, new_height), Image.Resampling.LANCZOS)
73
+
74
+ def estimate_breast_size_cm(crop_img):
75
+ width_px, height_px = crop_img.size
76
+ width_cm = round(width_px / PIXELS_PER_CM_ESTIMATE, 1)
77
+ height_cm = round(height_px / PIXELS_PER_CM_ESTIMATE, 1)
78
+ return f"Breite: {width_cm} cm · Höhe: {height_cm} cm (geschätzt)"
79
+
80
+ def estimate_vagina_size_cm(crop_img):
81
+ width_px, height_px = crop_img.size
82
+ width_cm = round(width_px / PIXELS_PER_CM_ESTIMATE, 1)
83
+ height_cm = round(height_px / PIXELS_PER_CM_ESTIMATE, 1)
84
+ return f"Breite: {width_cm} cm · Höhe: {height_cm} cm (geschätzt)"
85
+
86
+ def estimate_body_measurements(person_bbox, associated_nudenet_dets):
87
+ pb_x1, pb_y1, pb_x2, pb_y2 = person_bbox
88
+ person_width_px = pb_x2 - pb_x1
89
+ person_height_px = pb_y2 - pb_y1
90
+
91
+ if person_width_px <= 0 or person_height_px <= 0:
92
+ return "KörpermaÑe nicht schätzbar (ungültiger Personen-BBox)"
93
+
94
+ person_width_cm = person_width_px / PIXELS_PER_CM_ESTIMATE
95
+ person_height_cm = person_height_px / PIXELS_PER_CM_ESTIMATE
96
+
97
+ bust_cm = "?"
98
+ waist_cm = "?"
99
+ hip_cm = "?"
100
+
101
+ breast_detections = [det for det in associated_nudenet_dets if 'BREAST_EXPOSED' in det['class']]
102
+ vagina_detections = [det for det in associated_nudenet_dets if 'FEMALE_GENITALIA_EXPOSED' in det['class']]
103
+
104
+ if breast_detections:
105
+ total_breast_width_px = sum([det['box'][2] for det in breast_detections])
106
+ if len(breast_detections) == 2:
107
+ bust_width_px = (breast_detections[0]['box'][2] + breast_detections[1]['box'][2]) / 2
108
+ bust_cm = round(bust_width_px * 1.7 / PIXELS_PER_CM_ESTIMATE, 1)
109
+ elif len(breast_detections) == 1:
110
+ bust_cm = round(breast_detections[0]['box'][2] * 1.5 / PIXELS_PER_CM_ESTIMATE, 1)
111
+
112
+ if vagina_detections:
113
+ vg_width_px = max([det['box'][2] for det in vagina_detections])
114
+ hip_cm = round(vg_width_px * 2.0 / PIXELS_PER_CM_ESTIMATE, 1)
115
+ elif person_height_px > 0:
116
+ hip_cm = round(person_width_cm * 0.9, 1)
117
+
118
+ if person_width_cm > 0:
119
+ waist_cm = round(person_width_cm * 0.8, 1)
120
+
121
+ return f"MaÑe (geschätzt, unsicher): Büste: {bust_cm} cm · Taille: {waist_cm} cm · Hüfte: {hip_cm} cm"
122
+
123
+ def describe_breast_precise(crop):
124
+ w, h = crop.size
125
+ crop_np = np.array(crop)
126
+ gray = cv2.cvtColor(crop_np, cv2.COLOR_RGB2GRAY)
127
+
128
+ area = w * h
129
+ if area < 35000: cup = "A"
130
+ elif area < 60000: cup = "B"
131
+ elif area < 95000: cup = "C"
132
+ elif area < 140000: cup = "D"
133
+ elif area < 200000: cup = "E/F"
134
+ else: cup = "H+ (massiv)"
135
+
136
+ hsv = cv2.cvtColor(crop_np, cv2.COLOR_RGB2HSV)
137
+ lower_nipple = np.array([0, 50, 20])
138
+ upper_nipple = np.array([20, 255, 140])
139
+ mask = cv2.inRange(hsv, lower_nipple, upper_nipple)
140
+ contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
141
+ areola_px = max([cv2.contourArea(c) for c in contours], default=0)
142
+ if areola_px < 800: nipple = "sehr klein (XS)"
143
+ elif areola_px < 2000: nipple = "klein"
144
+ elif areola_px < 4500: nipple = "mittel"
145
+ elif areola_px < 8000: nipple = "groÑ"
146
+ else: nipple = "sehr groÑ (XXL)"
147
+
148
+ edges = cv2.Canny(gray, 50, 100)
149
+ lower_third = edges[int(h*0.66):, :]
150
+ sag_ratio = np.sum(lower_third) / np.sum(edges) if np.sum(edges) > 0 else 0
151
+ if sag_ratio < 0.15: firmness = "extrem perky & straff"
152
+ elif sag_ratio < 0.28: firmness = "fest & jugendlich"
153
+ elif sag_ratio < 0.45: firmness = "natürlich weich"
154
+ else: firmness = "deutlich hängend"
155
+
156
+ size_cm_estimate = estimate_breast_size_cm(crop)
157
+
158
+ return f"Körbchen: {cup} · Areola/Nippel: {nipple} · Festigkeit: {firmness} · MaÑe: {size_cm_estimate}"
159
+
160
+ def describe_vagina_precise(crop):
161
+ w, h = crop.size
162
+ crop_np = np.array(crop)
163
+ gray = cv2.cvtColor(crop_np, cv2.COLOR_RGB2GRAY)
164
+
165
+ hair_mask = cv2.inRange(gray, 40, 140)
166
+ hair_ratio = np.sum(hair_mask > 0) / (w*h)
167
+ if hair_ratio < 0.03: shaved = "komplett glatt rasiert"
168
+ elif hair_ratio < 0.12: shaved = "minimal (Landing Strip / Dreieck)"
169
+ elif hair_ratio < 0.35: shaved = "teilrasiert / Brazilian"
170
+ else: shaved = "voll behaart (Bush)"
171
+
172
+ ratio_wh = w / h
173
+ labia_area = w * h
174
+
175
+ if ratio_wh > 1.4 and labia_area > 65000: form = "Puff Outie (dick & vorstehend)"
176
+ elif ratio_wh > 1.2: form = "Outie (Labien deutlich sichtbar)"
177
+ elif ratio_wh < 0.75: form = "lange Innie (fast geschlossen)"
178
+ elif labia_area < 25000: form = "sehr kleine Barbie (Mini-Innie)"
179
+ else: form = "klassische Innie / Barbie"
180
+
181
+ size = "winzig" if labia_area < 20000 else "klein" if labia_area < 40000 else "mittel" if labia_area < 70000 else "groÑ & voll"
182
+
183
+ size_cm_estimate = estimate_vagina_size_cm(crop)
184
+
185
+ return f"Form: {form} · GröÑe: {size} · Behaart: {shaved} · MaÑe: {size_cm_estimate}"
186
+
187
+ def estimate_age(crop_img):
188
+ try:
189
+ img_array = np.array(crop_img)
190
+ face = DeepFace.extract_faces(img_array, detector_backend='retinaface', enforce_detection=False)
191
+ if len(face) > 0:
192
+ age = DeepFace.analyze(img_array, actions=['age'], enforce_detection=False, silent=True)[0]['age']
193
+ return f"ca. {int(age)} Jahre (±3)"
194
+ else:
195
+ gray = cv2.cvtColor(img_array, cv2.COLOR_RGB2GRAY)
196
+ smoothness = cv2.Laplacian(gray, cv2.CV_64F).var()
197
+ if smoothness > 1800: return "jung (18–25)"
198
+ elif smoothness > 1000: return "jung-mittel (25–35)"
199
+ else: return "reif (35–45+)"
200
+ except Exception as e:
201
+ print(f"Error estimating age: {e}")
202
+ return "Alter nicht bestimmbar"
203
+
204
+ # Initialize NudeDetector
205
+ detector = NudeDetector()
206
+
207
+ def analyze_image_with_gradio(input_image_path):
208
+ print(f"[INFO] analyze_image_with_gradio called with path: {input_image_path}")
209
+ try:
210
+ if input_image_path is None:
211
+ print("[WARNING] No input image path provided.")
212
+ return create_error_image('Kein Bild ausgewählt.'), None
213
+
214
+ try:
215
+ original_img = Image.open(input_image_path).convert("RGB")
216
+ original_img_np = np.array(original_img)
217
+ print(f"[INFO] Image opened successfully: {input_image_path}")
218
+ except Exception as e:
219
+ print(f"[ERROR] Failed to open image {input_image_path}: {e}")
220
+ return create_error_image(f'Fehler beim Öffnen des Bildes: {e}'), None
221
+
222
+ current_filename = os.path.basename(input_image_path)
223
+
224
+ try:
225
+ nudenet_detections = detector.detect(input_image_path)
226
+ print(f"[INFO] NudeNet detected {len(nudenet_detections)} objects.")
227
+ except Exception as e:
228
+ print(f"[ERROR] Error during NudeNet detection for {input_image_path}: {e}")
229
+ return create_error_image(f'Fehler bei der NudeNet-Erkennung: {e}'), None
230
+
231
+ persons_data = []
232
+ face_detections = []
233
+ try:
234
+ face_results = DeepFace.extract_faces(original_img_np, detector_backend='retinaface', enforce_detection=False)
235
+ face_detections = [f for f in face_results if f['confidence'] > 0.9]
236
+ print(f"[INFO] DeepFace detected {len(face_detections)} faces.")
237
+ except Exception as e:
238
+ print(f"[WARNING] Error during DeepFace face detection: {e}. Proceeding without person association.")
239
+
240
+ if face_detections:
241
+ for face_det in face_detections:
242
+ x, y, w, h = face_det['facial_area']['x'], face_det['facial_area']['y'], face_det['facial_area']['w'], face_det['facial_area']['h']
243
+ expand_factor_y = 2.0
244
+ expand_factor_x = 1.2
245
+
246
+ person_center_x = x + w / 2
247
+ person_center_y = y + h / 2
248
+
249
+ new_h = int(h * expand_factor_y)
250
+ new_w = int(w * expand_factor_x)
251
+
252
+ person_x1 = max(0, int(person_center_x - new_w / 2))
253
+ person_y1 = max(0, int(person_center_y - new_h / 2))
254
+ person_x2 = min(original_img.width, int(person_center_x + new_w / 2))
255
+ person_y2 = min(original_img.height, int(person_center_y + new_h / 2))
256
+
257
+ person_bbox = (person_x1, person_y1, person_x2, person_y2)
258
+
259
+ associated_nudenet_dets = []
260
+ for nude_det in nudenet_detections:
261
+ nx1, ny1, nx2, ny2 = nude_det['box'][0], nude_det['box'][1], nude_det['box'][0] + nude_det['box'][2], nude_det['box'][1] + nude_det['box'][3]
262
+ nude_center_x = nx1 + (nx2 - nx1) / 2
263
+ nude_center_y = ny1 + (ny2 - ny1) / 2
264
+
265
+ if person_x1 <= nude_center_x <= person_x2 and person_y1 <= nude_center_y <= person_y2:
266
+ associated_nudenet_dets.append(nude_det)
267
+
268
+ if associated_nudenet_dets:
269
+ body_measurements_str = estimate_body_measurements(person_bbox, associated_nudenet_dets)
270
+ persons_data.append({
271
+ 'person_bbox': person_bbox,
272
+ 'nudenet_detections': associated_nudenet_dets,
273
+ 'face_area': face_det['facial_area'],
274
+ 'body_measurements': body_measurements_str
275
+ })
276
+ print(f"[INFO] {len(persons_data)} persons with associated NudeNet detections found.")
277
+
278
+ annotated_original_img = original_img.copy()
279
+ draw_annotated = ImageDraw.Draw(annotated_original_img)
280
+
281
+ current_image_crops_with_details = []
282
+ processed_nudenet_ids = set()
283
+
284
+ for i, person in enumerate(persons_data):
285
+ px1, py1, px2, py2 = person['person_bbox']
286
+ draw_annotated.rectangle([(px1, py1), (px2, py2)], outline=(0, 255, 0), width=BORDER_WIDTH)
287
+ label_person = f"Person {i+1}"
288
+ bbox_label_person = FONT_LABEL_SIMPLE.getbbox(label_person)
289
+ text_width_person = bbox_label_person[2] - bbox_label_person[0]
290
+ text_height_person = bbox_label_person[3] - bbox_label_person[1]
291
+ draw_annotated.rectangle([(px1, py1 - text_height_person - 2), (px1 + text_width_person, py1)], fill=(0, 255, 0))
292
+ draw_annotated.text((px1, py1 - text_height_person - 2), label_person, font=FONT_LABEL_SIMPLE, fill=BACKGROUND_COLOR)
293
+
294
+ if person['body_measurements'] and person['body_measurements'] != "KörpermaÑe nicht schätzbar (ungültiger Personen-BBox)":
295
+ current_image_crops_with_details.append((f"Person {i+1} KörpermaÑe", Image.new('RGB', (1,1), (0,0,0)), person['body_measurements']))
296
+
297
+ person_breasts_for_merging = []
298
+ for det in person['nudenet_detections']:
299
+ det_class = det['class']
300
+ x1, y1, x2, y2 = det['box'][0], det['box'][1], det['box'][0] + det['box'][2], det['box'][1] + det['box'][3]
301
+ x1, y1, x2, y2 = max(0, x1), max(0, y1), min(original_img.width, x2), min(original_img.height, y2)
302
+
303
+ draw_annotated.rectangle([(x1, y1), (x2, y2)], outline=BORDER_COLOR, width=BORDER_WIDTH)
304
+
305
+ crop = original_img.crop((x1, y1, x2, y2))
306
+ age_str = 'Alter unbekannt'
307
+ try:
308
+ face_x, face_y, face_w, face_h = person['face_area']['x'], person['face_area']['y'], person['face_area']['w'], person['face_area']['h']
309
+ face_crop_for_age = original_img.crop((face_x, face_y, face_x + face_w, face_y + face_h))
310
+ age_str = estimate_age(face_crop_for_age)
311
+ except Exception as e:
312
+ print(f"[ERROR] Error estimating age for person {i+1} crop: {e}")
313
+
314
+ if 'FEMALE_GENITALIA_EXPOSED' in det_class:
315
+ label_detailed = f"Person {i+1} Vagina"
316
+ desc = describe_vagina_precise(crop) + f" · Alter: {age_str}"
317
+ current_image_crops_with_details.append((label_detailed, resize_crop(crop, TARGET_MAX_DIMENSION), desc))
318
+ processed_nudenet_ids.add(id(det))
319
+ elif 'BREAST_EXPOSED' in det_class:
320
+ person_breasts_for_merging.append({'bbox': (x1,y1,x2,y2), 'det': det, 'age_str': age_str})
321
+
322
+ if len(person_breasts_for_merging) >= 1:
323
+ if len(person_breasts_for_merging) >= 2:
324
+ x1_combined = min(b['bbox'][0] for b in person_breasts_for_merging)
325
+ y1_combined = min(b['bbox'][1] for b in person_breasts_for_merging)
326
+ x2_combined = max(b['bbox'][2] for b in person_breasts_for_merging)
327
+ y2_combined = max(b['bbox'][3] for b in person_breasts_for_merging)
328
+
329
+ pad_x = int((x2_combined - x1_combined) * 0.2)
330
+ pad_y = int((y2_combined - y1_combined) * 0.25)
331
+ x1_final = max(0, x1_combined - pad_x)
332
+ y1_final = max(0, y1_combined - pad_y)
333
+ x2_final = min(original_img.width, x2_combined + pad_x)
334
+ y2_final = min(original_img.height, y2_combined + pad_y)
335
+
336
+ if x2_final <= x1_final or y2_final <= y1_final:
337
+ print(f"[WARNING] Skipping invalid crop box for Merged Breast detection (person {i+1}) in {current_filename}: ({x1_final}, {y1_final}, {x2_final}, {y2_final})")
338
+ for b_data in person_breasts_for_merging:
339
+ crop = original_img.crop(b_data['bbox'])
340
+ desc = describe_breast_precise(crop) + f" · Alter: {b_data['age_str']}"
341
+ current_image_crops_with_details.append((f"Person {i+1} Brust (einzeln)", resize_crop(crop, TARGET_MAX_DIMENSION), desc))
342
+ processed_nudenet_ids.add(id(b_data['det']))
343
+ else:
344
+ merged_breast_crop = original_img.crop((x1_final, y1_final, x2_final, y2_final))
345
+ desc = describe_breast_precise(merged_breast_crop) + f" · Alter: {person_breasts_for_merging[0]['age_str']}"
346
+ current_image_crops_with_details.append((f"Person {i+1} Brüste (beide)", resize_crop(merged_breast_crop, TARGET_MAX_DIMENSION), desc))
347
+ for b_data in person_breasts_for_merging:
348
+ processed_nudenet_ids.add(id(b_data['det']))
349
+ else:
350
+ b_data = person_breasts_for_merging[0]
351
+ crop = original_img.crop(b_data['bbox'])
352
+ desc = describe_breast_precise(crop) + f" · Alter: {b_data['age_str']}"
353
+ current_image_crops_with_details.append((f"Person {i+1} Brust (einzeln)", resize_crop(crop, TARGET_MAX_DIMENSION), desc))
354
+ processed_nudenet_ids.add(id(b_data['det']))
355
+
356
+ unassociated_nudenet_detections = [det for det in nudenet_detections if id(det) not in processed_nudenet_ids]
357
+
358
+ global_breasts_for_merging = []
359
+ for det in unassociated_nudenet_detections:
360
+ det_class = det['class']
361
+ x1, y1, x2, y2 = det['box'][0], det['box'][1], det['box'][0] + det['box'][2], det['box'][1] + det['box'][3]
362
+ x1, y1, x2, y2 = max(0, x1), max(0, y1), min(original_img.width, x2), min(original_img.height, y2)
363
+
364
+ draw_annotated.rectangle([(x1, y1), (x2, y2)], outline=(255, 255, 0), width=BORDER_WIDTH)
365
+ label_global_simple = f"Global {det_class.replace('_EXPOSED', '').replace('_', ' ').title()}"
366
+ bbox_label_global = FONT_LABEL_SIMPLE.getbbox(label_global_simple)
367
+ text_width_global = bbox_label_global[2] - bbox_label_global[0]
368
+ text_height_global = bbox_label_global[3] - bbox_label_global[1]
369
+ draw_annotated.rectangle([(x1, y1 - text_height_global - 2), (x1 + text_width_global, y1)], fill=(255, 255, 0))
370
+ draw_annotated.text((x1, y1 - text_height_global - 2), label_global_simple, font=FONT_LABEL_SIMPLE, fill=BACKGROUND_COLOR)
371
+
372
+ crop = original_img.crop((x1, y1, x2, y2))
373
+ age_str = 'Alter unbekannt'
374
+ try:
375
+ age_str = estimate_age(crop)
376
+ except Exception as e:
377
+ print(f"[ERROR] Error estimating age for global crop: {e}")
378
+
379
+ if 'FEMALE_GENITALIA_EXPOSED' in det_class:
380
+ label_detailed = "Global Vagina"
381
+ desc = describe_vagina_precise(crop) + f" · Alter: {age_str}"
382
+ current_image_crops_with_details.append((label_detailed, resize_crop(crop, TARGET_MAX_DIMENSION), desc))
383
+ elif 'BREAST_EXPOSED' in det_class:
384
+ global_breasts_for_merging.append({'bbox': (x1,y1,x2,y2), 'det': det, 'age_str': age_str})
385
+
386
+ if len(global_breasts_for_merging) >= 1:
387
+ if len(global_breasts_for_merging) >= 2:
388
+ x1_combined = min(b['bbox'][0] for b in global_breasts_for_merging)
389
+ y1_combined = min(b['bbox'][1] for b in global_breasts_for_merging)
390
+ y2_combined = max(b['bbox'][3] for b in global_breasts_for_merging)
391
+ x2_combined = max(b['bbox'][2] for b in global_breasts_for_merging)
392
+
393
+ pad_x = int((x2_combined - x1_combined) * 0.2)
394
+ pad_y = int((y2_combined - y1_combined) * 0.25)
395
+ x1_final = max(0, x1_combined - pad_x)
396
+ y1_final = max(0, y1_combined - pad_y)
397
+ x2_final = min(original_img.width, x2_combined + pad_x)
398
+ y2_final = min(original_img.height, y2_combined + pad_y)
399
+
400
+ if x2_final <= x1_final or y2_final <= y1_final:
401
+ print(f"[WARNING] Skipping invalid crop box for Merged Global Breast detection in {current_filename}: ({x1_final}, {y1_final}, {x2_final}, {y2_final})")
402
+ for b_data in global_breasts_for_merging:
403
+ crop = original_img.crop(b_data['bbox'])
404
+ desc = describe_breast_precise(crop) + f" · Alter: {b_data['age_str']}"
405
+ current_image_crops_with_details.append((f"Global Brust (einzeln)", resize_crop(crop, TARGET_MAX_DIMENSION), desc))
406
+ else:
407
+ merged_breast_crop = original_img.crop((x1_final, y1_final, x2_final, y2_final))
408
+ desc = describe_breast_precise(merged_breast_crop) + f" · Alter: {global_breasts_for_merging[0]['age_str']}"
409
+ current_image_crops_with_details.append((f"Global Brüste (beide)", resize_crop(merged_breast_crop, TARGET_MAX_DIMENSION), desc))
410
+ else:
411
+ b_data = global_breasts_for_merging[0]
412
+ crop = original_img.crop(b_data['bbox'])
413
+ desc = describe_breast_precise(crop) + f" · Alter: {b_data['age_str']}"
414
+ current_image_crops_with_details.append((f"Global Brust (einzeln)", resize_crop(crop, TARGET_MAX_DIMENSION), desc))
415
+
416
+ if not persons_data and not (len(global_breasts_for_merging) > 0 or any('FEMALE_GENITALIA_EXPOSED' in d['class'] for d in unassociated_nudenet_detections)):
417
+ text = "Keine Personen oder relevante Körperteile erkannt."
418
+ original_img_width, original_img_height = original_img.size
419
+ bbox_text = FONT_TITLE.getbbox(text)
420
+ text_width = bbox_text[2] - bbox_text[0]
421
+ text_height = bbox_text[3] - bbox_text[1]
422
+ draw_annotated.text(((original_img_width - text_width) / 2, original_img_height - text_height - PADDING), text, font=FONT_TITLE, fill=TEXT_COLOR)
423
+ print("[INFO] No persons or relevant NudeNet detections, adding message to original image.")
424
+
425
+ if not current_image_crops_with_details:
426
+ composite_crops_img = create_error_image("Keine detailreichen Bereiche für Crops gefunden.")
427
+ else:
428
+ max_crop_width = 0
429
+ total_height_crops = PADDING
430
+
431
+ for title, crop_img, desc in current_image_crops_with_details:
432
+ if crop_img.width == 1 and crop_img.height == 1:
433
+ bbox_title = FONT_TITLE.getbbox(title)
434
+ bbox_desc = FONT_DESC.getbbox(desc)
435
+ text_title_height = bbox_title[3] - bbox_title[1]
436
+ text_desc_height = bbox_desc[3] - bbox_desc[1]
437
+ total_height_crops += text_title_height + text_desc_height + PADDING * 2 + ITEM_SPACING
438
+ max_crop_width = max(max_crop_width, (bbox_title[2] - bbox_title[0]), (bbox_desc[2] - bbox_desc[0]))
439
+ else:
440
+ max_crop_width = max(max_crop_width, crop_img.width)
441
+ bbox_title = FONT_TITLE.getbbox(title)
442
+ bbox_desc = FONT_DESC.getbbox(desc)
443
+ text_title_height = bbox_title[3] - bbox_title[1]
444
+ text_desc_height = bbox_desc[3] - bbox_desc[1]
445
+ total_height_crops += crop_img.height + text_title_height + text_desc_height + PADDING * 2 + ITEM_SPACING
446
+ total_height_crops += PADDING
447
+
448
+ canvas_width_crops = max_crop_width + PADDING * 2
449
+ for title, crop_img, desc in current_image_crops_with_details:
450
+ bbox_title = FONT_TITLE.getbbox(title)
451
+ bbox_desc = FONT_DESC.getbbox(desc)
452
+ text_title_width = bbox_title[2] - bbox_title[0]
453
+ text_desc_width = bbox_desc[2] - bbox_desc[0]
454
+ canvas_width_crops = max(canvas_width_crops, text_title_width + PADDING * 2, text_desc_width + PADDING * 2)
455
+
456
+ composite_crops_img = Image.new('RGB', (canvas_width_crops, total_height_crops), color = BACKGROUND_COLOR)
457
+ draw_crops = ImageDraw.Draw(composite_crops_img)
458
+
459
+ current_y_offset_crops = PADDING
460
+
461
+ for title, crop_img, desc in current_image_crops_with_details:
462
+ if crop_img.width == 1 and crop_img.height == 1:
463
+ bbox_title = FONT_TITLE.getbbox(title)
464
+ text_title_width = bbox_title[2] - bbox_title[0]
465
+ text_title_height = bbox_title[3] - bbox_title[1]
466
+ draw_crops.text(((canvas_width_crops - text_title_width) / 2, current_y_offset_crops), title, font=FONT_TITLE, fill=TEXT_COLOR)
467
+ current_y_offset_crops += text_title_height + PADDING // 2
468
+
469
+ bbox_desc = FONT_DESC.getbbox(desc)
470
+ text_desc_width = bbox_desc[2] - bbox_desc[0]
471
+ text_desc_height = bbox_desc[3] - bbox_desc[1]
472
+ draw_crops.text(((canvas_width_crops - text_desc_width) / 2, current_y_offset_crops), desc, font=FONT_DESC, fill=TEXT_COLOR)
473
+ current_y_offset_crops += text_desc_height + ITEM_SPACING
474
+
475
+ else:
476
+ x_offset_crop = (canvas_width_crops - crop_img.width) // 2
477
+
478
+ draw_crops.rectangle(
479
+ (x_offset_crop - BORDER_WIDTH,
480
+ current_y_offset_crops - BORDER_WIDTH,
481
+ x_offset_crop + crop_img.width + BORDER_WIDTH,
482
+ current_y_offset_crops + crop_img.height + BORDER_WIDTH),
483
+ fill=BORDER_COLOR
484
+ )
485
+
486
+ composite_crops_img.paste(crop_img, (x_offset_crop, current_y_offset_crops))
487
+
488
+ current_y_offset_crops += crop_img.height + PADDING
489
+
490
+ bbox_title = FONT_TITLE.getbbox(title)
491
+ text_title_width = bbox_title[2] - bbox_title[0]
492
+ text_title_height = bbox_title[3] - bbox_title[1]
493
+ draw_crops.text(((canvas_width_crops - text_title_width) / 2, current_y_offset_crops), title, font=FONT_TITLE, fill=TEXT_COLOR)
494
+ current_y_offset_crops += text_title_height + PADDING // 2
495
+
496
+ bbox_desc = FONT_DESC.getbbox(desc)
497
+ text_desc_width = bbox_desc[2] - bbox_desc[0]
498
+ text_desc_height = bbox_desc[3] - bbox_desc[1]
499
+ draw_crops.text(((canvas_width_crops - text_desc_width) / 2, current_y_offset_crops), desc, font=FONT_DESC, fill=TEXT_COLOR)
500
+ current_y_offset_crops += text_desc_height + ITEM_SPACING
501
+
502
+ separator_text_original = "Originalbild mit Markierungen"
503
+ separator_text_crops = "Detaillierte Bereichsanalysen"
504
+
505
+ bbox_separator_original = FONT_TITLE.getbbox(separator_text_original)
506
+ bbox_separator_crops = FONT_TITLE.getbbox(separator_text_crops)
507
+
508
+ separator_height_total = (bbox_separator_original[3] - bbox_separator_original[1]) + (bbox_separator_crops[3] - bbox_separator_crops[1]) + PADDING * 4
509
+
510
+ combined_width = max(annotated_original_img.width, composite_crops_img.width,
511
+ (bbox_separator_original[2] - bbox_separator_original[0]) + PADDING * 2,
512
+ (bbox_separator_crops[2] - bbox_separator_crops[0]) + PADDING * 2)
513
+
514
+ combined_width = max(combined_width, ERROR_IMAGE_WIDTH)
515
+
516
+ combined_height = annotated_original_img.height + separator_height_total + composite_crops_img.height + PADDING * 2
517
+ combined_img = Image.new('RGB', (combined_width, combined_height), color=BACKGROUND_COLOR)
518
+ combined_draw = ImageDraw.Draw(combined_img)
519
+
520
+ current_y_combined = PADDING
521
+
522
+ text_width_orig_sep = bbox_separator_original[2] - bbox_separator_original[0]
523
+ text_height_orig_sep = bbox_separator_original[3] - bbox_separator_original[1]
524
+ combined_draw.text(((combined_width - text_width_orig_sep) / 2, current_y_combined), separator_text_original, font=FONT_TITLE, fill=TEXT_COLOR)
525
+ current_y_combined += text_height_orig_sep + PADDING
526
+
527
+ x_offset_original = (combined_width - annotated_original_img.width) // 2
528
+ combined_img.paste(annotated_original_img, (x_offset_original, current_y_combined))
529
+ current_y_combined += annotated_original_img.height + PADDING
530
+
531
+ text_width_crops_sep = bbox_separator_crops[2] - bbox_separator_crops[0]
532
+ text_height_crops_sep = bbox_separator_crops[3] - bbox_separator_crops[1]
533
+ combined_draw.text(((combined_width - text_width_crops_sep) / 2, current_y_combined), separator_text_crops, font=FONT_TITLE, fill=TEXT_COLOR)
534
+ current_y_combined += text_height_crops_sep + PADDING
535
+
536
+ x_offset_crops = (combined_width - composite_crops_img.width) // 2
537
+ combined_img.paste(composite_crops_img, (x_offset_crops, current_y_combined))
538
+
539
+ print("[INFO] Combined image generated successfully.")
540
+
541
+ # Save the combined image as a PDF to a temporary file
542
+ with tempfile.NamedTemporaryFile(suffix=".pdf", delete=False) as tmp_pdf:
543
+ combined_img.save(tmp_pdf.name, "PDF")
544
+ pdf_path = tmp_pdf.name
545
+
546
+ return combined_img, pdf_path
547
+
548
+ except Exception as e:
549
+ print(f"[CRITICAL ERROR] An unexpected error occurred during image analysis: {e}")
550
+ return create_error_image(f'Unerwarteter Fehler bei der Bildanalyse: {e}'), None
551
+
552
+ interface = gr.Interface(
553
+ fn=analyze_image_with_gradio,
554
+ inputs=gr.Image(type="filepath", label="Bild hochladen"),
555
+ outputs=[
556
+ gr.Image(type="pil", label="Analysiertes Kompositbild"),
557
+ gr.File(label="PDF herunterladen")
558
+ ],
559
+ title="🔞 Final Analyzer",
560
+ description="Laden Sie ein Bild hoch, um eine detaillierte Analyse von Brüsten und Vagina (falls erkannt) inklusive Alters-Schätzung zu erhalten. Das Ergebnis ist ein Kompositbild mit Originalbild und detaillierten Crops, pro Person gruppiert. Sie können auch eine PDF-Version herunterladen."
561
+ )
562
+
563
+ if __name__ == "__main__":
564
+ interface.launch(debug=False, share=True)
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ gradio
2
+ deepface
3
+ nudenet
4
+ opencv-python
5
+ Pillow
6
+ numpy
7
+ scikit-image
sample_data/README.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This directory includes a few sample datasets to get you started.
2
+
3
+ * `california_housing_data*.csv` is California housing data from the 1990 US
4
+ Census; more information is available at:
5
+ https://docs.google.com/document/d/e/2PACX-1vRhYtsvc5eOR2FWNCwaBiKL6suIOrxJig8LcSBbmCbyYsayia_DvPOOBlXZ4CAlQ5nlDD8kTaIDRwrN/pub
6
+
7
+ * `mnist_*.csv` is a small sample of the
8
+ [MNIST database](https://en.wikipedia.org/wiki/MNIST_database), which is
9
+ described at: http://yann.lecun.com/exdb/mnist/
10
+
11
+ * `anscombe.json` contains a copy of
12
+ [Anscombe's quartet](https://en.wikipedia.org/wiki/Anscombe%27s_quartet); it
13
+ was originally described in
14
+
15
+ Anscombe, F. J. (1973). 'Graphs in Statistical Analysis'. American
16
+ Statistician. 27 (1): 17-21. JSTOR 2682899.
17
+
18
+ and our copy was prepared by the
19
+ [vega_datasets library](https://github.com/altair-viz/vega_datasets/blob/4f67bdaad10f45e3549984e17e1b3088c731503d/vega_datasets/_data/anscombe.json).
sample_data/anscombe.json ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {"Series":"I", "X":10.0, "Y":8.04},
3
+ {"Series":"I", "X":8.0, "Y":6.95},
4
+ {"Series":"I", "X":13.0, "Y":7.58},
5
+ {"Series":"I", "X":9.0, "Y":8.81},
6
+ {"Series":"I", "X":11.0, "Y":8.33},
7
+ {"Series":"I", "X":14.0, "Y":9.96},
8
+ {"Series":"I", "X":6.0, "Y":7.24},
9
+ {"Series":"I", "X":4.0, "Y":4.26},
10
+ {"Series":"I", "X":12.0, "Y":10.84},
11
+ {"Series":"I", "X":7.0, "Y":4.81},
12
+ {"Series":"I", "X":5.0, "Y":5.68},
13
+
14
+ {"Series":"II", "X":10.0, "Y":9.14},
15
+ {"Series":"II", "X":8.0, "Y":8.14},
16
+ {"Series":"II", "X":13.0, "Y":8.74},
17
+ {"Series":"II", "X":9.0, "Y":8.77},
18
+ {"Series":"II", "X":11.0, "Y":9.26},
19
+ {"Series":"II", "X":14.0, "Y":8.10},
20
+ {"Series":"II", "X":6.0, "Y":6.13},
21
+ {"Series":"II", "X":4.0, "Y":3.10},
22
+ {"Series":"II", "X":12.0, "Y":9.13},
23
+ {"Series":"II", "X":7.0, "Y":7.26},
24
+ {"Series":"II", "X":5.0, "Y":4.74},
25
+
26
+ {"Series":"III", "X":10.0, "Y":7.46},
27
+ {"Series":"III", "X":8.0, "Y":6.77},
28
+ {"Series":"III", "X":13.0, "Y":12.74},
29
+ {"Series":"III", "X":9.0, "Y":7.11},
30
+ {"Series":"III", "X":11.0, "Y":7.81},
31
+ {"Series":"III", "X":14.0, "Y":8.84},
32
+ {"Series":"III", "X":6.0, "Y":6.08},
33
+ {"Series":"III", "X":4.0, "Y":5.39},
34
+ {"Series":"III", "X":12.0, "Y":8.15},
35
+ {"Series":"III", "X":7.0, "Y":6.42},
36
+ {"Series":"III", "X":5.0, "Y":5.73},
37
+
38
+ {"Series":"IV", "X":8.0, "Y":6.58},
39
+ {"Series":"IV", "X":8.0, "Y":5.76},
40
+ {"Series":"IV", "X":8.0, "Y":7.71},
41
+ {"Series":"IV", "X":8.0, "Y":8.84},
42
+ {"Series":"IV", "X":8.0, "Y":8.47},
43
+ {"Series":"IV", "X":8.0, "Y":7.04},
44
+ {"Series":"IV", "X":8.0, "Y":5.25},
45
+ {"Series":"IV", "X":19.0, "Y":12.50},
46
+ {"Series":"IV", "X":8.0, "Y":5.56},
47
+ {"Series":"IV", "X":8.0, "Y":7.91},
48
+ {"Series":"IV", "X":8.0, "Y":6.89}
49
+ ]
sample_data/california_housing_test.csv ADDED
The diff for this file is too large to render. See raw diff
 
sample_data/california_housing_train.csv ADDED
The diff for this file is too large to render. See raw diff
 
sample_data/mnist_test.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:51c292478d94ec3a01461bdfa82eb0885d262eb09e615679b2d69dedb6ad09e7
3
+ size 18289443
sample_data/mnist_train_small.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1ef64781aa03180f4f5ce504314f058f5d0227277df86060473d973cf43b033e
3
+ size 36523880