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