syned 1.0.47__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.
- syned/__init__.py +0 -0
- syned/__test/__init__.py +46 -0
- syned/__test/test.py +28 -0
- syned/beamline/__init__.py +1 -0
- syned/beamline/beamline.py +155 -0
- syned/beamline/beamline_element.py +76 -0
- syned/beamline/element_coordinates.py +199 -0
- syned/beamline/optical_element.py +47 -0
- syned/beamline/optical_element_with_surface_shape.py +126 -0
- syned/beamline/optical_elements/__init__.py +1 -0
- syned/beamline/optical_elements/absorbers/__init__.py +0 -0
- syned/beamline/optical_elements/absorbers/absorber.py +21 -0
- syned/beamline/optical_elements/absorbers/beam_stopper.py +64 -0
- syned/beamline/optical_elements/absorbers/filter.py +61 -0
- syned/beamline/optical_elements/absorbers/holed_filter.py +67 -0
- syned/beamline/optical_elements/absorbers/slit.py +81 -0
- syned/beamline/optical_elements/crystals/__init__.py +1 -0
- syned/beamline/optical_elements/crystals/crystal.py +70 -0
- syned/beamline/optical_elements/gratings/__init__.py +1 -0
- syned/beamline/optical_elements/gratings/grating.py +279 -0
- syned/beamline/optical_elements/ideal_elements/__init__.py +1 -0
- syned/beamline/optical_elements/ideal_elements/ideal_element.py +16 -0
- syned/beamline/optical_elements/ideal_elements/ideal_fzp.py +183 -0
- syned/beamline/optical_elements/ideal_elements/ideal_lens.py +54 -0
- syned/beamline/optical_elements/ideal_elements/screen.py +16 -0
- syned/beamline/optical_elements/mirrors/__init__.py +1 -0
- syned/beamline/optical_elements/mirrors/mirror.py +39 -0
- syned/beamline/optical_elements/multilayers/__init__.py +46 -0
- syned/beamline/optical_elements/multilayers/multilayer.py +45 -0
- syned/beamline/optical_elements/refractors/__init__.py +1 -0
- syned/beamline/optical_elements/refractors/crl.py +79 -0
- syned/beamline/optical_elements/refractors/interface.py +61 -0
- syned/beamline/optical_elements/refractors/lens.py +105 -0
- syned/beamline/shape.py +2803 -0
- syned/storage_ring/__init__.py +1 -0
- syned/storage_ring/electron_beam.py +804 -0
- syned/storage_ring/empty_light_source.py +40 -0
- syned/storage_ring/light_source.py +90 -0
- syned/storage_ring/magnetic_structure.py +8 -0
- syned/storage_ring/magnetic_structures/__init__.py +1 -0
- syned/storage_ring/magnetic_structures/bending_magnet.py +329 -0
- syned/storage_ring/magnetic_structures/insertion_device.py +169 -0
- syned/storage_ring/magnetic_structures/undulator.py +413 -0
- syned/storage_ring/magnetic_structures/wiggler.py +27 -0
- syned/syned_object.py +264 -0
- syned/util/__init__.py +22 -0
- syned/util/json_tools.py +198 -0
- syned/widget/__init__.py +0 -0
- syned/widget/widget_decorator.py +67 -0
- syned-1.0.47.dist-info/METADATA +88 -0
- syned-1.0.47.dist-info/RECORD +54 -0
- syned-1.0.47.dist-info/WHEEL +5 -0
- syned-1.0.47.dist-info/licenses/LICENSE +20 -0
- syned-1.0.47.dist-info/top_level.txt +1 -0
syned/util/__init__.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
import warnings
|
|
3
|
+
|
|
4
|
+
def deprecated(reason: str = ""):
|
|
5
|
+
"""
|
|
6
|
+
Decorator to mark functions as deprecated.
|
|
7
|
+
It will result in a warning being emitted when the function is used.
|
|
8
|
+
"""
|
|
9
|
+
def decorator(func):
|
|
10
|
+
msg = f"The function `{func.__name__}` is deprecated."
|
|
11
|
+
if reason:
|
|
12
|
+
msg += f" {reason}"
|
|
13
|
+
|
|
14
|
+
@functools.wraps(func)
|
|
15
|
+
def wrapper(*args, **kwargs):
|
|
16
|
+
warnings.simplefilter("always", DeprecationWarning) # show even if filtered
|
|
17
|
+
warnings.warn(msg, category=DeprecationWarning, stacklevel=2)
|
|
18
|
+
warnings.simplefilter("default", DeprecationWarning) # reset filter
|
|
19
|
+
return func(*args, **kwargs)
|
|
20
|
+
return wrapper
|
|
21
|
+
|
|
22
|
+
return decorator
|
syned/util/json_tools.py
ADDED
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Functions to read/write syned objects in json files.
|
|
3
|
+
|
|
4
|
+
Notes
|
|
5
|
+
-----
|
|
6
|
+
The elements that are not explicitely imported in the code that follows, but they MUST be imported
|
|
7
|
+
to define the objects at run time.
|
|
8
|
+
To import more elements, yoy can use the exec_command keyword.
|
|
9
|
+
|
|
10
|
+
"""
|
|
11
|
+
from syned.storage_ring.electron_beam import ElectronBeam
|
|
12
|
+
from syned.storage_ring.magnetic_structures.undulator import Undulator
|
|
13
|
+
from syned.storage_ring.magnetic_structures.wiggler import Wiggler
|
|
14
|
+
from syned.storage_ring.magnetic_structures.bending_magnet import BendingMagnet
|
|
15
|
+
from syned.storage_ring.magnetic_structure import MagneticStructure
|
|
16
|
+
from syned.beamline.optical_elements.ideal_elements.screen import Screen
|
|
17
|
+
from syned.beamline.optical_elements.ideal_elements.ideal_lens import IdealLens
|
|
18
|
+
from syned.beamline.optical_elements.absorbers.filter import Filter
|
|
19
|
+
from syned.beamline.optical_elements.absorbers.slit import Slit
|
|
20
|
+
from syned.beamline.optical_elements.absorbers.beam_stopper import BeamStopper
|
|
21
|
+
from syned.beamline.optical_elements.absorbers.holed_filter import HoledFilter
|
|
22
|
+
from syned.beamline.optical_elements.mirrors.mirror import Mirror
|
|
23
|
+
from syned.beamline.optical_elements.crystals.crystal import Crystal
|
|
24
|
+
from syned.beamline.optical_elements.gratings.grating import Grating
|
|
25
|
+
from syned.beamline.optical_elements.gratings.grating import GratingVLS
|
|
26
|
+
from syned.beamline.optical_elements.gratings.grating import GratingBlaze
|
|
27
|
+
from syned.beamline.optical_elements.gratings.grating import GratingLamellar
|
|
28
|
+
|
|
29
|
+
from syned.beamline.shape import BoundaryShape
|
|
30
|
+
from syned.beamline.shape import Rectangle, Ellipse, Circle
|
|
31
|
+
from syned.beamline.shape import MultiplePatch
|
|
32
|
+
from syned.beamline.shape import DoubleRectangle, DoubleEllipse, DoubleCircle
|
|
33
|
+
|
|
34
|
+
from syned.beamline.shape import SurfaceShape
|
|
35
|
+
from syned.beamline.shape import Conic, Plane, Sphere, SphericalCylinder
|
|
36
|
+
from syned.beamline.shape import Ellipsoid, EllipticalCylinder
|
|
37
|
+
from syned.beamline.shape import Paraboloid, ParabolicCylinder
|
|
38
|
+
from syned.beamline.shape import Hyperboloid, HyperbolicCylinder
|
|
39
|
+
from syned.beamline.shape import Toroid
|
|
40
|
+
|
|
41
|
+
from syned.storage_ring.light_source import LightSource
|
|
42
|
+
from syned.storage_ring.empty_light_source import EmptyLightSource
|
|
43
|
+
|
|
44
|
+
from syned.beamline.beamline import Beamline
|
|
45
|
+
from syned.beamline.beamline_element import BeamlineElement
|
|
46
|
+
from syned.beamline.element_coordinates import ElementCoordinates
|
|
47
|
+
|
|
48
|
+
from collections import OrderedDict
|
|
49
|
+
|
|
50
|
+
try:
|
|
51
|
+
import json_tricks as json # to save numpy arrays
|
|
52
|
+
except:
|
|
53
|
+
import json
|
|
54
|
+
from urllib.request import urlopen
|
|
55
|
+
|
|
56
|
+
def load_from_json_file(file_name, exec_commands=None):
|
|
57
|
+
"""
|
|
58
|
+
Function to load a syned object from a json file.
|
|
59
|
+
|
|
60
|
+
Parameters
|
|
61
|
+
----------
|
|
62
|
+
file_name : str
|
|
63
|
+
The file name.
|
|
64
|
+
exec_commands : str
|
|
65
|
+
The commands (typically import...) to be executed before accesing the file.
|
|
66
|
+
|
|
67
|
+
Returns
|
|
68
|
+
-------
|
|
69
|
+
instance of SynedObject
|
|
70
|
+
|
|
71
|
+
"""
|
|
72
|
+
f = open(file_name)
|
|
73
|
+
text = f.read()
|
|
74
|
+
f.close()
|
|
75
|
+
return load_from_json_text(text, exec_commands=exec_commands)
|
|
76
|
+
|
|
77
|
+
def load_from_json_url(file_url, exec_commands=None):
|
|
78
|
+
"""
|
|
79
|
+
Function to load a syned object from a remote json file.
|
|
80
|
+
|
|
81
|
+
Parameters
|
|
82
|
+
----------
|
|
83
|
+
file_url : str
|
|
84
|
+
The URL with the file name.
|
|
85
|
+
exec_commands : str
|
|
86
|
+
The commands (typically import...) to be executed before accesing the file.
|
|
87
|
+
|
|
88
|
+
Returns
|
|
89
|
+
-------
|
|
90
|
+
instance of SynedObject
|
|
91
|
+
|
|
92
|
+
"""
|
|
93
|
+
u = urlopen(file_url)
|
|
94
|
+
ur = u.read()
|
|
95
|
+
url = ur.decode(encoding='UTF-8')
|
|
96
|
+
return load_from_json_text(url, exec_commands=exec_commands)
|
|
97
|
+
|
|
98
|
+
def load_from_json_text(text, exec_commands=None):
|
|
99
|
+
"""
|
|
100
|
+
Function to load a syned object from a json txt.
|
|
101
|
+
|
|
102
|
+
Parameters
|
|
103
|
+
----------
|
|
104
|
+
text : str
|
|
105
|
+
The text with the corresponding info.
|
|
106
|
+
exec_commands : str
|
|
107
|
+
The commands (typically import...) to be executed before accesing the file.
|
|
108
|
+
|
|
109
|
+
Returns
|
|
110
|
+
-------
|
|
111
|
+
instance of SynedObject
|
|
112
|
+
|
|
113
|
+
"""
|
|
114
|
+
return load_from_json_dictionary_recurrent(json.loads(text), exec_commands=exec_commands)
|
|
115
|
+
|
|
116
|
+
def load_from_json_dictionary_recurrent(jsn, verbose=False, exec_commands=None):
|
|
117
|
+
"""
|
|
118
|
+
Function to convert a dictionary (got from json file) into a syned object.
|
|
119
|
+
|
|
120
|
+
Parameters
|
|
121
|
+
----------
|
|
122
|
+
jsn : dict
|
|
123
|
+
The dictionary with json file information.
|
|
124
|
+
verbose : boolean, optional
|
|
125
|
+
Define or not verbose output.
|
|
126
|
+
exec_commands : str
|
|
127
|
+
The commands (typically import...) to be executed before accesing the file.
|
|
128
|
+
|
|
129
|
+
Returns
|
|
130
|
+
-------
|
|
131
|
+
instance of SynedObject
|
|
132
|
+
|
|
133
|
+
"""
|
|
134
|
+
if isinstance(exec_commands, list):
|
|
135
|
+
for command in exec_commands:
|
|
136
|
+
if verbose: print(">>>>",command)
|
|
137
|
+
exec(command)
|
|
138
|
+
elif isinstance(exec_commands, str):
|
|
139
|
+
if verbose: print(">>>>", exec_commands)
|
|
140
|
+
exec(exec_commands)
|
|
141
|
+
|
|
142
|
+
if verbose: print(jsn.keys())
|
|
143
|
+
if "CLASS_NAME" in jsn.keys():
|
|
144
|
+
if verbose: print("FOUND CLASS NAME: ",jsn["CLASS_NAME"])
|
|
145
|
+
if verbose: print(">>>>eval: ", jsn["CLASS_NAME"])
|
|
146
|
+
try:
|
|
147
|
+
tmp1 = eval(jsn["CLASS_NAME"]+"()")
|
|
148
|
+
except:
|
|
149
|
+
raise RuntimeError("Error evaluating: "+jsn["CLASS_NAME"]+"() ** you could use the exec_command keyword to import it at run time **")
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
if tmp1.keys() is not None:
|
|
153
|
+
NOT_FOUND = "--------NOT-FOUND--------"
|
|
154
|
+
for key in tmp1.keys():
|
|
155
|
+
stored_value = jsn.get(key, NOT_FOUND)
|
|
156
|
+
if str(stored_value) != NOT_FOUND:
|
|
157
|
+
if verbose: print(">>>>processing",key ,type(jsn[key]))
|
|
158
|
+
if isinstance(jsn[key],dict):
|
|
159
|
+
if verbose: print(">>>>>>>>dictionary found, starting recurrency",key ,type(jsn[key]))
|
|
160
|
+
tmp2 = load_from_json_dictionary_recurrent(jsn[key],exec_commands=exec_commands)
|
|
161
|
+
if verbose: print(">>>>2",key,type(tmp2))
|
|
162
|
+
tmp1.set_value_from_key_name(key,tmp2)
|
|
163
|
+
elif isinstance(jsn[key], list):
|
|
164
|
+
if verbose: print(">>>>>>>>LIST found, starting recurrency",key ,type(jsn[key]))
|
|
165
|
+
out_list_of_objects = []
|
|
166
|
+
for element in jsn[key]:
|
|
167
|
+
if isinstance(element, dict):
|
|
168
|
+
if verbose: print(">>>>>>>>LIST found, starting recurrency",key ,type(element))
|
|
169
|
+
tmp3 = load_from_json_dictionary_recurrent(element, exec_commands=exec_commands)
|
|
170
|
+
if verbose: print(">>>>3",type(tmp3))
|
|
171
|
+
out_list_of_objects.append(tmp3)
|
|
172
|
+
else:
|
|
173
|
+
print("***** Failed to load", element)
|
|
174
|
+
if verbose: print("kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",out_list_of_objects)
|
|
175
|
+
tmp1.set_value_from_key_name(key,out_list_of_objects)
|
|
176
|
+
# tmp1.set_value_from_key_name(key,tmp2)
|
|
177
|
+
else:
|
|
178
|
+
if verbose: print(">>>>>>> setting value for key: ",key," to: ",repr(jsn[key]))
|
|
179
|
+
tmp1.set_value_from_key_name(key,jsn[key])
|
|
180
|
+
|
|
181
|
+
return tmp1
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
if __name__ == "__main__":
|
|
185
|
+
|
|
186
|
+
file_url = "http://ftp.esrf.fr/pub/scisoft/syned/lightsources/ESRF_ID01_EBS_PPU35_22.json"
|
|
187
|
+
syned_obj = load_from_json_url(file_url)
|
|
188
|
+
print(syned_obj.info())
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
#
|
|
192
|
+
# file_url = "/home/manuel/Oasys/ALSU-IR-BM.json"
|
|
193
|
+
# syned_obj = load_from_json_file(file_url)
|
|
194
|
+
# print(syned_obj.info())
|
|
195
|
+
|
|
196
|
+
# file_url = "/home/manuel/Oasys/bl.json"
|
|
197
|
+
# syned_obj = load_from_json_file(file_url)
|
|
198
|
+
# print(syned_obj.info())
|
syned/widget/__init__.py
ADDED
|
File without changes
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
|
|
2
|
+
from syned.beamline.beamline import Beamline
|
|
3
|
+
|
|
4
|
+
class WidgetDecorator(object):
|
|
5
|
+
"""
|
|
6
|
+
Definition of a widget decorator (to be used by widget implementations).
|
|
7
|
+
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
@classmethod
|
|
11
|
+
def syned_input_data(cls, multi_input=False):
|
|
12
|
+
"""
|
|
13
|
+
A string to help defining SYNED data in OASYS.
|
|
14
|
+
|
|
15
|
+
Returns
|
|
16
|
+
-------
|
|
17
|
+
list
|
|
18
|
+
[("SynedData", Beamline, "receive_syned_data")]
|
|
19
|
+
|
|
20
|
+
"""
|
|
21
|
+
try: # OASYS2
|
|
22
|
+
import oasys2
|
|
23
|
+
|
|
24
|
+
if not multi_input:
|
|
25
|
+
from orangewidget.widget import Input
|
|
26
|
+
|
|
27
|
+
return Input(name="Syned Data",
|
|
28
|
+
type=Beamline,
|
|
29
|
+
id="SynedData",
|
|
30
|
+
default=True, auto_summary=False)
|
|
31
|
+
else:
|
|
32
|
+
from orangewidget.widget import MultiInput
|
|
33
|
+
|
|
34
|
+
return MultiInput(name="Syned Data",
|
|
35
|
+
type=Beamline,
|
|
36
|
+
id="SynedData",
|
|
37
|
+
default=True, auto_summary=False)
|
|
38
|
+
except:
|
|
39
|
+
return [("SynedData", Beamline, "receive_syned_data")]
|
|
40
|
+
|
|
41
|
+
@classmethod
|
|
42
|
+
def append_syned_input_data(cls, inputs):
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
Parameters
|
|
46
|
+
----------
|
|
47
|
+
inputs
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
"""
|
|
51
|
+
for input in WidgetDecorator.syned_input_data():
|
|
52
|
+
inputs.append(input)
|
|
53
|
+
|
|
54
|
+
def receive_syned_data(self, data):
|
|
55
|
+
"""
|
|
56
|
+
To be implemented in the main object.
|
|
57
|
+
|
|
58
|
+
Parameters
|
|
59
|
+
----------
|
|
60
|
+
data
|
|
61
|
+
|
|
62
|
+
Raises
|
|
63
|
+
------
|
|
64
|
+
NotImplementedError
|
|
65
|
+
|
|
66
|
+
"""
|
|
67
|
+
raise NotImplementedError("Should be implemented")
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: syned
|
|
3
|
+
Version: 1.0.47
|
|
4
|
+
Summary: SYNED (SYNchrotron Elements Dictionary) kernel library
|
|
5
|
+
Home-page: https://github.com/oasys-kit/syned
|
|
6
|
+
Download-URL: https://github.com/oasys-kit/syned
|
|
7
|
+
Author: Manuel Sanchez del Rio, Luca Rebuffi
|
|
8
|
+
Author-email: srio@esrf.eu
|
|
9
|
+
Maintainer: L Rebuffi and M Sanchez del Rio
|
|
10
|
+
Maintainer-email: srio@esrf.eu
|
|
11
|
+
License: GPLv3
|
|
12
|
+
Keywords: dictionary,glossary,synchrotronsimulation
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Environment :: Plugins
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
18
|
+
Classifier: Operating System :: POSIX
|
|
19
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Classifier: Intended Audience :: Education
|
|
23
|
+
Classifier: Intended Audience :: Science/Research
|
|
24
|
+
Classifier: Intended Audience :: Developers
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: setuptools
|
|
27
|
+
Requires-Dist: numpy
|
|
28
|
+
Requires-Dist: scipy
|
|
29
|
+
Dynamic: author
|
|
30
|
+
Dynamic: author-email
|
|
31
|
+
Dynamic: classifier
|
|
32
|
+
Dynamic: description
|
|
33
|
+
Dynamic: download-url
|
|
34
|
+
Dynamic: home-page
|
|
35
|
+
Dynamic: keywords
|
|
36
|
+
Dynamic: license
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
Dynamic: maintainer
|
|
39
|
+
Dynamic: maintainer-email
|
|
40
|
+
Dynamic: requires-dist
|
|
41
|
+
Dynamic: summary
|
|
42
|
+
|
|
43
|
+
=====
|
|
44
|
+
syned
|
|
45
|
+
=====
|
|
46
|
+
|
|
47
|
+
About
|
|
48
|
+
-----
|
|
49
|
+
|
|
50
|
+
SYNchrotron Elements Dictionary.
|
|
51
|
+
|
|
52
|
+
A python library to define the components (sources, mirrors, crystals, etc.) of a synchrotron beamline and their positions.
|
|
53
|
+
They can be read/write to json files.
|
|
54
|
+
It is used by OASYS as a common tool to define sources and optical systems that are then exported to the different add-ons.
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
Documentation
|
|
58
|
+
-------------
|
|
59
|
+
https://syned.readthedocs.io/
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
Source repository
|
|
63
|
+
-----------------
|
|
64
|
+
https://github.com/oasys-kit/syned
|
|
65
|
+
|
|
66
|
+
Quick-installation
|
|
67
|
+
------------------
|
|
68
|
+
|
|
69
|
+
Syned can be installed with Python 3.x:
|
|
70
|
+
|
|
71
|
+
.. code-block:: console
|
|
72
|
+
|
|
73
|
+
$ python -m pip install syned
|
|
74
|
+
|
|
75
|
+
Graphical user interface
|
|
76
|
+
------------------------
|
|
77
|
+
|
|
78
|
+
A graphical interface is available under Oasys: https://github.com/oasys-kit/OASYS-SYNED
|
|
79
|
+
|
|
80
|
+
Reference
|
|
81
|
+
---------
|
|
82
|
+
|
|
83
|
+
Luca Rebuffi, Manuel Sanchez del Rio,
|
|
84
|
+
"Interoperability and complementarity of simulation tools for beamline design in the
|
|
85
|
+
OASYS environment,"
|
|
86
|
+
Proc. SPIE 10388, Advances in Computational Methods for X-Ray Optics IV, 1038808 (23 August 2017);
|
|
87
|
+
https://doi.org/10.1117/12.2274232
|
|
88
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
syned/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
syned/syned_object.py,sha256=p9nGtvxVZkNx5JlDol3c-1n8qXRxtFc01SjXV8HLyOs,8033
|
|
3
|
+
syned/__test/__init__.py,sha256=OQwx0a5g_fzul1uaL4Lsq60GAnadpFUphcVuDbgjCKE,3390
|
|
4
|
+
syned/__test/test.py,sha256=ID7--g20G8vLj9q817Z8eCIoIEI2O_KVBd01ehivOpc,1172
|
|
5
|
+
syned/beamline/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
6
|
+
syned/beamline/beamline.py,sha256=dOuwOj68613zobq-OisfNyccGNaHtbM1i5kwpAtRVgw,4504
|
|
7
|
+
syned/beamline/beamline_element.py,sha256=48TJQH3bps7txipruFmQy7mk9uWEqqJLwinyjtGUWgc,2183
|
|
8
|
+
syned/beamline/element_coordinates.py,sha256=t92vzY7--vPg5duCrSEeUVpcVTHWPXaP6lqSE99w_Zc,5276
|
|
9
|
+
syned/beamline/optical_element.py,sha256=foJuYNYmPFC9FQ0i1Y_AApc3nW-S0Wid_JMP47xTqRw,1143
|
|
10
|
+
syned/beamline/optical_element_with_surface_shape.py,sha256=uNbTPb2AdwvS3e5SRGdKNX8Gs4kJ0t2q9VjE7qTkOog,4267
|
|
11
|
+
syned/beamline/shape.py,sha256=QAhPKxDhj-ciS6AiijFFNWgtDWfhqehqx2IerN3bRXA,87065
|
|
12
|
+
syned/beamline/optical_elements/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
13
|
+
syned/beamline/optical_elements/absorbers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
+
syned/beamline/optical_elements/absorbers/absorber.py,sha256=_8_ynlSVWQv5lzMusL6mYkS56XvHeeN7rd-POR6ChKQ,663
|
|
15
|
+
syned/beamline/optical_elements/absorbers/beam_stopper.py,sha256=pHywuyGAP41oWc3i9MgKaF9Sqgl9-MtRiDAX8zuQoGI,1973
|
|
16
|
+
syned/beamline/optical_elements/absorbers/filter.py,sha256=yEig-uycMKdtxG_11tNAlewNTbv0YIaNMusaldT6JEQ,1715
|
|
17
|
+
syned/beamline/optical_elements/absorbers/holed_filter.py,sha256=y4CcIZ6D2mxTfEx9WtwW5KZNCvM5cUfcIBtbr7U2orM,2050
|
|
18
|
+
syned/beamline/optical_elements/absorbers/slit.py,sha256=eJi23OgDLUdVVFhCnzrE01xuk7WORcXIGB6l_PK0cag,2597
|
|
19
|
+
syned/beamline/optical_elements/crystals/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
20
|
+
syned/beamline/optical_elements/crystals/crystal.py,sha256=Wrjy4ZRn6dBhI19qNOgVN8Jod4yQbU8nSbgtmZL40jw,2925
|
|
21
|
+
syned/beamline/optical_elements/gratings/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
22
|
+
syned/beamline/optical_elements/gratings/grating.py,sha256=sOaidmEgmOAV4R8Jch6JH0ElqoQRQm7Al7HAr_O8IYA,12011
|
|
23
|
+
syned/beamline/optical_elements/ideal_elements/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
24
|
+
syned/beamline/optical_elements/ideal_elements/ideal_element.py,sha256=qmOt67kOSNdAJCZWcf6KIKGNtukTl9WcbQl6PnCrPzs,600
|
|
25
|
+
syned/beamline/optical_elements/ideal_elements/ideal_fzp.py,sha256=wkqxe7sviI1DYomRYxeaC5W0YYOQBFJaqe64q2BlO8M,5067
|
|
26
|
+
syned/beamline/optical_elements/ideal_elements/ideal_lens.py,sha256=X2zHfPbUGOn_LWaz-A-2EpOrog7gCTJ8wu10ZoJPRvY,1654
|
|
27
|
+
syned/beamline/optical_elements/ideal_elements/screen.py,sha256=NpVJZsA-u-T5OgUWxTYebHdoNJb0oKh2ENRhv8WpJ_A,408
|
|
28
|
+
syned/beamline/optical_elements/mirrors/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
29
|
+
syned/beamline/optical_elements/mirrors/mirror.py,sha256=RAFUzYlj09rPMPvFVlZnMTeQMogMO1aHRvCJIddiFqg,1722
|
|
30
|
+
syned/beamline/optical_elements/multilayers/__init__.py,sha256=OQwx0a5g_fzul1uaL4Lsq60GAnadpFUphcVuDbgjCKE,3390
|
|
31
|
+
syned/beamline/optical_elements/multilayers/multilayer.py,sha256=AweNp22N1Jfthd7-1KDBhBtlRqqmRGi1qu7Yed0f-pM,2000
|
|
32
|
+
syned/beamline/optical_elements/refractors/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
33
|
+
syned/beamline/optical_elements/refractors/crl.py,sha256=gew_bUP8OOwjYwxUOh73vj9wctE23RQNzXYxsZA_zg0,3029
|
|
34
|
+
syned/beamline/optical_elements/refractors/interface.py,sha256=T_ZXkN3YO8fjFE9I4jN9fMHOp0qmlFotldklUW8mvCQ,2337
|
|
35
|
+
syned/beamline/optical_elements/refractors/lens.py,sha256=xQUiYl3t3JwrZnNkTFDsnq5-FejaNPvCri_qlwCWSA8,3310
|
|
36
|
+
syned/storage_ring/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
37
|
+
syned/storage_ring/electron_beam.py,sha256=O0_tuulZcpT6_Sf4upMbbeJOVHyewxdqvs6uHlQ8JP4,28476
|
|
38
|
+
syned/storage_ring/empty_light_source.py,sha256=W1YHH4HMzpMwELJ4TljL4xf0OXHcsNHgHyLYGSFMeZw,943
|
|
39
|
+
syned/storage_ring/light_source.py,sha256=F-Alw_K3CxZ91N8d8KXwufDok4Z5vB6fjYvgdV4Whx0,2492
|
|
40
|
+
syned/storage_ring/magnetic_structure.py,sha256=M9CsF799HEuL8oOyGyGtuFAUh1_7hXfsUoLZmtSL6t0,241
|
|
41
|
+
syned/storage_ring/magnetic_structures/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
42
|
+
syned/storage_ring/magnetic_structures/bending_magnet.py,sha256=krg5iW1KtTmPXbx75eyHGGByBrMNssxp3jgH1JrAKRU,10493
|
|
43
|
+
syned/storage_ring/magnetic_structures/insertion_device.py,sha256=XhXN7pX3L0xQly5SpEEi6_nCQ2vDcxFp_KQJZCbwpfE,4246
|
|
44
|
+
syned/storage_ring/magnetic_structures/undulator.py,sha256=NkcoaRcCNJMasXUdiA_NZldLLsNynntb-12FUssxzes,13497
|
|
45
|
+
syned/storage_ring/magnetic_structures/wiggler.py,sha256=2RtcKSzhLDksWLSk3D97yk_q3C-ZFr60_GJGBCzwnmQ,1053
|
|
46
|
+
syned/util/__init__.py,sha256=JmVXq2RSaCjSlvdVrXYfPhCVwJhZjvFjUqBYE8oIni8,742
|
|
47
|
+
syned/util/json_tools.py,sha256=vC0dQHUJnz3m1PUFK-oawHs7l-IP5WYNbVKv_gOjfNk,7615
|
|
48
|
+
syned/widget/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
+
syned/widget/widget_decorator.py,sha256=hfjwWmK9HZe7MtwIOAHT7rUgMYN6VmHqHB2zfVVRY4E,1658
|
|
50
|
+
syned-1.0.47.dist-info/licenses/LICENSE,sha256=C5iV2YY_hn_fGUPOveNdbY6tczl4oZCgfy5E8UdLQjk,1094
|
|
51
|
+
syned-1.0.47.dist-info/METADATA,sha256=YZtfbepQlzDC7-uqK7UlIrLiicJV0CY-8uaD1sC1-3Q,2468
|
|
52
|
+
syned-1.0.47.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
53
|
+
syned-1.0.47.dist-info/top_level.txt,sha256=PMrZrTESxk_mUTBz0gyGBlYvM_3BesYCHB1MUgjSlVE,6
|
|
54
|
+
syned-1.0.47.dist-info/RECORD,,
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
Copyright (c) 2017-2019 The Oasys Organization
|
|
3
|
+
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
5
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
6
|
+
the Software without restriction, including without limitation the rights to
|
|
7
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
8
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
9
|
+
subject to the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all
|
|
12
|
+
copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
16
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
17
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
18
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
19
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
20
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
syned
|