git: 40c11ec8efd3 - main - misc/py-kartograph: Fix build with setuptools 58.0.0+

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Fri, 25 Mar 2022 13:50:37 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=40c11ec8efd3e8ebf36a469e1498306eb373b240

commit 40c11ec8efd3e8ebf36a469e1498306eb373b240
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2022-03-25 13:32:57 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2022-03-25 13:38:17 +0000

    misc/py-kartograph: Fix build with setuptools 58.0.0+
    
    With hat:       python
---
 misc/py-kartograph/files/patch-2to3 | 379 ++++++++++++++++++++++++++++++++++++
 1 file changed, 379 insertions(+)

diff --git a/misc/py-kartograph/files/patch-2to3 b/misc/py-kartograph/files/patch-2to3
new file mode 100644
index 000000000000..ea79cd778eda
--- /dev/null
+++ b/misc/py-kartograph/files/patch-2to3
@@ -0,0 +1,379 @@
+--- kartograph/cli.py.orig	2014-03-27 03:57:55 UTC
++++ kartograph/cli.py
+@@ -6,7 +6,7 @@ command line interface for kartograph
+ import argparse
+ import os
+ import os.path
+-from options import read_map_config
++from .options import read_map_config
+ import sys
+ 
+ 
+@@ -37,7 +37,7 @@ parser.add_argument('--format', '-f', metavar='svg', h
+ parser.add_argument('--preview', '-p', nargs='?', metavar='', const=True, help='opens the generated svg for preview')
+ parser.add_argument('--pretty-print', '-P', dest='pretty_print', action='store_true', help='pretty print the svg file')
+ 
+-from kartograph import Kartograph
++from .kartograph import Kartograph
+ import time
+ import os
+ 
+@@ -74,7 +74,7 @@ def render_map(args):
+             # print str(r)
+             pass
+ 
+-    except Exception, e:
++    except Exception as e:
+         print_error(e)
+         exit(-1)
+ 
+@@ -98,17 +98,17 @@ def main():
+ 
+     try:
+         args = parser.parse_args()
+-    except IOError, e:
++    except IOError as e:
+         # parser.print_help()
+         sys.stderr.write('\n' + str(e) + '\n')
+-    except Exception, e:
++    except Exception as e:
+         parser.print_help()
+-        print '\nError:', e
++        print('\nError:', e)
+     else:
+         args.func(args)
+         elapsed = (time.time() - start)
+         if args.output != '-':
+-            print 'execution time: %.3f secs' % elapsed
++            print('execution time: %.3f secs' % elapsed)
+ 
+     sys.exit(0)
+ 
+--- kartograph/kartograph.py.orig	2014-03-27 03:57:55 UTC
++++ kartograph/kartograph.py
+@@ -1,11 +1,11 @@
+ 
+-from options import parse_options
++from .options import parse_options
+ from shapely.geometry import Polygon, LineString, MultiPolygon
+-from errors import *
++from .errors import *
+ from copy import deepcopy
+-from renderer import SvgRenderer
+-from mapstyle import MapStyle
+-from map import Map
++from .renderer import SvgRenderer
++from .mapstyle import MapStyle
++from .map import Map
+ import os
+ 
+ 
+@@ -64,14 +64,14 @@ class Kartograph(object):
+                         command = commands[sys.platform]
+                     else:
+                         sys.stderr.write('don\'t know how to preview SVGs on your system. Try setting the KARTOGRAPH_PREVIEW environment variable.')
+-                        print renderer
++                        print(renderer)
+                         return
+                 renderer.preview(command)
+             # Write the map to a file or return the renderer instance.
+             if outfile is None:
+                 return renderer
+             elif outfile == '-':
+-                print renderer
++                print(renderer)
+             else:
+                 renderer.write(outfile)
+         else:
+--- kartograph/layersource/postgislayer.py.orig	2014-03-27 03:57:55 UTC
++++ kartograph/layersource/postgislayer.py
+@@ -1,5 +1,5 @@
+ 
+-from layersource import LayerSource
++from .layersource import LayerSource
+ from kartograph.errors import *
+ from kartograph.geometry import create_feature
+ import shapely.wkb
+@@ -72,11 +72,11 @@ class PostGISLayer(LayerSource):
+                 if fields[f] != self.geom_col:
+                     # but ignore null values
+                     if rec[f]:
+-                        if isinstance(rec[f], (str, unicode)):
++                        if isinstance(rec[f], str):
+                             try:
+                                 meta[fields[f]] = rec[f].decode('utf-8')
+                             except:
+-                                print 'decoding error', fields[f], rec[f]
++                                print('decoding error', fields[f], rec[f])
+                                 meta[fields[f]] = '--decoding error--'
+                         else:
+                             meta[fields[f]] = rec[f]
+@@ -84,7 +84,7 @@ class PostGISLayer(LayerSource):
+                     # Store geometry
+                     geom_wkb = rec[f]
+ 
+-            if filter is None or filter(meta):
++            if filter is None or list(filter(meta)):
+                 # construct geometry
+                 geom = shapely.wkb.loads(geom_wkb.decode('hex'))
+                 # Finally we construct the map feature and append it to the
+--- kartograph/layersource/shplayer.py.orig	2014-03-27 03:57:55 UTC
++++ kartograph/layersource/shplayer.py
+@@ -1,11 +1,11 @@
+ 
+-from layersource import LayerSource
++from .layersource import LayerSource
+ from kartograph.errors import *
+ from kartograph.geometry import BBox, create_feature
+ from os.path import exists
+ from osgeo.osr import SpatialReference
+ import pyproj
+-import shapefile
++from . import shapefile
+ 
+ 
+ verbose = False
+@@ -20,7 +20,7 @@ class ShapefileLayer(LayerSource):
+         """
+         initialize shapefile reader
+         """
+-        if isinstance(src, unicode):
++        if isinstance(src, str):
+             src = src.encode('ascii', 'ignore')
+         src = self.find_source(src)
+         self.shpSrc = src
+@@ -93,7 +93,7 @@ class ShapefileLayer(LayerSource):
+             for j in range(len(self.attributes)):
+                 drec[self.attributes[j]] = self.recs[i][j]
+             # For each record that is not filtered..
+-            if filter is None or filter(drec):
++            if filter is None or list(filter(drec)):
+                 props = {}
+                 # ..we try to decode the attributes (shapefile charsets are arbitrary)
+                 for j in range(len(self.attributes)):
+@@ -107,10 +107,10 @@ class ShapefileLayer(LayerSource):
+                                 break
+                             except:
+                                 if verbose:
+-                                    print 'warning: could not decode "%s" to %s' % (val, enc)
++                                    print('warning: could not decode "%s" to %s' % (val, enc))
+                         if not decoded:
+                             raise KartographError('having problems to decode the input data "%s"' % val)
+-                    if isinstance(val, (str, unicode)):
++                    if isinstance(val, str):
+                         val = val.strip()
+                     props[self.attributes[j]] = val
+ 
+@@ -129,7 +129,7 @@ class ShapefileLayer(LayerSource):
+                 feature = create_feature(geom, props)
+                 res.append(feature)
+         if bbox is not None and ignored > 0 and verbose:
+-            print "-ignoring %d shapes (not in bounds %s )" % (ignored, bbox)
++            print("-ignoring %d shapes (not in bounds %s )" % (ignored, bbox))
+         return res
+ 
+ # # shape2geometry
+--- kartograph/map.py.orig	2014-03-27 03:57:55 UTC
++++ kartograph/map.py
+@@ -1,11 +1,11 @@
+ from shapely.geometry import Polygon
+ from shapely.geometry.base import BaseGeometry
+-from maplayer import MapLayer
+-from geometry.utils import geom_to_bbox
+-from geometry import BBox, View
+-from proj import projections
+-from filter import filter_record
+-from errors import KartographError
++from .maplayer import MapLayer
++from .geometry.utils import geom_to_bbox
++from .geometry import BBox, View
++from .proj import projections
++from .filter import filter_record
++from .errors import KartographError
+ import sys
+ 
+ # Map
+@@ -154,7 +154,7 @@ class Map(object):
+         ### Initialize bounding polygons and bounding box
+         ### Compute the projected bounding box
+         """
+-        from geometry.utils import bbox_to_polygon
++        from .geometry.utils import bbox_to_polygon
+ 
+         opts = self.options
+         proj = self.proj
+@@ -306,7 +306,7 @@ class Map(object):
+         """
+         ### Simplify geometries
+         """
+-        from simplify import create_point_store, simplify_lines
++        from .simplify import create_point_store, simplify_lines
+ 
+         # We will use a glocal point cache for all layers. If the
+         # same point appears in more than one layer, it will be
+@@ -421,7 +421,7 @@ class Map(object):
+         a single feature. Kartograph uses the geometry.union() method of shapely
+         to do that.
+         """
+-        from geometry.utils import join_features
++        from .geometry.utils import join_features
+ 
+         for layer in self.layers:
+             if layer.options['join'] is not False:
+@@ -517,7 +517,7 @@ class Map(object):
+                         for feat in groupFeatures[g_id]:
+                             exp[g_id].append(feat.props[join['export-ids']])
+                     import json
+-                    print json.dumps(exp)
++                    print(json.dumps(exp))
+ 
+                 layer.features = res
+ 
+--- kartograph/proj/__init__.py.orig	2014-03-27 03:57:55 UTC
++++ kartograph/proj/__init__.py
+@@ -18,8 +18,8 @@
+ 
+ projections = dict()
+ 
+-from base import Proj
+-from cylindrical import *
++from .base import Proj
++from .cylindrical import *
+ 
+ projections['lonlat'] = Equirectangular
+ projections['cea'] = CEA
+@@ -30,7 +30,7 @@ projections['balthasart'] = Balthasart
+ projections['mercator'] = Mercator
+ projections['ll'] = LonLat
+ 
+-from pseudocylindrical import *
++from .pseudocylindrical import *
+ 
+ projections['naturalearth'] = NaturalEarth
+ projections['robinson'] = Robinson
+@@ -47,7 +47,7 @@ projections['aitoff'] = Aitoff
+ projections['winkel3'] = Winkel3
+ projections['nicolosi'] = Nicolosi
+ 
+-from azimuthal import *
++from .azimuthal import *
+ 
+ projections['ortho'] = Orthographic
+ projections['laea'] = LAEA
+@@ -58,11 +58,11 @@ projections['satellite'] = Satellite
+ projections['eda'] = EquidistantAzimuthal
+ projections['aitoff'] = Aitoff
+ 
+-from conic import *
++from .conic import *
+ 
+ projections['lcc'] = LCC
+ 
+-from proj4 import Proj4
++from .proj4 import Proj4
+ 
+ projections['proj4'] = Proj4
+ 
+@@ -78,7 +78,7 @@ if __name__ == '__main__':
+     #assert (round(x,2),round(y,2)) == (3962799.45, -2999718.85), 'LAEA proj error'
+     from kartograph.geometry import BBox
+ 
+-    print Proj.fromXML(Robinson(lat0=3, lon0=4).toXML(), projections)
++    print(Proj.fromXML(Robinson(lat0=3, lon0=4).toXML(), projections))
+ 
+     Robinson(lat0=3, lon0=4)
+ 
+@@ -87,10 +87,10 @@ if __name__ == '__main__':
+         bbox = BBox()
+         try:
+             proj = Proj(lon0=60)
+-            print proj.project(0, 0)
+-            print proj.world_bounds(bbox)
+-            print proj.toXML()
++            print(proj.project(0, 0))
++            print(proj.world_bounds(bbox))
++            print(proj.toXML())
+         except:
+-            print 'Error', pj
+-            print sys.exc_info()[0]
++            print('Error', pj)
++            print(sys.exc_info()[0])
+             raise
+--- kartograph/proj/azimuthal/azimuthal.py.orig	2014-03-27 03:57:55 UTC
++++ kartograph/proj/azimuthal/azimuthal.py
+@@ -62,7 +62,7 @@ class Azimuthal(Proj):
+     def sea_shape(self, llbbox=(-180, -90, 180, 90)):
+         out = []
+         if llbbox == (-180, -90, 180, 90) or llbbox == [-180, -90, 180, 90]:
+-            print "-> full extend"
++            print("-> full extend")
+             for phi in range(0, 360):
+                 x = self.r + math.cos(math.radians(phi)) * self.r
+                 y = self.r + math.sin(math.radians(phi)) * self.r
+--- kartograph/renderer/svg.py.orig	2014-03-27 03:57:55 UTC
++++ kartograph/renderer/svg.py
+@@ -239,7 +239,7 @@ class SvgRenderer(MapRenderer):
+ 
+         key = labelOpts['key']
+         if not key:
+-            key = feature.props.keys()[0]
++            key = list(feature.props.keys())[0]
+         if key not in feature.props:
+             #sys.stderr.write('could not find feature property "%s" for labeling\n' % key)
+             return
+@@ -411,7 +411,7 @@ class SvgDocument(object):
+     # Here we finally write the SVG file, and we're brave enough
+     # to try to write it in Unicode.
+     def write(self, outfile, pretty_print=False):
+-        if isinstance(outfile, (str, unicode)):
++        if isinstance(outfile, str):
+             outfile = open(outfile, 'w')
+         if pretty_print:
+             raw = self.doc.toprettyxml('utf-8')
+@@ -420,7 +420,7 @@ class SvgDocument(object):
+         try:
+             raw = raw.encode('utf-8')
+         except:
+-            print 'warning: could not encode to unicode'
++            print('warning: could not encode to unicode')
+ 
+         outfile.write(raw)
+         outfile.close()
+@@ -431,7 +431,7 @@ class SvgDocument(object):
+         import tempfile
+         tmpfile = tempfile.NamedTemporaryFile(suffix='.svg', delete=False)
+         self.write(tmpfile, pretty_print)
+-        print 'map stored to', tmpfile.name
++        print('map stored to', tmpfile.name)
+         from subprocess import call
+         call([command, tmpfile.name])
+ 
+--- kartograph/yaml_ordered_dict.py.orig	2014-03-27 03:57:55 UTC
++++ kartograph/yaml_ordered_dict.py
+@@ -19,8 +19,8 @@ class OrderedDictYAMLLoader(yaml.Loader):
+     def __init__(self, *args, **kwargs):
+         yaml.Loader.__init__(self, *args, **kwargs)
+ 
+-        self.add_constructor(u'tag:yaml.org,2002:map', type(self).construct_yaml_map)
+-        self.add_constructor(u'tag:yaml.org,2002:omap', type(self).construct_yaml_map)
++        self.add_constructor('tag:yaml.org,2002:map', type(self).construct_yaml_map)
++        self.add_constructor('tag:yaml.org,2002:omap', type(self).construct_yaml_map)
+ 
+     def construct_yaml_map(self, node):
+         data = OrderedDict()
+@@ -40,7 +40,7 @@ class OrderedDictYAMLLoader(yaml.Loader):
+             key = self.construct_object(key_node, deep=deep)
+             try:
+                 hash(key)
+-            except TypeError, exc:
++            except TypeError as exc:
+                 raise yaml.constructor.ConstructorError('while constructing a mapping',
+                     node.start_mark, 'found unacceptable key (%s)' % exc, key_node.start_mark)
+             value = self.construct_object(value_node, deep=deep)
+@@ -63,4 +63,4 @@ two:
+ 
+     data = yaml.load(textwrap.dedent(sample), OrderedDictYAMLLoader)
+     assert type(data) is OrderedDict
+-    print data
+\ No newline at end of file
++    print(data)