Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.bugs.dist > #1171300
| From | Jonathan Kamens <jik@kamens.us> |
|---|---|
| Newsgroups | linux.debian.bugs.dist |
| Subject | Bug#1053712: python3-apt: Please make network errors downloading changelogs visible to caller |
| Date | 2023-10-10 01:10 +0200 |
| Message-ID | <Hn7xT-eJYT-5@gated-at.bofh.it> (permalink) |
| References | <HmXfb-eBQk-3@gated-at.bofh.it> <HmYuB-eD9x-5@gated-at.bofh.it> <HmXfb-eBQk-3@gated-at.bofh.it> <HmYuB-eD9x-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
[Multipart message — attachments visible in raw view] - view raw
Makes sense. Thanks for the response! On 10/9/23 09:20, Julian Andres Klode wrote: > Control: notfound -1 2.6.0ubuntu1 > Control: found -1 2.6.0 > > On Mon, Oct 09, 2023 at 08:03:44AM -0400, Jonathan Kamens wrote: >> Package: python3-apt >> Version: 2.6.0ubuntu1 >> Severity: normal >> >> My use case of apt.package.Package.get_changelog needs to know whether >> a changelog failed to download because it is not available on the >> server vs. it failed because of a connectivity issue with the server. >> Right now the function completely masks that information, simply >> returning a string in both cases. I can't try to parse the string to >> extract the information because it's not always explicit and because >> it's internationalized so that's a whole can of worms. >> >> I know you probably can't change the default behavior of the >> get_changelog function because too many things depend on it, but two >> other options would be to (a) add a lower-level function that just >> tries to do the download and lets exceptions bubble up instead of >> catching them and turning them into strings, or (b) add a keyword >> argument to get_changelog which enables bubbling up exceptions instead >> of converting them to strings. > I'm afraid that this is not an option. I noticed the code is currently > using Python URL downloading facilities which is a bug, it should be > using apt_pkg.Acquire instead (and really it should use APT's native > changelog support instead of partially badly reimplementing it). > > APT's error handling meanwhile does not have error codes or anything > so all you get back is an apt_pkg.Error which is not going to help > you. > > This is something I want to address for the APT 3.0 API break in > April so it's possible that we can have this addressed in 9 months > or so, but it's not a priority as people should not be using the > 'apt' set of Python modules anyhow, but use apt_pkg directly; and > the fix essentially will be adding apt_pkg.AcquireChangelog class > and may not involve any changes to apt.package. > > There is a limited set of utility functions that we should make > available on top of apt_pkg, and then we really need to raise > DeprecationWarning. > > People write so many broken incredibly slow code by using the > apt modules that it is not funny. The API is utterly misleading > and destructive. >
Back to linux.debian.bugs.dist | Previous | Next — Previous in thread | Find similar | Unroll thread
Bug#1053712: python3-apt: Please make network errors downloading changelogs visible to caller Jonathan Kamens <jik@kamens.us> - 2023-10-09 14:10 +0200
Bug#1053712: python3-apt: Please make network errors downloading changelogs visible to caller Julian Andres Klode <jak@debian.org> - 2023-10-09 15:30 +0200
Bug#1053712: python3-apt: Please make network errors downloading changelogs visible to caller Jonathan Kamens <jik@kamens.us> - 2023-10-10 01:10 +0200
csiph-web