sasdata.dataloader.readers.cansas_reader module

class sasdata.dataloader.readers.cansas_reader.Reader(xml=None, schema=None)

Bases: XMLreader

allow_all = True
base_ns = '{cansas1d/1.1}'
cansas_defaults = None
cansas_version = '1.1'
current_data1d = None
data = None
errors = {}
ext = ['.xml', '.svs']
frm = ''
get_file_contents()

Reader specific class to access the contents of the file All reader classes that inherit from FileReader must implement

invalid = True
is_cansas(ext: str | None = 'xml')

Checks to see if the XML file is a CanSAS file

Parameters:

ext – The file extension of the data file

Raises:

FileContentsException – Raised if XML file isn’t valid CanSAS

load_file_and_schema(xml_file: str, schema_path: str | None = '') bool
logging = None
names = None
ns_list = None
process_1d_data_object(tagname: str, data_point: float, unit: str, attr: dict)

Assign a 1D data variable to the appropriate plottable value :param tagname: Name of the XML tag :param data_point: Data to be assigned :param unit: Unit of the data_point :param attr: Extra attributes :return: None

process_2d_data_object(tagname: str, data_point: float, unit: str)

Assign a 2D data variable to the appropriate plottable value :param tagname: Name of the XML tag :param data_point: Data to be assigned :param unit: Unit of the data_point :return: None

process_collimation_data_object(tagname: str, data_point: float, unit: str)

Assign a collimation variable to the appropriate Collimation value :param tagname: Name of the XML tag :param data_point: Data to be assigned :param unit: Unit of the data_point :return: None

process_detector_data_object(tagname: str, data_point: float, unit: str)

Assign a detector variable to the appropriate Detector value :param tagname: Name of the XML tag :param data_point: Data to be assigned :param unit: Unit of the data_point :return: None

process_meta_data(tagname: str, data_point: float)

Any unrecognized tag should still be loaded - add to meta_data :param tagname: Name of the XML tag :param data_point: Data to be assigned :return: None

process_process_data_object(tagname: str, data_point: float, attr: dict)

Assign a process variable to the appropriate Process value :param tagname: Name of the XML tag :param data_point: Data to be assigned :param attr: XML attributes :return: None

process_sample_data_object(tagname: str, data_point: float, unit: str)

Assign a sample data variable to the appropriate Sample value :param tagname: Name of the XML tag :param data_point: Data to be assigned :param unit: Unit of the data_point :return: None

process_source_data_object(tagname: str, data_point: float, unit: str)

Assign a source variable to the appropriate Source value :param tagname: Name of the XML tag :param data_point: Data to be assigned :param unit: Unit of the data_point :return: None

process_trans_spec_data_object(tagname: str, data_point: float, unit: str)

Assign a transmission spectrum data variable to the appropriate datainfo value :param tagname: Name of the XML tag :param data_point: Data to be assigned :param unit: Unit of the data_point :return: None

reset_state()

Resets the class state to a base case when loading a new data file so previous data files do not appear a second time

set_default_schema()
type = ['XML files (*.xml)|*.xml', 'SasView Save Files (*.svs)|*.svs']
type_name = 'canSAS'
write(filename: str, datainfo: Data1D | Data2D)

Write the content of a Data1D as a CanSAS XML file

Parameters:
  • filename – name of the file to write

  • datainfo – Data1D object

write_node(parent: ElementTree, name: str, value: float | str, attr: dict | None = None) bool
Parameters:
  • doc – document DOM

  • parent – parent node

  • name – tag of the element

  • value – value of the child text node

  • attr – attribute dictionary

Returns:

True if something was appended, otherwise False

sasdata.dataloader.readers.cansas_reader.get_content(location, node)

Get the first instance of the content of a xpath location.

Parameters:
  • location – xpath location

  • node – node to start at

Returns:

Element, or None

sasdata.dataloader.readers.cansas_reader.getattrchain(obj, chain, default=None)

Like getattr, but the attr may contain multiple parts separated by ‘.’

sasdata.dataloader.readers.cansas_reader.setattrchain(obj, chain, value)

Like setattr, but the attr may contain multiple parts separated by ‘.’

sasdata.dataloader.readers.cansas_reader.write_node(doc, parent, name, value, attr=None)
Parameters:
  • doc – document DOM

  • parent – parent node

  • name – tag of the element

  • value – value of the child text node

  • attr – attribute dictionary

Returns:

True if something was appended, otherwise False