:py:mod:`wfexs_backend.utils.misc`
==================================

.. py:module:: wfexs_backend.utils.misc

.. autodoc2-docstring:: wfexs_backend.utils.misc
   :allowtitles:

Module Contents
---------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`DatetimeEncoder <wfexs_backend.utils.misc.DatetimeEncoder>`
     -

Functions
~~~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`translate_glob_args <wfexs_backend.utils.misc.translate_glob_args>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.translate_glob_args
          :summary:
   * - :py:obj:`datetimeFromISOFormat <wfexs_backend.utils.misc.datetimeFromISOFormat>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.datetimeFromISOFormat
          :summary:
   * - :py:obj:`_parse_isoformat_date <wfexs_backend.utils.misc._parse_isoformat_date>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc._parse_isoformat_date
          :summary:
   * - :py:obj:`_parse_isoformat_time <wfexs_backend.utils.misc._parse_isoformat_time>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc._parse_isoformat_time
          :summary:
   * - :py:obj:`_parse_hh_mm_ss_ff <wfexs_backend.utils.misc._parse_hh_mm_ss_ff>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc._parse_hh_mm_ss_ff
          :summary:
   * - :py:obj:`load_with_datetime <wfexs_backend.utils.misc.load_with_datetime>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.load_with_datetime
          :summary:
   * - :py:obj:`jsonFilterDecodeFromStream <wfexs_backend.utils.misc.jsonFilterDecodeFromStream>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.jsonFilterDecodeFromStream
          :summary:
   * - :py:obj:`config_validate <wfexs_backend.utils.misc.config_validate>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.config_validate
          :summary:
   * - :py:obj:`iter_namespace <wfexs_backend.utils.misc.iter_namespace>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.iter_namespace
          :summary:
   * - :py:obj:`get_opener_with_auth <wfexs_backend.utils.misc.get_opener_with_auth>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.get_opener_with_auth
          :summary:
   * - :py:obj:`lazy_import <wfexs_backend.utils.misc.lazy_import>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.lazy_import
          :summary:
   * - :py:obj:`is_uri <wfexs_backend.utils.misc.is_uri>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.is_uri
          :summary:
   * - :py:obj:`get_maximum_file_descriptors <wfexs_backend.utils.misc.get_maximum_file_descriptors>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.get_maximum_file_descriptors
          :summary:

Data
~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`SCHEMAS_REL_DIR <wfexs_backend.utils.misc.SCHEMAS_REL_DIR>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.SCHEMAS_REL_DIR
          :summary:
   * - :py:obj:`MAXFD <wfexs_backend.utils.misc.MAXFD>`
     - .. autodoc2-docstring:: wfexs_backend.utils.misc.MAXFD
          :summary:

API
~~~

.. py:function:: translate_glob_args(args: Union[Iterator[str], Sequence[str]]) -> Sequence[Pattern[str]]
   :canonical: wfexs_backend.utils.misc.translate_glob_args

   .. autodoc2-docstring:: wfexs_backend.utils.misc.translate_glob_args

.. py:class:: DatetimeEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)
   :canonical: wfexs_backend.utils.misc.DatetimeEncoder

   Bases: :py:obj:`json.JSONEncoder`

   .. py:method:: default(obj: typing.Any) -> typing.Any
      :canonical: wfexs_backend.utils.misc.DatetimeEncoder.default

.. py:function:: datetimeFromISOFormat(date_string: str) -> datetime.datetime
   :canonical: wfexs_backend.utils.misc.datetimeFromISOFormat

   .. autodoc2-docstring:: wfexs_backend.utils.misc.datetimeFromISOFormat

.. py:function:: _parse_isoformat_date(dtstr: str) -> Tuple[int, int, int]
   :canonical: wfexs_backend.utils.misc._parse_isoformat_date

   .. autodoc2-docstring:: wfexs_backend.utils.misc._parse_isoformat_date

.. py:function:: _parse_isoformat_time(tstr: str) -> Tuple[Tuple[int, int, int, int], Optional[datetime.timezone]]
   :canonical: wfexs_backend.utils.misc._parse_isoformat_time

   .. autodoc2-docstring:: wfexs_backend.utils.misc._parse_isoformat_time

.. py:function:: _parse_hh_mm_ss_ff(tstr: str) -> Tuple[int, int, int, int]
   :canonical: wfexs_backend.utils.misc._parse_hh_mm_ss_ff

   .. autodoc2-docstring:: wfexs_backend.utils.misc._parse_hh_mm_ss_ff

.. py:function:: load_with_datetime(pairs: Sequence[Tuple[str, Any]], tz: Optional[datetime.tzinfo] = None) -> Mapping[str, Any]
   :canonical: wfexs_backend.utils.misc.load_with_datetime

   .. autodoc2-docstring:: wfexs_backend.utils.misc.load_with_datetime

.. py:function:: jsonFilterDecodeFromStream(stream: typing.TextIO, tz: Optional[datetime.tzinfo] = None) -> typing.Any
   :canonical: wfexs_backend.utils.misc.jsonFilterDecodeFromStream

   .. autodoc2-docstring:: wfexs_backend.utils.misc.jsonFilterDecodeFromStream

.. py:exception:: ConfigValidationException()
   :canonical: wfexs_backend.utils.misc.ConfigValidationException

   Bases: :py:obj:`wfexs_backend.common.AbstractWfExSException`

.. py:data:: SCHEMAS_REL_DIR
   :canonical: wfexs_backend.utils.misc.SCHEMAS_REL_DIR
   :value: 'schemas'

   .. autodoc2-docstring:: wfexs_backend.utils.misc.SCHEMAS_REL_DIR

.. py:function:: config_validate(configToValidate: Union[Mapping[str, Any], Sequence[Mapping[str, Any]]], relSchemaFile: wfexs_backend.common.RelPath) -> Sequence[ValidationError]
   :canonical: wfexs_backend.utils.misc.config_validate

   .. autodoc2-docstring:: wfexs_backend.utils.misc.config_validate

.. py:function:: iter_namespace(ns_pkg: types.ModuleType) -> Iterator[pkgutil.ModuleInfo]
   :canonical: wfexs_backend.utils.misc.iter_namespace

   .. autodoc2-docstring:: wfexs_backend.utils.misc.iter_namespace

.. py:function:: get_opener_with_auth(top_level_url: str, username: str, password: str) -> urllib.request.OpenerDirector
   :canonical: wfexs_backend.utils.misc.get_opener_with_auth

   .. autodoc2-docstring:: wfexs_backend.utils.misc.get_opener_with_auth

.. py:function:: lazy_import(name: str) -> types.ModuleType
   :canonical: wfexs_backend.utils.misc.lazy_import

   .. autodoc2-docstring:: wfexs_backend.utils.misc.lazy_import

.. py:function:: is_uri(the_uri: str) -> bool
   :canonical: wfexs_backend.utils.misc.is_uri

   .. autodoc2-docstring:: wfexs_backend.utils.misc.is_uri

.. py:data:: MAXFD
   :canonical: wfexs_backend.utils.misc.MAXFD
   :value: 2048

   .. autodoc2-docstring:: wfexs_backend.utils.misc.MAXFD

.. py:function:: get_maximum_file_descriptors() -> int
   :canonical: wfexs_backend.utils.misc.get_maximum_file_descriptors

   .. autodoc2-docstring:: wfexs_backend.utils.misc.get_maximum_file_descriptors
