:py:mod:`src.wic.model`
=======================

.. py:module:: src.wic.model


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

Classes
~~~~~~~

.. autoapisummary::

   src.wic.model.NumpyEncoder
   src.wic.model.WICModel




.. py:class:: NumpyEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)


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

   Extensible JSON <https://json.org> encoder for Python data structures.

   Supports the following objects and types by default:

   +-------------------+---------------+
   | Python            | JSON          |
   +===================+===============+
   | dict              | object        |
   +-------------------+---------------+
   | list, tuple       | array         |
   +-------------------+---------------+
   | str               | string        |
   +-------------------+---------------+
   | int, float        | number        |
   +-------------------+---------------+
   | True              | true          |
   +-------------------+---------------+
   | False             | false         |
   +-------------------+---------------+
   | None              | null          |
   +-------------------+---------------+

   To extend this to recognize other objects, subclass and implement a
   ``.default()`` method with another method that returns a serializable
   object for ``o`` if possible, otherwise it should call the superclass
   implementation (to raise ``TypeError``).


   .. py:method:: default(obj)

      Implement this method in a subclass such that it returns
      a serializable object for ``o``, or calls the base implementation
      (to raise a ``TypeError``).

      For example, to support arbitrary iterators, you could
      implement default like this::

          def default(self, o):
              try:
                  iterable = iter(o)
              except TypeError:
                  pass
              else:
                  return list(iterable)
              # Let the base class default method raise the TypeError
              return JSONEncoder.default(self, o)




.. py:class:: WICModel(**data: Any)


   Bases: :py:obj:`pydantic.BaseModel`, :py:obj:`abc.ABC`

   Helper class that provides a standard way to create an ABC using
   inheritance.

   .. py:class:: Config


      .. py:attribute:: json_encoders

         


   .. py:attribute:: _cache
      :type: pandas.DataFrame

      

   .. py:attribute:: _cache_path
      :type: pathlib.Path

      

   .. py:attribute:: scaler
      :type: Any

      

   .. py:attribute:: predictions
      :type: dict[tuple[src.use.UseID, src.use.UseID], float]

      

   .. py:method:: as_df() -> pandas.DataFrame
      :abstractmethod:


   .. py:method:: predict(use_pairs: Iterable[tuple[src.use.Use, src.use.Use]], **kwargs) -> list[float]
      :abstractmethod:


   .. py:method:: predict_all(use_pairs: list[tuple[src.use.Use, src.use.Use]]) -> list[float]



