Yaml configuration

pyCIF can be entirely set up with a Yaml file such as in the example below. The Yaml configuration file structure is used to define, initialize and run the building blocks of pyCIF: Plugins.

The basic idea of Yaml syntax is that you can easily define a tree structure using ‘:’ and indentation, which would be automatically interpreted by Python.

Please note that Yaml is flexible with the keys it accepts for booleans. The following keys will be automatically accepted as True or False:

y / Y / yes / Yes / YES / n / N / no / No / NO / true / True / TRUE / false / False / FALSE / on / On / ON / off / Off / OFF

For instance, the following Yaml syntax:

root:
   branch1: grub
   branch2: [0, 1]
   branch3:
      subbranch0: some text
      subbranch1: 2004-01-01
      subbranch2: T

will be interpreted into the following Python dictionary:

{
'root':
   'branch1': 'grub',
   'branch2': [0,1],
   'branch3':
      'subbranch0': 'some text',
      'subbranch1': datetime.datetime(2004, 01, 01),
      'subbranch2': True
}

which is itself loaded into a pyCIF plugin automatically integrated with other plugins and dependencies.

Further examples about the Yaml syntax can be found here.

The initialized dictionary is then loaded as Plugins for later use by pyCIF.