[Git][debian-gis-team/mipp][master] Switch to Python 3.

Bas Couwenberg gitlab at salsa.debian.org
Sun Jul 21 12:05:32 BST 2019



Bas Couwenberg pushed to branch master at Debian GIS Project / mipp


Commits:
4ee66fb2 by Bas Couwenberg at 2019-07-21T11:00:51Z
Switch to Python 3.

- - - - -


14 changed files:

- debian/changelog
- debian/control
- + debian/patches/python3.patch
- debian/patches/series
- − debian/python-mipp-test.install
- − debian/python-mipp.install
- + debian/python3-mipp-test.install
- debian/python-mipp.doc-base → debian/python3-mipp.doc-base
- debian/python-mipp.examples → debian/python3-mipp.examples
- + debian/python3-mipp.install
- debian/rules
- − debian/source/lintian-overrides
- debian/tests/control
- debian/tests/python2 → debian/tests/python3


Changes:

=====================================
debian/changelog
=====================================
@@ -11,6 +11,7 @@ mipp (1.1.0-2) UNRELEASED; urgency=medium
   * Update watch file to limit matches to archive path.
   * Remove package name from lintian overrides.
   * Update gbp.conf to use --source-only-changes by default.
+  * Switch to Python 3.
 
  -- Antonio Valentino <antonio.valentino at tiscali.it>  Sat, 21 Jul 2018 07:27:18 +0000
 


=====================================
debian/control
=====================================
@@ -5,27 +5,26 @@ Section: python
 Priority: optional
 Build-Depends: debhelper (>= 11),
                dh-python,
-               python-setuptools,
-               python-all,
-               python-sphinx,
-               python3-sphinx,
-               python-lxml,
-               python-gdal,
-               python-pyresample
+               python3-all,
+               python3-gdal,
+               python3-lxml,
+               python3-pyresample,
+               python3-setuptools,
+               python3-sphinx
 Standards-Version: 4.4.0
 Vcs-Browser: https://salsa.debian.org/debian-gis-team/mipp
 Vcs-Git: https://salsa.debian.org/debian-gis-team/mipp.git
 Homepage: https://github.com/loerum/mipp/tree/master/mipp
 
-Package: python-mipp
+Package: python3-mipp
 Architecture: all
-Depends: ${python:Depends},
+Depends: python3-gdal,
+         python3-lxml,
+         python3-pyresample,
+         ${python3:Depends},
          ${sphinxdoc:Depends},
-         ${misc:Depends},
-         python-lxml,
-         python-gdal,
-         python-pyresample
-Suggests: python-mpop
+         ${misc:Depends}
+Suggests: python3-mpop
 Description: Meteorological data Ingest-Processing Package (mipp)
  It's main task is to convert low level satellite data into a format
  understood by mpop (http://github.com/mraspaud/mpop).
@@ -45,11 +44,11 @@ Description: Meteorological data Ingest-Processing Package (mipp)
  .
  This package is part of the PyTroll toolset.
 
-Package: python-mipp-test
+Package: python3-mipp-test
 Architecture: all
-Depends: ${python:Depends},
-         ${misc:Depends},
-         python-mipp
+Depends: python3-mipp,
+         ${python3:Depends},
+         ${misc:Depends}
 Description: Meteorological data Ingest-Processing Package (test suite)
  It's main task is to convert low level satellite data into a format
  understood by mpop (http://github.com/mraspaud/mpop).


=====================================
debian/patches/python3.patch
=====================================
@@ -0,0 +1,676 @@
+Description: Fix support for Python 3.
+Author: Bas Couwenberg <sebastic at debian.org>
+
+--- a/mipp/xrit/loader.py
++++ b/mipp/xrit/loader.py
+@@ -133,7 +133,7 @@ class ImageLoader(object):
+         # slice
+         area_extent = tuple(area_extent)
+         if len(area_extent) != 4:
+-            raise TypeError, "optional argument must be an area_extent"
++            raise TypeError("optional argument must be an area_extent")
+ 
+         ns_, ew_ = self.mda.first_pixel.split()
+ 
+@@ -194,13 +194,13 @@ class ImageLoader(object):
+                 if isinstance(columns, int):
+                     columns = slice(item[1], item[1] + 1)
+             else:
+-                raise IndexError, "can only handle two indexes, not %d" % len(
+-                    item)
++                raise IndexError("can only handle two indexes, not %d" % len(
++                    item))
+         elif item is None:
+             # full disc
+             rows, columns = self._allrows, self._allcolumns
+         else:
+-            raise IndexError, "don't understand the indexes"
++            raise IndexError("don't understand the indexes")
+ 
+         # take care of [:]
+         if rows.start == None:
+@@ -210,7 +210,7 @@ class ImageLoader(object):
+ 
+         if (rows.step != 1 and rows.step != None) or \
+                 (columns.step != 1 and columns.step != None):
+-            raise IndexError, "Currently we don't support steps different from one"
++            raise IndexError("Currently we don't support steps different from one")
+ 
+         return rows, columns
+ 
+@@ -268,7 +268,7 @@ class ImageLoader(object):
+                 columns.stop > mda.image_size[0] or
+                 rows.start < 0 or
+                 rows.stop > mda.image_size[1]):
+-            raise IndexError, "index out of range"
++            raise IndexError("index out of range")
+ 
+         image_files = self.image_files
+ 
+@@ -302,8 +302,8 @@ class ImageLoader(object):
+             data_type = '>u2'
+             data_type_len = 16
+         else:
+-            raise mipp.ReaderError, "unknown data type: %d bit per pixel"\
+-                % mda.data_type
++            raise mipp.ReaderError("unknown data type: %d bit per pixel"\
++                % mda.data_type)
+ 
+         #
+         # Calculate initial and final line and column.
+@@ -347,8 +347,8 @@ class ImageLoader(object):
+             increment_line = -1
+             factor_col = -1
+         else:
+-            raise mipp.ReaderError, "unknown geographical orientation of " + \
+-                "first pixel: '%s'" % mda.first_pixel
++            raise mipp.ReaderError("unknown geographical orientation of " + \
++                "first pixel: '%s'" % mda.first_pixel)
+ 
+         #
+         # Generate final image with no data
+--- a/mipp/xrit/sat.py
++++ b/mipp/xrit/sat.py
+@@ -67,7 +67,7 @@ class SatelliteLoader(object):
+                 pth = [imp.find_module(mod, pth)[1]]
+             args = imp.find_module(format.split("/")[-1], pth)
+ 
+-        except ImportError, err:
++        except ImportError as err:
+             raise mipp.ReaderError(("unknown level-1 format: '%s'" % format)
+                                    + "in " + str(pth) + "\n" + str(err))
+         try:
+@@ -237,7 +237,7 @@ class SatelliteLoader(object):
+         m = self._sublon_re.search(self.proj4_params)
+         if m:
+             return float(m.group(2))
+-        raise TypeError, "'SatelliteLoader' object (attribute proj4_params) has no 'sublon' attribute"
++        raise TypeError("'SatelliteLoader' object (attribute proj4_params) has no 'sublon' attribute")
+ 
+     def _set_sublon(self, slon):
+         slon = "lon_0=%.2f" % float(slon)
+--- a/mipp/xsar/CSK.py
++++ b/mipp/xsar/CSK.py
+@@ -24,7 +24,7 @@ class _Calibrator(object):
+         if calibrate == 0:
+             return (image,
+                     'counts')
+-        raise mipp.CalibrationError, self.error
++        raise mipp.CalibrationError(self.error)
+ 
+ def read_metadata(xmlbuffer):
+     mda = Metadata()    
+@@ -136,6 +136,6 @@ if __name__ == '__main__':
+         _mda = read_metadata(fp.read())
+     _mda.image_filename = os.path.dirname(sys.argv[1]) + '/' + \
+         _mda.image_filename        
+-    print _mda
++    print(_mda)
+     _mda, _data = read_image(_mda, calibrate=False)
+-    print _data.min(), _data.mean(), _data.max()
++    print(_data.min(), _data.mean(), _data.max())
+--- a/mipp/xsar/TSX.py
++++ b/mipp/xsar/TSX.py
+@@ -35,7 +35,7 @@ class _Calibrator(object):
+             return (image,
+                     'counts')
+         if self.error:
+-            raise mipp.CalibrationError, self.error
++            raise mipp.CalibrationError(self.error)
+         return (image*image*self.factor,
+                 self.unit)
+ 
+--- a/mipp/xsar/sat.py
++++ b/mipp/xsar/sat.py
+@@ -118,7 +118,7 @@ class SatelliteLoader(object):
+     def _find_tarfile(self, time_stamp):
+         opt = self._config_reader('level1')
+         if not os.path.isdir(opt['dir']):
+-            raise IOError, "No such directory: %s" % opt['dir']
++            raise IOError("No such directory: %s" % opt['dir'])
+         tar_file = glob.glob(opt['dir'] + '/' +
+                              time_stamp.strftime(opt['filename_archive']))
+         if not tar_file:
+@@ -160,7 +160,7 @@ if __name__ == '__main__':
+     try:
+         _file = args[0]
+     except IndexError:
+-        print >> sys.stderr, "usage: sat.py [-m] <tar-file>"
++        print("usage: sat.py [-m] <tar-file>", file=sys.stderr)
+         sys.exit(1)
+     _mda = load_file(_file, 'sarx', only_metadata=True)
+     if only_mda:
+@@ -170,4 +170,4 @@ if __name__ == '__main__':
+         _mda, _image = load_file(_file, 'sarx', calibrate=0)
+     else:
+         _mda, _image = load_file(_file, 'sarx')
+-    print '\n', _mda
++    print('\n', _mda)
+--- a/tests/test_xrit.py
++++ b/tests/test_xrit.py
+@@ -11,7 +11,7 @@ from mipp.mda import _nice2cmp
+ 
+ datadir = (os.path.dirname(__file__) or '.') + '/data'
+ save_mda = False
+-debug = os.environ.has_key('DEBUG')
++debug = 'DEBUG' in os.environ
+ 
+ xrit_decomp_exec = os.environ.get("XRIT_DECOMPRESS_PATH", None)
+ xrit_outdir = os.environ.get("XRIT_DECOMPRESS_OUTDIR", None)
+@@ -22,7 +22,7 @@ try:
+ except KeyError:
+     os.environ['PPP_CONFIG_DIR'] = datadir
+ if not os.path.isdir(os.environ['PPP_CONFIG_DIR']):
+-    raise mipp.ConfigReaderError, "No config dir: '%s'"%os.environ['PPP_CONFIG_DIR']
++    raise mipp.ConfigReaderError("No config dir: '%s'"%os.environ['PPP_CONFIG_DIR'])
+ 
+ goes_files = [datadir + '/L-000-MSG2__-GOES11______-10_7_135W-PRO______-201002010600-__',
+               datadir + '/L-000-MSG2__-GOES11______-10_7_135W-000003___-201002010600-__',
+--- a/tests/test_xsar.py
++++ b/tests/test_xsar.py
+@@ -18,13 +18,13 @@ try:
+ except KeyError:
+     os.environ['PPP_CONFIG_DIR'] = datadir
+ if not os.path.isdir(os.environ['PPP_CONFIG_DIR']):
+-    raise mipp.ConfigReaderError, "No config dir: '%s'"%os.environ['PPP_CONFIG_DIR']
++    raise mipp.ConfigReaderError("No config dir: '%s'"%os.environ['PPP_CONFIG_DIR'])
+ 
+ txs1_file = datadir + '/TX01_SAR_SC_GEC_20110825T104705_20110825T104727_NSG_023264_8133_test.TSX.tar'
+ tsx1_sum = 3895.1342095
+ 
+ def make_image(mda, img, outdir='.'):
+-    if not os.environ.has_key('DEBUG'):
++    if 'DEBUG' not in os.environ:
+         return
+     import Image as pil
+     fname = outdir + '/' + mda.product_name + '.png'
+--- a/doc/source/introduction.rst
++++ b/doc/source/introduction.rst
+@@ -177,9 +177,9 @@ Usage
+ 
+     image = xrit.sat.load('meteosat07', datetime(2010, 2, 1, 10, 0), '00_7', mask=True)
+     mda, image_data = image(center=(50., 10.), size=(600, 500))
+-    print mda
++    print(mda)
+     fname = './' + mda.product_name + '.dat'
+-    print >>sys.stderr, 'Writing', fname
++    print('Writing %s' % fname, file=sys.stderr)
+     fp = open(fname, "wb")
+     image_data.tofile(fp)
+     fp.close()
+@@ -197,7 +197,7 @@ Segment Line Quality' record) of each sc
+ 
+     segfile = "/local_disk/data/MSG/HRIT/H-000-MSG3__-MSG3________-WV_062___-000002___-201311211300-__"
+     lineq = mipp.xrit.MSG.get_scanline_quality(segfile)
+-    print lineq[0]
++    print(lineq[0])
+    
+     (465, datetime.datetime(2013, 11, 21, 13, 1, 48, 924000), 1, 1, 0)
+     
+--- a/mipp/cfg.py
++++ b/mipp/cfg.py
+@@ -3,7 +3,7 @@
+ #
+ import os
+ import re
+-from ConfigParser import ConfigParser
++from configparser import ConfigParser
+ 
+ import mipp
+ 
+@@ -112,8 +112,8 @@ if __name__ == '__main__':
+     cfg = read_config(os.path.splitext(fname)[0])
+     for _name in ('satellite', 'level1', 'level2'):
+         _sec = cfg(_name)
+-        print _name
++        print(_name)
+         for _key in sorted(_sec.keys()):
+-            print '    ', _key + ':',  _sec[_key]
++            print('    ', _key + ':',  _sec[_key])
+     for _name in cfg.channel_names:
+-        print cfg.get_channel(_name)
++        print(cfg.get_channel(_name))
+--- a/mipp/mda.py
++++ b/mipp/mda.py
+@@ -81,4 +81,4 @@ def _nice2cmp(val):
+ 
+ if __name__ == '__main__':
+     import sys
+-    print Metadata().read(sys.argv[1])
++    print(Metadata().read(sys.argv[1]))
+--- a/mipp/read_geotiff.py
++++ b/mipp/read_geotiff.py
+@@ -88,19 +88,19 @@ def read_geotiff(filename):
+             lons.append(gcp.GCPX)
+             lats.append(gcp.GCPY)
+ 
+-        #print  'Tiepoints', dst.GetGCPCount()
++        #print('Tiepoints %s' % dst.GetGCPCount())
+         logger.debug("Tiepoint shape (rows, columns): %d, %d" % (n_rows, n_cols))
+         lons = np.array(lons, dtype=np.float).reshape((n_rows, n_cols))
+         lats = np.array(lats, dtype=np.float).reshape((n_rows, n_cols))
+         rows = np.array(rows, dtype=np.int)
+         cols = np.array(cols, dtype=np.int)
+ 
+-        ##print "Regular grid ?"
++        ##print("Regular grid ?")
+         ##for i in (('row', rows), ('col', cols)):
+         ##    name, data = i
+         ##    j0 = data[0]
+         ##    for j in data[1:]:
+-        ##        print name, j, j - j0
++        ##        print("%s %s %s" % (name, j, j - j0))
+         ##        j0 = j
+ 
+         tiepoints = dict((('rows', rows),
+@@ -168,19 +168,19 @@ if __name__ == '__main__':
+     #np.save('fine_cols.npy', fine_cols)
+     #np.save('fine_rows.npy', fine_rows)
+     lons, lats = interpolator.interpolate()
+-    print 'RESULT :'
+-    print lons
+-    print lats
++    print('RESULT :')
++    print(lons)
++    print(lats)
+     np.save('result_lons.npy', lons)
+     np.save('result_lats.npy', lats)
+-    #print 'DATA'
+-    #print data.shape
+-    #print data
+-    #print 'LON'
+-    #print lons.shape
+-    #print lons
+-    #print 'LAT'
+-    #print lats.shape
+-    #print lats
++    #print('DATA')
++    #print(data.shape)
++    #print(data)
++    #print('LON')
++    #print(lons.shape)
++    #print(lons)
++    #print('LAT')
++    #print(lats.shape)
++    #print(lats)
+ 
+ 
+--- a/mipp/xrit/H8.py
++++ b/mipp/xrit/H8.py
+@@ -201,4 +201,4 @@ header_types = tuple(sorted(header_map.k
+ 
+ 
+ if __name__ == '__main__':
+-    print read_metadata(None, sys.argv[1:])
++    print(read_metadata(None, sys.argv[1:]))
+--- a/mipp/xrit/MSG.py
++++ b/mipp/xrit/MSG.py
+@@ -26,10 +26,10 @@
+ 'MSG Level 1.5 Image Data Format Description', EUM/MSG/ICD/105, v5A, 22 August 2007
+ """
+ #raise NotImplementedError
++import io
+ import logging
+ import sys
+ from datetime import datetime
+-from StringIO import StringIO
+ 
+ import numpy as np
+ 
+@@ -848,10 +848,10 @@ def read_metadata(prologue, image_files,
+     """
+     segment_size = 464  # number of lines in a segment
+ 
+-    fp = StringIO(prologue.data)
++    fp = io.StringIO(prologue.data)
+     hdr = read_proheader(fp)
+ 
+-    fp = StringIO(epilogue.data)
++    fp = io.StringIO(epilogue.data)
+     ftr = read_epiheader(fp)
+ 
+     try:
+@@ -932,7 +932,7 @@ def read_metadata(prologue, image_files,
+ def read_obstimes(epilogue):
+     """Get the start and end full disk scan times from the Epilogue file."""
+     epi = _xrit.read_epilogue(epilogue)
+-    fpt = StringIO(epi.data)
++    fpt = io.StringIO(epi.data)
+     ftr = read_epiheader(fpt)
+     return (ftr['ForwardScanStart'], ftr['ForwardScanEnd'])
+ 
+@@ -956,4 +956,4 @@ def read_scanline_quality(segment_filena
+ if __name__ == '__main__':
+     p = _xrit.read_prologue(sys.argv[1])
+     e = _xrit.read_epilogue(sys.argv[-1])
+-    print read_metadata(p, sys.argv[2:-1], e)
++    print(read_metadata(p, sys.argv[2:-1], e))
+--- a/mipp/xrit/MTP.py
++++ b/mipp/xrit/MTP.py
+@@ -6,9 +6,9 @@
+ 'The Meteosat Archive; Format Guide No. 1; Basic Imagery: OpenMTP Format'; EUM FG 1; Rev 2.1; April 2000
+ """
+ 
++import io
+ import sys
+ from datetime import timedelta
+-from StringIO import StringIO
+ import numpy as np
+ 
+ from mipp import CalibrationError
+@@ -24,7 +24,7 @@ BINARY_HEADER_LEN = 144515
+ BINARY_HEADER_LEN_VISCOMP = 192999
+ 
+ def _read_ascii_header(fp):    
+-    fp = StringIO(fp.read(ASCII_HEADER_LEN)) # Don't mix iteration and read method.
++    fp = io.StringIO(fp.read(ASCII_HEADER_LEN)) # Don't mix iteration and read method.
+     hdr = dict()
+     for line in fp:
+         k = line[:14].strip()
+@@ -294,7 +294,7 @@ def read_metadata(prologue, image_files)
+     """ Selected items from the Meteosat-7 prolog file.
+     """
+     im = _xrit.read_imagedata(image_files[0])
+-    fp = StringIO(prologue.data)
++    fp = io.StringIO(prologue.data)
+     asc_hdr = _read_ascii_header(fp)
+     bin_hdr = _read_binary_header(fp, asc_hdr['ProductType'])
+     md = Metadata()
+@@ -332,4 +332,4 @@ def read_metadata(prologue, image_files)
+ 
+ if __name__ == '__main__':
+     p = _xrit.read_prologue(sys.argv[1])
+-    print read_metadata(p, sys.argv[2:])
++    print(read_metadata(p, sys.argv[2:]))
+--- a/mipp/xrit/SGS.py
++++ b/mipp/xrit/SGS.py
+@@ -121,4 +121,4 @@ def read_prologue_headers(fp):
+     return hdr
+     
+ if __name__ == '__main__':
+-    print read_metadata(_xrit.read_prologue(sys.argv[1]), sys.argv[2:])
++    print(read_metadata(_xrit.read_prologue(sys.argv[1]), sys.argv[2:]))
+--- a/mipp/xrit/_xrit.py
++++ b/mipp/xrit/_xrit.py
+@@ -7,9 +7,9 @@
+ "MSG Ground Segment LRIT/HRIT Mission Specific Implementation"; EUM/MSG/SPE/057; Issue 6; 21 June 2006
+ """
+ 
++import io
+ import sys
+ import os
+-from StringIO import StringIO 
+ 
+ import mipp
+ from mipp.xrit import bin_reader as rbin
+@@ -46,7 +46,7 @@ def decompress(infile, outdir='.'):
+         raise IOError(str(cmd) + " is a directory!\n" + question)
+ 
+     p = Popen([cmd, infile], stdout=PIPE)
+-    stdout = StringIO(p.communicate()[0])
++    stdout = io.StringIO(p.communicate()[0])
+     status = p.returncode
+     os.chdir(cwd)
+     
+@@ -303,7 +303,7 @@ class Segment(object):
+         keys.sort()
+         for k in keys:
+             if not k.startswith('_'):
+-                print k + ':', self.__dict__[k]
++                print(k + ':', self.__dict__[k])
+ 
+     def __str__(self):
+         return str(self.segment_id)
+@@ -377,7 +377,7 @@ def list(file_name, dump_data=False):
+     data = fp.read()
+     fp.close()
+     if dump_data:
+-        print 'Writing', fname
++        print('Writing', fname)
+         fp = open(fname, 'wb')
+         fp.write(data)
+         fp.close()
+--- a/mipp/xrit/mda.py
++++ b/mipp/xrit/mda.py
+@@ -10,4 +10,4 @@ class Metadata(mipp.mda.Metadata):
+                          'image_data', 'boundaries')
+ if __name__ == '__main__':
+     import sys
+-    print Metadata().read(sys.argv[1])
++    print(Metadata().read(sys.argv[1]))
+--- a/mipp/xsar/RS2.py
++++ b/mipp/xsar/RS2.py
+@@ -95,6 +95,6 @@ def read_metadata(xml_file):
+ if __name__ == '__main__':
+     import sys
+     mda = read_metadata(sys.argv[1])
+-    print mda
+-    print mda.tiepoints.image
+-    print mda.tiepoints.geodedic
++    print(mda)
++    print(mda.tiepoints.image)
++    print(mda.tiepoints.geodedic)
+--- a/mipp/xsar/S1A.py
++++ b/mipp/xsar/S1A.py
+@@ -191,4 +191,4 @@ def read_manifest(filename, **mdax):
+ 
+ if __name__ == '__main__':
+     import sys
+-    print read_metadata(sys.argv[1])
++    print(read_metadata(sys.argv[1]))
+--- a/mipp/xsar/mda.py
++++ b/mipp/xsar/mda.py
+@@ -11,4 +11,4 @@ class Metadata(mipp.mda.Metadata):
+ 
+ if __name__ == '__main__':
+     import sys
+-    print Metadata().read(sys.argv[1])
++    print(Metadata().read(sys.argv[1]))
+--- a/scr/decompress_xrit
++++ b/scr/decompress_xrit
+@@ -10,9 +10,9 @@ from mipp import xrit
+ 
+ #-----------------------------------------------------------------------------
+ def usage():
+-    print >>sys.stderr, """\
++    print("""\
+     decompress_xrit [-w<work-dir>] [<in-dir>] [<out-dir>]
+-        If directory not defined, environment variables are used"""
++        If directory not defined, environment variables are used""", file=sys.stderr)
+     sys.exit(2)
+ 
+ #-----------------------------------------------------------------------------
+@@ -52,7 +52,7 @@ def cmp_ctime(f1, f2):
+ file_names = glob.glob(in_dir + '/[HL]*')
+ file_names.sort(cmp_ctime)
+ for file_name in file_names:
+-    print 'doing:', str(datetime.fromtimestamp(os.path.getctime(file_name))), file_name
++    print('doing:', str(datetime.fromtimestamp(os.path.getctime(file_name))), file_name)
+     fn = xrit.decompress(file_name, wrk_dir)
+     os.rename(fn, out_dir + '/' + os.path.basename(fn))
+     os.remove(file_name)
+--- a/scr/list_xrit_headers
++++ b/scr/list_xrit_headers
+@@ -6,8 +6,8 @@ import getopt
+ from mipp import xrit
+ 
+ def usage():
+-    print >>sys.stderr, "usage: list_xrit_headers [-d] <file-name>"
+-    print >>sys.stderr, "    -d, ... and dump data"
++    print("usage: list_xrit_headers [-d] <file-name>", file=sys.stderr)
++    print("    -d, ... and dump data", file=sys.stderr)
+     sys.exit(2)
+ 
+ dumpit = False
+--- a/scr/process_fsd
++++ b/scr/process_fsd
+@@ -22,7 +22,7 @@ supported_platforms = max_age.keys()
+ #-----------------------------------------------------------------------------
+ 
+ def usage():
+-    print >>sys.stderr, """\
++    print("""\
+     process_fsd --check-satellite <prologue-file>
+         check if we handle this satellite
+         
+@@ -39,7 +39,7 @@ def usage():
+         
+     process_fsd [-h] [-o<output-dir>] <prologue-file> <image-segment> ... <image-segment>
+         -h, save image data to a HDF5 file (default is binary dump of image-data and ascii dump of meta-data)\
+-    """
++    """, file=sys.stderr)
+     sys.exit(2)
+ 
+ #-----------------------------------------------------------------------------
+@@ -47,8 +47,8 @@ def usage():
+ def check_platform(prologue, verbose=False):
+     if prologue.platform not in supported_platforms:
+         if verbose:
+-            print >> sys.stderr, "Platform " + str(prologue.platform) + \
+-                " not supported by the Foreign Satellite Data script!"
++            print("Platform " + str(prologue.platform) + \
++                " not supported by the Foreign Satellite Data script!", file=sys.stderr)
+         return False
+     return True
+ 
+@@ -63,7 +63,7 @@ def check_segments(prologue, listit=Fals
+     image_files.sort()
+     if listit:
+         for f in image_files:
+-            print f
++            print(f)
+     ctime = datetime.fromtimestamp(os.path.getctime(prologue.file_name))
+     now = datetime.now()
+     im = xrit.read_imagedata(image_files[-1])
+@@ -77,7 +77,7 @@ def decompress(image_files, outdir='.',
+     for f in sorted(image_files):
+         outfile = xrit.decompress(f, outdir)
+         if listit:
+-            print outfile
++            print(outfile)
+ 
+ def process(prologue, image_files, outdir='.', saveashdf5=False):
+     im = xrit.read_imagedata(image_files[-1])
+@@ -174,7 +174,7 @@ elif decomp:
+     
+ elif metadata:
+     if check_platform(prologue, verbose=True):
+-        print xrit.sat.load_files(prologue, image_files, only_metadata=True)
++        print(xrit.sat.load_files(prologue, image_files, only_metadata=True))
+ 
+ else:
+     if check_platform(prologue, verbose=True):
+--- a/scr/process_gts
++++ b/scr/process_gts
+@@ -13,7 +13,7 @@ logger = log.get_logger('gts')
+ #-----------------------------------------------------------------------------
+ 
+ def usage():
+-    print >>sys.stdout, "usage: process_gts [-o<output-dir>] <file-name>"
++    print("usage: process_gts [-o<output-dir>] <file-name>", file=sys.stderr)
+     sys.exit(2)
+ 
+ #-----------------------------------------------------------------------------
+--- a/tests/buildpath_to_syspath.py
++++ b/tests/buildpath_to_syspath.py
+@@ -20,5 +20,5 @@ if not os.path.isdir(build_path):
+ else:
+     sys.path.insert(0, build_path)
+ if __name__ == '__main__':
+-    print build_path
++    print(build_path)
+ """
+--- a/tests/test_misc.py
++++ b/tests/test_misc.py
+@@ -1,10 +1,10 @@
++import io
+ import sys
+ import os
+ import unittest
+-import cStringIO
+ 
+ import buildpath_to_syspath
+-print sys.path
++print(sys.path)
+ import mipp.cfg
+ 
+ datadir = (os.path.dirname(__file__) or '.') + '/data'
+@@ -15,17 +15,17 @@ class Test(unittest.TestCase):
+         cfgfile = 'msg2'        
+         os.environ['PPP_CONFIG_DIR'] = datadir
+         c = mipp.cfg.read_config(cfgfile)
+-        fp = cStringIO.StringIO()
++        fp = io.StringIO()
+         for name in ('satellite', 'level1', 'level2'):
+             h = c(name)
+-            print >>fp, name
++            print(name, file=fp)
+             for k in sorted(h.keys()):
+-                print >>fp, '    ', k + ':',  h[k]
+-        print >>fp, mipp.cfg._Channel(c(1).items())
+-        print >>fp, mipp.cfg._Channel(c(2).items())
+-        print >>fp, mipp.cfg._Channel(c(3).items())
++                print('    ', k + ':',  h[k], file=fp)
++        print(mipp.cfg._Channel(c(1).items()), file=fp)
++        print(mipp.cfg._Channel(c(2).items()), file=fp)
++        print(mipp.cfg._Channel(c(3).items()), file=fp)
+         for name in c.channel_names:
+-            print >>fp, c.get_channel(name)
++            print(c.get_channel(name), file=fp)
+         text1 = fp.getvalue().strip()
+         fp.close()
+         fp = open(datadir + '/' + cfgfile + '.cfg.out')
+--- a/mipp/xrit/GOMS.py
++++ b/mipp/xrit/GOMS.py
+@@ -32,9 +32,10 @@ import logging
+ 
+ logger = logging.getLogger(__name__)
+ 
++import io
++
+ from mipp.xrit import bin_reader as rbin
+ from mipp.xrit import Metadata
+-from StringIO import StringIO
+ from mipp.xrit import _xrit
+ import numpy as np
+ 
+@@ -183,9 +184,9 @@ def read_metadata(prologue, image_files,
+ 
+     hdr = {}
+ 
+-    fp = StringIO(prologue.data)
++    fp = io.StringIO(prologue.data)
+     phdr = read_proheader(fp)
+-    fp = StringIO(epilogue.data)
++    fp = io.StringIO(epilogue.data)
+     ehdr = read_epiheader(fp)
+ 
+     hdr.update(phdr)
+--- a/mipp/xrit/convert.py
++++ b/mipp/xrit/convert.py
+@@ -1,4 +1,4 @@
+-from StringIO import StringIO
++import io
+ import numpy as np
+ 
+ def dec10216(in_buffer):
+@@ -15,7 +15,7 @@ def hrpt_dec10216(in_buffer):
+     # !!! THIS ONE COULD BE FASTER !!!
+     #
+     HRPT_RECLEN = 11090
+-    fp = StringIO(dec10216(in_buffer))
++    fp = io.StringIO(dec10216(in_buffer))
+     data = ''
+     blob_size = (HRPT_RECLEN - 2)*2
+     blob = fp.read(blob_size)
+--- a/mipp/xrit/bin_reader.py
++++ b/mipp/xrit/bin_reader.py
+@@ -17,7 +17,7 @@ def read_uint4(buf):
+ 
+ def read_uint8(buf):
+     v = struct.unpack("!2I", buf)
+-    return v[0]*pow(2L, 32) + v[1]
++    return v[0]*pow(2, 32) + v[1]
+ 
+ def read_int2(buf):
+     return struct.unpack("!h", buf)[0]


=====================================
debian/patches/series
=====================================
@@ -3,3 +3,4 @@
 0003-fix-None-checking.patch
 0004-Relax-tests-on-metadata.patch
 0005-no-mock.patch
+python3.patch


=====================================
debian/python-mipp-test.install deleted
=====================================
@@ -1,3 +0,0 @@
-tests/*.py usr/share/python-mipp-test
-tests/data/[a-zA-z0-9]* usr/share/python-mipp-test/data
-


=====================================
debian/python-mipp.install deleted
=====================================
@@ -1 +0,0 @@
-doc/build/html usr/share/doc/python-mipp


=====================================
debian/python3-mipp-test.install
=====================================
@@ -0,0 +1,3 @@
+tests/*.py              usr/share/python3-mipp-test
+tests/data/[a-zA-z0-9]* usr/share/python3-mipp-test/data
+


=====================================
debian/python-mipp.doc-base → debian/python3-mipp.doc-base
=====================================
@@ -6,5 +6,5 @@ Abstract: This document includes the
 Section: Programming/Python
 
 Format: HTML
-Index: /usr/share/doc/python-mipp/html/index.html
-Files: /usr/share/doc/python-mipp/html/*.html
+Index: /usr/share/doc/python3-mipp/html/index.html
+Files: /usr/share/doc/python3-mipp/html/*.html


=====================================
debian/python-mipp.examples → debian/python3-mipp.examples
=====================================


=====================================
debian/python3-mipp.install
=====================================
@@ -0,0 +1 @@
+doc/build/html usr/share/doc/python3-mipp


=====================================
debian/rules
=====================================
@@ -7,11 +7,11 @@
 
 export PYBUILD_NAME=mipp
 export PYBUILD_TEST_ARGS=tests
-export PYBUILD_AFTER_BUILD_python2=env PYTHONPATH={build_dir} http_proxy='127.0.0.1:9' $(MAKE) SPHINXBUILD=/usr/share/sphinx/scripts/python2/sphinx-build -C doc html
+export PYBUILD_AFTER_BUILD_python3=env PYTHONPATH={build_dir} http_proxy='127.0.0.1:9' $(MAKE) SPHINXBUILD=/usr/share/sphinx/scripts/python3/sphinx-build -C doc html
 
 
 %:
-	dh $@ --with python2,sphinxdoc --buildsystem=pybuild
+	dh $@ --with python3,sphinxdoc --buildsystem=pybuild
 
 
 override_dh_auto_clean:
@@ -22,4 +22,4 @@ override_dh_auto_clean:
 
 override_dh_install:
 	dh_install --list-missing
-	chmod 0644 debian/*/usr/share/python-mipp-test/data/*
+	chmod 0644 debian/*/usr/share/python3-mipp-test/data/*


=====================================
debian/source/lintian-overrides deleted
=====================================
@@ -1,4 +0,0 @@
-# mipp only supports Python 2
-python-foo-but-no-python3-foo python-mipp
-python-foo-but-no-python3-foo python-mipp-test
-


=====================================
debian/tests/control
=====================================
@@ -1,2 +1,2 @@
-Tests: python2
-Depends: @builddeps@, python-mipp, python-mipp-test
+Tests: python3
+Depends: @builddeps@, python3-mipp, python3-mipp-test


=====================================
debian/tests/python2 → debian/tests/python3
=====================================
@@ -1,12 +1,12 @@
 #!/bin/sh
 set -efu
 
-PYS=${PYS:-"$(pyversions -r 2>/dev/null)"}
+PYS=${PYS:-"$(py3versions -r 2>/dev/null)"}
 TESTPKG=${TESTPKG:-mipp}
 
 cd "$ADTTMP"
 
 for py in $PYS; do
     echo "=== $py ==="
-    $py -m unittest discover -v /usr/share/python-mipp-test 2>&1
+    $py -m unittest discover -v /usr/share/python3-mipp-test 2>&1
 done



View it on GitLab: https://salsa.debian.org/debian-gis-team/mipp/commit/4ee66fb2fdedb1efc9b015a6bb84b60e3249ff19

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/mipp/commit/4ee66fb2fdedb1efc9b015a6bb84b60e3249ff19
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20190721/5a154a98/attachment-0001.html>


More information about the Pkg-grass-devel mailing list