4. Paquetage oasa4buildez
Il s’agit de la version maison, car la bibliothèque OASA/BKChem n’est plus supportée depuis la version 0-13.1. On copie l’archive oasa à partir du dépôt local (v:1.11 minimum) dans C:\Python3\envs\prod\Lib\site-packages\oasa.
Ces fichiers sont issus des sources d’un GIT [ https://github.com/adelq/oasa ] de 2018 (v0.14.0) puis ils ont été modifiés pour Python 3.x. La reprogrammation de OASA est un travail lourd, il faut toucher certains modules avec des appels 2D/3D, des objets, des appels de méthodes/procédures … Un problème est celui des modules qui portent le même nom que la classe qu’ils servent, parfois jusqu’aux méthodes, donc il faut aussi travailler sur l’espace de noms et les fonctions, appels aux fonctions …
Dans le cas de oasa4buildez il est possible de tester en interne le paquetage car la conversion en Python 3 va au delà de règles de syntaxe.
Tests internes
Mes normes d’écriture du code sont appliquées à tous les modules, de cette manière OASA pourrait être prise en compte par le système d’auto-documentation (à tester une fois que le code sera stable). Donc certains modules de oasa4buildez incluent une interface de test (voir les __init__.py de oasa) avec un répertoire associé C:\Python3\envs\prod\Lib\site-packages\oasa\test. Pour le moment j’en suis la :
## graph.graph |
Completed test interface. |
## graph.graph_tools |
Completed test interface. |
## cairo_out |
Completed test interface, renamed miscellaneous subroutines. |
## coords_generator |
Completed test interface, renamed miscellaneous subroutines. |
## coords_optimizer |
Completed test interface, renamed miscellaneous subroutines. |
## inchi |
Completed test interface, renamed miscellaneous subroutines. |
## linear_formula |
Completed test interface. |
## molecule |
Working on test interface (pb with chiral hydrogenated molecules). |
## molfile |
Working on test interface (pb with SDF format). |
## pybel_bridge |
Completed test interface (pb with CDX format). |
## smiles |
Completed test interface, renamed miscellaneous subroutines. |
Un exemple de test dans le module oasa.graph.graph_tools.py, le composé GEQ est analysé, le graphe est converti en fichier dot, puis affiché en mode neato, qui fournit dans ce cas une depiction assez proche de la molécule. Il y a quelques liaisons qui se croisent mais les types et numéros d’atomes, les longueurs et les ordres de liaisons sont intégrées dans le graphe et conservées. Le fichier dot est rendu avec l’outil Graphviz Online [ https://dreampuf.github.io/GraphvizOnline/ ].
![]() |
A noter que les deux versions d’OASA incluent un module pybel_bridge qui est lié à OpenBabel/Pybel, ce qui nécessite une installation de ce paquetage avant les tests d’OASA. Ce problème n’apparaît que dans oasa4buildez car des interfaces de test sont inclues dans les modules clés du paquetage.
Tests (oasa4buildez)
Les programmes sont dans C:\Dev\tests-buildez\test_oasa avec une organisation similaire à celle du paquetage oasa3. La plupart des tests marchent à l’exception de smiles_from_db(), smiles_compression(), test_CIP(), test_sdf_processing(), show_dump().
Les tests sont les mêmes (test_gen_oasa et test_img_oasa) que ceux utilisés pur OASA3 et donnent les résultats.
