Konubinix' opinionated web of thoughts

Calculer Les Tâches À Faire Sur Une Voiture

Fleeting

calculer les tâches à faire sur une voiture

Date stamp Km Diff Km Nb jours Km/J Km restant Tps restant Km/J restant actions
[2018-06-12 Tue 20:00] 1528826400.0 0 0/0 PressionPneus, UsurePneus, Feux, NiveauBattery, ControlerHuileDA, RevisionUniqueEurope, RemplacementFiltreHabitacle, RemplacementFiltreHuile, VidangeHuile, ControlerLiquideFrein, ControlerLiquideRefroidissement, RemplacementFiltreAir, RemplacementLiquideFrein, RemplacementLiquideRefroidissement, RemplacementCourroieAccessoireEtGalet, CtrlOeilNuPlaquettesFrein, RemplacementLiquideRefroidissement, RemplacementBougiesAllumage, CtrlDepoussierageGarnitureFreinTambour, ControlerHuile, CtrlLigneEchappement, VerifNivHuileBoiteVitesses, VerifOuRemplacementAmortisseurs, VerifAirbag, ChangerEssuieGlaces

action seuilkm seuiltmp
PressionPneus 1m Ou avant tout déplacement important
UsurePneus 4m
Feux 6m arrière, position, croisement, route, plaque arrière, clignotants avant, clignotants arrière, clignotants coté, arrière haut
NiveauBattery 6m
ControlerHuileDA 15000 1y
RevisionUniqueEurope 20000 1y
RemplacementFiltreHabitacle 20000 1y
RemplacementFiltreHuile 20000 1y
VidangeHuile 20000 1y ou à chaque intervention importante sur le moteur, avec remplacement du filtre à huile
ControlerLiquideFrein 45000 1y
ControlerLiquideRefroidissement 1y
RemplacementFiltreAir 60000 4y
RemplacementLiquideFrein 120000 4y
RemplacementLiquideRefroidissement 120000 5y
RemplacementCourroieAccessoireEtGalet 120000 6y
CtrlOeilNuPlaquettesFrein 10000 1y
RemplacementLiquideRefroidissement 6y préconisé tous les 6 ans (liquide bleu/vert) ou 10 ans (rouge/orange)
RemplacementBougiesAllumage 60000
CtrlDepoussierageGarnitureFreinTambour 80000
ControlerHuile 1000 ou avant chaque parcours important
CtrlLigneEchappement 30000 2y
VerifNivHuileBoiteVitesses 30000 2y
VerifOuRemplacementAmortisseurs 100000
VerifAirbag 100000
ChangerEssuieGlaces 3y

from pandas import DataFrame as df
import sys
import pandas as pd
from dateutil.relativedelta import relativedelta
import re
from datetime import datetime as dt
regex = re.compile(r'^((?P<years>\d+)y)?((?P<months>\d+)m)?$')
def parse_td(value):
   match = regex.match(value)
   if match is None:
       return None
   else:
       return relativedelta(**{
           key: int(value)
           for key, value in match.groupdict().items()
           if value
       })
v = df(releves[1:], columns=releves[0])
v["date"] = pd.to_datetime(v.stamp, unit="s")
s = {
    seuil[0]: seuil[1]
    for seuil in seuils[1:]
}
s2 = {
    seuil[0]: parse_td(seuil[2])
    for seuil in seuils[1:]
}
s3 = {
    seuil[0]: seuil[3]
    for seuil in seuils[1:]
}
sys.stderr.write("a\n")
a = df(
    [
        key + (value,)
        for key, values in
        v.set_index(["Km", "date"]).actions.items()
        for value in values.split(", ")
    ],
    columns=["km", "date", "action"]
)
sys.stderr.write(f"{a}\n")
a["diffkm"] = a["km"][0] - a["km"]
a["diffdate"] = a["date"][0] - a["date"]
res = []
now = dt.now()
for nom in s:
    km = s[nom]
    restekm = None
    sys.stderr.write(f"{nom}\n")
    if km:
         diffkm = a[a.action == nom]["diffkm"]
         sys.stderr.write(f"{diffkm}\n")
         diffkm = diffkm.iloc[0]
         restekm = km - diffkm
    tmp = s2[nom]
    nexttmp = None
    if tmp:
        nexttmp = a[a.action == nom]["date"].iloc[0] + tmp
    cur_res = [
        nom,
        "A FAIRE" if (restekm and (restekm < 0) or (nexttmp and nexttmp < now)) else "ok",
        f"{restekm} km",
        "{} days".format((nexttmp - now).days) if nexttmp else None,
        s3[nom],
    ]
    res.append(cur_res)
return sorted(res, key=lambda e: e[1])
PressionPneus A FAIRE None km -900 days Ou avant tout déplacement important
UsurePneus A FAIRE None km -808 days
Feux A FAIRE None km -747 days arrière, position, croisement, route, plaque arrière, clignotants avant, clignotants arrière, clignotants coté, arrière haut
NiveauBattery A FAIRE None km -747 days
ControlerHuileDA A FAIRE 15000 km -565 days
RevisionUniqueEurope A FAIRE 20000 km -565 days
RemplacementFiltreHabitacle A FAIRE 20000 km -565 days
RemplacementFiltreHuile A FAIRE 20000 km -565 days
VidangeHuile A FAIRE 20000 km -565 days ou à chaque intervention importante sur le moteur, avec remplacement du filtre à huile
ControlerLiquideFrein A FAIRE 45000 km -565 days
ControlerLiquideRefroidissement A FAIRE None km -565 days
CtrlOeilNuPlaquettesFrein A FAIRE 10000 km -565 days
CtrlLigneEchappement A FAIRE 30000 km -199 days
VerifNivHuileBoiteVitesses A FAIRE 30000 km -199 days
RemplacementFiltreAir ok 60000 km 531 days
RemplacementLiquideFrein ok 120000 km 531 days
RemplacementLiquideRefroidissement ok None km 1262 days préconisé tous les 6 ans (liquide bleu/vert) ou 10 ans (rouge/orange)
RemplacementCourroieAccessoireEtGalet ok 120000 km 1262 days
RemplacementBougiesAllumage ok 60000 km None
CtrlDepoussierageGarnitureFreinTambour ok 80000 km None
ControlerHuile ok 1000 km None ou avant chaque parcours important
VerifOuRemplacementAmortisseurs ok 100000 km None
VerifAirbag ok 100000 km None
ChangerEssuieGlaces ok None km 166 days