From a878d142bdef3783be887f713d6d5b9862e39d21 Mon Sep 17 00:00:00 2001 From: Faraphel Date: Wed, 24 Jan 2024 23:12:12 +0100 Subject: [PATCH] improved graphs with histogram and details --- requirements.txt | 4 +- tools/statistics/analyse/age.py | 16 ++--- .../statistics/analyse/completion_per_age.py | 7 +- .../analyse/completion_per_experience.py | 12 ++-- .../analyse/completion_per_language.py | 39 +++++++++++ .../analyse/completion_per_mission.py | 23 ++----- .../analyse/completion_per_usage.py | 12 ++-- tools/statistics/analyse/duration_per_age.py | 9 +-- .../analyse/duration_per_experience.py | 12 ++-- .../analyse/duration_per_language.py | 38 +++++++++++ .../analyse/duration_per_mission.py | 25 ++----- .../statistics/analyse/duration_per_usage.py | 14 ++-- tools/statistics/analyse/experience.py | 10 +-- tools/statistics/analyse/hardest_mission.py | 21 ++---- tools/statistics/analyse/language.py | 23 +++++++ tools/statistics/analyse/usage.py | 10 +-- tools/statistics/extract/__init__.py | 1 + tools/statistics/extract/language.py | 2 + tools/statistics/main.py | 67 ++++++++++++++----- tools/statistics/ressource/__init__.py | 3 + tools/statistics/ressource/experience.py | 1 + tools/statistics/ressource/mission.py | 12 ++++ tools/statistics/ressource/usage.py | 1 + tools/statistics/survey/IntegerQuestion.py | 6 -- tools/statistics/survey/__init__.py | 0 25 files changed, 240 insertions(+), 128 deletions(-) create mode 100644 tools/statistics/analyse/completion_per_language.py create mode 100644 tools/statistics/analyse/duration_per_language.py create mode 100644 tools/statistics/analyse/language.py create mode 100644 tools/statistics/extract/language.py create mode 100644 tools/statistics/ressource/__init__.py create mode 100644 tools/statistics/ressource/experience.py create mode 100644 tools/statistics/ressource/mission.py create mode 100644 tools/statistics/ressource/usage.py delete mode 100644 tools/statistics/survey/IntegerQuestion.py delete mode 100644 tools/statistics/survey/__init__.py diff --git a/requirements.txt b/requirements.txt index af5a0aa..f77e371 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,4 +4,6 @@ PyQt6-WebEngine nextcord~=2.6.0 requests~=2.31.0 -cx_freeze \ No newline at end of file +cx_freeze +matplotlib~=3.8.2 +numpy~=1.26.3 \ No newline at end of file diff --git a/tools/statistics/analyse/age.py b/tools/statistics/analyse/age.py index f0bb5a4..e4d5ccc 100644 --- a/tools/statistics/analyse/age.py +++ b/tools/statistics/analyse/age.py @@ -1,16 +1,11 @@ -from collections import Counter - import matplotlib.pyplot as plt +import numpy as np from tools.statistics import extract -def analyse(datas: list[dict]): - ages_data = list(map(extract.age.extract, datas)) - - counter = Counter(ages_data) - x = list(counter.keys()) - y = list(counter.values()) +def analyse(datas: list[dict]) -> plt.Figure: + x = list(map(extract.age.extract, datas)) # prepare plotting figure: plt.Figure = plt.figure() @@ -18,6 +13,7 @@ def analyse(datas: list[dict]): axes.set_title("Nombre de personne par âge") # bar chart - axes.bar(x, y) + bins = np.arange(min(x), max(x), 1) + axes.hist(x, bins=bins, edgecolor='black') - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/completion_per_age.py b/tools/statistics/analyse/completion_per_age.py index 8df04e3..efd597f 100644 --- a/tools/statistics/analyse/completion_per_age.py +++ b/tools/statistics/analyse/completion_per_age.py @@ -6,7 +6,7 @@ import numpy as np from tools.statistics import extract -def analyse(datas: list[dict]): +def analyse(datas: list[dict]) -> plt.Figure: ages_completion: dict[int, int] = defaultdict(lambda: 0) ages_count: dict[int, int] = defaultdict(lambda: 0) @@ -34,6 +34,7 @@ def analyse(datas: list[dict]): axes.set_title("Nombre moyen de mission complété par âge") # bar chart - axes.bar(x, y) + bins = np.arange(min(x), max(x), 1) + axes.hist(x, bins, weights=y, edgecolor="black") - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/completion_per_experience.py b/tools/statistics/analyse/completion_per_experience.py index 467df59..ada5e62 100644 --- a/tools/statistics/analyse/completion_per_experience.py +++ b/tools/statistics/analyse/completion_per_experience.py @@ -1,12 +1,12 @@ import matplotlib.pyplot as plt import numpy as np -from tools.statistics import extract +from tools.statistics import extract, ressource -def analyse(datas: list[dict]): - experience_completion: dict[str, int] = {"yes": 0, "mixed": 0, "no": 0} - experience_count: dict[str, int] = {"yes": 0, "mixed": 0, "no": 0} +def analyse(datas: list[dict]) -> plt.Figure: + experience_completion: dict[str, int] = dict.fromkeys(ressource.experience.choices, 0) + experience_count: dict[str, int] = dict.fromkeys(ressource.experience.choices, 0) for data in datas: experience = extract.experience.extract(data) @@ -32,6 +32,6 @@ def analyse(datas: list[dict]): axes.set_title("Nombre moyen de mission complété par expérience") # bar chart - axes.bar(x, y) + axes.bar(x, y, edgecolor='black') - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/completion_per_language.py b/tools/statistics/analyse/completion_per_language.py new file mode 100644 index 0000000..1d2e608 --- /dev/null +++ b/tools/statistics/analyse/completion_per_language.py @@ -0,0 +1,39 @@ +from collections import defaultdict + +import matplotlib.pyplot as plt +import numpy as np + +from tools.statistics import extract + + +def analyse(datas: list[dict]) -> plt.Figure: + languages_completion: dict[str, int] = defaultdict(lambda: 0) + languages_count: dict[str, int] = defaultdict(lambda: 0) + + for data in datas: + language = extract.language.extract(data) + languages_count[language] += 1 + + for survey, survey_data in data["surveys"].items(): + # only scan survey mission + if not survey.startswith("mission-"): + continue + + if extract.mission_completed.extract(data, survey): + languages_completion[language] += 1 + + x = list(languages_completion.keys()) + y = ( + np.array(list(languages_completion.values())) + / np.array(list(languages_count.values())) + ) + + # prepare plotting + figure: plt.Figure = plt.figure() + axes = figure.add_subplot(1, 1, 1) + axes.set_title("Nombre moyen de mission complété par langue") + + # bar chart + axes.bar(x, y, edgecolor='black') + + return figure diff --git a/tools/statistics/analyse/completion_per_mission.py b/tools/statistics/analyse/completion_per_mission.py index 2924e8d..24bce66 100644 --- a/tools/statistics/analyse/completion_per_mission.py +++ b/tools/statistics/analyse/completion_per_mission.py @@ -1,23 +1,12 @@ import matplotlib.pyplot as plt -from tools.statistics import extract +from tools.statistics import extract, ressource -def analyse(datas: list[dict]): - completions: dict[str] = { - "mission-language": 0, - "mission-price": 0, - "mission-community-hub": 0, - "mission-game-page": 0, - "mission-game-dlc": 0, - "mission-actuality-new": 0, - "mission-profile": 0, - "mission-game-discussion": 0, - "mission-gift-card": 0, - "mission-workshop": 0, - } +def analyse(datas: list[dict]) -> plt.Figure: + completions: dict[str] = dict.fromkeys(ressource.mission.choices, 0) - # NOTE : séparé avant / après grosse mise à jour pour carte cadeau ? + # TODO : couleur par mission for data in datas: for survey in data["surveys"].keys(): @@ -37,8 +26,8 @@ def analyse(datas: list[dict]): axes.set_title("Nombre de personne ayant réussi par mission") # bar chart - axes.bar(x, y) + axes.bar(x, y, edgecolor='black') axes.set_xticks(x) axes.set_xticklabels(x, rotation=45) - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/completion_per_usage.py b/tools/statistics/analyse/completion_per_usage.py index 4f9655c..00bbaba 100644 --- a/tools/statistics/analyse/completion_per_usage.py +++ b/tools/statistics/analyse/completion_per_usage.py @@ -1,12 +1,12 @@ import matplotlib.pyplot as plt import numpy as np -from tools.statistics import extract +from tools.statistics import extract, ressource -def analyse(datas: list[dict]): - usage_completion: dict[str, int] = {"always": 0, "often": 0, "sometime": 0, "rarely": 0, "never": 0} - usage_count: dict[str, int] = {"always": 0, "often": 0, "sometime": 0, "rarely": 0, "never": 0} +def analyse(datas: list[dict]) -> plt.Figure: + usage_completion: dict[str, int] = dict.fromkeys(ressource.usage.choices, 0) + usage_count: dict[str, int] = dict.fromkeys(ressource.usage.choices, 0) for data in datas: usage = next(filter( @@ -36,6 +36,6 @@ def analyse(datas: list[dict]): axes.set_title("Nombre moyen de mission complété par niveau") # bar chart - axes.bar(x, y) + axes.bar(x, y, edgecolor='black') - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/duration_per_age.py b/tools/statistics/analyse/duration_per_age.py index 8da51a5..677bb70 100644 --- a/tools/statistics/analyse/duration_per_age.py +++ b/tools/statistics/analyse/duration_per_age.py @@ -6,11 +6,11 @@ import numpy as np from tools.statistics import extract -def analyse(datas: list[dict]): +def analyse(datas: list[dict]) -> plt.Figure: ages_duration: dict[int, int] = defaultdict(lambda: 0) ages_count: dict[int, int] = defaultdict(lambda: 0) - # TODO: faire des tranches d'âges ? + # TODO: affichage en minutes ? for data in datas: age = extract.age.extract(data) @@ -35,6 +35,7 @@ def analyse(datas: list[dict]): axes.set_title("Temps moyen passé par âge") # bar chart - axes.bar(x, y) + bins = np.arange(min(x), max(x), 1) + axes.hist(x, bins, weights=y, edgecolor="black") - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/duration_per_experience.py b/tools/statistics/analyse/duration_per_experience.py index 260692c..010cf6c 100644 --- a/tools/statistics/analyse/duration_per_experience.py +++ b/tools/statistics/analyse/duration_per_experience.py @@ -1,12 +1,12 @@ import matplotlib.pyplot as plt import numpy as np -from tools.statistics import extract +from tools.statistics import extract, ressource -def analyse(datas: list[dict]): - experience_duration: dict[str, int] = {"yes": 0, "mixed": 0, "no": 0} - experience_count: dict[str, int] = {"yes": 0, "mixed": 0, "no": 0} +def analyse(datas: list[dict]) -> plt.Figure: + experience_duration: dict[str, int] = dict.fromkeys(ressource.experience.choices, 0) + experience_count: dict[str, int] = dict.fromkeys(ressource.experience.choices, 0) for data in datas: experience = extract.experience.extract(data) @@ -32,6 +32,6 @@ def analyse(datas: list[dict]): axes.set_title("Temps moyen passé par expérience") # bar chart - axes.bar(x, y) + axes.bar(x, y, edgecolor='black') - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/duration_per_language.py b/tools/statistics/analyse/duration_per_language.py new file mode 100644 index 0000000..cea059d --- /dev/null +++ b/tools/statistics/analyse/duration_per_language.py @@ -0,0 +1,38 @@ +from collections import defaultdict + +import matplotlib.pyplot as plt +import numpy as np + +from tools.statistics import extract + + +def analyse(datas: list[dict]) -> plt.Figure: + languages_duration: dict[str, int] = defaultdict(lambda: 0) + languages_count: dict[str, int] = defaultdict(lambda: 0) + + for data in datas: + language = extract.language.extract(data) + languages_count[language] += 1 + + for survey in data["surveys"].keys(): + # only scan survey mission + if not survey.startswith("mission-"): + continue + + languages_duration[language] += extract.mission_duration.extract(data, survey) + + x = list(languages_duration.keys()) + y = ( + np.array(list(languages_duration.values())) + / np.array(list(languages_count.values())) + ) + + # prepare plotting + figure: plt.Figure = plt.figure() + axes = figure.add_subplot(1, 1, 1) + axes.set_title("Temps moyen passé par langue") + + # bar chart + axes.bar(x, y, edgecolor='black') + + return figure diff --git a/tools/statistics/analyse/duration_per_mission.py b/tools/statistics/analyse/duration_per_mission.py index 365efa0..e415dea 100644 --- a/tools/statistics/analyse/duration_per_mission.py +++ b/tools/statistics/analyse/duration_per_mission.py @@ -1,25 +1,14 @@ import matplotlib.pyplot as plt import numpy as np -from tools.statistics import extract +from tools.statistics import extract, ressource -def analyse(datas: list[dict]): - durations: dict[str] = { - "mission-language": 0, - "mission-price": 0, - "mission-community-hub": 0, - "mission-game-page": 0, - "mission-game-dlc": 0, - "mission-actuality-new": 0, - "mission-profile": 0, - "mission-game-discussion": 0, - "mission-gift-card": 0, - "mission-workshop": 0, - } +def analyse(datas: list[dict]) -> plt.Figure: + durations: dict[str] = dict.fromkeys(ressource.mission.choices, 0) - # NOTE : séparé avant / après grosse mise à jour pour carte cadeau ? - # NOTE : marqué en rouge la durée d'abandon ? + # TODO : marqué en rouge la durée d'abandon ? + # TODO : couleur par mission for data in datas: for survey in data["surveys"].keys(): @@ -38,8 +27,8 @@ def analyse(datas: list[dict]): axes.set_title("Temps moyen passé par test") # bar chart - axes.bar(x, y) + axes.bar(x, y, edgecolor='black') axes.set_xticks(x) axes.set_xticklabels(x, rotation=45) - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/duration_per_usage.py b/tools/statistics/analyse/duration_per_usage.py index fdec2c5..08650fb 100644 --- a/tools/statistics/analyse/duration_per_usage.py +++ b/tools/statistics/analyse/duration_per_usage.py @@ -1,14 +1,12 @@ import matplotlib.pyplot as plt import numpy as np -from tools.statistics import extract +from tools.statistics import extract, ressource -def analyse(datas: list[dict]): - usage_completion: dict[str, int] = {"always": 0, "often": 0, "sometime": 0, "rarely": 0, "never": 0} - usage_count: dict[str, int] = {"always": 0, "often": 0, "sometime": 0, "rarely": 0, "never": 0} - - # TODO: faire des tranches d'âges ? +def analyse(datas: list[dict]) -> plt.Figure: + usage_completion: dict[str, int] = dict.fromkeys(ressource.usage.choices, 0) + usage_count: dict[str, int] = dict.fromkeys(ressource.usage.choices, 0) for data in datas: usage = extract.usage.extract(data) @@ -33,6 +31,6 @@ def analyse(datas: list[dict]): axes.set_title("Temps moyen passé par niveau") # bar chart - axes.bar(x, y) + axes.bar(x, y, edgecolor='black') - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/experience.py b/tools/statistics/analyse/experience.py index 2730e67..a5dd8ba 100644 --- a/tools/statistics/analyse/experience.py +++ b/tools/statistics/analyse/experience.py @@ -2,11 +2,11 @@ from collections import Counter import matplotlib.pyplot as plt -from tools.statistics import extract +from tools.statistics import extract, ressource -def analyse(datas: list[dict]): - experiences: dict[str, int] = {"yes": 0, "mixed": 0, "no": 0} +def analyse(datas: list[dict]) -> plt.Figure: + experiences: dict[str, int] = dict.fromkeys(ressource.experience.choices, 0) for data in datas: experience = extract.experience.extract(data) experiences[experience] += 1 @@ -21,6 +21,6 @@ def analyse(datas: list[dict]): axes.set_title("Nombre de personne par expérience") # bar chart - axes.bar(x, y) + axes.bar(x, y, edgecolor='black') - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/hardest_mission.py b/tools/statistics/analyse/hardest_mission.py index e55f07a..e40cc8d 100644 --- a/tools/statistics/analyse/hardest_mission.py +++ b/tools/statistics/analyse/hardest_mission.py @@ -1,21 +1,10 @@ import matplotlib.pyplot as plt -from tools.statistics import extract +from tools.statistics import extract, ressource -def analyse(datas: list[dict]): - missions = { - "mission-language": 0, - "mission-price": 0, - "mission-community-hub": 0, - "mission-game-page": 0, - "mission-game-dlc": 0, - "mission-actuality-new": 0, - "mission-profile": 0, - "mission-game-discussion": 0, - "mission-gift-card": 0, - "mission-workshop": 0 - } +def analyse(datas: list[dict]) -> plt.Figure: + missions = dict.fromkeys(ressource.mission.choices, 0) for data in datas: missions[extract.hardest_mission.extract(data)] += 1 @@ -29,8 +18,8 @@ def analyse(datas: list[dict]): axes.set_title("Mission la plus difficile des personnes sondées") # bar chart - axes.bar(x, y) + axes.bar(x, y, edgecolor='black') axes.set_xticks(x) axes.set_xticklabels(x, rotation=45) - plt.show(block=True) + return figure diff --git a/tools/statistics/analyse/language.py b/tools/statistics/analyse/language.py new file mode 100644 index 0000000..c616077 --- /dev/null +++ b/tools/statistics/analyse/language.py @@ -0,0 +1,23 @@ +from collections import Counter + +import matplotlib.pyplot as plt + +from tools.statistics import extract + + +def analyse(datas: list[dict]) -> plt.Figure: + languages = list(map(extract.language.extract, datas)) + + counter = Counter(languages) + x = list(counter.keys()) + y = list(counter.values()) + + # prepare plotting + figure: plt.Figure = plt.figure() + axes = figure.add_subplot(1, 1, 1) + axes.set_title("Langue des personnes sondées") + + # bar chart + axes.bar(x, y, edgecolor='black') + + return figure diff --git a/tools/statistics/analyse/usage.py b/tools/statistics/analyse/usage.py index 55a9ec1..37eb787 100644 --- a/tools/statistics/analyse/usage.py +++ b/tools/statistics/analyse/usage.py @@ -1,12 +1,12 @@ import matplotlib.pyplot as plt -from tools.statistics import extract +from tools.statistics import extract, ressource -def analyse(datas: list[dict]): +def analyse(datas: list[dict]) -> plt.Figure: usage_data = list(map(extract.usage.extract, datas)) - usages: dict[str, int] = {"always": 0, "often": 0, "sometime": 0, "rarely": 0, "never": 0} + usages: dict[str, int] = dict.fromkeys(ressource.usage.choices, 0) for usage in usage_data: usages[usage] += 1 @@ -19,6 +19,6 @@ def analyse(datas: list[dict]): axes.set_title("Expérience antérieure des personnes sondées") # bar chart - axes.bar(x, y) + axes.bar(x, y, edgecolor='black') - plt.show(block=True) + return figure diff --git a/tools/statistics/extract/__init__.py b/tools/statistics/extract/__init__.py index 980fe61..b6d93b2 100644 --- a/tools/statistics/extract/__init__.py +++ b/tools/statistics/extract/__init__.py @@ -4,3 +4,4 @@ from . import mission_duration from . import mission_completed from . import experience from . import hardest_mission +from . import language diff --git a/tools/statistics/extract/language.py b/tools/statistics/extract/language.py new file mode 100644 index 0000000..b5c6ab4 --- /dev/null +++ b/tools/statistics/extract/language.py @@ -0,0 +1,2 @@ +def extract(data: dict) -> str: + return data["language"] diff --git a/tools/statistics/main.py b/tools/statistics/main.py index 53360e7..64a931c 100644 --- a/tools/statistics/main.py +++ b/tools/statistics/main.py @@ -2,30 +2,63 @@ from pathlib import Path from tools.statistics.analyse import (age, usage, completion_per_mission, duration_per_mission, completion_per_age, completion_per_usage, duration_per_age, duration_per_usage, - completion_per_experience, duration_per_experience, experience, hardest_mission) + completion_per_experience, duration_per_experience, experience, hardest_mission, + language, duration_per_language, completion_per_language) if __name__ == "__main__": from source.utils import compress - directory = Path(r"./sondage/") + # import matplotlib + # matplotlib.use("pgf") + # matplotlib.rcParams.update({ + # "pgf.texsystem": "pdflatex", + # 'font.family': 'serif', + # 'font.size': 11, + # 'text.usetex': True, + # 'pgf.rcfonts': False, + # }) - # read every people survey data - datas = [ + sondage_path = Path(r"./sondage/") + graph_path = Path(r"./graph/") + graph_path.mkdir(parents=True, exist_ok=True) + + # read every peoples survey data + datas_all = [ compress.uncompress_data(file.read_bytes()) # decompress the data - for file in directory.rglob("*.rsl") + for file in sondage_path.rglob("*.rsl") ] - age.analyse(datas) - usage.analyse(datas) - experience.analyse(datas) - hardest_mission.analyse(datas) + # keep only the datas before the steam new year update + datas_steam_version_1 = list(filter(lambda data: data["time"] < 1704409200, datas_all)) - completion_per_mission.analyse(datas) - completion_per_age.analyse(datas) - completion_per_usage.analyse(datas) - completion_per_experience.analyse(datas) + # keep only the datas after the steam new year update + datas_steam_version_2 = list(filter(lambda data: data["time"] >= 1704409200, datas_all)) - duration_per_mission.analyse(datas) - duration_per_age.analyse(datas) - duration_per_usage.analyse(datas) - duration_per_experience.analyse(datas) + # regroup all the datas + datasets = { + "all": datas_all, + "version_1": datas_steam_version_1, + "version_2": datas_steam_version_2, + } + + for datas_name, datas in datasets.items(): + directory = graph_path / datas_name + directory.mkdir(parents=True, exist_ok=True) + + age.analyse(datas).savefig(directory / "age.svg") + usage.analyse(datas).savefig(directory / "usage.svg") + experience.analyse(datas).savefig(directory / "experience.svg") + hardest_mission.analyse(datas).savefig(directory / "hardest_mission.svg") + language.analyse(datas).savefig(directory / "language.svg") + + completion_per_mission.analyse(datas).savefig(directory / "completion_per_mission.svg") + completion_per_age.analyse(datas).savefig(directory / "completion_per_age.svg") + completion_per_usage.analyse(datas).savefig(directory / "completion_per_usage.svg") + completion_per_experience.analyse(datas).savefig(directory / "completion_per_experience.svg") + completion_per_language.analyse(datas).savefig(directory / "completion_per_language.svg") + + duration_per_mission.analyse(datas).savefig(directory / "duration_per_mission.svg") + duration_per_age.analyse(datas).savefig(directory / "duration_per_age.svg") + duration_per_usage.analyse(datas).savefig(directory / "duration_per_usage.svg") + duration_per_experience.analyse(datas).savefig(directory / "duration_per_experience.svg") + duration_per_language.analyse(datas).savefig(directory / "duration_per_language.svg") diff --git a/tools/statistics/ressource/__init__.py b/tools/statistics/ressource/__init__.py new file mode 100644 index 0000000..22d9a93 --- /dev/null +++ b/tools/statistics/ressource/__init__.py @@ -0,0 +1,3 @@ +from . import experience +from . import mission +from . import usage diff --git a/tools/statistics/ressource/experience.py b/tools/statistics/ressource/experience.py new file mode 100644 index 0000000..8797b67 --- /dev/null +++ b/tools/statistics/ressource/experience.py @@ -0,0 +1 @@ +choices = ["yes", "mixed", "no"] diff --git a/tools/statistics/ressource/mission.py b/tools/statistics/ressource/mission.py new file mode 100644 index 0000000..d3d28db --- /dev/null +++ b/tools/statistics/ressource/mission.py @@ -0,0 +1,12 @@ +choices = [ + "mission-language", + "mission-price", + "mission-community-hub", + "mission-game-page", + "mission-game-dlc", + "mission-actuality-new", + "mission-profile", + "mission-game-discussion", + "mission-gift-card", + "mission-workshop", +] diff --git a/tools/statistics/ressource/usage.py b/tools/statistics/ressource/usage.py new file mode 100644 index 0000000..3d4e176 --- /dev/null +++ b/tools/statistics/ressource/usage.py @@ -0,0 +1 @@ +choices = ["always", "often", "sometime", "rarely", "never"] diff --git a/tools/statistics/survey/IntegerQuestion.py b/tools/statistics/survey/IntegerQuestion.py deleted file mode 100644 index 828bdfa..0000000 --- a/tools/statistics/survey/IntegerQuestion.py +++ /dev/null @@ -1,6 +0,0 @@ -class IntegerQuestion: - def get_average(self, datas: list[int]): - return sum(datas) / len(datas) - - def get_median(self, datas: list[int]): - return datas[len(datas) // 2] diff --git a/tools/statistics/survey/__init__.py b/tools/statistics/survey/__init__.py deleted file mode 100644 index e69de29..0000000