aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@cepl.eu>2019-04-05 13:16:56 +0000
committerMatěj Cepl <mcepl@cepl.eu>2019-04-05 13:16:56 +0000
commit58b7e48c18e319209a08ad7452ec9f23bd9d5ff6 (patch)
tree9ef02027cfd5cf35cbf7c4cc333bb1ab580c2357
parent9377f530c450e67a3c613ed76dfd9e33394e7b9f (diff)
parent73bcdf97f6a55848e50f9a2329bc2138256102e4 (diff)
downloaddlp_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
-rwxr-xr-xdlpcvp.py23
-rw-r--r--setup.py32
2 files changed, 23 insertions, 32 deletions
diff --git a/dlpcvp.py b/dlpcvp.py
index 2b6abaa..bc47082 100755
--- a/dlpcvp.py
+++ b/dlpcvp.py
@@ -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')
diff --git a/setup.py b/setup.py
deleted file mode 100644
index 725a368..0000000
--- a/setup.py
+++ /dev/null
@@ -1,32 +0,0 @@
-import os
-
-from setuptools import setup
-
-
-def read(fname):
- with open(os.path.join(os.path.dirname(__file__), fname)) as inf:
- return "\n" + inf.read().replace("\r\n", "\n")
-
-
-setup(
- name='dlp_check_version_PyPI',
- version="0.1.0",
- description='Check available versions of the upstream packages on PyPI',
- author=u'Matěj Cepl',
- author_email='mcepl@cepl.eu',
- url='https://gitlab.com/mcepl/dlp_check_version_PyPI',
- py_modules=['dlpcvp'],
- long_description=read("README.rst"),
- classifiers=[
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.6",
- "Programming Language :: Python :: 3.7",
- "Development Status :: 3 - Alpha",
- "Environment :: Console",
- "Intended Audience :: Information Technology",
- "License :: OSI Approved :: MIT License",
- "Operating System :: OS Independent",
- "Topic :: Software Development :: Libraries :: Python Modules",
- ],
- test_suite="test"
-)