Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit 5f75c6f

Browse files
author
Matthias Koeppe
committed
Merge branch 't/31118/sage___package_update_latest__fix_for_package_names_containing_dashes' into t/29846/add_packages_flit_and_dependencies_flit_core__pytoml
2 parents b6c10bf + f74f66c commit 5f75c6f

File tree

3 files changed

+19
-18
lines changed

3 files changed

+19
-18
lines changed

build/sage_bootstrap/app.py

+13-10
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from sage_bootstrap.tarball import Tarball, FileNotMirroredError
2424
from sage_bootstrap.updater import ChecksumUpdater, PackageUpdater
2525
from sage_bootstrap.creator import PackageCreator
26-
from sage_bootstrap.pypi import PyPiVersion, PyPiNotFound
26+
from sage_bootstrap.pypi import PyPiVersion, PyPiNotFound, PyPiError
2727
from sage_bootstrap.fileserver import FileServer
2828
from sage_bootstrap.expand_class import PackageClass
2929

@@ -138,21 +138,24 @@ def update_latest(self, package_name):
138138
log.debug('%s is not a pypi package', package_name)
139139
return
140140
else:
141-
pypi.update()
141+
pypi.update(Package(package_name))
142142

143-
def update_latest_all(self):
144-
log.debug('Attempting to update all packages')
143+
def update_latest_cls(self, package_name_or_class):
145144
exclude = [
146-
'atlas', 'flint', 'bzip2', 'ecm', 'freetype', 'gap', 'glpk', 'graphs',
147-
'iconv', 'patch', 'r', 'configure', 'bliss', 'readline', 'decorator',
148-
'igraph', 'rw', 'planarity', 'gambit',
145+
'cypari' # Name conflict
149146
]
150-
pc = PackageClass(':standard:')
151-
for package_name in pc.names:
147+
# Restrict to normal Python packages
148+
pc = PackageClass(package_name_or_class, has_files=['checksums.ini', 'install-requires.txt'])
149+
if not pc.names:
150+
log.warn('nothing to do (does not name a normal Python package)')
151+
for package_name in sorted(pc.names):
152152
if package_name in exclude:
153153
log.debug('skipping %s because of pypi name collision', package_name)
154154
continue
155-
self.update_latest(package_name)
155+
try:
156+
self.update_latest(package_name)
157+
except PyPiError as e:
158+
log.warn('updating %s failed: %s', package_name, e)
156159

157160
def download(self, package_name, allow_upstream=False):
158161
"""

build/sage_bootstrap/cmdline.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -334,10 +334,7 @@ def run():
334334
elif args.subcommand == 'update':
335335
app.update(args.package_name, args.new_version, url=args.url)
336336
elif args.subcommand == 'update-latest':
337-
if args.package_name == ':all:':
338-
app.update_latest_all()
339-
else:
340-
app.update_latest(args.package_name)
337+
app.update_latest_cls(args.package_name)
341338
elif args.subcommand == 'download':
342339
app.download_cls(args.package_name,
343340
allow_upstream=args.allow_upstream,

build/sage_bootstrap/pypi.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,13 @@ def summary(self):
100100
"""
101101
return self.json['info']['summary']
102102

103-
def update(self):
104-
package = Package(self.name)
103+
def update(self, package=None):
104+
if package is None:
105+
package = Package(self.name)
105106
if package.version == self.version:
106107
log.info('%s is already at the latest version', self.name)
107108
return
108-
log.info('Updating %s: %s -> %s', self.name, package.version, self.version)
109-
update = PackageUpdater(self.name, self.version)
109+
log.info('Updating %s: %s -> %s', package.name, package.version, self.version)
110+
update = PackageUpdater(package.name, self.version)
110111
update.download_upstream(self.url)
111112
update.fix_checksum()

0 commit comments

Comments
 (0)