From 9322cb8a8ff025d4c1654bed8f6ec51c222bf95b Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Thu, 2 Jan 2020 22:06:31 -0600 Subject: [PATCH] Fix python3 in some Linux distributions --- CHANGELOG | 4 + README.md | 4 +- VERSION | 2 +- conf.py | 2 +- easymacro.py | 121 +++++++++++++++--- .../{ZAZPip_v0.3.0.oxt => ZAZPip_v0.4.0.oxt} | Bin 80674 -> 81129 bytes source/META-INF/manifest.xml | 2 +- source/ZAZPip.py | 6 +- source/description.xml | 2 +- source/pythonpath/easymacro.py | 121 +++++++++++++++--- 10 files changed, 217 insertions(+), 47 deletions(-) rename files/{ZAZPip_v0.3.0.oxt => ZAZPip_v0.4.0.oxt} (51%) diff --git a/CHANGELOG b/CHANGELOG index d83bb2a..c3f8ebb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +v 0.4.0 [22-nov-2019] + - Update easymacro.py + + v 0.3.0 [12-nov-2019] - Update easymacro.py - Test install numpy diff --git a/README.md b/README.md index da201de..eeb6f0b 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ https://gitlab.com/mauriciobaeza/zaz This extension have a cost of maintenance of 1 euro every year. -BCH: `1RPLWHJW34p7pMQV1ft4x7eWhAYw69Dsb` +BCH: `qztd3l00xle5tffdqvh2snvadkuau2ml0uqm4n875d` -BTC: `3Fe4JuADrAK8Qs7GDAxbSXR8E54avwZJLW` +BTC: `3FhiXcXmAesmQzrNEngjHFnvaJRhU1AGWV` PayPal :( donate ATT elmau DOT net diff --git a/VERSION b/VERSION index 69367fd..26b5dec 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -0.3.0 +0.4.0 diff --git a/conf.py b/conf.py index 3643ab8..acd4846 100644 --- a/conf.py +++ b/conf.py @@ -26,7 +26,7 @@ import logging TYPE_EXTENSION = 1 # ~ https://semver.org/ -VERSION = '0.3.0' +VERSION = '0.4.0' # ~ Your great extension name, not used spaces NAME = 'ZAZPip' diff --git a/easymacro.py b/easymacro.py index 8e8e604..23613cb 100644 --- a/easymacro.py +++ b/easymacro.py @@ -132,7 +132,7 @@ IS_WIN = OS == 'Windows' LOG_NAME = 'ZAZ' CLIPBOARD_FORMAT_TEXT = 'text/plain;charset=utf-16' -PYTHON = 'python' +PYTHON = 'python3' if IS_WIN: PYTHON = 'python.exe' CALC = 'calc' @@ -450,12 +450,14 @@ def call_dispatch(url, args=()): return -def get_temp_file(): +def get_temp_file(only_name=False): delete = True if IS_WIN: delete = False - return tempfile.NamedTemporaryFile(delete=delete) - + tmp = tempfile.NamedTemporaryFile(delete=delete) + if only_name: + tmp = tmp.name + return tmp def _path_url(path): if path.startswith('file://'): @@ -497,6 +499,11 @@ def dict_to_property(values, uno_any=False): return ps +def dict_to_named(values): + ps = tuple([NamedValue(n, v) for n, v in values.items()]) + return ps + + def property_to_dict(values): d = {i.Name: i.Value for i in values} return d @@ -1650,7 +1657,7 @@ class LODrawImpress(LODocument): def insert_image(self, path, **kwargs): w = kwargs.get('width', 3000) - h = kwargs.get('Height', 1000) + h = kwargs.get('Height', 3000) x = kwargs.get('X', 1000) y = kwargs.get('Y', 1000) @@ -1799,6 +1806,15 @@ class LOCellRange(object): def columns(self): return self._obj.Columns.Count + @property + def row(self): + a = self.address + if hasattr(a, 'Row'): + r = a.Row + else: + r = a.StartRow + return r + @property def rows(self): return self._obj.Rows.Count @@ -1835,6 +1851,33 @@ class LOCellRange(object): self.sheet.obj.copyRange(self.address, source.range_address) return + def transpose(self, formula=False): + data = self.data + if formula: + data = self.formula + data = tuple(zip(*data)) + self.clear(1023) + self[0,0].copy_from(data, formula=formula) + return + + def transpose2(self): + # ~ 'Flags': 'A', + # ~ 'FormulaCommand': 0, + # ~ 'SkipEmptyCells': False, + # ~ 'AsLink': False, + # ~ 'MoveMode': 4, + args = { + 'Transpose': True, + } + args = dict_to_property(args) + self.select() + copy() + self.clear(1023) + self[0,0].select() + call_dispatch('.uno:InsertContents', args) + set_clipboard('') + return + def offset(self, row=1, col=0): ra = self.obj.getRangeAddress() col = ra.EndColumn + col @@ -1937,6 +1980,10 @@ class LOCellRange(object): def auto_format(self, value): self.obj.autoFormat(value) + def auto_width(self): + self.obj.Columns.OptimalWidth = True + return + def insert_image(self, path, **kwargs): s = self.obj.Size w = kwargs.get('width', s.Width) @@ -2058,6 +2105,22 @@ class LOCellRange(object): found = self.obj.replaceAll(descriptor) return found + @property + def validation(self): + return self.obj.Validation + @validation.setter + def validation(self, values): + is_list = False + current = self.validation + for k, v in values.items(): + if k == 'Type' and v == 6: + is_list = True + if k == 'Formula1' and is_list: + if isinstance(v, (tuple, list)): + v = ';'.join(['"{}"'.format(i) for i in v]) + setattr(current, k, v) + self.obj.Validation = current + class EventsListenerBase(unohelper.Base, XEventListener): @@ -2452,23 +2515,39 @@ class UnoBaseObject(object): return self._model.Width @width.setter def width(self, value): - if hasattr(self.model, 'Width'): - self.model.Width = value - elif hasattr(self.obj, 'PosSize'): - self._set_possize('Width', value) + self.model.Width = value + + @property + def ps_width(self): + return self._get_possize('Width') + @ps_width.setter + def ps_width(self, value): + self._set_possize('Width', value) @property def height(self): - if hasattr(self.model, 'Height'): - return self.model.Height - ps = self.obj.getPosSize() - return ps.Height + return self.model.Height @height.setter def height(self, value): - if hasattr(self.model, 'Height'): - self.model.Height = value - elif hasattr(self.obj, 'PosSize'): - self._set_possize('Height', value) + self.model.Height = value + + @property + def ps_height(self): + return self._get_possize('Height') + @ps_height.setter + def ps_height(self, value): + self._set_possize('Height', value) + + @property + def size(self): + ps = self.obj.getPosSize() + return (ps.Width, ps.Height) + @size.setter + def size(self, value): + ps = self.obj.getPosSize() + ps.Width = value[0] + ps.Height = value[1] + self.obj.setPosSize(ps.X, ps.Y, ps.Width, ps.Height, SIZE) @property def tag(self): @@ -4213,8 +4292,12 @@ def json_loads(data): def get_path_extension(id): + path = '' pip = CTX.getValueByName('/singletons/com.sun.star.deployment.PackageInformationProvider') - path = _path_system(pip.getPackageLocation(id)) + try: + path = _path_system(pip.getPackageLocation(id)) + except Exception as e: + error(e) return path @@ -4487,7 +4570,7 @@ def _zippwd(source, target, pwd): # ~ Export ok -def zip(source, target='', mode='w', pwd=''): +def zip_files(source, target='', mode='w', pwd=''): if pwd: return _zippwd(source, target, pwd) diff --git a/files/ZAZPip_v0.3.0.oxt b/files/ZAZPip_v0.4.0.oxt similarity index 51% rename from files/ZAZPip_v0.3.0.oxt rename to files/ZAZPip_v0.4.0.oxt index e412bc53a5e35391a6ce8490e8ef736f743982fb..d68c1cbc2ee011cf4ca58c9e2f955e76237d185e 100644 GIT binary patch delta 37038 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

#sM0|ttDOCMy)J623dClcZD=cS9Dw~KY*hxZ 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 delta 36568 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 - + diff --git a/source/ZAZPip.py b/source/ZAZPip.py index 6473f17..34ebfe0 100644 --- a/source/ZAZPip.py +++ b/source/ZAZPip.py @@ -17,6 +17,8 @@ PACKAGES = { 'psycopg2-binary': 'ok.png', 'peewee': 'ok.png', 'numpy': 'ok.png', + 'pillow': 'ok.png', + 'pytesseract': 'ok.png', } @@ -58,9 +60,7 @@ class Controllers(object): def _install_pip(self): self.d.link_proyect.visible = False self.d.lst_log.visible = True - - with app.get_temp_file() as f: - path_pip = f.name + path_pip = app.get_temp_file(True) self.d.lst_log.insert('Download PIP...') data, err = app.url_open(URL_PIP, verify=False) diff --git a/source/description.xml b/source/description.xml index 015d124..3a29c42 100644 --- a/source/description.xml +++ b/source/description.xml @@ -1,7 +1,7 @@ - + ZAZ Pip ZAZ Pip diff --git a/source/pythonpath/easymacro.py b/source/pythonpath/easymacro.py index 8e8e604..23613cb 100644 --- a/source/pythonpath/easymacro.py +++ b/source/pythonpath/easymacro.py @@ -132,7 +132,7 @@ IS_WIN = OS == 'Windows' LOG_NAME = 'ZAZ' CLIPBOARD_FORMAT_TEXT = 'text/plain;charset=utf-16' -PYTHON = 'python' +PYTHON = 'python3' if IS_WIN: PYTHON = 'python.exe' CALC = 'calc' @@ -450,12 +450,14 @@ def call_dispatch(url, args=()): return -def get_temp_file(): +def get_temp_file(only_name=False): delete = True if IS_WIN: delete = False - return tempfile.NamedTemporaryFile(delete=delete) - + tmp = tempfile.NamedTemporaryFile(delete=delete) + if only_name: + tmp = tmp.name + return tmp def _path_url(path): if path.startswith('file://'): @@ -497,6 +499,11 @@ def dict_to_property(values, uno_any=False): return ps +def dict_to_named(values): + ps = tuple([NamedValue(n, v) for n, v in values.items()]) + return ps + + def property_to_dict(values): d = {i.Name: i.Value for i in values} return d @@ -1650,7 +1657,7 @@ class LODrawImpress(LODocument): def insert_image(self, path, **kwargs): w = kwargs.get('width', 3000) - h = kwargs.get('Height', 1000) + h = kwargs.get('Height', 3000) x = kwargs.get('X', 1000) y = kwargs.get('Y', 1000) @@ -1799,6 +1806,15 @@ class LOCellRange(object): def columns(self): return self._obj.Columns.Count + @property + def row(self): + a = self.address + if hasattr(a, 'Row'): + r = a.Row + else: + r = a.StartRow + return r + @property def rows(self): return self._obj.Rows.Count @@ -1835,6 +1851,33 @@ class LOCellRange(object): self.sheet.obj.copyRange(self.address, source.range_address) return + def transpose(self, formula=False): + data = self.data + if formula: + data = self.formula + data = tuple(zip(*data)) + self.clear(1023) + self[0,0].copy_from(data, formula=formula) + return + + def transpose2(self): + # ~ 'Flags': 'A', + # ~ 'FormulaCommand': 0, + # ~ 'SkipEmptyCells': False, + # ~ 'AsLink': False, + # ~ 'MoveMode': 4, + args = { + 'Transpose': True, + } + args = dict_to_property(args) + self.select() + copy() + self.clear(1023) + self[0,0].select() + call_dispatch('.uno:InsertContents', args) + set_clipboard('') + return + def offset(self, row=1, col=0): ra = self.obj.getRangeAddress() col = ra.EndColumn + col @@ -1937,6 +1980,10 @@ class LOCellRange(object): def auto_format(self, value): self.obj.autoFormat(value) + def auto_width(self): + self.obj.Columns.OptimalWidth = True + return + def insert_image(self, path, **kwargs): s = self.obj.Size w = kwargs.get('width', s.Width) @@ -2058,6 +2105,22 @@ class LOCellRange(object): found = self.obj.replaceAll(descriptor) return found + @property + def validation(self): + return self.obj.Validation + @validation.setter + def validation(self, values): + is_list = False + current = self.validation + for k, v in values.items(): + if k == 'Type' and v == 6: + is_list = True + if k == 'Formula1' and is_list: + if isinstance(v, (tuple, list)): + v = ';'.join(['"{}"'.format(i) for i in v]) + setattr(current, k, v) + self.obj.Validation = current + class EventsListenerBase(unohelper.Base, XEventListener): @@ -2452,23 +2515,39 @@ class UnoBaseObject(object): return self._model.Width @width.setter def width(self, value): - if hasattr(self.model, 'Width'): - self.model.Width = value - elif hasattr(self.obj, 'PosSize'): - self._set_possize('Width', value) + self.model.Width = value + + @property + def ps_width(self): + return self._get_possize('Width') + @ps_width.setter + def ps_width(self, value): + self._set_possize('Width', value) @property def height(self): - if hasattr(self.model, 'Height'): - return self.model.Height - ps = self.obj.getPosSize() - return ps.Height + return self.model.Height @height.setter def height(self, value): - if hasattr(self.model, 'Height'): - self.model.Height = value - elif hasattr(self.obj, 'PosSize'): - self._set_possize('Height', value) + self.model.Height = value + + @property + def ps_height(self): + return self._get_possize('Height') + @ps_height.setter + def ps_height(self, value): + self._set_possize('Height', value) + + @property + def size(self): + ps = self.obj.getPosSize() + return (ps.Width, ps.Height) + @size.setter + def size(self, value): + ps = self.obj.getPosSize() + ps.Width = value[0] + ps.Height = value[1] + self.obj.setPosSize(ps.X, ps.Y, ps.Width, ps.Height, SIZE) @property def tag(self): @@ -4213,8 +4292,12 @@ def json_loads(data): def get_path_extension(id): + path = '' pip = CTX.getValueByName('/singletons/com.sun.star.deployment.PackageInformationProvider') - path = _path_system(pip.getPackageLocation(id)) + try: + path = _path_system(pip.getPackageLocation(id)) + except Exception as e: + error(e) return path @@ -4487,7 +4570,7 @@ def _zippwd(source, target, pwd): # ~ Export ok -def zip(source, target='', mode='w', pwd=''): +def zip_files(source, target='', mode='w', pwd=''): if pwd: return _zippwd(source, target, pwd)