fastapi-voyager 0.4.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,224 @@
1
+ <html>
2
+ <head>
3
+ <title>FastAPI Router Viz</title>
4
+ <link rel="stylesheet" href="/static/graphviz.svg.css" />
5
+ <link rel="stylesheet" href="/static/quasar.min.css" />
6
+ <link
7
+ href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons"
8
+ rel="stylesheet"
9
+ type="text/css"
10
+ />
11
+ </head>
12
+
13
+ <style>
14
+ html,
15
+ body {
16
+ height: 100%;
17
+ margin: 0;
18
+ }
19
+ body {
20
+ display: flex;
21
+ flex-direction: column;
22
+ }
23
+ /* Quasar select menu max-height for scroll */
24
+ .select-popup {
25
+ max-height: 400px;
26
+ overflow-y: auto;
27
+ overflow-x: hidden;
28
+ }
29
+ #graph {
30
+ flex: 1 1 auto;
31
+ overflow: auto;
32
+ }
33
+ </style>
34
+ <body>
35
+ <div id="q-app" class="column" style="height: 100%">
36
+ <div v-if="state.initializing" style="position:fixed; inset:0; display:flex; align-items:center; justify-content:center; z-index:2000; background:rgba(255,255,255,0.85); font-size:18px; font-family:Roboto, sans-serif; color:#444;">
37
+ <div style="text-align:center;">
38
+ <div class="q-mb-sm">Initializing...</div>
39
+ <q-spinner color="primary" size="32px" />
40
+ </div>
41
+ </div>
42
+ <div
43
+ style="
44
+ padding-top: 8px;
45
+ padding-left: 8px;
46
+ padding-bottom: 8px;
47
+ position: absolute;
48
+ width: 100%;
49
+ top: 0;
50
+ background-color: #fff;
51
+ z-index: 1;
52
+ border-bottom: 1px solid #ccc;
53
+ color: #211d1d;
54
+ "
55
+ >
56
+ <div class="row items-center q-col-gutter-md">
57
+ <div class="col-auto">
58
+ <q-select
59
+ v-model="state.tag"
60
+ :options="state.tagOptions"
61
+ use-input
62
+ input-debounce="0"
63
+ behavior="menu"
64
+ dense
65
+ outlined
66
+ style="min-width: 320px"
67
+ popup-content-class="select-popup"
68
+ clearable
69
+ label="Tags"
70
+ @filter="onFilterTags"
71
+ />
72
+ </div>
73
+
74
+ <div class="col-auto">
75
+ <q-select
76
+ v-model="state.routeId"
77
+ :options="state.routeOptions"
78
+ option-label="label"
79
+ option-value="value"
80
+ emit-value
81
+ map-options
82
+ dense
83
+ outlined
84
+ style="min-width: 320px"
85
+ popup-content-class="select-popup"
86
+ clearable
87
+ placeholder="All routes"
88
+ label="Routes"
89
+ />
90
+ </div>
91
+
92
+ <div class="col-auto">
93
+ <div class="column">
94
+ <q-option-group
95
+ v-model="state.showFields"
96
+ :options="state.fieldOptions"
97
+ color="primary"
98
+ type="radio"
99
+ inline
100
+ dense
101
+ />
102
+ </div>
103
+ </div>
104
+
105
+ <div class="col-auto">
106
+ <q-btn
107
+ class="q-ml-md"
108
+ :loading="state.generating"
109
+ @click="onGenerate"
110
+ label="Generate"
111
+ outline
112
+ />
113
+ </div>
114
+ <div class="col-auto">
115
+ <q-btn flat @click="onReset" label="Reset" />
116
+ </div>
117
+ <div class="col-auto q-ml-auto">
118
+ <q-btn
119
+ outline
120
+ icon="search"
121
+ label="Search"
122
+ @click="showDialog()"
123
+ />
124
+ </div>
125
+ <div class="col-auto">
126
+ <q-btn
127
+ dense
128
+ round
129
+ flat
130
+ icon="help_outline"
131
+ aria-label="Help"
132
+ class="q-mr-md"
133
+ >
134
+ <q-tooltip
135
+ anchor="bottom middle"
136
+ self="top middle"
137
+ :offset="[0,8]"
138
+ >
139
+ <div
140
+ class="column items-start text-left"
141
+ style="line-height: 1.4; font-size: 12px"
142
+ >
143
+ <ul>
144
+ <li>scroll to zoom in/out</li>
145
+ <li>
146
+ click node to check highlight related nodes on the chart,
147
+ esc to unselect
148
+ </li>
149
+ <li>
150
+ shift + click to see schema's dependencies without
151
+ unrelated nodes
152
+ </li>
153
+ <li>alt + click to see schema details</li>
154
+ </ul>
155
+ </div>
156
+ </q-tooltip>
157
+ </q-btn>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ <!-- Detail Dialog -->
162
+ <q-dialog v-model="showDetail" :persistent="true" :maximized="true">
163
+ <detail-dialog
164
+ :schema-name="schemaName"
165
+ :show-fields="state.showFields"
166
+ :model-value="showDetail"
167
+ @close="closeDetail"
168
+ />
169
+ </q-dialog>
170
+
171
+ <!-- Schema Field Filter Dialog -->
172
+ <q-dialog
173
+ v-model="showSchemaFieldFilter"
174
+ :persistent="true"
175
+ :maximized="true"
176
+ >
177
+ <schema-field-filter
178
+ :schemas="state.rawSchemasFull"
179
+ :schema-name="schemaFieldFilterSchema" @close="showSchemaFieldFilter = false" />
180
+ </q-dialog>
181
+
182
+ <!-- Schema Source Code Dialog (Ctrl + Click) -->
183
+ <q-dialog v-model="showSchemaCode" :maximized="true" :persistent="false" position="left" :seamless="false">
184
+ <schema-code-display
185
+ :schema-name="schemaCodeName"
186
+ :model-value="showSchemaCode"
187
+ :schemas="state.rawSchemasFull"
188
+ @close="showSchemaCode = false" />
189
+ </q-dialog>
190
+
191
+ <!-- Route Source Code Dialog (Alt + Click on route) -->
192
+ <q-dialog v-model="showRouteCode" :maximized="true" :persistent="false" position="right" :seamless="false">
193
+ <route-code-display
194
+ :route-id="routeCodeId"
195
+ :model-value="showRouteCode"
196
+ :routes="state.routeItems"
197
+ @close="showRouteCode = false" />
198
+ </q-dialog>
199
+
200
+ <div id="graph" style="width: 100%; flex: 1 1 auto; overflow: auto"></div>
201
+ </div>
202
+
203
+ <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.3.min.js" ></script>
204
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js" integrity="sha512-vc58qvvBdrDR4etbxMdlTt4GBQk1qjvyORR2nrsPsFPyrs+/u5c3+1Ct6upOgdZoIl7eq6k3a1UPDSNAQi/32A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
205
+ <script src="https://unpkg.com/@hpcc-js/wasm@2.20.0/dist/graphviz.umd.js"></script>
206
+ <script src="https://unpkg.com/d3-graphviz@5.6.0/build/d3-graphviz.js"></script>
207
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>
208
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-color/2.1.2/jquery.color.min.js"></script>
209
+
210
+ <!-- Add the following at the end of your body tag -->
211
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.5.22/vue.global.prod.min.js" integrity="sha512-Y9sKU0AwzWRxKSLd2i35LuDpUdHY/E9tJrKG0mxw0qYQ75VVgGYazIUQPwKhFK9vGO3jIgAtxLiSq8GQ7PDfUg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
212
+ <script src="/static/quasar.min.js"></script>
213
+ <script src="/static/graphviz.svg.js"></script>
214
+ <!-- highlight.js minimal ES module load (python only) -->
215
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css" />
216
+ <script type="module">
217
+ import hljs from 'https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/es/highlight.min.js';
218
+ import python from 'https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/es/languages/python.min.js';
219
+ hljs.registerLanguage('python', python);
220
+ window.hljs = hljs;
221
+ </script>
222
+ <script type="module" src="/static/vue-main.js"></script>
223
+ </body>
224
+ </html>