.. _jgdv.structs.dkey.keys: ====================== jgdv.structs.dkey.keys ====================== .. py:module:: jgdv.structs.dkey.keys Classes ------- .. autoapisummary:: jgdv.structs.dkey.keys.IndirectDKey jgdv.structs.dkey.keys.MultiDKey jgdv.structs.dkey.keys.NonDKey jgdv.structs.dkey.keys.SingleDKey Module Contents =============== .. _jgdv.structs.dkey.keys.IndirectDKey: .. py:class:: IndirectDKey(*, multi = False, re_mark = None, **kwargs) Bases: :py:obj:`jgdv.structs.dkey.dkey.DKey` A Key for getting a redirected key. eg: RedirectionDKey(key) -> SingleDKey(value) re_mark : .. py:method:: _indirect() -> .. py:method:: exp_generate_chains_h(root, factory, opts) -> Lookup the indirect version, the direct version, then use the fallback .. py:attribute:: multi_redir :value: False .. py:attribute:: re_mark :value: None .. _jgdv.structs.dkey.keys.MultiDKey: .. py:class:: MultiDKey(*args, **kwargs) Bases: :py:obj:`jgdv.structs.dkey.dkey.DKey` Multi keys allow 1+ explicit subkeys. They have additional fields: _subkeys : parsed information about explicit subkeys .. py:method:: _multi() -> .. py:method:: exp_flatten_h(vals, factory, opts) -> Flatten the multi-key expansion into a single string, by using the anon-format str .. py:method:: exp_generate_chains_h(root, factory, opts) -> Lift subkeys to expansion instructions .. py:method:: keys() -> .. py:attribute:: anon :type: str .. _jgdv.structs.dkey.keys.NonDKey: .. py:class:: NonDKey(*args, **kwargs) Bases: :py:obj:`jgdv.structs.dkey.dkey.DKey` Just a string, not a key. :: But this lets you call no-ops for key specific methods. It can coerce itself though .. py:method:: _nonkey() -> .. py:method:: expand(*args, **kwargs) -> A Non-key just needs to be coerced into the correct str format .. _jgdv.structs.dkey.keys.SingleDKey: .. py:class:: SingleDKey(*args, **kwargs) Bases: :py:obj:`jgdv.structs.dkey.dkey.DKey` A Single key with no extras. ie: {x}. not {x}{y}, or {x}.blah. .. py:method:: _post_process_h(data = None) ->