From 3d1a2255030f9087679d1582193f6a47e1765bf8 Mon Sep 17 00:00:00 2001 From: Andy Port Date: Tue, 21 Aug 2018 19:36:35 -0700 Subject: [PATCH] removed future dependencies --- setup.py | 4 ++-- svgpathtools/document.py | 14 ++++++++------ svgpathtools/parser.py | 7 +++++-- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/setup.py b/setup.py index 7dfb136..acd036f 100644 --- a/setup.py +++ b/setup.py @@ -31,10 +31,10 @@ setup(name='svgpathtools', # download_url = 'http://github.com/mathandy/svgpathtools/tarball/'+VERSION, license='MIT', - install_requires=['numpy', 'svgwrite', 'future'], + install_requires=['numpy', 'svgwrite'], platforms="OS Independent", # test_suite='tests', - requires=['numpy', 'svgwrite', 'future'], + requires=['numpy', 'svgwrite'], keywords=['svg', 'svg path', 'svg.path', 'bezier', 'parse svg path', 'display svg'], classifiers = [ "Development Status :: 4 - Beta", diff --git a/svgpathtools/document.py b/svgpathtools/document.py index 7f96928..de32554 100644 --- a/svgpathtools/document.py +++ b/svgpathtools/document.py @@ -50,8 +50,10 @@ from .misctools import open_in_browser from .path import * # To maintain forward/backward compatibility -from past.builtins import basestring -from future.utils import iteritems +try: + str = basestring +except NameError: + pass # Let xml.etree.ElementTree know about the SVG namespace SVG_NAMESPACE = {'svg': 'http://www.w3.org/2000/svg'} @@ -120,7 +122,7 @@ def flatten_all_paths( # For each element type that we know how to convert into path data, parse the element after confirming that # the path_filter accepts it. - for key, converter in iteritems(path_conversions): + for key, converter in path_conversions.items(): for path_elem in filter(path_filter, top.group.iterfind('svg:'+key, SVG_NAMESPACE)): path_tf = top.transform.dot(parse_transform(path_elem.get('transform'))) path = transform(parse_path(converter(path_elem)), path_tf) @@ -206,7 +208,7 @@ class Document: group_filter=lambda x: True, path_filter=lambda x: True, path_conversions=CONVERSIONS): - if all(isinstance(s, basestring) for s in group): + if all(isinstance(s, str) for s in group): # If we're given a list of strings, assume it represents a nested sequence group = self.get_or_add_group(group) elif not isinstance(group, Element): @@ -223,7 +225,7 @@ class Document: group = self.tree.getroot() # If we are given a list of strings (one or more), assume it represents a sequence of nested group names - elif all(isinstance(elem, basestring) for elem in group): + elif all(isinstance(elem, str) for elem in group): group = self.get_or_add_group(group) elif not isinstance(group, Element): @@ -240,7 +242,7 @@ class Document: path_svg = path.d() elif is_path_segment(path): path_svg = Path(path).d() - elif isinstance(path, basestring): + elif isinstance(path, str): # Assume this is a valid d-string. TODO: Should we sanity check the input string? path_svg = path else: diff --git a/svgpathtools/parser.py b/svgpathtools/parser.py index 2afe687..0fdaf39 100644 --- a/svgpathtools/parser.py +++ b/svgpathtools/parser.py @@ -12,7 +12,10 @@ import warnings from .path import Path, Line, QuadraticBezier, CubicBezier, Arc # To maintain forward/backward compatibility -from past.builtins import basestring +try: + str = basestring +except NameError: + pass COMMANDS = set('MmZzLlHhVvCcSsQqTtAa') UPPERCASE = set('MZLHVCSQTA') @@ -286,7 +289,7 @@ def parse_transform(transform_str): If the string is empty or null, this returns a 3x3 identity matrix""" if not transform_str: return np.identity(3) - elif not isinstance(transform_str, basestring): + elif not isinstance(transform_str, str): raise TypeError('Must provide a string to parse') total_transform = np.identity(3)