diffpy.structure 3.3.0__py3-none-any.whl → 3.3.1__py3-none-any.whl
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.
- diffpy/__init__.py +1 -10
- diffpy/structure/__init__.py +3 -5
- diffpy/structure/_legacy_importer.py +3 -3
- diffpy/structure/apps/__init__.py +1 -3
- diffpy/structure/apps/anyeye.py +4 -5
- diffpy/structure/apps/transtru.py +2 -2
- diffpy/structure/atom.py +10 -8
- diffpy/structure/expansion/__init__.py +0 -1
- diffpy/structure/expansion/makeellipsoid.py +1 -3
- diffpy/structure/expansion/shapeutils.py +1 -2
- diffpy/structure/expansion/supercell_mod.py +3 -5
- diffpy/structure/lattice.py +4 -3
- diffpy/structure/mmlibspacegroups.py +1 -2
- diffpy/structure/parsers/__init__.py +0 -1
- diffpy/structure/parsers/p_auto.py +8 -6
- diffpy/structure/parsers/p_cif.py +14 -9
- diffpy/structure/parsers/p_discus.py +4 -6
- diffpy/structure/parsers/p_pdb.py +2 -4
- diffpy/structure/parsers/p_pdffit.py +1 -3
- diffpy/structure/parsers/p_rawxyz.py +2 -3
- diffpy/structure/parsers/p_xcfg.py +4 -3
- diffpy/structure/parsers/p_xyz.py +4 -5
- diffpy/structure/parsers/parser_index_mod.py +0 -1
- diffpy/structure/parsers/structureparser.py +1 -3
- diffpy/structure/pdffitstructure.py +1 -3
- diffpy/structure/sgtbxspacegroups.py +3 -3
- diffpy/structure/spacegroupmod.py +6 -5
- diffpy/structure/spacegroups.py +5 -3
- diffpy/structure/structure.py +25 -20
- diffpy/structure/structureerrors.py +1 -3
- diffpy/structure/symmetryutilities.py +31 -21
- diffpy/structure/utils.py +3 -4
- diffpy/structure/version.py +3 -4
- {diffpy.structure-3.3.0.dist-info → diffpy_structure-3.3.1.dist-info}/METADATA +13 -10
- diffpy_structure-3.3.1.dist-info/RECORD +42 -0
- {diffpy.structure-3.3.0.dist-info → diffpy_structure-3.3.1.dist-info}/WHEEL +1 -1
- {diffpy.structure-3.3.0.dist-info → diffpy_structure-3.3.1.dist-info/licenses}/LICENSE.rst +1 -1
- diffpy.structure-3.3.0.dist-info/RECORD +0 -42
- {diffpy.structure-3.3.0.dist-info → diffpy_structure-3.3.1.dist-info}/entry_points.txt +0 -0
- {diffpy.structure-3.3.0.dist-info → diffpy_structure-3.3.1.dist-info/licenses}/AUTHORS.rst +0 -0
- /diffpy.structure-3.3.0.dist-info/LICENSE_DANSE.rst → /diffpy_structure-3.3.1.dist-info/licenses/LICENSE-DANSE.rst +0 -0
- /diffpy.structure-3.3.0.dist-info/LICENSE_pymmlib.rst → /diffpy_structure-3.3.1.dist-info/licenses/LICENSE-pymmlib.rst +0 -0
- {diffpy.structure-3.3.0.dist-info → diffpy_structure-3.3.1.dist-info}/top_level.txt +0 -0
diffpy/__init__.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
##############################################################################
|
|
3
3
|
#
|
|
4
|
-
# (c) 2024 The Trustees of Columbia University in the City of New York.
|
|
4
|
+
# (c) 2024-2025 The Trustees of Columbia University in the City of New York.
|
|
5
5
|
# All rights reserved.
|
|
6
6
|
#
|
|
7
7
|
# File coded by: Billinge Group members and community contributors.
|
|
@@ -12,12 +12,3 @@
|
|
|
12
12
|
# See LICENSE.rst for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""Blank namespace package for module diffpy."""
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
from pkgutil import extend_path
|
|
20
|
-
|
|
21
|
-
__path__ = extend_path(__path__, __name__)
|
|
22
|
-
|
|
23
|
-
# End of file
|
diffpy/structure/__init__.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
##############################################################################
|
|
3
3
|
#
|
|
4
|
-
# (c) 2024 The Trustees of Columbia University in the City of New York.
|
|
4
|
+
# (c) 2024-2025 The Trustees of Columbia University in the City of New York.
|
|
5
5
|
# All rights reserved.
|
|
6
6
|
#
|
|
7
|
-
# File coded by: Billinge Group members
|
|
7
|
+
# File coded by: Chris Farrow, Pavol Juhas, Simon Billinge, Billinge Group members.
|
|
8
8
|
#
|
|
9
9
|
# See GitHub contributions for a more detailed list of contributors.
|
|
10
10
|
# https://github.com/diffpy/diffpy.structure/graphs/contributors
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
# See LICENSE.rst for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""
|
|
17
|
-
Crystal structure container and parsers for structure formats.
|
|
15
|
+
"""Crystal structure container and parsers for structure formats.
|
|
18
16
|
|
|
19
17
|
Classes related to the structure of materials:
|
|
20
18
|
* Atom
|
|
@@ -12,9 +12,8 @@
|
|
|
12
12
|
# See LICENSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Support import of old camel-case module names with DeprecationWarning.
|
|
15
|
+
"""Support import of old camel-case module names with
|
|
16
|
+
DeprecationWarning.
|
|
18
17
|
|
|
19
18
|
The imported camel-case modules are aliases for the current module
|
|
20
19
|
instances. Their `__name__` attributes are thus all in lower-case.
|
|
@@ -61,6 +60,7 @@ class FindRenamedStructureModule(importlib.abc.MetaPathFinder):
|
|
|
61
60
|
|
|
62
61
|
class MapRenamedStructureModule(importlib.abc.Loader):
|
|
63
62
|
"""Loader for old camel-case module names.
|
|
63
|
+
|
|
64
64
|
Import the current module and alias it under the old name.
|
|
65
65
|
"""
|
|
66
66
|
|
|
@@ -12,6 +12,4 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""Script applications that use the `diffpy.structure` package.
|
|
17
|
-
"""
|
|
15
|
+
"""Script applications that use the `diffpy.structure` package."""
|
diffpy/structure/apps/anyeye.py
CHANGED
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""
|
|
17
|
-
Anyeye view structure file in atomeye.
|
|
15
|
+
"""Anyeye view structure file in atomeye.
|
|
18
16
|
|
|
19
17
|
Usage: ``anyeye [options] strufile``
|
|
20
18
|
|
|
@@ -65,7 +63,8 @@ pd = {
|
|
|
65
63
|
|
|
66
64
|
|
|
67
65
|
def usage(style=None):
|
|
68
|
-
"""Show usage info, for ``style=="brief"`` show only first 2
|
|
66
|
+
"""Show usage info, for ``style=="brief"`` show only first 2
|
|
67
|
+
lines."""
|
|
69
68
|
import os.path
|
|
70
69
|
|
|
71
70
|
myname = os.path.basename(sys.argv[0])
|
|
@@ -175,7 +174,7 @@ def cleanUp(pd):
|
|
|
175
174
|
|
|
176
175
|
|
|
177
176
|
def parseFormula(formula):
|
|
178
|
-
"""Parse chemical formula and return a list of elements"""
|
|
177
|
+
"""Parse chemical formula and return a list of elements."""
|
|
179
178
|
# remove all blanks
|
|
180
179
|
formula = re.sub(r"\s", "", formula)
|
|
181
180
|
if not re.match("^[A-Z]", formula):
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Translate structure file to different format.
|
|
17
16
|
|
|
18
17
|
Usage: ``transtru INFMT..OUTFMT strufile``
|
|
@@ -44,7 +43,8 @@ from diffpy.structure.structureerrors import StructureFormatError
|
|
|
44
43
|
|
|
45
44
|
|
|
46
45
|
def usage(style=None):
|
|
47
|
-
"""Show usage info, for ``style=="brief"`` show only first 2
|
|
46
|
+
"""Show usage info, for ``style=="brief"`` show only first 2
|
|
47
|
+
lines."""
|
|
48
48
|
import os.path
|
|
49
49
|
|
|
50
50
|
myname = os.path.basename(sys.argv[0])
|
diffpy/structure/atom.py
CHANGED
|
@@ -12,10 +12,8 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""
|
|
17
|
-
Provide class Atom for managing properties of an atom in structure model.
|
|
18
|
-
"""
|
|
15
|
+
"""Provide class Atom for managing properties of an atom in structure
|
|
16
|
+
model."""
|
|
19
17
|
|
|
20
18
|
import numpy
|
|
21
19
|
|
|
@@ -176,7 +174,8 @@ class Atom(object):
|
|
|
176
174
|
return msd
|
|
177
175
|
|
|
178
176
|
def msdCart(self, vc):
|
|
179
|
-
"""Calculate mean square displacement along the Cartesian
|
|
177
|
+
"""Calculate mean square displacement along the Cartesian
|
|
178
|
+
vector.
|
|
180
179
|
|
|
181
180
|
Parameters
|
|
182
181
|
----------
|
|
@@ -252,7 +251,8 @@ class Atom(object):
|
|
|
252
251
|
|
|
253
252
|
@property
|
|
254
253
|
def xyz_cartn(self):
|
|
255
|
-
"""numpy.ndarray: Atom position in absolute Cartesian
|
|
254
|
+
"""numpy.ndarray: Atom position in absolute Cartesian
|
|
255
|
+
coordinates.
|
|
256
256
|
|
|
257
257
|
This is computed from fractional coordinates `xyz` and the
|
|
258
258
|
current `lattice` setup. Assignment to *xyz_cartn* or
|
|
@@ -301,7 +301,8 @@ class Atom(object):
|
|
|
301
301
|
|
|
302
302
|
@property
|
|
303
303
|
def U(self):
|
|
304
|
-
"""numpy.ndarray : The 3x3 matrix of anisotropic atomic
|
|
304
|
+
"""numpy.ndarray : The 3x3 matrix of anisotropic atomic
|
|
305
|
+
displacements.
|
|
305
306
|
|
|
306
307
|
For isotropic displacements (when `anisotropy` is ``False``)
|
|
307
308
|
assignment to *U* uses only the first ``Unew[0, 0]`` element
|
|
@@ -537,7 +538,8 @@ class _AtomCartesianCoordinates(numpy.ndarray):
|
|
|
537
538
|
return
|
|
538
539
|
|
|
539
540
|
def __array_wrap__(self, out_arr, context=None, return_scalar=None):
|
|
540
|
-
"""Ensure math operations on this type yield standard numpy
|
|
541
|
+
"""Ensure math operations on this type yield standard numpy
|
|
542
|
+
array."""
|
|
541
543
|
return out_arr.view(numpy.ndarray)
|
|
542
544
|
|
|
543
545
|
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Make a spheroid nanoparticle from a template structure."""
|
|
17
16
|
|
|
18
17
|
from math import ceil
|
|
@@ -42,8 +41,7 @@ def makeSphere(S, radius):
|
|
|
42
41
|
|
|
43
42
|
|
|
44
43
|
def makeEllipsoid(S, a, b=None, c=None):
|
|
45
|
-
"""
|
|
46
|
-
Cut a `Structure` out of another one.
|
|
44
|
+
"""Cut a `Structure` out of another one.
|
|
47
45
|
|
|
48
46
|
Parameters
|
|
49
47
|
----------
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Utilities for making shapes."""
|
|
17
16
|
|
|
18
17
|
|
|
@@ -33,7 +32,7 @@ def findCenter(S):
|
|
|
33
32
|
"""
|
|
34
33
|
best = -1
|
|
35
34
|
bestd = len(S)
|
|
36
|
-
center = [0.5, 0.5, 0.5] # the
|
|
35
|
+
center = [0.5, 0.5, 0.5] # the canonical center
|
|
37
36
|
|
|
38
37
|
for i in range(len(S)):
|
|
39
38
|
d = S.lattice.dist(S[i].xyz, center)
|
|
@@ -12,9 +12,8 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""
|
|
17
|
-
"""
|
|
15
|
+
"""This module contains functions for simple `Structure`
|
|
16
|
+
manipulation."""
|
|
18
17
|
|
|
19
18
|
import numpy
|
|
20
19
|
|
|
@@ -22,8 +21,7 @@ from diffpy.structure import Atom, Structure
|
|
|
22
21
|
|
|
23
22
|
|
|
24
23
|
def supercell(S, mno):
|
|
25
|
-
"""
|
|
26
|
-
Perform supercell expansion for a `Structure`.
|
|
24
|
+
"""Perform supercell expansion for a `Structure`.
|
|
27
25
|
|
|
28
26
|
New `lattice` parameters are multiplied and fractional coordinates
|
|
29
27
|
divided by corresponding multiplier. New `Atoms` are grouped with
|
diffpy/structure/lattice.py
CHANGED
|
@@ -12,9 +12,8 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
coordinate system.
|
|
15
|
+
"""Class Lattice stores properties and provides simple operations in
|
|
16
|
+
lattice coordinate system.
|
|
18
17
|
|
|
19
18
|
Attributes
|
|
20
19
|
----------
|
|
@@ -442,6 +441,7 @@ class Lattice(object):
|
|
|
442
441
|
|
|
443
442
|
def abcABG(self):
|
|
444
443
|
"""Return the cell parameters in the standard setting.
|
|
444
|
+
|
|
445
445
|
Returns
|
|
446
446
|
-------
|
|
447
447
|
tuple :
|
|
@@ -452,6 +452,7 @@ class Lattice(object):
|
|
|
452
452
|
|
|
453
453
|
def reciprocal(self):
|
|
454
454
|
"""Return the reciprocal lattice of the current lattice.
|
|
455
|
+
|
|
455
456
|
Returns
|
|
456
457
|
-------
|
|
457
458
|
Lattice
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
# This code is part of the PyMMLib distribution and governed by
|
|
4
4
|
# its license.Please see the LICENSE_pymmlib file that should have been
|
|
5
5
|
# included as part of this package.
|
|
6
|
-
"""Space groups defined as a part of the pymmlib.
|
|
7
|
-
"""
|
|
6
|
+
"""Space groups defined as a part of the pymmlib."""
|
|
8
7
|
|
|
9
8
|
from diffpy.structure.spacegroupmod import (
|
|
10
9
|
Rot_mX_mXY_mZ,
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Conversion plugins for various structure formats.
|
|
17
16
|
|
|
18
17
|
The recognized structure formats are defined by subclassing `StructureParser`,
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Parser for automatic file format detection.
|
|
17
16
|
|
|
18
17
|
This Parser does not provide the the `toLines()` method.
|
|
@@ -54,6 +53,7 @@ class P_auto(StructureParser):
|
|
|
54
53
|
# parseLines helpers
|
|
55
54
|
def _getOrderedFormats(self):
|
|
56
55
|
"""Build a list of relevance ordered structure formats.
|
|
56
|
+
|
|
57
57
|
This only works when `self.filename` has a known extension.
|
|
58
58
|
"""
|
|
59
59
|
from diffpy.structure.parsers import inputFormats
|
|
@@ -77,7 +77,8 @@ class P_auto(StructureParser):
|
|
|
77
77
|
return ofmts
|
|
78
78
|
|
|
79
79
|
def parseLines(self, lines):
|
|
80
|
-
"""Detect format and create `Structure` instance from a list of
|
|
80
|
+
"""Detect format and create `Structure` instance from a list of
|
|
81
|
+
lines.
|
|
81
82
|
|
|
82
83
|
Set format attribute to the detected file format.
|
|
83
84
|
|
|
@@ -119,7 +120,8 @@ class P_auto(StructureParser):
|
|
|
119
120
|
return self._wrapParseMethod("parse", s)
|
|
120
121
|
|
|
121
122
|
def parseFile(self, filename):
|
|
122
|
-
"""Detect format and create Structure instance from an existing
|
|
123
|
+
"""Detect format and create Structure instance from an existing
|
|
124
|
+
file.
|
|
123
125
|
|
|
124
126
|
Set format attribute to the detected file format.
|
|
125
127
|
|
|
@@ -144,9 +146,9 @@ class P_auto(StructureParser):
|
|
|
144
146
|
return self._wrapParseMethod("parseFile", filename)
|
|
145
147
|
|
|
146
148
|
def _wrapParseMethod(self, method, *args, **kwargs):
|
|
147
|
-
"""A helper evaluator method that try the specified parse method
|
|
148
|
-
each registered structure parser and return the first
|
|
149
|
-
|
|
149
|
+
"""A helper evaluator method that try the specified parse method
|
|
150
|
+
with each registered structure parser and return the first
|
|
151
|
+
successful result.
|
|
150
152
|
|
|
151
153
|
Structure parsers that match structure file extension are
|
|
152
154
|
tried first.
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Parser for basic CIF file format.
|
|
17
16
|
|
|
18
17
|
Attributes
|
|
@@ -33,6 +32,7 @@ import sys
|
|
|
33
32
|
from contextlib import contextmanager
|
|
34
33
|
|
|
35
34
|
import numpy
|
|
35
|
+
from CifFile.yapps3_compiled_rt import YappsSyntaxError
|
|
36
36
|
|
|
37
37
|
from diffpy.structure import Atom, Lattice, Structure
|
|
38
38
|
from diffpy.structure.parsers import StructureParser
|
|
@@ -267,7 +267,8 @@ class P_cif(StructureParser):
|
|
|
267
267
|
_tr_atom_site_aniso_B_23 = staticmethod(_tr_atom_site_aniso_B_23)
|
|
268
268
|
|
|
269
269
|
def _get_atom_setters(cifloop):
|
|
270
|
-
"""Static method for finding translators of CifLoop items to
|
|
270
|
+
"""Static method for finding translators of CifLoop items to
|
|
271
|
+
data in `Atom` instance.
|
|
271
272
|
|
|
272
273
|
Parameters
|
|
273
274
|
----------
|
|
@@ -408,7 +409,7 @@ class P_cif(StructureParser):
|
|
|
408
409
|
# stop after reading the first structure
|
|
409
410
|
if self.stru is not None:
|
|
410
411
|
break
|
|
411
|
-
except (StarError, ValueError, IndexError) as err:
|
|
412
|
+
except (YappsSyntaxError, StarError, ValueError, IndexError) as err:
|
|
412
413
|
exc_type, exc_value, exc_traceback = sys.exc_info()
|
|
413
414
|
emsg = str(err).strip()
|
|
414
415
|
e = StructureFormatError(emsg)
|
|
@@ -416,8 +417,8 @@ class P_cif(StructureParser):
|
|
|
416
417
|
return self.stru
|
|
417
418
|
|
|
418
419
|
def _parseCifBlock(self, blockname):
|
|
419
|
-
"""Translate CIF file block, skip blocks without
|
|
420
|
-
Updates data members `stru`, `eau`.
|
|
420
|
+
"""Translate CIF file block, skip blocks without
|
|
421
|
+
`_atom_site_label`. Updates data members `stru`, `eau`.
|
|
421
422
|
|
|
422
423
|
Parameters
|
|
423
424
|
----------
|
|
@@ -505,7 +506,8 @@ class P_cif(StructureParser):
|
|
|
505
506
|
return
|
|
506
507
|
|
|
507
508
|
def _parse_atom_site_aniso_label(self, block):
|
|
508
|
-
"""Obtain value of anisotropic thermal displacements from a
|
|
509
|
+
"""Obtain value of anisotropic thermal displacements from a
|
|
510
|
+
`CifBlock`.
|
|
509
511
|
|
|
510
512
|
This method updates `U` members of `Atom` instances in `self.stru`.
|
|
511
513
|
The `labelindex` dictionary has to be defined beforehand.
|
|
@@ -599,7 +601,8 @@ class P_cif(StructureParser):
|
|
|
599
601
|
return
|
|
600
602
|
|
|
601
603
|
def _expandAsymmetricUnit(self, block):
|
|
602
|
-
"""Perform symmetry expansion of `self.stru` using
|
|
604
|
+
"""Perform symmetry expansion of `self.stru` using
|
|
605
|
+
`self.spacegroup`.
|
|
603
606
|
|
|
604
607
|
This method updates data in `stru` and `eau`.
|
|
605
608
|
|
|
@@ -763,7 +766,8 @@ rx_float = re.compile(r"[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?")
|
|
|
763
766
|
|
|
764
767
|
|
|
765
768
|
def leading_float(s, d=0.0):
|
|
766
|
-
"""Extract the first float from a string and ignore trailing
|
|
769
|
+
"""Extract the first float from a string and ignore trailing
|
|
770
|
+
characters.
|
|
767
771
|
|
|
768
772
|
Useful for extracting values from "value(std)" syntax.
|
|
769
773
|
|
|
@@ -863,7 +867,8 @@ def getParser(eps=None):
|
|
|
863
867
|
|
|
864
868
|
@contextmanager
|
|
865
869
|
def _suppressCifParserOutput():
|
|
866
|
-
"""Context manager which suppresses diagnostic messages from CIF
|
|
870
|
+
"""Context manager which suppresses diagnostic messages from CIF
|
|
871
|
+
parser."""
|
|
867
872
|
from CifFile import yapps3_compiled_rt
|
|
868
873
|
|
|
869
874
|
print_error = yapps3_compiled_rt.print_error
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""Parser for DISCUS structure format
|
|
17
|
-
"""
|
|
15
|
+
"""Parser for DISCUS structure format."""
|
|
18
16
|
|
|
19
17
|
import sys
|
|
20
18
|
from functools import reduce
|
|
@@ -25,8 +23,8 @@ from diffpy.structure.structureerrors import StructureFormatError
|
|
|
25
23
|
|
|
26
24
|
|
|
27
25
|
class P_discus(StructureParser):
|
|
28
|
-
"""Parser for DISCUS structure format. The parser chokes
|
|
29
|
-
|
|
26
|
+
"""Parser for DISCUS structure format. The parser chokes on molecule
|
|
27
|
+
and generator records.
|
|
30
28
|
|
|
31
29
|
Attributes
|
|
32
30
|
----------
|
|
@@ -274,7 +272,7 @@ class P_discus(StructureParser):
|
|
|
274
272
|
Raises
|
|
275
273
|
------
|
|
276
274
|
StructureFormatError
|
|
277
|
-
|
|
275
|
+
Unknown record.
|
|
278
276
|
"""
|
|
279
277
|
self.ignored_lines.append(self.line)
|
|
280
278
|
return
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Basic parser for PDB structure format.
|
|
17
16
|
|
|
18
17
|
Note
|
|
@@ -281,9 +280,8 @@ class P_pdb(StructureParser):
|
|
|
281
280
|
return lines
|
|
282
281
|
|
|
283
282
|
def atomLines(self, stru, idx):
|
|
284
|
-
"""Build `ATOM` records and possibly `SIGATM`, `ANISOU` or
|
|
285
|
-
for `structure` stru `atom` number aidx.
|
|
286
|
-
"""
|
|
283
|
+
"""Build `ATOM` records and possibly `SIGATM`, `ANISOU` or
|
|
284
|
+
`SIGUIJ` records for `structure` stru `atom` number aidx."""
|
|
287
285
|
lines = []
|
|
288
286
|
a = stru[idx]
|
|
289
287
|
ad = a.__dict__
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""Parser for PDFfit structure format
|
|
17
|
-
"""
|
|
15
|
+
"""Parser for PDFfit structure format."""
|
|
18
16
|
|
|
19
17
|
import sys
|
|
20
18
|
from functools import reduce
|
|
@@ -12,11 +12,10 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Parser for raw XYZ file format.
|
|
17
16
|
|
|
18
|
-
Raw XYZ is a 3 or 4 column text file with cartesian coordinates
|
|
19
|
-
|
|
17
|
+
Raw XYZ is a 3 or 4 column text file with cartesian coordinates of atoms
|
|
18
|
+
and an optional first column for atom types.
|
|
20
19
|
"""
|
|
21
20
|
|
|
22
21
|
import sys
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Parser for extended CFG format used by atomeye.
|
|
17
16
|
|
|
18
17
|
Attributes
|
|
@@ -287,7 +286,8 @@ class P_xcfg(StructureParser):
|
|
|
287
286
|
return stru
|
|
288
287
|
|
|
289
288
|
def toLines(self, stru):
|
|
290
|
-
"""Convert Structure stru to a list of lines in XCFG atomeye
|
|
289
|
+
"""Convert Structure stru to a list of lines in XCFG atomeye
|
|
290
|
+
format.
|
|
291
291
|
|
|
292
292
|
Parameters
|
|
293
293
|
----------
|
|
@@ -424,7 +424,8 @@ def getParser():
|
|
|
424
424
|
|
|
425
425
|
|
|
426
426
|
def _assign_auxiliaries(a, fields, auxiliaries, no_velocity):
|
|
427
|
-
"""
|
|
427
|
+
"""Assign auxiliary properties for `Atom` object when reading CFG
|
|
428
|
+
format.
|
|
428
429
|
|
|
429
430
|
Parameters
|
|
430
431
|
----------
|
|
@@ -12,12 +12,11 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
+
"""Parser for XYZ file format, where.
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* Second line has optional title.
|
|
20
|
-
* Remaining lines contain element, `x, y, z`.
|
|
17
|
+
* First line gives number of atoms.
|
|
18
|
+
* Second line has optional title.
|
|
19
|
+
* Remaining lines contain element, `x, y, z`.
|
|
21
20
|
"""
|
|
22
21
|
|
|
23
22
|
import sys
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""Definition of StructureParser, a base class for specific parsers.
|
|
17
|
-
"""
|
|
15
|
+
"""Definition of StructureParser, a base class for specific parsers."""
|
|
18
16
|
|
|
19
17
|
|
|
20
18
|
class StructureParser(object):
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""Definition of PDFFitStructure class derived from Structure
|
|
17
|
-
"""
|
|
15
|
+
"""Definition of PDFFitStructure class derived from Structure."""
|
|
18
16
|
|
|
19
17
|
|
|
20
18
|
from diffpy.structure.structure import Structure
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
"""Extra space group representations generated using `sgtbx` module from
|
|
16
|
+
`cctbx`. Import of this module extends the `SpaceGroupList` in the
|
|
17
|
+
`SpaceGroups` module.
|
|
18
18
|
|
|
19
19
|
Attributes
|
|
20
20
|
----------
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
# This code is part of the PyMMLib distribution and governed by
|
|
4
4
|
# its license. Please see the LICENSE_pymmlib file that should have been
|
|
5
5
|
# included as part of this package.
|
|
6
|
-
"""Symmetry operations as functions on vectors or arrays.
|
|
7
|
-
"""
|
|
6
|
+
"""Symmetry operations as functions on vectors or arrays."""
|
|
8
7
|
|
|
9
8
|
import numpy
|
|
10
9
|
|
|
11
|
-
# 64 unique rotation
|
|
10
|
+
# 64 unique rotation matrices
|
|
12
11
|
Rot_Z_mY_X = numpy.array([[0.0, 0.0, 1.0], [0.0, -1.0, 0.0], [1.0, 0.0, 0.0]], float)
|
|
13
12
|
Rot_Y_mX_mZ = numpy.array([[0.0, 1.0, 0.0], [-1.0, 0.0, 0.0], [0.0, 0.0, -1.0]], float)
|
|
14
13
|
Rot_XmY_X_mZ = numpy.array([[1.0, -1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, -1.0]], float)
|
|
@@ -144,7 +143,8 @@ class SymOp(object):
|
|
|
144
143
|
return x
|
|
145
144
|
|
|
146
145
|
def __call__(self, vec):
|
|
147
|
-
"""Return symmetry-related position for the specified
|
|
146
|
+
"""Return symmetry-related position for the specified
|
|
147
|
+
coordinates.
|
|
148
148
|
|
|
149
149
|
Parameters
|
|
150
150
|
----------
|
|
@@ -302,7 +302,8 @@ class SpaceGroup(object):
|
|
|
302
302
|
return False
|
|
303
303
|
|
|
304
304
|
def iter_equivalent_positions(self, vec):
|
|
305
|
-
"""Generate symmetry equivalent positions for the specified
|
|
305
|
+
"""Generate symmetry equivalent positions for the specified
|
|
306
|
+
position.
|
|
306
307
|
|
|
307
308
|
The initial position must be in fractional coordinates and so
|
|
308
309
|
are the symmetry equivalent positions yielded by iteration.
|
diffpy/structure/spacegroups.py
CHANGED
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Space group classes and definitions from mmLib and sgtbx.
|
|
17
16
|
|
|
18
17
|
Attributes
|
|
@@ -693,7 +692,8 @@ def GetSpaceGroup(sgid):
|
|
|
693
692
|
|
|
694
693
|
|
|
695
694
|
def IsSpaceGroupIdentifier(sgid):
|
|
696
|
-
"""Check if identifier can be used as an argument to
|
|
695
|
+
"""Check if identifier can be used as an argument to
|
|
696
|
+
`GetSpaceGroup`.
|
|
697
697
|
|
|
698
698
|
Returns
|
|
699
699
|
-------
|
|
@@ -768,6 +768,7 @@ def _hashSymOpList(symops):
|
|
|
768
768
|
|
|
769
769
|
def _buildSGLookupTable():
|
|
770
770
|
"""Rebuild space group lookup table from the `SpaceGroupList` data.
|
|
771
|
+
|
|
771
772
|
This routine updates the global `_sg_lookup_table` dictionary.
|
|
772
773
|
"""
|
|
773
774
|
_sg_lookup_table.clear()
|
|
@@ -809,7 +810,8 @@ _sg_lookup_table = {}
|
|
|
809
810
|
|
|
810
811
|
|
|
811
812
|
def _getSGHashLookupTable():
|
|
812
|
-
"""Return lookup table of symop hashes to standard `SpaceGroup`
|
|
813
|
+
"""Return lookup table of symop hashes to standard `SpaceGroup`
|
|
814
|
+
objects."""
|
|
813
815
|
if _sg_hash_lookup_table:
|
|
814
816
|
return _sg_hash_lookup_table
|
|
815
817
|
for sg in SpaceGroupList:
|
diffpy/structure/structure.py
CHANGED
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""This module defines class `Structure`.
|
|
17
|
-
"""
|
|
15
|
+
"""This module defines class `Structure`."""
|
|
18
16
|
|
|
19
17
|
import codecs
|
|
20
18
|
import copy as copymod
|
|
@@ -29,7 +27,8 @@ from diffpy.structure.utils import _linkAtomAttribute, atomBareSymbol, isiterabl
|
|
|
29
27
|
|
|
30
28
|
|
|
31
29
|
class Structure(list):
|
|
32
|
-
"""Define group of atoms in a specified lattice. Structure --> group
|
|
30
|
+
"""Define group of atoms in a specified lattice. Structure --> group
|
|
31
|
+
of atoms.
|
|
33
32
|
|
|
34
33
|
`Structure` class is inherited from Python `list`. It contains
|
|
35
34
|
a list of `Atom` instances. `Structure` overloads `setitem` and `setslice`
|
|
@@ -184,7 +183,8 @@ class Structure(list):
|
|
|
184
183
|
return
|
|
185
184
|
|
|
186
185
|
def distance(self, aid0, aid1):
|
|
187
|
-
"""Calculate distance between 2 `Atoms`, no periodic boundary
|
|
186
|
+
"""Calculate distance between 2 `Atoms`, no periodic boundary
|
|
187
|
+
conditions.
|
|
188
188
|
|
|
189
189
|
Parameters
|
|
190
190
|
----------
|
|
@@ -208,8 +208,7 @@ class Structure(list):
|
|
|
208
208
|
return self.lattice.dist(a0.xyz, a1.xyz)
|
|
209
209
|
|
|
210
210
|
def angle(self, aid0, aid1, aid2):
|
|
211
|
-
"""
|
|
212
|
-
The bond angle at the second of three `Atoms` in degrees.
|
|
211
|
+
"""The bond angle at the second of three `Atoms` in degrees.
|
|
213
212
|
|
|
214
213
|
Parameters
|
|
215
214
|
----------
|
|
@@ -236,7 +235,7 @@ class Structure(list):
|
|
|
236
235
|
return self.lattice.angle(u10, u12)
|
|
237
236
|
|
|
238
237
|
def placeInLattice(self, new_lattice):
|
|
239
|
-
"""
|
|
238
|
+
"""Place structure into `new_lattice` coordinate system.
|
|
240
239
|
|
|
241
240
|
Sets `lattice` to `new_lattice` and recalculate fractional coordinates
|
|
242
241
|
of all `Atoms` so their absolute positions remain the same.
|
|
@@ -353,7 +352,8 @@ class Structure(list):
|
|
|
353
352
|
return
|
|
354
353
|
|
|
355
354
|
def writeStr(self, format):
|
|
356
|
-
"""
|
|
355
|
+
"""Return string representation of the structure in specified
|
|
356
|
+
format.
|
|
357
357
|
|
|
358
358
|
Note
|
|
359
359
|
----
|
|
@@ -368,14 +368,16 @@ class Structure(list):
|
|
|
368
368
|
return s
|
|
369
369
|
|
|
370
370
|
def tolist(self):
|
|
371
|
-
"""Return `Atoms` in this `Structure` as a standard Python
|
|
371
|
+
"""Return `Atoms` in this `Structure` as a standard Python
|
|
372
|
+
list."""
|
|
372
373
|
rv = [a for a in self]
|
|
373
374
|
return rv
|
|
374
375
|
|
|
375
376
|
# Overloaded list Methods and Operators ----------------------------------
|
|
376
377
|
|
|
377
378
|
def append(self, a, copy=True):
|
|
378
|
-
"""Append `Atom` to a structure and update its `lattice`
|
|
379
|
+
"""Append `Atom` to a structure and update its `lattice`
|
|
380
|
+
attribute.
|
|
379
381
|
|
|
380
382
|
Parameters
|
|
381
383
|
----------
|
|
@@ -451,7 +453,7 @@ class Structure(list):
|
|
|
451
453
|
|
|
452
454
|
Parameters
|
|
453
455
|
----------
|
|
454
|
-
idx : int
|
|
456
|
+
idx : int or str or Iterable
|
|
455
457
|
`Atom` identifier. When integer use standard list lookup.
|
|
456
458
|
For iterables use numpy lookup, this supports integer or
|
|
457
459
|
boolean flag arrays. For string or string-containing iterables
|
|
@@ -564,7 +566,7 @@ class Structure(list):
|
|
|
564
566
|
keep = set(super(Structure, self).__getitem__(idx))
|
|
565
567
|
v1 = (a if a in keep else Atom(a) for a in value)
|
|
566
568
|
vfinal = filter(_fixlat, v1)
|
|
567
|
-
# handle scalar
|
|
569
|
+
# handle scalar assignment
|
|
568
570
|
else:
|
|
569
571
|
vfinal = Atom(value) if copy else value
|
|
570
572
|
vfinal.lattice = self.lattice
|
|
@@ -572,7 +574,8 @@ class Structure(list):
|
|
|
572
574
|
return
|
|
573
575
|
|
|
574
576
|
def __add__(self, other):
|
|
575
|
-
"""Return new `Structure` object with appended `Atoms` from
|
|
577
|
+
"""Return new `Structure` object with appended `Atoms` from
|
|
578
|
+
other.
|
|
576
579
|
|
|
577
580
|
Parameters
|
|
578
581
|
----------
|
|
@@ -605,7 +608,8 @@ class Structure(list):
|
|
|
605
608
|
return self
|
|
606
609
|
|
|
607
610
|
def __sub__(self, other):
|
|
608
|
-
"""Return new `Structure` that has `Atoms` from the other
|
|
611
|
+
"""Return new `Structure` that has `Atoms` from the other
|
|
612
|
+
removed.
|
|
609
613
|
|
|
610
614
|
Parameters
|
|
611
615
|
----------
|
|
@@ -640,8 +644,8 @@ class Structure(list):
|
|
|
640
644
|
return self
|
|
641
645
|
|
|
642
646
|
def __mul__(self, n):
|
|
643
|
-
"""Return new `Structure` with n-times concatenated `Atoms` from
|
|
644
|
-
`Atoms` and `lattice` in the new structure are all copies.
|
|
647
|
+
"""Return new `Structure` with n-times concatenated `Atoms` from
|
|
648
|
+
self. `Atoms` and `lattice` in the new structure are all copies.
|
|
645
649
|
|
|
646
650
|
Parameters
|
|
647
651
|
----------
|
|
@@ -661,8 +665,8 @@ class Structure(list):
|
|
|
661
665
|
__rmul__ = __mul__
|
|
662
666
|
|
|
663
667
|
def __imul__(self, n):
|
|
664
|
-
"""Concatenate this `Structure` to n-times more `Atoms`.
|
|
665
|
-
|
|
668
|
+
"""Concatenate this `Structure` to n-times more `Atoms`. For
|
|
669
|
+
positive multiple the current `Atom` objects remain at the
|
|
666
670
|
beginning of this `Structure`.
|
|
667
671
|
|
|
668
672
|
Parameters
|
|
@@ -859,7 +863,8 @@ class Structure(list):
|
|
|
859
863
|
# Private Methods --------------------------------------------------------
|
|
860
864
|
|
|
861
865
|
def __emptySharedStructure(self):
|
|
862
|
-
"""Return empty `Structure` with standard attributes same as in
|
|
866
|
+
"""Return empty `Structure` with standard attributes same as in
|
|
867
|
+
self."""
|
|
863
868
|
rv = Structure()
|
|
864
869
|
rv.__dict__.update([(k, getattr(self, k)) for k in rv.__dict__])
|
|
865
870
|
return rv
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""Exceptions used in Structure package.
|
|
17
|
-
"""
|
|
15
|
+
"""Exceptions used in Structure package."""
|
|
18
16
|
|
|
19
17
|
|
|
20
18
|
class StructureFormatError(Exception):
|
|
@@ -12,9 +12,8 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
and generation of positional constraints.
|
|
15
|
+
"""Symmetry utility functions such as expansion of asymmetric unit, and
|
|
16
|
+
generation of positional constraints.
|
|
18
17
|
|
|
19
18
|
Attributes
|
|
20
19
|
----------
|
|
@@ -132,8 +131,8 @@ def isconstantFormula(s):
|
|
|
132
131
|
|
|
133
132
|
|
|
134
133
|
class _Position2Tuple(object):
|
|
135
|
-
"""Create callable object that converts fractional coordinates to
|
|
136
|
-
|
|
134
|
+
"""Create callable object that converts fractional coordinates to a
|
|
135
|
+
tuple of integers with given precision. For presision close to zero
|
|
137
136
|
it will return a tuples of double.
|
|
138
137
|
|
|
139
138
|
Note
|
|
@@ -148,7 +147,7 @@ class _Position2Tuple(object):
|
|
|
148
147
|
Attributes
|
|
149
148
|
----------
|
|
150
149
|
eps : float
|
|
151
|
-
Cutoff for equivalent coordinates. When two
|
|
150
|
+
Cutoff for equivalent coordinates. When two coordinates map to the
|
|
152
151
|
same tuple, they are closer than `eps`.
|
|
153
152
|
"""
|
|
154
153
|
|
|
@@ -417,7 +416,8 @@ class GeneratorSite(object):
|
|
|
417
416
|
],
|
|
418
417
|
dtype=float,
|
|
419
418
|
)
|
|
420
|
-
"""numpy.ndarray: 6x3x3 array of independent components of U
|
|
419
|
+
"""numpy.ndarray: 6x3x3 array of independent components of U
|
|
420
|
+
matrices."""
|
|
421
421
|
|
|
422
422
|
idx2Usymbol = {0: "U11", 1: "U12", 2: "U13", 3: "U12", 4: "U22", 5: "U23", 6: "U13", 7: "U23", 8: "U33"}
|
|
423
423
|
"""dict: Mapping of index to standard U symbol."""
|
|
@@ -467,7 +467,8 @@ class GeneratorSite(object):
|
|
|
467
467
|
return
|
|
468
468
|
|
|
469
469
|
def signedRatStr(self, x):
|
|
470
|
-
"""Convert floating point number to signed rational
|
|
470
|
+
"""Convert floating point number to signed rational
|
|
471
|
+
representation.
|
|
471
472
|
|
|
472
473
|
Possible fractional are multiples of 1/3, 1/6, 1/7, 1/9, if these
|
|
473
474
|
are not close, return `%+g` format.
|
|
@@ -495,6 +496,7 @@ class GeneratorSite(object):
|
|
|
495
496
|
|
|
496
497
|
def _findNullSpace(self):
|
|
497
498
|
"""Calculate `self.null_space` from `self.invariants`.
|
|
499
|
+
|
|
498
500
|
Try to represent `self.null_space` using small integers.
|
|
499
501
|
"""
|
|
500
502
|
R0 = self.invariants[0].R
|
|
@@ -525,7 +527,8 @@ class GeneratorSite(object):
|
|
|
525
527
|
return
|
|
526
528
|
|
|
527
529
|
def _findPosParameters(self):
|
|
528
|
-
"""Find pparameters and their values for expressing
|
|
530
|
+
"""Find pparameters and their values for expressing
|
|
531
|
+
`self.xyz`."""
|
|
529
532
|
usedsymbol = {}
|
|
530
533
|
# parameter values depend on offset of self.xyz
|
|
531
534
|
txyz = self.xyz
|
|
@@ -542,8 +545,7 @@ class GeneratorSite(object):
|
|
|
542
545
|
|
|
543
546
|
def _findUSpace(self):
|
|
544
547
|
"""Find independent U components with respect to invariant
|
|
545
|
-
rotations.
|
|
546
|
-
"""
|
|
548
|
+
rotations."""
|
|
547
549
|
n = len(self.invariants)
|
|
548
550
|
R6zall = numpy.tile(-numpy.identity(6, dtype=float), (n, 1))
|
|
549
551
|
R6zall_iter = numpy.split(R6zall, n, axis=0)
|
|
@@ -568,7 +570,8 @@ class GeneratorSite(object):
|
|
|
568
570
|
return
|
|
569
571
|
|
|
570
572
|
def _findUParameters(self):
|
|
571
|
-
"""Find Uparameters and their values for expressing
|
|
573
|
+
"""Find Uparameters and their values for expressing
|
|
574
|
+
`self.Uij`."""
|
|
572
575
|
# permute indices as 00 11 22 01 02 12 10 20 21
|
|
573
576
|
diagorder = numpy.array((0, 4, 8, 1, 2, 5, 3, 6, 7))
|
|
574
577
|
Uijflat = self.Uij.flatten()
|
|
@@ -583,7 +586,8 @@ class GeneratorSite(object):
|
|
|
583
586
|
return
|
|
584
587
|
|
|
585
588
|
def _findeqUij(self):
|
|
586
|
-
"""Adjust `self.Uij` and `self.eqUij` to be consistent with
|
|
589
|
+
"""Adjust `self.Uij` and `self.eqUij` to be consistent with
|
|
590
|
+
spacegroup."""
|
|
587
591
|
self.Uij = numpy.zeros((3, 3), dtype=float)
|
|
588
592
|
for i in range(len(self.Uparameters)):
|
|
589
593
|
Usp = self.Uspace[i]
|
|
@@ -598,7 +602,8 @@ class GeneratorSite(object):
|
|
|
598
602
|
return
|
|
599
603
|
|
|
600
604
|
def positionFormula(self, pos, xyzsymbols=("x", "y", "z")):
|
|
601
|
-
"""Formula of equivalent position with respect to generator
|
|
605
|
+
"""Formula of equivalent position with respect to generator
|
|
606
|
+
site.
|
|
602
607
|
|
|
603
608
|
Parameters
|
|
604
609
|
----------
|
|
@@ -646,7 +651,8 @@ class GeneratorSite(object):
|
|
|
646
651
|
return dict(zip(("x", "y", "z"), xyzformula))
|
|
647
652
|
|
|
648
653
|
def UFormula(self, pos, Usymbols=stdUsymbols):
|
|
649
|
-
"""List of atom displacement formulas with custom parameter
|
|
654
|
+
"""List of atom displacement formulas with custom parameter
|
|
655
|
+
symbols.
|
|
650
656
|
|
|
651
657
|
Parameters
|
|
652
658
|
----------
|
|
@@ -902,7 +908,8 @@ class SymmetryConstraints(object):
|
|
|
902
908
|
return
|
|
903
909
|
|
|
904
910
|
def _findConstraints(self):
|
|
905
|
-
"""Find constraints for positions and anisotropic displacements
|
|
911
|
+
"""Find constraints for positions and anisotropic displacements
|
|
912
|
+
`Uij`."""
|
|
906
913
|
numpos = len(self.positions)
|
|
907
914
|
# canonical xyzsymbols and Usymbols
|
|
908
915
|
xyzsymbols = [smbl + str(i) for i in range(numpos) for smbl in "xyz"]
|
|
@@ -994,7 +1001,8 @@ class SymmetryConstraints(object):
|
|
|
994
1001
|
return rv
|
|
995
1002
|
|
|
996
1003
|
def positionFormulasPruned(self, xyzsymbols=None):
|
|
997
|
-
"""List of position formula dictionaries with constant items
|
|
1004
|
+
"""List of position formula dictionaries with constant items
|
|
1005
|
+
removed.
|
|
998
1006
|
|
|
999
1007
|
See also
|
|
1000
1008
|
--------
|
|
@@ -1014,7 +1022,8 @@ class SymmetryConstraints(object):
|
|
|
1014
1022
|
return rv
|
|
1015
1023
|
|
|
1016
1024
|
def UparSymbols(self):
|
|
1017
|
-
"""Return list of standard atom displacement parameter
|
|
1025
|
+
"""Return list of standard atom displacement parameter
|
|
1026
|
+
symbols."""
|
|
1018
1027
|
return [n for n, v in self.Upars]
|
|
1019
1028
|
|
|
1020
1029
|
def UparValues(self):
|
|
@@ -1022,7 +1031,8 @@ class SymmetryConstraints(object):
|
|
|
1022
1031
|
return [v for n, v in self.Upars]
|
|
1023
1032
|
|
|
1024
1033
|
def UFormulas(self, Usymbols=None):
|
|
1025
|
-
"""List of atom displacement formulas with custom parameter
|
|
1034
|
+
"""List of atom displacement formulas with custom parameter
|
|
1035
|
+
symbols.
|
|
1026
1036
|
|
|
1027
1037
|
Parameters
|
|
1028
1038
|
----------
|
|
@@ -1059,8 +1069,8 @@ class SymmetryConstraints(object):
|
|
|
1059
1069
|
return rv
|
|
1060
1070
|
|
|
1061
1071
|
def UFormulasPruned(self, Usymbols=None):
|
|
1062
|
-
"""List of atom displacement formula dictionaries with constant
|
|
1063
|
-
removed.
|
|
1072
|
+
"""List of atom displacement formula dictionaries with constant
|
|
1073
|
+
items removed.
|
|
1064
1074
|
|
|
1065
1075
|
See Also
|
|
1066
1076
|
--------
|
diffpy/structure/utils.py
CHANGED
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
# See LICENSE_DANSE.txt for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
|
-
"""Small shared functions.
|
|
17
|
-
"""
|
|
15
|
+
"""Small shared functions."""
|
|
18
16
|
|
|
19
17
|
from collections.abc import Iterable as _Iterable
|
|
20
18
|
|
|
@@ -38,7 +36,8 @@ def isfloat(s):
|
|
|
38
36
|
|
|
39
37
|
|
|
40
38
|
def atomBareSymbol(smbl):
|
|
41
|
-
"""Remove atom type string stripped of isotope and ion charge
|
|
39
|
+
"""Remove atom type string stripped of isotope and ion charge
|
|
40
|
+
symbols.
|
|
42
41
|
|
|
43
42
|
This function removes any blank, isotope numbers (0-9), leading hyphens (-), and ion charge
|
|
44
43
|
symbols (1-9)(+-) from the given atom type string, returning only the bare element symbol.
|
diffpy/structure/version.py
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
##############################################################################
|
|
3
3
|
#
|
|
4
|
-
# (c) 2024 The Trustees of Columbia University in the City of New York.
|
|
4
|
+
# (c) 2024-2025 The Trustees of Columbia University in the City of New York.
|
|
5
5
|
# All rights reserved.
|
|
6
6
|
#
|
|
7
|
-
# File coded by: Billinge Group members
|
|
7
|
+
# File coded by: Chris Farrow, Pavol Juhas, Simon Billinge, Billinge Group members.
|
|
8
8
|
#
|
|
9
9
|
# See GitHub contributions for a more detailed list of contributors.
|
|
10
|
-
# https://github.com/diffpy/diffpy.structure/graphs/contributors
|
|
10
|
+
# https://github.com/diffpy/diffpy.structure/graphs/contributors # noqa: E501
|
|
11
11
|
#
|
|
12
12
|
# See LICENSE.rst for license information.
|
|
13
13
|
#
|
|
14
14
|
##############################################################################
|
|
15
|
-
|
|
16
15
|
"""Definition of __version__."""
|
|
17
16
|
|
|
18
17
|
# We do not use the other three variables, but can be added back if needed.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: diffpy.structure
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.1
|
|
4
4
|
Summary: Crystal structure container and parsers for structure formats.
|
|
5
|
-
Author-email:
|
|
6
|
-
Maintainer-email:
|
|
5
|
+
Author-email: Simon Billinge <sb2896@columbia.edu>
|
|
6
|
+
Maintainer-email: Simon Billinge <sb2896@columbia.edu>
|
|
7
7
|
Project-URL: Homepage, https://github.com/diffpy/diffpy.structure/
|
|
8
8
|
Project-URL: Issues, https://github.com/diffpy/diffpy.structure/issues/
|
|
9
|
-
Keywords: diffpy,crystal structure data storage
|
|
9
|
+
Keywords: diffpy,crystal structure data storage,CIF,PDB
|
|
10
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
11
|
Classifier: Environment :: Console
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
@@ -23,12 +23,13 @@ Classifier: Topic :: Scientific/Engineering :: Physics
|
|
|
23
23
|
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
24
24
|
Requires-Python: <3.14,>=3.11
|
|
25
25
|
Description-Content-Type: text/x-rst
|
|
26
|
+
License-File: LICENSE-DANSE.rst
|
|
27
|
+
License-File: LICENSE-pymmlib.rst
|
|
26
28
|
License-File: LICENSE.rst
|
|
27
|
-
License-File: LICENSE_DANSE.rst
|
|
28
|
-
License-File: LICENSE_pymmlib.rst
|
|
29
29
|
License-File: AUTHORS.rst
|
|
30
30
|
Requires-Dist: numpy
|
|
31
31
|
Requires-Dist: pycifrw
|
|
32
|
+
Dynamic: license-file
|
|
32
33
|
|
|
33
34
|
|Icon| |title|_
|
|
34
35
|
===============
|
|
@@ -40,7 +41,7 @@ Requires-Dist: pycifrw
|
|
|
40
41
|
:target: https://diffpy.github.io/diffpy.structure
|
|
41
42
|
:height: 100px
|
|
42
43
|
|
|
43
|
-
|
|
|
44
|
+
|PyPI| |Forge| |PythonVersion| |PR|
|
|
44
45
|
|
|
45
46
|
|CI| |Codecov| |Black| |Tracking|
|
|
46
47
|
|
|
@@ -58,7 +59,7 @@ Requires-Dist: pycifrw
|
|
|
58
59
|
|
|
59
60
|
.. |PR| image:: https://img.shields.io/badge/PR-Welcome-29ab47ff
|
|
60
61
|
|
|
61
|
-
.. |
|
|
62
|
+
.. |PyPI| image:: https://img.shields.io/pypi/v/diffpy.structure
|
|
62
63
|
:target: https://pypi.org/project/diffpy.structure/
|
|
63
64
|
|
|
64
65
|
.. |PythonVersion| image:: https://img.shields.io/pypi/pyversions/diffpy.structure
|
|
@@ -164,7 +165,7 @@ trying to commit again.
|
|
|
164
165
|
|
|
165
166
|
Improvements and fixes are always appreciated.
|
|
166
167
|
|
|
167
|
-
Before
|
|
168
|
+
Before contributing, please read our `Code of Conduct <https://github.com/diffpy/diffpy.structure/blob/main/CODE-OF-CONDUCT.rst>`_.
|
|
168
169
|
|
|
169
170
|
Acknowledgement
|
|
170
171
|
---------------
|
|
@@ -175,6 +176,8 @@ originate from the `pymmlib project <http://pymmlib.sourceforge.net>`_.
|
|
|
175
176
|
Less common settings of space groups were generating using the
|
|
176
177
|
`Computational Crystallography Toolbox <http://cctbx.sourceforge.net>`_.
|
|
177
178
|
|
|
179
|
+
``diffpy.structure`` is built and maintained with `scikit-package <https://scikit-package.github.io/scikit-package/>`_.
|
|
180
|
+
|
|
178
181
|
Contact
|
|
179
182
|
-------
|
|
180
183
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
diffpy/__init__.py,sha256=04avZQsjSOiKWW3QfASU_McNdoVNMmOMBjnRhZm3tds,535
|
|
2
|
+
diffpy/structure/__init__.py,sha256=SlBT8kUHjov-Pg7Dc7vOtbQaZEwfb7bhkj-mETLGu7c,2620
|
|
3
|
+
diffpy/structure/_legacy_importer.py,sha256=tVMkHI88Mq0Y3wTDyeQljKlMEZNF4mjixr3N_FP5p84,2573
|
|
4
|
+
diffpy/structure/atom.py,sha256=OweEfz-i0_PAWefcssuX2LJGiw6uxEqIISAKeXzQwHM,17751
|
|
5
|
+
diffpy/structure/lattice.py,sha256=-CCh6ADoMt_PCX7JAgHhJHSRH4o_C_r_0LmuDn4X4BY,22500
|
|
6
|
+
diffpy/structure/mmlibspacegroups.py,sha256=F2KeR0rCdeZMPeu7NNaZLoo0_kQTzfjt9mTpFnpHXbs,245607
|
|
7
|
+
diffpy/structure/pdffitstructure.py,sha256=wOvLreKFJzIwYX6MkZ3YL7EoVey2RcrJaeyBl1BZkEw,3201
|
|
8
|
+
diffpy/structure/sgtbxspacegroups.py,sha256=UO4-jGUiFcC9t6Kcsr7aI6UX-nos1R8K39qGTB6RQqo,135077
|
|
9
|
+
diffpy/structure/spacegroupmod.py,sha256=jT9ZsYizKxlOgbjb3mnHmySd8LULwEiU_mk72H3c2oM,15190
|
|
10
|
+
diffpy/structure/spacegroups.py,sha256=FBHOo2mDUNjRN-4i3WEZ_EKTXYv5JZordskP-6YV_PA,23367
|
|
11
|
+
diffpy/structure/structure.py,sha256=WbTNzcz0J8MXF7OtZgDXKXqUjk5_4G7l1r6P3XmvJq0,27590
|
|
12
|
+
diffpy/structure/structureerrors.py,sha256=yEK8E2yGIdspATBUsiuwrPC8y1NkMJy_lEWyorVThyE,878
|
|
13
|
+
diffpy/structure/symmetryutilities.py,sha256=SjR_-NgKG4R9ryqNMS7-S0QsFAPwrrxpubCWj2xCevs,37452
|
|
14
|
+
diffpy/structure/utils.py,sha256=8mBCCMqoE9XlneflsZOXMrWP4srFp9pS4TyC16nMeAg,3322
|
|
15
|
+
diffpy/structure/version.py,sha256=IXOxxkCF2DG0x0654n0hCDPEC0zRlKPLfLmiYE27o7k,880
|
|
16
|
+
diffpy/structure/apps/__init__.py,sha256=RIALfKIBO0irampSnEVpelA8hG14iTLBUObfDK-bLyw,593
|
|
17
|
+
diffpy/structure/apps/anyeye.py,sha256=ofuoi540zWOm23aZAklECp-Bey3JQH18Y3RNhX6ozrs,8035
|
|
18
|
+
diffpy/structure/apps/transtru.py,sha256=CxexgucmUYXNoIqoAHcI9ZosqeR_PsXkP_Ikv2wr7-0,3658
|
|
19
|
+
diffpy/structure/expansion/__init__.py,sha256=lRNreWFdplIHOAPxN9bkM1mdzdPVuImfTcloeWoFgb0,869
|
|
20
|
+
diffpy/structure/expansion/makeellipsoid.py,sha256=oKpkATyI5ieKKoNj5EY4LkDPdZAGHhnbk24nR4YBDHE,3450
|
|
21
|
+
diffpy/structure/expansion/shapeutils.py,sha256=Q5UIpKPwyFZHW48oVUUPg3l_btS4puOVz5_MYLrmI5k,1128
|
|
22
|
+
diffpy/structure/expansion/supercell_mod.py,sha256=J5JaV1ttkcr4icSSY9yN9p56zeu3I_ioOsCAlKndJmo,2705
|
|
23
|
+
diffpy/structure/parsers/__init__.py,sha256=ZBRIMG0Y7Az_nNoBxe5Ew3l_ojxym9au7mjlMJpI-ew,2729
|
|
24
|
+
diffpy/structure/parsers/p_auto.py,sha256=XlfIARU5YP2E3IU8eouzQoLA_CDYDK9ykSRXgRRIg30,6047
|
|
25
|
+
diffpy/structure/parsers/p_cif.py,sha256=xrXAG4POlhZ0VKKZI9vHsT5Kj6gOwyqF4cUFz009WJs,29323
|
|
26
|
+
diffpy/structure/parsers/p_discus.py,sha256=cHBGfGMIuDSLtWHFRTv8MkkVyxbDRO_KjCYsMdbB6gU,10505
|
|
27
|
+
diffpy/structure/parsers/p_pdb.py,sha256=G0kgOC9TzHNnpM5L6zWfEXHbK79zCOSi4ax6owH2MxQ,13928
|
|
28
|
+
diffpy/structure/parsers/p_pdffit.py,sha256=plE5j7m14ktWz8PsUA6o9gTNGlXGaOgnUx-fW89uslg,11020
|
|
29
|
+
diffpy/structure/parsers/p_rawxyz.py,sha256=aVdRIyJisGZ7vxHKTXjaCO7UDKbcqwT-e23A2cd7s68,4549
|
|
30
|
+
diffpy/structure/parsers/p_xcfg.py,sha256=cJ5VBOOmtn1hXz_Ji0zniwrfZAs0dS2M5_LqM7Q8Z4g,17958
|
|
31
|
+
diffpy/structure/parsers/p_xyz.py,sha256=nMMx5OQM3cQQ4dXkrql3mL9hd6vsjiivHtve8VHm82Q,5005
|
|
32
|
+
diffpy/structure/parsers/parser_index_mod.py,sha256=A3xwsCOy_Sjn4ZMFl8zZA77gXY0bOrCjTAoQ_lo-Xl8,3044
|
|
33
|
+
diffpy/structure/parsers/structureparser.py,sha256=uMw-K4TkXyAAiqTR8QjTbXuP5Bd83YL5u9vZExWEqVg,2252
|
|
34
|
+
diffpy_structure-3.3.1.dist-info/licenses/AUTHORS.rst,sha256=PH7xKOE6eZ60_LSn4IugF1w-9O2TWHJBBBC6WuiBXIg,255
|
|
35
|
+
diffpy_structure-3.3.1.dist-info/licenses/LICENSE-DANSE.rst,sha256=O0_g4iEt4vJzr3XfLnqISKgR6bBXXE1EWDGXZUMkgGM,2277
|
|
36
|
+
diffpy_structure-3.3.1.dist-info/licenses/LICENSE-pymmlib.rst,sha256=9RJGn2ZWB4NaWRh8AE8nefdlKDEENs0EBFBk3D2YAas,9591
|
|
37
|
+
diffpy_structure-3.3.1.dist-info/licenses/LICENSE.rst,sha256=80VidrcIGGKZSC-cL7Ru0BZ4ZEPHcYHyv_cXkkTJXFE,6011
|
|
38
|
+
diffpy_structure-3.3.1.dist-info/METADATA,sha256=NOWLLyT38LMbNyT09_s0Y3Jb9PIUgHY1DpVnWw_oa-o,8059
|
|
39
|
+
diffpy_structure-3.3.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
40
|
+
diffpy_structure-3.3.1.dist-info/entry_points.txt,sha256=nZfNAHRiWWZojxJz1NSIxiKERWBL437Xscb-WLL6JkM,65
|
|
41
|
+
diffpy_structure-3.3.1.dist-info/top_level.txt,sha256=34qLZyi9mxikpHepVDTMHrrNbe8VoOuz3ShYeiWA7KA,7
|
|
42
|
+
diffpy_structure-3.3.1.dist-info/RECORD,,
|
|
@@ -15,7 +15,7 @@ Copyright (c) 2014, Australian Synchrotron Research Program Inc., ("ASRP")
|
|
|
15
15
|
|
|
16
16
|
Copyright (c) 2014-2019, Brookhaven Science Associates, Brookhaven National Laboratory
|
|
17
17
|
|
|
18
|
-
Copyright (c) 2024, The Trustees of Columbia University in the City of New York.
|
|
18
|
+
Copyright (c) 2024-2025, The Trustees of Columbia University in the City of New York.
|
|
19
19
|
All rights reserved.
|
|
20
20
|
|
|
21
21
|
The "DiffPy-CMI" is distributed subject to the following license conditions:
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
diffpy/__init__.py,sha256=WntnKrzS4hxw7YDYxwU-2hCJYNSFBf3gvjbPOrci0dk,673
|
|
2
|
-
diffpy/structure/__init__.py,sha256=EPy-CMdt1GkwzPmFs6vBPFjxygb-xMCsrxZMEEnrODo,2600
|
|
3
|
-
diffpy/structure/_legacy_importer.py,sha256=IXoPovMWIEY7tQTp1prTjICudfiVsR_Blmae-zDcHKA,2574
|
|
4
|
-
diffpy/structure/atom.py,sha256=hB7ZbJgSe2RvHeu7HcnPGeJpopSs17xXLHdv-G93kE4,17722
|
|
5
|
-
diffpy/structure/lattice.py,sha256=NhSYxFMyfPRJYwiLCyObEPC7vlZBAsP0x9PYSzJ1O7U,22499
|
|
6
|
-
diffpy/structure/mmlibspacegroups.py,sha256=J4F8nbcZ2OmjhzxtOnFVKLQpzXgyQ-S8wh3EnNxqz-w,245608
|
|
7
|
-
diffpy/structure/pdffitstructure.py,sha256=lzARAIDN-FiuMnQJIeFbfRMdRXCGgv2J2qPmOctkN_I,3202
|
|
8
|
-
diffpy/structure/sgtbxspacegroups.py,sha256=9Mz_vVfC3CYpKBYFeYc2Un0VdsqNIx8e9KdZ-Szhw3Y,135078
|
|
9
|
-
diffpy/structure/spacegroupmod.py,sha256=xMeWjiODk21koPQo7aQnwdWf4wzZ82PnVl3MmlTj5yU,15176
|
|
10
|
-
diffpy/structure/spacegroups.py,sha256=BPKW75UNGqDlfi6lkntrjAJiqyxcKmIAeaUScrKA7LA,23359
|
|
11
|
-
diffpy/structure/structure.py,sha256=r8_Z3MyevqlU5EEsQ5G4Xzji_8AwLAUOp6_M3hwq-K8,27541
|
|
12
|
-
diffpy/structure/structureerrors.py,sha256=9T4Fwy-_dafyiMRGeK0qAmZ6TXBpRqlhSnOxIfV5mxM,880
|
|
13
|
-
diffpy/structure/symmetryutilities.py,sha256=jxR8Sxp7Fw8seSX_8y8GgrbfpVadj4_leXFukTkDPKQ,37377
|
|
14
|
-
diffpy/structure/utils.py,sha256=IMgzeIPg0WOIVeACpg2YZX4wL0NZhu_tZRuGctSmLuM,3320
|
|
15
|
-
diffpy/structure/version.py,sha256=SZtloZcpk7K1AnEKzefhXcEjxiJI6uXue0_3kQz_fp8,845
|
|
16
|
-
diffpy/structure/apps/__init__.py,sha256=8_LEH7mLoHMV1JWCV8g6ROTQVUap2QbYIvF11s5_Fts,595
|
|
17
|
-
diffpy/structure/apps/anyeye.py,sha256=eWghHY-4tZPo0d82OnntMk9b6L7bQrPOoTwC7PILJp4,8032
|
|
18
|
-
diffpy/structure/apps/transtru.py,sha256=VUfjEwefSsF-ca16Rq6rjtCw24-P-hybyLMS_6y2qZ4,3655
|
|
19
|
-
diffpy/structure/expansion/__init__.py,sha256=lgVDh9UxVR63lDl0trCBt042Rw3nNzPGnuWna45nTms,870
|
|
20
|
-
diffpy/structure/expansion/makeellipsoid.py,sha256=R8dhKtRW6KxdeectCI39PyRTLpNFUFvj6M5UWVvify8,3456
|
|
21
|
-
diffpy/structure/expansion/shapeutils.py,sha256=gAQnsVa2puE-sn7sIjEHhZU9U8EEk1gHIbEHErp-iMc,1130
|
|
22
|
-
diffpy/structure/expansion/supercell_mod.py,sha256=t8kfDCNp92_PWURjCdm-KRryTk6AvAN6SI271mAyFh4,2712
|
|
23
|
-
diffpy/structure/parsers/__init__.py,sha256=qq0grT2qDKBG5LE2DlSdpnUc-JA1UtaUSN-KF3iGNOQ,2730
|
|
24
|
-
diffpy/structure/parsers/p_auto.py,sha256=yNcSmLsIiyERtlnLWZkh5TqHwU8b2q2fVtbrTtgeAWk,6030
|
|
25
|
-
diffpy/structure/parsers/p_cif.py,sha256=KlrLoxTnypOMZyJtKbccdgt3U0rR1UxP2Cm_SOjy1Ao,29218
|
|
26
|
-
diffpy/structure/parsers/p_discus.py,sha256=3cIN9oXv9uKIJ-5G7B5HtJYnlO91UCUkHnMXu0Fd-QY,10505
|
|
27
|
-
diffpy/structure/parsers/p_pdb.py,sha256=AkFHFWbNj6ihjj_LtdOqQzA56Rb5u2P_gecUpoJMzeg,13938
|
|
28
|
-
diffpy/structure/parsers/p_pdffit.py,sha256=1VnEvKfaKjLnBfgNWW7um4xG7sQ3gbSGlc9cFSw5as4,11021
|
|
29
|
-
diffpy/structure/parsers/p_rawxyz.py,sha256=gdEWdzCxMl1_JV1KNgurgPdEAp4RO3tEYLnasi672cw,4550
|
|
30
|
-
diffpy/structure/parsers/p_xcfg.py,sha256=QIaaq30FoRnZwYIlAsLUMVRWGPoQaivRwMPWqXE5VMI,17947
|
|
31
|
-
diffpy/structure/parsers/p_xyz.py,sha256=PDmkc_MyHRP5wqJsHxxa7W4bce60YHhkurUrmrhU8Ks,5017
|
|
32
|
-
diffpy/structure/parsers/parser_index_mod.py,sha256=QWwV0tPpbIlk2i-gwR6MlKkUF0H05lGzO0yBq5nPOxk,3045
|
|
33
|
-
diffpy/structure/parsers/structureparser.py,sha256=p6eXkziF0sBOR6p9tyfvs8O6D9oRqETrr_v54h3C5mg,2254
|
|
34
|
-
diffpy.structure-3.3.0.dist-info/AUTHORS.rst,sha256=PH7xKOE6eZ60_LSn4IugF1w-9O2TWHJBBBC6WuiBXIg,255
|
|
35
|
-
diffpy.structure-3.3.0.dist-info/LICENSE.rst,sha256=cewTuMX5-lzPdcCj6s5_YeJvPbc3ZyUHZJg5FB7nlIs,6006
|
|
36
|
-
diffpy.structure-3.3.0.dist-info/LICENSE_DANSE.rst,sha256=O0_g4iEt4vJzr3XfLnqISKgR6bBXXE1EWDGXZUMkgGM,2277
|
|
37
|
-
diffpy.structure-3.3.0.dist-info/LICENSE_pymmlib.rst,sha256=9RJGn2ZWB4NaWRh8AE8nefdlKDEENs0EBFBk3D2YAas,9591
|
|
38
|
-
diffpy.structure-3.3.0.dist-info/METADATA,sha256=fDMoDDGbNY9CiG8utB7Al7_z-h3vw4tLtLHtahWFJis,7951
|
|
39
|
-
diffpy.structure-3.3.0.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
|
40
|
-
diffpy.structure-3.3.0.dist-info/entry_points.txt,sha256=nZfNAHRiWWZojxJz1NSIxiKERWBL437Xscb-WLL6JkM,65
|
|
41
|
-
diffpy.structure-3.3.0.dist-info/top_level.txt,sha256=34qLZyi9mxikpHepVDTMHrrNbe8VoOuz3ShYeiWA7KA,7
|
|
42
|
-
diffpy.structure-3.3.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|