sexta-feira, outubro 19, 2007

Esperando um pouco por uma função

Navegando randomicamente pela web, acabei esbarrando numa classe do módulo threading(pretendo fazer um post sobre Threads breve) que é bem legal. Passamos um tempo para que uma função(callable) seja chamada. Com um exemplo fica mais fácil:

>>> from threading import Timer
>>> def ola():
... print 'ola!'
...
>>> t = Timer(5, ola)
>>> t.start() #espera 5 segundos
>>> ola!

Depois de criado o objeto Timer(), chamamos seu método start() para começar a esperar. Caso precise parar no meio da espera, tem o método cancel(), além de vários outros....

>>> dir(t)
['_Thread__args', '_Thread__block', '_Thread__bootstrap', '_Thread__daemonic', '_Thread__delete', '_Thread__exc_info', '_Thread__initialized', '_Thread__kwargs', '_Thread__name', '_Thread__started', '_Thread__stderr', '_Thread__stop', '_Thread__stopped', '_Thread__target', '_Verbose__verbose', '__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__', '_note', '_set_daemon', 'args', 'cancel', 'finished', 'function', 'getName', 'interval', 'isAlive', 'isDaemon', 'join', 'kwargs', 'run', 'setDaemon', 'setName', 'start']

Leia mais aqui

quarta-feira, outubro 17, 2007

Esperando o Ubuntu 7.10

A partir de amanhã a nova versão do Ubuntu, o 7.10(Gutsy Gibbon), que trará várias vantagens, estará disponível para download.

Fiz um programinha pra esperar a alteração da página dos downloads...taí pra quem quiser começar a baixar assim que sair(como eu :P)


#-*- coding: utf-8 -*-

# esperando o lançamento do Ubuntu 7.10 :-)

from urllib import urlretrieve, urlopen
from os import system
from time import sleep
from sys import exit

def save_old():
'''Salva a pagina atual do site de downloads'''
print 'salvando pagina antiga'
urlretrieve('http://br.releases.ubuntu.com/7.10/','UBUNTU.html')
print 'pagina antiga salva'

def espera():
'''Entra na pagina a cada 10 min, e verifica se a pagina mudou'''
try:
old = open('UBUNTU.html').read()
except IOError:
print 'Eh preciso salvar a pagina na primeira vez...'
exit(0)

while True:
print 'vamos verificar'
new = urlopen('http://br.releases.ubuntu.com/7.10/').read()
if new != old:
system('firefox http://br.releases.ubuntu.com/7.10/')
print 'SAIUUUU!!!!'
exit(0)
print 'Ainda nao foi dessa vez...'
sleep(600)


opcao = raw_input('Salvar a pagina atual para comparacao(s/n): ').lower()
if opcao != 's' and opcao != 'n':
print 'Opcao invalida'
exit(0)
if opcao == 's':
save_old()
espera()
else:
espera()