initial commit
This commit is contained in:
commit
db4f9505da
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
mocodo_notebook
|
||||
**__pycache__**
|
||||
output
|
12
README.md
Normal file
12
README.md
Normal file
@ -0,0 +1,12 @@
|
||||
## TLDR
|
||||
|
||||
Le module python mocodo est un wrapper pour le programe mocodo, il peut etre utilusé pour faciliter des scipts
|
||||
on utilise donc le module
|
||||
```python
|
||||
from mocodo.api import mocodo
|
||||
```
|
||||
ou etre utilisé dans un notebook, dans ce cas on utilse
|
||||
``` python
|
||||
from mocodo.magic import mocodo
|
||||
```
|
||||
L'avantage de ce dernier est qu'il affiche les resultats dans le notebook (en plus de gerener les fichiers).
|
128
mcd_mocodo.py
Normal file
128
mcd_mocodo.py
Normal file
@ -0,0 +1,128 @@
|
||||
"""
|
||||
Domaines de l'application exprimés en MCD mocodo
|
||||
"""
|
||||
|
||||
apprenant = "apprenant:id_apprenant,nom,prenom,date_de_naissance,classe,reponses_questionnaire\n"
|
||||
compte = "compte:login,email,password,état,date_de_derniere_co,nom,prenom,mobile,date_de_création,moyen_paiement,est_connecté\n"
|
||||
|
||||
auth = f"""
|
||||
{compte}
|
||||
{apprenant}
|
||||
licence:clé,date_utilisation
|
||||
promotion:code, date_de_création,durée_reduction,reduction,conditions
|
||||
abonnement:nom_abonnement,prix,date_de_début,date_de_fin
|
||||
droit:id_droit,niveau_d_access,nb_profil_crée,nb_user_invite,peut_modifier_profil,peut_supprimer_profil, peut_faire_activité, peut_faire_test, peut_consulter_hist_activité, peut_consulter_hist_test
|
||||
questionnaire: id_questionnaire,forme_rappel, disponibilité,reponses_questionnaire
|
||||
probleme_signalé:id_prob,version de l'application,support,date du signalement,commentaire
|
||||
question_posée:id_quest,question
|
||||
anonyme:id,email
|
||||
|
||||
inviter,0N compte,0N compte,0N apprenant,0N droit,0N licence: date invitation,
|
||||
utiliser,01 compte,0N licence
|
||||
repondre, 01 compte, 0N questionnaire
|
||||
créer, 0N compte,0N apprenant
|
||||
acheter, 0N compte, 0N promotion, 0N licence, 0N abonnement : date d'achat
|
||||
assigner, 11 abonnement, 0N droit
|
||||
poser, 11 question_posée, 0N anonyme
|
||||
poser1, 11 question_posée, 0N compte
|
||||
signaler, 11 probleme_signalé, 0N anonyme
|
||||
signaler1, 11 probleme_signalé, 0N compte
|
||||
"""
|
||||
|
||||
fiche_activite = "fiche_activité:id_fiche,comp_travaillé,pourquoi_travailler_comp,variantes\n"
|
||||
activite = "activité: id_activité, caracteristiques ia\n"
|
||||
|
||||
activites = f"""
|
||||
{apprenant}
|
||||
{compte}
|
||||
{activite}
|
||||
{fiche_activite}
|
||||
activité_ajoutee: titre, caracteristiques ia
|
||||
historique_activité: id, durée, date de réalisation, note difficulté,note plaisir,note concentration, note durée, activité proposée par algo
|
||||
|
||||
réaliser, 0N compte, 0N activité, 11 historique_activite, 0N apprenant : points accordés
|
||||
ajouter, 0N compte,0N activité_ajoutee, 11 historique_activité , 0N apprenant
|
||||
posséser, 11 historique_activité, 0N apprenant
|
||||
decrire, 0N fiche_activite, 11 activité
|
||||
"""
|
||||
|
||||
recompenses = f"""
|
||||
{apprenant}
|
||||
{compte}
|
||||
palier:id_palier,nombre de points
|
||||
defi:id_defi,nom,objectif,date limite
|
||||
badge: id_badge,nom,description,image
|
||||
{activite}
|
||||
|
||||
atteindre, 0N apprenant, 0N palier
|
||||
réaliser, 0N compte, 0N activité, 0N apprenant : points accordés
|
||||
réaliser3, 0N apprenant, 0N defi
|
||||
debloquer, 0N defi, 11 badge
|
||||
debloquer1, 0N palier, 11 badge
|
||||
"""
|
||||
|
||||
#la relation réaliser est dupliquée entre des deux domaines, je garde un version sans pour la concatenation finale
|
||||
recompenses_nr = f"""
|
||||
{apprenant}
|
||||
{compte}
|
||||
palier:id_palier,nombre de points
|
||||
defi:id_defi,nom,objectif,date limite
|
||||
badge: id_badge,nom,description,image
|
||||
{activite}
|
||||
|
||||
atteindre, 0N apprenant, 0N palier
|
||||
réaliser3, 0N apprenant, 0N defi
|
||||
debloquer, 0N defi, 11 badge
|
||||
debloquer1, 0N palier, 11 badge
|
||||
"""
|
||||
|
||||
ressources = f"""
|
||||
mot_clé: mot
|
||||
Ressource:id_ress,titre,description,date_de_publication,type,niveau_d_access
|
||||
vidéo:id_video,lien_vers_site_externe
|
||||
article:id_article,lien_vers_site_externe
|
||||
{fiche_activite}
|
||||
|
||||
contenir,0N mot_clé,0N Ressource
|
||||
etre1, 0N Ressource, 11 vidéo
|
||||
etre2, 0N Ressource, 11 article
|
||||
etre3, 0N Ressource, 11 fiche_activité
|
||||
"""
|
||||
|
||||
test =f"""
|
||||
test_de_positionnement: id_testpos, consigne, caracteristiques ia
|
||||
test_de_progression: id_testpro, consigne
|
||||
historique_test: id_entree, durée, score, temps de réaction moyen, date de réalisation
|
||||
{apprenant}
|
||||
{compte}
|
||||
|
||||
réaliser1, 0N compte,0N test_de_progression, 11 historique_test, 0N apprenant
|
||||
réaliser2, 0N compte,0N test_de_positionnement, 11 historique test, 0N apprenant
|
||||
posséser1, 11 historique_test, 0N apprenant
|
||||
"""
|
||||
|
||||
entités = [
|
||||
apprenant,
|
||||
compte,
|
||||
fiche_activite,
|
||||
activite,
|
||||
]
|
||||
|
||||
domaines = [
|
||||
auth,
|
||||
activites,
|
||||
recompenses_nr,
|
||||
ressources,
|
||||
test,
|
||||
]
|
||||
|
||||
texte_complet = ""
|
||||
for domaine in domaines:
|
||||
for entite in entités:
|
||||
if entite in domaine:
|
||||
domaine = domaine.replace(entite, "")
|
||||
texte_complet += domaine
|
||||
|
||||
for entite in entités:
|
||||
texte_complet += entite
|
||||
|
1409
mocodo_notebook.ipynb
Normal file
1409
mocodo_notebook.ipynb
Normal file
File diff suppressed because it is too large
Load Diff
46
mocodo_script.py
Normal file
46
mocodo_script.py
Normal file
@ -0,0 +1,46 @@
|
||||
import mcd_mocodo as mcd
|
||||
from mocodo.api import mocodo
|
||||
import pathlib
|
||||
import os
|
||||
|
||||
DOSSIER_DE_SORTIE = "output"
|
||||
SUPPRIMER_FICHERTEXTE = True
|
||||
SUPPRIMER_GEOJSON = True
|
||||
|
||||
domaines = [
|
||||
# (mcd.nom_du_domaine, "nom_du_fichier", seed),
|
||||
(mcd.auth, "auth",4),
|
||||
(mcd.activites, "activites",2),
|
||||
(mcd.ressources, "ressources",2),
|
||||
(mcd.test, "test",3),
|
||||
(mcd.recompenses, "recompenses",3),
|
||||
]
|
||||
|
||||
def generer_mcd(domaine:str,nom:str,ga:bool=False,seed:float=1):
|
||||
"""
|
||||
Generer un graphe MCD à partir d'un domaine exprimé en MCD mocodo
|
||||
|
||||
:param domaine: Le domaine exprimé en MCD mocodo
|
||||
:type domaine: str
|
||||
:param nom: Le nom du fichier de sortie
|
||||
:type nom: str
|
||||
:param ga: Utiliser l'algorithme génétique pour arranger les entités
|
||||
:type ga: bool
|
||||
:param seed: La graine pour le réarangement des entités, par défaut 1
|
||||
:param seed: int
|
||||
|
||||
:return: None
|
||||
"""
|
||||
with open(f"{nom}.mcd", "w") as f:
|
||||
f.write(domaine)
|
||||
result = mocodo(f'-i {nom} --colors ocean -t arrange{":algo=ga" if ga else ""} --seed {seed} --detect_overlaps')
|
||||
print(result)
|
||||
if SUPPRIMER_FICHERTEXTE : pathlib.Path(f"{nom}.mcd").unlink(missing_ok=True)
|
||||
if SUPPRIMER_GEOJSON : pathlib.Path(f"{nom}_geo.json").unlink(missing_ok=True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
pathlib.Path(DOSSIER_DE_SORTIE).mkdir(parents=True, exist_ok=True)
|
||||
os.chdir(DOSSIER_DE_SORTIE)
|
||||
|
||||
for mcd_mocodo, nom, seed in domaines:
|
||||
generer_mcd(mcd_mocodo, nom, seed=seed)
|
43
requierements.txt
Normal file
43
requierements.txt
Normal file
@ -0,0 +1,43 @@
|
||||
asttokens==2.4.1
|
||||
cairocffi==1.6.1
|
||||
CairoSVG==2.7.1
|
||||
certifi==2024.2.2
|
||||
cffi==1.16.0
|
||||
charset-normalizer==3.3.2
|
||||
comm==0.2.2
|
||||
cssselect2==0.7.0
|
||||
debugpy==1.8.1
|
||||
decorator==5.1.1
|
||||
defusedxml==0.7.1
|
||||
executing==2.0.1
|
||||
idna==3.6
|
||||
ipykernel==6.29.3
|
||||
ipython==8.22.2
|
||||
jedi==0.19.1
|
||||
jupyter_client==8.6.1
|
||||
jupyter_core==5.7.2
|
||||
matplotlib-inline==0.1.6
|
||||
mocodo==4.2.4
|
||||
nest-asyncio==1.6.0
|
||||
packaging==24.0
|
||||
parso==0.8.3
|
||||
pexpect==4.9.0
|
||||
pillow==10.2.0
|
||||
platformdirs==4.2.0
|
||||
prompt-toolkit==3.0.43
|
||||
psutil==5.9.8
|
||||
ptyprocess==0.7.0
|
||||
pure-eval==0.2.2
|
||||
pycparser==2.21
|
||||
Pygments==2.17.2
|
||||
python-dateutil==2.9.0.post0
|
||||
pyzmq==25.1.2
|
||||
requests==2.31.0
|
||||
six==1.16.0
|
||||
stack-data==0.6.3
|
||||
tinycss2==1.2.1
|
||||
tornado==6.4
|
||||
traitlets==5.14.2
|
||||
urllib3==2.2.1
|
||||
wcwidth==0.2.13
|
||||
webencodings==0.5.1
|
Loading…
Reference in New Issue
Block a user