Skip to content

fix broken import, remove deprecated pkg_resource #50

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/diffpy/srmise/basefunction.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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([])
Expand Down
4 changes: 2 additions & 2 deletions src/diffpy/srmise/modelcluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
19 changes: 10 additions & 9 deletions src/diffpy/srmise/modelparts.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down Expand Up @@ -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:
Expand All @@ -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:
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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.
Expand Down
8 changes: 4 additions & 4 deletions src/diffpy/srmise/pdfdataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()]
Expand Down Expand Up @@ -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")
Expand Down Expand Up @@ -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)
Expand Down
Loading