Outils pour utilisateurs

Outils du site


pymultilame

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
pymultilame [2018/08/29 12:16] sergepymultilame [2021/08/21 15:47] – ↷ Liens modifiés en raison d'un déplacement. 216.244.66.228
Ligne 6: Ligne 6:
  
 =====Les sources sur GitHub===== =====Les sources sur GitHub=====
-  * **[[https://github.com/sergeLabo/pymultilame|github.com/sergeLabo/pymultilame]]**+  * **[[https://github.com/sergeLabo/pymultilame|pymultilame sur GitHub]]**
  
 ===== pymultilame ===== ===== pymultilame =====
Ligne 31: Ligne 31:
 === Installation de Twisted pour python 3.x === === Installation de Twisted pour python 3.x ===
  
-  * [[https://ressources.labomedia.org/installation_de_twisted|Installation de Twisted pour python 3.x]]+  * [[archives:installation_de_twisted|Python: Installation de Twisted]]
  
 <code> <code>
 sudo pip3 install twisted sudo pip3 install twisted
 </code> </code>
 +
 === Installation de pymultilame === === Installation de pymultilame ===
  
-  * [[https://ressources.labomedia.org/creer_son_propre_package_python|Créer son propre package python]]+  * [[creer_son_propre_package_python|Python: Créer son propre package python]]
  
 <code> <code>
 sudo pip3 install -e git+https://github.com/sergeLabo/pymultilame.git#egg=pymultilame sudo pip3 install -e git+https://github.com/sergeLabo/pymultilame.git#egg=pymultilame
 </code> </code>
 +
 Mise à jour: Mise à jour:
  
Ligne 48: Ligne 50:
 sudo pip3 install --upgrade git+https://github.com/sergeLabo/pymultilame.git#egg=pymultilame sudo pip3 install --upgrade git+https://github.com/sergeLabo/pymultilame.git#egg=pymultilame
 </code> </code>
 +
 ==== Utilisation ==== ==== Utilisation ====
  
 <code python> <code python>
 +# Imports en python3
 from pymultilame import HttpDownload from pymultilame import HttpDownload
 from pymultilame import MyTools from pymultilame import MyTools
-from pymultilame import TcpClient+from pymultilame import TcpClient3
 from pymultilame import MyConfig from pymultilame import MyConfig
 from pymultilame import get_my_ip from pymultilame import get_my_ip
Ligne 67: Ligne 71:
 from pymultilame import scene_change, droiteAffine, scene_change, print_str_args from pymultilame import scene_change, droiteAffine, scene_change, print_str_args
 from pymultilame import get_all_objects, get_all_scenes, get_scene_with_name from pymultilame import get_all_objects, get_all_scenes, get_scene_with_name
 +
 +
 +# Imports en python2
 +
 +from pymultilame.myconfig2 import MyConfig2
 +from pymultilame.tcpclient2 import TcpClient2
 </code> </code>
 +
 ==== Licence ==== ==== Licence ====
  
Ligne 76: Ligne 87:
 voir le fichier LICENSE voir le fichier LICENSE
  
-==== Documentation ==== +=====Documentation génèrée avec pydoc3.5===== 
- +Le script qui génère cette doc est dans le module pymultilame.
-  * [[https://ressources.labomedia.org/creer_son_propre_package_python|Créer son propre package python]] +
-  * [[https://ressources.labomedia.org/pymultilame|pymultilame]] +
- +
-==== Documentation ==== +
- +
-  * [[https://ressources.labomedia.org/creer_son_propre_package_python|Créer son propre package python]] +
-  * [[https://ressources.labomedia.org/pymultilame|pymultilame]] +
- +
-</code> +
- +
- +
-==== Documentation pour créer son propre package python==== +
- +
-  * [[https://ressources.labomedia.org/creer_son_propre_package_python|Créer son propre package python]] +
- +
-==== Conversion de README.md en dokuwiki ==== +
- +
-pour la page pymultilame du wiki+
 ====blendergetobject==== ====blendergetobject====
 <code txt> <code txt>
 FUNCTIONS FUNCTIONS
     get_all_objects()     get_all_objects()
-        Retourne une liste de tous les objets des scènes actives+        Trouve tous les objets des scènes actives 
 +        Retourne un dict {nom de l'objet: blender object}
          
     get_all_scenes()     get_all_scenes()
 +        Récupération des scènes
          
     get_scene_with_name(scn)     get_scene_with_name(scn)
 +        Récupération de la scène avec le nom
  
 </code> </code>
Ligne 111: Ligne 107:
 <code txt> <code txt>
 DESCRIPTION DESCRIPTION
-    Class générique qui permet de gérer facilement le son+    Classe générique qui permet de gérer facilement le son
     dans le Blender Game Engine BGE.     dans le Blender Game Engine BGE.
          
Ligne 135: Ligne 131:
          
     class EasyAudio(builtins.dict)     class EasyAudio(builtins.dict)
-     |  dict() -> new empty dictionary +     |  Crée une usine pour chaque sondans un dict.
-      dict(mapping) -> new dictionary initialized from a mapping object'+
-          (keyvalue) pairs +
-     |  dict(iterable) -> new dictionary initialized as if via: +
-          d = {} +
-          for k, v in iterable: +
-              d[k] = v +
-      dict(**kwargs) -> new dictionary initialized with the name=value pairs +
-          in the keyword argument list For example:  dict(one=1, two=2)+
      |        |  
       Method resolution order:       Method resolution order:
Ligne 157: Ligne 145:
          
     class Factory(builtins.object)     class Factory(builtins.object)
 +      Class usine pour chaque son.
 +     |  
       Methods defined here:       Methods defined here:
      |        |  
Ligne 164: Ligne 154:
      |        |  
       pause(self)       pause(self)
 +          Pause
      |        |  
       play(self, volume=1)       play(self, volume=1)
Ligne 169: Ligne 160:
      |        |  
       repeat(self, volume=1)       repeat(self, volume=1)
 +          Repeat
      |        |  
       set_pitch(self, pitch)       set_pitch(self, pitch)
 +          Hauteur
      |        |  
       set_volume(self, vol)       set_volume(self, vol)
 +          Volume
      |        |  
       stop(self)       stop(self)
 +          Stop
  
 </code> </code>
Ligne 188: Ligne 183:
       Chaque objet tempo:       Chaque objet tempo:
           * tempoDict = Tempo(tempo_liste)           * tempoDict = Tempo(tempo_liste)
-      Update des tempo:+      Update des tempo à insérer dans un script qui tourne à chaque frame:
           * tempoDict.update()           * tempoDict.update()
       Appel d'une tempo:       Appel d'une tempo:
Ligne 214: Ligne 209:
       Les tempos sont en fait des compteurs qui sont mis à jour à chaque       Les tempos sont en fait des compteurs qui sont mis à jour à chaque
       frames de Blender avec update.       frames de Blender avec update.
 +      Pour une tempo de n, compte bien de 0 à n-1
      |        |  
       Methods defined here:       Methods defined here:
Ligne 234: Ligne 230:
       update(self)       update(self)
           J'incrémente si pas de verrou. Si verrou, je ne fais rien           J'incrémente si pas de verrou. Si verrou, je ne fais rien
 +
 +FUNCTIONS
 +    test()
 +        Tourne en dehors de Blender.
  
 </code> </code>
Ligne 263: Ligne 263:
           Répéter la fonction plusieurs fois (ex 5x) pour que           Répéter la fonction plusieurs fois (ex 5x) pour que
           le changement marche.           le changement marche.
-          Tous les objecy avec le matériau seront changés.+          Tous les object avec le matériau seront changés.
  
 </code> </code>
Ligne 292: Ligne 292:
 FUNCTIONS FUNCTIONS
     disable_viewport(cam)     disable_viewport(cam)
 +        Disable
          
     enable_full_viewport(cam)     enable_full_viewport(cam)
Ligne 311: Ligne 312:
 CLASSES CLASSES
     class PileFIFO(builtins.object)     class PileFIFO(builtins.object)
-      Pile FIFO pour faire statistiques sur dernières valeurs.+      Pile FIFO pour faire des statistiques 
 +     |  sur les dernières valeurs d'une variable.
      |        |  
       Methods defined here:       Methods defined here:
Ligne 397: Ligne 399:
 CLASSES CLASSES
     class Multicast(builtins.object)     class Multicast(builtins.object)
-      Récupère des datas en Multicast. Sans try:+      Récupère des datas en Multicast.
      |        |  
       Methods defined here:       Methods defined here:
Ligne 418: Ligne 420:
 <code txt> <code txt>
 DESCRIPTION DESCRIPTION
 +    Le fichier ini doit être défini avec son chemin absolu
          
     Pour un projet python:     Pour un projet python:
Ligne 438: Ligne 441:
       __init__(self, ini_file)       __init__(self, ini_file)
           Charge la config depuis un fichier *.ini           Charge la config depuis un fichier *.ini
-           
           Le cemin doit être donné avec son chemin absolu.           Le cemin doit être donné avec son chemin absolu.
      |        |  
Ligne 446: Ligne 448:
       save_config(self, section, key, value)       save_config(self, section, key, value)
           Sauvegarde dans le fichioer *.ini  avec section, key, value.           Sauvegarde dans le fichioer *.ini  avec section, key, value.
-          +          Uniquement int, float, str 
 + 
 +</code> 
 + 
 +====myconfig2==== 
 +<code txt> 
 +DESCRIPTION 
 +    Le fichier ini doit être défini avec son chemin absolu 
 +     
 +    Pour un projet python: 
 +        import os 
 +        dossier = os.path.dirname(os.path.abspath(__file__)) 
 +        ou 
 +        os.getcwd() 
 +     
 +    Pour un projet Blender, le chemin complet est trouvé avec: 
 +        bge.logic.expandPath() 
 + 
 +CLASSES 
 +      Uniquement python 2 
 +      Charge la configuration depuis le fichier *.ini, 
 +      sauve les changement de configuration, 
 +      enregistre les changements par section, clé. 
 +       
 +      Methods defined here: 
 +       
 +      __init__(self, ini_file) 
 +          Charge la config depuis un fichier *.ini 
 +          Le cemin doit être donné avec son chemin absolu. 
 +       
 +      load_config(self) 
 +          Lit le fichier *.ini, et copie la config dans un dictionnaire. 
 +       
 +      save_config(self, section, key, value) 
 +          Sauvegarde dans le fichioer *.ini  avec section, key, value.
           Uniquement int, float, str           Uniquement int, float, str
  
Ligne 478: Ligne 514:
           exemple:           exemple:
               "network/http_download.py"               "network/http_download.py"
 +     |  
 +      get_all_sub_directories(self, root)
 +          Retourne la liste de tous les sous-répertoires, et du répertoire,
 +          y compris les __pycache__
      |        |  
       get_json_file(self, fichier)       get_json_file(self, fichier)
Ligne 492: Ligne 532:
      |        |  
       run_command_system(self, command)       run_command_system(self, command)
-          Excécute la command shell et reourne la sortie terminal+          Excécute la command shell. 
-          command = ['your_command', 'arg1', 'arg2', ...] +          command = liste
-          Ne marche pas: +
-              resp = subprocess.call(command.split())+
      |        |  
-      write_data_in_file(self, data, fichier) +      write_data_in_file(self, data, fichier, mode
-          Ecrit des data de type string dans le fichier, écrase l'existant.+          Ecrit data dans le fichier. 
 +          Mode 'w' écrit un string dans le fichier 
 +          Mode 'wb' écrit des bytes dans le fichier 
 +          w écrase 
 +          a ajoute
  
 </code> </code>
  
-====tcpclient====+====tcpclient2====
 <code txt> <code txt>
 CLASSES CLASSES
-    class TcpClient(builtins.object)+      Uniquement python 2 
 +     |  Envoi et réception sur le même socket en TCP. 
 +       
 +      Methods defined here: 
 +       
 +      __init__(self, ip, port) 
 +       
 +      clear_buffer(self, buff) 
 +          N'a pas marché dans rezobox. 
 +       
 +      close_sock(self) 
 +          Fermeture de la socket. 
 +       
 +      connect_sock(self) 
 +       
 +      create_socket(self) 
 +          Création du socket sans try, et avec connexion. 
 +          Reconnexion toutes les secondes 
 +          La différence entre python 2 et 3 est là 
 +       
 +      listen(self, buff) 
 +          Retourne les data brutes reçues, et vide le buffer TCP 
 +       
 +      re_connect_sock(self) 
 +       
 +      reconnect(self) 
 +          Reconnexion. 
 +       
 +      send(self, msg) 
 +          Envoi d'un message, avec send, msg doit être encodé avant. 
 + 
 +</code> 
 + 
 +====tcpclient3==== 
 +<code txt> 
 +CLASSES 
 +    class TcpClient3(builtins.object) 
 +      Uniquement python 3
       Envoi et réception sur le même socket en TCP.       Envoi et réception sur le même socket en TCP.
      |        |  
Ligne 512: Ligne 591:
       __init__(self, ip, port)       __init__(self, ip, port)
           Initialize self.  See help(type(self)) for accurate signature.           Initialize self.  See help(type(self)) for accurate signature.
 +     |  
 +      clear_buffer(self, buff)
      |        |  
       close_sock(self)       close_sock(self)
Ligne 517: Ligne 598:
      |        |  
       connect_sock(self)       connect_sock(self)
-          Connexion de la socket, si ok retoune 1 sinon None 
      |        |  
       create_socket(self)       create_socket(self)
           Création du socket sans try, et avec connexion.           Création du socket sans try, et avec connexion.
      |        |  
-      listen(self) +      listen(self, buff
-          Retourne les data brutes reçues.+          Retourne les data brutes reçues, et vide le buffer TCP 
 +       
 +      re_connect_sock(self)
      |        |  
       reconnect(self)       reconnect(self)
Ligne 539: Ligne 621:
     de réseau, ça se reconnecte tout seul.     de réseau, ça se reconnecte tout seul.
     Par contre, le port éphémère du recvfrom changera à chaque fois.     Par contre, le port éphémère du recvfrom changera à chaque fois.
-     
-    Dans Blender, où il est impossible de créer un thread, socketserver, 
-    ou d'utiliser asyncio, c'est très adapté. 
-     
-    Doit encore être testé, en particulier si défaut réseau, serveur etc ... 
  
 CLASSES CLASSES
     class UdpClient(builtins.object)     class UdpClient(builtins.object)
       Envoi et reception en UDP.       Envoi et reception en UDP.
-      Cette classe n'encode pas le message à envoyer, sans try: .+      Cette classe n'encode pas le message à envoyer.
      |        |  
       Methods defined here:       Methods defined here:
Ligne 573: Ligne 650:
 </code> </code>
  
-{{tag>python sb}}+ 
 +{{tag>python sb realisations_logicielles}}