Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ jobs:
- name: "Mypy"
run: mypy
- name: "Pytest"
run: python -m pytest -v -m ci
run: PYTHONPATH=src python -m pytest -v -m ci
20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
Binary file added docs/build/doctrees/environment.pickle
Binary file not shown.
Binary file added docs/build/doctrees/index.doctree
Binary file not shown.
Binary file added docs/build/doctrees/modules.doctree
Binary file not shown.
Binary file added docs/build/doctrees/src.algorithms.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added docs/build/doctrees/src.doctree
Binary file not shown.
Binary file added docs/build/doctrees/src.estimators.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added docs/build/doctrees/src.generators.doctree
Binary file not shown.
Binary file added docs/build/doctrees/src.mixtures.doctree
Binary file not shown.
Binary file added docs/build/doctrees/src.register.doctree
Binary file not shown.
4 changes: 4 additions & 0 deletions docs/build/html/.buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 70a6495f3e4db176140ed488f4751adc
tags: 645f666f9bcd5a90fca523b33c5a78b7
4 changes: 4 additions & 0 deletions docs/build/html/.buildinfo.bak
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
config: b9b03528914d37e51042eacc9f42bead
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file added docs/build/html/.doctrees/environment.pickle
Binary file not shown.
Binary file added docs/build/html/.doctrees/index.doctree
Binary file not shown.
Binary file added docs/build/html/.doctrees/modules.doctree
Binary file not shown.
Binary file added docs/build/html/.doctrees/src.algorithms.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added docs/build/html/.doctrees/src.doctree
Binary file not shown.
Binary file added docs/build/html/.doctrees/src.estimators.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added docs/build/html/.doctrees/src.generators.doctree
Binary file not shown.
Binary file added docs/build/html/.doctrees/src.mixtures.doctree
Binary file not shown.
Binary file added docs/build/html/.doctrees/src.register.doctree
Binary file not shown.
202 changes: 202 additions & 0 deletions docs/build/html/_modules/estimators/abstract_estimator.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@


<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>estimators.abstract_estimator &mdash; ka 0 documentation</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=e59714d7" />


<script src="../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../_static/documentation_options.js?v=8dde47fa"></script>
<script src="../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
</head>

<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >



<a href="../../index.html" class="icon icon-home">
ka
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../src.html">src package</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../src.html#subpackages">Subpackages</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../src.algorithms.html">algorithms package</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../src.estimators.html">estimators package</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../src.generators.html">generators package</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../src.mixtures.html">mixtures package</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../src.register.html">register package</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../src.html#module-contents">Module contents</a></li>
</ul>
</li>
</ul>
</li>
</ul>

</div>
</div>
</nav>

<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">ka</a>
</nav>

<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../index.html">Module code</a></li>
<li class="breadcrumb-item active">estimators.abstract_estimator</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">

<h1>Source code for estimators.abstract_estimator</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;Abstract estimator base class module.</span>

<span class="sd">This module defines the AbstractEstimator base class that provides</span>
<span class="sd">common functionality for all parametric and semiparametric estimators.</span>
<span class="sd">&quot;&quot;&quot;</span>

<span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">Self</span>

<span class="kn">from</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="kn">import</span> <span class="n">_typing</span>

<span class="kn">from</span><span class="w"> </span><span class="nn">algorithms</span><span class="w"> </span><span class="kn">import</span> <span class="n">ALGORITHM_REGISTRY</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">estimators.estimate_result</span><span class="w"> </span><span class="kn">import</span> <span class="n">EstimateResult</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">register.algorithm_purpose</span><span class="w"> </span><span class="kn">import</span> <span class="n">AlgorithmPurpose</span>


<div class="viewcode-block" id="AbstractEstimator">
<a class="viewcode-back" href="../../src.estimators.html#estimators.abstract_estimator.AbstractEstimator">[docs]</a>
<span class="k">class</span><span class="w"> </span><span class="nc">AbstractEstimator</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Base class for Estimators</span>

<span class="sd"> Attributes:</span>
<span class="sd"> algorithm_name: A string indicating chosen algorithm.</span>
<span class="sd"> params: A dictionary of algorithm parameters.</span>
<span class="sd"> estimate_result: Estimation result.</span>
<span class="sd"> _registry: Registry that contains classes of all algorithms.</span>
<span class="sd"> _purpose: Defines purpose of algorithm, one of the registry key.</span>
<span class="sd"> &quot;&quot;&quot;</span>

<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">algorithm_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">params</span><span class="p">:</span> <span class="nb">dict</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Initializes the instance based on algorithm name and params.</span>

<span class="sd"> Args:</span>
<span class="sd"> algorithm_name: A string indicating chosen algorithm.</span>
<span class="sd"> params: A dictionary of algorithm parameters.</span>
<span class="sd"> &quot;&quot;&quot;</span>

<span class="bp">self</span><span class="o">.</span><span class="n">algorithm_name</span> <span class="o">=</span> <span class="n">algorithm_name</span>
<span class="k">if</span> <span class="n">params</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">params</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">params</span> <span class="o">=</span> <span class="n">params</span>
<span class="bp">self</span><span class="o">.</span><span class="n">estimate_result</span> <span class="o">=</span> <span class="n">EstimateResult</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_registry</span> <span class="o">=</span> <span class="n">ALGORITHM_REGISTRY</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_purpose</span> <span class="o">=</span> <span class="n">AlgorithmPurpose</span><span class="o">.</span><span class="n">DEFAULT</span>

<div class="viewcode-block" id="AbstractEstimator.get_params">
<a class="viewcode-back" href="../../src.estimators.html#estimators.abstract_estimator.AbstractEstimator.get_params">[docs]</a>
<span class="k">def</span><span class="w"> </span><span class="nf">get_params</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
<span class="k">return</span> <span class="p">{</span><span class="s2">&quot;algorithm_name&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">algorithm_name</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">,</span> <span class="s2">&quot;estimated_result&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">estimate_result</span><span class="p">}</span></div>


<div class="viewcode-block" id="AbstractEstimator.set_params">
<a class="viewcode-back" href="../../src.estimators.html#estimators.abstract_estimator.AbstractEstimator.set_params">[docs]</a>
<span class="k">def</span><span class="w"> </span><span class="nf">set_params</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">algorithm_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">params</span><span class="p">:</span> <span class="nb">dict</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Self</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">algorithm_name</span> <span class="o">=</span> <span class="n">algorithm_name</span>
<span class="k">if</span> <span class="n">params</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">params</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">params</span> <span class="o">=</span> <span class="n">params</span>
<span class="k">return</span> <span class="bp">self</span></div>


<div class="viewcode-block" id="AbstractEstimator.get_available_algorithms">
<a class="viewcode-back" href="../../src.estimators.html#estimators.abstract_estimator.AbstractEstimator.get_available_algorithms">[docs]</a>
<span class="k">def</span><span class="w"> </span><span class="nf">get_available_algorithms</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Get all algorithms that can be used for current estimator class&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_registry</span><span class="o">.</span><span class="n">register_of_names</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> <span class="k">if</span> <span class="n">key</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">_purpose</span><span class="p">]</span></div>


<div class="viewcode-block" id="AbstractEstimator.estimate">
<a class="viewcode-back" href="../../src.estimators.html#estimators.abstract_estimator.AbstractEstimator.estimate">[docs]</a>
<span class="k">def</span><span class="w"> </span><span class="nf">estimate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sample</span><span class="p">:</span> <span class="n">_typing</span><span class="o">.</span><span class="n">ArrayLike</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EstimateResult</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Applies an algorithm to the given sample</span>

<span class="sd"> Args:</span>
<span class="sd"> sample: sample of the analysed distribution</span>

<span class="sd"> &quot;&quot;&quot;</span>
<span class="bp">cls</span> <span class="o">=</span> <span class="kc">None</span>
<span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm_name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_purpose</span><span class="p">)</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_registry</span><span class="o">.</span><span class="n">register_of_names</span><span class="p">:</span>
<span class="bp">cls</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_registry</span><span class="o">.</span><span class="n">dispatch</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm_name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_purpose</span><span class="p">)(</span><span class="n">sample</span><span class="p">,</span> <span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;This algorithm does not exist&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">estimate_result</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">algorithm</span><span class="p">(</span><span class="n">sample</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">estimate_result</span></div>
</div>

</pre></div>

</div>
</div>
<footer>

<hr/>

<div role="contentinfo">
<p>&#169; Copyright 2025, kira.</p>
</div>

Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.


</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>

</body>
</html>
Loading
Loading