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