Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-casacore for openSUSE:Factory checked in at 2025-04-26 22:25:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-casacore (Old) and /work/SRC/openSUSE:Factory/.python-casacore.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-casacore" Sat Apr 26 22:25:28 2025 rev:8 rq:1272802 version:3.7.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-casacore/python-casacore.changes 2024-09-11 16:56:17.988304500 +0200 +++ /work/SRC/openSUSE:Factory/.python-casacore.new.30101/python-casacore.changes 2025-04-26 22:25:38.503077023 +0200 @@ -1,0 +2,8 @@ +Fri Apr 25 13:54:04 UTC 2025 - Atri Bhattacharya <badshah...@gmail.com> + +- Update to version 3.7.1: + * No changelog. +- Drop python-casacore-no-six.patch: upstreamed. +- Drop unecessary hashbang from a non-exectuable file. + +------------------------------------------------------------------- Old: ---- python-casacore-no-six.patch python_casacore-3.6.1.tar.gz New: ---- python_casacore-3.7.1.tar.gz BETA DEBUG BEGIN: Old: * No changelog. - Drop python-casacore-no-six.patch: upstreamed. - Drop unecessary hashbang from a non-exectuable file. BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-casacore.spec ++++++ --- /var/tmp/diff_new_pack.n7cGmC/_old 2025-04-26 22:25:39.279109214 +0200 +++ /var/tmp/diff_new_pack.n7cGmC/_new 2025-04-26 22:25:39.279109214 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-casacore # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,15 +20,13 @@ %define pythons python3 %global modname casacore Name: python-casacore -Version: 3.6.1 +Version: 3.7.1 Release: 0 Summary: A wrapper around CASACORE, the radio astronomy library License: LGPL-3.0-or-later Group: Development/Languages/Python URL: https://github.com/casacore/python-casacore -Source: https://files.pythonhosted.org/packages/source/p/python_casacore/python_casacore-3.6.1.tar.gz -# https://github.com/casacore/python-casacore/commit/afb5cbf88eb6e78dd2aefe53d5ddf5179e1f8110 -Patch0: python-casacore-no-six.patch +Source: https://files.pythonhosted.org/packages/source/p/python_casacore/python_casacore-%{version}.tar.gz BuildRequires: %{python_module devel} BuildRequires: %{python_module numpy} BuildRequires: %{python_module pip} @@ -57,6 +55,9 @@ # empty file masking the module directory rm pyrap/images.py +# Unnecessary hashbang +sed -Ei "1{\@/usr/bin/env python@d}" casacore/tables/wxtablebrowser.py + %build export CFLAGS="%{optflags}" %pyproject_wheel ++++++ python_casacore-3.6.1.tar.gz -> python_casacore-3.7.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/CHANGELOG.md new/python_casacore-3.7.1/CHANGELOG.md --- old/python_casacore-3.6.1/CHANGELOG.md 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/CHANGELOG.md 2022-11-09 13:37:21.000000000 +0100 @@ -1,3 +1,7 @@ +# 3.7.1 + +This version as a binary wheel ships with underlying casacore v3.7.1. + # 3.6.1 This version as a binary wheel ships with underlying casacore v3.6.1. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/CMakeLists.txt new/python_casacore-3.7.1/CMakeLists.txt --- old/python_casacore-3.6.1/CMakeLists.txt 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/CMakeLists.txt 2022-11-09 13:37:21.000000000 +0100 @@ -9,7 +9,7 @@ # Find Casacore and its dependencies set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) find_package(Casacore REQUIRED) -find_package(Boost REQUIRED COMPONENTS python) +find_package(Boost REQUIRED COMPONENTS python3) # If environment variable CASACORE_DATA is set, assume it points to a directory # containing the cascacore data files, and install its contents. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/PKG-INFO new/python_casacore-3.7.1/PKG-INFO --- old/python_casacore-3.6.1/PKG-INFO 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/PKG-INFO 2022-11-09 13:37:21.000000000 +0100 @@ -1,174 +1,175 @@ -Metadata-Version: 2.1 +Metadata-Version: 2.2 Name: python-casacore -Version: 3.6.1 +Version: 3.7.1 Summary: A wrapper around CASACORE, the radio astronomy library Keywords: pyrap,casacore,utilities,astronomy Author-Email: Malte Marquarding <malte.marquard...@gmail.com>, Ger van Diepen <gervandie...@gmail.com>, Gijs Molenaar <g...@pythonic.nl>, Tammo Jan Dijkema <dijk...@astron.nl>, Marcel Loose <lo...@astron.nl> License: GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates - the terms and conditions of version 3 of the GNU General Public - License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser - General Public License, and the "GNU GPL" refers to version 3 of the GNU - General Public License. - - "The Library" refers to a covered work governed by this License, - other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided - by the Library, but which is not otherwise based on the Library. - Defining a subclass of a class defined by the Library is deemed a mode - of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an - Application with the Library. The particular version of the Library - with which the Combined Work was made is also called the "Linked - Version". - - The "Minimal Corresponding Source" for a Combined Work means the - Corresponding Source for the Combined Work, excluding any source code - for portions of the Combined Work that, considered in isolation, are - based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the - object code and/or source code for the Application, including any data - and utility programs needed for reproducing the Combined Work from the - Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License - without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a - facility refers to a function or data to be supplied by an Application - that uses the facility (other than as an argument passed when the - facility is invoked), then you may convey a copy of the modified - version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from - a header file that is part of the Library. You may convey such object - code under terms of your choice, provided that, if the incorporated - material is not limited to numerical parameters, data structure - layouts and accessors, or small macros, inline functions and templates - (ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, - taken together, effectively do not restrict modification of the - portions of the Library contained in the Combined Work and reverse - engineering for debugging such modifications, if you also do each of - the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the - Library side by side in a single library together with other library - facilities that are not Applications and are not covered by this - License, and convey such a combined library under terms of your - choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions - of the GNU Lesser General Public License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the - Library as you received it specifies that a certain numbered version - of the GNU Lesser General Public License "or any later version" - applies to it, you have the option of following the terms and - conditions either of that published version or of any later version - published by the Free Software Foundation. If the Library as you - received it does not specify a version number of the GNU Lesser - General Public License, you may choose any version of the GNU Lesser - General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide - whether future versions of the GNU Lesser General Public License shall - apply, that proxy's public statement of acceptance of any version is - permanent authorization for you to choose that version for the - Library. + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates + the terms and conditions of version 3 of the GNU General Public + License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser + General Public License, and the "GNU GPL" refers to version 3 of the GNU + General Public License. + + "The Library" refers to a covered work governed by this License, + other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided + by the Library, but which is not otherwise based on the Library. + Defining a subclass of a class defined by the Library is deemed a mode + of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an + Application with the Library. The particular version of the Library + with which the Combined Work was made is also called the "Linked + Version". + + The "Minimal Corresponding Source" for a Combined Work means the + Corresponding Source for the Combined Work, excluding any source code + for portions of the Combined Work that, considered in isolation, are + based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the + object code and/or source code for the Application, including any data + and utility programs needed for reproducing the Combined Work from the + Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License + without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a + facility refers to a function or data to be supplied by an Application + that uses the facility (other than as an argument passed when the + facility is invoked), then you may convey a copy of the modified + version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from + a header file that is part of the Library. You may convey such object + code under terms of your choice, provided that, if the incorporated + material is not limited to numerical parameters, data structure + layouts and accessors, or small macros, inline functions and templates + (ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, + taken together, effectively do not restrict modification of the + portions of the Library contained in the Combined Work and reverse + engineering for debugging such modifications, if you also do each of + the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the + Library side by side in a single library together with other library + facilities that are not Applications and are not covered by this + License, and convey such a combined library under terms of your + choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions + of the GNU Lesser General Public License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the + Library as you received it specifies that a certain numbered version + of the GNU Lesser General Public License "or any later version" + applies to it, you have the option of following the terms and + conditions either of that published version or of any later version + published by the Free Software Foundation. If the Library as you + received it does not specify a version number of the GNU Lesser + General Public License, you may choose any version of the GNU Lesser + General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide + whether future versions of the GNU Lesser General Public License shall + apply, that proxy's public statement of acceptance of any version is + permanent authorization for you to choose that version for the + Library. + Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3) @@ -178,9 +179,8 @@ Classifier: Programming Language :: Python :: 3 Classifier: Topic :: Scientific/Engineering :: Astronomy Project-URL: Homepage, https://github.com/casacore/python-casacore -Requires-Python: >=3.7 +Requires-Python: >=3.8 Requires-Dist: numpy -Requires-Dist: six Description-Content-Type: text/x-rst python-casacore diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/_version.py new/python_casacore-3.7.1/casacore/_version.py --- old/python_casacore-3.6.1/casacore/_version.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/_version.py 2022-11-09 13:37:21.000000000 +0100 @@ -1,8 +1,13 @@ -# file generated by setuptools_scm +# file generated by setuptools-scm # don't change, don't track in version control + +__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"] + TYPE_CHECKING = False if TYPE_CHECKING: - from typing import Tuple, Union + from typing import Tuple + from typing import Union + VERSION_TUPLE = Tuple[Union[int, str], ...] else: VERSION_TUPLE = object @@ -12,5 +17,5 @@ __version_tuple__: VERSION_TUPLE version_tuple: VERSION_TUPLE -__version__ = version = '3.6.1' -__version_tuple__ = version_tuple = (3, 6, 1) +__version__ = version = '3.7.1' +__version_tuple__ = version_tuple = (3, 7, 1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/fitting/fitting.py new/python_casacore-3.7.1/casacore/fitting/fitting.py --- old/python_casacore-3.6.1/casacore/fitting/fitting.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/fitting/fitting.py 2022-11-09 13:37:21.000000000 +0100 @@ -1,10 +1,6 @@ -from __future__ import print_function - from ._fitting import fitting import numpy as NUM -import six from casacore.functionals import * -from six import string_types class fitserver(object): @@ -102,13 +98,13 @@ return False def _gettype(self, ftype): - if isinstance(ftype, string_types): + if isinstance(ftype, str): ftype = ftype.lower() if ftype not in self._typeids: raise TypeError("Illegal fitting type") else: return self._typeids[ftype] - elif isinstance(ftype, six.integer_types): + elif isinstance(ftype, int): if ftype not in self._typeids.values(): raise TypeError("Illegal fitting type") else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/functionals/functional.py new/python_casacore-3.7.1/casacore/functionals/functional.py --- old/python_casacore-3.6.1/casacore/functionals/functional.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/functionals/functional.py 2022-11-09 13:37:21.000000000 +0100 @@ -1,4 +1,3 @@ -from six import string_types, integer_types from ._functionals import _functional import numpy @@ -20,19 +19,19 @@ class functional(_functional): def __init__(self, name=None, order=-1, params=None, mode=None, dtype=0): - if isinstance(dtype, string_types): + if isinstance(dtype, str): dtypes = {'real': 0, 'complex': 1} dtype = dtypes.get(dtype.lower()) if numpy.iscomplexobj(params): dtype = 1 self._dtype = dtype progtext = "" - if not isinstance(name, string_types): + if not isinstance(name, str): raise TypeError("'name' was not of type string") - if not (isinstance(order, integer_types) or isinstance(order, string_types)): + if not (isinstance(order, int) or isinstance(order, str)): raise TypeError("'order' was not of type integer or string") else: - if isinstance(order, string_types): + if isinstance(order, str): progtext = order order = -1 # our own functionals server diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/images/coordinates.py new/python_casacore-3.7.1/casacore/images/coordinates.py --- old/python_casacore-3.6.1/casacore/images/coordinates.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/images/coordinates.py 2022-11-09 13:37:21.000000000 +0100 @@ -25,8 +25,6 @@ # # $Id$ -from __future__ import print_function - class coordinatesystem(object): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/images/image.py new/python_casacore-3.7.1/casacore/images/image.py --- old/python_casacore-3.6.1/casacore/images/image.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/images/image.py 2022-11-09 13:37:21.000000000 +0100 @@ -23,9 +23,6 @@ # 520 Edgemont Road # Charlottesville, VA 22903-2475 USA -from __future__ import print_function - -from six import string_types, integer_types from ._images import Image import numpy import numpy.ma as nma @@ -128,7 +125,7 @@ if isinstance(imagename, tuple) or isinstance(imagename, list): if len(imagename) == 0: raise ValueError('No images given in list or tuple') - if isinstance(imagename[0], string_types): + if isinstance(imagename[0], str): # Concatenate from image names Image.__init__(self, imagename, axis) opened = True @@ -137,7 +134,7 @@ Image.__init__(self, imagename, axis, 0, 0) opened = True if not opened: - if not isinstance(imagename, string_types): + if not isinstance(imagename, str): raise ValueError("first argument must be name or" + " sequence of images or names") if shape is None: @@ -259,7 +256,7 @@ It can only be used for unique attribute keys. An IndexError exception is raised if no or multiple matches are found. """ - if not isinstance(key, string_types): + if not isinstance(key, str): return self._attrgetrow(groupname, key) # The key is an attribute name whose value has to be found. rownrs = self.attrfindrows(groupname, key, value) @@ -610,7 +607,7 @@ def _adaptAxes(self, axes): # If axes is a single integer value, turn it into a list. - if isinstance(axes, integer_types): + if isinstance(axes, int): axes = [axes] # ImageProxy expects Fortran-numbered axes. # So reverse the axes. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/measures/__init__.py new/python_casacore-3.7.1/casacore/measures/__init__.py --- old/python_casacore-3.6.1/casacore/measures/__init__.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/measures/__init__.py 2022-11-09 13:37:21.000000000 +0100 @@ -31,7 +31,6 @@ import casacore.quanta as dq import os -from six import string_types if 'MEASURESDATA' in os.environ.keys(): if 'AIPSPATH' not in os.environ.keys(): @@ -436,7 +435,7 @@ """ if is_measure(rfq) and rfq['type'] == 'frequency': rfq = dq.quantity(rfq['m0']) - elif isinstance(rfq, string_types): + elif isinstance(rfq, str): rfq = dq.quantity(rfq) if is_measure(v0) and v0['type'] == 'doppler' \ and dq.is_quantity(rfq) \ @@ -488,7 +487,7 @@ """ if is_measure(rfq) and rfq['type'] == 'frequency': rfq = dq.quantity(rfq['m0']) - elif isinstance(rfq, string_types): + elif isinstance(rfq, str): rfq = dq.quantity(rfq) if is_measure(v0): if v0['type'] == 'radialvelocity': @@ -823,7 +822,7 @@ """ a = self.rise(crd, ev) - if isinstance(a['rise'], string_types): + if isinstance(a['rise'], str): return {"rise": {"last": a[0], "utc": a[0]}, "set": {"last": a[1], "utc": a[1]}, "solved": False} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/quanta/quantity.py new/python_casacore-3.7.1/casacore/quanta/quantity.py --- old/python_casacore-3.6.1/casacore/quanta/quantity.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/quanta/quantity.py 2022-11-09 13:37:21.000000000 +0100 @@ -1,4 +1,3 @@ -from six import string_types from ._quanta import QuantVec from ._quanta import Quantity from ._quanta import from_string, from_dict, from_dict_v @@ -52,7 +51,7 @@ """ if len(args) == 1: - if isinstance(args[0], string_types): + if isinstance(args[0], str): # use copy constructor to create quantity from string return Quantity(from_string(args[0])) elif isinstance(args[0], dict): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/tables/msutil.py new/python_casacore-3.7.1/casacore/tables/msutil.py --- old/python_casacore-3.6.1/casacore/tables/msutil.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/tables/msutil.py 2022-11-09 13:37:21.000000000 +0100 @@ -23,9 +23,6 @@ # 520 Edgemont Road # Charlottesville, VA 22903-2475 USA # -from __future__ import print_function - -from six import string_types import numpy as np from casacore.tables.table import (table, taql, _required_ms_desc, @@ -315,7 +312,7 @@ for key in keywords: if key != 'SORTED_TABLE': val = keywords[key] - if isinstance(val, string_types): + if isinstance(val, str): tsub = table(val, ack=False) tsubn = tsub.copy(newname + '/' + key, deep=True) tnew.putkeyword(key, tsubn) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/tables/table.py new/python_casacore-3.7.1/casacore/tables/table.py --- old/python_casacore-3.6.1/casacore/tables/table.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/tables/table.py 2022-11-09 13:37:21.000000000 +0100 @@ -36,9 +36,6 @@ """ -from __future__ import print_function - -from six import string_types from ._tables import (Table, _default_ms, _default_ms_subtable, @@ -47,8 +44,6 @@ from .tablehelper import (_add_prefix, _remove_prefix, _do_remove_prefix, _format_row) -import six - def default_ms(name, tabdesc=None, dminfo=None): """ @@ -344,7 +339,7 @@ # - concatenate open tables (ConcatTable) tabname = _remove_prefix(tablename) lockopt = lockoptions - if isinstance(lockoptions, string_types): + if isinstance(lockoptions, str): lockopt = {'option': lockoptions} if isinstance(tabledesc, dict): # Create a new table. @@ -371,7 +366,7 @@ opt = 5 if _delete: opt = 6 - if isinstance(tabname, string_types): + if isinstance(tabname, str): Table.__init__(self, tabname, lockopt, opt) if ack: print('Successful', typstr, 'open of', @@ -379,7 +374,7 @@ tabname + ':', self.ncols(), 'columns,', self.nrows(), 'rows') - elif isinstance(tabname[0], string_types): + elif isinstance(tabname[0], str): # Concatenate and open named tables. Table.__init__(self, tabname, concatsubtables, lockopt, opt) @@ -1277,7 +1272,7 @@ of the struct value of the i-th keyword. """ - if isinstance(keyword, string_types): + if isinstance(keyword, str): return self._getfieldnames('', keyword, -1) else: return self._getfieldnames('', '', keyword) @@ -1299,7 +1294,7 @@ of the struct value of the i-th keyword. """ - if isinstance(keyword, string_types): + if isinstance(keyword, str): return self._getfieldnames(columnname, keyword, -1) else: return self._getfieldnames(columnname, '', keyword) @@ -1327,7 +1322,7 @@ of the i-th keyword. """ - if isinstance(keyword, string_types): + if isinstance(keyword, str): return self._getkeyword('', keyword, -1) else: return self._getkeyword('', '', keyword) @@ -1338,7 +1333,7 @@ It is similar to :func:`getkeyword`. """ - if isinstance(keyword, string_types): + if isinstance(keyword, str): return self._getkeyword(columnname, keyword, -1) else: return self._getkeyword(columnname, '', keyword) @@ -1366,7 +1361,7 @@ keyset = self.getkeywords() names = [] for key, value in keyset.items(): - if isinstance(value, string_types) and value.find('Table: ') == 0: + if isinstance(value, str) and value.find('Table: ') == 0: names.append(_do_remove_prefix(value)) return names @@ -1402,7 +1397,7 @@ val = value if isinstance(val, table): val = _add_prefix(val.name()) - if isinstance(keyword, string_types): + if isinstance(keyword, str): return self._putkeyword('', keyword, -1, makesubrecord, val) else: return self._putkeyword('', '', keyword, makesubrecord, val) @@ -1416,7 +1411,7 @@ val = value if isinstance(val, table): val = _add_prefix(val.name()) - if isinstance(keyword, string_types): + if isinstance(keyword, str): return self._putkeyword(columnname, keyword, -1, makesubrecord, val) else: @@ -1451,7 +1446,7 @@ the i-th keyword. """ - if isinstance(keyword, string_types): + if isinstance(keyword, str): self._removekeyword('', keyword, -1) else: self._removekeyword('', '', keyword) @@ -1462,7 +1457,7 @@ It is similar to :func:`removekeyword`. """ - if isinstance(keyword, string_types): + if isinstance(keyword, str): self._removekeyword(columnname, keyword, -1) else: self._removekeyword(columnname, '', keyword) @@ -1482,7 +1477,7 @@ # as these aren't valid. (See tabledefinehypercolumn) hcdefs = tabledesc.get('_define_hypercolumn_', {}) - for c, hcdef in six.iteritems(hcdefs): + for c, hcdef in hcdefs.items(): if "HCcoordnames" in hcdef and len(hcdef["HCcoordnames"]) == 0: del hcdef["HCcoordnames"] if "HCidnames" in hcdef and len(hcdef["HCidnames"]) == 0: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/tables/tablehelper.py new/python_casacore-3.7.1/casacore/tables/tablehelper.py --- old/python_casacore-3.6.1/casacore/tables/tablehelper.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/tables/tablehelper.py 2022-11-09 13:37:21.000000000 +0100 @@ -25,7 +25,6 @@ # # $Id: tableutil.py,v 1.6 2006/11/08 00:12:55 gvandiep Exp $ -from six import string_types, integer_types import numpy import re from ..quanta import quantity @@ -42,7 +41,7 @@ def _do_remove_prefix(name): """Strip the possible prefix 'Table: ' from a table name.""" res = name - if isinstance(res, string_types): + if isinstance(res, str): if res.find('Table: ') == 0: res = res.replace('Table: ', '', 1) return res @@ -50,7 +49,7 @@ def _remove_prefix(name): """Strip the possible prefix 'Table: ' from one or more table names.""" - if isinstance(name, string_types): + if isinstance(name, str): return _do_remove_prefix(name) return [_do_remove_prefix(nm) for nm in name] @@ -114,13 +113,13 @@ def _value_type_name(value): if isinstance(value, bool): return 'boolean' - if isinstance(value, integer_types): + if isinstance(value, int): return 'integer' if isinstance(value, float): return 'double' if isinstance(value, complex): return 'dcomplex' - if isinstance(value, string_types): + if isinstance(value, str): return 'string' if isinstance(value, dict): return 'record' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/tables/tableutil.py new/python_casacore-3.7.1/casacore/tables/tableutil.py --- old/python_casacore-3.6.1/casacore/tables/tableutil.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/tables/tableutil.py 2022-11-09 13:37:21.000000000 +0100 @@ -24,11 +24,8 @@ # Charlottesville, VA 22903-2475 USA # -from __future__ import print_function - from collections import defaultdict -import six from .table import table from .tablehelper import _remove_prefix, _value_type_name @@ -484,92 +481,92 @@ return rec def makedminfo(tabdesc, group_spec=None): - """Creates a data manager information object. + """Creates a data manager information object. - Create a data manager information dictionary outline from a table description. - The resulting dictionary is a bare outline and is available for the purposes of - further customising the data manager via the `group_spec` argument. - - The resulting dictionary can be used in the :class:`table` constructor and - the :meth:`default_ms` and :meth:`default_ms_subtable` functions. - - `tabdesc` - The table description - `group_spec` - The SPEC for a data manager group. In practice this is useful for - setting the Default Tile Size and Maximum Cache Size for the Data Manager:: - - { - 'WeightColumnGroup' : { - 'DEFAULTTILESHAPE': np.int32([4,4,4]), - 'MAXIMUMCACHESIZE': 1000, + Create a data manager information dictionary outline from a table description. + The resulting dictionary is a bare outline and is available for the purposes of + further customising the data manager via the `group_spec` argument. + + The resulting dictionary can be used in the :class:`table` constructor and + the :meth:`default_ms` and :meth:`default_ms_subtable` functions. + + `tabdesc` + The table description + `group_spec` + The SPEC for a data manager group. In practice this is useful for + setting the Default Tile Size and Maximum Cache Size for the Data Manager:: + + { + 'WeightColumnGroup' : { + 'DEFAULTTILESHAPE': np.int32([4,4,4]), + 'MAXIMUMCACHESIZE': 1000, + } } - } - - This should be used with care. - """ - if group_spec is None: - group_spec = {} + This should be used with care. - class DMGroup(object): """ - Keep track of the columns, type and spec of each data manager group - """ - def __init__(self): - self.columns = [] - self.type = None - self.spec = None - - dm_groups = defaultdict(DMGroup) - - # Iterate through the table columns, grouping them - # by their dataManagerGroup - for c, d in six.iteritems(tabdesc): - if c in ('_define_hypercolumn_', '_keywords_', '_private_keywords_'): - continue - - # Extract group and data manager type - group = d.get("dataManagerGroup", "StandardStMan") - type_ = d.get("dataManagerType", "StandardStMan") - - # Set defaults if necessary - if not group: - group = "StandardStMan" - - if not type_: - type_ = "StandardStMan" - - # Obtain the (possibly empty) data manager group - dm_group = dm_groups[group] - - # Add the column - dm_group.columns.append(c) - - # Set the spec - if dm_group.spec is None: - dm_group.spec = group_spec.get(group, {}) - - # Check that the data manager type is consistent across columns - if dm_group.type is None: - dm_group.type = type_ - elif not dm_group.type == type_: - raise ValueError("Mismatched dataManagerType '%s' " - "for dataManagerGroup '%s' " - "Previously, the type was '%s'" % - (type_, group, dm_group.type)) - - # Output a data manager entry - return { - '*%d'%(i+1): { - 'COLUMNS': dm_group.columns, - 'TYPE': dm_group.type, - 'NAME': group, - 'SPEC' : dm_group.spec, - 'SEQNR': i - } for i, (group, dm_group) - in enumerate(six.iteritems(dm_groups)) - } + if group_spec is None: + group_spec = {} + + class DMGroup(object): + """ + Keep track of the columns, type and spec of each data manager group + """ + def __init__(self): + self.columns = [] + self.type = None + self.spec = None + + dm_groups = defaultdict(DMGroup) + + # Iterate through the table columns, grouping them + # by their dataManagerGroup + for c, d in tabdesc.items(): + if c in ('_define_hypercolumn_', '_keywords_', '_private_keywords_'): + continue + + # Extract group and data manager type + group = d.get("dataManagerGroup", "StandardStMan") + type_ = d.get("dataManagerType", "StandardStMan") + + # Set defaults if necessary + if not group: + group = "StandardStMan" + + if not type_: + type_ = "StandardStMan" + + # Obtain the (possibly empty) data manager group + dm_group = dm_groups[group] + + # Add the column + dm_group.columns.append(c) + + # Set the spec + if dm_group.spec is None: + dm_group.spec = group_spec.get(group, {}) + + # Check that the data manager type is consistent across columns + if dm_group.type is None: + dm_group.type = type_ + elif not dm_group.type == type_: + raise ValueError("Mismatched dataManagerType '%s' " + "for dataManagerGroup '%s' " + "Previously, the type was '%s'" % + (type_, group, dm_group.type)) + + # Output a data manager entry + return { + '*%d'%(i+1): { + 'COLUMNS': dm_group.columns, + 'TYPE': dm_group.type, + 'NAME': group, + 'SPEC' : dm_group.spec, + 'SEQNR': i + } for i, (group, dm_group) + in enumerate(dm_groups.items()) + } # Create the old glish names for them. tablecreatescalarcoldesc = makescacoldesc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/tables/wxtablebrowser.py new/python_casacore-3.7.1/casacore/tables/wxtablebrowser.py --- old/python_casacore-3.6.1/casacore/tables/wxtablebrowser.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/tables/wxtablebrowser.py 2022-11-09 13:37:21.000000000 +0100 @@ -1,4 +1,4 @@ -from __future__ import print_function +#!/usr/bin/env python from wxPython.grid import * from wxPython.wx import * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/casacore/util/substitute.py new/python_casacore-3.7.1/casacore/util/substitute.py --- old/python_casacore-3.6.1/casacore/util/substitute.py 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/casacore/util/substitute.py 2022-11-09 13:37:21.000000000 +0100 @@ -23,7 +23,6 @@ # 520 Edgemont Road # Charlottesville, VA 22903-2475 USA -from six import string_types import numpy as np __all__ = ['getlocals', 'getvariable', 'substitute'] @@ -266,7 +265,7 @@ def substituteonevar(v): # A string needs to be enclosed in quotes. # A vector value is enclosed in square brackets and separated by commas. - if isinstance(v, string_types): + if isinstance(v, str): return substitutestring(v) # A numeric or boolean value is converted to a string. # A vector value is enclosed in square brackets and separated by commas. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/pypi-token.txt new/python_casacore-3.7.1/pypi-token.txt --- old/python_casacore-3.6.1/pypi-token.txt 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/pypi-token.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -pypi-AgEIcHlwaS5vcmcCJDk5ZjBmODc1LWE4ODQtNGY4Yy04MDhiLWVhOTA2YzI1NjNiNgACF1sxLFsicHl0aG9uLWNhc2Fjb3JlIl1dAAIsWzIsWyIzMzQwOWJkYi1iYWFhLTQ3MzItODI4My0zOWYwYzc2ZGY5ODkiXV0AAAYg2EdnL912GlgFCEZFf8clZeiE1sK092mL74z8pHpmOfk diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_casacore-3.6.1/pyproject.toml new/python_casacore-3.7.1/pyproject.toml --- old/python_casacore-3.6.1/pyproject.toml 2022-11-09 13:37:21.000000000 +0100 +++ new/python_casacore-3.7.1/pyproject.toml 2022-11-09 13:37:21.000000000 +0100 @@ -20,7 +20,7 @@ keywords = ["pyrap", "casacore", "utilities", "astronomy"] license = {file = "LICENSE"} readme = {file = "README.rst", content-type = "text/x-rst"} -requires-python = ">=3.7" +requires-python = ">=3.8" authors = [ {name = "Malte Marquarding", email = "malte.marquard...@gmail.com"}, {name = "Ger van Diepen", email = "gervandie...@gmail.com"}, @@ -40,7 +40,6 @@ ] dependencies = [ "numpy", - "six", ] [project.urls] @@ -52,7 +51,7 @@ ######################### [tool.cibuildwheel] -build = "cp3{7,8,9,10,11,12}-*_x86_64" +build = "cp3{8,9,10,11,12,13}-*_x86_64" build-verbosity = 1 environment = """ \ CXXFLAGS="-I/usr/include/cfitsio" \ @@ -70,28 +69,28 @@ skip = ["*-musllinux_*"] [[tool.cibuildwheel.overrides]] -select="cp37-*" -manylinux-x86_64-image = "quay.io/casacore/casacore:py37_v3.6.1" - -[[tool.cibuildwheel.overrides]] select="cp38-*" -manylinux-x86_64-image = "quay.io/casacore/casacore:py38_v3.6.1" +manylinux-x86_64-image = "quay.io/casacore/casacore:py38_v3.7.1" [[tool.cibuildwheel.overrides]] select="cp39-*" -manylinux-x86_64-image = "quay.io/casacore/casacore:py39_v3.6.1" +manylinux-x86_64-image = "quay.io/casacore/casacore:py39_v3.7.1" [[tool.cibuildwheel.overrides]] select="cp310-*" -manylinux-x86_64-image = "quay.io/casacore/casacore:py310_v3.6.1" +manylinux-x86_64-image = "quay.io/casacore/casacore:py310_v3.7.1" [[tool.cibuildwheel.overrides]] select="cp311-*" -manylinux-x86_64-image = "quay.io/casacore/casacore:py311_v3.6.1" +manylinux-x86_64-image = "quay.io/casacore/casacore:py311_v3.7.1" [[tool.cibuildwheel.overrides]] select="cp312-*" -manylinux-x86_64-image = "quay.io/casacore/casacore:py312_v3.6.1" +manylinux-x86_64-image = "quay.io/casacore/casacore:py312_v3.7.1" + +[[tool.cibuildwheel.overrides]] +select="cp313-*" +manylinux-x86_64-image = "quay.io/casacore/casacore:py313_v3.7.1" #########################