[elbe-devel] [PATCH 13/25] pylint - db: fix _update_proejct_file can be a function

Manuel Traut manut at linutronix.de
Wed Aug 29 21:02:43 CEST 2018


Signed-off-by: Manuel Traut <manut at linutronix.de>
---
 elbepack/db.py | 95 +++++++++++++++++++++++++-------------------------
 1 file changed, 48 insertions(+), 47 deletions(-)

diff --git a/elbepack/db.py b/elbepack/db.py
index 7ce615d5..f2333c87 100644
--- a/elbepack/db.py
+++ b/elbepack/db.py
@@ -69,6 +69,35 @@ def get_versioned_filename(name, version, suffix):
     return quote(name, ' ') + '_' + quote(version, ' ') + suffix
 
 
+def _update_project_file(s, builddir, name, mime_type, description):
+
+    # pylint: disable=too-many-arguments
+
+    filename = os.path.join(builddir, name)
+    try:
+        f = s.query(ProjectFile).\
+            filter(ProjectFile.builddir == builddir).\
+            filter(ProjectFile.name == name).one()
+    except NoResultFound:
+        if os.path.isfile(os.path.join(builddir, name)):
+            f = ProjectFile(builddir=builddir,
+                            name=name,
+                            mime_type=mime_type,
+                            description=description)
+            s.add(f)
+            return filename
+        return None
+
+    if os.path.isfile(filename):
+        f.mime_type = mime_type
+        f.description = description
+    else:
+        s.delete(f)
+        return None
+
+    return filename
+
+
 class ElbeDB(object):
 
     # pylint: disable=too-many-public-methods
@@ -149,8 +178,7 @@ class ElbeDB(object):
             os.chmod(builddir + "/postbuild.sh", 0o755)
             dos2unix(builddir + "/postbuild.sh")
 
-            return self._update_project_file(
-                s, builddir,
+            return _update_project_file(s, builddir,
                 "postbuild.sh", "application/sh", "postbuild script")
 
     def set_savesh(self, builddir, savesh_file):
@@ -184,7 +212,7 @@ class ElbeDB(object):
             os.chmod(builddir + "/save.sh", 0o755)
             dos2unix(builddir + "/save.sh")
 
-            return self._update_project_file(
+            return _update_project_file(
                 s, builddir,
                 "save.sh", "application/sh", "version save script")
 
@@ -218,7 +246,7 @@ class ElbeDB(object):
 
             dos2unix(builddir + "/pre.sh")
 
-            return self._update_project_file(
+            return _update_project_file(
                 s, builddir, "pre.sh", "application/sh", "pre install script")
 
     def set_postsh(self, builddir, postsh_file):
@@ -251,7 +279,7 @@ class ElbeDB(object):
 
             dos2unix(builddir + "/post.sh")
 
-            return self._update_project_file(
+            return _update_project_file(
                 s, builddir,
                 "post.sh", "application/sh", "post install script")
 
@@ -296,7 +324,7 @@ class ElbeDB(object):
             if xml_file != srcxml_fname:
                 copyfile(xml_file, srcxml_fname)  # OSError
 
-            self._update_project_file(
+            _update_project_file(
                 s,
                 builddir,
                 "source.xml",
@@ -637,7 +665,7 @@ class ElbeDB(object):
                                description=description)
             s.add(v)
 
-            self._update_project_file(s, builddir, versionxmlname,
+            _update_project_file(s, builddir, versionxmlname,
                                       "application/xml",
                                       "source.xml for version %s" % version)
 
@@ -770,7 +798,7 @@ class ElbeDB(object):
                     "project %s is not registered in the database" %
                     builddir)
 
-            self._update_project_file(s, builddir, name, mime_type,
+            _update_project_file(s, builddir, name, mime_type,
                                       description)
 
     def update_project_files(self, ep):
@@ -795,36 +823,36 @@ class ElbeDB(object):
 
                 images = set(ep.targetfs.images or [])
                 for img in images:
-                    self._update_project_file(
+                    _update_project_file(
                         s, p.builddir, img,
                         "application/octet-stream", "Image")
 
             # Add other generated files
-            self._update_project_file(s, p.builddir, "source.xml",
+            _update_project_file(s, p.builddir, "source.xml",
                                       "application/xml",
                                       "Current source.xml of the project")
 
-            self._update_project_file(s, p.builddir, "licence.txt",
+            _update_project_file(s, p.builddir, "licence.txt",
                                       "text/plain; charset=utf-8",
                                       "License file")
 
-            self._update_project_file(s, p.builddir, "licence.xml",
+            _update_project_file(s, p.builddir, "licence.xml",
                                       "application/xml",
                                       "xml License file")
 
-            self._update_project_file(s, p.builddir, "validation.txt",
+            _update_project_file(s, p.builddir, "validation.txt",
                                       "text/plain; charset=utf-8",
                                       "Package list validation result")
 
-            self._update_project_file(s, p.builddir, "elbe-report.txt",
+            _update_project_file(s, p.builddir, "elbe-report.txt",
                                       "text/plain; charset=utf-8",
                                       "Report")
 
-            self._update_project_file(s, p.builddir, "log.txt",
+            _update_project_file(s, p.builddir, "log.txt",
                                       "text/plain; charset=utf-8",
                                       "Log file")
 
-            self._update_project_file(s, p.builddir, "sysroot.tar.xz",
+            _update_project_file(s, p.builddir, "sysroot.tar.xz",
                                       "application/x-xz-compressed-tar",
                                       "sysroot for cross-toolchains")
 
@@ -834,20 +862,20 @@ class ElbeDB(object):
                 # that's ok because it might not yet been built
                 sdkname = sdk[0].split('/')[-1]
 
-                self._update_project_file(s, p.builddir, sdkname,
+                _update_project_file(s, p.builddir, sdkname,
                                         "application/x-shellscript",
                                         "SDK Installer")
             except IndexError:
                 pass
 
-            self._update_project_file(s, p.builddir, "chroot.tar.xz",
+            _update_project_file(s, p.builddir, "chroot.tar.xz",
                                       "application/x-xz-compressed-tar",
                                       "chroot for 'native' development")
 
             # Add Repository iso images
             for img in ep.repo_images:
                 name = os.path.basename(img)
-                self._update_project_file(s, p.builddir, name,
+                _update_project_file(s, p.builddir, name,
                                           "application/octet-stream",
                                           "Repository IsoImage")
 
@@ -856,37 +884,10 @@ class ElbeDB(object):
             if os.path.isdir(pbresult_path):
                 for f in os.listdir(pbresult_path):
                     pfile = os.path.join("pbuilder", "result", f)
-                    self._update_project_file(s, p.builddir, pfile,
+                    _update_project_file(s, p.builddir, pfile,
                                               "application/octet-stream",
                                               "Pbuilder artifact")
 
-    def _update_project_file(self, s, builddir, name, mime_type, description):
-
-        # pylint: disable=too-many-arguments
-
-        filename = os.path.join(builddir, name)
-        try:
-            f = s.query(ProjectFile).\
-                filter(ProjectFile.builddir == builddir).\
-                filter(ProjectFile.name == name).one()
-        except NoResultFound:
-            if os.path.isfile(os.path.join(builddir, name)):
-                f = ProjectFile(builddir=builddir,
-                                name=name,
-                                mime_type=mime_type,
-                                description=description)
-                s.add(f)
-                return filename
-            return None
-
-        if os.path.isfile(filename):
-            f.mime_type = mime_type
-            f.description = description
-        else:
-            s.delete(f)
-            return None
-
-        return filename
 
     def add_user(self, name, fullname, password, email, admin):
 
-- 
2.18.0




More information about the elbe-devel mailing list