From 4dd93b3c5d6f1c4154ec886a1c0d9bdf604e1cd9 Mon Sep 17 00:00:00 2001 From: Lowri Jenkins Date: Fri, 17 May 2024 14:58:23 +0100 Subject: [PATCH 1/2] Remove all reference to six from scans --- general/scans/.pylintrc | 2 +- general/scans/defaults.py | 4 +--- general/scans/fit.py | 7 ++----- general/scans/monoid.py | 4 +--- general/scans/motion.py | 4 +--- general/scans/scans.py | 7 ++----- 6 files changed, 8 insertions(+), 20 deletions(-) diff --git a/general/scans/.pylintrc b/general/scans/.pylintrc index e3518554..cb51bfda 100644 --- a/general/scans/.pylintrc +++ b/general/scans/.pylintrc @@ -123,7 +123,7 @@ init-import=no # List of qualified module names which can have objects that can redefine # builtins. -redefining-builtins-modules=six.moves,future.builtins +redefining-builtins-modules=future.builtins [SIMILARITIES] diff --git a/general/scans/defaults.py b/general/scans/defaults.py index 16dffb0c..487852f9 100644 --- a/general/scans/defaults.py +++ b/general/scans/defaults.py @@ -12,7 +12,6 @@ from abc import ABCMeta, abstractmethod import os -from six import add_metaclass import matplotlib.pyplot as plt import numpy as np @@ -29,8 +28,7 @@ from .mocks import g -@add_metaclass(ABCMeta) -class Defaults(object): +class Defaults(object, metaclass=ABCMeta): """A defaults object to store the correct functions for this instrument""" SINGLE_FIGURE = False diff --git a/general/scans/fit.py b/general/scans/fit.py index facaacfc..3b12bf60 100644 --- a/general/scans/fit.py +++ b/general/scans/fit.py @@ -9,15 +9,13 @@ import warnings import numpy as np from scipy.stats import linregress -from six import add_metaclass from scipy.special import erf # pylint: disable=no-name-in-module # pylint: disable=wrong-import-position from scipy.optimize import curve_fit, OptimizeWarning # noqa: E402 -@add_metaclass(ABCMeta) -class Fit(object): +class Fit(object, metaclass=ABCMeta): """The Fit class combines the common requirements needed for fitting. We need to be able to turn a set of data points into a set of parameters, get the simulated curve from a set of parameters, and @@ -258,8 +256,7 @@ def title(self, center): return "Peak at {}".format(smart_number_format(center)) -@add_metaclass(ABCMeta) -class CurveFit(Fit): +class CurveFit(Fit, metaclass=ABCMeta): """ A class for fitting models based on the scipy curve_fit optimizer """ diff --git a/general/scans/monoid.py b/general/scans/monoid.py index f94e2141..0739edd7 100644 --- a/general/scans/monoid.py +++ b/general/scans/monoid.py @@ -11,11 +11,9 @@ from abc import ABCMeta, abstractmethod import numpy as np -from six import add_metaclass -@add_metaclass(ABCMeta) -class Monoid(object): +class Monoid(object, metaclass=ABCMeta): """ The Monoid base class enforces the two laws: There must be a zero operation and a combining function (add). diff --git a/general/scans/motion.py b/general/scans/motion.py index 9f09d2dd..bb339b0f 100644 --- a/general/scans/motion.py +++ b/general/scans/motion.py @@ -15,8 +15,6 @@ except ImportError: from .mocks import g -from six import text_type - class Motion(object): # pylint: disable=too-many-instance-attributes @@ -225,7 +223,7 @@ def get_motion(motion_or_block_name): """ if isinstance(motion_or_block_name, Motion): motion = motion_or_block_name - elif isinstance(motion_or_block_name, (str, text_type)): + elif isinstance(motion_or_block_name, (str, str)): motion = BlockMotion(motion_or_block_name, get_units(motion_or_block_name)) else: raise TypeError("Cannot run scan on axis {}. Try a string or a motion object instead.".format( diff --git a/general/scans/scans.py b/general/scans/scans.py index 69720659..97a298fd 100644 --- a/general/scans/scans.py +++ b/general/scans/scans.py @@ -22,8 +22,6 @@ import time import warnings import numpy as np -import six -from six import add_metaclass import matplotlib.pyplot as plt if TYPE_CHECKING: @@ -94,8 +92,7 @@ def get_input(prompt: str): -@add_metaclass(ABCMeta) -class Scan(object): +class Scan(object, metaclass=ABCMeta): """The virtual class that represents all controlled scans. This class should never be instantiated directly, but rather by one of its subclasses.""" @@ -729,7 +726,7 @@ def __init__(self, first, second): self.defaults = self.first.defaults def __iter__(self): - for x, y in six.moves.zip(self.first, self.second): + for x, y in zip(self.first, self.second): yield merge_dicts(x, y) def __repr__(self): From d1195c6300c9373bde34bff6977f5a4251669948 Mon Sep 17 00:00:00 2001 From: Lowri Jenkins Date: Fri, 17 May 2024 14:58:36 +0100 Subject: [PATCH 2/2] Remove all other reference to sans --- .pylintrc | 2 +- nee_scripts/instrument.py | 4 +--- requirements.txt | 1 - technique/muon/muon_begin_end.py | 1 - technique/muon/tests/test_background_plot.py | 7 ++----- technique/muon/tests/test_muon_begin_end.py | 6 +----- technique/reflectometry/base.py | 1 - technique/sans/auto_reduction.py | 1 - technique/sans/instrument.py | 4 +--- 9 files changed, 6 insertions(+), 21 deletions(-) diff --git a/.pylintrc b/.pylintrc index b8439305..2b7022c3 100644 --- a/.pylintrc +++ b/.pylintrc @@ -127,7 +127,7 @@ init-import=no # List of qualified module names which can have objects that can redefine # builtins. -redefining-builtins-modules=six.moves,future.builtins +redefining-builtins-modules=future.builtins [SIMILARITIES] diff --git a/nee_scripts/instrument.py b/nee_scripts/instrument.py index 47059115..87eac4ea 100644 --- a/nee_scripts/instrument.py +++ b/nee_scripts/instrument.py @@ -13,7 +13,6 @@ import csv from logging import info, warning import os.path -from six import add_metaclass from .genie import gen from .util import user_script @@ -25,9 +24,8 @@ def _get_times(times): raise RuntimeError("No valid time found") -@add_metaclass(ABCMeta) # pylint: disable=too-many-public-methods -class ScanningInstrument(object): +class ScanningInstrument(object, metaclass=ABCMeta): """ The base class for scanning measurement instruments. diff --git a/requirements.txt b/requirements.txt index acb6a3e0..dfd0364a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,6 @@ matplotlib pylint flake8 scipy -six sphinx mock parameterized diff --git a/technique/muon/muon_begin_end.py b/technique/muon/muon_begin_end.py index d7b437fa..53ddbdda 100644 --- a/technique/muon/muon_begin_end.py +++ b/technique/muon/muon_begin_end.py @@ -1,6 +1,5 @@ from __future__ import print_function from genie_python import genie as g -from six.moves import input import time diff --git a/technique/muon/tests/test_background_plot.py b/technique/muon/tests/test_background_plot.py index c4f2ef2e..f03c63df 100644 --- a/technique/muon/tests/test_background_plot.py +++ b/technique/muon/tests/test_background_plot.py @@ -6,12 +6,9 @@ # Imports come after to prevent import of genie python not in simulation import datetime import unittest -import six.moves from technique.muon.background_plot import BackgroundPlot -if six.PY3: - from unittest.mock import patch, mock_open -else: - from mock import patch, mock_open +from unittest.mock import patch, mock_open + THIS_DIR = os.path.dirname(os.path.abspath(__file__)) diff --git a/technique/muon/tests/test_muon_begin_end.py b/technique/muon/tests/test_muon_begin_end.py index d424611f..f6e47ca3 100644 --- a/technique/muon/tests/test_muon_begin_end.py +++ b/technique/muon/tests/test_muon_begin_end.py @@ -4,13 +4,9 @@ # Imports come after to prevent import of genie python not in simulation import unittest -import six.moves from technique.muon import muon_begin_end from genie_python import genie as g -if six.PY3: - from unittest.mock import patch, MagicMock -else: - from mock import patch, MagicMock +from unittest.mock import patch, MagicMock class TestRunControl(unittest.TestCase): diff --git a/technique/reflectometry/base.py b/technique/reflectometry/base.py index 847f703e..76ef843e 100644 --- a/technique/reflectometry/base.py +++ b/technique/reflectometry/base.py @@ -8,7 +8,6 @@ from future.moves import itertools from math import tan, radians, sin -from six.moves import input from genie_python import genie as g import general.utilities.io diff --git a/technique/sans/auto_reduction.py b/technique/sans/auto_reduction.py index 4309aca1..466034a3 100644 --- a/technique/sans/auto_reduction.py +++ b/technique/sans/auto_reduction.py @@ -3,7 +3,6 @@ from __future__ import print_function from xml.etree import ElementTree as ET from collections import defaultdict -from six.moves import input SCHEMA = "{http://definition.nexusformat.org/schema/3.0}" diff --git a/technique/sans/instrument.py b/technique/sans/instrument.py index 9a746aaa..1f7165d2 100755 --- a/technique/sans/instrument.py +++ b/technique/sans/instrument.py @@ -13,7 +13,6 @@ import csv from logging import info, warning import os.path -from six import add_metaclass from .genie import gen from .util import user_script @@ -25,9 +24,8 @@ def _get_times(times): raise ValueError("No valid time found") -@add_metaclass(ABCMeta) # pylint: disable=too-many-public-methods -class ScanningInstrument(object): +class ScanningInstrument(object, metaclass=ABCMeta): """ The base class for scanning measurement instruments.