diff --git a/RefactorPlan b/RefactorPlan deleted file mode 100644 index acfadacf..00000000 --- a/RefactorPlan +++ /dev/null @@ -1,72 +0,0 @@ - -Here we take notes of the strange stuff, so we can refactor them after -Pardus 2007 release. - - -==> Locale support -* bindtextdomain and textdomain calls are not necessary, because -gettext.translation() dont use them. - -* setlocale call is probably necessary for some stuff, but not for -message translation, it seems gettext.translation() api looks for -environment LC_ALL, LC_MESSAGES anyway. - -* pygettext.py shouldn't be needed at all. Plain xgettext works with -python source. - - -==> Utility functions -* sha1_file is suboptimal for binary files and sha1_data has some -exception confusion. These two functions should be a lot simpler. - -* get_file_hashes is overly complex and contains strange code like: -for r, d, f in os.walk(parent, topdown=False): pass - -* dir_size tries to calculate symlink lengths, this is probably not very -helpful, since in most cases, they fit in the inode, and wont take any -extra space at all. We can keep the number of file in the index though. -That way we can calculate package size + (nr of files * inode size of fs) -to give a more correct required disk size. - -* what the heck is unzip there? it is not even used at all and defined like: -def unzip(seq): - return zip(*seq) - - -==> code readability -* Public functions should contain doc strings. - -* Python builtins like file, list, etc should be avoided in variable names. -There is even a file.py module! - -* a,b,c,d,f,r,_i are equally bad. - -* some import'ed modules are not used inside the importer modules, cleanup needed. - -* Would be very good if we can avoid "from x import y" form, it makes it -harder to reload modules. - - -==> exceptions -* Current model is bad. Exception names should tell what is the error type. Instead -we have one Error exception in every module. If I call pisi.api.install("lala"), -I should get pisi.api.PackageNotFound or pisi.install.PackageNotFound or something -like that. For every kind of error, you get pisi.api.Error now, and only way to find -out exact error is try to parse error string (which is localized). - -* class Exception(Exception) is evil. - -* There shouldn't be a bare Except: clause in pisi modules. - - -==> database -* brr... - - -==> class attributes -* In some classes there are some attributes assigned but never -used. (see remove_unused_attributes.patch) - -* PiSi uses heavy classes and creates thousands of instances of them - (Package, Metadata, Dependency, ...). These classes should define - __slots__ to reduce the heap used. \ No newline at end of file diff --git a/remove_unused_attributes.patch b/remove_unused_attributes.patch deleted file mode 100644 index 887a0a94..00000000 --- a/remove_unused_attributes.patch +++ /dev/null @@ -1,76 +0,0 @@ -Index: pisi/atomicoperations.py -=================================================================== ---- pisi/atomicoperations.py (revision 11473) -+++ pisi/atomicoperations.py (working copy) -@@ -42,12 +42,8 @@ - - class AtomicOperation(object): - -- def __init__(self, ignore_dep = None): -- #self.package = package -- if ignore_dep==None: -- self.ignore_dep = ctx.config.get_option('ignore_dependency') -- else: -- self.ignore_dep = ignore_dep -+ def __init__(self): -+ pass - - def run(self, package): - "perform an atomic package operation" -@@ -58,7 +54,7 @@ - "Install class, provides install routines for pisi packages" - - @staticmethod -- def from_name(name, ignore_dep = None): -+ def from_name(name): - # download package and return an installer object - # find package in repository - repo = ctx.packagedb.which_repo(name) -@@ -77,13 +73,13 @@ - - ctx.ui.info(_("Package URI: %s") % pkg_path, verbose=True) - -- return Install(pkg_path, ignore_dep) -+ return Install(pkg_path) - else: - raise Error(_("Package %s not found in any active repository.") % name) - -- def __init__(self, package_fname, ignore_dep = None, ignore_file_conflicts = None): -+ def __init__(self, package_fname, ignore_file_conflicts = None): - "initialize from a file name" -- super(Install, self).__init__(ignore_dep) -+ super(Install, self).__init__() - if not ignore_file_conflicts: - ignore_file_conflicts = ctx.get_option('ignore_file_conflicts') - self.ignore_file_conflicts = ignore_file_conflicts -@@ -394,8 +390,8 @@ - - class Remove(AtomicOperation): - -- def __init__(self, package_name, ignore_dep = None): -- super(Remove, self).__init__(ignore_dep) -+ def __init__(self, package_name): -+ super(Remove, self).__init__() - self.package_name = package_name - self.package = ctx.packagedb.get_package(self.package_name, pisi.itembyrepodb.installed) - try: -Index: pisi/archive.py -=================================================================== ---- pisi/archive.py (revision 11473) -+++ pisi/archive.py (working copy) -@@ -42,12 +42,11 @@ - self.type = atype - - def unpack(self, target_dir, clean_dir = False): -- self.target_dir = target_dir - # first we check if we need to clean-up our working env. -- if os.path.exists(self.target_dir) and clean_dir: -- util.clean_dir(self.target_dir) -+ if os.path.exists(target_dir) and clean_dir: -+ util.clean_dir(target_dir) - -- os.makedirs(self.target_dir) -+ os.makedirs(target_dir) - - - class ArchiveBinary(ArchiveBase):