Skip to content

Commit eb1d158

Browse files
authored
Merge pull request #211 from getsolus/fix-error-handling-again
Raise `pisi.Error` rather than `Exception` when we want the user to see it
2 parents 67c1f13 + 7ddd73d commit eb1d158

File tree

10 files changed

+34
-25
lines changed

10 files changed

+34
-25
lines changed

pisi/atomicoperations.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,7 @@ def run(self):
602602
ctx.ui.status(_("Removing package %s") % self.package_name)
603603
ctx.ui.notify(pisi.ui.removing, package=self.package, files=self.files)
604604
if not self.installdb.has_package(self.package_name):
605-
raise Exception(
605+
raise Error(
606606
_("Trying to remove nonexistent package ") + self.package_name
607607
)
608608

pisi/db/componentdb.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import re
55
from pisi import translate as _
6+
from pisi import Error
67

78
import pisi
89
import pisi.db.repodb
@@ -84,7 +85,7 @@ def search_component(self, terms, lang=None, repo=None):
8485
# Returns the component in given repo or first found component in repo order if repo is None
8586
def get_component(self, component_name, repo=None):
8687
if not self.has_component(component_name, repo):
87-
raise Exception(_("Component %s not found") % component_name)
88+
raise Error(_("Component %s not found") % component_name)
8889

8990
try:
9091
component = pisi.component.Component()

pisi/db/installdb.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import os
88
import re
99
from pisi import translate as _
10+
from pisi import Error
1011

1112
import iksemel
1213

@@ -374,4 +375,4 @@ def package_path(self, package):
374375
"%s-%s" % (package, self.installed_db[package]),
375376
)
376377

377-
raise Exception(_("Package %s is not installed") % package)
378+
raise Error(_("Package %s is not installed") % package)

pisi/db/itembyrepo.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import zlib
55
from pisi import translate as _
6+
from pisi import Error
67

78
import pisi.db
89

@@ -27,7 +28,7 @@ def which_repo(self, item):
2728
if r in self.dbobj and item in self.dbobj[r]:
2829
return r
2930

30-
raise Exception(_("%s not found in any repository.") % str(item))
31+
raise Error(_("%s not found in any repository.") % str(item))
3132

3233
def get_item_repo(self, item, repo=None):
3334
for r in self.item_repos(repo):
@@ -37,7 +38,7 @@ def get_item_repo(self, item, repo=None):
3738
else:
3839
return self.dbobj[r][item], r
3940

40-
raise Exception(_("Repo item %s not found") % str(item))
41+
raise Error(_("Repo item %s not found") % str(item))
4142

4243
def get_item(self, item, repo=None):
4344
item, repo = self.get_item_repo(item, repo)
@@ -47,7 +48,7 @@ def get_item_keys(self, repo=None):
4748
items = []
4849
for r in self.item_repos(repo):
4950
if not self.has_repo(r):
50-
raise Exception(_("Repository %s does not exist.") % repo)
51+
raise Error(_("Repository %s does not exist.") % repo)
5152

5253
if r in self.dbobj:
5354
items.extend(list(self.dbobj[r].keys()))
@@ -58,7 +59,7 @@ def get_list_item(self, repo=None):
5859
items = []
5960
for r in self.item_repos(repo):
6061
if not self.has_repo(r):
61-
raise Exception(_("Repository %s does not exist.") % repo)
62+
raise Error(_("Repository %s does not exist.") % repo)
6263

6364
if r in self.dbobj:
6465
items.extend(self.dbobj[r])
@@ -68,7 +69,7 @@ def get_list_item(self, repo=None):
6869
def get_items_iter(self, repo=None):
6970
for r in self.item_repos(repo):
7071
if not self.has_repo(r):
71-
raise Exception(_("Repository %s does not exist.") % repo)
72+
raise Error(_("Repository %s does not exist.") % repo)
7273

7374
for item, data in self.dbobj[r].items():
7475
yield item, zlib.decompress(data) if self.compressed else data

pisi/db/packagedb.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import pisi.db.itembyrepo
1919
import pisi.db.lazydb as lazydb
2020
from pisi import translate as _
21+
from pisi import Error
2122

2223

2324
class PackageDB(lazydb.LazyDB):
@@ -125,7 +126,7 @@ def map_providers(doc, pkgConfigs: dict, pkgConfigs32: dict):
125126
doc, pkgConfigs, pkgConfigs32)
126127
else:
127128
if repo not in repodb.list_repos(only_active=False):
128-
raise Exception(_("Repo %s not found.") % repo)
129+
raise Error(_("Repo %s not found.") % repo)
129130
doc = repodb.get_repo_doc(repo)
130131
pkgConfig, pkgConfigs32 = map_providers(
131132
doc, pkgConfigs, pkgConfigs32)
@@ -214,13 +215,13 @@ def __get_distro_release(self, meta_doc):
214215

215216
def get_version_and_distro_release(self, name, repo):
216217
if not self.has_package(name, repo):
217-
raise Exception(_("Package %s not found.") % name)
218+
raise Error(_("Package %s not found.") % name)
218219
pkg_doc = iksemel.parseString(self.pdb.get_item(name, repo).decode())
219220
return self.__get_version(pkg_doc) + self.__get_distro_release(pkg_doc)
220221

221222
def get_version(self, name, repo):
222223
if not self.has_package(name, repo):
223-
raise Exception(_("Package %s not found.") % name)
224+
raise Error(_("Package %s not found.") % name)
224225

225226
pkg_doc = iksemel.parseString(self.pdb.get_item(name, repo).decode())
226227
return self.__get_version(pkg_doc)

pisi/history.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from functools import cmp_to_key
77

88
from pisi import context as ctx
9+
from pisi import Error
910
from pisi import translate as _
1011
from pisi.pxml import autoxml, xmlfile
1112

@@ -105,7 +106,7 @@ def create(self, operation):
105106
"takeback",
106107
"repoupdate",
107108
]:
108-
raise Exception(_("Unknown package operation"))
109+
raise Error(_("Unknown package operation"))
109110

110111
opno = self._get_latest()
111112
self.histfile = "%s_%s.xml" % (opno, operation)
@@ -133,7 +134,7 @@ def add(self, pkgBefore=None, pkgAfter=None, operation=None, otype=None):
133134
"downgrade",
134135
"snapshot",
135136
]:
136-
raise Exception(_("Unknown package operation"))
137+
raise Error(_("Unknown package operation"))
137138

138139
package = Package()
139140
package.operation = operation

pisi/operations/helper.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from ordered_set import OrderedSet as set
77
from pisi import translate as _
8+
from pisi import Error
89

910
import pisi
1011
import pisi.context as ctx
@@ -55,7 +56,7 @@ def check_conflicts(order, packagedb):
5556
(C, D, pkg_conflicts) = pisi.conflict.calculate_conflicts(order, packagedb)
5657

5758
if D:
58-
raise Exception(
59+
raise Error(
5960
_("Selected packages [%s] are in conflict with each other.")
6061
% util.strlist(list(D))
6162
)
@@ -71,7 +72,7 @@ def check_conflicts(order, packagedb):
7172
ctx.ui.info(_("The following packages have conflicts:\n%s") % conflicts)
7273

7374
if not ctx.ui.confirm(_("Remove the following conflicting packages?")):
74-
raise Exception(_("Conflicting packages should be removed to continue"))
75+
raise Error(_("Conflicting packages should be removed to continue"))
7576

7677
return list(C)
7778

pisi/operations/install.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from ordered_set import OrderedSet as set
1010
from pisi import translate as _
11+
from pisi import Error
1112

1213
import pisi
1314
import pisi.context as ctx
@@ -174,7 +175,7 @@ def install_pkg_files(package_URIs, reinstall=False):
174175

175176
for x in package_URIs:
176177
if not x.endswith(ctx.const.package_suffix):
177-
raise Exception(_("Mixing file names and package names not supported yet."))
178+
raise Error(_("Mixing file names and package names not supported yet."))
178179

179180
# filter packages that are already installed
180181
tobe_installed, already_installed = [], set()
@@ -229,7 +230,7 @@ def install_pkg_files(package_URIs, reinstall=False):
229230
pkg.distributionRelease
230231
!= ctx.config.values.general.distribution_release
231232
):
232-
raise Exception(
233+
raise Error(
233234
_(
234235
"Package %s is not compatible with your distribution release %s %s."
235236
)
@@ -240,7 +241,7 @@ def install_pkg_files(package_URIs, reinstall=False):
240241
)
241242
)
242243
if pkg.architecture != ctx.config.values.general.architecture:
243-
raise Exception(
244+
raise Error(
244245
_("Package %s (%s) is not compatible with your %s architecture.")
245246
% (x, pkg.architecture, ctx.config.values.general.architecture)
246247
)
@@ -267,7 +268,7 @@ def satisfiesDep(dep):
267268
# be satisfied by installing packages from the repo
268269
for dep in dep_unsatis:
269270
if not dep.satisfied_by_repo():
270-
raise Exception(_("External dependencies not satisfied: %s") % dep)
271+
raise Error(_("External dependencies not satisfied: %s") % dep)
271272

272273
# if so, then invoke install_pkg_names
273274
extra_packages = [x.package for x in dep_unsatis]
@@ -280,7 +281,7 @@ def satisfiesDep(dep):
280281
)
281282
ctx.ui.info(util.format_by_columns(sorted(extra_packages)))
282283
if not ctx.ui.confirm(_("Do you want to continue?")):
283-
raise Exception(_("External dependencies not satisfied"))
284+
raise Error(_("External dependencies not satisfied"))
284285
install_pkg_names(extra_packages, reinstall=True)
285286

286287
class PackageDB:
@@ -375,7 +376,7 @@ def plan_install_pkg_names(A):
375376
# we don't deal with already *satisfied* dependencies
376377
if not dep.satisfied_by_installed():
377378
if not dep.satisfied_by_repo():
378-
raise Exception(
379+
raise Error(
379380
_("%s dependency of package %s is not satisfied")
380381
% (dep, pkg.name)
381382
)

pisi/operations/remove.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import sys
66

77
from pisi import translate as _
8+
from pisi import Error
89

910
import pisi
1011
import pisi.context as ctx
@@ -298,7 +299,7 @@ def list_orphans():
298299

299300
def remove_conflicting_packages(conflicts):
300301
if remove(conflicts, ignore_dep=True, ignore_safety=True):
301-
raise Exception(_("Conflicts remain"))
302+
raise Error(_("Conflicts remain"))
302303

303304

304305
def remove_obsoleted_packages():
@@ -307,9 +308,9 @@ def remove_obsoleted_packages():
307308
obsoletes = list(filter(installdb.has_package, packagedb.get_obsoletes()))
308309
if obsoletes:
309310
if remove(obsoletes, ignore_dep=True, ignore_safety=True):
310-
raise Exception(_("Obsoleted packages remaining"))
311+
raise Error(_("Obsoleted packages remaining"))
311312

312313

313314
def remove_replaced_packages(replaced):
314315
if remove(replaced, ignore_dep=True, ignore_safety=True):
315-
raise Exception(_("Replaced package remains"))
316+
raise Error(_("Replaced package remains"))

pisi/operations/upgrade.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from ordered_set import OrderedSet as set
88
from pisi import translate as _
9+
from pisi import Error
910

1011
import pisi
1112
import pisi.ui as ui
@@ -306,7 +307,7 @@ def add_runtime_deps(pkg, Bp):
306307
ctx.ui.error(
307308
_("Dependency %s of %s cannot be satisfied") % (dep, pkg.name)
308309
)
309-
raise Exception(_("Upgrade is not possible."))
310+
raise Error(_("Upgrade is not possible."))
310311

311312
def add_resolvable_conflicts(pkg, Bp):
312313
"""Try to resolve conflicts by upgrading

0 commit comments

Comments
 (0)