cloudflare
tcp/443 tcp/80 tcp/8443
Open service 188.114.97.3:80 · python-3xl.pages.dev
2026-01-11 16:24
HTTP/1.1 301 Moved Permanently
Date: Sun, 11 Jan 2026 16:24:34 GMT
Content-Length: 0
Connection: close
Location: https://python-3xl.pages.dev/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=EX17GmV2jGZGsexjBaEXNO5sdqm5qi%2Bh%2BsGaVNxI7HF5WdLd40jGMPTYJENsRP1rfSzIfWgONAQE8UCeG43%2BDMFqAc1DZcctRJR3beg%2BUdU4TCoU"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc5c3e1aef9dc9b-SJC
alt-svc: h3=":443"; ma=86400
Open service 2a06:98c1:3121::3:80 · python-3xl.pages.dev
2026-01-11 16:24
HTTP/1.1 301 Moved Permanently
Date: Sun, 11 Jan 2026 16:24:34 GMT
Content-Length: 0
Connection: close
Location: https://python-3xl.pages.dev/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=G7eBFVGV%2FG92bB%2FTPIXouq5%2BfJv%2Fz%2FzwBi4hLQTP8teYe3dkMdwTM1t%2B0wtaLszMz6jLxF1B%2BJJH8rD36eGAIu9cK6bdgZpD%2F8%2FYS%2B8HoaWcvjI2Oeb9PswsW0cqPDTX"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc5c3e19937fdfe-SIN
alt-svc: h3=":443"; ma=86400
Open service 188.114.97.3:443 · python-3xl.pages.dev
2026-01-11 16:24
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 16:24:35 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "aa4c2b7dced78c333ec5f552f6185b81"
Link: </assets/style.DoG5UMBg.css>; rel="preload stylesheet"; as=style, </vp-icons.css>; rel="preload stylesheet"; as=style, </assets/chunks/theme.DtFN4kVd.js>; rel="modulepreload", </assets/chunks/framework.Ck3L_38O.js>; rel="modulepreload", </assets/index.md.DZHL26zj.lean.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=L3MuXDB4Fbr%2Fz3fwilyT4MCbzCMUJzo2mWsneC5LnoNX6NZRUY1mVAQAARBWKHZrsPutMPC2KWmMqQ%2BH%2FruEWSSLBnYoVTF0GRnNzM7KczQXNyse"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc5c3e32e98fede-SIN
alt-svc: h3=":443"; ma=86400
Page title: Taming Python
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Taming Python</title>
<meta name="description" content="No snakes involved">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/assets/style.DoG5UMBg.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.CGCBFTDl.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.DtFN4kVd.js">
<link rel="modulepreload" href="/assets/chunks/framework.Ck3L_38O.js">
<link rel="modulepreload" href="/assets/index.md.DZHL26zj.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-f2a11b51><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ef85f397></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ef85f397>Skip to content</a><!--]--><!----><header class="VPNav" data-v-f2a11b51 data-v-a29ae877><div class="VPNavBar" data-v-a29ae877 data-v-b7713366><div class="wrapper" data-v-b7713366><div class="container" data-v-b7713366><div class="title" data-v-b7713366><div class="VPNavBarTitle" data-v-b7713366 data-v-57622578><a class="title" href="/" data-v-57622578><!--[--><!--]--><!----><span data-v-57622578>Taming Python</span><!--[--><!--]--></a></div></div><div class="content" data-v-b7713366><div class="content-body" data-v-b7713366><!--[--><!--]--><div class="VPNavBarSearch search" data-v-b7713366><!----></div><!----><!----><div class="VPNavBarAppearance appearance" data-v-b7713366 data-v-0614b1a8><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-0614b1a8 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-b7713366 data-v-37202460 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noopener" data-v-0cab8f0a data-v-ae70d859><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-b7713366 data-v-aa5ec736 data-v-96474658><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-96474658><span class="vpi-more-horizontal icon" data-v-96474658></span></button><div class="menu" data-v-96474658><div class="VPMenu" data-v-96474658 data-v-ba8b7764><!----><!--[--><!--[--><!----><div class="group" data-v-aa5ec736><div class="item appearance" data-v-aa5ec736><p class="label" data-v-aa5ec736>Appearance</p><div class="appearance-action" data-v-aa5ec736><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-aa5ec736 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div></div></div><div class="group" data-v-aa5ec736><div class="item social-links" data-v-aa5ec736><div class="VPSocialLinks social-links-list" data-v-aa5ec736 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noope
Open service 2a06:98c1:3120::3:8443 · python-3xl.pages.dev
2026-01-11 16:24
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 16:24:34 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "aa4c2b7dced78c333ec5f552f6185b81"
Link: </assets/style.DoG5UMBg.css>; rel="preload stylesheet"; as=style, </vp-icons.css>; rel="preload stylesheet"; as=style, </assets/chunks/theme.DtFN4kVd.js>; rel="modulepreload", </assets/chunks/framework.Ck3L_38O.js>; rel="modulepreload", </assets/index.md.DZHL26zj.lean.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=zKsAgmPsENFkJePF7zbVZTb4sTNaRSuegi0geSQSSNWPw5AtronYzNUxLfGM8ePN3YlmRGYV6BNd4Fmuhn3RbQAA4sxC%2BmM6WZTwzk1cTKwE%2FORjAWReJku%2BO5rDiA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc5c3e15851b1e4-YYZ
alt-svc: h3=":8443"; ma=86400
Page title: Taming Python
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Taming Python</title>
<meta name="description" content="No snakes involved">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/assets/style.DoG5UMBg.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.CGCBFTDl.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.DtFN4kVd.js">
<link rel="modulepreload" href="/assets/chunks/framework.Ck3L_38O.js">
<link rel="modulepreload" href="/assets/index.md.DZHL26zj.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-f2a11b51><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ef85f397></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ef85f397>Skip to content</a><!--]--><!----><header class="VPNav" data-v-f2a11b51 data-v-a29ae877><div class="VPNavBar" data-v-a29ae877 data-v-b7713366><div class="wrapper" data-v-b7713366><div class="container" data-v-b7713366><div class="title" data-v-b7713366><div class="VPNavBarTitle" data-v-b7713366 data-v-57622578><a class="title" href="/" data-v-57622578><!--[--><!--]--><!----><span data-v-57622578>Taming Python</span><!--[--><!--]--></a></div></div><div class="content" data-v-b7713366><div class="content-body" data-v-b7713366><!--[--><!--]--><div class="VPNavBarSearch search" data-v-b7713366><!----></div><!----><!----><div class="VPNavBarAppearance appearance" data-v-b7713366 data-v-0614b1a8><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-0614b1a8 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-b7713366 data-v-37202460 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noopener" data-v-0cab8f0a data-v-ae70d859><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-b7713366 data-v-aa5ec736 data-v-96474658><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-96474658><span class="vpi-more-horizontal icon" data-v-96474658></span></button><div class="menu" data-v-96474658><div class="VPMenu" data-v-96474658 data-v-ba8b7764><!----><!--[--><!--[--><!----><div class="group" data-v-aa5ec736><div class="item appearance" data-v-aa5ec736><p class="label" data-v-aa5ec736>Appearance</p><div class="appearance-action" data-v-aa5ec736><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-aa5ec736 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div></div></div><div class="group" data-v-aa5ec736><div class="item social-links" data-v-aa5ec736><div class="VPSocialLinks social-links-list" data-v-aa5ec736 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noope
Open service 2a06:98c1:3121::3:8443 · python-3xl.pages.dev
2026-01-11 16:24
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 16:24:34 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "aa4c2b7dced78c333ec5f552f6185b81"
Link: </assets/style.DoG5UMBg.css>; rel="preload stylesheet"; as=style, </vp-icons.css>; rel="preload stylesheet"; as=style, </assets/chunks/theme.DtFN4kVd.js>; rel="modulepreload", </assets/chunks/framework.Ck3L_38O.js>; rel="modulepreload", </assets/index.md.DZHL26zj.lean.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=rrvN0EOSo0VgyEVz1sgv6vs4gcd52sLHC9NvCd7WaGf5Gv1VIZnJQxVznvi3YOzUBTlQtJls87fr%2FpRYqnNqQWxz1hZG4msszAQGyrGjF%2BCMHYeeBSs6PMIbU%2BbnRJc2"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc5c3e1186b60e6-EWR
alt-svc: h3=":8443"; ma=86400
Page title: Taming Python
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Taming Python</title>
<meta name="description" content="No snakes involved">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/assets/style.DoG5UMBg.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.CGCBFTDl.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.DtFN4kVd.js">
<link rel="modulepreload" href="/assets/chunks/framework.Ck3L_38O.js">
<link rel="modulepreload" href="/assets/index.md.DZHL26zj.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-f2a11b51><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ef85f397></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ef85f397>Skip to content</a><!--]--><!----><header class="VPNav" data-v-f2a11b51 data-v-a29ae877><div class="VPNavBar" data-v-a29ae877 data-v-b7713366><div class="wrapper" data-v-b7713366><div class="container" data-v-b7713366><div class="title" data-v-b7713366><div class="VPNavBarTitle" data-v-b7713366 data-v-57622578><a class="title" href="/" data-v-57622578><!--[--><!--]--><!----><span data-v-57622578>Taming Python</span><!--[--><!--]--></a></div></div><div class="content" data-v-b7713366><div class="content-body" data-v-b7713366><!--[--><!--]--><div class="VPNavBarSearch search" data-v-b7713366><!----></div><!----><!----><div class="VPNavBarAppearance appearance" data-v-b7713366 data-v-0614b1a8><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-0614b1a8 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-b7713366 data-v-37202460 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noopener" data-v-0cab8f0a data-v-ae70d859><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-b7713366 data-v-aa5ec736 data-v-96474658><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-96474658><span class="vpi-more-horizontal icon" data-v-96474658></span></button><div class="menu" data-v-96474658><div class="VPMenu" data-v-96474658 data-v-ba8b7764><!----><!--[--><!--[--><!----><div class="group" data-v-aa5ec736><div class="item appearance" data-v-aa5ec736><p class="label" data-v-aa5ec736>Appearance</p><div class="appearance-action" data-v-aa5ec736><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-aa5ec736 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div></div></div><div class="group" data-v-aa5ec736><div class="item social-links" data-v-aa5ec736><div class="VPSocialLinks social-links-list" data-v-aa5ec736 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noope
Open service 2a06:98c1:3121::3:443 · python-3xl.pages.dev
2026-01-11 16:24
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 16:24:34 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "aa4c2b7dced78c333ec5f552f6185b81"
Link: </assets/style.DoG5UMBg.css>; rel="preload stylesheet"; as=style, </vp-icons.css>; rel="preload stylesheet"; as=style, </assets/chunks/theme.DtFN4kVd.js>; rel="modulepreload", </assets/chunks/framework.Ck3L_38O.js>; rel="modulepreload", </assets/index.md.DZHL26zj.lean.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=iR4UM0CY03PnNIC6qM6YFx%2BFm0q9JMVXhIGccB11Jf8actJ8vOxojoRpCkPMr3KtpWLDh0GzWV04VInrTZVEl1I4nBp%2Fi3pW7wHNGz9HffUD%2FXqkrCOURVCwkyIGSRqk"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc5c3e149d2de74-YYZ
alt-svc: h3=":443"; ma=86400
Page title: Taming Python
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Taming Python</title>
<meta name="description" content="No snakes involved">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/assets/style.DoG5UMBg.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.CGCBFTDl.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.DtFN4kVd.js">
<link rel="modulepreload" href="/assets/chunks/framework.Ck3L_38O.js">
<link rel="modulepreload" href="/assets/index.md.DZHL26zj.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-f2a11b51><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ef85f397></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ef85f397>Skip to content</a><!--]--><!----><header class="VPNav" data-v-f2a11b51 data-v-a29ae877><div class="VPNavBar" data-v-a29ae877 data-v-b7713366><div class="wrapper" data-v-b7713366><div class="container" data-v-b7713366><div class="title" data-v-b7713366><div class="VPNavBarTitle" data-v-b7713366 data-v-57622578><a class="title" href="/" data-v-57622578><!--[--><!--]--><!----><span data-v-57622578>Taming Python</span><!--[--><!--]--></a></div></div><div class="content" data-v-b7713366><div class="content-body" data-v-b7713366><!--[--><!--]--><div class="VPNavBarSearch search" data-v-b7713366><!----></div><!----><!----><div class="VPNavBarAppearance appearance" data-v-b7713366 data-v-0614b1a8><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-0614b1a8 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-b7713366 data-v-37202460 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noopener" data-v-0cab8f0a data-v-ae70d859><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-b7713366 data-v-aa5ec736 data-v-96474658><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-96474658><span class="vpi-more-horizontal icon" data-v-96474658></span></button><div class="menu" data-v-96474658><div class="VPMenu" data-v-96474658 data-v-ba8b7764><!----><!--[--><!--[--><!----><div class="group" data-v-aa5ec736><div class="item appearance" data-v-aa5ec736><p class="label" data-v-aa5ec736>Appearance</p><div class="appearance-action" data-v-aa5ec736><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-aa5ec736 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div></div></div><div class="group" data-v-aa5ec736><div class="item social-links" data-v-aa5ec736><div class="VPSocialLinks social-links-list" data-v-aa5ec736 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noope
Open service 2a06:98c1:3120::3:443 · python-3xl.pages.dev
2026-01-11 16:24
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 16:24:34 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "aa4c2b7dced78c333ec5f552f6185b81"
Link: </assets/style.DoG5UMBg.css>; rel="preload stylesheet"; as=style, </vp-icons.css>; rel="preload stylesheet"; as=style, </assets/chunks/theme.DtFN4kVd.js>; rel="modulepreload", </assets/chunks/framework.Ck3L_38O.js>; rel="modulepreload", </assets/index.md.DZHL26zj.lean.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=lYGssUi5NMjuzHF0Omvxos6%2BHMYRN0h%2BJpx4Awhe4%2FRR96LRrhcJM5tKfwC%2FMiMj4rZcmR%2BJY9hKRC1nQ4BCDMhrREe8RlKDe92fQEOc0RJcMSUajLAdmtUJyuVQk%2FFY"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc5c3e12805c5dc-EWR
alt-svc: h3=":443"; ma=86400
Page title: Taming Python
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Taming Python</title>
<meta name="description" content="No snakes involved">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/assets/style.DoG5UMBg.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.CGCBFTDl.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.DtFN4kVd.js">
<link rel="modulepreload" href="/assets/chunks/framework.Ck3L_38O.js">
<link rel="modulepreload" href="/assets/index.md.DZHL26zj.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-f2a11b51><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ef85f397></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ef85f397>Skip to content</a><!--]--><!----><header class="VPNav" data-v-f2a11b51 data-v-a29ae877><div class="VPNavBar" data-v-a29ae877 data-v-b7713366><div class="wrapper" data-v-b7713366><div class="container" data-v-b7713366><div class="title" data-v-b7713366><div class="VPNavBarTitle" data-v-b7713366 data-v-57622578><a class="title" href="/" data-v-57622578><!--[--><!--]--><!----><span data-v-57622578>Taming Python</span><!--[--><!--]--></a></div></div><div class="content" data-v-b7713366><div class="content-body" data-v-b7713366><!--[--><!--]--><div class="VPNavBarSearch search" data-v-b7713366><!----></div><!----><!----><div class="VPNavBarAppearance appearance" data-v-b7713366 data-v-0614b1a8><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-0614b1a8 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-b7713366 data-v-37202460 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noopener" data-v-0cab8f0a data-v-ae70d859><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-b7713366 data-v-aa5ec736 data-v-96474658><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-96474658><span class="vpi-more-horizontal icon" data-v-96474658></span></button><div class="menu" data-v-96474658><div class="VPMenu" data-v-96474658 data-v-ba8b7764><!----><!--[--><!--[--><!----><div class="group" data-v-aa5ec736><div class="item appearance" data-v-aa5ec736><p class="label" data-v-aa5ec736>Appearance</p><div class="appearance-action" data-v-aa5ec736><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-aa5ec736 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div></div></div><div class="group" data-v-aa5ec736><div class="item social-links" data-v-aa5ec736><div class="VPSocialLinks social-links-list" data-v-aa5ec736 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noope
Open service 2a06:98c1:3120::3:80 · python-3xl.pages.dev
2026-01-11 16:24
HTTP/1.1 301 Moved Permanently
Date: Sun, 11 Jan 2026 16:24:34 GMT
Content-Length: 0
Connection: close
Location: https://python-3xl.pages.dev/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=gukFFha%2FimlkThiapr%2B5ZZP2abeVCLSpB2Omu%2BUu8Y%2BhtmhP1LC93kCdnekpeZFK25T9%2FgnXcpZIKHp%2FN69nZRfnbtH%2BSlqdUPN3FDreZfyC5UJHbIvz%2F6Kdh5JXoO5d"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc5c3e0cf0cd2c3-FRA
alt-svc: h3=":443"; ma=86400
Open service 188.114.97.3:8443 · python-3xl.pages.dev
2026-01-11 16:24
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 16:24:34 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "aa4c2b7dced78c333ec5f552f6185b81"
Link: </assets/style.DoG5UMBg.css>; rel="preload stylesheet"; as=style, </vp-icons.css>; rel="preload stylesheet"; as=style, </assets/chunks/theme.DtFN4kVd.js>; rel="modulepreload", </assets/chunks/framework.Ck3L_38O.js>; rel="modulepreload", </assets/index.md.DZHL26zj.lean.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=2OJIdC1nsy32asgT9hjUooMCZAxqrgp9nCL1NC%2BbIH92Ocp0tlkH72TbRkLblCUzrqC9gGBJ9BWdGAjGJuz1lN3ehch41ZlAcLLI%2FHFI66%2B6tIwm"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc5c3e10890f6a5-FRA
alt-svc: h3=":8443"; ma=86400
Page title: Taming Python
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Taming Python</title>
<meta name="description" content="No snakes involved">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/assets/style.DoG5UMBg.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.CGCBFTDl.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.DtFN4kVd.js">
<link rel="modulepreload" href="/assets/chunks/framework.Ck3L_38O.js">
<link rel="modulepreload" href="/assets/index.md.DZHL26zj.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-f2a11b51><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ef85f397></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ef85f397>Skip to content</a><!--]--><!----><header class="VPNav" data-v-f2a11b51 data-v-a29ae877><div class="VPNavBar" data-v-a29ae877 data-v-b7713366><div class="wrapper" data-v-b7713366><div class="container" data-v-b7713366><div class="title" data-v-b7713366><div class="VPNavBarTitle" data-v-b7713366 data-v-57622578><a class="title" href="/" data-v-57622578><!--[--><!--]--><!----><span data-v-57622578>Taming Python</span><!--[--><!--]--></a></div></div><div class="content" data-v-b7713366><div class="content-body" data-v-b7713366><!--[--><!--]--><div class="VPNavBarSearch search" data-v-b7713366><!----></div><!----><!----><div class="VPNavBarAppearance appearance" data-v-b7713366 data-v-0614b1a8><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-0614b1a8 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-b7713366 data-v-37202460 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noopener" data-v-0cab8f0a data-v-ae70d859><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-b7713366 data-v-aa5ec736 data-v-96474658><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-96474658><span class="vpi-more-horizontal icon" data-v-96474658></span></button><div class="menu" data-v-96474658><div class="VPMenu" data-v-96474658 data-v-ba8b7764><!----><!--[--><!--[--><!----><div class="group" data-v-aa5ec736><div class="item appearance" data-v-aa5ec736><p class="label" data-v-aa5ec736>Appearance</p><div class="appearance-action" data-v-aa5ec736><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-aa5ec736 data-v-4c62f8ef data-v-0d4b8599><span class="check" data-v-0d4b8599><span class="icon" data-v-0d4b8599><!--[--><span class="vpi-sun sun" data-v-4c62f8ef></span><span class="vpi-moon moon" data-v-4c62f8ef></span><!--]--></span></span></button></div></div></div><div class="group" data-v-aa5ec736><div class="item social-links" data-v-aa5ec736><div class="VPSocialLinks social-links-list" data-v-aa5ec736 data-v-0cab8f0a><!--[--><a class="VPSocialLink no-icon" href="https://github.com/np-edu-sg/python" aria-label="github" target="_blank" rel="noope