File: load.py

package info (click to toggle)
spglib 2.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 14,180 kB
  • sloc: ansic: 125,066; python: 7,717; cpp: 2,197; f90: 2,143; ruby: 792; makefile: 22; sh: 18
file content (48 lines) | stat: -rw-r--r-- 1,308 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from pathlib import Path
import csv

from ruamel.yaml import YAML


def get_msg_numbers():
    all_datum = []
    with open(Path(__file__).resolve().parent / "msg_numbers.csv", 'r') as f:
        reader = csv.reader(f, delimiter=',')
        next(reader)  # skip header
        for row in reader:
            if len(row) == 0:
                break

            litvin_number, bns_number, og_number, uni_number = row
            all_datum.append((
                int(litvin_number),
                bns_number,
                og_number,
                int(uni_number),
            ))

    assert len(all_datum) == 1651
    return all_datum


def get_spg_table():
    all_datum = {}
    with open(Path("../spg.csv"), 'r') as f:
        reader = csv.reader(f, delimiter=',')
        for row in reader:
            hall_number, choice, number, hall_symbol = int(row[0]), row[2], int(row[4]), row[6]
            all_datum[hall_number] = {
                'choice': choice,
                'number': number,
                'hall_symbol': hall_symbol,
            }

    assert len(all_datum) == 530
    return all_datum


def get_msg_table():
    # Load MSG for ITA standard settings
    with open(Path("./magnetic_hall_symbols.yaml"), 'r') as f:
        all_datum = dict(YAML().load(f))
    return all_datum