1+
2+ <!doctype html>
3+ < html lang ="en " class ="no-js ">
4+ < head >
5+
6+ < meta charset ="utf-8 ">
7+ < meta name ="viewport " content ="width=device-width,initial-scale=1 ">
8+
9+
10+
11+
12+
13+
14+ < link rel ="icon " href ="/docker-python-web/assets/images/favicon.png ">
15+ < meta name ="generator " content ="mkdocs-1.5.3, mkdocs-material-9.5.17 ">
16+
17+
18+
19+ < title > cal-itp/docker-python-web: Documentation</ title >
20+
21+
22+
23+ < link rel ="stylesheet " href ="/docker-python-web/assets/stylesheets/main.bcfcd587.min.css ">
24+
25+
26+ < link rel ="stylesheet " href ="/docker-python-web/assets/stylesheets/palette.06af60db.min.css ">
27+
28+
29+
30+
31+
32+
33+
34+
35+
36+
37+
38+
39+ < link rel ="preconnect " href ="https://fonts.gstatic.com " crossorigin >
40+ < link rel ="stylesheet " href ="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback ">
41+ < style > : root {--md-text-font : "Roboto" ;--md-code-font : "Roboto Mono" }</ style >
42+
43+
44+
45+ < link rel ="stylesheet " href ="https://use.fontawesome.com/releases/v6.1.2/css/all.css ">
46+
47+ < script > __md_scope = new URL ( "/docker-python-web/" , location ) , __md_hash = e => [ ...e ] . reduce ( ( e , _ ) => ( e << 5 ) - e + _ . charCodeAt ( 0 ) , 0 ) , __md_get = ( e , _ = localStorage , t = __md_scope ) => JSON . parse ( _ . getItem ( t . pathname + "." + e ) ) , __md_set = ( e , _ , t = localStorage , a = __md_scope ) => { try { t . setItem ( a . pathname + "." + e , JSON . stringify ( _ ) ) } catch ( e ) { } } </ script >
48+
49+
50+
51+
52+
53+
54+
55+
56+ < script id ="__analytics "> function __md_analytics ( ) { function n ( ) { dataLayer . push ( arguments ) } window . dataLayer = window . dataLayer || [ ] , n ( "js" , new Date ) , n ( "config" , "G-SZB618VNBZ" ) , document . addEventListener ( "DOMContentLoaded" , function ( ) { document . forms . search && document . forms . search . query . addEventListener ( "blur" , function ( ) { this . value && n ( "event" , "search" , { search_term :this . value } ) } ) , document$ . subscribe ( function ( ) { var a = document . forms . feedback ; if ( void 0 !== a ) for ( var e of a . querySelectorAll ( "[type=submit]" ) ) e . addEventListener ( "click" , function ( e ) { e . preventDefault ( ) ; var t = document . location . pathname , e = this . getAttribute ( "data-md-value" ) ; n ( "event" , "feedback" , { page :t , data :e } ) , a . firstElementChild . disabled = ! 0 ; e = a . querySelector ( ".md-feedback__note [data-md-value='" + e + "']" ) ; e && ( e . hidden = ! 1 ) } ) , a . hidden = ! 1 } ) , location$ . subscribe ( function ( e ) { n ( "config" , "G-SZB618VNBZ" , { page_path :e . pathname } ) } ) } ) ; var e = document . createElement ( "script" ) ; e . async = ! 0 , e . src = "https://www.googletagmanager.com/gtag/js?id=G-SZB618VNBZ" , document . getElementById ( "__analytics" ) . insertAdjacentElement ( "afterEnd" , e ) } </ script >
57+
58+ < script > "undefined" != typeof __md_analytics && __md_analytics ( ) </ script >
59+
60+
61+
62+
63+
64+ </ head >
65+
66+
67+
68+
69+
70+
71+
72+
73+
74+ < body dir ="ltr " data-md-color-scheme ="default " data-md-color-primary ="blue " data-md-color-accent ="green ">
75+
76+
77+ < input class ="md-toggle " data-md-toggle ="drawer " type ="checkbox " id ="__drawer " autocomplete ="off ">
78+ < input class ="md-toggle " data-md-toggle ="search " type ="checkbox " id ="__search " autocomplete ="off ">
79+ < label class ="md-overlay " for ="__drawer "> </ label >
80+ < div data-md-component ="skip ">
81+
82+ </ div >
83+ < div data-md-component ="announce ">
84+
85+ </ div >
86+
87+
88+
89+
90+ < header class ="md-header " data-md-component ="header ">
91+ < nav class ="md-header__inner md-grid " aria-label ="Header ">
92+ < a href ="/docker-python-web/. " title ="cal-itp/docker-python-web: Documentation " class ="md-header__button md-logo " aria-label ="cal-itp/docker-python-web: Documentation " data-md-component ="logo ">
93+
94+
95+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 24 24 "> < path d ="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z "/> </ svg >
96+
97+ </ a >
98+ < label class ="md-header__button md-icon " for ="__drawer ">
99+
100+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 24 24 "> < path d ="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z "/> </ svg >
101+ </ label >
102+ < div class ="md-header__title " data-md-component ="header-title ">
103+ < div class ="md-header__ellipsis ">
104+ < div class ="md-header__topic ">
105+ < span class ="md-ellipsis ">
106+ cal-itp/docker-python-web: Documentation
107+ </ span >
108+ </ div >
109+ < div class ="md-header__topic " data-md-component ="header-topic ">
110+ < span class ="md-ellipsis ">
111+
112+
113+
114+ </ span >
115+ </ div >
116+ </ div >
117+ </ div >
118+
119+
120+ < form class ="md-header__option " data-md-component ="palette ">
121+
122+
123+
124+
125+ < input class ="md-option " data-md-color-media ="(prefers-color-scheme: light) " data-md-color-scheme ="default " data-md-color-primary ="blue " data-md-color-accent ="green " aria-label ="Switch to dark mode " type ="radio " name ="__palette " id ="__palette_0 ">
126+
127+ < label class ="md-header__button md-icon " title ="Switch to dark mode " for ="__palette_1 " hidden >
128+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 24 24 "> < path d ="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z "/> </ svg >
129+ </ label >
130+
131+
132+
133+
134+
135+ < input class ="md-option " data-md-color-media ="(prefers-color-scheme: dark) " data-md-color-scheme ="slate " data-md-color-primary ="blue " data-md-color-accent ="green " aria-label ="Switch to light mode " type ="radio " name ="__palette " id ="__palette_1 ">
136+
137+ < label class ="md-header__button md-icon " title ="Switch to light mode " for ="__palette_0 " hidden >
138+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 24 24 "> < path d ="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3Z "/> </ svg >
139+ </ label >
140+
141+
142+ </ form >
143+
144+
145+
146+ < script > var media , input , key , value , palette = __md_get ( "__palette" ) ; if ( palette && palette . color ) { "(prefers-color-scheme)" === palette . color . media && ( media = matchMedia ( "(prefers-color-scheme: light)" ) , input = document . querySelector ( media . matches ?"[data-md-color-media='(prefers-color-scheme: light)']" :"[data-md-color-media='(prefers-color-scheme: dark)']" ) , palette . color . media = input . getAttribute ( "data-md-color-media" ) , palette . color . scheme = input . getAttribute ( "data-md-color-scheme" ) , palette . color . primary = input . getAttribute ( "data-md-color-primary" ) , palette . color . accent = input . getAttribute ( "data-md-color-accent" ) ) ; for ( [ key , value ] of Object . entries ( palette . color ) ) document . body . setAttribute ( "data-md-color-" + key , value ) } </ script >
147+
148+
149+
150+ < label class ="md-header__button md-icon " for ="__search ">
151+
152+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 24 24 "> < path d ="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z "/> </ svg >
153+ </ label >
154+ < div class ="md-search " data-md-component ="search " role ="dialog ">
155+ < label class ="md-search__overlay " for ="__search "> </ label >
156+ < div class ="md-search__inner " role ="search ">
157+ < form class ="md-search__form " name ="search ">
158+ < input type ="text " class ="md-search__input " name ="query " aria-label ="Search " placeholder ="Search " autocapitalize ="off " autocorrect ="off " autocomplete ="off " spellcheck ="false " data-md-component ="search-query " required >
159+ < label class ="md-search__icon md-icon " for ="__search ">
160+
161+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 24 24 "> < path d ="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z "/> </ svg >
162+
163+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 24 24 "> < path d ="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z "/> </ svg >
164+ </ label >
165+ < nav class ="md-search__options " aria-label ="Search ">
166+
167+ < button type ="reset " class ="md-search__icon md-icon " title ="Clear " aria-label ="Clear " tabindex ="-1 ">
168+
169+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 24 24 "> < path d ="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z "/> </ svg >
170+ </ button >
171+ </ nav >
172+
173+ </ form >
174+ < div class ="md-search__output ">
175+ < div class ="md-search__scrollwrap " data-md-scrollfix >
176+ < div class ="md-search-result " data-md-component ="search-result ">
177+ < div class ="md-search-result__meta ">
178+ Initializing search
179+ </ div >
180+ < ol class ="md-search-result__list " role ="presentation "> </ ol >
181+ </ div >
182+ </ div >
183+ </ div >
184+ </ div >
185+ </ div >
186+
187+
188+ < div class ="md-header__source ">
189+ < a href ="https://github.com/cal-itp/docker-python-web " title ="Go to repository " class ="md-source " data-md-component ="source ">
190+ < div class ="md-source__icon md-icon ">
191+
192+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 448 512 "> <!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--> < path d ="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z "/> </ svg >
193+ </ div >
194+ < div class ="md-source__repository ">
195+ GitHub
196+ </ div >
197+ </ a >
198+ </ div >
199+
200+ </ nav >
201+
202+ </ header >
203+
204+ < div class ="md-container " data-md-component ="container ">
205+
206+
207+
208+
209+
210+ < nav class ="md-tabs " aria-label ="Tabs " data-md-component ="tabs ">
211+ < div class ="md-grid ">
212+ < ul class ="md-tabs__list ">
213+
214+
215+
216+
217+
218+ < li class ="md-tabs__item ">
219+ < a href ="/docker-python-web/. " class ="md-tabs__link ">
220+
221+
222+
223+
224+ docker-python-web Docs
225+
226+ </ a >
227+ </ li >
228+
229+
230+
231+ </ ul >
232+ </ div >
233+ </ nav >
234+
235+
236+
237+ < main class ="md-main " data-md-component ="main ">
238+ < div class ="md-main__inner md-grid ">
239+
240+
241+
242+ < div class ="md-sidebar md-sidebar--primary " data-md-component ="sidebar " data-md-type ="navigation " >
243+ < div class ="md-sidebar__scrollwrap ">
244+ < div class ="md-sidebar__inner ">
245+
246+
247+
248+
249+
250+
251+ < nav class ="md-nav md-nav--primary md-nav--lifted " aria-label ="Navigation " data-md-level ="0 ">
252+ < label class ="md-nav__title " for ="__drawer ">
253+ < a href ="/docker-python-web/. " title ="cal-itp/docker-python-web: Documentation " class ="md-nav__button md-logo " aria-label ="cal-itp/docker-python-web: Documentation " data-md-component ="logo ">
254+
255+
256+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 24 24 "> < path d ="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z "/> </ svg >
257+
258+ </ a >
259+ cal-itp/docker-python-web: Documentation
260+ </ label >
261+
262+ < div class ="md-nav__source ">
263+ < a href ="https://github.com/cal-itp/docker-python-web " title ="Go to repository " class ="md-source " data-md-component ="source ">
264+ < div class ="md-source__icon md-icon ">
265+
266+ < svg xmlns ="http://www.w3.org/2000/svg " viewBox ="0 0 448 512 "> <!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--> < path d ="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z "/> </ svg >
267+ </ div >
268+ < div class ="md-source__repository ">
269+ GitHub
270+ </ div >
271+ </ a >
272+ </ div >
273+
274+ < ul class ="md-nav__list " data-md-scrollfix >
275+
276+
277+
278+
279+
280+
281+
282+ < li class ="md-nav__item ">
283+ < a href ="/docker-python-web/. " class ="md-nav__link ">
284+
285+
286+ < span class ="md-ellipsis ">
287+ docker-python-web Docs
288+ </ span >
289+
290+
291+ </ a >
292+ </ li >
293+
294+
295+
296+ </ ul >
297+ </ nav >
298+ </ div >
299+ </ div >
300+ </ div >
301+
302+
303+
304+ < div class ="md-sidebar md-sidebar--secondary " data-md-component ="sidebar " data-md-type ="toc " >
305+ < div class ="md-sidebar__scrollwrap ">
306+ < div class ="md-sidebar__inner ">
307+
308+
309+ < nav class ="md-nav md-nav--secondary " aria-label ="Table of contents ">
310+
311+
312+
313+
314+ </ nav >
315+ </ div >
316+ </ div >
317+ </ div >
318+
319+
320+
321+ < div class ="md-content " data-md-component ="content ">
322+ < article class ="md-content__inner md-typeset ">
323+
324+ < h1 > 404 - Not found</ h1 >
325+
326+ </ article >
327+ </ div >
328+
329+
330+ < script > var target = document . getElementById ( location . hash . slice ( 1 ) ) ; target && target . name && ( target . checked = target . name . startsWith ( "__tabbed_" ) ) </ script >
331+ </ div >
332+
333+ </ main >
334+
335+ < footer class ="md-footer ">
336+
337+ < div class ="md-footer-meta md-typeset ">
338+ < div class ="md-footer-meta__inner md-grid ">
339+ < div class ="md-copyright ">
340+
341+
342+ Made with
343+ < a href ="https://squidfunk.github.io/mkdocs-material/ " target ="_blank " rel ="noopener ">
344+ Material for MkDocs
345+ </ a >
346+
347+ </ div >
348+
349+ </ div >
350+ </ div >
351+ </ footer >
352+
353+ </ div >
354+ < div class ="md-dialog " data-md-component ="dialog ">
355+ < div class ="md-dialog__inner md-typeset "> </ div >
356+ </ div >
357+
358+
359+ < script id ="__config " type ="application/json "> { "base" : "/docker-python-web/" , "features" : [ "navigation.expand" , "navigation.tabs" ] , "search" : "/docker-python-web/assets/javascripts/workers/search.b8dbb3d2.min.js" , "translations" : { "clipboard.copied" : "Copied to clipboard" , "clipboard.copy" : "Copy to clipboard" , "search.result.more.one" : "1 more on this page" , "search.result.more.other" : "# more on this page" , "search.result.none" : "No matching documents" , "search.result.one" : "1 matching document" , "search.result.other" : "# matching documents" , "search.result.placeholder" : "Type to start searching" , "search.result.term.missing" : "Missing" , "select.version" : "Select version" } } </ script >
360+
361+
362+ < script src ="/docker-python-web/assets/javascripts/bundle.1e8ae164.min.js "> </ script >
363+
364+
365+ </ body >
366+ </ html >
0 commit comments