[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