[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