1 | """ |
---|
2 | sasmodels |
---|
3 | ========= |
---|
4 | |
---|
5 | **sasmodels** is a package containing models for small angle neutron and xray |
---|
6 | scattering. Models supported are the one dimensional circular average and |
---|
7 | two dimensional oriented patterns. As well as the form factor calculations |
---|
8 | for the individual shapes **sasmodels** also provides automatic shape |
---|
9 | polydispersity, angular dispersion and resolution convolution. SESANS |
---|
10 | patterns can be computed for any model. |
---|
11 | |
---|
12 | Models can be written in python or in C. C models can run on the GPU if |
---|
13 | OpenCL drivers are available. See :mod:`generate` for details on |
---|
14 | defining new models. |
---|
15 | """ |
---|
16 | __version__ = "0.9" |
---|
17 | |
---|
18 | def data_files(): |
---|
19 | """ |
---|
20 | Return the data files to be installed with the package. |
---|
21 | |
---|
22 | The format is a list of (directory, [files...]) pairs which can be |
---|
23 | used directly in setup(...,data_files=...) for setup.py. |
---|
24 | """ |
---|
25 | from os.path import join as joinpath |
---|
26 | from .generate import SIBLING_DIR, DATA_PATH |
---|
27 | data_files = {} |
---|
28 | def add_patterns(path, patterns): |
---|
29 | data_files[joinpath(SIBLING_DIR, *path)] \ |
---|
30 | = [joinpath(DATA_PATH, *(path+[p])) for p in patterns] |
---|
31 | add_patterns([], ['*.c', '*.cl', 'convert.json']) |
---|
32 | add_patterns(['models'], ['*.c']) |
---|
33 | add_patterns(['models', 'lib'], ['*.c']) |
---|
34 | |
---|
35 | # Fish out full paths for all files. |
---|
36 | import glob |
---|
37 | return_list=[] |
---|
38 | for key, values in data_files.iteritems(): |
---|
39 | files_data=[] |
---|
40 | for value in values: |
---|
41 | files_data += [file for file in glob.glob(value)] |
---|
42 | return_list.append([key, files_data]) |
---|
43 | return return_list |
---|
44 | |
---|
45 | |
---|