Source code for pml.load_csv
import os
import csv
from pml import lattice, element, device
[docs]def load(directory, mode, control_system):
'''
Load a lattice object from a directory.
Parameters:
directory: directory where to load the files from
mode:the mode to be loaded
control_system: control system to be used
'''
lat = lattice.Lattice(mode, control_system)
with open(os.path.join(directory, mode, 'elements.csv')) as elements:
csv_reader = csv.DictReader(elements)
for item in csv_reader:
e = element.Element(item['name'], float(item['length']),
item['type'], None)
e.add_to_family(item['type'])
lat.add_element(e)
with open(os.path.join(directory, mode, 'devices.csv')) as devices:
csv_reader = csv.DictReader(devices)
for item in csv_reader:
d = device.Device(None, item['get_pv'], item['set_pv'])
lat[int(item['id']) - 1].add_device(item['field'], d, None)
with open(os.path.join(directory, mode, 'families.csv')) as families:
csv_reader = csv.DictReader(families)
for item in csv_reader:
lat[int(item['id']) - 1].add_to_family(item['family'])
return lat