!12 Update to 0.28
From: @starlet-dx Reviewed-by: @caodongxia Signed-off-by: @caodongxia
This commit is contained in:
commit
2fb2714469
@ -1,61 +0,0 @@
|
|||||||
From 9b913229ace838958e51a16cabc41905a2460f7b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Conrad Kostecki <conrad@kostecki.com>
|
|
||||||
Date: Tue, 25 Aug 2020 00:24:53 +0200
|
|
||||||
Subject: [PATCH] Fix compatibility with >=python-3.8.4
|
|
||||||
|
|
||||||
Signed-off-by: Conrad Kostecki <conrad@kostecki.com>
|
|
||||||
---
|
|
||||||
xdg/Menu.py | 16 ++++++++++++++--
|
|
||||||
1 file changed, 14 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/xdg/Menu.py b/xdg/Menu.py
|
|
||||||
index 1d03cad..ee406bd 100644
|
|
||||||
--- a/xdg/Menu.py
|
|
||||||
+++ b/xdg/Menu.py
|
|
||||||
@@ -21,6 +21,7 @@ import os
|
|
||||||
import locale
|
|
||||||
import subprocess
|
|
||||||
import ast
|
|
||||||
+import sys
|
|
||||||
try:
|
|
||||||
import xml.etree.cElementTree as etree
|
|
||||||
except ImportError:
|
|
||||||
@@ -35,6 +36,17 @@ import xdg.Locale
|
|
||||||
import xdg.Config
|
|
||||||
|
|
||||||
|
|
||||||
+def _ast_const(name):
|
|
||||||
+ if sys.version_info >= (3, 4):
|
|
||||||
+ name = ast.literal_eval(name)
|
|
||||||
+ if sys.version_info >= (3, 8):
|
|
||||||
+ return ast.Constant(name)
|
|
||||||
+ else:
|
|
||||||
+ return ast.NameConstant(name)
|
|
||||||
+ else:
|
|
||||||
+ return ast.Name(id=name, ctx=ast.Load())
|
|
||||||
+
|
|
||||||
+
|
|
||||||
def _strxfrm(s):
|
|
||||||
"""Wrapper around locale.strxfrm that accepts unicode strings on Python 2.
|
|
||||||
|
|
||||||
@@ -754,7 +766,7 @@ class XMLMenuBuilder(object):
|
|
||||||
if expr:
|
|
||||||
tree.body = expr
|
|
||||||
else:
|
|
||||||
- tree.body = ast.Name('False', ast.Load())
|
|
||||||
+ tree.body = _ast_const('False')
|
|
||||||
ast.fix_missing_locations(tree)
|
|
||||||
return Rule(type, tree)
|
|
||||||
|
|
||||||
@@ -781,7 +793,7 @@ class XMLMenuBuilder(object):
|
|
||||||
expr = self.parse_bool_op(node, ast.Or())
|
|
||||||
return ast.UnaryOp(ast.Not(), expr) if expr else None
|
|
||||||
elif tag == 'All':
|
|
||||||
- return ast.Name('True', ast.Load())
|
|
||||||
+ return _ast_const('True')
|
|
||||||
elif tag == 'Category':
|
|
||||||
category = node.text
|
|
||||||
return ast.Compare(
|
|
||||||
--
|
|
||||||
2.39.0.windows.2
|
|
||||||
|
|
||||||
@ -1,174 +0,0 @@
|
|||||||
From 73476af1eecb8e29f2a461e003a2d8a735d22306 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Micka=C3=ABl=20Schoentgen?= <contact@tiger-222.fr>
|
|
||||||
Date: Sun, 9 Dec 2018 17:31:24 +0100
|
|
||||||
Subject: [PATCH] Fix several ResourceWarnings: unclosed file
|
|
||||||
|
|
||||||
---
|
|
||||||
xdg/IniFile.py | 61 +++++++++++++++++++++++-----------------------
|
|
||||||
xdg/Mime.py | 9 ++++---
|
|
||||||
xdg/RecentFiles.py | 43 ++++++++++++++++----------------
|
|
||||||
3 files changed, 57 insertions(+), 56 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/xdg/IniFile.py b/xdg/IniFile.py
|
|
||||||
index 718589f..84be614 100644
|
|
||||||
--- a/xdg/IniFile.py
|
|
||||||
+++ b/xdg/IniFile.py
|
|
||||||
@@ -56,38 +56,37 @@ class IniFile:
|
|
||||||
return
|
|
||||||
|
|
||||||
# parse file
|
|
||||||
- for line in fd:
|
|
||||||
- line = line.strip()
|
|
||||||
- # empty line
|
|
||||||
- if not line:
|
|
||||||
- continue
|
|
||||||
- # comment
|
|
||||||
- elif line[0] == '#':
|
|
||||||
- continue
|
|
||||||
- # new group
|
|
||||||
- elif line[0] == '[':
|
|
||||||
- currentGroup = line.lstrip("[").rstrip("]")
|
|
||||||
- if debug and self.hasGroup(currentGroup):
|
|
||||||
- raise DuplicateGroupError(currentGroup, filename)
|
|
||||||
- else:
|
|
||||||
- content[currentGroup] = {}
|
|
||||||
- # key
|
|
||||||
- else:
|
|
||||||
- try:
|
|
||||||
- key, value = line.split("=", 1)
|
|
||||||
- except ValueError:
|
|
||||||
- raise ParsingError("Invalid line: " + line, filename)
|
|
||||||
-
|
|
||||||
- key = key.strip() # Spaces before/after '=' should be ignored
|
|
||||||
- try:
|
|
||||||
- if debug and self.hasKey(key, currentGroup):
|
|
||||||
- raise DuplicateKeyError(key, currentGroup, filename)
|
|
||||||
+ with fd:
|
|
||||||
+ for line in fd:
|
|
||||||
+ line = line.strip()
|
|
||||||
+ # empty line
|
|
||||||
+ if not line:
|
|
||||||
+ continue
|
|
||||||
+ # comment
|
|
||||||
+ elif line[0] == '#':
|
|
||||||
+ continue
|
|
||||||
+ # new group
|
|
||||||
+ elif line[0] == '[':
|
|
||||||
+ currentGroup = line.lstrip("[").rstrip("]")
|
|
||||||
+ if debug and self.hasGroup(currentGroup):
|
|
||||||
+ raise DuplicateGroupError(currentGroup, filename)
|
|
||||||
else:
|
|
||||||
- content[currentGroup][key] = value.strip()
|
|
||||||
- except (IndexError, UnboundLocalError):
|
|
||||||
- raise ParsingError("Parsing error on key, group missing", filename)
|
|
||||||
-
|
|
||||||
- fd.close()
|
|
||||||
+ content[currentGroup] = {}
|
|
||||||
+ # key
|
|
||||||
+ else:
|
|
||||||
+ try:
|
|
||||||
+ key, value = line.split("=", 1)
|
|
||||||
+ except ValueError:
|
|
||||||
+ raise ParsingError("Invalid line: " + line, filename)
|
|
||||||
+
|
|
||||||
+ key = key.strip() # Spaces before/after '=' should be ignored
|
|
||||||
+ try:
|
|
||||||
+ if debug and self.hasKey(key, currentGroup):
|
|
||||||
+ raise DuplicateKeyError(key, currentGroup, filename)
|
|
||||||
+ else:
|
|
||||||
+ content[currentGroup][key] = value.strip()
|
|
||||||
+ except (IndexError, UnboundLocalError):
|
|
||||||
+ raise ParsingError("Parsing error on key, group missing", filename)
|
|
||||||
|
|
||||||
self.filename = filename
|
|
||||||
self.tainted = False
|
|
||||||
diff --git a/xdg/Mime.py b/xdg/Mime.py
|
|
||||||
index 3bff8b2..886cb42 100644
|
|
||||||
--- a/xdg/Mime.py
|
|
||||||
+++ b/xdg/Mime.py
|
|
||||||
@@ -749,14 +749,16 @@ def install_mime_info(application, package_file):
|
|
||||||
file with the same name (if the contents are different)"""
|
|
||||||
application += '.xml'
|
|
||||||
|
|
||||||
- new_data = open(package_file).read()
|
|
||||||
+ with open(package_file) as f:
|
|
||||||
+ new_data = f.read()
|
|
||||||
|
|
||||||
# See if the file is already installed
|
|
||||||
package_dir = os.path.join('mime', 'packages')
|
|
||||||
resource = os.path.join(package_dir, application)
|
|
||||||
for x in BaseDirectory.load_data_paths(resource):
|
|
||||||
try:
|
|
||||||
- old_data = open(x).read()
|
|
||||||
+ with open(x) as f:
|
|
||||||
+ old_data = f.read()
|
|
||||||
except:
|
|
||||||
continue
|
|
||||||
if old_data == new_data:
|
|
||||||
@@ -770,7 +772,8 @@ def install_mime_info(application, package_file):
|
|
||||||
new_file = os.path.join(BaseDirectory.save_data_path(package_dir), application)
|
|
||||||
|
|
||||||
# Write the file...
|
|
||||||
- open(new_file, 'w').write(new_data)
|
|
||||||
+ with open(new_file, 'w') as f:
|
|
||||||
+ f.write(new_data)
|
|
||||||
|
|
||||||
# Update the database...
|
|
||||||
command = 'update-mime-database'
|
|
||||||
diff --git a/xdg/RecentFiles.py b/xdg/RecentFiles.py
|
|
||||||
index 3038b57..7ee7ee5 100644
|
|
||||||
--- a/xdg/RecentFiles.py
|
|
||||||
+++ b/xdg/RecentFiles.py
|
|
||||||
@@ -71,28 +71,27 @@ class RecentFiles:
|
|
||||||
elif not filename:
|
|
||||||
filename = self.filename
|
|
||||||
|
|
||||||
- f = open(filename, "w")
|
|
||||||
- fcntl.lockf(f, fcntl.LOCK_EX)
|
|
||||||
- f.write('<?xml version="1.0"?>\n')
|
|
||||||
- f.write("<RecentFiles>\n")
|
|
||||||
-
|
|
||||||
- for r in self.RecentFiles:
|
|
||||||
- f.write(" <RecentItem>\n")
|
|
||||||
- f.write(" <URI>%s</URI>\n" % xml.sax.saxutils.escape(r.URI))
|
|
||||||
- f.write(" <Mime-Type>%s</Mime-Type>\n" % r.MimeType)
|
|
||||||
- f.write(" <Timestamp>%s</Timestamp>\n" % r.Timestamp)
|
|
||||||
- if r.Private == True:
|
|
||||||
- f.write(" <Private/>\n")
|
|
||||||
- if len(r.Groups) > 0:
|
|
||||||
- f.write(" <Groups>\n")
|
|
||||||
- for group in r.Groups:
|
|
||||||
- f.write(" <Group>%s</Group>\n" % group)
|
|
||||||
- f.write(" </Groups>\n")
|
|
||||||
- f.write(" </RecentItem>\n")
|
|
||||||
-
|
|
||||||
- f.write("</RecentFiles>\n")
|
|
||||||
- fcntl.lockf(f, fcntl.LOCK_UN)
|
|
||||||
- f.close()
|
|
||||||
+ with open(filename, "w") as f:
|
|
||||||
+ fcntl.lockf(f, fcntl.LOCK_EX)
|
|
||||||
+ f.write('<?xml version="1.0"?>\n')
|
|
||||||
+ f.write("<RecentFiles>\n")
|
|
||||||
+
|
|
||||||
+ for r in self.RecentFiles:
|
|
||||||
+ f.write(" <RecentItem>\n")
|
|
||||||
+ f.write(" <URI>%s</URI>\n" % xml.sax.saxutils.escape(r.URI))
|
|
||||||
+ f.write(" <Mime-Type>%s</Mime-Type>\n" % r.MimeType)
|
|
||||||
+ f.write(" <Timestamp>%s</Timestamp>\n" % r.Timestamp)
|
|
||||||
+ if r.Private == True:
|
|
||||||
+ f.write(" <Private/>\n")
|
|
||||||
+ if len(r.Groups) > 0:
|
|
||||||
+ f.write(" <Groups>\n")
|
|
||||||
+ for group in r.Groups:
|
|
||||||
+ f.write(" <Group>%s</Group>\n" % group)
|
|
||||||
+ f.write(" </Groups>\n")
|
|
||||||
+ f.write(" </RecentItem>\n")
|
|
||||||
+
|
|
||||||
+ f.write("</RecentFiles>\n")
|
|
||||||
+ fcntl.lockf(f, fcntl.LOCK_UN)
|
|
||||||
|
|
||||||
def getFiles(self, mimetypes=None, groups=None, limit=0):
|
|
||||||
"""Get a list of recently used files.
|
|
||||||
--
|
|
||||||
2.39.0.windows.2
|
|
||||||
|
|
||||||
Binary file not shown.
BIN
pyxdg-0.28-test-example.tar.gz
Normal file
BIN
pyxdg-0.28-test-example.tar.gz
Normal file
Binary file not shown.
BIN
pyxdg-0.28.tar.gz
Normal file
BIN
pyxdg-0.28.tar.gz
Normal file
Binary file not shown.
24
pyxdg.spec
24
pyxdg.spec
@ -1,12 +1,12 @@
|
|||||||
Name: pyxdg
|
Name: pyxdg
|
||||||
Version: 0.26
|
Version: 0.28
|
||||||
Release: 5
|
Release: 1
|
||||||
Summary: Python library to access freedesktop APIs
|
Summary: Python library to access freedesktop APIs
|
||||||
License: LGPLv2
|
License: LGPLv2
|
||||||
URL: http://freedesktop.org/Software/pyxdg
|
URL: http://freedesktop.org/Software/pyxdg
|
||||||
Source0: https://pypi.io/packages/source/P/PyXDG/pyxdg-%{version}.tar.gz
|
Source0: https://pypi.io/packages/source/P/PyXDG/pyxdg-%{version}.tar.gz
|
||||||
Patch0: Fix-several-ResourceWarnings-unclosed-file.patch
|
# https://gitlab.freedesktop.org/xdg/pyxdg/-/archive/rel-%{version}/pyxdg-rel-%{version}.tar.gz?path=test/example
|
||||||
Patch1: Fix-compatibility-with-python-3.8.4.patch
|
Source1: pyxdg-0.28-test-example.tar.gz
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
@ -18,17 +18,17 @@ PyXDG package provides a library to invoke APIs that conform to freedesktop.org
|
|||||||
%package -n python3-pyxdg
|
%package -n python3-pyxdg
|
||||||
Summary: Python3 library to access freedesktop APIs
|
Summary: Python3 library to access freedesktop APIs
|
||||||
BuildRequires: python%{python3_pkgversion}-devel
|
BuildRequires: python%{python3_pkgversion}-devel
|
||||||
%if %{with check}
|
BuildRequires: python%{python3_pkgversion}-setuptools
|
||||||
|
BuildRequires: python%{python3_pkgversion}-pytest
|
||||||
|
|
||||||
BuildRequires: python%{python3_pkgversion}-nose
|
|
||||||
%endif
|
|
||||||
%{?python_provide:%python_provide python%{python3_pkgversion}-pyxdg}
|
%{?python_provide:%python_provide python%{python3_pkgversion}-pyxdg}
|
||||||
|
|
||||||
%description -n python%{python3_pkgversion}-pyxdg
|
%description -n python%{python3_pkgversion}-pyxdg
|
||||||
This package contains a Python 3 version of PyXDG.
|
This package contains a Python 3 version of PyXDG.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%setup -q -b 1
|
||||||
|
cp -r ../pyxdg-rel-%{version}-test-example/test/example test/
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%py3_build
|
%py3_build
|
||||||
@ -36,10 +36,9 @@ This package contains a Python 3 version of PyXDG.
|
|||||||
%install
|
%install
|
||||||
%py3_install
|
%py3_install
|
||||||
|
|
||||||
%if %{with check}
|
|
||||||
%check
|
%check
|
||||||
nosetests-%{python3_version} || :
|
export PYTHONPATH=%{buildroot}%{python3_sitelib}
|
||||||
%endif
|
pytest test/test*.py -v
|
||||||
|
|
||||||
%files -n python%{python3_pkgversion}-pyxdg
|
%files -n python%{python3_pkgversion}-pyxdg
|
||||||
%license COPYING
|
%license COPYING
|
||||||
@ -48,6 +47,9 @@ nosetests-%{python3_version} || :
|
|||||||
%{python3_sitelib}/pyxdg-*.egg-info
|
%{python3_sitelib}/pyxdg-*.egg-info
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 08 2023 yaoxin <yao_xin001@hoperun.com> - 0.28-1
|
||||||
|
- Update to 0.28
|
||||||
|
|
||||||
* Tue Jan 17 2023 zhangliangpengkun<zhangliangpengkun@xfusion.com> - 0.26-5
|
* Tue Jan 17 2023 zhangliangpengkun<zhangliangpengkun@xfusion.com> - 0.26-5
|
||||||
- Fix-compatibility-with-python-3.8.4.patch
|
- Fix-compatibility-with-python-3.8.4.patch
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user