[Gelistirici] autoxml ve pisi upgrade sorunu

Faik Uygur faik at pardus.org.tr
14 Mayıs 2007 Pzt 15:31:59 EEST


On Monday 14 May 2007 12:13:45 Faik Uygur wrote:
[...]
>
> * pisi ilk çalıştığında, import pisi.specfile ve benzeri metaclass içeren
> modüller ile metaclass ları generate ediliyor. pisi reload edildiğinde bu
> modüller yeniden import edilmesine rağmen metaclasslar yeniden generate
> edilmiyor. Neden olabilir?
>
> * autoxml __init__ çalışıyor (sonlandığı yer: gen_attr_member) bu akışta,
> ama "generation class X" debug print'i basılmıyor.

Bunlar yanlış. Metaclass'lar yeniden generate ediliyor. Print de edilebiliyor. 
Buradaki yanılgı şuymuş. Sürüm 67 ile birlikte autoxml.py extract sonrası 
eziliyor ve reload edilince debug printlerim de gidiyormuş o dosyadan :).. 
Bunlar da sorun yok.

> * Sorun yine bir şekilde inspect modül kodu ile alakalı görünüyor. Sırayı
> belirleyen inspect kodunu kaldırdığımda sorun kalmıyor. Nasıl bir ilişkisi
> olduğunu anlayamadım.

Buradaki problemin kaynağı da bu satırlar:

            lines = filter(fn, inspect.getsourcelines(cls)[0])
           decl_order = map(lambda x:x.split()[0], lines)
...
           order = filter(lambda x: not x.startswith('s_'), decl_order)


Tüm .py dosyaları extract sonrası değişmesine rağmen bir şekilde inspect eski 
dosya'nın içeriğini dönüyor. Ve order içerisi:

order: ['a_target', 'a_permission', 'a_owner', 'a_group']

görünüyor. Halbuki yeni specfile.py dosyası içerisindeki Patch classında 
a_target lı bir member (bir satır) yok.

İlginç bir şekilde inspect eski dosya'nın içeriğini dönüyor.

- Faik



Gelistirici mesaj listesiyle ilgili daha fazla bilgi