Feat: cli to make a report

This commit is contained in:
Bertrand Benjamin 2019-08-04 16:25:44 +02:00
parent 4b3f55578e
commit 595102ecca
4 changed files with 225 additions and 0 deletions

4
recoconfig.yml Normal file
View File

@ -0,0 +1,4 @@
---
source: sheets/
output: reports/
templates: templates/

50
recopytex.py Normal file
View File

@ -0,0 +1,50 @@
#!/usr/bin/env python
# encoding: utf-8
import click
from pathlib import Path
import yaml
import sys
import papermill as pm
with open("recoconfig.yml", "r") as config:
config = yaml.load(config, Loader=yaml.FullLoader)
@click.group()
def cli():
pass
@cli.command()
def print_config():
click.echo(config.key())
@cli.command()
@click.argument("csv_file")
def report(csv_file):
csv = Path(csv_file)
if not csv.exists():
click.echo(f"{csv_file} does not exists")
sys.exit(1)
if csv.suffix != ".csv":
click.echo(f"{csv_file} has to be a csv file")
sys.exit(1)
*a, tribe, assessment_file = csv_file.split("/")
assessment_desc = assessment_file.split(".")[0]
assessment_name = assessment_desc.split("_")[-1].capitalize()
template = Path(config["templates"]) / "tpl_evaluation.ipynb"
dest = Path(config["output"]) / tribe / assessment_name / f"{assessment_name}.ipynb"
dest.parent.mkdir(parents=True, exist_ok=True)
pm.execute_notebook(
str(template), str(dest), parameters=dict(tribe=tribe, assessment=assessment_name)
)
if __name__ == "__main__":
cli()

View File

@ -0,0 +1,90 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"tags": [
"parameters"
]
},
"outputs": [],
"source": [
"tribe = \"308\"\n",
"assessment = \"161114_dm2\""
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import Markdown as md\n",
"import pandas as pd\n",
"from pathlib import Path"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"csv_file = Path(f\"./sheets/{tribe}/{assessment}.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"# Ds1 pour 308"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"md(f\"# {assessment} pour {tribe}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Tags",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

View File

@ -0,0 +1,81 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"tags": [
"parameters"
]
},
"outputs": [],
"source": [
"tribe = 308\n",
"student = \"ABDOU Asmahane\""
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import Markdown as md\n",
"import pandas as pd\n",
"from pathlib import Path"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"# ABDOU Asmahane en 308"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"md(f\"# {student} en {tribe}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Tags",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}