1. La opción de línea de comando -m permite ejecutar un módulo como si fuera un programa. Cuando se ejecuta así un módulo que está dentro de un paquete, las importaciones relativas no funcionaban correctamente. Las importaciones relativas permiten a un módulo importar otros módulos dentro de un paquete usando rutas relativas, lo que permite cambiar la ubicación de todo el paquete a otra rama del sistema de directorio sin problemas.

    Este error se ha corregido en Python 2.6 añadiendo un atributo __package__ a los módulos. Si este atributo está definido en el módulo, las importaciones relativas se realizarán en relación a su valor, en vez de al valor del atributo __name__.

    Los importadores definidos según la PEP 302 pueden definir el atributo __package__ como crean necesario. El módulo runpy, que implementa la opción -m ya lo hace, de modo que si tenías módulos que actuaban también como programas y hacían uso de la importación relativa, ahora funcionan. Este cambio no implica, por lo tanto, ningún problema para la migración de nuestro código.

    Importaciones relativas

    Para ampliar un poco el tema de las importaciones relativas, añado un extracto del PEP-328 (Imports: Multi-Line and Absolute/Relative).

    Después de una interesante y amplia discusión, se ha aceptado que los imports relativos usarán puntos como prefijos para indicar los niveles de anidamiento. Un único punto indica que es un import relativo, y se refiere al nivel actual. Dos o más puntos indican padres y demás ascendientes del nivel actual, indicando cada nivel con un punto. Por ejemplo, si tuviéramos la siguiente estructura en nuestro paquete (con perdón):

    package/
        __init__.py
        subpackage1/
            __init__.py
            moduleX.py
            moduleY.py
        subpackage2/
            __init__.py
            moduleZ.py
        moduleA.py
    

    Y suponiendo que el fichero actual es moduleX.py o subpackage1/__init__.py, los siguientes ejemplos de importación relativa son válidos:

    from .moduleY import spam
    from .moduleY import spam as ham
    from . import moduleY
    from ..subpackage1 import moduleY
    from ..subpackage2.moduleZ import eggs
    from ..moduleA import foo
    from ...package import bar
    from ...sys import path
    

    Obsérvese que, aunque el último ejemplo es válido, está claramente desaconsejado (Guido lo definió como "chaladura").

    Las importaciones relativas siempre deben usar la forma from X import; la forma import X siempre es absoluta. También debe quedar claro que se puede seguir haciendo importaciones absolutas con la primera forma, solo hay que excluir los puntos prefijos.

    2

    Ver comentarios

  2. Seguir los items compartidos en GReader de los colegas es como abrir una caja llena de sorpresas, siempre hay referencias interesantes.



    Hoy, mirando los de Yon Macklein, he visto un post del blog Series Adictos, en el que ponen unas capturas de pantalla de la parodia de la intro de Madmen por los Simpsons:




    Esta es la intro original de Madmen:


    Los dos vídeos duran 37 segundos y son milimétricos, prueba a darle play a los dos vídeos a la vez.


    Por cierto, Madmen es una serie muy recomendable, si quieres saber más mira este post en Espoiler.

    4

    Ver comentarios

  3. En la versión anterior, Python 2.5, se añadió la sentencia with como una capacidad opcional, por lo que debíamos activarla explícitamente con una directiva from __future__ import. En esta nueva versión viene activada por defecto. La única incompatibilidad con nuestro código sería que tuviéramos definida alguna variable/función/clase/loquesea con el nombre with (Mala idea, por cierto). Si fuera este el caso, renombrando la variable resolveríamos el problema. Cualquier IDE moderno nos permitirá cambiar el nombre de la variable, aunque aparezca en varios ficheros.

    Por lo demás, la explicación de qué es y para qué sirve esta nueva sentencia es idéntica a la que se se dio en su día cuando se introdujo esta capacidad en Python 2.5. Podemos, por tanto, consultar esta detallada explicación de la sentencia with en Python.

    0

    Añadir un comentario

  4. Siempre me han gustado los mashups, mezclar cosas y hacer que encajen, eso unido a un amplio y diverso espectro de gustos, hace que, por ejemplo, me guste bastante el grupo de tralla System of a Down (SOAD) e igualmente me mole El Chavo del 8.

    Pero ojo, una cosa no tiene nada que ver con la otra, o si:



    La cancion de Shop Suey de System of a Down parodiada por el chavo del ocho.
    4

    Ver comentarios

  5. Dado que esta noche es el Blogs & Gofio XVIII y en calidad de servicio público autorreferente, la redacción de EOE, dedica este post a los blogs molones:

    Hay ocasiones en las que uno se encuentra con un blog, ya sea por recomendación o por puro azar. Y nada más terminar de leer el primer post, empiezas a recorrerlo hacia atrás hasta llegar al primero. Esto pasa muy pocas veces, pero casualmente hace unos días me ocurrió con dos estupendos road blogs.



    El primero de ellos es Doraemon por el mundo, un spin-off de MMM&E. No es estrictamente un road blog, es más bien un tema tipo gnomo de amelie, pero protagonizado por la deidad azul. Donde podremos ver sonrisas doraemitas en todos los rincones del mundo y el extranjero: América, Asia, Cameos, Canarias, España, Europa, Eventos deportivos, Eventos históricos, eventos musicales, Fiestas, Las Aventuras de Doraemon, Medios de comunicación, Series TV, Varios y África.


    Aquí, Doraemon bendiciendo los Sanfermines.

    Por cierto, hay un grupo en flickr llamado Everybody loves Doraemon!, es cierto, everybody.




    El segundo es ¡A todo caucho!, un roadtrip por la américa profunda, con un objetivo claro y definido: intentar conseguir 120 retos por la américa bastarda. La cosa es bien sencilla, tienen una lista de retos y una ruta actualizada y luego van posteando sus aventuras, los retos conseguidos, los semi-completados y los fallidos.


    Aquí, echando unos centavos en la máquina de Zoltar

    Dejen lo que estén haciendo ahora mismo y visiten estos blogs.
    1

    Ver comentarios

  6. Me pasa Jose Frechín, de Túnel Carpiano un meme de esos: La canción de tu vida. Asunto peliagudo, porque sólo se permite elegir una -a menos que hagas trampa, claro.

    Esta es mi elección: Los hermanos Elwood y Jake Blues, también conocidos como The Blues Brothers, interpretan Everybody Needs Somebody to love. Los pelos como escarpias, oiga. Si no te entran ganas de marcha oyendo este tema, es que no tienes sangre en las venas (No es correcto inferir lo contrario, es decir, se puede ser robot, vampiro, zombie o muerto viviente y, aun así, gustarte la canción).

    (Me ha costado un egg y parte del otro encontrar el vídeo original de la pelicula, todo el mundo se dedica a hacer montajes hoy en día)

    Le paso el Meme a la muchachada de Malditas Mentiras (A todos, ojo), a El infierno es aquí y a Nexus 6.

    0

    Añadir un comentario

  7. El elevado número de asistentes obliga a ir a un sitio más amplio, así que se ha cambiado el lugar de la convocatoria a la Trattoria Da Stefano, C/Marqués de Celada, 45 (San Cristobal de La Laguna). Pasen la voz. Más detalles en el blog convocante, La gaveta de la derecha - B&GXVIII - Acción evasiva.

    0

    Añadir un comentario

  8. UML es el estándar de facto para que los informáticos hagamos nuestros dibujitos (Hay una explicación un poco más seria en la Wikipedia: Lenguaje Unificado de Modelado). Define varios diagramas, que se usan para representar o modelar diferentes aspectos o partes de un sistema informático.

    Uno de ellos, el Diagrama de secuencia, se usa para modelar la interacción de distintas partes del sistema en el tiempo (Dicho así, asusta, pero en realidad es una chorrada). El caso es que navegando por Internet encontré un servicio que permite generar estos diagramas a partir de una descripción textual. El servicio es www.websequencediagrams.com.

    Soy un firme convencido de que como mejor se entienden las cosas es con un ejemplo. El siguiente fragmento de texto:

    Alice-->Bob: Una caña, por favor
    note right of Bob: Bob sirve una caña fría
    Bob->Alice: Cerveza
    Alice-->Bob: Gracias, saleroso
    Bob-->Alice: A Mandar
    Alice->Alice: Glub, glub, glub
    

    Se convierte es este lindo diagrama:

    ¡Deja ya de ensuciar servilletas en el bar con tus diagramas de secuencia! ¡Usa www.websequencediagrams.com! ¡O no, como prefieras!

    7

    Ver comentarios

  9. Esther, de Atarecos, me sugirió seguir con Rorschach en mi serie de dibujos al estilo Bruce Timm, serie que seguira hasta que me aburra o Bruce Timm se entere, lo que pase antes. Aquí esta la criatura:

    Rorschach a lo Bruce Timm

    El siguiente creo que será el bueno del Doctor Manhattan, que será más fácil.

    PD: Vespinoza, sigo trabajando en el Capitán Fosferno, en breve espero poder enseñar algo.

    2

    Ver comentarios

  10. La documentación original de Python se preparó usando LaTeX, y llevaba así desde sus inicios, en 1989. Por entonces la documentación se preparaba para ser impresa, más que para ser vista en pantalla. Una de las principales virtudes de LaTeX es su capacidad para generar una salida impresa atractiva, a la vez que resultaba relativamente fácil de escribir, una vez que se aprendían las reglas elementales.

    LaTeX es todavía una de las mejores opciones para preparar textos impresos, pero el entorno de herramientas de los desarrolladores ha cambiado. Ahora es más frecuente usar el navegador, en vez de imprimir toda la documentación de una vez. Es por ello que Html se ha convertido en el principal formato de salida.

    Desgraciadamente, convertir LaTeX a Html ha demostrado ser un asunto farragoso, y Fred L. Drake Jr., que lleva bastante tiempo como editor de la documentación, perdía mucho tiempo en la conversión. De vez en cuando la gente sugería pasarse a SGML o XML, pero una conversión correcta implicaba también un trabajo considerable que, por una razón u otra, nunca se llevó a cabo.

    Durante el ciclo de desarrollo de la versión 2.6, Georg Brandl trabajó arduamente en preparar un nuevo sistema de documentación, llamado sphinx, y disponible en http://sphinx.pocoo.org/ El punto fuerte de Sphinx es la generación de código HTML moderno y atractivo. La salida impresa sigue siendo posible, mediante conversión a LaTeX. El formato de entrada es reStructuredText, que es un formato de marcado, con posiblidad de definir nuevas extensiones y directivas, y ampliamente usado en la comunidad Python. Sphinx es un proyecto con existencia independiente, y ha sido usado para escribir la documentación de, por ahora, casi dos docenas de proyectos diferentes.

    0

    Añadir un comentario

Archivo del blog
Etiquetas
Etiquetas
Enlaces interesantes
Cargando