Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15-SP4:FactoryCandidates
python-anymarkup-core
drop-python2-support.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File drop-python2-support.patch of Package python-anymarkup-core
From 1d0c5673c15116625c02316b2605648b92cf18a4 Mon Sep 17 00:00:00 2001 From: Daniel Garcia Moreno <daniel.garcia@suse.com> Date: Thu, 20 Oct 2022 08:45:53 +0200 Subject: [PATCH] Drop python2 support Python2 is very old and not maintained anymore, this patch removes the python-six dependency and drop python2 support. --- anymarkup_core/__init__.py | 36 +++++++++++++----------------------- requirements.txt | 1 - setup.py | 7 +++---- test/test_parse.py | 5 ++--- test/test_serialize.py | 3 +-- 5 files changed, 19 insertions(+), 33 deletions(-) diff --git a/anymarkup_core/__init__.py b/anymarkup_core/__init__.py index 91f4133..21ccc78 100644 --- a/anymarkup_core/__init__.py +++ b/anymarkup_core/__init__.py @@ -7,7 +7,6 @@ import os import re import traceback -import six try: import configobj except ImportError: @@ -95,7 +94,7 @@ def parse(inp, format=None, encoding='utf-8', force_types=True, interpolate=True if hasattr(inp, 'read'): proper_inp = inp.read() # if proper_inp is unicode, encode it - if isinstance(proper_inp, six.text_type): + if isinstance(proper_inp, str): proper_inp = proper_inp.encode(encoding) # try to guess markup type @@ -105,7 +104,7 @@ def parse(inp, format=None, encoding='utf-8', force_types=True, interpolate=True fmt = _get_format(format, fname, proper_inp) # make it look like file-like bytes-yielding object - proper_inp = six.BytesIO(proper_inp) + proper_inp = io.BytesIO(proper_inp) try: res = _do_parse(proper_inp, fmt, encoding, force_types, interpolate) @@ -232,22 +231,17 @@ def _do_parse(inp, fmt, encoding, force_types, interpolate): cfg = configobj.ConfigObj(inp, encoding=encoding, interpolation=interpolate) res = cfg.dict() elif fmt == 'json': - if six.PY3: - # python 3 json only reads from unicode objects - inp = io.TextIOWrapper(inp, encoding=encoding) - res = json.load(inp) - else: - res = json.load(inp, encoding=encoding) + # python 3 json only reads from unicode objects + inp = io.TextIOWrapper(inp, encoding=encoding) + res = json.load(inp) elif fmt == 'json5': - if six.PY3: - inp = io.TextIOWrapper(inp, encoding=encoding) + inp = io.TextIOWrapper(inp, encoding=encoding) res = json5.load(inp, encoding=encoding) elif fmt == 'toml': if not _is_utf8(encoding): raise AnyMarkupError('toml is always utf-8 encoded according to specification') - if six.PY3: - # python 3 toml prefers unicode objects - inp = io.TextIOWrapper(inp, encoding=encoding) + # python 3 toml prefers unicode objects + inp = io.TextIOWrapper(inp, encoding=encoding) res = toml.load(inp) elif fmt == 'xml': res = xmltodict.parse(inp, encoding=encoding) @@ -336,9 +330,9 @@ def _ensure_proper_types(struct, encoding, force_types): res = [] for i in struct: res.append(_ensure_proper_types(i, encoding, force_types)) - elif isinstance(struct, six.binary_type): + elif isinstance(struct, bytes): res = struct.decode(encoding) - elif isinstance(struct, (six.text_type, type(None), type(True), six.integer_types, float)): + elif isinstance(struct, (str, type(None), type(True), int, float)): res = struct elif isinstance(struct, datetime.datetime): # toml can parse datetime natively @@ -347,11 +341,11 @@ def _ensure_proper_types(struct, encoding, force_types): raise AnyMarkupError('internal error - unexpected type {0} in parsed markup'. format(type(struct))) - if force_types and isinstance(res, six.text_type): + if force_types and isinstance(res, str): res = _recognize_basic_types(res) elif not (force_types or - isinstance(res, (dict, collections.OrderedDict, list, six.text_type))): - res = six.text_type(res) + isinstance(res, (dict, collections.OrderedDict, list, str))): + res = str(res) return res @@ -361,8 +355,6 @@ def _recognize_basic_types(s): to a proper type and return it. """ tps = [int, float] - if not six.PY3: # compat for older versions of six that don't have PY2 - tps.append(long) for tp in tps: try: return tp(s) @@ -498,5 +490,3 @@ if yaml is not None: yaml.SafeLoader.add_constructor(u'tag:yaml.org,2002:omap', construct_ordereddict) yaml.SafeDumper.add_representer(collections.OrderedDict, represent_ordereddict) yaml.SafeDumper.add_representer(str, represent_str) - if six.PY2: - yaml.SafeDumper.add_representer(unicode, represent_str) diff --git a/requirements.txt b/requirements.txt index ffe2fce..e69de29 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +0,0 @@ -six diff --git a/setup.py b/setup.py index e5b0be2..5391427 100644 --- a/setup.py +++ b/setup.py @@ -21,9 +21,8 @@ setup( 'License :: OSI Approved :: BSD License', 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3.3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', ] ) diff --git a/test/test_parse.py b/test/test_parse.py index 3c0bf86..cddd872 100644 --- a/test/test_parse.py +++ b/test/test_parse.py @@ -4,7 +4,6 @@ import io import os import pytest -import six import toml from anymarkup_core import * @@ -23,8 +22,8 @@ class TestParse(object): elif isinstance(struct, list): for i in struct: self.assert_unicode(i) - elif isinstance(struct, (six.string_types, type(None), type(True), \ - six.integer_types, float, datetime)): + elif isinstance(struct, (str, type(None), type(True), \ + int, float, datetime)): pass else: raise AssertionError('Unexpected type {0} in parsed structure'.format(type(struct))) diff --git a/test/test_serialize.py b/test/test_serialize.py index 8191561..9ffbeab 100644 --- a/test/test_serialize.py +++ b/test/test_serialize.py @@ -3,7 +3,6 @@ import io import os import pytest -import six from anymarkup_core import * @@ -21,7 +20,7 @@ class TestSerialize(object): fixtures = os.path.join(os.path.dirname(__file__), 'fixtures') def _read_decode(self, file): - if isinstance(file, six.string_types): + if isinstance(file, str): file = open(file, 'rb') else: file.seek(0) -- 2.38.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor