Skip to content
This repository has been archived by the owner on Sep 26, 2019. It is now read-only.

Commit

Permalink
Merge "Move from semver to semantic_version package"
Browse files Browse the repository at this point in the history
  • Loading branch information
Jenkins authored and openstack-gerrit committed Feb 24, 2016
2 parents 63f30e6 + 8766f11 commit 3f32aca
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ peewee >= 2.8.0
# lupa>=1.2

# if you want to use complex version check in repositories
semver>=2.4.0
semantic_version>=2.3.1

# plugins
stevedore>=1.5.0
Expand Down
29 changes: 14 additions & 15 deletions solar/core/resource/repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

import errno
import os
import semver
import semantic_version
import shutil
import yaml

Expand Down Expand Up @@ -80,9 +80,8 @@ def _list_source_contents(cls, source):
if os.path.exists(meta_path):
# single normal
pth = os.path.split(source)[-1]
try:
semver.parse(pth)
except ValueError:
valid = semantic_version.validate(pth)
if not valid:
name = pth
else:
# if it was semver then single_path may look like
Expand All @@ -101,9 +100,8 @@ def _list_source_contents_from_multidir(cls, source):
pth = pth[:-5]
yield RES_TYPE.Composer, pth, single_path
elif os.path.exists(os.path.join(single_path, 'meta.yaml')):
try:
semver.parse(pth)
except ValueError:
valid = semantic_version.validate(pth)
if not valid:
name = pth
else:
# if it was semver then single_path may look like
Expand All @@ -123,9 +121,8 @@ def _list_source_contents_from_multidir(cls, source):
if not os.path.isdir(single_path):
continue
for single in os.listdir(single_path):
try:
semver.parse(single)
except ValueError:
valid = semantic_version.validate(single)
if not valid:
fp = os.path.join(single_path, single)
raise RepositoryException(
"Unexpected repository content "
Expand Down Expand Up @@ -299,7 +296,7 @@ def _get_version(self, spec):
return os.path.join(self.fpath, spec['resource_name'], version)
found = self.iter_contents(resource_name)
if version is None:
sc = semver.compare
sc = semantic_version.compare
sorted_vers = sorted(found,
cmp=lambda a, b: sc(a['version'],
b['version']),
Expand All @@ -309,14 +306,16 @@ def _get_version(self, spec):
version = sorted_vers[0]['version']
else:
version = '{}{}'.format(version_sign, version)
matched = filter(lambda x: semver.match(x['version'], version),
matched = filter(lambda x: semantic_version.match(version,
x['version']),
found)
sorted_vers = sorted(matched,
cmp=lambda a, b: semver.compare(a['version'],
b['version']),
cmp=lambda a, b: semantic_version.compare(
a['version'],
b['version']),
reverse=True)
version = next((x['version'] for x in sorted_vers
if semver.match(x['version'], version)),
if semantic_version.match(version, x['version'])),
None)
if version is None:
raise ResourceNotFound(spec)
Expand Down

0 comments on commit 3f32aca

Please sign in to comment.