TLWI Python #12

thelastweekin.dev

Hello everyone!

It's another exciting week in the world of technology and programming! We've been scouring the internet for some interesting links and stories to share with you, and we're happy to present this week's edition of our newsletter!

First up, we have an amazing youtube-dl fork that's gaining popularity worldwide. With additional features and fixes, it's become the go-to tool for downloading videos and music from various websites. If you haven't tried this new tool yet, be sure to check it out!

For all you Python enthusiasts out there, we have an amazing discovery that we think you'll love. Say goodbye to tedious and slow imports with pyflyby. This tool automatically manages your imports, so you can focus on writing beautiful and efficient code. Isn't that amazing?

Have you ever heard of Selenium? It's an automation tool that allows you to control a web browser through code. In this week's edition, we take a deep dive into using Selenium on a VPS. If you're interested in automating your web interactions, this is a must-read article.

Are you looking to learn a new programming language in the coming year? We've got you covered! Here are the Top 10 Programming Languages to Learn in 2022 that are sure to keep you engaged and help you build some amazing projects. From Python to JavaScript, we've got it all covered.

Finally, we have an amazing tutorial for integrating Stripe payments with Flask. Flask is a popular Python framework for building web applications, and Stripe is the go-to payment gateway for many businesses. With this tutorial, you'll be able to build your own payment system in no time.

That's it for this week, guys! We hope you enjoy our newsletter and find it informative. As always, we love hearing from you, so drop us a line if you have any feedback or suggestions. Have an amazing week ahead!

Dennis

Hot Python Articles This Week On Reddit

  • Why You Should Start Using Pathlib As An Alternative To the OS Module (.3bX7W3J0lU78fp7cayvNxx{max-width:208px;text-align:center} ._1x9diBHPBP-hL1JiwUwJ5J{font-size:14px;font-weight:500;line-height:18px;color:#ff585b;padding-left:3px;padding-right:24px}._2B0OHMLKb9TXNdd9g5Ere-,._1xKxnscCn2PjBiXhorZef4{height:16px;padding-right:4px;vertical-align:top}.icon._1LLqoNXrOsaIkMtOuTBmO5{height:20px;vertical-align:middle;padding-right:8px}.QB2Yrr8uihZVRhvwrKuMS{height:18px;padding-right:8px;vertical-align:top}._3w_KK8BUvCMkCPWZVsZQn0{font-size:14px;font-weight:500;line-height:18px;color:var(--newCommunityTheme-actionIcon)}._3w_KK8BUvCMkCPWZVsZQn0 ._1LLqoNXrOsaIkMtOuTBmO5,._3w_KK8BUvCMkCPWZVsZQn0 ._2B0OHMLKb9TXNdd9g5Ere-,._3w_KK8BUvCMkCPWZVsZQn0 ._1xKxnscCn2PjBiXhorZef4,._3w_KK8BUvCMkCPWZVsZQn0 .QB2Yrr8uihZVRhvwrKuMS{fill:var(--newCommunityTheme-actionIcon)} ._3K2ydhts9_ES4s9UpcXqBi{display:block;padding:0 16px;width:100%} .FIYolDqalszTnjjNfThfT{max-width:256px;white-space:normal;text-align:center} ._9ZuQyDXhFth1qKJF4KNm8{padding:12px 12px 40px}._2iNJX36LR2tMHx_unzEkVM,._1JmnMJclrTwTPpAip5U_Hm{font-size:16px;font-weight:500;line-height:20px;color:var(--newCommunityTheme-bodyText);margin-bottom:40px;padding-top:4px;text-align:left;margin-right:28px}._2iNJX36LR2tMHx_unzEkVM{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}._2iNJX36LR2tMHx_unzEkVM ._24r4TaTKqNLBGA3VgswFrN{margin-left:6px}._306gA2lxjCHX44ssikUp3O{margin-bottom:32px}._1Omf6afKRpv3RKNCWjIyJ4{font-size:18px;font-weight:500;line-height:22px;border-bottom:2px solid var(--newCommunityTheme-line);color:var(--newCommunityTheme-bodyText);margin-bottom:8px;padding-bottom:8px}._2Ss7VGMX-UPKt9NhFRtgTz{margin-bottom:24px}._3vWu4F9B4X4Yc-Gm86-FMP{border-bottom:1px solid var(--newCommunityTheme-line);margin-bottom:8px;padding-bottom:2px}._3vWu4F9B4X4Yc-Gm86-FMP:last-of-type{border-bottom-width:0}._2qAEe8HGjtHsuKsHqNCa9u{font-size:14px;font-weight:500;line-height:18px;color:var(--newCommunityTheme-bodyText);padding-bottom:8px;padding-top:8px}.c5RWd-O3CYE-XSLdTyjtI{padding:8px 0}._3whORKuQps-WQpSceAyHuF{font-size:12px;font-weight:400;line-height:16px;color:var(--newCommunityTheme-actionIcon);margin-bottom:8px}._1Qk-ka6_CJz1fU3OUfeznu{margin-bottom:8px}._3ds8Wk2l32hr3hLddQshhG{font-weight:500}._1h0r6vtgOzgWtu-GNBO6Yb,._3ds8Wk2l32hr3hLddQshhG{font-size:12px;line-height:16px;color:var(--newCommunityTheme-actionIcon)}._1h0r6vtgOzgWtu-GNBO6Yb{font-weight:400}.horIoLCod23xkzt7MmTpC{font-size:12px;font-weight:400;line-height:16px;color:#ea0027}._33Iw1wpNZ-uhC05tWsB9xi{margin-top:24px}._2M7LQbQxH40ingJ9h9RslL{font-size:12px;font-weight:400;line-height:16px;color:var(--newCommunityTheme-actionIcon);margin-bottom:8px} .s5ap8yh1b4ZfwxvHizW3f{color:var(--newCommunityTheme-metaText);padding-top:5px}.s5ap8yh1b4ZfwxvHizW3f._19JhaP1slDQqu2XgT3vVS0{color:#ea0027} ._1EPynDYoibfs7nDggdH7Gq{margin-bottom:8px;position:relative}._1EPynDYoibfs7nDggdH7Gq._3-0c12FCnHoLz34dQVveax{max-height:63px;overflow:hidden}._1zPvgKHteTOub9dKkvrOl4{font-family:Noto Sans,Arial,sans-serif;font-size:14px;line-height:21px;font-weight:400;word-wrap:break-word}._1dp4_svQVkkuV143AIEKsf{-ms-flex-align:baseline;align-items:baseline;background-color:var(--newCommunityTheme-body);bottom:-2px;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;padding-left:2px;position:absolute;right:-8px}._5VBcBVybCfosCzMJlXzC3{font-family:Noto Sans,Arial,sans-serif;font-size:14px;font-weight:400;line-height:21px;color:var(--newCommunityTheme-bodyText)}._3YNtuKT-Is6XUBvdluRTyI{position:relative;background-color:0;color:var(--newCommunityTheme-metaText);fill:var(--newCommunityTheme-metaText);border:0;padding:0 8px}._3YNtuKT-Is6XUBvdluRTyI:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:9999px;background:var(--newCommunityTheme-metaText);opacity:0}._3YNtuKT-Is6XUBvdluRTyI:hover:before{opacity:.08}._3YNtuKT-Is6XUBvdluRTyI:focus{outline:none}._3YNtuKT-Is6XUBvdluRTyI:focus:before{opacity:.16}._3YNtuKT-Is6XUBvdluRTyI._2Z_0gYdq8Wr3FulRLZXC3e:before,._3YNtuKT-Is6XUBvdluRTyI:active:before{opacity:.24}._3YNtuKT-Is6XUBvdluRTyI:disabled,._3YNtuKT-Is6XUBvdluRTyI[data-disabled],._3YNtuKT-Is6XUBvdluRTyI[disabled]{cursor:not-allowed;filter:grayscale(1);background:none;color:var(--newCommunityTheme-metaTextAlpha50);fill:var(--newCommunityTheme-metaTextAlpha50)}._2ZTVnRPqdyKo1dA7Q7i4EL{transition:all .1s linear 0s}.k51Bu_pyEfHQF6AAhaKfS{transition:none}._2qi_L6gKnhyJ0ZxPmwbDFK{transition:all .1s linear 0s;display:block;background-color:var(--newCommunityTheme-field);border-radius:4px;padding:8px;margin-bottom:12px;margin-top:8px;border:1px solid var(--newCommunityTheme-canvas);cursor:pointer}._2qi_L6gKnhyJ0ZxPmwbDFK:focus{outline:none}._2qi_L6gKnhyJ0ZxPmwbDFK:hover{border:1px solid var(--newCommunityTheme-button)}._2qi_L6gKnhyJ0ZxPmwbDFK._3GG6tRGPPJiejLqt2AZfh4{transition:none;border:1px solid var(--newCommunityTheme-button)}.IzSmZckfdQu5YP9qCsdWO{cursor:pointer;transition:all .1s linear 0s}.IzSmZckfdQu5YP9qCsdWO ._1EPynDYoibfs7nDggdH7Gq{border:1px solid transparent;border-radius:4px;transition:all .1s linear 0s}.IzSmZckfdQu5YP9qCsdWO:hover ._1EPynDYoibfs7nDggdH7Gq{border:1px solid var(--newCommunityTheme-button);padding:4px}._1YvJWALkJ8iKZxUU53TeNO{font-size:12px;font-weight:700;line-height:16px;color:var(--newCommunityTheme-button)}._3adDzm8E3q64yWtEcs5XU7{display:-ms-flexbox;display:flex}._3adDzm8E3q64yWtEcs5XU7 ._3jyKpErOrdUDMh0RFq5V6f{-ms-flex:100%;flex:100%}._3adDzm8E3q64yWtEcs5XU7 .dqhlvajEe-qyxij0jNsi0{color:var(--newCommunityTheme-button)}._3adDzm8E3q64yWtEcs5XU7 ._12nHw-MGuz_r1dQx5YPM2v,._3adDzm8E3q64yWtEcs5XU7 .dqhlvajEe-qyxij0jNsi0{font-size:12px;font-weight:700;line-height:16px;cursor:pointer;-ms-flex-item-align:end;align-self:flex-end;-webkit-user-select:none;-ms-user-select:none;user-select:none}._3adDzm8E3q64yWtEcs5XU7 ._12nHw-MGuz_r1dQx5YPM2v{color:var(--newCommunityTheme-button);margin-right:8px;color:var(--newCommunityTheme-errorText)}._3zTJ9t4vNwm1NrIaZ35NS6{font-family:Noto Sans,Arial,sans-serif;font-size:14px;line-height:21px;font-weight:400;word-wrap:break-word;width:100%;padding:0;border:none;background-color:transparent;resize:none;outline:none;cursor:pointer;color:var(--newRedditTheme-bodyText)}._2JIiUcAdp9rIhjEbIjcuQ-{resize:none;cursor:auto}._2I2LpaEhGCzQ9inJMwliNO,._42Nh7O6pFcqnA6OZd3bOK{display:inline-block;margin-left:4px;vertical-align:middle}._42Nh7O6pFcqnA6OZd3bOK{fill:var(--newCommunityTheme-button);color:var(--newCommunityTheme-button);height:16px;width:16px;margin-bottom:2px} ._3eoXtlBWKbkFYoOHUIcIgK{font-family:Noto Sans,Arial,sans-serif;font-size:14px;font-weight:400;line-height:21px;border:none;color:var(--newCommunityTheme-actionIcon);display:block;height:36px;padding:0 8px;outline:none} ._3XSQHPxjCTSWWZh_u-d0Xf{height:16px;width:16px;fill:var(--newCommunityTheme-actionIcon)}._2R3RlhymCOkPrz9TusvcPq{box-shadow:0 2 15px rgba(0,0,0,.3);max-width:538px;min-width:410px}.HydQQ-TD4TUsVnxkYk_5F{border:1px solid var(--newRedditTheme-line);background-color:var(--newRedditTheme-field);padding:12px 16px;border-radius:4px 4px 0 0;border-bottom:0}.mFTHPdbEAklUs8yhT4Xm7{font-size:14px;line-height:21px;display:block}._3cwQrg-XvocnoG0U22wT8t,.mFTHPdbEAklUs8yhT4Xm7{font-family:Noto Sans,Arial,sans-serif;font-weight:400;color:var(--newCommunityTheme-bodyText)}._3cwQrg-XvocnoG0U22wT8t{font-size:12px;line-height:18px;margin-bottom:8px}._12g_PUGHD-w7T1w4Q3oTsq{color:var(--newCommunityTheme-actionIcon)}._12g_PUGHD-w7T1w4Q3oTsq,._27eskYssCs-urVW1uHI4YI{font-size:12px;font-weight:400;line-height:16px}._27eskYssCs-urVW1uHI4YI{color:var(--newCommunityTheme-metaText)}._3xiY8nTCVp16qSb6CGW2Kv{display:block;margin-bottom:16px}._20ZSV7ktyDYzPcd1UMQWZT{background-color:var(--newCommunityTheme-body);box-sizing:border-box;color:var(--newCommunityTheme-bodyText);border:1px solid var(--newCommunityTheme-line);border-radius:4px;padding:12px;width:100%}._20ZSV7ktyDYzPcd1UMQWZT:focus{border-color:var(--newCommunityTheme-active)}._20ZSV7ktyDYzPcd1UMQWZT::placeholder{color:var(--newCommunityTheme-placeholder)}.HVADn-LHFLaS8r6IBJWeq{font-size:10px;font-weight:700;letter-spacing:.5px;line-height:12px;text-transform:uppercase;color:var(--newRedditTheme-actionIcon);display:block;margin-bottom:8px}.-0i7atRJ5NBsrRM5wuPpX{background-color:var(--newCommunityTheme-line);border-top:1px solid var(--newCommunityTheme-line);display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;padding:16px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.1Fa5Xv7f16v5IC2Tq1m2Fy{border-bottom:1px solid var(--newCommunityTheme-line);border-top-right-radius:4px;border-top-left-radius:4px;padding:16px}._1Fa5Xv7f16v5IC2Tq1m2Fy svg{display:block}.eLnlHLGCDxjFf3jfGTcZu{font-size:16px;font-weight:500;line-height:20px;color:var(--newCommunityTheme-bodyText)}._1uaasV6RaxBfRyVgQJdiKs{padding:16px}.gLlWG7Oj89Ost4_twUu8w{font-size:12px;font-weight:400;line-height:16px;color:var(--newCommunityTheme-actionIcon)}.gLlWG7Oj89Ost4_twUu8w a{color:var(--newCommunityTheme-linkText)}.gLlWG7Oj89Ost4_twUu8w strong{font-weight:500}._2h8O7PjrCXfaJJWKrAxJPL{background-color:var(--newCommunityTheme-body);border:1px solid var(--newCommunityTheme-line);border-radius:4px;box-sizing:border-box;color:var(--newCommunityTheme-bodyText);display:block;height:78px;padding:9px 10px;width:100%}._2h8O7PjrCXfaJJWKrAxJPL:focus{outline:none;border:1px solid var(--newCommunityTheme-button)}._2h8O7PjrCXfaJJWKrAxJPL::placeholder{color:var(--newCommunityTheme-actionIcon)}._17UyTSs2atqnKg9dIq5ERg{background-color:#ea0027;border-color:#ea0027;margin-left:8px}._17UyTSs2atqnKg9dIq5ERg:disabled,._17UyTSs2atqnKg9dIq5ERg:hover,._17UyTSs2atqnKg9dIq5ERg[data-disabled],._17UyTSs2atqnKg9dIq5ERg[disabled]{background-color:rgba(234,0,39,.8);border-color:rgba(234,0,39,.8);color:#fff}._2X1FFYUx3jzlnbcegBC_Sr{margin-left:8px}._1QUX9-zZuGtifS6jJBUyh-{border-color:var(--newCommunityTheme-actionIcon);color:var(--newCommunityTheme-actionIcon)}._1QUX9-zZuGtifS6jJBUyh-:hover{border-color:rgba(135,138,140,.8);color:rgba(135,138,140,.8)}._2ulRgczjI5SWCMgSA1CNLj{color:#ea0027}._2ulRgczjI5SWCMgSA1CNLj:hover{color:rgba(234,0,39,.8)}.JZC61-VzVuaiHdWuRUiSC{background-color:#ff4500;border-color:#ff4500;margin-left:8px;color:var(--newRedditTheme-lightText)}.JZC61-VzVuaiHdWuRUiSC:hover{background-color:rgba(255,69,0,.8);border-color:rgba(255,69,0,.8)}.JZC61-VzVuaiHdWuRUiSC:disabled{color:var(--newRedditTheme-lightText);background-color:#ff4500;border-color:#ff4500;filter:none;opacity:.3}.JZC61-VzVuaiHdWuRUiSC:disabled:hover:before{opacity:0} ._5gAwSCo7K8G413IoE78Ml{color:var(--newCommunityTheme-bodyText);-ms-flex:1 1 100%;flex:1 1 100%;width:100%}._2ghjBMFIsORwdO3oh2Kq6g{-ms-flex:0 0;flex:0 0}._1zTJo0Ndih4fp__5DjbClN{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row} @keyframes ibDwUVR1CAykturOgqOS5{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}._3LwT7hgGcSjmJ7ng7drAuq{--sizePx:0;font-size:4px;position:relative;text-indent:-9999em;border-radius:50%;border:4px solid var(--newCommunityTheme-bodyTextAlpha20);border-left-color:var(--newCommunityTheme-body);transform:translateZ(0);animation:ibDwUVR1CAykturOgqOS5 1.1s linear infinite}._3LwT7hgGcSjmJ7ng7drAuq,._3LwT7hgGcSjmJ7ng7drAuq:after{width:var(--sizePx);height:var(--sizePx)}._3LwT7hgGcSjmJ7ng7drAuq:after{border-radius:50%}._3LwT7hgGcSjmJ7ng7drAuq._2qr28EeyPvBWAsPKl-KuWN{margin:0 auto} ._2cHgYGbfV9EZMSThqLt2tx{margin-bottom:16px;border-radius:4px}._3Q7WCNdCi77r0_CKPoDSFY{width:75%;height:24px}._2wgLWvNKnhoJX3DUVT_3F-,._3Q7WCNdCi77r0_CKPoDSFY{background:var(--newCommunityTheme-field);background-size:200%;margin-bottom:16px;border-radius:4px}._2wgLWvNKnhoJX3DUVT_3F-{width:100%;height:46px} .Rd5g7JmL4Fdk-aZi1-U_V{transition:all .1s linear 0s}._2TMXtA984ePtHXMkOpHNQm{font-size:16px;font-weight:500;line-height:20px;margin-bottom:4px}.CneW1mCG4WJXxJbZl5tzH{border-top:1px solid var(--newRedditTheme-line);margin-top:16px;padding-top:16px}._11ARF4IQO4h3HeKPpPg0xb{transition:all .1s linear 0s;display:none;fill:var(--newCommunityTheme-button);height:16px;width:16px;vertical-align:middle;margin-bottom:2px;margin-left:4px;cursor:pointer}._1I3N-uBrbZH-ywcmCnwv_B:hover ._11ARF4IQO4h3HeKPpPg0xb{display:inline-block}._2IvhQwkgv_7K0Q3R0695Cs{border-radius:4px;border:1px solid var(--newCommunityTheme-line)}._2IvhQwkgv_7K0Q3R0695Cs:focus{outline:none}._1I3N-uBrbZH-ywcmCnwv_B{transition:all .1s linear 0s;border-radius:4px;border:1px solid var(--newCommunityTheme-line)}._1I3N-uBrbZH-ywcmCnwv_B:focus{outline:none}._1I3N-uBrbZH-ywcmCnwv_B.IeceazVNz_gGZfKXub0ak,._1I3N-uBrbZH-ywcmCnwv_B:hover{border:1px solid var(--newCommunityTheme-button)}._35hmSCjPO8OEezK36eUXpk._35hmSCjPO8OEezK36eUXpk._35hmSCjPO8OEezK36eUXpk{margin-top:25px;left:-9px}._3aEIeAgUy9VfJyRPljMNJP._3aEIeAgUy9VfJyRPljMNJP._3aEIeAgUy9VfJyRPljMNJP,._3aEIeAgUy9VfJyRPljMNJP._3aEIeAgUy9VfJyRPljMNJP._3aEIeAgUy9VfJyRPljMNJP:focus-within,._3aEIeAgUy9VfJyRPljMNJP._3aEIeAgUy9VfJyRPljMNJP._3aEIeAgUy9VfJyRPljMNJP:hover{transition:all .1s linear 0s;border:none;padding:8px 8px 0}._25yWxLGH4C6j26OKFx8kD5{display:inline}._2YsVWIEj0doZMxreeY6iDG{font-size:12px;font-weight:400;line-height:16px;color:var(--newCommunityTheme-metaText);display:-ms-flexbox;display:flex;padding:4px 6px}._1hFCAcL4_gkyWN0KM96zgg{color:var(--newCommunityTheme-button);margin-right:8px;margin-left:auto;color:var(--newCommunityTheme-errorText)}._1hFCAcL4_gkyWN0KM96zgg,._1dF0IdghIrnqkJiUxfswxd{font-size:12px;font-weight:700;line-height:16px;cursor:pointer;-ms-flex-item-align:end;align-self:flex-end;-webkit-user-select:none;-ms-user-select:none;user-select:none}._1dF0IdghIrnqkJiUxfswxd{color:var(--newCommunityTheme-button)}._3VGrhUu842I3acqBMCoSAq{font-weight:700;color:#ff4500;text-transform:uppercase;margin-right:4px}._3VGrhUu842I3acqBMCoSAq,.edyFgPHILhf5OLH2vk-tk{font-size:12px;line-height:16px}.edyFgPHILhf5OLH2vk-tk{font-weight:400;-ms-flex-preferred-size:100%;flex-basis:100%;margin-bottom:4px;color:var(--newCommunityTheme-metaText)}._19lMIGqzfTPVY3ssqTiZSX._19lMIGqzfTPVY3ssqTiZSX._19lMIGqzfTPVY3ssqTiZSX{margin-top:6px}._19lMIGqzfTPVY3ssqTiZSX._19lMIGqzfTPVY3ssqTiZSX._19lMIGqzfTPVY3ssqTiZSX._3MAHaXXXXi9Xrmc_oMPTdP{margin-top:4px} .ehsOqYO6dxn_Pf9Dzwu37{margin-top:0;overflow:visible}._2pFdCpgBihIaYh9DSMWBIu{height:24px}._2pFdCpgBihIaYh9DSMWBIu.uMPgOFYlCc5uvpa2Lbteu{border-radius:2px}._2pFdCpgBihIaYh9DSMWBIu.uMPgOFYlCc5uvpa2Lbteu:focus,._2pFdCpgBihIaYh9DSMWBIu.uMPgOFYlCc5uvpa2Lbteu:hover{background-color:var(--newRedditTheme-navIconFaded10);outline:none}._38GxRFSqSC-Z2VLi5Xzkjy{color:var(--newCommunityTheme-actionIcon)}._2DO72U0b_6CUw3msKGrnnT{border-top:none;color:var(--newCommunityTheme-metaText);cursor:pointer;padding:8px 16px 8px 8px;text-transform:none}._2DO72U0b_6CUw3msKGrnnT:hover{background-color:#0079d3;border:none;color:var(--newCommunityTheme-body);fill:var(--newCommunityTheme-body)} .LalRrQILNjt65y-p-QlWH{fill:var(--newRedditTheme-actionIcon);height:18px;width:18px}.LalRrQILNjt65y-p-QlWH rect{stroke:var(--newRedditTheme-metaText)}._3J2-xIxxxP9ISzeLWCOUVc{height:18px}.FyLpt0kIWG1bTDWZ8HIL1{margin-top:4px}._2ntJEAiwKXBGvxrJiqxx_2,._1SqBC7PQ5dMOdF0MhPIkA8{vertical-align:middle}._1SqBC7PQ5dMOdF0MhPIkA8{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center} ._2ik4YxCeEmPotQkDrf9tT5{width:100%}._1DR1r7cWVoK2RVj_pKKyPF,._2ik4YxCeEmPotQkDrf9tT5{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}._1DR1r7cWVoK2RVj_pKKyPF{-ms-flex-pack:center;justify-content:center;max-width:100%}._1CVe5UNoFFPNZQdcj1E7qb{-ms-flex-negative:0;flex-shrink:0;margin-right:4px}._2UOVKq8AASb4UjcU1wrCil{height:28px;width:28px;margin-top:6px}.FB0XngPKpgt3Ui354TbYQ{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-direction:column;flex-direction:column;margin-left:8px;min-width:0}._3tIyrJzJQoNhuwDSYG5PGy{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%}.TIveY2GD5UQpMI7hBO69I{font-size:12px;font-weight:500;line-height:16px;color:var(--newRedditTheme-titleText);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.e9ybGKB-qvCqbOOAHfFpF{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;max-width:100%;margin-top:2px}.y3jF8D--GYQUXbjpSOL5.y3jF8D--GYQUXbjpSOL5{font-weight:400;box-sizing:border-box}._28u73JpPTG4y_Vu5Qute7n{margin-left:4px} ._2a172ppKObqWfRHr8eWBKV{-ms-flex-negative:0;flex-shrink:0;margin-right:8px}._39-woRduNuowN7G4JTW4I8{border-top:1px solid var(--newCommunityTheme-widgetColors-lineColor);margin-top:12px;padding-top:12px}._136QdRzXkGKNtSQ-h1fUru{display:-ms-flexbox;display:flex;margin:8px 0;width:100%}.r51dfG6q3N-4exmkjHQg{font-size:10px;font-weight:700;letter-spacing:.5px;line-height:12px;text-transform:uppercase;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.r51dfG6q3N-4exmkjHQg,._2BnLYNBALzjH6p_ollJ-RF{display:-ms-flexbox;display:flex}._2BnLYNBALzjH6p_ollJ-RF{margin-left:auto}._1-25VxiIsZFVU88qFh-T8p{padding:0}._2nxyf8XcTi2UZsUInEAcPs._2nxyf8XcTi2UZsUInEAcPs{color:var(--newCommunityTheme-widgetColors-sidebarWidgetTextColor)} ._1LHxa-yaHJwrPK8kuyv_Y4{width:100%}._1LHxa-yaHJwrPK8kuyv_Y4:hover ._31L3r0EWsU0weoMZvEJcUA{display:none}._1LHxa-yaHJwrPK8kuyv_Y4 ._31L3r0EWsU0weoMZvEJcUA,._1LHxa-yaHJwrPK8kuyv_Y4:hover ._11Zy7Yp4S1ZArNqhUQ0jZW{display:block}._1LHxa-yaHJwrPK8kuyv_Y4 ._11Zy7Yp4S1ZArNqhUQ0jZW{display:none} ._12xlue8dQ1odPw1J81FIGQ{display:inline-block;vertical-align:middle} ._3-SW6hQX6gXK9G4FM74obr{display:inline-block;vertical-align:text-bottom;width:16px;height:16px;font-size:16px;line-height:16px} ._37coyt0h8ryIQubA7RHmUc{margin-top:12px;padding-top:12px}._2XJvPvYIEYtcS4ORsDXwa3{border-radius:100%;box-sizing:border-box;-ms-flex:none;flex:none;margin-right:8px}._2Vkdik1Q8k0lBEhhA_lRKE,.icon._2Vkdik1Q8k0lBEhhA_lRKE{height:54px;width:54px;font-size:54px;line-height:54px}.eGjjbHtkgFc-SYka3LM3M,._2Vkdik1Q8k0lBEhhA_lRKE,.icon.eGjjbHtkgFc-SYka3LM3M,.icon._2Vkdik1Q8k0lBEhhA_lRKE{border-radius:100%;box-sizing:border-box;-ms-flex:none;flex:none;margin-right:8px;background-position:50%;background-repeat:no-repeat;background-size:100%}.eGjjbHtkgFc-SYka3LM3M,.icon.eGjjbHtkgFc-SYka3LM3M{height:36px;width:36px}.j9k2MUR13FjoBBeLo1C1m{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;margin-top:13px;margin-bottom:2px}._3Evl5aOozId3QVjs7iry2c{font-size:12px;font-weight:400;line-height:16px;margin-right:4px;margin-left:4px}._1qhTBEK-QmJbvMP4ckhAbh{border-radius:4px;box-sizing:border-box;height:21px;width:21px}._1qhTBEK-QmJbvMP4ckhAbh:nth-child(2),._1qhTBEK-QmJbvMP4ckhAbh:nth-child(3){margin-left:-9px}._3nzVPnRRnrls4DOXO_I0fn{margin:auto 0 auto auto;padding-top:10px;vertical-align:middle}._3nzVPnRRnrls4DOXO_I0fn ._1LAmcxBaaqShJsi8RNT-Vp i{color:unset}._2bWoGvMqVhMWwhp4Pgt4LP{margin:16px 0;font-size:12px;font-weight:400;line-height:16px}.icon.tWeTbHFf02PguTEonwJD0{margin-right:4px;vertical-align:top}._2AbGMsrZJPHrLm9e-oyW1E{width:180px;text-align:center}.icon._1cB7-TWJtfCxXAqqeyVb2q{cursor:pointer;margin-left:6px;height:14px;fill:#dadada;font-size:12px;vertical-align:middle}.hpxKmfWP2ZiwdKaWpefMn{background-color:var(--newCommunityTheme-active);background-size:cover;background-image:var(--newCommunityTheme-banner-backgroundImage);background-position-y:center;background-position-x:center;background-repeat:no-repeat;border-radius:3px 3px 0 0;height:34px;margin:-12px -12px 10px}._20Kb6TX_CdnePoT8iEsls6{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;margin-bottom:8px}._20Kb6TX_CdnePoT8iEsls6>{display:inline-block;vertical-align:middle}.t9oUK2WY0d28lhLAh3N5q{margin-top:-23px}._2KqgQ5WzoQRJqjjoznu22o{display:inline-block;-ms-flex-negative:0;flex-shrink:0;position:relative}._2D7eYuDY6cYGtybECmsxvE{-ms-flex:1 1 auto;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}._2D7eYuDY6cYGtybECmsxvE:hover{text-decoration:underline}._19bCWnxeTjqzBElWZfIlJb{font-size:16px;font-weight:500;line-height:20px;display:inline-block}._2TC7AdkcuxFIFKROVWis8{margin-left:10px;margin-top:30px}._2TC7AdkcuxFIFKRO_VWis8._35WVFxUni5zeFkPk7O4iiB{margin-top:35px}._7kAMkb9SAVF8xJ3L53gcW{display:-ms-flexbox;display:flex;margin-bottom:8px}._7kAMkb9SAVF8xJ3L53gcW>{-ms-flex:auto;flex:auto}._1LAmcxBaaqShJsi8RNT-Vp{padding:0 2px 0 4px;vertical-align:middle}._3HlHJ56dAfStT19Jgl1bF,.nEdqRRzLEN43xauwtgTmj{padding-right:4px}._3_HlHJ56dAfStT19Jgl1bF{padding-left:16px}._2QZ7T4uAFMs_N83BZcN-Em{font-family:Noto Sans,Arial,sans-serif;font-size:14px;font-weight:400;line-height:18px;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.icon._19sQCxYe2NApNbYNX5P5-L{margin:-2px 8px 0 0}._3XFx6CfPlg-4Usgxm0gK8R{font-size:16px;font-weight:500;line-height:20px}._34InTQ51PAhJivuc_InKjJ{color:var(--newCommunityTheme-actionIcon)}._29_mu5qI8E1fq6Uq5koje8{font-size:12px;font-weight:500;line-height:16px;display:inline-block;word-break:break-word}._2BY2-wxSbNFYqAy98jWyTC{margin-top:10px}._3sGbDVmLJd_8OV8Kfl7dVv{font-family:Noto Sans,Arial,sans-serif;font-size:14px;font-weight:400;line-height:21px;margin-top:8px;word-wrap:break-word}._1qiHDKK74j6hUNxM0p9ZIp{margin-top:12px}.Jy6FIGP1NvWbVjQZN7FHA,._326PJFFRv8chYfOlaEYmGt,._1eMniuqQCoYf3kOpyx83Jj,._1cDoUuVvel5B1n5wa3K507{-ms-flex-pack:center;justify-content:center;margin-top:12px;width:100%}._1eMniuqQCoYf3kOpyx83Jj{margin-bottom:8px}._2_w8DCFR-DCxgxlP1SGNq5{margin-right:4px;vertical-align:middle}._1aS-wQ7rpbcxKT0d5kjrbh{border-radius:4px;display:inline-block;padding:4px}._2cn386lOe1A_DTmBUA-qSM{border-top:1px solid var(--newCommunityTheme-widgetColors-lineColor);margin-top:10px}._2Zdkj7cQEO3zSGHGK2XnZv{display:inline-block}.wzFxUZxKK8HkWiEhs0tyE{font-size:12px;font-weight:700;line-height:16px;color:var(--newCommunityTheme-button);cursor:pointer;text-align:left;margin-top:2px}._3R24jLERJTaoRbM_vYd9v0._3R24jLERJTaoRbM_vYd9v0._3R24jLERJTaoRbM_vYd9v0{display:none}._38lwnrIpIyqxDfAF1iwhcV{background-color:var(--newRedditTheme-line);border:none;height:1px;margin:16px 0}.yobE-ux_T1smVDcFMMKFv{font-size:16px;font-weight:500;line-height:20px}._2DVpJZAGplELzFy4mB0epQ{margin-top:8px}._2DVpJZAGplELzFy4mB0epQ .x1f6lYW8eQcUFu0VIPZzb{color:inherit}._2DVpJZAGplELzFy4mB0epQ svg.LTiNLdCS1ZPRx9wBlY2rD{color:inherit;fill:inherit;padding-right:8px}._2DVpJZAGplELzFy4mB0epQ ._18e78ihYD3tNypPhtYISq3{font-family:Noto Sans,Arial,sans-serif;font-size:14px;font-weight:400;line-height:18px;color:inherit} ._2FKpII1jz0h6xCAw1kQAvS{background-color:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.1),0 2px 3px 0 rgba(0,0,0,.2);transition:left .15s linear;border-radius:57%;width:57%}._2FKpII1jz0h6xCAw1kQAvS:after{content:"";padding-top:100%;display:block}._2e2g485kpErHhJQUiyvvC2{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;background-color:var(--newCommunityTheme-navIconFaded10);border:2px solid transparent;border-radius:100px;cursor:pointer;position:relative;width:35px;transition:border-color .15s linear,background-color .15s linear}._2e2g485kpErHhJQUiyvvC2._3kUvbpMbR21zJBboDdBH7D{background-color:var(--newRedditTheme-navIconFaded10)}._2e2g485kpErHhJQUiyvvC2._3kUvbpMbR21zJBboDdBH7D._1L5kUnhRYhUJ4TkMbOTKkI{background-color:var(--newRedditTheme-active)}._2e2g485kpErHhJQUiyvvC2._3kUvbpMbR21zJBboDdBH7D._1L5kUnhRYhUJ4TkMbOTKkI._3clF3xRMqSWmoBQpXv8U5z{background-color:var(--newRedditTheme-buttonAlpha10)}._2e2g485kpErHhJQUiyvvC2._1asGWL2_XadHoBuUlNArOq{border-width:2.25px;height:24px;width:37.5px}._2e2g485kpErHhJQUiyvvC2._1asGWL2_XadHoBuUlNArOq ._2FKpII1jz0h6xCAw1kQAvS{height:19.5px;width:19.5px}._2e2g485kpErHhJQUiyvvC2._1hku5xiXsbqzLmszstPyR3{border-width:3px;height:32px;width:50px}._2e2g485kpErHhJQUiyvvC2._1hku5xiXsbqzLmszstPyR3 ._2FKpII1jz0h6xCAw1kQAvS{height:26px;width:26px}._2e2g485kpErHhJQUiyvvC2._10hZCcuqkss2sf5UbBMCSD{border-width:3.75px;height:40px;width:62.5px}._2e2g485kpErHhJQUiyvvC2._10hZCcuqkss2sf5UbBMCSD ._2FKpII1jz0h6xCAw1kQAvS{height:32.5px;width:32.5px}._2e2g485kpErHhJQUiyvvC2._1fCdbQCDv6tiX242k80-LO{border-width:4.5px;height:48px;width:75px}._2e2g485kpErHhJQUiyvvC2._1fCdbQCDv6tiX242k80-LO ._2FKpII1jz0h6xCAw1kQAvS{height:39px;width:39px}._2e2g485kpErHhJQUiyvvC2._2Jp5Pv4tgpAsTcnUzTsXgO{border-width:5.25px;height:56px;width:87.5px}._2e2g485kpErHhJQUiyvvC2._2Jp5Pv4tgpAsTcnUzTsXgO ._2FKpII1jz0h6xCAw1kQAvS{height:45.5px;width:45.5px}._2e2g485kpErHhJQUiyvvC2._1L5kUnhRYhUJ4TkMbOTKkI{-ms-flex-pack:end;justify-content:flex-end;background-color:var(--newCommunityTheme-active)}._2e2g485kpErHhJQUiyvvC2._3clF3xRMqSWmoBQpXv8U5z{cursor:default}._2e2g485kpErHhJQUiyvvC2._3clF3xRMqSWmoBQpXv8U5z ._2FKpII1jz0h6xCAw1kQAvS{box-shadow:none}._2e2g485kpErHhJQUiyvvC2._1L5kUnhRYhUJ4TkMbOTKkI._3clF3xRMqSWmoBQpXv8U5z{background-color:var(--newCommunityTheme-buttonAlpha10)} ._3Qx5bBCG_O8wVZee9J-KyJ{border-top:1px solid var(--newRedditTheme-line);margin-top:16px;padding-top:16px}._3Qx5bBCG_O8wVZee9J-KyJ ._2NbKFI9n3wPM76pgfAPEsN{margin:0;padding:0}._3Qx5bBCG_O8wVZee9J-KyJ ._2NbKFI9n3wPM76pgfAPEsN ._2btz68cXFBI3RWcfSNwbmJ{font-family:Noto Sans,Arial,sans-serif;font-size:14px;font-weight:400;line-height:21px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;margin:8px 0}._3Qx5bBCG_O8wVZee9J-KyJ ._2NbKFI9n3wPM76pgfAPEsN ._2btz68cXFBI3RWcfSNwbmJ.QgBK4ECuqpeR2umRjYcP2{opacity:.4}._3Qx5bBCG_O8wVZee9J-KyJ ._2NbKFI9n3wPM76pgfAPEsN ._2btz68cXFBI3RWcfSNwbmJ label{font-size:12px;font-weight:500;line-height:16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}._3Qx5bBCG_O8wVZee9J-KyJ ._2NbKFI9n3wPM76pgfAPEsN ._2btz68cXFBI3RWcfSNwbmJ label svg{fill:currentColor;height:20px;margin-right:4px;width:20px;-ms-flex:0 0 auto;flex:0 0 auto}._3Qx5bBCG_O8wVZee9J-KyJ ._4OtOUaGIjjp2cNJMUxme{-ms-flex-pack:justify;justify-content:space-between}._3Qx5bBCGO8wVZee9J-KyJ ._4OtOUaGIjjp2cNJMUxme svg{display:inline-block;height:12px;width:12px}._2b2iJtPCDQ6eKanYDf3Jho{-ms-flex:0 0 auto;flex:0 0 auto}._4OtOUaGIjjp2cNJMUxme{padding:0 12px}._1ra1vBLrjtHjhYDZ_gOy8F{font-family:Noto Sans,Arial,sans-serif;font-size:12px;letter-spacing:unset;line-height:16px;text-transform:unset;--textColor:var(--newCommunityTheme-widgetColors-sidebarWidgetTextColor);--textColorHover:var(--newCommunityTheme-widgetColors-sidebarWidgetTextColorShaded80);font-size:10px;font-weight:700;letter-spacing:.5px;line-height:12px;text-transform:uppercase;color:var(--textColor);fill:var(--textColor);opacity:1}._1ra1vBLrjtHjhYDZ_gOy8F._2UlgIO1LIFVpT30ItAtPfb{--textColor:var(--newRedditTheme-widgetColors-sidebarWidgetTextColor);--textColorHover:var(--newRedditTheme-widgetColors-sidebarWidgetTextColorShaded80)}._1ra1vBLrjtHjhYDZ_gOy8F:active,._1ra1vBLrjtHjhYDZ_gOy8F:hover{color:var(--textColorHover);fill:var(--textColorHover)}._1ra1vBLrjtHjhYDZ_gOy8F:disabled,._1ra1vBLrjtHjhYDZ_gOy8F[data-disabled],._1ra1vBLrjtHjhYDZ_gOy8F[disabled]{opacity:.5;cursor:not-allowed}._3a4fkgD25f5G-b0Y8wVIBe{margin-right:8px} .c_dVyWK3BXRxSN3ULLJ_t{border-radius:4px 4px 0 0;height:34px;left:0;position:absolute;right:0;top:0}._1OQL3FCA9BfgI57ghHHgV3{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;margin-top:32px}._1OQL3FCA9BfgI57ghHHgV3 ._33jgwegeMTJ-FJaaHMeOjV{border-radius:9001px;height:32px;width:32px}._1OQL3FCA9BfgI57ghHHgV3 ._1wQQNkVR4qNpQCzA19X4B6{height:16px;margin-left:8px;width:200px}._39IvqNe6cqNVXcMFxFWFxx{display:-ms-flexbox;display:flex;margin:12px 0}._39IvqNe6cqNVXcMFxFWFxx ._29TSdL_ZMpyzfQ_bfdcBSc{-ms-flex:1;flex:1}._39IvqNe6cqNVXcMFxFWFxx .JEV9fXVlt_7DgH-zLepBH{height:18px;width:50px}._39IvqNe6cqNVXcMFxFWFxx ._3YCOmnWpGeRBW_Psd5WMPR{height:12px;margin-top:4px;width:60px}._2iO5zt81CSiYhWRF9WylyN{height:18px;margin-bottom:4px}._2iO5zt81CSiYhWRF9WylyN._2E9u5XvlGwlpnzki78vasG{width:230px}._2iO5zt81CSiYhWRF9WylyN.fDElwzn43eJToKzSCkejE{width:100%}._2iO5zt81CSiYhWRF9WylyN._2kNB7LAYYqYdyS85f8pqfi{width:250px}._2iO5zt81CSiYhWRF9WylyN._1XmngqAPKZO_1lDBwcQrR7{width:120px}._3XbVvl-zJDbcDeEdSgxV4{border-radius:4px;height:32px;margin-top:16px;width:100%}._2hgXdc8jVQaXYAXvnqEyED{animation:_3XkHjK4wMgxtjzC1TvoXrb 1.5s ease infinite;background:linear-gradient(90deg,var(--newCommunityTheme-field),var(--newCommunityTheme-inactive),var(--newCommunityTheme-field));background-size:200%}._1KWSZXqSM_BLhBzkPyJFGR{background-color:var(--newCommunityTheme-widgetColors-sidebarWidgetBackgroundColor);border-radius:4px;padding:12px;position:relative;width:auto} @keyframes _1tIZttmhLdrIGrB-6VvZcT{0%{opacity:0}to{opacity:1}}._3uK2I0hi3JFTKnMUFHD2Pd,.HQ2VJViRjokXpRbJzPvvc{--infoTextTooltip-overflow-left:0px;font-size:12px;font-weight:500;line-height:16px;padding:3px 9px;position:absolute;border-radius:4px;margin-top:-6px;background:#000;color:#fff;animation:_1tIZttmhLdrIGrB-6VvZcT .5s step-end;z-index:100;white-space:pre-wrap}._3uK2I0hi3JFTKnMUFHD2Pd:after,.HQ2VJViRjokXpRbJzPvvc:after{content:"";position:absolute;top:100%;left:calc(50% - 4px - var(--infoTextTooltip-overflow-left));width:0;height:0;border-top:3px solid #000;border-left:4px solid transparent;border-right:4px solid transparent}._3uK2I0hi3JFTKnMUFHD2Pd{margin-top:6px}._3uK2I0hi3JFTKnMUFHD2Pd:after{border-bottom:3px solid #000;border-top:none;bottom:100%;top:auto} ._2Gt13AX94UlLxkluAMsZqP{background-position:50%;background-repeat:no-repeat;background-size:contain;position:relative;display:inline-block} ._1QwShihKKlyRXyQSlqYaWW{height:16px;width:16px;vertical-align:bottom}._2X6EB3ZhEeXCh1eIVA64XM{margin-left:3px}._1jNPl3YUk6zbpLWdjaJT1r{font-size:12px;font-weight:500;line-height:16px;border-radius:2px;display:inline-block;margin-right:5px;overflow:hidden;text-overflow:ellipsis;vertical-align:text-bottom;white-space:pre;word-break:normal;padding:0 4px}._1jNPl3YUk6zbpLWdjaJT1r._39BEcWjOlYi1QGcJil6-yl{padding:0}._2hSecp_zkPm_s5ddV2htoj{font-size:12px;font-weight:500;line-height:16px;border-radius:2px;display:inline-block;margin-right:5px;overflow:hidden;text-overflow:ellipsis;vertical-align:text-bottom;white-space:pre;word-break:normal;margin-left:0;padding:0 4px}._2hSecp_zkPm_s5ddV2htoj._39BEcWjOlYi1QGcJil6-yl{padding:0}._1wzhGvvafQFOWAyA157okr{font-size:12px;font-weight:500;line-height:16px;border-radius:2px;margin-right:5px;overflow:hidden;text-overflow:ellipsis;vertical-align:text-bottom;white-space:pre;word-break:normal;box-sizing:border-box;line-height:14px;padding:0 4px}._3BPVpMSn5b1vb1yTQuqCRH,._1wzhGvvafQFOWAyA157okr{display:inline-block;height:16px}._3BPVpMSn5b1vb1yTQuqCRH{background-color:var(--newRedditTheme-body);border-radius:50%;margin-left:5px;text-align:center;width:16px}._2cvySYWkqJfynvXFOpNc5L{height:10px;width:10px}.aJrgrewN9C8x1Fusdx4hh{padding:2px 8px}._1wj6zoMi6hRP5YhJ8nXWXE{font-size:14px;padding:7px 12px}._2VqfzH0dZ9dIl3XWNxs42y{border-radius:20px}._2VqfzH0dZ9dIl3XWNxs42y:hover{opacity:.85}._2VqfzH0dZ9dIl3XWNxs42y:active{transform:scale(.95)}

/# sourceMappingURL=https://www.redditstatic.com/desktop2x/chunkCSS/IdCard.ed75b3c214aa09f54074.css.map_/._2JU2WQDzn5pAlpxqChbxr7{height:16px;margin-right:8px;width:16px}._3E45je-29yDjfFqFcLCXyH{margin-top:16px}._13YtS_rCnVZG1ns2xaCalg{font-family:Noto Sans,Arial,sans-serif;font-size:14px;font-weight:400;line-height:18px;display:-ms-flexbox;display:flex}._1m5fPZN4q3vKVg9SgU43u2{margin-top:12px}._17A-IdW3j1_fI_pN-8tMV-{display:inline-block;margin-bottom:8px;margin-right:5px}._5MIPBF8A9vXwwXFumpGqY{border-radius:20px;font-size:12px;font-weight:500;letter-spacing:0;line-height:16px;padding:3px 10px;text-transform:none}._5MIPBF8A9vXwwXFumpGqY:focus{outline:unset}

/# sourceMappingURL=https://www.redditstatic.com/desktop2x/chunkCSS/TopicLinksContainer.361933014be843c79476.css.map_/5 days ago)

Our Article Picks

Our Repo Picks

The Last Week In Python is a weekly roundup for all things Python! Follow me on Twitter for more projects @dennisokeeffe92.


Subscribe to my personal newsletter to get updates on TheLastWeekIn.Dev + more! 🦄


Built by Dennis O'Keeffe

TLWI.dev, 2024