httk.io.cif.cif_parser

Classes

CifMeta

Metadata returned by parse_cif_float() when meta=True.

Functions

parse_cif_float(…)

Parse a CIF numeric field.

parse_cif_int(→ int)

Convert a CIF numeric token (e.g., '123(4)', '3E2', '1.0E3') to an int using the central value.

parse_linear_expr(expr[, use_fractions])

expr: e.g. 'x-y', '-z+1/2', 'x', 'y', 'z-1', 'x-2y', '3x+1/2'

parse_xyz_op(op[, use_fractions])

op: e.g. 'x-y,x,-z+1/2'

xyz_symops_to_matrix(symops_xyz[, use_fractions])

parse_asu_cell(cifblock)

parse_structural_modulation(cifblock)

Extract structural superspace modulation information from a standard CIF.

cifblock_to_asu(cifblock, *[, return_single])

asus_from_cif_file(fs)

single_asu_from_cif_file(fs)

Module Contents

class httk.io.cif.cif_parser.CifMeta[source]

Bases: TypedDict

Metadata returned by parse_cif_float() when meta=True.

esd: float | None[source]
resolution: float[source]
httk.io.cif.cif_parser.parse_cif_float(token: str, *, meta: Literal[False] = ..., pragmatic: bool = ...) float | None[source]
httk.io.cif.cif_parser.parse_cif_float(token: str, *, meta: Literal[True], pragmatic: bool = ...) tuple[float | None, CifMeta]

Parse a CIF numeric field.

If meta=False:

return float_value or None.

If meta=True:

return (float_value_or_None, {‘esd’: esd_or_None, ‘resolution’: float_resolution}).

httk.io.cif.cif_parser.parse_cif_int(token: str, *, strict: bool = True, allow_round: bool = False) int[source]

Convert a CIF numeric token (e.g., ‘123(4)’, ‘3E2’, ‘1.0E3’) to an int using the central value. - strict=True: require the value to be exactly integral; otherwise raise ValueError. - allow_round=True (only if strict=False): round half-even to the nearest int.

httk.io.cif.cif_parser.parse_linear_expr(expr, use_fractions=False)[source]

expr: e.g. ‘x-y’, ‘-z+1/2’, ‘x’, ‘y’, ‘z-1’, ‘x-2y’, ‘3x+1/2’ Returns (row, const) where row is [ax, ay, az] (integers or Fractions), and const is a float or Fraction depending on use_fractions.

httk.io.cif.cif_parser.parse_xyz_op(op, use_fractions=False)[source]

op: e.g. ‘x-y,x,-z+1/2’ Returns (R, t) where R is 3x3 (list of rows), t is length-3 float list

httk.io.cif.cif_parser.xyz_symops_to_matrix(symops_xyz, use_fractions=False)[source]
httk.io.cif.cif_parser.parse_asu_cell(cifblock)[source]
httk.io.cif.cif_parser.parse_structural_modulation(cifblock)[source]

Extract structural superspace modulation information from a standard CIF.

Returns a tuple (structural_q, mod_dim, has_struct_mod, struct_mod_atoms) where structural_q is a list of q-vectors or None, mod_dim is the modulation dimension (0 if absent), has_struct_mod is a bool, and struct_mod_atoms is a sorted list of atom-site labels.

httk.io.cif.cif_parser.cifblock_to_asu(cifblock, *, return_single=False)[source]
httk.io.cif.cif_parser.asus_from_cif_file(fs)[source]
httk.io.cif.cif_parser.single_asu_from_cif_file(fs)[source]