<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body>
    
<div>The Real Python gang is the best, smartest, most active and participatory group of Pythoneers, other than us of course.</div><div><br></div><div>And, they're doing a live Q&A on Python decorators, which are really cool, and not gimmicky. ;-)</div><div><br></div><div><br></div><div><br></div><div id="composer_signature"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><div style="font-size:88%;color:#364f67">David L. Willson</div><div style="font-size:88%;color:#364f67">720-333-LANS</div></div><br><br>-------- Original message --------<br>From: Dan at Real Python <info@realpython.com> <br>Date: 3/27/19  2:59 PM  (GMT-07:00) <br>To: dlwillson@thegeek.nu <br>Subject: Python Decorators Q&A with the Real Python Team -- Thursday March 28 @ 1pm EST <br><br>
<style type="text/css">
body {
background-color: #ffffff; margin: 0; padding: 0; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%;
}
img {
max-width: 440px;
}
@media only screen and (min-width: 480px) {
  .column-100 {
    width: 100% !important; display: inline-block; text-align: left; vertical-align: top;
  }
  * [aria-labelledby='column-100'] {
    width: 100% !important; display: inline-block; text-align: left; vertical-align: top;
  }
}
</style>
<!--[if gte mso 9]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->
<div style="background-color: #ffffff">
<!--[if mso]><table border="0" cellpadding="0" cellspacing="0"><tr><td><![endif]-->
<div style="background-color: rgb(255, 255, 255); max-width: 450px">
<table border="0" cellspacing="0" cellpadding="0" align="center" style="background-color: rgb(255, 255, 255); border-collapse: collapse; font-size: 0px; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%" bgcolor="rgb(255, 255, 255)">
<tbody><tr><td style="border-collapse: collapse; font-size: 0px; mso-table-lspace: 0pt; mso-table-rspace: 0pt; text-align: center; vertical-align: top" align="center" valign="top">
<!--[if mso]><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;"><![endif]-->
<div class="column column-100" aria-labelledby="column-100" style="display: inline-block; text-align: left; vertical-align: top; width: 100%" align="left"><table border="0" cellspacing="0" cellpadding="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"><tbody><tr>
<td style="border-collapse: collapse; font-size: 0px; mso-table-lspace: 0pt; mso-table-rspace: 0pt; text-align: left; word-break: break-word; word-wrap: break-word" align="left">
<div style="color: rgb(52, 52, 52); font-family: Helvetica, Arial, sans-serif; font-size: 15px; line-height: 1.4; margin: 0px 0px 13px; padding: 11px">
Hey David,<br>
<br>
Decorators are a challenging topic for many Pythonistas...especially when it comes to advanced use cases like writing decorators that can accept arguments.<br>
<br>
But they're also an incredibly useful feature if you're looking to make your code more Pythonic and succinct.<br>
<br>
They're definitely a personal favorite of mine as far as cool language features in Python go!<br>
<br>
And so I'm happy to announce that we're hosting a <strong>Python decorators live Q&A</strong> session with the Real Python Team tomorrow:<br>
<br>
Geir Arne Hjelle (who wrote our <span><a href="http://t.dripemail2.com/c/eyJhY2NvdW50X2lkIjoiNjIxNDUwMCIsImRlbGl2ZXJ5X2lkIjoiNTkzNzM1ODk3MiIsInVybCI6Imh0dHBzOi8vcmVhbHB5dGhvbi5jb20vcHJpbWVyLW9uLXB5dGhvbi1kZWNvcmF0b3JzLz9fX3M9cGpjNWFnd3Njc2h1cXpocGpxdHgifQ">fantastic decorators primer tutorial</a>)</span>, Chris Bailey (who is the instructor of our <a href="http://t.dripemail2.com/c/eyJhY2NvdW50X2lkIjoiNjIxNDUwMCIsImRlbGl2ZXJ5X2lkIjoiNTkzNzM1ODk3MiIsInVybCI6Imh0dHBzOi8vcmVhbHB5dGhvbi5jb20vY291cnNlcy9weXRob24tZGVjb3JhdG9ycy0xMDEvP19fcz1wamM1YWd3c2NzaHVxemhwanF0eCJ9"><span>in-depth Decorators 101 video course</span></a>), and I are looking forward to meet you and chat about all things decorators :)<br>
<br>
The session takes place on <strong>Thursday, March 28 1pm–2pm EST</strong> (<a href="http://t.dripemail2.com/c/eyJhY2NvdW50X2lkIjoiNjIxNDUwMCIsImRlbGl2ZXJ5X2lkIjoiNTkzNzM1ODk3MiIsInVybCI6Imh0dHBzOi8vd3d3LnRpbWVhbmRkYXRlLmNvbS93b3JsZGNsb2NrL2ZpeGVkdGltZS5odG1sP21zZz1BTUErUHl0aG9uK0RlY29yYXRvcnNcdTAwMjZpc289MjAxOTAzMjhUMTdcdTAwMjZwMT0xNDQwXHUwMDI2YWg9MVx1MDAyNl9fcz1wamM1YWd3c2NzaHVxemhwanF0eCJ9">click here to see when that is in your local timezone</a>) in the Real Python Community Slack.<br>
<br>
This is a members-only event, so if you're interested to participate (and get full access to our video course library) there's still time to activate your account at <a href="http://t.dripemail2.com/c/eyJhY2NvdW50X2lkIjoiNjIxNDUwMCIsImRlbGl2ZXJ5X2lkIjoiNTkzNzM1ODk3MiIsInVybCI6Imh0dHBzOi8vcmVhbHB5dGhvbi5jb20vam9pbj9fX3M9cGpjNWFnd3Njc2h1cXpocGpxdHgifQ"><span>https://realpython.com/join</span></a><br>
<br>
Looking forward to chatting decorators with you!<br>
<br>
— Dan Bader
</div>
</td>
</tr></tbody></table></div>
<!--[if mso]></td></tr></table><![endif]-->
</td></tr></tbody>
</table>
</div>
<!--[if mso]></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td><![endif]-->
<div style="background-color: rgb(255, 255, 255); max-width: 450px">
<table border="0" cellspacing="0" cellpadding="0" align="center" style="background-color: rgb(255, 255, 255); border-collapse: collapse; font-size: 0px; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%" bgcolor="rgb(255, 255, 255)">
<tbody><tr><td style="border-collapse: collapse; font-size: 0px; mso-table-lspace: 0pt; mso-table-rspace: 0pt; text-align: center; vertical-align: top" align="center" valign="top">
<!--[if mso]><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;"><![endif]-->
<div class="column column-100" aria-labelledby="column-100" style="display: inline-block; text-align: left; vertical-align: top; width: 100%" align="left"><table border="0" cellspacing="0" cellpadding="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"><tbody><tr>
<td class="alignmentContainer" style="border-collapse: collapse; font-size: 0px; mso-table-lspace: 0pt; mso-table-rspace: 0pt; padding: 25px 11px; text-align: center; word-break: break-word; word-wrap: break-word" align="center">
<div>
<!--[if mso]>
<hr
xmlns="http://www.w3.org/1999/xhtml" align="center" style="width: 100%;
border-color: rgb(208, 208, 208); background-color: rgb(208, 208, 208);
color: rgb(208, 208, 208); border-width: 1px 0px 0px; height: 1px;" />
<![endif]-->
<div style="background-color: rgb(208, 208, 208); border: rgb(208,208,208); color: rgb(208, 208, 208); height: 1px; margin: 0px auto; mso-hide: all; width: 100%" xmlns="http://www.w3.org/1999/xhtml"></div>
</div>
</td>
</tr></tbody></table></div>
<!--[if mso]></td></tr></table><![endif]-->
</td></tr></tbody>
</table>
</div>
<!--[if mso]></td></tr></table><table border="0"cellpadding="0" cellspacing="0"><tr><td><![endif]-->
<div style="background-color: rgb(255, 255, 255); max-width: 450px"><table border="0" cellspacing="0" cellpadding="0" style="background-color: rgb(255, 255, 255); border-collapse: collapse; font-size: 0px; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%" bgcolor="rgb(255, 255, 255)"><tbody><tr><td style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<!--[if mso]><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;"><![endif]-->
<div class="column column-100" aria-labelledby="column-100" style="display: inline-block; text-align: left; vertical-align: top; width: 100%" align="left"><table border="0" cellspacing="0" cellpadding="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"><tbody><tr>
<td class="alignmentContainer" style="border-collapse: collapse; font-size: 0px; mso-table-lspace: 0pt; mso-table-rspace: 0pt; padding: 11px; text-align: left; word-break: break-word; word-wrap: break-word" align="left">
<div style="color: rgb(153, 153, 153); font-family: Helvetica, Arial, sans-serif; font-size: 11px; line-height: 1.4; margin-left: auto; margin-right: auto; padding: 0px">

<div id="footer">
To make sure you keep getting these emails, please add info@realpython.com to your address book or whitelist us. Want out of the loop? <a href="http://t.dripemail2.com/c/eyJhY2NvdW50X2lkIjoiNjIxNDUwMCIsImRlbGl2ZXJ5X2lkIjoiNTkzNzM1ODk3MiIsInVybCI6Imh0dHBzOi8vd3d3LmdldGRyaXAuY29tL3N1YnNjcmliZXJzL3BqYzVhZ3dzY3NodXF6aHBqcXR4L3N1YnNjcmlwdGlvbnM_ZD1ubmFrNzJvNHQyMnh5MXQyZXp6dlx1MDAyNmV4Y2x1ZGVfY2xpY2s9MVx1MDAyNmludGVudD11bnN1YnNjcmliZVx1MDAyNl9fcz1wamM1YWd3c2NzaHVxemhwanF0eCJ9">Unsubscribe</a>.<br>
<br>
308 E. 5th Ave, Vancouver BC V5T 1H4
</div>

</div>
</td>
</tr></tbody></table></div>
<!--[if mso]></td></tr></table><![endif]-->
</td></tr></tbody></table></div>
<!--[if mso]></td></tr></table><![endif]-->
</div>

<img src="https://u6633630.ct.sendgrid.net/wf/open?upn=Gg18vAg4up-2B-2Fu4p-2BP0ZOKOCDtqVRpCzEm2MzqLQzupuDZ-2BUygTzP1k0N71hWiiZcQXXY1csMWs0YlVYXsUTXPgXlCy4Ifyp-2BqdzOBxtv-2BJxiolqcHpMMIJOTCpgqh4ZQBna1izfoDDX2x5KxQZymShIYh8tkVw8qXd6oudhGk3VtMX0ub57UQmT9D6jYAjZSsq-2BCtpOKlLABVmOsLDZ4yIlt0Qeg8jDjsRFoR0aFRL2AOkPINWd3W6bFTCnzw5sblNuyOHmCdAvGuwKmcu1es3edI6HzbsrReuV9Tx9NFC7G0vvKV02YnP2GcypZMeS1tbJ1UfTTJjCe4Gn4G3FGsukUNNs7wn7QuAXC9A2U00OyybVgbE1qlLTaj4IR1ZaUbxqp879l3RL6RSfAQ-2FByMcAbCBdP7pBADiwjNMBbwGvDK6cF3hdnapPkfmEwB70R-2BISUGpyDZnoLwxrxR4SzuYaIAxTeZXjYgKa98HIR-2BWeQs5yndVGk7-2FXGraY99KjQxQxlj4FuaIe-2FOP9LERpZ7w-3D-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;" id="1553734647374">
</body></html>