
This change over to DDLm does not affect the meaning of datanames used in CIF data files. Please note that most of these dictionaries are in the process of being updated to the new DDLm dictionary language standard. The following dictionaries are maintained by COMCIFS through interactions with the the relevant communities. Descriptors for diffraction techniques and small-molecule, inorganic and other small-unit-cell structures A machine-readable register of CIF dictionaries maintained by the IUCr is available.

They include dictionaries that are maintained by COMCIFS, as well as dictionaries maintained by other trusted organisations. The CIF dictionaries listed below belong to a single namespace. Chester: International Union of Crystallography. Definition and exchange of crystallographic data, 1st online ed., ch.

International Tables for Crystallography, Vol. General considerations when defining a CIF data item. A candidate data-name definition should fulfil the following conditions: (i) describe a specific and well defined concept: precision of definition is essential for an effective interchange mechanism (ii) have appropriate granularity: data names can define a very small piece of information (a standard uncertainty on a particular physical measurable) or a very large amount (the text of a scientific paper) (iii) have well defined relationships with other data items (through its assigned category membership and parent/child links) (iv) constraints on the data type and permissible values should be provided where applicable (v) the name chosen should be globally unique this is achieved through monitoring of names in public dictionaries by a regulatory committee (COMCIFS) and by registering of prefix strings for exclusive use in local dictionaries. New entries may be devised for public or private dictionaries. Dictionary entries are constructed in a structured machine-readable manner that facilitates validation and structuring of data. CIF dictionaries provide a formal taxonomy of crystallographic terms and ideas. > from dictionaries import Dict > d = Dict ( copy = True, name = 'example' ) > d. In order to be able to access dictionary methods we have to provide priority for the dictionaryĪttributes over the item keys. “Classic” attribute-style dict item access (as people know it)Īs mentioned previously the attributes of the dictionary instance (like copy) conflict with the keys of More ways isn’t pythonic but you have to experiment to find out what works and what doesn’t…) Later I mightĭrop one of them. Library provides both the usual way (discussed here and there) and also my method.


To aid this problem I’ve recently come up with a different kind of attribute-style access implementation. Obvious issue is that the attributes of the dictionary are in conflict with your item keys.įor this reason attribute-style access is a little bit “stinky” (especially when you try to implement it) and The attribute-style dictionary item access can be really convenient in many cases but it has issues.
Dictionaries how to#
Their interface is as standard as possible so I assume you know how to deal with them.
Dictionaries download#
Immutable/hashable versions of the previous two dictionaries:Ī wrapper that can be used to create a readonly view of another dictionary instance:Īlternatively you can download the distribution from the following places:Īfter installing the library you can import the dictionary classes the following way: from dictionaries import Dict, OrderedDict, FrozenDict, FrozenOrderedDict, ReadonlyDictProxy
Dictionaries update#
Standard dictionaries with attribute-style item access and a smarter copy() method with update parameters: “Classic” attribute-style dict item access (as people know it)Īttribute-style item access through the items attribute of the dictionaryĪttribute-style item access is provided by all dictionary classes of this library.
