From: Alexandre Detiste , ngraves@ngraves.fr diff --git a/pyproject.toml b/pyproject.toml index 98b5603..7b192a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,6 @@ include = [ [tool.poetry.dependencies] python = "^3.7" -six = ">=1.13.0" [tool.poetry.group.dev.dependencies] # Testing dependencies - pytest for all Python versions diff --git a/treelib/__init__.py b/treelib/__init__.py index bed89cc..f164208 100644 --- a/treelib/__init__.py +++ b/treelib/__init__.py @@ -57,15 +57,6 @@ Common Use Cases: - Abstract syntax trees - Family trees and genealogy -Compatibility Note: - To ensure string compatibility between Python 2.x and 3.x, treelib follows - Python 3.x string handling conventions. All strings are handled as unicode. - - For Python 2.x users with non-ASCII characters, enable unicode literals: - - .. code-block:: python - - from __future__ import unicode_literals """ from .node import Node # noqa: F401 diff --git a/treelib/node.py b/treelib/node.py index cb79a01..64547f7 100644 --- a/treelib/node.py +++ b/treelib/node.py @@ -22,8 +22,6 @@ Note: directly instantiated, as the Tree class manages the parent-child relationships automatically. """ -from __future__ import unicode_literals - import copy import sys import uuid @@ -40,7 +38,7 @@ else: StrList = List[str] # Python 3.8 and earlier -class Node(object): +class Node: """ Elementary node object stored in Tree structures. diff --git a/treelib/tree.py b/treelib/tree.py index 39bbdb5..8042175 100644 --- a/treelib/tree.py +++ b/treelib/tree.py @@ -26,26 +26,13 @@ Key Features: - Subtree operations and filtering - Tree metrics and analysis tools """ -from __future__ import print_function, unicode_literals - -try: - from builtins import str as text -except ImportError: - from __builtin__ import str as text # type: ignore - import codecs import json import sys import uuid from copy import deepcopy from typing import Any, Callable, List, Optional, Union, cast - -from six import iteritems, python_2_unicode_compatible - -try: - from StringIO import StringIO # type: ignore -except ImportError: - from io import StringIO +from io import StringIO from .exceptions import ( DuplicatedNodeIdError, @@ -70,8 +57,7 @@ else: __author__ = "chenxm" -@python_2_unicode_compatible -class Tree(object): +class Tree(): """ Hierarchical tree data structure. @@ -220,7 +206,7 @@ class Tree(object): if tree is not None: self.root = tree.root - for nid, node in iteritems(tree.nodes): + for nid, node in tree.nodes.items(): new_node = deepcopy(node) if deep else node self._nodes[nid] = new_node if tree.identifier != self._identifier: @@ -1540,9 +1526,9 @@ class Tree(object): set_joint = set(new_tree._nodes) & set(self._nodes) # joint keys if set_joint: - raise ValueError("Duplicated nodes %s exists." % list(map(text, set_joint))) + raise ValueError("Duplicated nodes %s exists." % list(map(str, set_joint))) - for cid, node in iteritems(new_tree.nodes): + for cid, node in new_tree.nodes.items(): if deep: node = deepcopy(new_tree[node]) self._nodes.update({cid: node}) @@ -1909,7 +1895,7 @@ class Tree(object): :return: None """ cn = self[nid] - for attr, val in iteritems(attrs): + for attr, val in attrs.items(): if attr == "identifier": # Updating node id meets following contraints: # * Update node identifier property