httk.atomistic.symmetry_entries =============================== .. py:module:: httk.atomistic.symmetry_entries .. autoapi-nested-parse:: The symmetry properties an asymmetric-unit structure can serve over OPTIMADE. Two families, kept apart on purpose: **Standard OPTIMADE properties.** ``space_group_it_number``, the three space-group symbols, ``space_group_symmetry_operations_xyz``, ``wyckoff_positions``, ``fractional_site_positions``, and ``site_coordinate_span`` are all part of the OPTIMADE standard and are already described in the vendored ``optimade_defs/structures.json``. They were simply never served. **Provider-specific properties**, for the things OPTIMADE does not standardise — chiefly *which setting* a structure is written in, and the change of basis to the standard one. Rather than inventing descriptions, these reuse the published property definitions from `schemas.httk.org `_, vendored verbatim in ``httk_defs/``. The served *name* carries the ``_httk_`` prefix that OPTIMADE requires of a database-specific property, but the definition keeps its own ``$id``, so a client following the link reaches the authoritative published schema instead of a local paraphrase. Everything here serves ``null`` for a plain :class:`~httk.atomistic.Structure`, which carries no symmetry — with the sole exception of ``fractional_site_positions``, which is just the reduced coordinates and is always available. Attributes ---------- .. autoapisummary:: httk.atomistic.symmetry_entries.SYMMETRY_PROPERTY_KEYS httk.atomistic.symmetry_entries.SETTING_PROPERTY_KEYS Functions --------- .. autoapisummary:: httk.atomistic.symmetry_entries.setting_definitions httk.atomistic.symmetry_entries.symmetry_properties Module Contents --------------- .. py:data:: SYMMETRY_PROPERTY_KEYS :type: tuple[str, Ellipsis] :value: ('space_group_it_number', 'space_group_symbol_hall', 'space_group_symbol_hermann_mauguin',... .. py:data:: SETTING_PROPERTY_KEYS :type: dict[str, str] .. py:function:: setting_definitions() -> dict[str, httk.core.PropertyDefinition] The vendored setting definitions, keyed by their served name. Loaded verbatim, so each keeps the ``$id`` under ``schemas.httk.org`` that makes it resolvable. Cached, since the documents are immutable. .. py:function:: symmetry_properties(structure: Any) -> dict[str, Any] Every symmetry property for one structure, standard and provider-specific alike. A structure that is not an :class:`~httk.atomistic.ASUStructure` carries no symmetry, so everything but ``fractional_site_positions`` serves null. That is the honest answer: inferring a space group here would mean running a symmetry search behind the caller's back, with a tolerance nobody chose, on every record served.