1
+
2
+
3
+ <!DOCTYPE html>
4
+ < html class ="writer-html5 " lang ="en " data-content_root ="../ ">
5
+ < head >
6
+ < meta charset ="utf-8 " />
7
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
8
+ < title > pyobjcryst — pyobjcryst 2024.2.1 documentation</ title >
9
+ < link rel ="stylesheet " type ="text/css " href ="../_static/pygments.css?v=03e43079 " />
10
+ < link rel ="stylesheet " type ="text/css " href ="../_static/css/theme.css?v=e59714d7 " />
11
+ < link rel ="stylesheet " type ="text/css " href ="../_static/copybutton.css?v=76b2166b " />
12
+
13
+
14
+ < script src ="../_static/jquery.js?v=5d32c60e "> </ script >
15
+ < script src ="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c "> </ script >
16
+ < script src ="../_static/documentation_options.js?v=415d76d1 "> </ script >
17
+ < script src ="../_static/doctools.js?v=9bcbadda "> </ script >
18
+ < script src ="../_static/sphinx_highlight.js?v=dc90522c "> </ script >
19
+ < script src ="../_static/clipboard.min.js?v=a7894cd8 "> </ script >
20
+ < script src ="../_static/copybutton.js?v=cca77546 "> </ script >
21
+ < script src ="../_static/js/theme.js "> </ script >
22
+ < link rel ="index " title ="Index " href ="../genindex.html " />
23
+ < link rel ="search " title ="Search " href ="../search.html " />
24
+ </ head >
25
+
26
+ < body class ="wy-body-for-nav ">
27
+ < div class ="wy-grid-for-nav ">
28
+ < nav data-toggle ="wy-nav-shift " class ="wy-nav-side ">
29
+ < div class ="wy-side-scroll ">
30
+ < div class ="wy-side-nav-search " >
31
+
32
+
33
+
34
+ < a href ="../index.html " class ="icon icon-home ">
35
+ pyobjcryst
36
+ </ a >
37
+ < div role ="search ">
38
+ < form id ="rtd-search-form " class ="wy-form " action ="../search.html " method ="get ">
39
+ < input type ="text " name ="q " placeholder ="Search docs " aria-label ="Search docs " />
40
+ < input type ="hidden " name ="check_keywords " value ="yes " />
41
+ < input type ="hidden " name ="area " value ="default " />
42
+ </ form >
43
+ </ div >
44
+ </ div > < div class ="wy-menu wy-menu-vertical " data-spy ="affix " role ="navigation " aria-label ="Navigation menu ">
45
+ < ul >
46
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../getting-started.html "> Getting started</ a > </ li >
47
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../api/pyobjcryst.html "> Package API</ a > </ li >
48
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../release.html "> Release notes</ a > </ li >
49
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../license.html "> License</ a > </ li >
50
+ </ ul >
51
+
52
+ </ div >
53
+ </ div >
54
+ </ nav >
55
+
56
+ < section data-toggle ="wy-nav-shift " class ="wy-nav-content-wrap "> < nav class ="wy-nav-top " aria-label ="Mobile navigation menu " >
57
+ < i data-toggle ="wy-nav-top " class ="fa fa-bars "> </ i >
58
+ < a href ="../index.html "> pyobjcryst</ a >
59
+ </ nav >
60
+
61
+ < div class ="wy-nav-content ">
62
+ < div class ="rst-content ">
63
+ < div role ="navigation " aria-label ="Page navigation ">
64
+ < ul class ="wy-breadcrumbs ">
65
+ < li > < a href ="../index.html " class ="icon icon-home " aria-label ="Home "> </ a > </ li >
66
+ < li class ="breadcrumb-item "> < a href ="index.html "> Module code</ a > </ li >
67
+ < li class ="breadcrumb-item active "> pyobjcryst</ li >
68
+ < li class ="wy-breadcrumbs-aside ">
69
+ </ li >
70
+ </ ul >
71
+ < hr />
72
+ </ div >
73
+ < div role ="main " class ="document " itemscope ="itemscope " itemtype ="http://schema.org/Article ">
74
+ < div itemprop ="articleBody ">
75
+
76
+ < h1 > Source code for pyobjcryst</ h1 > < div class ="highlight "> < pre >
77
+ < span > </ span > < span class ="ch "> #!/usr/bin/env python</ span >
78
+ < span class ="c1 "> ##############################################################################</ span >
79
+ < span class ="c1 "> #</ span >
80
+ < span class ="c1 "> # (c) 2025 The Trustees of Columbia University in the City of New York.</ span >
81
+ < span class ="c1 "> # All rights reserved.</ span >
82
+ < span class ="c1 "> #</ span >
83
+ < span class ="c1 "> # File coded by: Chris Farrow and Billinge Group members.</ span >
84
+ < span class ="c1 "> #</ span >
85
+ < span class ="c1 "> # See GitHub contributions for a more detailed list of contributors.</ span >
86
+ < span class ="c1 "> # https://github.com/diffpy/pyobjcryst/graphs/contributors</ span >
87
+ < span class ="c1 "> #</ span >
88
+ < span class ="c1 "> # See LICENSE.rst and LICENSE_DANSE.rst for license information.</ span >
89
+ < span class ="c1 "> #</ span >
90
+ < span class ="c1 "> ##############################################################################</ span >
91
+ < span class ="sd "> """Python wrapping of ObjCryst++.</ span >
92
+
93
+ < span class ="sd "> Objects are wrapped according to their header file in the ObjCryst source.</ span >
94
+
95
+ < span class ="sd "> See the online ObjCryst++ documentation (https://objcryst.readthedocs.io).</ span >
96
+
97
+ < span class ="sd "> Modules</ span >
98
+
99
+ < span class ="sd "> atom -- Wrapping of Atom.h</ span >
100
+ < span class ="sd "> crystal -- Wrapping of Crystal.h</ span >
101
+ < span class ="sd "> general -- Wrapping of General.h</ span >
102
+ < span class ="sd "> globaloptim -- Wrapping of GlobalOptimObj.h</ span >
103
+ < span class ="sd "> io -- Wrapping of IO.h</ span >
104
+ < span class ="sd "> lsq -- Wrapping of LSQNumObj.h</ span >
105
+ < span class ="sd "> molecule -- Wrapping of Molecule.h</ span >
106
+ < span class ="sd "> polyhedron -- Wrapping of Polyhedron.h</ span >
107
+ < span class ="sd "> refinableobj -- Wrapping of RefinableObj.h</ span >
108
+ < span class ="sd "> scatterer -- Wrapping of Scatterer.h</ span >
109
+ < span class ="sd "> scatteringpower -- Wrapping of ScatteringPower.h</ span >
110
+ < span class ="sd "> scatteringpowersphere -- Wrapping of ScatteringPowerSphere.h</ span >
111
+ < span class ="sd "> spacegroup -- Wrapping of SpaceGroup.h</ span >
112
+ < span class ="sd "> unitcell -- Wrapping of UnitCell.h</ span >
113
+ < span class ="sd "> zscatterer -- Wrapping of ZScatterer.h</ span >
114
+
115
+ < span class ="sd "> General Changes</ span >
116
+
117
+ < span class ="sd "> - C++ methods that can return const or non-const objects return non-const</ span >
118
+ < span class ="sd "> objects in python.</ span >
119
+ < span class ="sd "> - Classes with a Print() method have the output of this method exposed in the</ span >
120
+ < span class ="sd "> __str__ python method. Thus, obj.Print() == print obj.</ span >
121
+ < span class ="sd "> - CrystVector and CrystMatrix are converted to numpy arrays.</ span >
122
+ < span class ="sd "> - Indexing methods raise IndexError when index is out of bounds.</ span >
123
+
124
+ < span class ="sd "> See the modules' documentation for specific changes.</ span >
125
+ < span class ="sd "> """</ span >
126
+
127
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> warnings</ span >
128
+
129
+ < span class ="c1 "> # import submodules that only import from _pyobjcryst</ span >
130
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.atom</ span >
131
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.crystal</ span >
132
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.diffractiondatasinglecrystal</ span >
133
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.general</ span >
134
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.globaloptim</ span >
135
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.indexing</ span >
136
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.io</ span >
137
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.lsq</ span >
138
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.molecule</ span >
139
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.polyhedron</ span >
140
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.powderpattern</ span >
141
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.radiation</ span >
142
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.refinableobj</ span >
143
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.reflectionprofile</ span >
144
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.scatterer</ span >
145
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.scatteringdata</ span >
146
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.scatteringpower</ span >
147
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.scatteringpowersphere</ span >
148
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.spacegroup</ span >
149
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.unitcell</ span >
150
+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.zscatterer</ span >
151
+
152
+ < span class ="c1 "> # could be api breaking if removed</ span >
153
+ < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst._pyobjcryst</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> gTopRefinableObjRegistry</ span > < span class ="c1 "> # noqa: F401</ span >
154
+
155
+ < span class ="c1 "> # Let's put this on the package level</ span >
156
+ < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.general</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> ObjCrystException</ span >
157
+
158
+ < span class ="c1 "> # version data</ span >
159
+ < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.version</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> __version__</ span >
160
+
161
+
162
+ < div class ="viewcode-block " id ="loadCrystal ">
163
+ < a class ="viewcode-back " href ="../api/pyobjcryst.html#pyobjcryst.loadCrystal "> [docs]</ a >
164
+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> loadCrystal</ span > < span class ="p "> (</ span > < span class ="n "> filename</ span > < span class ="p "> ):</ span >
165
+ < span class ="w "> </ span > < span class ="sd "> """Load pyobjcryst Crystal object from a CIF file.</ span >
166
+
167
+ < span class ="sd "> :param filename: CIF file to be loaded.</ span >
168
+
169
+ < span class ="sd "> :return: a new Crystal object.</ span >
170
+
171
+ < span class ="sd "> ..deprecated:: 2.2.4</ span >
172
+ < span class ="sd "> Use pyobjcryst.crystal.create_crystal_from_cif() instead,</ span >
173
+ < span class ="sd "> which has more options when importing a CIF, including</ span >
174
+ < span class ="sd "> using an URL instead of a file.</ span >
175
+ < span class ="sd "> """</ span >
176
+ < span class ="n "> warnings</ span > < span class ="o "> .</ span > < span class ="n "> warn</ span > < span class ="p "> (</ span >
177
+ < span class ="s2 "> "loadCrystal is deprecated. Please use "</ span >
178
+ < span class ="s2 "> "pyobjcryst.crystal.create_crystal_from_cif() instead"</ span > < span class ="p "> ,</ span >
179
+ < span class ="ne "> DeprecationWarning</ span > < span class ="p "> ,</ span >
180
+ < span class ="p "> )</ span >
181
+ < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> pyobjcryst.crystal</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> CreateCrystalFromCIF</ span >
182
+
183
+ < span class ="k "> with</ span > < span class ="nb "> open</ span > < span class ="p "> (</ span > < span class ="n "> filename</ span > < span class ="p "> ,</ span > < span class ="s2 "> "rb"</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> fp</ span > < span class ="p "> :</ span >
184
+ < span class ="n "> rv</ span > < span class ="o "> =</ span > < span class ="n "> CreateCrystalFromCIF</ span > < span class ="p "> (</ span > < span class ="n "> fp</ span > < span class ="p "> )</ span >
185
+ < span class ="k "> return</ span > < span class ="n "> rv</ span > </ div >
186
+
187
+
188
+
189
+ < span class ="c1 "> # silence the pyflakes syntax checker</ span >
190
+ < span class ="k "> assert</ span > < span class ="n "> ObjCrystException</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span >
191
+ < span class ="k "> assert</ span > < span class ="n "> __version__</ span > < span class ="ow "> or</ span > < span class ="kc "> True</ span >
192
+ < span class ="k "> assert</ span > < span class ="n "> pyobjcryst</ span > < span class ="o "> .</ span > < span class ="n "> zscatterer</ span >
193
+
194
+ < span class ="c1 "> # End of file</ span >
195
+ </ pre > </ div >
196
+
197
+ </ div >
198
+ </ div >
199
+ < footer >
200
+
201
+ < hr />
202
+
203
+ < div role ="contentinfo ">
204
+ < p > © Copyright 2025, The Trustees of Columbia University in the City of New York.</ p >
205
+ </ div >
206
+
207
+ Built with < a href ="https://www.sphinx-doc.org/ "> Sphinx</ a > using a
208
+ < a href ="https://github.com/readthedocs/sphinx_rtd_theme "> theme</ a >
209
+ provided by < a href ="https://readthedocs.org "> Read the Docs</ a > .
210
+
211
+
212
+ </ footer >
213
+ </ div >
214
+ </ div >
215
+ </ section >
216
+ </ div >
217
+ < script >
218
+ jQuery ( function ( ) {
219
+ SphinxRtdTheme . Navigation . enable ( true ) ;
220
+ } ) ;
221
+ </ script >
222
+
223
+ </ body >
224
+ </ html >
0 commit comments