* pisi-1.1 maintanence branch.

This commit is contained in:
Faik Uygur
2007-01-17 14:22:51 +00:00
parent f354a47d4a
commit 4403012861
2 changed files with 0 additions and 148 deletions
-72
View File
@@ -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.
-76
View File
@@ -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):