Passed
Push — master ( c026c2...632976 )
by Daniel
06:58
created

regenerate_data   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 28
dl 0
loc 44
rs 10
c 0
b 0
f 0

3 Functions

Rating   Name   Duplication   Size   Complexity  
A regen() 0 13 3
A regenerate_from_cifs() 0 7 2
A regenerate_CSD_families() 0 6 1
1
import os
2
import numpy as np
3
import amd
4
import pickle
5
6
7
root = r'tests/data'
8
9
def regen(name, generator):
10
11
    data = []
12
    for s in generator:
13
        pdd = amd.PDD(s, 100)
14
        data.append({'PeriodicSet': s, 'AMD100': amd.PDD_to_AMD(pdd), 'PDD100': pdd})
15
    
16
    with open(os.path.join(root, f'{name}.pkl'), 'wb') as f:
17
        pickle.dump(data, f)
18
19
    pdds = [d['PDD100'] for d in data]
20
    cdm = amd.PDD_pdist(pdds)
21
    np.savez_compressed(os.path.join(root, rf'{name}_cdm.npz'), cdm=cdm)
22
23
24
def regenerate_from_cifs():
25
26
    filenames = ['cubic', 'T2_experimental']
27
28
    for name in filenames:
29
        path = os.path.join(root, name)
30
        regen(name, amd.CifReader(path + '.cif', show_warnings=False))
31
32
33
def regenerate_CSD_families():
34
35
    name = 'CSD_families'
36
    csd_families = ['DEBXIT', 'GLYCIN', 'HXACAN', 'ACSALA']
37
    generator = amd.CSDReader(csd_families, families=True, show_warnings=False)
38
    regen(name, generator)
39
40
41
if __name__ == '__main__':
42
    # pass
43
    regenerate_CSD_families()