Slide 1

Slide 1 text

import antigravity ImportError: No module named antigravity Roberto Alsina - [email protected]

Slide 2

Slide 2 text

Objetivo de la charla • Que vean cosas que no vieron antes • Que se pongan a buscar en PyPI • Que me digan que encuentran Roberto Alsina - [email protected]

Slide 3

Slide 3 text

Primer módulo: inline ¿Cuándo sirve? Roberto Alsina - [email protected]

Slide 4

Slide 4 text

Primer módulo: inline ¿Cuándo sirve? • ¿Python es demasiado lindo para vos? Roberto Alsina - [email protected]

Slide 5

Slide 5 text

Primer módulo: inline ¿Cuándo sirve? • ¿Python es demasiado lindo para vos? • ¿Python es demasiado lento para vos? Roberto Alsina - [email protected]

Slide 6

Slide 6 text

Primer módulo: inline ¿Cuándo sirve? • ¿Python es demasiado lindo para vos? • ¿Python es demasiado lento para vos? • ¡Usá C inline! Roberto Alsina - [email protected]

Slide 7

Slide 7 text

Primer módulo: inline >>> from instant import inline >>> add_func = inline("double add(double a, double b){ return a+b; }") >>> print add_func(2, 5.2) 7.2 Pasemos al código... Roberto Alsina - [email protected]

Slide 8

Slide 8 text

Primer módulo: inline ¿Es más rápido? Depende... • example1.py • example2.py • example1.1.py Roberto Alsina - [email protected]

Slide 9

Slide 9 text

Primer módulo: inline ¿No es molesto que no vemos cuanto falta mientras corre esos loops? Roberto Alsina - [email protected]

Slide 10

Slide 10 text

Segundo módulo: progressbar from progressbar import ProgressBar for i in progress(range(100)): ... En acción: example3.py 60% |############################## | Roberto Alsina - [email protected]

Slide 11

Slide 11 text

Segundo módulo: progressbar ¡Aburrido! Roberto Alsina - [email protected]

Slide 12

Slide 12 text

Tercer módulo: colorama • Colores en terminal de forma portable Demo en pantalla: example4.py Roberto Alsina - [email protected]

Slide 13

Slide 13 text

Tercer módulo: colorama ¡Esto son pavadas, quiero substancia! Roberto Alsina - [email protected]

Slide 14

Slide 14 text

Cuarto módulo: contract • Programación por contrato • precondiciones y postcondiciones • Usa los docstrings Roberto Alsina - [email protected]

Slide 15

Slide 15 text

Cuarto módulo: contract pre: # must be a list isinstance(a, list) post[a]: # length of array is unchanged len(a) == len(__old__.a) # all elements given are still in the array forall(__old__.a, lambda e: __old__.a.count(e) == a.count(e)) # the array is sorted forall([a[i] >= a[i-1] for i in range(1, len(a))]) Roberto Alsina - [email protected]