Bienvenue à la documentation de ParcourSup.py !¶
:fr: Un clone en Python 3 de Parcoursup, écrit à but didactique¶
Écrit par deux doctorants de l’équipe SCEE de CentraleSupélec, campus de Rennes, Lilian Besson (@Naereen) et Bastien Trotobas (@BastienTr), et d”autres collaborateur-trice-s.
Présentation¶
Ce dépôt contient un clone (presque complet) des algorithmes régissant la plateforme Parcoursup, qui gère depuis 2018 les affectations des élèves de classe de Terminale (🇫🇷 dans les lycées en France) dans leurs formations dans l’enseignement supérieur.
Les algorithmes et l’implémentation officielle (en Java) ont été distribués en accès libre, et sous licence libre (GPL), en mai 2018. En 2018, ils étaient hébergés sur ce site (framagit.org/parcoursup/algorithmes-de-parcoursup).
- Nous proposons ici une implémentation complète des différents algorithmes de Parcoursup, écrite en Python 3, dans un style très clair, avec des commentaires, et une documentation.
- Nous avons pour objectif de comprendre et d’expliquer ces algorithmes, en utilisant au maximum des notions et des modules Python qui soient abordables et compréhensibles par des élèves de classes préparatoires scientifiques (typiquement des MPSI).
- Note : Vous pouvez contribuer si vous le souhaiter ! Une erreur à signaler ?, ou une contribution possible ? :clap: Merci d’avance !
Explications¶
- Pour l’instant, nous avons implémenté dans le dossier
parcoursup/
un clone complet du code Java initial, écrit en Python 3. - Et dans le dossier
notebooks/
nous proposons des implémentations simplifiées des principaux algorithmes, écrites sans dépendances et dans un style très didactique, avec des visualisations interactives afin de permettre à tout le monde d’expérimenter un peu et de visualiser le comportement des algorithmes. L’accent est mis sur la compréhension rapide de l’influence des différents paramètres numériques. - TODO expliquer l’algorithme dans les grandes lignes, avec notre propre vocabulaire, ici.
Organisation de ce dépôt¶
- Des visualisations sont dans le dossier
notebooks/
. TODO encore à travailler ! - Le code des algorithmes est dans le dossier
parcoursup/
, comme le code Java initial, c’est découpé en deux modules,ordreappel
etpropositions
, - Les (exemples de) données synthétiques générées sont dans le dossier
donnees/
, - Des tests (plusieurs centaines) sont présents dans le dossier
tests/
, inspirés par ce projet, - Une documentation de notre implémentation complète est disponible en ligne, sur la page suivante, construite avec Sphinx à partir des fichiers présents dans le dossier
docs/
, - Des utilitaires sont dans le dossier
utils/
,
Documentation officielle et ressources¶
- La page officielle de présentation de Parcoursup est ici (en 2018).
Communications journalistiques, entre le 23 mai 2018 et le 15 juillet 2018 :
Les indicateurs quotidiennement publiés par le ministère sont sur cette page là (en juin 2018).
Cette carte qui montre jour après jour les résultats donnés par Parcoursup : statistiques.parcoursup.fr.
Nous voulons proposer notre propre carte de visualisation, c’est en cours…
Des détails sur les algorithmes :
- Ce document texte et cet autre document PDF donnent plein d’explications.
- Ce texte du Journal Officiel montre l’autorisation donnée par la CNIL pour la création de la base de données pour Parcoursup, et détaille un peu toutes les informations stockées pour le service. Il est important de garder en tête que ces données ne sont pas utilisées par les algorithmes de Parcoursup, qui n’utilisent qu’un identifiant unique et anonyme pour identifier chaque candidat-e.
Autres ressources, moins techniques mais plus pédagogiques :
- Le dossier de presse du ministère pour Parcoursup
- Ces articles sur des blogs du Monde: sur ingenuingenieur.blog.lemonde.fr, sur enseigner.blog.lemonde.fr ou sur binaire.blog.lemonde.fr.
- Cet autre article par Clémence Réda est instructif.
Exemples¶
Installation¶
Ces lignes de Bash (à exécuter sur une machine type GNU/Linux ou un Mac avec les outils standards) clone ce dépôt, et installent un virtualenv
Python et installent les dépendances dans cet environnement virtuel :
cd /tmp/
git clone https://GitHub.com/Naereen/ParcourSup.py
cd Parcoursup.py/
make install
Note : Il n’est pas nécessaire d’utiliser unvirtualenv
, mais c’est recommandé. Vous pouvez simplement installer les modules requis avecsudo pip install -r requirements.txt
.
Note : notre code n’est pas spécifiquement écrit pour une machine utilisant GNU/Linux, et il devrait fonctionner sur n’importe quelle plateforme qui supporte Python 3.6 (Microsoft Windows et Mac OS X notamment). Il est testé sous GNU/Linux (XUbuntu) et sous Microsoft Windows 7. N’hésitez pas à signaler un problème, si besoin. :clap: Merci d’avance !
Tests
¶
Les tests qui reproduisent (presque) parfaitement les données d’exemples peuvent être exécutés avec les deux commandes suivantes :
- Ordres d’appel :
$ . env/bin/activate ; python3 ./parcoursup/ordreappel/__init__.py
...
- Proposition de vœux :
$ . env/bin/activate ; python3 ./parcoursup/propositions/__init__.py
...
- Ces deux tests prennent environ 30 secondes chacun.
Note : Il n’est pas nécessaire d’utiliser unvirtualenv
, mais c’est recommandé. Vous pouvez simplement faire les tests avecpython3 ./parcoursup/ordreappel/__init__.py
etpython3 ./parcoursup/propositions/__init__.py
.
- Des tests supplémentaires ont été récemment ajoutés (voir #3).
Construire la documentation ?
¶
- Demande d’avoir le module
sphinx
installé. (sudo pip3 install sphinx
si besoin). - Puis, dans le dossier principal, il suffit de faire :
$ make docs
- Sous Windows ou si GNU Make n’est pas disponible, vous pouvez construire la documentation manuellement avec les deux commandes suivantes :
$ sphinx-apidoc -f -o ./docs -e -M ./parcoursup/
$ sphinx-build -M html ./docs ./_build
$ ./docs/.fixes_html_in_doc.sh
À propos¶
Language et versions ?¶
Python v3.6+. Avec les modules suivants :
- Numpy pour les tableaux,
- La bibliothèque standard pour tout le reste.
- ipython, Jupyter pour les notebooks.
- tqdm sont optionnels.
:scroll: Licence ?
¶
Code libre, sous licence MIT (file LICENSE). © Lilian Besson et Bastien Trotobas et collaborateur-trice-s, 2018.
parcoursup¶
parcoursup package¶
Module principal de https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
Subpackages¶
parcoursup.ordreappel package¶
Calcul de l’ordre d’appel, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
Submodules¶
AlgoOrdreAppel, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.ordreappel.AlgoOrdreAppel.
AlgoOrdreAppel
(groupesClassements: List[parcoursup.ordreappel.GroupeClassement.GroupeClassement])[source]¶ Bases :
object
Stocke les entrées et sorties de l’algorithme de calcul d’ordre d’appel.
-
__init__
(groupesClassements: List[parcoursup.ordreappel.GroupeClassement.GroupeClassement])[source]¶ Stocke la liste non-vide de classements.
-
exporteSortie_XML
() → xml.etree.ElementTree.Element[source]¶ Converti les résultats de la sortie en un arbre XML.
-
__dict__
= mappingproxy({'__module__': 'parcoursup.ordreappel.AlgoOrdreAppel', '__doc__': " Stocke les entrées et sorties de l'algorithme de calcul d'ordre d'appel. ", '__init__': <function AlgoOrdreAppel.__init__>, 'calculeOrdresAppels': <function AlgoOrdreAppel.calculeOrdresAppels>, 'exporteEntree_XML': <function AlgoOrdreAppel.exporteEntree_XML>, 'exporteEntree_JSON': <function AlgoOrdreAppel.exporteEntree_JSON>, 'exporteSortie_XML': <function AlgoOrdreAppel.exporteSortie_XML>, 'exporteSortie_JSON': <function AlgoOrdreAppel.exporteSortie_JSON>, '__dict__': <attribute '__dict__' of 'AlgoOrdreAppel' objects>, '__weakref__': <attribute '__weakref__' of 'AlgoOrdreAppel' objects>})¶
-
__module__
= 'parcoursup.ordreappel.AlgoOrdreAppel'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
GroupeClassement, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.ordreappel.GroupeClassement.
GroupeClassement
(C_GP_COD: int, tauxMinBoursiersPourcents: int, tauxMinResidentsPourcents: int)[source]¶ Bases :
object
Classe représentant un groupe d’appel.
-
__init__
(C_GP_COD: int, tauxMinBoursiersPourcents: int, tauxMinResidentsPourcents: int)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
C_GP_COD
= None¶ C_GP_COD
-
tauxMinBoursiersPourcents
= None¶ tauxMinBoursiersPourcents
-
tauxMinResidentsPourcents
= None¶ tauxMinResidentsPourcents
-
voeuxClasses
= None¶ La liste des vœux du groupe de classement
-
ajouterVoeu
(voeu: parcoursup.ordreappel.VoeuClasse.VoeuClasse) → None[source]¶ Ajouter ce voeu à la liste actuelle.
-
calculerOrdreAppel
(verbeux: bool = False) → parcoursup.ordreappel.OrdreAppel.OrdreAppel[source]¶ Calcule de l’ordre d’appel.
-
__dict__
= mappingproxy({'__module__': 'parcoursup.ordreappel.GroupeClassement', '__doc__': " Classe représentant un groupe d'appel.", '__init__': <function GroupeClassement.__init__>, '__repr__': <function GroupeClassement.__repr__>, 'ajouterVoeu': <function GroupeClassement.ajouterVoeu>, 'calculerOrdreAppel': <function GroupeClassement.calculerOrdreAppel>, '__dict__': <attribute '__dict__' of 'GroupeClassement' objects>, '__weakref__': <attribute '__weakref__' of 'GroupeClassement' objects>})¶
-
__module__
= 'parcoursup.ordreappel.GroupeClassement'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
OrdreAppel, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.ordreappel.OrdreAppel.
OrdreAppel
[source]¶ Bases :
list
Classe représentant un ordre d’appel. Juste une liste avec une méthode en plus.
-
coefficientDivergence
() → float[source]¶ Calcule une mesure de la différence entre le classement original et l’ordre d’appel, c’est le nombre d’inversions ramené au nombre maximal d’inversions.
Le nombre maximal d’inversions est obtenu si le classement est totalement inversé (cas hypothétique), auquel cas il y a autant d’inversions que de paires non-ordonnées de candidat-e c’est-à-dire
n * (n - 1) / 2
.Note
C’est la distance de Kendall-tau.
-
__dict__
= mappingproxy({'__module__': 'parcoursup.ordreappel.OrdreAppel', '__doc__': " Classe représentant un ordre d'appel. Juste une liste avec une méthode en plus.", 'coefficientDivergence': <function OrdreAppel.coefficientDivergence>, '__dict__': <attribute '__dict__' of 'OrdreAppel' objects>, '__weakref__': <attribute '__weakref__' of 'OrdreAppel' objects>})¶
-
__module__
= 'parcoursup.ordreappel.OrdreAppel'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
VoeuClasse, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.ordreappel.VoeuClasse.
TypeCandidat
¶ Bases :
enum.Enum
Les différents types de candidats
-
BoursierNonResident
= 2¶
-
BoursierResident
= 1¶
-
NonBoursierNonResident
= 4¶
-
NonBoursierResident
= 3¶
-
__module__
= 'parcoursup.ordreappel.VoeuClasse'¶
-
-
parcoursup.ordreappel.VoeuClasse.
typeCandidat_vers_str
(typeCandidat: parcoursup.ordreappel.VoeuClasse.TypeCandidat) → str[source]¶
-
parcoursup.ordreappel.VoeuClasse.
typeCandidat_si_Boursier_etou_Resident
(estBoursier: bool, estResident: bool) → parcoursup.ordreappel.VoeuClasse.TypeCandidat[source]¶ Donne le type de candidat selon qu’il/elle soit boursier-e et/ou résident-e.
-
class
parcoursup.ordreappel.VoeuClasse.
VoeuClasse
(G_CN_COD: int, rang: int, estBoursier: bool, estResident: bool)[source]¶ Bases :
object
Classe représentant un vœu d’un candidat.
-
__init__
(G_CN_COD: int, rang: int, estBoursier: bool, estResident: bool)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
G_CN_COD
= None¶ G_CN_COD
-
rang
= None¶ rang
-
typeCandidat
= None¶ typeCandidat
-
__lt__
(voeu) → bool[source]¶ Comparateur permettant de trier les vœux par ordre du groupe de classement.
-
__eq__
(voeu) → bool[source]¶ Comparateur permettant de trier les vœux par ordre du groupe de classement.
-
__dict__
= mappingproxy({'__module__': 'parcoursup.ordreappel.VoeuClasse', '__doc__': " Classe représentant un vœu d'un candidat.", '__init__': <function VoeuClasse.__init__>, '__repr__': <function VoeuClasse.__repr__>, 'estBoursier': <function VoeuClasse.estBoursier>, 'estResident': <function VoeuClasse.estResident>, '__lt__': <function VoeuClasse.__lt__>, '__eq__': <function VoeuClasse.__eq__>, '__dict__': <attribute '__dict__' of 'VoeuClasse' objects>, '__weakref__': <attribute '__weakref__' of 'VoeuClasse' objects>, '__hash__': None, '__gt__': <function _gt_from_lt>, '__le__': <function _le_from_lt>, '__ge__': <function _ge_from_lt>})¶
-
__ge__
(other, NotImplemented=NotImplemented)¶ Return a >= b. Computed by @total_ordering from (not a < b).
-
__gt__
(other, NotImplemented=NotImplemented)¶ Return a > b. Computed by @total_ordering from (not a < b) and (a != b).
-
__hash__
= None¶
-
__le__
(other, NotImplemented=NotImplemented)¶ Return a <= b. Computed by @total_ordering from (a < b) or (a == b).
-
__module__
= 'parcoursup.ordreappel.VoeuClasse'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
ordreappel.exemples, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.ordreappel.exemples.
Exemple
[source]¶ Bases :
object
Un exemple.
-
nom
= None¶ Nom pour le fichier .xml ou .json de test.
-
exporte
(contenu, entree=True, xml=False, debug=False) → bool[source]¶ Exporte l’entrée ou la sortie, dans un fichier XML ou JSON.
-
__dict__
= mappingproxy({'__module__': 'parcoursup.ordreappel.exemples', '__doc__': ' Un exemple.', '__init__': <function Exemple.__init__>, 'initialise': <function Exemple.initialise>, 'exporte': <function Exemple.exporte>, 'execute': <function Exemple.execute>, '__dict__': <attribute '__dict__' of 'Exemple' objects>, '__weakref__': <attribute '__weakref__' of 'Exemple' objects>})¶
-
__module__
= 'parcoursup.ordreappel.exemples'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
class
parcoursup.ordreappel.exemples.
exempleA1
[source]¶ Bases :
parcoursup.ordreappel.exemples.Exemple
Exemple A1 avec une contrainte de 20% de boursiers-ère-s et de 0% de non résidents-e-s.
-
__module__
= 'parcoursup.ordreappel.exemples'¶
-
-
class
parcoursup.ordreappel.exemples.
exempleA2
[source]¶ Bases :
parcoursup.ordreappel.exemples.Exemple
Exemple A2 avec une contrainte de 2% de boursiers-ère-s et de 0% de non résidents-e-s.
-
__module__
= 'parcoursup.ordreappel.exemples'¶
-
-
class
parcoursup.ordreappel.exemples.
exempleA3
[source]¶ Bases :
parcoursup.ordreappel.exemples.Exemple
Exemple A3 avec une contrainte de 10% de boursiers-ère-s et de 0% de non résidents-e-s.
-
__module__
= 'parcoursup.ordreappel.exemples'¶
-
-
class
parcoursup.ordreappel.exemples.
exempleA4
[source]¶ Bases :
parcoursup.ordreappel.exemples.Exemple
Exemple A4 avec une contrainte de 10% de boursiers-ère-s et de 0% de non résidents-e-s.
-
__module__
= 'parcoursup.ordreappel.exemples'¶
-
-
class
parcoursup.ordreappel.exemples.
exempleA5
[source]¶ Bases :
parcoursup.ordreappel.exemples.Exemple
Exemple A5 avec une contrainte de 10% de boursiers-ère-s et de 95% de non résidents-e-s.
-
__module__
= 'parcoursup.ordreappel.exemples'¶
-
-
class
parcoursup.ordreappel.exemples.
exempleA6
[source]¶ Bases :
parcoursup.ordreappel.exemples.Exemple
Exemple A6 avec une contrainte de 10% de boursiers-ère-s et de 95% de non résidents-e-s.
-
__module__
= 'parcoursup.ordreappel.exemples'¶
-
-
parcoursup.ordreappel.exemples.
tous_les_exemples
= [<class 'parcoursup.ordreappel.exemples.exempleA1'>, <class 'parcoursup.ordreappel.exemples.exempleA2'>, <class 'parcoursup.ordreappel.exemples.exempleA3'>, <class 'parcoursup.ordreappel.exemples.exempleA4'>, <class 'parcoursup.ordreappel.exemples.exempleA5'>, <class 'parcoursup.ordreappel.exemples.exempleA6'>]¶ Liste de tous les exemples.
parcoursup.propositions package¶
Calcul des propositions à envoyer, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
Submodules¶
AlgoPropositions, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
parcoursup.propositions.AlgoPropositions.
str_de_bool
(b: bool) → str[source]¶ True
ouFalse
en minuscule.
-
class
parcoursup.propositions.AlgoPropositions.
AlgoPropositions
(groupesAffectations: List[parcoursup.propositions.GroupeAffectation.GroupeAffectation] = None, internats: List[parcoursup.propositions.GroupeInternat.GroupeInternat] = None)[source]¶ Bases :
object
Stocke les entrées et sorties de l’algorithme de calcul d’ordre d’appel.
-
__init__
(groupesAffectations: List[parcoursup.propositions.GroupeAffectation.GroupeAffectation] = None, internats: List[parcoursup.propositions.GroupeInternat.GroupeInternat] = None)[source]¶ Stocke la liste non-vide de classements.
-
groupesAffectations
= None¶ La liste des groupes d’affectation, contenant leurs voeux respectifs.
-
internats
= None¶ La liste des internats, contenant leurs vœux respectifs.
-
internats_sortie
= None¶ Liste des internats, permettant de récupérer les positions max d’admission
-
propositions
= None¶ Liste des propositions à faire.
-
enAttentes
= None¶ Liste des vœux restant en attente.
-
verifierIntegrite
() → bool[source]¶ Vérifie l’intégrité des données d’entrée, et lève une exception si nécessaire.
Propriétés :
- tous les vœux sont en attente,
- pas deux vœux distincts avec la même id,
- pas deux candidats distincts avec le même classement, formation et internat,
- pas le même candidat avec deux classements distincts, formation et internat,
- classements positifs,
- chaque voeu avec internat se retrouve dans l’internat correspondant.
Avertissement
Une exception
AssertionError
est lancée avec un message commençant para)
ou … ouf)
.
-
exporteSortie_XML
() → xml.etree.ElementTree.Element[source]¶ Converti les résultats de la sortie en un arbre XML.
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.AlgoPropositions', '__doc__': " Stocke les entrées et sorties de l'algorithme de calcul d'ordre d'appel. ", '__init__': <function AlgoPropositions.__init__>, 'verifierIntegrite': <function AlgoPropositions.verifierIntegrite>, 'calculePropositions': <function AlgoPropositions.calculePropositions>, 'exporteEntree_XML': <function AlgoPropositions.exporteEntree_XML>, 'exporteEntree_JSON': <function AlgoPropositions.exporteEntree_JSON>, 'exporteSortie_XML': <function AlgoPropositions.exporteSortie_XML>, 'exporteSortie_JSON': <function AlgoPropositions.exporteSortie_JSON>, '__dict__': <attribute '__dict__' of 'AlgoPropositions' objects>, '__weakref__': <attribute '__weakref__' of 'AlgoPropositions' objects>})¶
-
__module__
= 'parcoursup.propositions.AlgoPropositions'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
Candidat, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.propositions.Candidat.
Candidat
[source]¶ Bases :
object
Objet minuscule pour numéroter un candidat.
-
last_G_CN_COD
= 1¶
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.Candidat', '__doc__': ' Objet minuscule pour numéroter un candidat.', 'last_G_CN_COD': 1, '__init__': <function Candidat.__init__>, '__repr__': <function Candidat.__repr__>, '__dict__': <attribute '__dict__' of 'Candidat' objects>, '__weakref__': <attribute '__weakref__' of 'Candidat' objects>})¶
-
__module__
= 'parcoursup.propositions.Candidat'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
Etablissement, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
parcoursup.propositions.Etablissement.
randbool
() → bool[source]¶ Pile ou face, True avec probabilité 1/2 et False avec probabilité 1/2.
-
parcoursup.propositions.Etablissement.
avecproba
(p) → bool[source]¶ Pile ou face biaisé, True avec probabilité p et False avec probabilité 1-p.
-
class
parcoursup.propositions.Etablissement.
GroupeClassement
(nbEtudiants: int = 100)[source]¶ Bases :
object
Classe pour représentation un groupe de classement.
-
last_C_G_COD
= 1¶
-
__init__
(nbEtudiants: int = 100)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
plusHautRangAffecte
= None¶ le rang le plus haut dans l’ordre d’appel d’un candidat recruté
-
ajouterCandidat
(c: parcoursup.propositions.Candidat.Candidat, maxEtapes: int = 1000) → int[source]¶ Ajoute un candidat et renvoie son rang.
Avertissement
Ici, on ajoute un compteur
maxEtapes
pour borner le nombre de tentative aléatoire.
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.Etablissement', '__doc__': ' Classe pour représentation un groupe de classement.', 'last_C_G_COD': 1, '__init__': <function GroupeClassement.__init__>, '__repr__': <function GroupeClassement.__repr__>, 'ajouterCandidat': <function GroupeClassement.ajouterCandidat>, '__dict__': <attribute '__dict__' of 'GroupeClassement' objects>, '__weakref__': <attribute '__weakref__' of 'GroupeClassement' objects>})¶
-
__module__
= 'parcoursup.propositions.Etablissement'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
class
parcoursup.propositions.Etablissement.
FormationAffectation
[source]¶ Bases :
object
Classe pour représentation une formation en affectation.
-
last_G_TA_COD
= 1¶
-
capaciteMaxFormationNormale
= 100¶
-
capaciteMaxFormationCC
= 200¶
-
ajouterGroupe
(c: parcoursup.propositions.Etablissement.GroupeClassement, G_TI_COD: int, G_TA_COD: int, isConcoursCommun: bool) → None[source]¶ Ajoute un groupe de classement.
-
ajouterVoeu
(candidat: parcoursup.propositions.Candidat.Candidat, avecInternat: bool) → None[source]¶ Ajoute un vœu (un candidat et une demande d’internat).
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.Etablissement', '__doc__': ' Classe pour représentation une formation en affectation.', 'last_G_TA_COD': 1, 'capaciteMaxFormationNormale': 100, 'capaciteMaxFormationCC': 200, '__init__': <function FormationAffectation.__init__>, '__repr__': <function FormationAffectation.__repr__>, 'ajouterGroupe': <function FormationAffectation.ajouterGroupe>, 'ajouterVoeu': <function FormationAffectation.ajouterVoeu>, 'capacite': <function FormationAffectation.capacite>, '__dict__': <attribute '__dict__' of 'FormationAffectation' objects>, '__weakref__': <attribute '__weakref__' of 'FormationAffectation' objects>})¶
-
__module__
= 'parcoursup.propositions.Etablissement'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
class
parcoursup.propositions.Etablissement.
Etablissement
(nbEtudiants: int = 100)[source]¶ Bases :
object
Classe comprenant les caractéristiques d’un établissement (aléatoire).
-
last_G_TI_COD
= 1¶
-
maxNbVoeuxParConcoursCommun
= 80¶
-
proportionConcoursCommuns
= 0.1¶
-
nbFormationsParConcours
= 100¶
-
proportionInternatsCommuns
= 0.5¶
-
proportionInternats
= 0.5¶
-
nbFormationsParEtablissement
= 5¶
-
capaciteMaxInternat
= 30¶
-
maxNbGroupesParFormation
= 5¶
-
__init__
(nbEtudiants: int = 100)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.Etablissement', '__doc__': " Classe comprenant les caractéristiques d'un établissement (aléatoire).", 'last_G_TI_COD': 1, 'maxNbVoeuxParConcoursCommun': 80, 'proportionConcoursCommuns': 0.1, 'nbFormationsParConcours': 100, 'proportionInternatsCommuns': 0.5, 'proportionInternats': 0.5, 'nbFormationsParEtablissement': 5, 'capaciteMaxInternat': 30, 'maxNbGroupesParFormation': 5, '__init__': <function Etablissement.__init__>, '__repr__': <function Etablissement.__repr__>, 'capacite': <function Etablissement.capacite>, 'ajouterVoeux': <function Etablissement.ajouterVoeux>, '__dict__': <attribute '__dict__' of 'Etablissement' objects>, '__weakref__': <attribute '__weakref__' of 'Etablissement' objects>})¶
-
__module__
= 'parcoursup.propositions.Etablissement'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
parcoursup.propositions.Etablissement.
random
() → x in the interval [0, 1).¶
GroupeAffectation, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.propositions.GroupeAffectation.
GroupeAffectation
(capacite: int, uid: parcoursup.propositions.GroupeAffectationUID.GroupeAffectationUID, rangLimite: int)[source]¶ Bases :
object
Classe comprenant les caractéristiques identifiant de manière unique un groupe d’affectation dans la base de données.
-
__init__
(capacite: int, uid: parcoursup.propositions.GroupeAffectationUID.GroupeAffectationUID, rangLimite: int)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
id
= None¶ Le id d’affectation identifiant de manière unique le groupe dans la base.
-
capacite
= None¶ La capacité de la formation.
-
rangLimite
= None¶ Le rang limite des candidats (dans l’ordre d’appel): tous les candidats de rang inférieur reçoivent une proposition.
-
voeux
= None¶ la liste initiale des voeux du groupe, triée dans l’ordre d’appel du candidat. Remarque: c’est un ordre partiel car il peut y avoir deux voeux du même candidat, un avec internat et l’autre sans.
-
voeuxSontTries
= None¶ True
si et seulement si les vœux ont été triés.
-
candidatsAffectes
= None¶ Ensemble des candidats affectés.
-
ajouterVoeu
(voe: parcoursup.propositions.VoeuEnAttente.VoeuEnAttente) → None[source]¶ Ajoute un voeu dans le groupe.
-
mettreAJourPropositions
() → None[source]¶ Met a jour le statut
aProposer
, pour chaque voeu du groupe.
-
nbPlacesVacantes
() → int[source]¶ Le nombre de places vacantes au lancement du calcul.
Avertissement
Peut être négatif en cas de modification à la baisse des paramètres de surréservation.
-
estInitialementEnSurcapacite
() → bool[source]¶ La formation était elle initialement en surcapacité ?
-
voeuxTries
() → List[parcoursup.propositions.VoeuEnAttente.VoeuEnAttente][source]¶ Trie les voeux dans l’ordre d’appel.
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.GroupeAffectation', '__doc__': " Classe comprenant les caractéristiques identifiant de manière unique un groupe d'affectation dans la base de données.", '__init__': <function GroupeAffectation.__init__>, '__repr__': <function GroupeAffectation.__repr__>, 'ajouterVoeu': <function GroupeAffectation.ajouterVoeu>, 'ajouterCandidatAffecte': <function GroupeAffectation.ajouterCandidatAffecte>, 'estAffecte': <function GroupeAffectation.estAffecte>, 'mettreAJourPropositions': <function GroupeAffectation.mettreAJourPropositions>, 'nbPlacesVacantes': <function GroupeAffectation.nbPlacesVacantes>, 'estInitialementEnSurcapacite': <function GroupeAffectation.estInitialementEnSurcapacite>, 'voeuxTries': <function GroupeAffectation.voeuxTries>, '__dict__': <attribute '__dict__' of 'GroupeAffectation' objects>, '__weakref__': <attribute '__weakref__' of 'GroupeAffectation' objects>})¶
-
__module__
= 'parcoursup.propositions.GroupeAffectation'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
GroupeAffectationUID, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.propositions.GroupeAffectationUID.
GroupeAffectationUID
(C_GP_COD: int, G_TI_COD: int, G_TA_COD: int)[source]¶ Bases :
object
Classe comprenant les caractéristiques identifiant de manière unique une affectation dans la base de données.
-
__init__
(C_GP_COD: int, G_TI_COD: int, G_TA_COD: int)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
C_GP_COD
= None¶ L’identifiant unique du groupe de classement pédagogique dans la base de données.
-
G_TI_COD
= None¶ L’identifiant unique de la formation d’inscription dans la base de données.
-
G_TA_COD
= None¶ L’identifiant unique de la formation d’affectation dans la base de données.
-
__hash__
() → int[source]¶ FIXME il n’y a aucune chance qu’on obtienne les mêmes hashCode qu’en Java…
- Je ne crois pas que ça posera problème, mais peut-être…
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.GroupeAffectationUID', '__doc__': ' Classe comprenant les caractéristiques identifiant de manière unique une affectation dans la base de données.', '__init__': <function GroupeAffectationUID.__init__>, '__repr__': <function GroupeAffectationUID.__repr__>, '__eq__': <function GroupeAffectationUID.__eq__>, '__hash__': <function GroupeAffectationUID.__hash__>, '__dict__': <attribute '__dict__' of 'GroupeAffectationUID' objects>, '__weakref__': <attribute '__weakref__' of 'GroupeAffectationUID' objects>})¶
-
__module__
= 'parcoursup.propositions.GroupeAffectationUID'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
GroupeInternat, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.propositions.GroupeInternat.
GroupeInternat
(uid: parcoursup.propositions.GroupeInternatUID.GroupeInternatUID, capacite: int, pourcentageOuverture: int)[source]¶ Bases :
object
Classe comprenant les caractéristiques identifiant de manière unique un internat dans la base de données.
-
nbJoursCampagne
= 1¶ Le nombre de jours depuis l’ouverture de la campagne, 1 le premier jour.
-
__init__
(uid: parcoursup.propositions.GroupeInternatUID.GroupeInternatUID, capacite: int, pourcentageOuverture: int)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
id
= None¶ L’identifiant unique de l’internat dans la base de données
-
capacite
= None¶ Le nombre total de places
-
pourcentageOuverture
= None¶ Le pourcentage d’ouverture fixé par le chef d’établissement
-
contingentAdmission
= None¶ Le nombre de demandes d’internat considérées Bmax dans le document de spécification
-
positionAdmission
= None¶ La position d’admission dans cet internat, calculée par l’algorithme
-
positionMaximaleAdmission
= None¶ La position maximale d’admission dans cet internat, calculée par l’algorithme
-
groupesConcernes
= None¶ La liste des groupes de classement concernés par cet internat
-
voeux
= None¶ La liste des voeux du groupe. Après le calcul de la position initiale d’admission cette liste est triée par ordre de classement internat
-
estInitialise
= None¶ True
si et seulement si la position maximale d’admission a été calculée, ce qui implique que la liste des voeux est triée par ordre de classement internat.
-
candidatsAffectes
= None¶ Ensemble des candidats affectés.
-
candidatsEnAttente
= None¶ Ensemble des candidats en attente.
-
ajouterVoeu
(voeu: parcoursup.propositions.VoeuEnAttente.VoeuEnAttente, groupe: parcoursup.propositions.GroupeAffectation.GroupeAffectation) → None[source]¶ Ajouter ce vœu à ce groupe d’affectation.
-
ajouterCandidatAffecte
(G_CN_CODE: int) → None[source]¶ Ajoute un candidat affecté.
- Supprime le candidat de la liste des candidats en attente , si il y a lieu.
-
calculeAssietteAdmission
(M: int, L: int, t: int, p: int) → int[source]¶ Calcule l’assiette d’admission Bmax comme décrit dans l’algorithme.
-
initialiserPositionAdmission
() → None[source]¶ Initialise la position d’admission à son maximum Bmax dans le document de référence.
-
mettreAJourPositionAdmission
() → bool[source]¶ Met à jour la position d’admission si nécessaire.
- Renvoie
True
si la position d’admission a été effectivement mise à jour.
- Renvoie
-
__annotations__
= {'nbJoursCampagne': <class 'int'>}¶
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.GroupeInternat', '__annotations__': {'nbJoursCampagne': <class 'int'>}, '__doc__': ' Classe comprenant les caractéristiques identifiant de manière unique un internat dans la base de données.', 'nbJoursCampagne': 1, '__init__': <function GroupeInternat.__init__>, '__repr__': <function GroupeInternat.__repr__>, 'nbPlacesVacantes': <function GroupeInternat.nbPlacesVacantes>, 'ajouterVoeu': <function GroupeInternat.ajouterVoeu>, 'ajouterCandidatAffecte': <function GroupeInternat.ajouterCandidatAffecte>, 'estAffecte': <function GroupeInternat.estAffecte>, 'calculeAssietteAdmission': <function GroupeInternat.calculeAssietteAdmission>, 'initialiserPositionAdmission': <function GroupeInternat.initialiserPositionAdmission>, 'mettreAJourPositionAdmission': <function GroupeInternat.mettreAJourPositionAdmission>, '__dict__': <attribute '__dict__' of 'GroupeInternat' objects>, '__weakref__': <attribute '__weakref__' of 'GroupeInternat' objects>})¶
-
__module__
= 'parcoursup.propositions.GroupeInternat'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
GroupeInternatUID, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.propositions.GroupeInternatUID.
GroupeInternatUID
(C_GI_COD: int, G_TA_COD: int)[source]¶ Bases :
object
Classe comprenant les caractéristiques identifiant de manière unique un internat dans la base de données.
-
__init__
(C_GI_COD: int, G_TA_COD: int)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
C_GI_COD
= None¶ L’identifiant unique de l’internat dans la base de données
-
G_TA_COD
= None¶ L’identifiant unique de la formation d’affectation dans la base de données. Positionné à 0 pour un internat commun à plusieurs formations.
-
__hash__
() → int[source]¶ FIXME il n’y a aucune chance qu’on obtienne les mêmes hashCode qu’en Java…
- Je ne crois pas que ça posera problème, mais peut-être…
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.GroupeInternatUID', '__doc__': ' Classe comprenant les caractéristiques identifiant de manière unique un internat dans la base de données.', '__init__': <function GroupeInternatUID.__init__>, '__repr__': <function GroupeInternatUID.__repr__>, '__eq__': <function GroupeInternatUID.__eq__>, '__hash__': <function GroupeInternatUID.__hash__>, '__dict__': <attribute '__dict__' of 'GroupeInternatUID' objects>, '__weakref__': <attribute '__weakref__' of 'GroupeInternatUID' objects>})¶
-
__module__
= 'parcoursup.propositions.GroupeInternatUID'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
VerificationsResultats, pour https://github.com/Naereen/ParcourSup.py.
- Permet de vérifier un certain nombre de propriétés statiques des sorties de l’algorithme.
- Sans garantir la correction du code, cela garantit que les résultats produits satisfont les principales propriétés énoncées dans le document.
Avertissement
FIXME Des tests complémentaires sont effectués en base par des scripts PL/SQL.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
parcoursup.propositions.VerificationsResultats.
log
(*args, **kwargs)[source]¶ Affiche avec une heure.
-
parcoursup.propositions.VerificationsResultats.
verifierRespectOrdreAppelVoeuxSansInternat
(formation: parcoursup.propositions.GroupeAffectation.GroupeAffectation)[source]¶ P1 : respect ordre appel pour les voeux sans internat.
Si un candidat C1 précède un candidat C2 dans l’ordre d’appel d’une formation F et si C1 a un voeu en attente pour F sans demande d’internat alors C2 n’a pas de proposition pour F.
-
parcoursup.propositions.VerificationsResultats.
verifierVoeuxAvecInternat
(formation: parcoursup.propositions.GroupeAffectation.GroupeAffectation)[source]¶ P2 respect ordre appel et classement internat pour les voeux avec internat.
Si un candidat C1 précède un candidat C2 à la fois dans l’ordre d’appel d’une formation F et dans un classement d’internat I et si C1 a un voeu en attente pour F avec internat I alors C2 n’a pas de proposition pour F avec internat I.
-
parcoursup.propositions.VerificationsResultats.
verifierRespectClassementInternat
(formation: parcoursup.propositions.GroupeAffectation.GroupeAffectation)[source]¶ P3 respect classement internat pour les candidats avec une proposition sans internat.
Si un candidat C1 a un voeu en attente pour une formation F avec demande d’internat I et une proposition acceptée ou en attente de réponse de sa part pour la formation F sans demande d’internat, et si C2 est un candidat moins bien classé que C1 à l’internat I et si une des nouvelles propositions du jour offre l’internat I à C2 alors que C2 n’avait pas de propositions pour I auparavant alors une des nouvelles propositions du jour offre la formation F et l’internat I à C1.
-
parcoursup.propositions.VerificationsResultats.
verifierSurcapaciteEtRemplissage
(formation: parcoursup.propositions.GroupeAffectation.GroupeAffectation)[source]¶ P4 remplissage maximal des formations dans le respect des positions d’admission à l’internat.
Le nombre de propositions doit être inférieur au nombre de places vacantes.
Si le nombre de nouvelles propositions dans une formation est strictement inférieur au nombre de places vacantes dans cette formation, alors tous les voeux en attente pour cette formation sont des voeux avec internat, effectués par des candidats dont le rang de classement dans l’internat correspondant est strictement supérieur à la position d’admission dans cet internat.
-
parcoursup.propositions.VerificationsResultats.
verifierSurcapaciteEtRemplissage_avec_rangDernierAppeles
(internat: parcoursup.propositions.GroupeInternat.GroupeInternat, rangsMaxNouvelArrivant: Dict[parcoursup.propositions.GroupeInternat.GroupeInternat, int])[source]¶ P5 remplissage maximal des internats dans le respect des ordres d’appel.
Le nombre de propositions doit être inférieur au nombre de places vacantes.
Si le nombre de nouvelles propositions dans un internat I est strictement inférieur au nombre de places vacantes dans I, alors tous les voeux en attente pour une formation F et demande d’internat I sont soit effectués par des candidats dont le classement à l’internat I est strictement supérieur à la position d’admission dans I ou bien situés plus bas dans l’ordre d’appel de F que tous les candidats ayant reçu une estAProposer de F ce jour là.
-
parcoursup.propositions.VerificationsResultats.
verifierMaximalitePositionsAdmission
(internat: parcoursup.propositions.GroupeInternat.GroupeInternat)[source]¶ P6 : maximalité des positions d’admission.
Pour tout internat, la position d’admission est inférieure ou égale à la position maximale d’admission. Dans le cas où elle est strictement inférieure, augmenter d’une unité la position d’admission entrainerait une surcapacité d’un des internats.
Avertissement
FIXME le code de référence ne l’a pas fait (« Non-implémenté. »), mais nous pouvons essayer ?
VoeuEnAttente, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.propositions.VoeuEnAttente.
VoeuEnAttente
(uid: parcoursup.propositions.VoeuUID.VoeuUID, groupe, internat=None, rangInternat: int = 0, ordreAppel: int = 0)[source]¶ Bases :
object
Classe comprenant les caractéristiques identifiant de manière unique un vœu dans la base de données.
-
voeuxCrees
= set()¶
-
verificationUnicite
= False¶
-
__init__
(uid: parcoursup.propositions.VoeuUID.VoeuUID, groupe, internat=None, rangInternat: int = 0, ordreAppel: int = 0)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
id
= None¶ Caractéristiques identifiant de manière unique le voeu dans la base de données
-
groupe
= None¶ Groupe d’affectation du voeu
-
ordreAppel
= None¶ Rang du voeu dans l’ordre d’appel
-
internat
= None¶ le groupe de classement internat, qui donne accès à la position d’admission
-
rangInternat
= None¶ Le rang du candidat au classement internat
-
rangListeAttente
= None¶ Rang sur liste attente
-
rangListeAttenteInternat
= None¶ Rang sur liste attente internat
-
G_CN_COD
¶
-
static
ajouterVoeu
(G_CN_COD: int, groupe, ordreAppel: int, internat=None, rangInternat: int = 0, avecInternat: bool = False)[source]¶
-
avecClassementInternat
() → bool[source]¶ Y a-t-il une demande d’internat avec classement sur ce voeux ?
-
internatDejaObtenu
() → bool[source]¶ Le-la candidat-a a-t-il/elle déjà une offre dans cet internat (pour une autre formation)
-
formationDejaObtenue
() → bool[source]¶ Le-la candidat-a a-t-il/elle déjà une offre dans cette formation (sans internat)
-
estAProposer
() → bool[source]¶ Méthode triviale, pour accéder au résultat du calcul : fait-on une proposition sur ce vœu ?
-
proposer
() → None[source]¶ Méthode triviale, pour accéder au résultat du calcul : fait-on une proposition sur ce vœu ?
-
conserverEnAttente
() → None[source]¶ Méthode triviale, pour accéder au résultat du calcul : fait-on une proposition sur ce vœu ?
-
estDesactiveParPositionAdmissionInternat
() → bool[source]¶ Vérifie si le voeu est désactivé du fait d’une demande d’internat
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.VoeuEnAttente', '__doc__': ' Classe comprenant les caractéristiques identifiant de manière unique un vœu dans la base de données.', 'voeuxCrees': set(), 'verificationUnicite': False, '__init__': <function VoeuEnAttente.__init__>, 'G_CN_COD': <property object>, '__repr__': <function VoeuEnAttente.__repr__>, 'ajouterVoeu': <staticmethod object>, 'avecInternat': <function VoeuEnAttente.avecInternat>, 'avecClassementInternat': <function VoeuEnAttente.avecClassementInternat>, 'internatDejaObtenu': <function VoeuEnAttente.internatDejaObtenu>, 'formationDejaObtenue': <function VoeuEnAttente.formationDejaObtenue>, 'internatID': <function VoeuEnAttente.internatID>, 'estAProposer': <function VoeuEnAttente.estAProposer>, 'proposer': <function VoeuEnAttente.proposer>, 'conserverEnAttente': <function VoeuEnAttente.conserverEnAttente>, 'estDesactiveParPositionAdmissionInternat': <function VoeuEnAttente.estDesactiveParPositionAdmissionInternat>, '__dict__': <attribute '__dict__' of 'VoeuEnAttente' objects>, '__weakref__': <attribute '__weakref__' of 'VoeuEnAttente' objects>})¶
-
__module__
= 'parcoursup.propositions.VoeuEnAttente'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
VoeuUID, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
class
parcoursup.propositions.VoeuUID.
VoeuUID
(G_CN_COD: int, G_TA_COD: int, avecInternat: bool)[source]¶ Bases :
object
Classe comprenant les caractéristiques identifiant de manière unique un vœu dans la base de données.
-
voeuxCrees
= set()¶
-
verificationUnicite
= False¶
-
__init__
(G_CN_COD: int, G_TA_COD: int, avecInternat: bool)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
G_CN_COD
= None¶ L’identifiant unique du candidat dans la base de données
-
G_TA_COD
= None¶ L’identifiant unique de la formation d’affectation dans la base de données. Positionné à -1 pour les internats commun à plusieurs formations
-
I_RH_COD
= None¶ tauxMinBoursiersPourcents
-
__hash__
() → int[source]¶ FIXME il n’y a aucune chance qu’on obtienne les mêmes hashCode qu’en Java…
- Je ne crois pas que ça posera problème, mais peut-être…
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.VoeuUID', '__doc__': ' Classe comprenant les caractéristiques identifiant de manière unique un vœu dans la base de données.', 'voeuxCrees': set(), 'verificationUnicite': False, '__init__': <function VoeuUID.__init__>, '__repr__': <function VoeuUID.__repr__>, '__eq__': <function VoeuUID.__eq__>, '__hash__': <function VoeuUID.__hash__>, 'debuterVerificationUnicite': <function VoeuUID.debuterVerificationUnicite>, '__dict__': <attribute '__dict__' of 'VoeuUID' objects>, '__weakref__': <attribute '__weakref__' of 'VoeuUID' objects>})¶
-
__module__
= 'parcoursup.propositions.VoeuUID'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
propositions.exemples, pour https://github.com/Naereen/ParcourSup.py.
- Auteurs : Lilian Besson, Bastien Trotobas et al, (C) 2018.
- Adresse : https://github.com/Naereen/ParcourSup.py
- Licence : MIT License (http://lbesson.mit-license.org).
-
parcoursup.propositions.exemples.
randbool
() → bool[source]¶ Pile ou face, True avec probabilité 1/2 et False avec probabilité 1/2.
-
class
parcoursup.propositions.exemples.
Exemple
[source]¶ Bases :
object
Un exemple.
-
n
= None¶ Nombre total de candidats
-
nom
= None¶ Nom pour le fichier .xml ou .json de test.
-
exporte
(contenu, entree=True, xml=False, debug=False)[source]¶ Exporte l’entrée ou la sortie, dans un fichier XML ou JSON.
-
__dict__
= mappingproxy({'__module__': 'parcoursup.propositions.exemples', '__doc__': ' Un exemple.', '__init__': <function Exemple.__init__>, 'donneesEntree': <function Exemple.donneesEntree>, 'exporte': <function Exemple.exporte>, 'execute': <function Exemple.execute>, '__dict__': <attribute '__dict__' of 'Exemple' objects>, '__weakref__': <attribute '__weakref__' of 'Exemple' objects>})¶
-
__module__
= 'parcoursup.propositions.exemples'¶
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
class
parcoursup.propositions.exemples.
exempleB7base
[source]¶ Bases :
parcoursup.propositions.exemples.Exemple
Exemple B7 de base.
-
__module__
= 'parcoursup.propositions.exemples'¶
-
-
class
parcoursup.propositions.exemples.
exempleB7Jour1
[source]¶ Bases :
parcoursup.propositions.exemples.exempleB7base
Exemple B7 du jour 1.
-
__module__
= 'parcoursup.propositions.exemples'¶
-
-
class
parcoursup.propositions.exemples.
exempleB7Jour2
[source]¶ Bases :
parcoursup.propositions.exemples.exempleB7base
Exemple B7 du jour 2.
-
__module__
= 'parcoursup.propositions.exemples'¶
-
-
class
parcoursup.propositions.exemples.
exempleB7Jour3
[source]¶ Bases :
parcoursup.propositions.exemples.exempleB7base
Exemple B7 du jour 3.
-
__module__
= 'parcoursup.propositions.exemples'¶
-
-
class
parcoursup.propositions.exemples.
exempleAleatoire
(nbEtudiants: int = 100)[source]¶ Bases :
parcoursup.propositions.exemples.exempleB7base
Exemple aléatoire très complet et compliqué.
-
maxNbVoeuxParCandidat
= 40¶
-
__init__
(nbEtudiants: int = 100)[source]¶ Initialize self. See help(type(self)) for accurate signature.
-
__module__
= 'parcoursup.propositions.exemples'¶
-
-
parcoursup.propositions.exemples.
tous_les_exemples
= [<class 'parcoursup.propositions.exemples.exempleB7base'>, <class 'parcoursup.propositions.exemples.exempleB7Jour1'>, <class 'parcoursup.propositions.exemples.exempleB7Jour2'>, <class 'parcoursup.propositions.exemples.exempleB7Jour3'>]¶ Liste de tous les exemples.
-
parcoursup.propositions.exemples.
random
() → x in the interval [0, 1).¶