<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bitácora de Vuelo (Publicaciones sobre fades software Python infoauth)</title><link>http://blog.taniquetil.com.ar/</link><description></description><atom:link rel="self" href="http://blog.taniquetil.com.ar/categories/fades-software-python-infoauth.xml" type="application/rss+xml"></atom:link><language>es</language><copyright>Contents © 2018 &lt;a href="mailto:facundo@taniquetil.com.ar"&gt;Facundo Batista&lt;/a&gt; CC BY-NC-SA</copyright><lastBuildDate>Sun, 22 Apr 2018 12:20:57 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Actualización y nuevo proyecto</title><link>http://blog.taniquetil.com.ar/posts/0757/</link><dc:creator>Facundo Batista</dc:creator><description>&lt;div&gt;&lt;div class="section" id="fades"&gt;
&lt;h2&gt;fades&lt;/h2&gt;
&lt;p&gt;Después de casi un año, con &lt;a class="reference external" href="https://twitter.com/gilgamezh"&gt;Nico&lt;/a&gt; liberamos una &lt;a class="reference external" href="https://fades.readthedocs.io/en/release-7-0/"&gt;nueva versión de fades&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;¿Qué hay de nuevo en esta release?&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Revisar si todo lo pedido está realmente disponible en PyPI antes de comenzar a instalarlo&lt;/li&gt;
&lt;li&gt;Ignora dependencias duplicadas&lt;/li&gt;
&lt;li&gt;Varias mejoras y correcciones en los mensajes que &lt;cite&gt;fades&lt;/cite&gt; muestra en modo verbose&lt;/li&gt;
&lt;li&gt;Prohibimos el mal uso de &lt;cite&gt;fades&lt;/cite&gt;: instalarlo en legacy Python y ejecutarlo desde adentro de otro virtualenv&lt;/li&gt;
&lt;li&gt;Un montón de mejoras relacionadas al proyecto en sí (pero no directamente visibles para el usuario final) y algunas pequeñas otras correcciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class="reference external" href="https://fades.readthedocs.io/en/release-7-0/readme.html#how-to-install-it"&gt;Pruébenlo&lt;/a&gt;.&lt;/p&gt;
&lt;img alt="Loguito de fades :)" src="http://www.taniquetil.com.ar/facundo/imgs/fades-logo.png"&gt;
&lt;/div&gt;
&lt;div class="section" id="infoauth"&gt;
&lt;h2&gt;infoauth&lt;/h2&gt;
&lt;p&gt;&lt;cite&gt;infoauth&lt;/cite&gt; es un un pequeño pero práctico módulo de Python y script para grabar/cargar tokens a/desde disco.&lt;/p&gt;
&lt;p&gt;Esto es lo que hace:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;graba tokens en un archivo en disco, pickleado y zippeado&lt;/li&gt;
&lt;li&gt;cambia el archivo a sólo lectura, y sólo legible por vos&lt;/li&gt;
&lt;li&gt;carga los tokens de ese archivo en disco&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En qué casos este módulo es útil? Digamos que tenés un script o programa que necesita algunos tokens secretos (autenticación de mail, tokens de Twitter, la info para conectarse a una base de datos, etc...), pero no querés incluir estos tokens en el código, porque el mismo es público, entonces con este módulo harías:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
tokens = infoauth.load(os.path.expanduser("~/.my-tokens"))
&lt;/pre&gt;
&lt;p&gt;Fijate que el archivo va a quedar legible sólo por vos y no en el directorio del proyecto (así no tenés el riesgo de compartirlo por accidente).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;CUIDADO&lt;/em&gt;: &lt;cite&gt;infoauth&lt;/cite&gt; NO protege tus secretos con una clave o algo así, este módulo NO asegura tus secretos de ninguna manera. Sí, los tokens están enmarañados (porque se picklean y comprimen) y otra gente quizás no pueda accederlos fácilmente (legible sólo por vos), pero no hay más protección que esa. Usalo bajo tu propio riesgo.&lt;/p&gt;
&lt;p&gt;Entonces, ¿cómo usarlo desde un programa en Python? Es fácil, para cargar la data:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
import infoauth
auth = infoauth.load(os.path.expanduser("~/.my-mail-auth"))
# ...
mail.auth(auth['user'], auth['password'])
&lt;/pre&gt;
&lt;p&gt;Para grabarla:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
import infoauth
secrets = {'some-stuff': 'foo', 'code': 67}
infoauth.dump(secrets, os.path.expanduser("~/.secrets"))
&lt;/pre&gt;
&lt;p&gt;Fijate que como grabar los tokens es algo que normalmente se hace una sola vez, seguro es más práctico hacerlo desde la linea de comandos, como se muestra a continuación...&lt;/p&gt;
&lt;p&gt;Por eso, ¿cómo usarlo desde la linea de comandos? Para mostrar la info:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ infoauth show ~/.my-mail-auth
password: ...
user: ...
&lt;/pre&gt;
&lt;p&gt;Y para grabar un archivo con los datos:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ infoauth create ~/.secrets some-stuff=foo code=67
&lt;/pre&gt;
&lt;p&gt;Fijate que al crear el archivo desde la linea de comandos tenemos la limitación de que todos los valores almacenados van a ser cadenas de texto; si querés grabar otros tipos de datos, como enteros, listas, o lo que quieras, tendrías que usar la forma programática que se muestra arriba.&lt;/p&gt;
&lt;p&gt;Esta es la &lt;a class="reference external" href="https://github.com/facundobatista/infoauth"&gt;página del proyecto&lt;/a&gt;, y claro que &lt;a class="reference external" href="https://pypi.python.org/pypi/infoauth/"&gt;está en PyPI&lt;/a&gt; así que se puede usar sin problema desde &lt;cite&gt;fades&lt;/cite&gt; (guiño, guiño).&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description><category>fades software Python infoauth</category><guid>http://blog.taniquetil.com.ar/posts/0757/</guid><pubDate>Mon, 19 Mar 2018 21:01:00 GMT</pubDate></item></channel></rss>