diffpy.apps 0.1.1__tar.gz → 0.2.0rc0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. {diffpy_apps-0.1.1/src/diffpy.apps.egg-info → diffpy_apps-0.2.0rc0}/PKG-INFO +3 -2
  2. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/README.rst +1 -0
  3. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/pyproject.toml +1 -1
  4. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/requirements/conda.txt +4 -0
  5. diffpy_apps-0.2.0rc0/src/diffpy/__init__.py +0 -0
  6. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy/apps/pdfadapter.py +17 -17
  7. diffpy_apps-0.2.0rc0/src/diffpy/apps/refinebase/__init__.py +0 -0
  8. diffpy_apps-0.2.0rc0/src/diffpy/apps/refinebase/parametric_model.py +663 -0
  9. diffpy_apps-0.2.0rc0/src/diffpy/apps/refinebase/refinement_server.py +626 -0
  10. diffpy_apps-0.2.0rc0/src/diffpy/apps/refinebase/refinement_session.py +606 -0
  11. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0/src/diffpy.apps.egg-info}/PKG-INFO +3 -2
  12. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy.apps.egg-info/SOURCES.txt +19 -1
  13. diffpy_apps-0.2.0rc0/tests/conftest.py +43 -0
  14. diffpy_apps-0.2.0rc0/tests/data/C60.gr +1999 -0
  15. diffpy_apps-0.2.0rc0/tests/data/c60xyz.txt +60 -0
  16. diffpy_apps-0.2.0rc0/tests/data/make_c60.txt +22 -0
  17. diffpy_apps-0.2.0rc0/tests/data/ni-q27r100-neutron.gr +10052 -0
  18. diffpy_apps-0.2.0rc0/tests/data/ni-q27r60-xray.gr +6133 -0
  19. diffpy_apps-0.2.0rc0/tests/data/pb.cif +240 -0
  20. diffpy_apps-0.2.0rc0/tests/data/pb_100_qmin1.gr +3500 -0
  21. diffpy_apps-0.2.0rc0/tests/data/si-q27r60-xray.gr +6133 -0
  22. diffpy_apps-0.2.0rc0/tests/data/si.cif +224 -0
  23. diffpy_apps-0.2.0rc0/tests/data/si90ni10-q27r60-xray.gr +6134 -0
  24. diffpy_apps-0.2.0rc0/tests/data/sine.dat +400 -0
  25. diffpy_apps-0.2.0rc0/tests/helper.py +327 -0
  26. diffpy_apps-0.2.0rc0/tests/test_parametric_model.py +143 -0
  27. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/tests/test_pdfadapter.py +4 -20
  28. diffpy_apps-0.2.0rc0/tests/test_refinement_server.py +451 -0
  29. diffpy_apps-0.2.0rc0/tests/test_refinement_session.py +455 -0
  30. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/tests/test_runmacro.py +3 -26
  31. diffpy_apps-0.1.1/src/diffpy/__init__.py +0 -14
  32. diffpy_apps-0.1.1/tests/conftest.py +0 -19
  33. diffpy_apps-0.1.1/tests/helper.py +0 -100
  34. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/AUTHORS.rst +0 -0
  35. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/LICENSE.rst +0 -0
  36. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/MANIFEST.in +0 -0
  37. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/requirements/build.txt +0 -0
  38. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/requirements/docs.txt +0 -0
  39. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/requirements/pip.txt +0 -0
  40. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/requirements/tests.txt +0 -0
  41. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/setup.cfg +0 -0
  42. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy/apps/__init__.py +0 -0
  43. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy/apps/app_agentify.py +0 -0
  44. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy/apps/app_runmacro.py +0 -0
  45. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy/apps/apps.py +0 -0
  46. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy/apps/version.py +0 -0
  47. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy.apps.egg-info/dependency_links.txt +0 -0
  48. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy.apps.egg-info/entry_points.txt +0 -0
  49. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy.apps.egg-info/requires.txt +0 -0
  50. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/src/diffpy.apps.egg-info/top_level.txt +0 -0
  51. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/tests/data/Ni.cif +0 -0
  52. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/tests/data/Ni.gr +0 -0
  53. {diffpy_apps-0.1.1 → diffpy_apps-0.2.0rc0}/tests/test_agentify.py +0 -0
@@ -1,9 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffpy.apps
3
- Version: 0.1.1
3
+ Version: 0.2.0rc0
4
4
  Summary: User applications to help with tasks using diffpy packages
5
5
  Author-email: Yuchen Xiao <yx2924@columbia.edu>, Simon Billinge <sbillinge@ucsb.edu>
6
6
  Maintainer-email: Yuchen Xiao <yx2924@columbia.edu>, Simon Billinge <sbillinge@ucsb.edu>
7
+ License-Expression: BSD-3-Clause
7
8
  Project-URL: Homepage, https://github.com/diffpy/diffpy.apps/
8
9
  Project-URL: Issues, https://github.com/diffpy/diffpy.apps/issues/
9
10
  Keywords: diffraction,PDF,X-ray,neutron
@@ -11,7 +12,6 @@ Classifier: Development Status :: 5 - Production/Stable
11
12
  Classifier: Environment :: Console
12
13
  Classifier: Intended Audience :: Developers
13
14
  Classifier: Intended Audience :: Science/Research
14
- Classifier: License :: OSI Approved :: BSD License
15
15
  Classifier: Operating System :: MacOS :: MacOS X
16
16
  Classifier: Operating System :: Microsoft :: Windows
17
17
  Classifier: Operating System :: POSIX
@@ -71,6 +71,7 @@ contains
71
71
 
72
72
  - `runmacro`: A runner for DiffPy macro files.
73
73
  - `agentify`: A deployer for diffpy.cmi agentic skills.
74
+ - `Diffpy MCP server`: A local server for the DiffPy MCP instance.
74
75
 
75
76
  For more information about the diffpy.apps library, please consult our `online documentation <https://diffpy.github.io/diffpy.apps>`_.
76
77
 
@@ -41,6 +41,7 @@ contains
41
41
 
42
42
  - `runmacro`: A runner for DiffPy macro files.
43
43
  - `agentify`: A deployer for diffpy.cmi agentic skills.
44
+ - `Diffpy MCP server`: A local server for the DiffPy MCP instance.
44
45
 
45
46
  For more information about the diffpy.apps library, please consult our `online documentation <https://diffpy.github.io/diffpy.apps>`_.
46
47
 
@@ -22,7 +22,6 @@ classifiers = [
22
22
  'Environment :: Console',
23
23
  'Intended Audience :: Developers',
24
24
  'Intended Audience :: Science/Research',
25
- 'License :: OSI Approved :: BSD License',
26
25
  'Operating System :: MacOS :: MacOS X',
27
26
  'Operating System :: Microsoft :: Windows',
28
27
  'Operating System :: POSIX',
@@ -33,6 +32,7 @@ classifiers = [
33
32
  'Topic :: Scientific/Engineering :: Physics',
34
33
  'Topic :: Scientific/Engineering :: Chemistry',
35
34
  ]
35
+ license = "BSD-3-Clause"
36
36
 
37
37
  [project.urls]
38
38
  Homepage = "https://github.com/diffpy/diffpy.apps/"
@@ -6,3 +6,7 @@ pyyaml
6
6
  diffpy.srfit
7
7
  diffpy.srreal
8
8
  diffpy.structure
9
+ networkx
10
+ mcp[cli]
11
+ mp-api
12
+ pymatgen
File without changes
@@ -65,8 +65,8 @@ class PDFAdapter:
65
65
  """
66
66
  profile = Profile()
67
67
  parser = PDFParser()
68
- parser.parseString(Path(profile_path).read_text())
69
- profile.loadParsedData(parser)
68
+ parser.parse_file(profile_path)
69
+ profile.load_parsed_data(parser)
70
70
  if q_range is not None:
71
71
  profile.meta["qmin"] = q_range[0]
72
72
  profile.meta["qmax"] = q_range[1]
@@ -77,7 +77,7 @@ class PDFAdapter:
77
77
  "xmax": calculation_range[1],
78
78
  "dx": calculation_range[2],
79
79
  }
80
- profile.setCalculationRange(**calculation_range)
80
+ profile.set_calculation_range(**calculation_range)
81
81
  self.profile = profile
82
82
 
83
83
  def initialize_structures(
@@ -185,10 +185,10 @@ class PDFAdapter:
185
185
  """
186
186
  equation = equation[0] if equation is not None else None
187
187
  contribution = FitContribution("pdfcontribution")
188
- contribution.setProfile(self.profile)
188
+ contribution.set_profile(self.profile)
189
189
  for pdfgenerator in self.pdfgenerators:
190
- contribution.addProfileGenerator(pdfgenerator)
191
- contribution.setEquation(equation)
190
+ contribution.add_profile_generator(pdfgenerator)
191
+ contribution.set_equation(equation)
192
192
  self.contribution = contribution
193
193
  return self.contribution
194
194
 
@@ -204,9 +204,9 @@ class PDFAdapter:
204
204
  """
205
205
 
206
206
  recipe = FitRecipe()
207
- recipe.addContribution(self.contribution)
208
- qdamp = recipe.newVar("qdamp", fixed=False, value=0.04)
209
- qbroad = recipe.newVar("qbroad", fixed=False, value=0.02)
207
+ recipe.add_contribution(self.contribution)
208
+ qdamp = recipe.create_new_variable("qdamp", fixed=False, value=0.04)
209
+ qbroad = recipe.create_new_variable("qbroad", fixed=False, value=0.02)
210
210
  for i, (pdfgenerator, spacegroup) in enumerate(
211
211
  zip(self.pdfgenerators, self.spacegroups)
212
212
  ):
@@ -215,23 +215,23 @@ class PDFAdapter:
215
215
  "delta2",
216
216
  ]:
217
217
  par = getattr(pdfgenerator, pname)
218
- recipe.addVar(
218
+ recipe.add_variable(
219
219
  par, name=f"{pdfgenerator.name}_{pname}", fixed=False
220
220
  )
221
- recipe.constrain(pdfgenerator.qdamp, qdamp)
222
- recipe.constrain(pdfgenerator.qbroad, qbroad)
221
+ recipe.add_constraint(pdfgenerator.qdamp, qdamp)
222
+ recipe.add_constraint(pdfgenerator.qbroad, qbroad)
223
223
  stru_parset = pdfgenerator.phase
224
224
  spacegroupparams = constrainAsSpaceGroup(stru_parset, spacegroup)
225
225
  for par in spacegroupparams.xyzpars:
226
- recipe.addVar(
226
+ recipe.add_variable(
227
227
  par, name=f"{pdfgenerator.name}_{par.name}", fixed=False
228
228
  )
229
229
  for par in spacegroupparams.latpars:
230
- recipe.addVar(
230
+ recipe.add_variable(
231
231
  par, name=f"{pdfgenerator.name}_{par.name}", fixed=False
232
232
  )
233
233
  for par in spacegroupparams.adppars:
234
- recipe.addVar(
234
+ recipe.add_variable(
235
235
  par, name=f"{pdfgenerator.name}_{par.name}", fixed=False
236
236
  )
237
237
  recipe.fithooks[0].verbose = 0
@@ -247,7 +247,7 @@ class PDFAdapter:
247
247
  e.g. 's0' for scale factor.
248
248
  """
249
249
  for var_name in variable_names:
250
- self.recipe.addVar(
250
+ self.recipe.add_variable(
251
251
  getattr(self.contribution, var_name),
252
252
  name=var_name,
253
253
  fixed=False,
@@ -275,7 +275,7 @@ class PDFAdapter:
275
275
  Mapping from recipe variable names to new values.
276
276
  """
277
277
  for vname, vvalue in variable_name_to_value.items():
278
- self.recipe._parameters[vname].setValue(vvalue)
278
+ self.recipe._parameters[vname].set_value(vvalue)
279
279
 
280
280
  def get_results(self):
281
281
  """Return the current fit results as a JSON-compatible