2
# -*- coding: iso-8859-15 -*-
3
######################################################
5
# This program is free software; you can redistribute it and/or modify
6
# it under the terms of the GNU General Public License as published
7
# by the Free Software Foundation; version 2 only.
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
# GNU General Public License for more details.
14
######################################################
17
# File: PackagesParser.py
18
# Author: Laudeci Oliveira <laudeci@gmail.com>
19
# Creation: 26/12/2006
23
######################################################
34
INSTALLED_SIZE = 'Installed-Size'
35
MAINTAINER = 'Maintainer'
36
ORIGINAL_MAINTAINER = 'Original-Maintainer'
37
ARCHITECTURE = 'Architecture'
45
DESCRIPTON = 'Description'
52
def __init__(self, filename = ''):
53
self.filename = filename
56
def __get_value(self,source, string, default = ''):
62
def Parse(self, filename = ''):
63
if self.filename == '' and filename == '':
64
raise AttributeError, "missing filename parameter"
66
self.filename = filename
68
if not os.path.isfile(self.filename):
69
raise AttributeError , self.filename
72
pkgfile=gzip.open(self.filename)
73
pkgdata=pkgfile.read()
75
raise AttributeError ,"File doesn't seems to be valid"
77
packages = string.split(pkgdata,"\n\n")
78
for package in packages:
80
tmp=StringIO.StringIO(package)
83
pk.Priority = self.__get_value(p,PRIORITY)
84
pk.Section = self.__get_value(p,SECTION)
85
pk.InstaledSize = self.__get_value(p,INSTALLED_SIZE)
86
pk.Maintainer = self.__get_value(p,MAINTAINER)
87
pk.OrinalMantainer = self.__get_value(p,ORIGINAL_MAINTAINER)
88
pk.Architecture = self.__get_value(p,ARCHITECTURE)
89
pk.Version = self.__get_value(p,VERSION)
90
pk.Depends = self.__get_value(p,DEPENDS)
91
pk.Filename = self.__get_value(p,FILENAME)
92
pk.Size = self.__get_value(p,SIZE)
93
pk.MD5sum = self.__get_value(p,MD5SUM)
94
pk.SHA1 = self.__get_value(p,SHA1)
95
pk.SHA256 = self.__get_value(p,SHA256)
96
pk.Description = self.__get_value(p,DESCRIPTON)
97
pk.Bugs = self.__get_value(p,BUGS)
98
pk.Origin = self.__get_value(p,ORIGIN)
99
self.collection.append(pk)
101
return self.collection
103
def get_collection(self):
104
return self.collection
106
class PackageInfo(object):
108
This class holds packages info stored in Packages.gz file.
114
self.__Installed_Size = ''
115
self.__Maintainer = ''
116
self.__Original_Maintainer = ''
117
self.__Architecture = ''
125
self.__Description = ''
128
self.__root_folder = ''
129
self.__destinationfile=''
130
self.__targz_path = ''
131
self.__PackageSection = ''
133
def __get_Package(self): return self.__Package
134
def __set_Pakcage(self,value): self.__Package = value
135
Package = property(fget=__get_Package, fset=__set_Pakcage, doc='Get/Set Package name.')
137
def __get_Priority(self): return self.__Priority
138
def __set_Priority(self,value): self.__Priority = value
139
Priority = property(fget=__get_Priority, fset=__set_Priority, doc='Get/Set Package Priority.')
141
def __get_Section(self): return self.__Section
142
def __set_Section(self,value): self.__Section = value
143
Section = property(fget=__get_Section, fset=__set_Section, doc='Get/Set Package Section.')
145
def __get_Installed_Size(self): return self.__Installed_Size
146
def __set_Installed_Size(self,value): self.__Installed_Size = value
147
InstalledSize = property(fget=__get_Installed_Size, fset=__set_Installed_Size, doc='Get/Set Package Installed Size.')
149
def __get_Maintainer(self): return self.__Maintainer
150
def __set_Maintainer(self,value): self.__Maintainer = value
151
Maintainer = property(fget=__get_Maintainer, fset=__set_Maintainer, doc="Get/Set Package Maintainer's name.")
153
def __get_Original_Maintainer(self): return self.__Original_Maintainer
154
def __set_Original_Maintainer(self,value): self.__Original_Maintainer = value
155
OriginalMaintainer = property(fget=__get_Original_Maintainer, fset=__set_Original_Maintainer, doc='Get/Set Package Original Maintainer.')
157
def __get_Architecture(self): return self.__Architecture
158
def __set_Architecture(self,value): self.__Architecture = value
159
Architecture = property(fget=__get_Architecture, fset=__set_Architecture, doc='Get/Set Package Architecture.')
161
def __get_Version(self): return self.__Version
162
def __set_Version(self,value): self.__Version = value
163
Version = property(fget=__get_Version, fset=__set_Version, doc='Get/Set Package Version.')
165
def __get_Depends(self): return self.__Depends
166
def __set_Depends(self,value): self.__Depends = value
167
Depends = property(fget=__get_Depends, fset=__set_Depends, doc='Get/Set Package Depends.')
169
def __get_Filename(self): return self.__Filename
170
def __set_Filename(self,value): self.__Filename = value
171
Filename = property(fget=__get_Filename, fset=__set_Filename, doc='Get/Set Package Filename.')
173
def __get_Size(self): return self.__Size
174
def __set_Size(self,value): self.__Size = value
175
Size = property(fget=__get_Size, fset=__set_Size, doc='Get/Set Package Size.')
177
def __get_MD5sum(self): return self.__MD5sum
178
def __set_MD5sum(self,value): self.__MD5sum = value
179
MD5sum = property(fget=__get_MD5sum, fset=__set_MD5sum, doc='Get/Set Package MD5sum.')
181
def __get_SHA1(self): return self.__SHA1
182
def __set_SHA1(self,value): self.__SHA1 = value
183
SHA1 = property(fget=__get_SHA1, fset=__set_SHA1, doc='Get/Set Package SHA1.')
185
def __get_SHA256(self): return self.__SHA256
186
def __set_SHA256(self,value): self.__SHA256 = value
187
SHA256 = property(fget=__get_SHA256, fset=__set_SHA256, doc='Get/Set Package SHA256.')
189
def __get_Description(self): return self.__Description
190
def __set_Description(self,value): self.__Description = value
191
Description = property(fget=__get_Description, fset=__set_Description, doc='Get/Set Package Description.')
193
def __get_Bugs(self): return self.__Bugs
194
def __set_Bugs(self,value): self.__Bugs = value
195
Bugs = property(fget=__get_Bugs, fset=__set_Bugs, doc='Get/Set Package Bugs.')
197
def __get_Origin(self): return self.__Origin
198
def __set_Origin(self,value): self.__Origin = value
199
Origin = property(fget=__get_Origin, fset=__set_Origin, doc='Get/Set Package Origin.')
201
def __get_Destination(self): return self.__destinationfile
202
def __set_Destination(self,value): self.__destinationfile = value
203
Destination = property(fget=__get_Destination, fset=__set_Destination, doc='Get/Set Package Destination file and path.')
205
def __get_root_folder(self): return self.__root_folder
206
def __set_root_folder(self,value): self.__root_folder = value
207
SourceLocation = property(fget=__get_root_folder, fset=__set_root_folder, doc='Get/Set Package Destination file and path.')
209
def __get_TarGZ_Path(self): return self.__targz_path
210
def __set_TarGZ_Path(self,value): self.__targz_path = value
211
TarGZ_Path = property(fget=__get_TarGZ_Path, fset=__set_TarGZ_Path, doc='Get/Set Package Tar file name.')
213
def __get_PackageSection(self): return self.__PackageSection
214
def __set_PackageSection(self,value): self.__PackageSection = value
215
PackageSection = property(fget=__get_PackageSection, fset=__set_PackageSection, doc='Get/Set Package Main section name.')
218
def get_as_list(self):
219
return [self.__Package, self.__Priority, self.__Section, self.__Installed_Size, self.__Maintainer, self.__Original_Maintainer, \
220
self.__Architecture, self.__Version, self.__Depends, self.__Filename, self.__Size, self.__MD5sum, self.__SHA1, \
221
self.__SHA256, self.__Description, self.__Bugs, self.__Origin]