* korkmayin birsey olmuyor

* absolute module name'leri kullan importlarda, ornegin
  from pisi.package import Package gibi
* basit bir exception hiyerarsisi tanimla. bu olay daha
  bir oturdu.
* bazi yerlerde iki sinif arasinda iki line bosluk yoktu vs.
  onlari biraz duzelt
This commit is contained in:
Eray Özkural
2005-08-10 16:04:54 +00:00
parent b05913bf15
commit a69853d751
26 changed files with 165 additions and 92 deletions
+12 -2
View File
@@ -8,6 +8,16 @@
# Please read the COPYING file. # Please read the COPYING file.
# #
# PISI package version # PISI version
__version__ = "0.1"
__version__ = "0.2"
__all__ = [ 'toplevel', 'packagedb', 'installdb' ]
class PisiError(Exception):
"""Class of exceptions that lead to program termination"""
pass
class PisiException(Exception):
"""Class of exceptions that must be caught and handled within PISI"""
pass
+8
View File
@@ -10,3 +10,11 @@
# pisi.actionsapi version # pisi.actionsapi version
__version__ = '0.1' __version__ = '0.1'
import pisi
class ActionsApiError(pisi.PisiError):
pass
class ActionsApiException(pisi.PisiException):
pass
+5 -4
View File
@@ -18,10 +18,11 @@ import os
from pisi.ui import ui from pisi.ui import ui
# ActionsAPI Modules # ActionsAPI Modules
import get import pisi.actionsapi
from shelltools import system import pisi.actionsapi.get as get
from shelltools import can_access_file from pisi.actionsapi.shelltools import system
from libtools import gnuconfig_update from pisi.actionsapi.shelltools import can_access_file
from pisi.actionsapi.libtools import gnuconfig_update
class ConfigureError(Exception): class ConfigureError(Exception):
def __init__(self, Exception): def __init__(self, Exception):
+2
View File
@@ -16,6 +16,8 @@ import sys
import re import re
from itertools import izip, imap, count, ifilter, ifilterfalse from itertools import izip, imap, count, ifilter, ifilterfalse
import pisi.actionsapi as actionsapi
def cat(filename): def cat(filename):
return file(filename).xreadlines() return file(filename).xreadlines()
+3 -2
View File
@@ -19,8 +19,9 @@ import shutil
from pisi.ui import ui from pisi.ui import ui
# ActionsAPI Modules # ActionsAPI Modules
from shelltools import chmod, makedirs import pisi.actionsapi
import get from pisi.actionsapi.shelltools import chmod, makedirs
import pisi.actionsapi.get
def preplib(sourceDirectory): def preplib(sourceDirectory):
os.system('/sbin/ldconfig -n -N %s' % get.installDIR() + sourceDirectory) os.system('/sbin/ldconfig -n -N %s' % get.installDIR() + sourceDirectory)
+4 -3
View File
@@ -20,9 +20,10 @@ import fileinput
import re import re
# ActionsAPI Modules # ActionsAPI Modules
import get import pisi.actionsapi
from pisitools_functions import * import pisi.actionsapi.get as get
from shelltools import * from pisi.actionsapi.pisitools_functions import *
from pisi.actionsapi.shelltools import *
def dobin(sourceFile, destinationDirectory = '/usr/bin'): def dobin(sourceFile, destinationDirectory = '/usr/bin'):
'''insert a executable file into /bin or /usr/bin''' '''insert a executable file into /bin or /usr/bin'''
+2 -1
View File
@@ -18,7 +18,8 @@ import os
import glob import glob
# ActionsAPI Modules # ActionsAPI Modules
from shelltools import * import pisi.actionsapi
from pisi.actionsapi.shelltools import *
class FileError(Exception): class FileError(Exception):
pass pass
+2 -1
View File
@@ -20,7 +20,8 @@ import shutil
from pisi.ui import ui from pisi.ui import ui
# ActionsAPI Modules # ActionsAPI Modules
import get import pisi.actionsapi
import pisi.actionsapi.get
def can_access_file(sourceFile): def can_access_file(sourceFile):
'''test the existence of file''' '''test the existence of file'''
+2 -2
View File
@@ -15,8 +15,8 @@
from os import getenv, environ from os import getenv, environ
# Pisi-Core Modules # Pisi-Core Modules
import pisi.config import pisi.config # That was the only correct
import pisi.constants import pisi.constants # use before changing to abs. imports
# Set individual information, that are generally needed for ActionsAPI # Set individual information, that are generally needed for ActionsAPI
+10 -5
View File
@@ -9,21 +9,23 @@
# #
# Please read the COPYING file. # Please read the COPYING file.
# #
# Archive module provides access to regular archive file types. # Archive module provides access to regular archive file types.
# maintainer baris and meren # maintainer baris and meren
#standard lisbrary modules # standard library modules
import os import os
import tarfile import tarfile
import zipfile import zipfile
#pisi modules # PiSi modules
import util import pisi
import pisi.util as util
class ArchiveError(Exception):
class ArchiveError(pisi.PisiError):
pass pass
class ArchiveBase(object): class ArchiveBase(object):
"""Base class for Archive classes.""" """Base class for Archive classes."""
def __init__(self, filepath, atype): def __init__(self, filepath, atype):
@@ -38,6 +40,7 @@ class ArchiveBase(object):
os.makedirs(self.targetDir) os.makedirs(self.targetDir)
class ArchiveTar(ArchiveBase): class ArchiveTar(ArchiveBase):
"""ArchiveTar handles tar archives depending on the compression """ArchiveTar handles tar archives depending on the compression
type. Provides access to tar, tar.gz and tar.bz2 files. type. Provides access to tar, tar.gz and tar.bz2 files.
@@ -68,6 +71,7 @@ class ArchiveTar(ArchiveBase):
os.chdir(oldwd) os.chdir(oldwd)
tar.close() tar.close()
class ArchiveZip(ArchiveBase): class ArchiveZip(ArchiveBase):
"""ArchiveZip handles zip archives. """ArchiveZip handles zip archives.
@@ -180,6 +184,7 @@ class ArchiveZip(ArchiveBase):
self.close() self.close()
return return
class Archive: class Archive:
"""Archive is the main factory for ArchiveClasses, regarding the """Archive is the main factory for ArchiveClasses, regarding the
Abstract Factory Pattern :).""" Abstract Factory Pattern :)."""
+12 -10
View File
@@ -17,17 +17,19 @@
import os import os
import sys import sys
import util import pisi
from ui import ui import pisi.util as util
from constants import const from pisi.ui import ui
from config import config from pisi.constants import const
from context import BuildContext from pisi.config import config
from sourcearchive import SourceArchive from pisi.context import BuildContext
from files import Files, FileInfo from pisi.sourcearchive import SourceArchive
from metadata import MetaData from pisi.files import Files, FileInfo
from package import Package from pisi.metadata import MetaData
from pisi.package import Package
class PisiBuildError(Exception):
class PisiBuildError(pisi.PisiError):
pass pass
+23 -1
View File
@@ -12,9 +12,10 @@
import sys import sys
from optparse import OptionParser from optparse import OptionParser
import pisi import pisi
from pisi.purl import PUrl from pisi.purl import PUrl
from common import * from pisi.cli.common import *
import pisi.toplevel import pisi.toplevel
from pisi.ui import ui from pisi.ui import ui
@@ -27,6 +28,7 @@ def commandsString():
s += x + '\n' s += x + '\n'
return s return s
# helper functions # helper functions
def cmdObject(cmd, fail=False): def cmdObject(cmd, fail=False):
@@ -40,6 +42,7 @@ def cmdObject(cmd, fail=False):
else: else:
return None return None
class Command(object): class Command(object):
"""generic help string for any command""" """generic help string for any command"""
@@ -99,6 +102,7 @@ class Command(object):
print 'Program terminated abnormally.' print 'Program terminated abnormally.'
sys.exit(-1) sys.exit(-1)
class Help(Command): class Help(Command):
"""Prints usage """Prints usage
@@ -123,6 +127,7 @@ for that command.
obj.help() obj.help()
# print "\n",self.parser.format_option_help() # print "\n",self.parser.format_option_help()
class Build(Command): class Build(Command):
"""Build a PISI package using a pspec.xml file """Build a PISI package using a pspec.xml file
@@ -143,6 +148,7 @@ fetch all necessary files and build the package for you.
for arg in self.args: for arg in self.args:
pisi.toplevel.build(arg, self.authInfo) pisi.toplevel.build(arg, self.authInfo)
class PackageOp(Command): class PackageOp(Command):
"""Abstract package operation command""" """Abstract package operation command"""
def __init__(self): def __init__(self):
@@ -174,6 +180,7 @@ class PackageOp(Command):
#except pisi.comariface.ComarError: #except pisi.comariface.ComarError:
# ui.error('Comar error encountered\n') # ui.error('Comar error encountered\n')
class Install(PackageOp): class Install(PackageOp):
"""Install PISI packages """Install PISI packages
@@ -195,6 +202,7 @@ specified a package name, it should exist in a specified repository.
pisi.toplevel.install(self.args) pisi.toplevel.install(self.args)
self.finalize() self.finalize()
class Upgrade(PackageOp): class Upgrade(PackageOp):
"""Upgrade PISI packages """Upgrade PISI packages
@@ -216,6 +224,7 @@ specified a package name, it should exist in a specified repository.
pisi.toplevel.upgrade(self.args) pisi.toplevel.upgrade(self.args)
self.finalize() self.finalize()
class Remove(PackageOp): class Remove(PackageOp):
"""Remove PISI packages """Remove PISI packages
@@ -236,6 +245,7 @@ Remove a package from your system. Just give the package name to remove.
pisi.toplevel.remove(self.args) pisi.toplevel.remove(self.args)
self.finalize() self.finalize()
class ConfigurePending(PackageOp): class ConfigurePending(PackageOp):
"""configure pending packages""" """configure pending packages"""
@@ -251,6 +261,7 @@ class ConfigurePending(PackageOp):
pisi.toplevel.configure_pending() pisi.toplevel.configure_pending()
self.finalize() self.finalize()
class Info(Command): class Info(Command):
"""Display information about a package """Display information about a package
@@ -277,6 +288,7 @@ TODO: Some description...
metadata, files = pisi.toplevel.info(arg) metadata, files = pisi.toplevel.info(arg)
print metadata.package print metadata.package
class Index(Command): class Index(Command):
"""Index PISI files in a given directory """Index PISI files in a given directory
@@ -302,6 +314,7 @@ TODO: Some description...
print 'Indexing only a single directory supported' print 'Indexing only a single directory supported'
return return
class ListInstalled(Command): class ListInstalled(Command):
"""Print the list of all installed packages """Print the list of all installed packages
@@ -328,6 +341,7 @@ TODO: Some description...
else: else:
print package print package
class UpdateRepo(Command): class UpdateRepo(Command):
"""Update the databases of a repository """Update the databases of a repository
@@ -348,6 +362,7 @@ TODO: Some description...
for repo in self.args: for repo in self.args:
pisi.toplevel.update_repo(repo) pisi.toplevel.update_repo(repo)
class AddRepo(Command): class AddRepo(Command):
"""Add a repository """Add a repository
@@ -369,6 +384,7 @@ TODO: Some description...
self.help() self.help()
return return
class RemoveRepo(Command): class RemoveRepo(Command):
"""Remove a repository """Remove a repository
@@ -389,6 +405,7 @@ TODO: Some description...
self.help() self.help()
return return
class ListRepo(Command): class ListRepo(Command):
"""List repositories """List repositories
@@ -500,6 +517,7 @@ for you.
for arg in self.args: for arg in self.args:
pisi.toplevel.build_until(arg, state, self.authInfo) pisi.toplevel.build_until(arg, state, self.authInfo)
class BuildUnpack(Command): class BuildUnpack(Command):
"""Unpack the source archive """Unpack the source archive
@@ -559,6 +577,7 @@ TODO: desc.
for arg in self.args: for arg in self.args:
pisi.toplevel.build_until(arg, "buildaction", self.authInfo) pisi.toplevel.build_until(arg, "buildaction", self.authInfo)
class BuildInstall(Command): class BuildInstall(Command):
"""Install to the sandbox """Install to the sandbox
@@ -578,6 +597,7 @@ TODO: desc.
for arg in self.args: for arg in self.args:
pisi.toplevel.build_until(arg, "installaction", self.authInfo) pisi.toplevel.build_until(arg, "installaction", self.authInfo)
class BuildPackage(Command): class BuildPackage(Command):
"""Setup the source """Setup the source
@@ -597,6 +617,8 @@ TODO: desc.
for arg in self.args: for arg in self.args:
pisi.toplevel.build_until(arg, "buildpackages", self.authInfo) pisi.toplevel.build_until(arg, "buildpackages", self.authInfo)
# command dictionary
commands = {"help": Help, commands = {"help": Help,
"build": Build, "build": Build,
"build-until": BuildUntil, "build-until": BuildUntil,
+2 -2
View File
@@ -16,8 +16,8 @@ from optparse import OptionParser
import pisi import pisi
import pisi.operations import pisi.operations
from pisi.purl import PUrl from pisi.purl import PUrl
from common import * from pisi.cli.common import *
from commands import * from pisi.cli.commands import *
class ParserError(Exception): class ParserError(Exception):
pass pass
+3 -1
View File
@@ -13,7 +13,9 @@
import socket import socket
import struct import struct
class ComarError(Exception): import pisi
class ComarError(pisi.PisiError):
pass pass
class ComarIface: class ComarIface:
+3 -5
View File
@@ -16,8 +16,9 @@
# Authors: Baris Metin <baris@uludag.org.tr # Authors: Baris Metin <baris@uludag.org.tr
# Eray Ozkural <eray@uludag.org.tr> # Eray Ozkural <eray@uludag.org.tr>
from constants import const import pisi
from configfile import ConfigurationFile from pisi.constants import const
from pisi.configfile import ConfigurationFile
class Config(object): class Config(object):
"""Config Singleton""" """Config Singleton"""
@@ -27,9 +28,6 @@ class Config(object):
self.values = ConfigurationFile("/etc/pisi/pisi.conf") self.values = ConfigurationFile("/etc/pisi/pisi.conf")
self.destdir = self.values.general.destinationdirectory self.destdir = self.values.general.destinationdirectory
def __call__(self):
return self
# directory accessor functions # directory accessor functions
# here is how it goes # here is how it goes
# x_dir: system wide directory for storing info type x # x_dir: system wide directory for storing info type x
+2
View File
@@ -16,6 +16,8 @@
# Author: Baris Metin <baris@uludag.org.tr # Author: Baris Metin <baris@uludag.org.tr
import pisi
class _constant: class _constant:
"Constant members implementation" "Constant members implementation"
class ConstError(TypeError): class ConstError(TypeError):
+7 -4
View File
@@ -21,13 +21,16 @@ import os
from base64 import encodestring from base64 import encodestring
# pisi modules # pisi modules
import util import pisi
from purl import PUrl import pisi.util as util
from ui import ui from pisi.purl import PUrl
from pisi.ui import ui
class FetchError (Exception):
class FetchError(pisi.PisiError):
pass pass
# helper functions # helper functions
def fetchUrl(url, dest, progress=None): def fetchUrl(url, dest, progress=None):
fetch = Fetcher(url, dest) fetch = Fetcher(url, dest)
+3 -1
View File
@@ -16,7 +16,9 @@ ver = sys.version_info
if ver[0] <= 2 and ver[1] < 4: if ver[0] <= 2 and ver[1] < 4:
from sets import Set as set from sets import Set as set
class CycleError(Exception): # not a PISI error!
class CycleException(Exception):
pass pass
class digraph(object): class digraph(object):
+14 -13
View File
@@ -16,21 +16,22 @@
import os import os
from specfile import * import pisi
from package import Package from pisi.specfile import *
from config import config from pisi.package import Package
from constants import const from pisi.config import config
from ui import ui from pisi.constants import const
from installdb import installdb from pisi.ui import ui
import packagedb from pisi.installdb import installdb
from packagedb import inst_packagedb import pisi.packagedb as packagedb
import dependency from pisi.packagedb import inst_packagedb
from metadata import MetaData import pisi.dependency as dependency
from comariface import comard from pisi.metadata import MetaData
import operations from pisi.comariface import comard
import pisi.operations as operations
#import conflicts #import conflicts
class InstallError(Exception): class InstallError(pisi.PisiError):
pass pass
class Installer: class Installer:
+8 -5
View File
@@ -19,14 +19,17 @@ import os
import fcntl import fcntl
# PiSi # PiSi
import lockeddbshelve as shelve import pisi
from constants import const import pisi.lockeddbshelve as shelve
from files import Files from pisi.constants import const
import util from pisi.files import Files
import pisi.util as util
class InstallDBError(Exception):
class InstallDBError(pisi.PisiError):
pass pass
class InstallDB: class InstallDB:
def __init__(self): def __init__(self):
+7 -5
View File
@@ -12,11 +12,13 @@
import os import os
from config import config import pisi
from constants import const from pisi.config import config
from ui import ui from pisi.constants import const
from purl import PUrl from pisi.ui import ui
import util, packagedb from pisi.purl import PUrl
import pisi.util as util
import pisi.packagedb as packagedb
# single package operations # single package operations
+10 -7
View File
@@ -17,16 +17,19 @@
from os.path import join from os.path import join
import archive import pisi
from constants import const import pisi.archive as archive
from config import config from pisi.constants import const
from purl import PUrl from pisi.config import config
from metadata import MetaData from pisi.purl import PUrl
from files import Files from pisi.metadata import MetaData
from pisi.files import Files
class PackageError(Exception):
class PackageError(pisi.PisiError):
pass pass
class Package: class Package:
"""PISI Package Class provides access to a pisi package (.pisi """PISI Package Class provides access to a pisi package (.pisi
file).""" file)."""
+5 -4
View File
@@ -22,12 +22,13 @@
#from bsddb.dbshelve import DBShelf #from bsddb.dbshelve import DBShelf
import bsddb.dbshelve as shelve import bsddb.dbshelve as shelve
import os, fcntl import os, fcntl
import util
from config import config
from bsddb import db from bsddb import db
class PackageDBError(Exception): import pisi
import pisi.util as util
from pisi.config import config
class PackageDBError(pisi.PisiError):
pass pass
class PackageDB(object): class PackageDB(object):
+8 -8
View File
@@ -20,15 +20,15 @@ from os import access, R_OK
# pisi modules # pisi modules
from archive import Archive import pisi
from purl import PUrl from pisi.archive import Archive
from ui import ui from pisi.purl import PUrl
from config import config from pisi.ui import ui
from fetcher import fetchUrl from pisi.config import config
import util from pisi.fetcher import fetchUrl
import pisi.util as util
class SourceArchiveError(pisi.PisiError):
class SourceArchiveError(Exception):
pass pass
class SourceArchive: class SourceArchive:
+6 -5
View File
@@ -24,14 +24,15 @@ import shutil
import statvfs import statvfs
# pisi modules # pisi modules
from ui import ui import pisi
from constants import const from pisi.ui import ui
from config import config from pisi.constants import const
from pisi.config import config
class FileError(Exception): class FileError(pisi.PisiError):
pass pass
class UtilError(Exception): class UtilError(pisi.PisiError):
pass pass
+2 -1
View File
@@ -16,8 +16,9 @@
# Authors: Eray Ozkural <eray@uludag.org.tr> # Authors: Eray Ozkural <eray@uludag.org.tr>
# Baris Metin <baris@uludag.org.tr # Baris Metin <baris@uludag.org.tr
import pisi
class XmlError(Exception): class XmlError(pisi.PisiError):
pass pass
def getNodeAttribute(node, attrname): def getNodeAttribute(node, attrname):