Commit b7e16367 authored by Yoann LE BARS's avatar Yoann LE BARS
Browse files

Mise en place de la documentation automatique.

parent 793b0498
......@@ -4,4 +4,4 @@ ressources/.~lock*
src/__pycache__/
ressources/griveaux.csv
analysesondage.kdev4
doc/
doc/build/
20/12/2021 Version 1.7 Mise en place de la documentation automatique du code.
18/12/2021 Version 1.6 Amélioration des dénominations.
11/12/2021 Version 1.5 Réorganisation du code.
04/12/2021 Version 1.4 Passage aux moindres carrés pondérés.
......
......@@ -11,6 +11,7 @@ tendances à l’aide de la méthode des moindres carrés.
* [Lancer le code](#lancer-le-code "Lancer le code")
* [Format de données](#format-de-données "Format de données")
* [Générer la documentation](#générer-la-documentation "Générer la documentation")
* [Contrat de diffusion](#contrat-de-diffusion "Contrat de diffusion")
Lancer le code
......@@ -96,6 +97,25 @@ UTF-8. Seule la première ligne de ce fichier est prise en compte. Elle doit
comporter les noms des exacts des candidats à exclure de l’interpolation,
avec la même graphie que les noms indiqués dans le fichier de sondage.
Générer la documentation
------------------------
La documentation du code est gérée à l’aide de
[Sphinx](https://www.sphinx-doc.org/ "Sphinx")et utilise le thème
[Read the Docs](https://readthedocs.org/ "Read the Docs")
(`sphinx-rtd-theme`). Pour la générer, allez dans le répertoire `doc`. En
exécutant la commande `make`, vous obtiendrez la liste des format de
documentation possible. Par exemple, pour générer la documentation au format
HTML, réalisez la commande suivante :
```bash
make html
```
Un sous répertoire se créé dans `doc/build`. Ainsi, dans l’exemple précédent,
la documentation générée sera placée dans le répertoire `doc/build/html`, la
première page étant intitulée `index.html`.
Contrat de diffusion
--------------------
......
# 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)
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build
if "%1" == "" goto help
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
:end
popd
AnalyseSondages
===============
.. automodule:: analyseSondages
:members:
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- Project information -----------------------------------------------------
project = 'AnalyseSondage'
copyright = '2021, Yoann LE BARS'
author = 'Yoann LE BARS'
# The full version, including alpha/beta/rc tags
release = '1.5'
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx_rtd_theme',
'sphinx.ext.autodoc',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = 'fr'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
Erreurs
=======
.. automodule:: erreurs
:members:
.. AnalyseSondage documentation master file, created by
sphinx-quickstart on Wed Dec 15 19:47:53 2021.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Documentation de AnalyseSondage
===============================
.. toctree::
:maxdepth: 2
:caption: Contents:
./analyseSondages.rst
./utilitaires.rst
./erreurs.rst
Indices et tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Utilitaires
===========
.. automodule:: utilitaires
:members:
......@@ -10,9 +10,9 @@ Programme simple évaluant les tendances dans un sondage d’opinion.
Pour le lancer, il suffit d’exécuter le script nommé « analyseSondages.py »
situé dans le répertoire « src ». La syntaxte est la suivante :
```bash
analyseSondages.py [-h] [-v] [-e nomExclus] ordre confiance nomFichier
```
::
analyseSondages.py [-h] [-v] [-e nomExclus] ordre confiance nomFichier
Avec `ordre` l’ordre de la fonctionnelle polynomiale d’évaluation des
tendances (nous conseillons d’utiliser 7), `confiance` la taille de
......@@ -32,15 +32,15 @@ bloque l’affichage des points de sondage, tandis que l’option `-e` (ou
Une liste des couleur possible avec un échantillon est visible à cette URL :
<https://matplotlib.org/stable/gallery/color/named_colors.html>
https://matplotlib.org/stable/gallery/color/named_colors.html
Des informations concernant les intervalles de confiance :
<https://fr.wikipedia.org/wiki/Intervalle_de_confiance>
https://fr.wikipedia.org/wiki/Intervalle_de_confiance
Au sujet de la méthode des moindres carrés :
<https://fr.wikipedia.org/wiki/M%C3%A9thode_des_moindres_carr%C3%A9s>
https://fr.wikipedia.org/wiki/M%C3%A9thode_des_moindres_carr%C3%A9s
Ce programme est sous contrat de distribution CeCILL v2.1. Vous pouvez le
modifier et le redistribuer, à la condition que vous en citiez l’auteur
......@@ -49,13 +49,13 @@ original et que vous ne changez pas le contrat de distribution.
Le texte complet du contrat est disponible dans le fichier « LICENSE » et à
l’adresse suivante :
<https://cecill.info/licences/Licence_CeCILL_V2.1-fr.html>
https://cecill.info/licences/Licence_CeCILL_V2.1-fr.html
"""
# Numéro de version majeur.
__majeur__ = '1'
# Numéro de version mineur.
__mineur__ = '6'
__mineur__ = '7'
# Version du programme.
__version__ = __majeur__ + '.' + __mineur__
......@@ -192,6 +192,7 @@ def traitement (ordre: int, confiance: float, nomFichier: str,
plt.grid(axis = 'y', visible = True, which = 'minor', linestyle = '--')
plt.show()
# Partie du code a exécuter au début du script.
if __name__ == '__main__':
import argparse
import sys
......
......@@ -14,7 +14,7 @@ original et que vous ne changez pas le contrat de distribution.
Le texte complet du contrat est disponible dans le fichier « LICENSE » et à
l’adresse suivante :
<https://cecill.info/licences/Licence_CeCILL_V2.1-fr.html>
https://cecill.info/licences/Licence_CeCILL_V2.1-fr.html
"""
class Erreur (Exception):
......@@ -45,7 +45,7 @@ class FichierInexistant (Erreur):
Exception lancée lorsque le chemin d’accès donné ne mène vers aucun
fichier.
:attribute str nomFichier: Chemin d’accès ayant provoque l’erreur.
:param str nomFichier: Chemin d’accès ayant provoque l’erreur.
"""
def __init__(self, nomFichier):
......@@ -69,10 +69,9 @@ class JourInvalide (ErreurJour):
Exception lancée lorsqu’un nombre de jour n’est pas sous un format
valide.
:attribute str nomFichier: Chemin d’accès ayant provoque l’erreur.
:attribute int ligne: Numéro de la ligne ayant produit l’erreur.
:attribute int colonne: Numéro de colonne de la valeur ayant produit
l’erreur.
:param str nomFichier: Chemin d’accès ayant provoque l’erreur.
:param int ligne: Numéro de la ligne ayant produit l’erreur.
:param int colonne: Numéro de colonne de la valeur ayant produit l’erreur.
"""
def __init__(self, nomFichier, ligne, colonne):
......@@ -94,7 +93,7 @@ class NbJoursInco (ErreurJour):
Exception lancée lorsque le nombre de jours de fin de sondages est
différent du nombre de jours de début de sondages.
:attribute str nomFichier: Chemin d’accès ayant provoque l’erreur.
:param str nomFichier: Chemin d’accès ayant provoque l’erreur.
"""
def __init__ (self, nomFichier):
......@@ -111,8 +110,8 @@ class FinAvantDebut (ErreurJour):
Exception lancée lorsque la date de fin du sondage précède sa date de
début.
:attribute str nomFichier: Chemin d’accès ayant provoque l’erreur.
:attribute int colonne: Numéro de colonne de la valeur ayant produit
:param str nomFichier: Chemin d’accès ayant provoque l’erreur.
:param int colonne: Numéro de colonne de la valeur ayant produit
l’erreur.
"""
......@@ -141,9 +140,9 @@ class EchantillonInvalide (ErreurEchantillon):
Exception lancée lorsque une taille d’échantillon n’est pas sous un
format valide.
:attribute str nomFichier: Chemin d’accès ayant provoque l’erreur.
:attribute int ligne: Numéro de la ligne ayant produit l’erreur.
:attribute int colonne: Numéro de colonne de la valeur ayant produit
:param str nomFichier: Chemin d’accès ayant provoque l’erreur.
:param int ligne: Numéro de la ligne ayant produit l’erreur.
:param int colonne: Numéro de colonne de la valeur ayant produit
l’erreur.
"""
......@@ -165,10 +164,9 @@ class EchantillonHorsLimittes (ErreurEchantillon):
"""
Exception lancée lorsque une taille d’échantillon est inférieure à 1.
:attribute str nomFichier: Chemin d’accès ayant provoque l’erreur.
:attribute int ligne: Numéro de la ligne ayant produit l’erreur.
:attribute int colonne: Numéro de colonne de la valeur ayant produit
l’erreur.
:param str nomFichier: Chemin d’accès ayant provoque l’erreur.
:param int ligne: Numéro de la ligne ayant produit l’erreur.
:param int colonne: Numéro de colonne de la valeur ayant produit l’erreur.
"""
def __init__(self, nomFichier, ligne, colonne):
......@@ -190,10 +188,9 @@ class CouleurInvalide (Erreur):
Exception lancée lorsqu’une couleur demandée ne fait pas partie de la
liste des couleurs disponibles.
:attribute str nomFichier: Chemin d’accès ayant provoque l’erreur.
:attribute int ligne: Numéro de la ligne ayant produit l’erreur.
:attribute int colonne: Numéro de colonne de la valeur ayant produit
l’erreur.
:param str nomFichier: Chemin d’accès ayant provoque l’erreur.
:param int ligne: Numéro de la ligne ayant produit l’erreur.
:param int colonne: Numéro de colonne de la valeur ayant produit l’erreur.
"""
def __init__(self, nomFichier, ligne, colonne):
......@@ -223,10 +220,9 @@ class IntentionInvalide (ErreurIntention):
Exception lancée lorsque l’intention de vote n’est pas sous un format
valide.
:attribute str nomFichier: Chemin d’accès ayant provoque l’erreur.
:attribute int ligne: Numéro de la ligne ayant produit l’erreur.
:attribute int colonne: Numéro de colonne de la valeur ayant produit
l’erreur.
:param str nomFichier: Chemin d’accès ayant provoque l’erreur.
:param int ligne: Numéro de la ligne ayant produit l’erreur.
:param int colonne: Numéro de colonne de la valeur ayant produit l’erreur.
"""
def __init__(self, nomFichier, ligne, colonne):
......@@ -248,10 +244,9 @@ class IntentionHorsLimittes (ErreurIntention):
Exception lancée lorsque l’intention de vote n’est pas dans l’intervalle
[0 ; 100].
:attribute str nomFichier: Chemin d’accès ayant provoque l’erreur.
:attribute int ligne: Numéro de la ligne ayant produit l’erreur.
:attribute int colonne: Numéro de colonne de la valeur ayant produit
l’erreur.
:param str nomFichier: Chemin d’accès ayant provoque l’erreur.
:param int ligne: Numéro de la ligne ayant produit l’erreur.
:param int colonne: Numéro de colonne de la valeur ayant produit l’erreur.
"""
def __init__(self, nomFichier, ligne, colonne):
......
......@@ -14,7 +14,7 @@ original et que vous ne changez pas le contrat de distribution.
Le texte complet du contrat est disponible dans le fichier « LICENSE » et à
l’adresse suivante :
<https://cecill.info/licences/Licence_CeCILL_V2.1-fr.html>
https://cecill.info/licences/Licence_CeCILL_V2.1-fr.html
"""
from erreurs import *
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment