Skip to content
Snippets Groups Projects
Commit 4932e8a4 authored by Frisinghelli Daniel's avatar Frisinghelli Daniel
Browse files

Ignore build files.

parent f9079bff
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 8328 deletions
File deleted
No preview for this file type
No preview for this file type
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>core.cli &mdash; PySegCNN documentation</title>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/language_data.js"></script>
<script type="text/javascript" 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" alt="Documentation Home"> PySegCNN
</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" />
<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="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../source/requirements.html">Requirements</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../source/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../source/api.html">API Reference</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">PySegCNN</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li>
<li>core.cli</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 core.cli</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;Command line interface parsers.</span>
<span class="sd">License</span>
<span class="sd">-------</span>
<span class="sd"> Copyright (c) 2020 Daniel Frisinghelli</span>
<span class="sd"> This source code is licensed under the GNU General Public License v3.</span>
<span class="sd"> See the LICENSE file in the repository&#39;s root directory.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="c1"># !/usr/bin/env python</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="c1"># builtins</span>
<span class="kn">import</span> <span class="nn">pathlib</span>
<span class="kn">import</span> <span class="nn">argparse</span>
<span class="c1"># epilogue to display at the end of each parser</span>
<span class="n">EPILOGUE</span> <span class="o">=</span> <span class="s1">&#39;Author: Daniel Frisinghelli, daniel.frisinghelli@gmail.com&#39;</span>
<div class="viewcode-block" id="structure_parser"><a class="viewcode-back" href="../../source/core.html#core.cli.structure_parser">[docs]</a><span class="k">def</span> <span class="nf">structure_parser</span><span class="p">():</span>
<span class="sd">&quot;&quot;&quot;Command line argument parser to standardize dataset structure.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> None.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">parser</span> <span class="o">=</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span>
<span class="n">description</span><span class="o">=</span><span class="s1">&#39;Standardize the dataset directory structure.&#39;</span><span class="p">,</span>
<span class="n">epilog</span><span class="o">=</span><span class="n">EPILOGUE</span><span class="p">,</span>
<span class="n">formatter_class</span><span class="o">=</span><span class="k">lambda</span> <span class="n">prog</span><span class="p">:</span> <span class="n">argparse</span><span class="o">.</span><span class="n">RawDescriptionHelpFormatter</span><span class="p">(</span>
<span class="n">prog</span><span class="p">,</span> <span class="n">max_help_position</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span> <span class="n">indent_increment</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
<span class="c1"># positional arguments</span>
<span class="c1"># positional argument: path to the archive</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;archive&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="n">pathlib</span><span class="o">.</span><span class="n">Path</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s1">&#39;Path to the dataset archive.&#39;</span><span class="p">)</span>
<span class="c1"># positional argument: path to extract and restructure the dataset</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;target&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="n">pathlib</span><span class="o">.</span><span class="n">Path</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s1">&#39;Path to save standardized dataset structure.&#39;</span><span class="p">)</span>
<span class="c1"># optional arguments</span>
<span class="c1"># default values</span>
<span class="n">default</span> <span class="o">=</span> <span class="s1">&#39;(default: </span><span class="si">%(default)s</span><span class="s1">)&#39;</span>
<span class="c1"># optional argument: whether to overwrite existing files</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;-o&#39;</span><span class="p">,</span> <span class="s1">&#39;--overwrite&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="nb">bool</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s1">&#39;Overwrite files </span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">default</span><span class="p">),</span>
<span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span> <span class="n">const</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="c1"># optional argument: whether to copy or move extracted files</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;-r&#39;</span><span class="p">,</span> <span class="s1">&#39;--remove&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="nb">bool</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s1">&#39;Remove original dataset </span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">default</span><span class="p">),</span>
<span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span> <span class="n">const</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">parser</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2020, Daniel Frisinghelli
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>core.constants &mdash; PySegCNN documentation</title>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/language_data.js"></script>
<script type="text/javascript" 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" alt="Documentation Home"> PySegCNN
</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" />
<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="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../source/requirements.html">Requirements</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../source/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../source/api.html">API Reference</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">PySegCNN</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li>
<li>core.constants</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 core.constants</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;A collection of constant values.</span>
<span class="sd">License</span>
<span class="sd">-------</span>
<span class="sd"> Copyright (c) 2020 Daniel Frisinghelli</span>
<span class="sd"> This source code is licensed under the GNU General Public License v3.</span>
<span class="sd"> See the LICENSE file in the repository&#39;s root directory.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="c1"># !/usr/bin/env python</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="c1"># builtins</span>
<span class="kn">import</span> <span class="nn">enum</span>
<span class="c1"># Landsat 8 bands</span>
<div class="viewcode-block" id="Landsat8"><a class="viewcode-back" href="../../source/core.html#core.constants.Landsat8">[docs]</a><span class="k">class</span> <span class="nc">Landsat8</span><span class="p">(</span><span class="n">enum</span><span class="o">.</span><span class="n">Enum</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;The spectral bands of the Landsat 8 sensors.</span>
<span class="sd"> sensors:</span>
<span class="sd"> - Operational Land Imager (OLI), (bands 1-9)</span>
<span class="sd"> - Thermal Infrared Sensor (TIRS), (bands 10, 11)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">violet</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">blue</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">green</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">red</span> <span class="o">=</span> <span class="mi">4</span>
<span class="n">nir</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">swir1</span> <span class="o">=</span> <span class="mi">6</span>
<span class="n">swir2</span> <span class="o">=</span> <span class="mi">7</span>
<span class="n">pan</span> <span class="o">=</span> <span class="mi">8</span>
<span class="n">cirrus</span> <span class="o">=</span> <span class="mi">9</span>
<span class="n">tir1</span> <span class="o">=</span> <span class="mi">10</span></div>
<span class="c1"># tir2 = 11</span>
<span class="c1"># Sentinel 2 bands</span>
<div class="viewcode-block" id="Sentinel2"><a class="viewcode-back" href="../../source/core.html#core.constants.Sentinel2">[docs]</a><span class="k">class</span> <span class="nc">Sentinel2</span><span class="p">(</span><span class="n">enum</span><span class="o">.</span><span class="n">Enum</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;The spectral bands of the Sentinel-2 MultiSpectral Instrument (MSI).&quot;&quot;&quot;</span>
<span class="n">aerosol</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">blue</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">green</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">red</span> <span class="o">=</span> <span class="mi">4</span>
<span class="n">vnir1</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">vnir2</span> <span class="o">=</span> <span class="mi">6</span>
<span class="n">vnir3</span> <span class="o">=</span> <span class="mi">7</span>
<span class="n">nir</span> <span class="o">=</span> <span class="mi">8</span>
<span class="n">nnir</span> <span class="o">=</span> <span class="s1">&#39;8A&#39;</span>
<span class="n">vapor</span> <span class="o">=</span> <span class="mi">9</span>
<span class="n">cirrus</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">swir1</span> <span class="o">=</span> <span class="mi">11</span>
<span class="n">swir2</span> <span class="o">=</span> <span class="mi">12</span></div>
<span class="c1"># generic class label enumeration class</span>
<div class="viewcode-block" id="Label"><a class="viewcode-back" href="../../source/core.html#core.constants.Label">[docs]</a><span class="k">class</span> <span class="nc">Label</span><span class="p">(</span><span class="n">enum</span><span class="o">.</span><span class="n">Enum</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Generic enumeration for class labels.&quot;&quot;&quot;</span>
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">id</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Return the value of a class in the ground truth.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">value</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">color</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Return the color to plot a class.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">value</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span></div>
<span class="c1"># labels of the Sparcs dataset</span>
<div class="viewcode-block" id="SparcsLabels"><a class="viewcode-back" href="../../source/core.html#core.constants.SparcsLabels">[docs]</a><span class="k">class</span> <span class="nc">SparcsLabels</span><span class="p">(</span><span class="n">Label</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Class labels of the `Sparcs`_ dataset.</span>
<span class="sd"> .. _Sparcs:</span>
<span class="sd"> https://www.usgs.gov/land-resources/nli/landsat/spatial-procedures-automated-removal-cloud-and-shadow-sparcs-validation</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">Shadow</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="s1">&#39;grey&#39;</span>
<span class="n">Shadow_over_water</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;darkblue&#39;</span>
<span class="n">Water</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">&#39;blue&#39;</span>
<span class="n">Snow</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">&#39;lightblue&#39;</span>
<span class="n">Land</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span> <span class="s1">&#39;sienna&#39;</span>
<span class="n">Cloud</span> <span class="o">=</span> <span class="mi">5</span><span class="p">,</span> <span class="s1">&#39;white&#39;</span>
<span class="n">Flooded</span> <span class="o">=</span> <span class="mi">6</span><span class="p">,</span> <span class="s1">&#39;yellow&#39;</span></div>
<span class="c1"># labels of the Cloud95 dataset</span>
<div class="viewcode-block" id="Cloud95Labels"><a class="viewcode-back" href="../../source/core.html#core.constants.Cloud95Labels">[docs]</a><span class="k">class</span> <span class="nc">Cloud95Labels</span><span class="p">(</span><span class="n">Label</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Class labels of the `Cloud-95`_ dataset.</span>
<span class="sd"> .. _Cloud-95:</span>
<span class="sd"> https://github.com/SorourMo/95-Cloud-An-Extension-to-38-Cloud-Dataset</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">Clear</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="s1">&#39;skyblue&#39;</span>
<span class="n">Cloud</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;white&#39;</span></div>
<span class="c1"># labels of the ProSnow dataset</span>
<div class="viewcode-block" id="ProSnowLabels"><a class="viewcode-back" href="../../source/core.html#core.constants.ProSnowLabels">[docs]</a><span class="k">class</span> <span class="nc">ProSnowLabels</span><span class="p">(</span><span class="n">Label</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Class labels of the ProSnow datasets.&quot;&quot;&quot;</span>
<span class="n">Cloud</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="s1">&#39;white&#39;</span>
<span class="n">Snow</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;lightblue&#39;</span>
<span class="n">Snow_free</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">&#39;sienna&#39;</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2020, Daniel Frisinghelli
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>core.logging &mdash; PySegCNN documentation</title>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/language_data.js"></script>
<script type="text/javascript" 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" alt="Documentation Home"> PySegCNN
</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" />
<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="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../source/requirements.html">Requirements</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../source/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../source/api.html">API Reference</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">PySegCNN</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li>
<li>core.logging</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 core.logging</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;Logging configuration.</span>
<span class="sd">License</span>
<span class="sd">-------</span>
<span class="sd"> Copyright (c) 2020 Daniel Frisinghelli</span>
<span class="sd"> This source code is licensed under the GNU General Public License v3.</span>
<span class="sd"> See the LICENSE file in the repository&#39;s root directory.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="c1"># !/usr/bin/env python</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="c1"># builtins</span>
<span class="kn">import</span> <span class="nn">pathlib</span>
<span class="c1"># the logging configuration dictionary</span>
<div class="viewcode-block" id="log_conf"><a class="viewcode-back" href="../../source/core.html#core.logging.log_conf">[docs]</a><span class="k">def</span> <span class="nf">log_conf</span><span class="p">(</span><span class="n">logfile</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Set basic logging configuration passed to `logging.config.dictConfig`.</span>
<span class="sd"> See the logging `docs`_ for a detailed description of the configuration</span>
<span class="sd"> dictionary.</span>
<span class="sd"> .. _docs:</span>
<span class="sd"> https://docs.python.org/3/library/logging.config.html#dictionary-schema-details</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> logfile : `str` or `pathlib.Path`</span>
<span class="sd"> The file to save the logs to.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> LOGGING_CONFIG : `dict`</span>
<span class="sd"> The logging configuration.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># check if the parent directory of the log file exists</span>
<span class="n">logfile</span> <span class="o">=</span> <span class="n">pathlib</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="n">logfile</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">logfile</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">is_dir</span><span class="p">():</span>
<span class="n">logfile</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">parents</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">LOGGING_CONFIG</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">&#39;version&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
<span class="s1">&#39;disable_existing_loggers&#39;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
<span class="s1">&#39;formatters&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;brief&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;format&#39;</span><span class="p">:</span> <span class="s1">&#39;</span><span class="si">%(name)s</span><span class="s1">: </span><span class="si">%(message)s</span><span class="s1">&#39;</span>
<span class="p">},</span>
<span class="s1">&#39;standard&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;format&#39;</span><span class="p">:</span> <span class="s1">&#39;</span><span class="si">%(asctime)s</span><span class="s1"> [</span><span class="si">%(levelname)s</span><span class="s1">] </span><span class="si">%(name)s</span><span class="s1">: </span><span class="si">%(message)s</span><span class="s1">&#39;</span><span class="p">,</span>
<span class="s1">&#39;datefmt&#39;</span><span class="p">:</span> <span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1">T%H:%M:%S&#39;</span>
<span class="p">},</span>
<span class="p">},</span>
<span class="s1">&#39;handlers&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;console&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;class&#39;</span><span class="p">:</span> <span class="s1">&#39;logging.StreamHandler&#39;</span><span class="p">,</span>
<span class="s1">&#39;formatter&#39;</span><span class="p">:</span> <span class="s1">&#39;brief&#39;</span><span class="p">,</span>
<span class="s1">&#39;level&#39;</span><span class="p">:</span> <span class="s1">&#39;INFO&#39;</span><span class="p">,</span>
<span class="s1">&#39;stream&#39;</span><span class="p">:</span> <span class="s1">&#39;ext://sys.stderr&#39;</span><span class="p">,</span>
<span class="p">},</span>
<span class="s1">&#39;file&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;class&#39;</span><span class="p">:</span> <span class="s1">&#39;logging.FileHandler&#39;</span><span class="p">,</span>
<span class="s1">&#39;formatter&#39;</span><span class="p">:</span> <span class="s1">&#39;standard&#39;</span><span class="p">,</span>
<span class="s1">&#39;level&#39;</span><span class="p">:</span> <span class="s1">&#39;INFO&#39;</span><span class="p">,</span>
<span class="s1">&#39;filename&#39;</span><span class="p">:</span> <span class="n">logfile</span><span class="p">,</span>
<span class="s1">&#39;mode&#39;</span><span class="p">:</span> <span class="s1">&#39;a&#39;</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="s1">&#39;loggers&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;&#39;</span><span class="p">:</span> <span class="p">{</span>
<span class="s1">&#39;handlers&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;console&#39;</span><span class="p">,</span> <span class="s1">&#39;file&#39;</span><span class="p">],</span>
<span class="s1">&#39;level&#39;</span><span class="p">:</span> <span class="s1">&#39;INFO&#39;</span><span class="p">,</span>
<span class="p">},</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">return</span> <span class="n">LOGGING_CONFIG</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2020, Daniel Frisinghelli
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment