jueves, 23 de septiembre de 2010

TabCompletion & color en la consola Interactiva de IronPhyton

IronPython como muchos saben es python corriendo bajo .NET, este trae una consola bastante comoda sobre todo para los que vienen de python.

la consola la llamamos asi:

"C:\Program Files\IronPython 2.6\ipy.exe"




ahora uno desearía que con tab o otra tecla este predijera o auto completara por ejemplo los métodos que tiene una clase y ademas podemos indicarle que la consola sea en colores:

"C:\Program Files\IronPython 2.6\ipy.exe" -X:TabCompletion -X:ColorfulConsole



--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

Partiendo con IronPython & mediendo de forma elegante los tiempos.

Hace tiempo que me quiero meter a python, pero no he tenido mucho tiempo. hace un tiempo Paul Beltran encontró la forma de medir de forma un poco mas elegante que restar las fechas que normalmente seria de la siguiente forma.

IronPython

from System import DateTime
from System import TimeSpan
ini = DateTime.Now
for x in range(10):
print x

print "En hacer un for se demoro-->" + str (DateTime.Now - ini )


csharp

var ini = DateTime.Now;
for (var i =0; i<10; i++)
Console.WriteLine(i);
Console.WriteLine("En hacer un for se demoro " + (DateTime.Now - ini));


pero hay un de hacer eso un poco mas elegante, que restando los datetime. usando System.Diagnostics.Stopwatch
de la siguiente forma

IronPython

from System import Diagnostics
timer = Diagnostics.Stopwatch.StartNew()
for x in range(10):
print x

timer.Stop()
print "En hacer un for se demoro-->" + str (timer.Elapsed )


el Resultado en la Consola es el siguiente:

>>> from System import Diagnostics
>>> timer = Diagnostics.Stopwatch.StartNew()
>>> for x in range(10):
... print x
...
0
1
2
3
4
5
6
7
8
9
>>> timer.Stop()
>>> print "En hacer un for se demoro-->" + str (timer.Elapsed )
En hacer un for se demoro-->00:00:00.0240301


en csharp

var timer = System.Diagnostics .Stopwatch.StartNew();
for (var i =0; i<10; i++)
Console.WriteLine(i);
timer.Stop();
Console.WriteLine("En hacer un for se demoro " + (timer.Elapsed));


Stopwatch tiene metodos stop, start, reset, para gestionar de cuando queremos de que el tiempo corra.


si bien aqui los ejemplos son bien básicos, solo un for, el uso mas común creo yo es saber cuanto se demora un método, un webservice, o por que no una consulta sql.



--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com