diff options
author | Matěj Cepl <mcepl@cepl.eu> | 2019-04-05 13:16:56 +0000 |
---|---|---|
committer | Matěj Cepl <mcepl@cepl.eu> | 2019-04-05 13:16:56 +0000 |
commit | 58b7e48c18e319209a08ad7452ec9f23bd9d5ff6 (patch) | |
tree | 9ef02027cfd5cf35cbf7c4cc333bb1ab580c2357 /dlpcvp.py | |
parent | 9377f530c450e67a3c613ed76dfd9e33394e7b9f (diff) | |
parent | 73bcdf97f6a55848e50f9a2329bc2138256102e4 (diff) | |
download | dlp_check_version_PyPI-58b7e48c18e319209a08ad7452ec9f23bd9d5ff6.tar.gz |
Merge branch 'is_develpackage' into 'master'
Check whether the package is actually a devel package for Factory.
Closes #4
See merge request mcepl/dlp_check_version_PyPI!1
Diffstat (limited to 'dlpcvp.py')
-rwxr-xr-x | dlpcvp.py | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -115,6 +115,27 @@ def update_etags(con: sqlite3.Connection, pkg: str, con.commit() +def is_develpackage(proj: str, pkg: str) -> bool: + req = Request(url=OBS_base + f'/source/openSUSE:Factory/{pkg}/_meta') + log.debug('Looking up URL: %s', req.full_url) + try: + with opener.open(req) as resp: + xml_data = ET.parse(resp) + for pel in xml_data.iter('package'): + for delem in pel.iter('devel'): + if pel.attrib['name'] == pkg and \ + delem.attrib['package'] == pkg and \ + delem.attrib['project'] == proj: + return True + return False + except HTTPError as ex: + if ex.getcode() == 404: + log.warning(f'Cannot acquire _meta of {pkg}.') + return None + else: + raise + + def parse_spec(spec_file: Union[str, bytes]) -> LooseVersion: if isinstance(spec_file, bytes): spec_file = spec_file.decode() @@ -262,6 +283,8 @@ def main(prj): suse_ver = package_version(prj, pkg, conn) if suse_ver is None: raise RuntimeError('not in OBS') + if not is_develpackage(prj, pkg): + continue pypi_ver = get_version_from_pypi(pypi_name, conn) if pypi_ver is None: raise RuntimeError('not in PyPI') |