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 | import glob |
---|
27 | |
---|
28 | from .generate import EXTERNAL_DIR, DATA_PATH |
---|
29 | |
---|
30 | data_files = {} |
---|
31 | def add_patterns(path, patterns): |
---|
32 | data_files[joinpath(EXTERNAL_DIR, *path)] \ |
---|
33 | = [joinpath(DATA_PATH, *(path+[p])) for p in patterns] |
---|
34 | add_patterns([], ['*.c', '*.cl', 'convert.json']) |
---|
35 | add_patterns(['models'], ['*.c']) |
---|
36 | add_patterns(['models', 'lib'], ['*.c']) |
---|
37 | |
---|
38 | # Fish out full paths for all files. |
---|
39 | return_list=[] |
---|
40 | for path, patterns in data_files.items(): |
---|
41 | files_data=[] |
---|
42 | for pattern in patterns: |
---|
43 | files_data.extend(glob.glob(pattern)) |
---|
44 | return_list.append([path, files_data]) |
---|
45 | return return_list |
---|
46 | |
---|
47 | |
---|