diff --git a/src/diffpy/srmise/basefunction.py b/src/diffpy/srmise/basefunction.py index d5dd220..de69527 100644 --- a/src/diffpy/srmise/basefunction.py +++ b/src/diffpy/srmise/basefunction.py @@ -369,7 +369,7 @@ def factory(functionstr, baselist): # "key=value"->{"key":"value"} data = re.split(r"(?:[\r\n]+|\A)(\S+)=", data) ddict = {} - for i in range(len(data) / 2): + for i in range(len(data) // 2): ddict[data[2 * i + 1]] = data[2 * i + 2] # dictionary of parameters @@ -442,7 +442,8 @@ def safefunction(f, fsafe): if __name__ == "__main__": - from diffpy.srmise.peaks import GaussianOverR, TerminationRipples + from diffpy.srmise.peaks.gaussianoverr import GaussianOverR + from diffpy.srmise.peaks.terminationripples import TerminationRipples p = GaussianOverR(0.8) outstr = p.writestr([]) diff --git a/src/diffpy/srmise/modelcluster.py b/src/diffpy/srmise/modelcluster.py index cf952b2..cc509c4 100644 --- a/src/diffpy/srmise/modelcluster.py +++ b/src/diffpy/srmise/modelcluster.py @@ -26,9 +26,9 @@ import numpy as np from diffpy.srmise import srmiselog -from diffpy.srmise.baselines import Baseline +from diffpy.srmise.baselines.base import Baseline from diffpy.srmise.modelparts import ModelParts -from diffpy.srmise.peaks import Peak, Peaks +from diffpy.srmise.peaks.base import Peak, Peaks from diffpy.srmise.srmiseerrors import ( SrMiseDataFormatError, SrMiseEstimationError, diff --git a/src/diffpy/srmise/modelparts.py b/src/diffpy/srmise/modelparts.py index 37d6e0c..1c6f2cf 100644 --- a/src/diffpy/srmise/modelparts.py +++ b/src/diffpy/srmise/modelparts.py @@ -20,21 +20,22 @@ """ import logging +from importlib.metadata import version import matplotlib.pyplot as plt import numpy as np # Output of scipy.optimize.leastsq for a single parameter changed in scipy 0.8.0 # Before it returned a scalar, later it returned an array of length 1. -import pkg_resources as pr +from packaging.version import parse from scipy.optimize import leastsq from diffpy.srmise import srmiselog from diffpy.srmise.srmiseerrors import SrMiseFitError, SrMiseStaticOwnerError, SrMiseUndefinedCovarianceError logger = logging.getLogger("diffpy.srmise") -__spv__ = pr.get_distribution("scipy").version -__oldleastsqbehavior__ = pr.parse_version(__spv__) < pr.parse_version("0.8.0") +__spv__ = version("scipy") +__oldleastsqbehavior__ = parse(__spv__) < parse("0.8.0") class ModelParts(list): @@ -123,8 +124,8 @@ def fit( freepars, # initial parameters args=args, # arguments to residual, residual_jacobian Dfun=self.residual_jacobian, # explicit Jacobian - col_deriv=1, # order of derivatives in Jacobian - full_output=1, + col_deriv=True, # order of derivatives in Jacobian + full_output=True, maxfev=ntrials, ) except NotImplementedError: @@ -136,8 +137,8 @@ def fit( self.residual, # minimize this function freepars, # initial parameters args=args, # arguments to residual - col_deriv=1, # order of derivatives in Jacobian - full_output=1, + col_deriv=True, # order of derivatives in Jacobian + full_output=True, maxfev=ntrials, ) except Exception: @@ -202,7 +203,7 @@ def fit( try: cov.transform(in_format="internal", out_format=cov_format) except SrMiseUndefinedCovarianceError: - logger.warn("Covariance not defined. Fit may not have converged.") + logger.warning("Covariance not defined. Fit may not have converged.") return @@ -352,7 +353,7 @@ def __str__(self): def __getslice__(self, i, j): """Extends list.__getslice__""" - return self.__class__(list.__getslice__(self, i, j)) + return self.__class__(list.__getitem__(self, i, j)) def transform(self, in_format="internal", out_format="internal"): """Transforms format of parameters in this modelpart. diff --git a/src/diffpy/srmise/pdfdataset.py b/src/diffpy/srmise/pdfdataset.py index 8671e28..dc1f47b 100644 --- a/src/diffpy/srmise/pdfdataset.py +++ b/src/diffpy/srmise/pdfdataset.py @@ -201,7 +201,7 @@ def readStr(self, datastring): # find where the metadata starts metadata = "" - res = re.search(r"^#+\ +metadata\b\n", header, re.M) + res = re.search(r"^#+ +metadata\b\n", header, re.M) if res: metadata = header[res.end() :] header = header[: res.start()] @@ -343,7 +343,7 @@ def writeStr(self): # metadata if len(self.metadata) > 0: lines.append("# metadata") - for k, v in self.metadata.iteritems(): + for k, v in self.metadata.items(): lines.append("%s=%s" % (k, v)) # write data: lines.append("##### start data") @@ -408,10 +408,10 @@ class PDFDataFormatError(Exception): dataset = PDFDataSet("test") dataset.read(filename) print("== metadata ==") - for k, v in dataset.metadata.iteritems(): + for k, v in dataset.metadata.items(): print(k, "=", v) print("== data members ==") - for k, v in dataset.__dict__.iteritems(): + for k, v in dataset.__dict__.items(): if k in ("metadata", "robs", "Gobs", "drobs", "dGobs") or k[0] == "_": continue print(k, "=", v)