[Pkg-privacy-commits] [Git][pkg-privacy-team/mat2][d/0.7.0-2] d/p/0001-nautilus-ext-python2.7.patch: Update with jvoisin's changes

Jonas Meurer gitlab at salsa.debian.org
Sat Feb 23 17:35:46 GMT 2019


Jonas Meurer pushed to branch d/0.7.0-2 at Privacy Maintainers / mat2


Commits:
5c7c1a7d by Jonas Meurer at 2019-02-22T22:18:26Z
d/p/0001-nautilus-ext-python2.7.patch: Update with jvoisin's changes

- - - - -


1 changed file:

- debian/patches/0001-nautilus-ext-python2.7.patch


Changes:

=====================================
debian/patches/0001-nautilus-ext-python2.7.patch
=====================================
@@ -1,12 +1,20 @@
-Description: Make the Nautilus extension work with Python2.7
-  This patch enables the use of the Nautilus extension in the upcoming
-  Debian release Buster, as python-nautilus still builds against Python
-  2.7.
-Author: Georg Faerber <georg at riseup.net>
+From: Jonas Meurer <jonas at freesources.org>
+Date: Fri, 22 Feb 2019 22:59:18 +0100
+Subject: Patch nautilus/mat2.py to be a python2 wrapper arount mat2
+
+* Since Debian Buster still ships only Python 2 version of
+  nautilus-python, the only option to use the mat2 nautilus
+  extension is to make it a python2 wrapper arount mat2.
+
+Author: Georg Faerber <georg at riseup.net>, Julien Voisin
+ <julien.voisin at dustri.org>
 Forwarded: not-needed
-Last-Update: 2019-02-18
 ---
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+ nautilus/mat2.py | 51 +++++++++++++++++++++++++++------------------------
+ 1 file changed, 27 insertions(+), 24 deletions(-)
+
+diff --git a/nautilus/mat2.py b/nautilus/mat2.py
+index 562f8a7..d0794d0 100644
 --- a/nautilus/mat2.py
 +++ b/nautilus/mat2.py
 @@ -1,5 +1,5 @@
@@ -17,17 +25,17 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
  """
  Because writing GUI is non-trivial (cf. https://0xacab.org/jvoisin/mat2/issues/3),
  we decided to write a Nautilus extensions instead
-@@ -12,34 +12,39 @@
-
+@@ -12,34 +12,37 @@ thread, so we'll have to resort to using a `queue` to pass "messages" around.
+ 
  # pylint: disable=no-name-in-module,unused-argument,no-self-use,import-error
-
+ 
 -import queue
-+import Queue
++import Queue as queue
  import threading
 -from typing import Tuple, Optional, List
 -from urllib.parse import unquote
 +from urlparse import unquote
-
+ 
  import gi
  gi.require_version('Nautilus', '3.0')
  gi.require_version('Gtk', '3.0')
@@ -35,24 +43,17 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
  from gi.repository import Nautilus, GObject, Gtk, Gio, GLib, GdkPixbuf
 +import subprocess
 +import mimetypes
-
++
+ 
 -from libmat2 import parser_factory
-
 +def _remove_metadata(fpath):
 +    """ This is a simple wrapper around the mat2 cli. """
-+    mat2_output = None
 +    try:
-+        call_mat2 = subprocess.check_output(['mat2', fpath])
++        return subprocess.check_output(['mat2', fpath])
 +    except subprocess.CalledProcessError, e:
-+        mat2_output = e.output
-+    return mat2_output
-+
-+
-+def _guess_mtype(fpath):
-+    """ Function to guess the mtype of a given file. """
-+    mtype, _ = mimetypes.guess_type(fpath)
-+    return mtype
-
++        return e.output
+ 
+ 
 -def _remove_metadata(fpath) -> Tuple[bool, Optional[str]]:
 -    """ This is a simple wrapper around libmat2, because it's
 -    easier and cleaner this way.
@@ -61,99 +62,89 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
 -    if parser is None:
 -        return False, mtype
 -    return parser.remove_all(), mtype
-
++def _guess_mtype(fpath):
++    """ Function to guess the mtype of a given file. """
++    mtype, _ = mimetypes.guess_type(fpath)
++    return mtype
+ 
  class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWidgetProvider):
      """ This class adds an item to the right-clic menu in Nautilus. """
-
+ 
      def __init__(self):
 -        super().__init__()
++        super(Mat2Extension, self).__init__()
          self.infobar_hbox = None
          self.infobar = None
          self.failed_items = list()
-@@ -61,7 +66,7 @@
+@@ -61,7 +64,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid
          self.infobar.get_content_area().pack_start(self.infobar_hbox, True, True, 0)
          self.infobar.show_all()
-
+ 
 -    def get_widget(self, uri, window) -> Gtk.Widget:
 +    def get_widget(self, uri, window):
          """ This is the method that we have to implement (because we're
          a LocationWidgetProvider) in order to show our infobar.
          """
-@@ -103,7 +108,7 @@
+@@ -103,7 +106,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid
          window.show_all()
-
+ 
      @staticmethod
 -    def __validate(fileinfo) -> Tuple[bool, str]:
 +    def __validate(fileinfo):
          """ Validate if a given file FileInfo `fileinfo` can be processed.
          Returns a boolean, and a textreason why"""
          if fileinfo.get_uri_scheme() != "file" or fileinfo.is_directory():
-@@ -112,7 +117,7 @@
+@@ -112,7 +115,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid
              return False, "Not writeable"
          return True, ""
-
+ 
 -    def __create_treeview(self) -> Gtk.TreeView:
 +    def __create_treeview(self):
          liststore = Gtk.ListStore(GdkPixbuf.Pixbuf, str, str)
          treeview = Gtk.TreeView(model=liststore)
-
-@@ -144,7 +149,7 @@
+ 
+@@ -144,7 +147,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid
          treeview.show_all()
          return treeview
-
+ 
 -    def __create_progressbar(self) -> Gtk.ProgressBar:
 +    def __create_progressbar(self):
          """ Create the progressbar used to notify that files are currently
          being processed.
          """
-@@ -161,11 +166,11 @@
-
+@@ -161,7 +164,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid
+ 
          return progressbar
-
+ 
 -    def __update_progressbar(self, processing_queue, progressbar) -> bool:
 +    def __update_progressbar(self, processing_queue, progressbar):
          """ This method is run via `Glib.add_idle` to update the progressbar."""
          try:
              fname = processing_queue.get(block=False)
--        except queue.Empty:
-+        except Queue.Empty:
-             return True
-
-         # `None` is the marker put in the queue to signal that every selected
-@@ -186,7 +191,7 @@
+@@ -186,7 +189,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid
          self.infobar.show_all()
          return True
-
+ 
 -    def __clean_files(self, files: list, processing_queue: queue.Queue) -> bool:
 +    def __clean_files(self, files, processing_queue):
          """ This method is threaded in order to avoid blocking the GUI
          while cleaning up the files.
          """
-@@ -200,8 +205,9 @@
+@@ -200,8 +203,8 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid
                  continue
-
+ 
              fpath = unquote(fileinfo.get_uri()[7:])  # `len('file://') = 7`
 -            success, mtype = _remove_metadata(fpath)
 -            if not success:
-+            output = _remove_metadata(fpath)
-+            if output is not None:
++            if _remove_metadata(fpath):
 +                mtype = _guess_mtype(fpath)
                  self.failed_items.append((fname, mtype, 'Unsupported/invalid'))
          processing_queue.put(None)  # signal that we processed all the files
          return True
-@@ -215,7 +221,7 @@
-         progressbar.set_pulse_step = 1.0 / len(files)
-         self.infobar.show_all()
-
--        processing_queue = queue.Queue()
-+        processing_queue = Queue.Queue()
-         GLib.idle_add(self.__update_progressbar, processing_queue, progressbar)
-
-         thread = threading.Thread(target=self.__clean_files, args=(files, processing_queue))
-@@ -226,7 +232,7 @@
+@@ -226,7 +229,7 @@ class Mat2Extension(GObject.GObject, Nautilus.MenuProvider, Nautilus.LocationWid
          """ https://bugzilla.gnome.org/show_bug.cgi?id=784278 """
          return None
-
+ 
 -    def get_file_items(self, window, files) -> Optional[List[Nautilus.MenuItem]]:
 +    def get_file_items(self, window, files):
          """ This method is the one allowing us to create a menu item.



View it on GitLab: https://salsa.debian.org/pkg-privacy-team/mat2/commit/5c7c1a7d2be9ffdee53184f84feb4bb9b35d27a3

-- 
View it on GitLab: https://salsa.debian.org/pkg-privacy-team/mat2/commit/5c7c1a7d2be9ffdee53184f84feb4bb9b35d27a3
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-privacy-commits/attachments/20190223/26c0896b/attachment-0001.html>


More information about the Pkg-privacy-commits mailing list