[Gelistirici] fetcher.fetch_url(), file.File.download() ve Bütünlük Kontrolü
Bahadır Kandemir
bahadir at pardus.org.tr
1 Kas 2010 Pzt 09:43:59 EET
Pazartesi 01 Kasım 2010 günü (saat 09:25:19) Fatih Aşıcı şunları yazmıştı:
> Kodun geri kalanı, izlediğimiz kod stiline zaten uymadığı için
> şimdilik stil düzeltmelerini es geçiyorum.
Kod stili derken? :) PEP-8 uyumu yok, "file" adında bir modülümüz var,
"os.path.join" kullanmayın kuralına rağmen ~150 yerde kullanılmış, stile uymak
için ben de öyle yaptım :D
> newfile yerine tmpfile desek daha anlamlı olacak sanki.
fetcher içinde destname kullandım, ama file içinde kararsız kalıp newfile
dedim. tmpfile iyi bir isim değil bence, "tempfile" ile karıştırılabilir.
> Bir de
> aşağıdaki şekilde
> sadeleştirilebilir:
>
> if uri.is_remote_file() or copylocal:
> tmpfile = check_integrity and uri.filename() +
> ctx.const.temporary_suffix
> localfile = pisi.util.join_path(transfer_dir, tmpfile or
> uri.filename())
Bu kalıbı hiç kullanmadım daha önce, ama sevdim, kullanalım.
> > + def clean_temporary():
> > + corrupt_files = [sha1_file]
> > + if check_integrity:
> > + corrupt_files.append(localfile)
>
> Listenin adını temp_files yapsak daha iyi olur. Sum dosyası bozuk değil
> aslında.
Evet, bu daha iyi.
> > if sha1sum:
> > if (pisi.util.sha1_file(localfile) != newsha1):
> > + clean_temporary()
> >
> > raise Error(_("File integrity of %s compromised.") %
> >
> > uri)
>
> fetcher exception verdiğinde de clean_temporary() çağrılacak
> mı/çağrılmalı mı
> acaba? Fetcher exception'ları yakalanmıyor download() içinde. Eğer
> exception
> alınırsa bu code path'e hiç girmeyecek.
Hedef dizin olarak depo dizini kullanıldığı için, geçici dosyaların orada
durması hoşuma gitmedi. Başka bir dizin kullanılabilir belki bunun için.
--
Bahadır Kandemir
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi