diff --git a/buildservice/__init__.py b/buildservice/__init__.py index 1d3d6d6..15c3506 100644 --- a/buildservice/__init__.py +++ b/buildservice/__init__.py @@ -18,4 +18,4 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -from api import * +from .api import * diff --git a/buildservice/api.py b/buildservice/api.py index 425cd71..63c8060 100644 --- a/buildservice/api.py +++ b/buildservice/api.py @@ -22,12 +22,12 @@ import re import tempfile import time -import urllib2 +import urllib.request import cgi import xml.etree.cElementTree as ElementTree -from urllib2 import HTTPError +from urllib.error import HTTPError from osc import conf, core -from urllib import quote, quote_plus +from urllib.parse import quote, quote_plus prj_template = """\ @@ -114,10 +114,10 @@ def __init__(self, apiurl=None, oscrc=None): else: conf.get_config() - except OSError, e: + except OSError as e: if e.errno == 1: # permission problem, should be the chmod(0600) issue - raise RuntimeError, 'Current user has no write permission for specified oscrc: %s' % oscrc + raise RuntimeError('Current user has no write permission for specified oscrc: %s' % oscrc) raise # else @@ -127,7 +127,7 @@ def __init__(self, apiurl=None, oscrc=None): self.apiurl = conf.config['apiurl'] if not self.apiurl: - raise RuntimeError, 'No apiurl "%s" found in %s' % (apiurl, oscrc) + raise RuntimeError('No apiurl "%s" found in %s' % (apiurl, oscrc)) # Add a couple of method aliases self.copyPackage = core.copy_pac @@ -157,7 +157,7 @@ def isNewPackage(self, dst_project, dst_package): path_args = (core.quote_plus(dst_project), core.quote_plus(dst_package)), create_new = False, apiurl = self.apiurl) - except urllib2.HTTPError, e: + except urllib2.HTTPError as e: if e.code == 404: new_pkg = True else: @@ -203,7 +203,7 @@ def createRequest(self, options_list, description, comment, supersede = False, * request.description = description request.state = core.RequestState(state) - supsersedereqs = [] + supsersedereqs = [] for item in options_list: if item['action'] == "submit": request.add_action(item['action'], @@ -215,7 +215,7 @@ def createRequest(self, options_list, description, comment, supersede = False, * **kwargs) if supersede == True: - supsersedereqs.extend(core.get_exact_request_list(self.apiurl, item['src_project'], + supsersedereqs.extend(core.get_exact_request_list(self.apiurl, item['src_project'], item['tgt_project'], item['src_package'], item['tgt_package'], req_type='submit', req_state=['new','review', 'declined'])) @@ -272,7 +272,7 @@ def createRequest(self, options_list, description, comment, supersede = False, * for req in supsersedereqs: if req.reqid not in processed: processed.append(req.reqid) - print "req.reqid: %s - new ID: %s\n"%(req.reqid, request.reqid) + print("req.reqid: %s - new ID: %s\n"%(req.reqid, request.reqid)) core.change_request_state(self.apiurl, req.reqid, 'superseded', 'superseded by %s' % request.reqid, @@ -320,7 +320,7 @@ def get_source_file_content(apiurl, prj, pac, path, rev): path_args = (core.quote_plus(tgt_project), core.quote_plus(tgt_package)), create_new = False, apiurl = self.apiurl) - except urllib2.HTTPError, e: + except urllib2.HTTPError as e: if e.code == 404: new_pkg = True else: @@ -371,7 +371,7 @@ def get_source_file_content(apiurl, prj, pac, path, rev): except UnicodeDecodeError: pass - except urllib2.HTTPError, e: + except urllib2.HTTPError as e: e.osc_msg = 'Diff not possible' # the result, in unicode string @@ -541,7 +541,7 @@ def getProjectDiff(self, src_project, dst_project): diff = core.server_diff(self.apiurl, dst_project, src_package, None, src_project, src_package, None, False) - print diff + print(diff) def getPackageList(self, prj, deleted=None): query = {} @@ -699,7 +699,7 @@ def getSubmitRequests(self, req_state=None, start_time=None, end_time=None, proj submitrequests.sort(key=lambda x: x['id']) - return submitrequests + return submitrequests def rebuild(self, project, package, target=None, code=None): """ @@ -1004,7 +1004,7 @@ def hasChanges(self, oprj, opkg, orev, tprj, tpkg): """ try: tsrcmd5 = self.getPackageChecksum(tprj, tpkg) - except urllib2.HTTPError, e: + except urllib2.HTTPError as e: if e.code == 404: return True else: @@ -1329,7 +1329,7 @@ def createProject(self, name, repos, links=None, paths=None, build=True, ) u = core.makeurl(self.apiurl, ['source', name, '_meta']) - print meta.encode('utf-8') + print(meta.encode('utf-8')) f = core.http_PUT(u, data=meta) root = ElementTree.parse(f).getroot() ret = root.get('code') @@ -1360,7 +1360,7 @@ def createProjectAttribute(self, project, attribute, package=None, namespace="OB xml = """ %s """ % (namespace, attribute, values_xml) - print xml + print(xml) f = core.http_POST(u, data=xml) root = ElementTree.parse(f).getroot() ret = root.get('code') @@ -1453,7 +1453,7 @@ def submit_action_diff(self, action): core.quote_plus(action.tgt_project), core.quote_plus(action.tgt_package) )) - except urllib2.HTTPError, e: + except urllib2.HTTPError as e: if e.code == 404: new_pkg = True else: @@ -1466,7 +1466,7 @@ def submit_action_diff(self, action): action.tgt_package, None, action.src_project, action.src_package, action.src_rev, unified=False, missingok=True) - except urllib2.HTTPError, e: + except urllib2.HTTPError as e: try: reason = core.ET.fromstring(e.read()).find("summary").text except Exception: @@ -1724,5 +1724,5 @@ def save(self): for rulenode in rulenodes: flagnode.append(rulenode) - print ElementTree.tostring(self.tree) + print(ElementTree.tostring(self.tree)) diff --git a/setup.py b/setup.py index bb49f43..e7e50bc 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -#!/usr/bin/python2 +#!/usr/bin/env python3 from setuptools import setup version = open('VERSION').read().strip() @@ -9,6 +9,6 @@ description='Module to access OBS server', url='https://github.com/MeeGoIntegration/python-buildservice', packages=['buildservice'], - install_requires=['osc<0.140'], - python_requires='>=2.7,<3.0', + install_requires=['osc'], + python_requires='>=3.5', ) diff --git a/tests/diff.py b/tests/diff.py index 7d0277b..f5d9d36 100644 --- a/tests/diff.py +++ b/tests/diff.py @@ -1,24 +1,24 @@ -#!/usr/bin/python +#!/usr/bin/env python3 import settings from osc import conf, core import urllib2 import random -print "Diffing 10 random packages from "+settings.testprj+" and "+settings.testprj2 +print("Diffing 10 random packages from "+settings.testprj+" and "+settings.testprj2) packages = random.sample(settings.bs.getPackageList(settings.testprj),10) for src_package in packages: - print "Checking "+src_package + print("Checking "+src_package) try: diff = core.server_diff(settings.bs.apiurl, settings.testprj, src_package, None, settings.testprj2, src_package, None, False) if not diff: - print "No difference" + print("No difference") else: - print diff + print(diff) except urllib2.HTTPError as err: if err.code == 404: - print "No "+src_package+" in "+settings.testprj2 + print("No "+src_package+" in "+settings.testprj2) else: raise diff --git a/tests/get_build_results.py b/tests/get_build_results.py index 34f2c8d..fcf504c 100644 --- a/tests/get_build_results.py +++ b/tests/get_build_results.py @@ -1,12 +1,12 @@ -#!/usr/bin/python +#!/usr/bin/env python3 import settings from pprint import pprint -print 'Checking project '+settings.testprj+':' +print('Checking project '+settings.testprj+':') for repo in settings.bs.getProjectRepositories(settings.testprj): - print ' Checking repo '+repo+':' - print ' Archs:' + print(' Checking repo '+repo+':') + print(' Archs:') pprint(settings.bs.getRepositoryArchs(settings.testprj, repo)) - print ' Results:' + print(' Results:') pprint(settings.bs.getRepoResults(settings.testprj, repo)) diff --git a/tests/get_meta.py b/tests/get_meta.py index e5a7e2e..8aba73b 100644 --- a/tests/get_meta.py +++ b/tests/get_meta.py @@ -1,9 +1,9 @@ -#!/usr/bin/python +#!/usr/bin/env python3 import settings -print 'project meta of '+settings.testprj+':' +print('project meta of '+settings.testprj+':') print(settings.bs.getProjectMeta(settings.testprj)) -print 'package meta of '+settings.testprj+'/'+settings.testpkg+':' +print('package meta of '+settings.testprj+'/'+settings.testpkg+':') print(settings.bs.getPackageMeta(settings.testprj,settings.testpkg)) diff --git a/tests/get_packages.py b/tests/get_packages.py index a7b67b2..53d0d5d 100644 --- a/tests/get_packages.py +++ b/tests/get_packages.py @@ -1,29 +1,29 @@ -#!/usr/bin/python +#!/usr/bin/env python3 import settings from pprint import pprint import os -print 'Checking package list of '+settings.testprj+':' +print('Checking package list of '+settings.testprj+':') pprint(settings.bs.getPackageList(settings.testprj)) -print 'and targets :' +print('and targets :') targets = settings.bs.getTargets(settings.testprj) pprint(targets) -print 'Checking status of '+settings.testprj+'/'+settings.testpkg+':' +print('Checking status of '+settings.testprj+'/'+settings.testpkg+':') pprint(settings.bs.getPackageStatus(settings.testprj,settings.testpkg)) -print 'Checking file list of '+settings.testprj+'/'+settings.testpkg+':' +print('Checking file list of '+settings.testprj+'/'+settings.testpkg+':') files = settings.bs.getPackageFileList(settings.testprj,settings.testpkg) pprint(files) -print 'Fetching file '+settings.testprj+'/'+settings.testpkg+'/'+settings.testfile+':' +print('Fetching file '+settings.testprj+'/'+settings.testpkg+'/'+settings.testfile+':') print(settings.bs.getFile(settings.testprj,settings.testpkg,settings.testfile)) -print 'Checking binary list of '+settings.testprj+'/'+settings.testpkg+'/'+targets[0]+':' +print('Checking binary list of '+settings.testprj+'/'+settings.testpkg+'/'+targets[0]+':') bins = settings.bs.getBinaryList(settings.testprj,targets[0],settings.testpkg) pprint(bins) -print 'Checking binary info of '+settings.testprj+'/'+settings.testpkg+'/'+targets[0]+'/'+bins[2]+':' +print('Checking binary info of '+settings.testprj+'/'+settings.testpkg+'/'+targets[0]+'/'+bins[2]+':') pprint(settings.bs.getBinaryInfo(settings.testprj,targets[0],settings.testpkg,bins[2])) diff --git a/tests/get_prj_persons.py b/tests/get_prj_persons.py index 663aef6..ecd9d0a 100644 --- a/tests/get_prj_persons.py +++ b/tests/get_prj_persons.py @@ -1,8 +1,8 @@ -#!/usr/bin/python +#!/usr/bin/env python3 import settings -print 'Bugowners of '+settings.testprj2 +print('Bugowners of '+settings.testprj2) print(settings.bs.getProjectPersons(settings.testprj2, 'bugowner')) -print 'Maintainers of '+settings.testprj +print('Maintainers of '+settings.testprj) print(settings.bs.getProjectPersons(settings.testprj, 'maintainer')) diff --git a/tests/requests.py b/tests/requests.py index 665bc28..92b0fb2 100644 --- a/tests/requests.py +++ b/tests/requests.py @@ -1,22 +1,22 @@ -#!/usr/bin/python +#!/usr/bin/env python3 import settings from pprint import pprint user = settings.bs.getUserName() -print 'Your username seems to be '+user -print 'Creating a request for deleting '+settings.testprj+'/'+settings.testpkg +print('Your username seems to be '+user) +print('Creating a request for deleting '+settings.testprj+'/'+settings.testpkg) options=[{'action': 'delete','tgt_project': settings.testprj,'tgt_package': settings.testpkg}] request = settings.bs.createRequest(options,'Description','Comment',True) -print 'Adding a review to previous created request with ID: '+request.reqid +print('Adding a review to previous created request with ID: '+request.reqid) if not settings.bs.addReview(request.reqid,"Message",user): - print "Failed!" + print("Failed!") exit() -print 'Accepting the review' +print('Accepting the review') if not settings.bs.setReviewState(request.reqid,"accepted","Message2",user): - print "Failed!" + print("Failed!") exit() -print 'Revoking the request' +print('Revoking the request') if not settings.bs.setRequestState(request.reqid,"revoked","Message3"): - print "Failed!" + print("Failed!") exit() diff --git a/tests/results.py b/tests/results.py index 0b9b055..d120cc4 100644 --- a/tests/results.py +++ b/tests/results.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 import settings from pprint import pprint -print "Repository state of "+settings.testprj +print("Repository state of "+settings.testprj) pprint(settings.bs.getRepoState(settings.testprj)) diff --git a/tests/settings.py b/tests/settings.py index 5373932..34369d9 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python3 from buildservice import BuildService from os.path import expanduser @@ -26,12 +26,12 @@ bs = BuildService(apiurl,oscrc) -print "**********************************" -print "Our test settings:" -print "API: "+apiurl -print "OSCRC: "+oscrc -print "Test project 1: "+testprj -print "Test project 2: "+testprj2 -print "Test package: "+testpkg -print "Test file: "+testfile -print "**********************************" +print("**********************************") +print("Our test settings:") +print("API: "+apiurl) +print("OSCRC: "+oscrc) +print("Test project 1: "+testprj) +print("Test project 2: "+testprj2) +print("Test package: "+testpkg) +print("Test file: "+testfile) +print("**********************************")