Re: [python] kterak vhodne resit architekturu IMAP klienta

2006-09-05 Tema obsahu Jan Matejka
Dobrého dne,
jsa asi ovlivněn modelem dokument-view 
bych to videl spis tak, ze mailbox bude s UI komunikovat primo
prostrednicvim metod mailboxu volanych z UI a callbacku kterym
bude mailbox oznamovat UI, ze ze se v mailboxu něco zmenilo.
IMHO oddelovat UI od mailboxu frontou nemá smysl protože UI
potrebuje pro zobrazovaní okamzitou odpoved relevantnich dat
nebo odpoved data nejsou k dispozici.
Naopak parser bych nechal bezet ve zvlastnim threadu. Snazil
bych se o to, aby daval data v takove podobe, aby sly rychle
zaradit do datovych struktur mailboxu, aby aktualizacemi 
mailboxu nebylo blokovano UI.

zdravic Jan Matejka



 Ted resim problem, jak maji tyhle tri slupky spolu 
 komunikovat. Jako uplne prvni vec me napadlo to, ze kazda z 
 nich pobezi ve vlastnim threadu a vsechno si budou rikat pres 
 Queue.Queue (vzdy dvojice mezi jednotlivymi slupkami). Po 
 zapnuti mozku mi ale doslo, ze se Parser a Mailbox daji 
 krasne sloucit - proste v ramci jednoho cyklu thread 
 zkontroluje, jestli po nem neco nechce UI nebo jestli neco 
 neprislo od IAMP serveru.
 
 Zbyva teda vyresit, co s komunikaci mezi Mailboxem a UI. 
 Premyslim o dvojici front, pro kazdy smer jednu. Ve smeru UI 
 - Mailbox proudi prikazy typu smaz zpravu XYZ, ukaz mi 
 razeni do threadu ci dej mi hlavicky zpravy cislo 12, 
 opacne data jako treti megabajt sedme prilohy zpravy cislo 
 13 je \x00...
 

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] kterak vhodne resit architekturu IMAP klienta

2006-09-05 Tema obsahu Jan Kundrát
Jan Matejka wrote:
 Dobrého dne,
 jsa asi ovlivněn modelem dokument-view 
 bych to videl spis tak, ze mailbox bude s UI komunikovat primo
 prostrednicvim metod mailboxu volanych z UI a callbacku kterym
 bude mailbox oznamovat UI, ze ze se v mailboxu něco zmenilo.

Ahoj, zkusim nad tim zapremyslet. Model-View-Controller uz jsem taky cet :)

 IMHO oddelovat UI od mailboxu frontou nemá smysl protože UI
 potrebuje pro zobrazovaní okamzitou odpoved relevantnich dat
 nebo odpoved data nejsou k dispozici.

Potrebuju chovani ok, mas tu data, data budou za chvili nebo chyba.

 Naopak parser bych nechal bezet ve zvlastnim threadu.

Jake by to melo vyhody?

 Snazil
 bych se o to, aby daval data v takove podobe, aby sly rychle
 zaradit do datovych struktur mailboxu, aby aktualizacemi 
 mailboxu nebylo blokovano UI.

Mno, mne se libi to, ze Parser fakt jenom parsuje. Kvuli celkem
komplikovane architekture IMAPu se dost brutalni logice v Mailboxu nevyhnu.

Diky za reakci,
-jkt

-- 
cd /local/pub  more beer  /dev/mouth



signature.asc
Description: OpenPGP digital signature
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

[python] Deleni retezce

2006-09-05 Tema obsahu Martin Jedlička
Zdravim, mel bych takovy dotaz. Potreboval bych vedet, jak dlouhy 
retezec rozdelim na mensi (vlozim enter misto mezery, pokud je retezec 
delsi jak nejaka delka). Mam proste dlouhy string a potreboval bych ho 
rozdelit na na vice stringu oddelene entrem. Enter vkladat vzdy, kdy je 
retezec napr. delsi nez 100 znaku. Zacal jsem tak, ze spocitam pocet 
slov a znaku retezce, ale nevim, jak dal (jak spravne vkladat ty entery).

Diky za kazdou radu.

Martin


___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Deleni retezce

2006-09-05 Tema obsahu slacker
Ahoj,

  já to pochopil nějak takto:

-- wordwrap.py --
#!/usr/bin/python
# -*- coding: utf-8 -*-

def doTextWrapping(text, lineLen = 80):
 currentLen = 0
 result = []
 line = []
 for word in text.split():
 wordLen = len(word) + 1
 currentLen = currentLen + wordLen
 if currentLen = lineLen:
 result.append(' '.join(line))
 currentLen = wordLen
 line = []
 line.append(word)
 result.append(' '.join(line))
 return '\n'.join(result)

if __name__ == __main__:
 veta = Toto je velice dlouha veta, ktera by mela byt rozdelena
na nekolik radek dlouhych maximalne 25 znaku.
 print doTextWrapping(veta, 25)

-- wordwrap.py --

S pozdravem
slacker

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Deleni retezce

2006-09-05 Tema obsahu Martin Jedlička
to je presne ono, diky moc.

Martin

Stefan Oravec napsal(a):
 ako som to ja pochopil tak domotal :D

 def foo(text, treshold):
  result = []
  buff = []
  for word in text.split():
  if len(' '.join(buff + [word]))  treshold:
  result.append(' '.join(buff))
  buff = [word]
  else:
  buff.append(word)
  result.append(' '.join(buff))
  return result

 if __name__ == '__main__':
  text = '''foo bar
  johoho'''
  print text.split()
  print foo(text, 10)
  print foo(text, 5)

 S.

 Quoting Petr Vaněk [EMAIL PROTECTED]:

   
 Dne úterý 05 září 2006 14:39 Martin Jedlička napsal(a):
 
 Zdravim, mel bych takovy dotaz. Potreboval bych vedet, jak dlouhy
 retezec rozdelim na mensi (vlozim enter misto mezery, pokud je retezec
 delsi jak nejaka delka). Mam proste dlouhy string a potreboval bych ho
 rozdelit na na vice stringu oddelene entrem. Enter vkladat vzdy, kdy je
 retezec napr. delsi nez 100 znaku. Zacal jsem tak, ze spocitam pocet
 slov a znaku retezce, ale nevim, jak dal (jak spravne vkladat ty entery).
   
 s = '''foo bar
   
 ... jambadadam'''
 
 s
   
 'foo bar\njambadadam'
 
 l = s.split()
 l
   
 ['foo', 'bar', 'jambadadam']
 
 n = '\n'.join(l)
 n
   
 'foo\nbar\njambadadam'
 
 print n
   
 foo
 bar
 jambadadam

 pokud vyzadujes, aby se pred tim zkontrolovala delka reteze, pak
 if len(s)  100:
 l = s.split()

 ale mozna jsem se domotal v zadani ;)

 neni treba dekovat, mam rad bilou cokoladu...
 p.

 



 --
 application/x-person
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python
   
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python