commit af10afd22a5f4370285ee84423c2ac5b8d283ccd
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Wed Jun 4 18:20:03 2014 +0200
Adjust the pkgdb-cli list --user to rely on the new API added in pkgdb 1.6
This makes retrieving the packages of a specified user much faster than
iterating over all his/her ACLs.
pkgdb2_cli.py | 32 ++++++++++++++++++++++----------
1 files changed, 22 insertions(+), 10 deletions(-)
---
diff --git a/pkgdb2_cli.py b/pkgdb2_cli.py
index 4b34e59..20938b2 100644
--- a/pkgdb2_cli.py
+++ b/pkgdb2_cli.py
@@ -435,16 +435,28 @@ def do_list(args):
pattern += '*'
if args.user and not args.poc:
- output = pkgdbclient.get_packager_acls(
- packagername=args.user,
- page='all',
- )
- output2 = {'packages': []}
- for item in output['acls']:
- pkg = item['packagelist']['package']
- if pkg not in output2['packages']:
- output2['packages'].append(pkg)
- output = output2
+ version = pkgdbclient.get_version()
+ if version >= (1, 6):
+ output = pkgdbclient.get_packager_package(args.user)
+ output['packages'] = output['point of contact']
+ for pkg in output['co-maintained']:
+ if pkg not in output['packages']:
+ output['packages'].append(pkg)
+ for pkg in output['watch']:
+ if pkg not in output['packages']:
+ output['packages'].append(pkg)
+ else:
+ # This is for backward compat but it's way slower
+ output = pkgdbclient.get_packager_acls(
+ packagername=args.user,
+ page='all',
+ )
+ output2 = {'packages': []}
+ for item in output['acls']:
+ pkg = item['packagelist']['package']
+ if pkg not in output2['packages']:
+ output2['packages'].append(pkg)
+ output = output2
else:
output = pkgdbclient.get_packages(
pattern=pattern,
Show replies by date