Sciences Pour l’Environnement

Nos tutelles

CNRS

Rechercher




Accueil > Projets de recherche > SISU (Simulation Informatique et Systèmes Ubiquitaires) > DEVSimPy > Utilisation

Fonctionnalités avancés : Manipulation des librairies

par campana - publié le

Les librairies permettent de rassembler et de structurer les modèles. DEVSimPy permet la création et la gestion des librairies par l’intermédiaire du panel de contrôle.

Navigation

Les librairies sont représentées en arborescence comme des répertoires. La navigation au sein des librairies se fait en dépliant les répertoires. Le contenu des librairies se compose de trois types de modèles :
- les fichiers python (classe PyDEVS) représentés par le logo Python,
- les fichiers AMD (modèles atomiques) représentés par un cube ,
- les fichiers CMD (modèles couplés) représentés par un ensemble de cubes.

L’instanciation des modèles se fait par un glisser/déposer dans le canvas qui représente le diagramme.

Dans l´image 1 ci-joint, DEVSimPy propose quatres librairies : `Collector´, `Generator´, `PowerSystem´ et `TestAutom´. Chacune de ces librairies possèdent une suite de modèles. La librairie `Generator´ ne possède que des modèles PyDEVS (fichiers python). Par contre la librairie `PowerSystem´ possède des modèles couplés CMD dans le sous répertoire `PowerMachine´.

En bas de la fenêtre, il est possible de faire une recherche parmi les librairies chargées dans DEVSimPy. Si l’utilisateur veut supprimer une librairie de la liste il n’aura qu’a cliquer droit sur celle-ci pour accéder au menu de suppression. La suppression n´a pour effet que de faire disparaître l´item mais les sources sont conservées. Le sous-menu permet également d´accéder à la documentation du module si celle-ci a été rédigée.

Importation

Les librairies sont stockées par défaut dans un répertoire nommé ’Domain’ et leur importation se fait par un menu invoqué par un clic-droit dans le panel de contrôle.

La fenêtre dans l’image 2 présente le gestionnaire de librairies. La liste des librairies disponibles dans DEVSimPy est présentée en fonction de leur nom, de leur taille en Ko, de leur endroit de stockage et de leur chemin. L’utilisateur peut cocher les librairies dont il a besoin et celle ci viendront se déployer dans le panel de contrôle `Library´. Si l’utilisateur désire importer une librairie qui n’est pas présente dans le répertoire `Domain´, il peut aller cherche la librairie en spécifiant le chemin dans le champ d’acquisition en bas de la fenêtre puis ajouter le nouvel item dans la liste. Il est possible d’insérer une url ftp et DEVSimPy ira chercher la librairie correspondante sur le serveur. Dans ce cas la librairie aura une position externe spécifiée par l’information ’web’.

Après importation, une vérification des modules est effectuée en essayant d´importer ceux-ci. Si l´importation échoue, un icône d´alerte remplacera l’icône du modèle et l´erreur sera imprimé dans la documentation.

Création

La création de librairies nécessite un ensemble de fichiers et/ou de répertoires rangés dans un répertoire racine qui constituera la librairie. Afin de rendre ce répertoire accessible dans le panel de contrôle certaine condition doivent être remplis :

- Chaque répertoire, y compris le répertoire racine, doit présenter un fichier __init__.py dans lequel sera définit la variable de type liste __all__ : cette liste devra contenir les fichiers de classes qui apparaîtrons dans DEVSimPy. Pour une lecture plus simple, l´utilisateur définira un fichier par ligne. Par exemple si le répertoire racine est composé de quatre fichiers, fichier1.py, fichier2.py, fichier3.py, et fichier4.py, et que seul les trois premiers fichiers doivent apparaître dans la librairie, le fichier __init__.py est écrit de la manière suivante :


__all__ = [

`fichier1´,

`fichier2´,

`fichier3´

]


- Le répertoire racine peut être déposé dans le répertoire `Domain´ et de cette manière il sera automatiquement détecté dans la liste des librairies qui peuvent être importées dans le gestionnaire. Sinon il faudra ajouter le répertoire dans la liste des librairies au travers du gestionnaire de libraires.

Documentation

Chaque modèle peut être documenté en début de fichier .py. DEVSimPy propose le format suivant :


Name : < filename.py >

Model : < describe model >

Authors : < your name >

Date : < yyyy-mm-dd >


Cette documentation apparaîtra par un clic-droit sur le modèle dans le panel de contrôle `Library´.

Gestion des plugins

DEVSimPy repose sur une gestion de plugins permettant d´étendre certaines fonctionnalités comme le clic-droit sur les modèles instanciés sur le canvas. Le gestionnaire de plugins à été présenté précédemment . Pour la programmation de plugins, le lecteur peut se référer au guide du développeur.

Les plugins sont en fait des fichiers python rangés dans le répertoire `plugins´. Donc l’utilisateur désireux de développer un plugin et de le rendre activable dans DEVSimPy devra déposé le fichier dans ce répertoire. Il apparaîtra automatiquement dans la liste du gestionnaire de plugins dans les préférences.

Gestion de la documentation des modèles

De la même manière que l´utilisateur a la possibilité de documenter un modèle il peut être plus préci en documentant ses attributs comportementaux. Il suffit de renseigner la documentation du construteur de la classe du modèle avec la même règle choisi par epydoc : le documentation d´un attribut commence par le symbole @param suivit du nom de l´attribut puis de la chaîne de documentation précédé par « :». Par exemple le constructeur du modèle M qui possède deux attributs « a » et « b » peut être documenté de la manière suivante :


__init__(self,a ,b) :

"""

@param a : doc a

@param b : doc b

"""


De cette manière, la documentation générée par epydoc est possible. Il est également possible de documenter le constructeur en faisant abstraction du symbole @param mais la génération epydoc est alors impossible.

Portfolio