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/28 12:04] sergepymultilame [2021/08/21 15:47] – ↷ Liens modifiés en raison d'un déplacement. 216.244.66.228
Ligne 4: Ligne 4:
 **Des scripts pour les tâches de tous les jours** **Des scripts pour les tâches de tous les jours**
 </WRAP> </WRAP>
 +
 +=====Les sources sur GitHub=====
 +  * **[[https://github.com/sergeLabo/pymultilame|pymultilame sur GitHub]]**
  
 ===== pymultilame ===== ===== pymultilame =====
Ligne 17: Ligne 20:
 qui n'est plus maintenu. qui n'est plus maintenu.
  
-=== Comprend les rubriques ===+=== Rubriques proposées ===
  
   * Blender: Des scripts spécifiques pour le Blender Game Engine 2.7x et qui ne peuvent tourner que dans Blender   * Blender: Des scripts spécifiques pour le Blender Game Engine 2.7x et qui ne peuvent tourner que dans Blender
Ligne 28: 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 45: 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 62: Ligne 69:
 from pymultilame import TextureChange from pymultilame import TextureChange
  
-from pymultilame.blendertools import scene_change, droiteAffine, scene_change, print_str_args +from pymultilame import scene_change, droiteAffine, scene_change, print_str_args 
-from pymultilame.blendergetobject 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 73: 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]] +
- +
-==== Conversion de README.md en dokuwiki ==== +
- +
-pour la page pymultilame du wiki +
- +
-<code> +
-pandoc README.md -f markdown -t dokuwiki -s -o README.dokuwiki +
-</code> +
- +
-=====La documentation issue des docstrings=====+
 ====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 102: 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 126: 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 146: Ligne 143:
           soundList = ["boum", ...]           soundList = ["boum", ...]
           path example "//audio/comment/"           path example "//audio/comment/"
-     |   
-      ---------------------------------------------------------------------- 
-      Data descriptors defined here: 
-     |   
-      __dict__ 
-          dictionary for instance variables (if defined) 
-     |   
-      __weakref__ 
-          list of weak references to the object (if defined) 
-     |   
-      ---------------------------------------------------------------------- 
-      Methods inherited from builtins.dict: 
-     |   
-      __contains__(self, key, /) 
-          True if D has a key k, else False. 
-     |   
-      __delitem__(self, key, /) 
-          Delete self[key]. 
-     |   
-      __eq__(self, value, /) 
-          Return self==value. 
-     |   
-      __ge__(self, value, /) 
-          Return self>=value. 
-     |   
-      __getattribute__(self, name, /) 
-          Return getattr(self, name). 
-     |   
-      __getitem__(...) 
-          x.__getitem__(y) <==> x[y] 
-     |   
-      __gt__(self, value, /) 
-          Return self>value. 
-     |   
-      __iter__(self, /) 
-          Implement iter(self). 
-     |   
-      __le__(self, value, /) 
-          Return self<=value. 
-     |   
-      __len__(self, /) 
-          Return len(self). 
-     |   
-      __lt__(self, value, /) 
-          Return self<value. 
-     |   
-      __ne__(self, value, /) 
-          Return self!=value. 
-     |   
-      __new__(*args, **kwargs) from builtins.type 
-          Create and return a new object.  See help(type) for accurate signature. 
-     |   
-      __repr__(self, /) 
-          Return repr(self). 
-     |   
-      __setitem__(self, key, value, /) 
-          Set self[key] to value. 
-     |   
-      __sizeof__(...) 
-          D.__sizeof__() -> size of D in memory, in bytes 
-     |   
-      clear(...) 
-          D.clear() -> None.  Remove all items from D. 
-     |   
-      copy(...) 
-          D.copy() -> a shallow copy of D 
-     |   
-      fromkeys(iterable, value=None, /) from builtins.type 
-          Returns a new dict with keys from iterable and values equal to value. 
-     |   
-      get(...) 
-          D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None. 
-     |   
-      items(...) 
-          D.items() -> a set-like object providing a view on D's items 
-     |   
-      keys(...) 
-          D.keys() -> a set-like object providing a view on D's keys 
-     |   
-      pop(...) 
-          D.pop(k[,d]) -> v, remove specified key and return the corresponding value. 
-          If key is not found, d is returned if given, otherwise KeyError is raised 
-     |   
-      popitem(...) 
-          D.popitem() -> (k, v), remove and return some (key, value) pair as a 
-          2-tuple; but raise KeyError if D is empty. 
-     |   
-      setdefault(...) 
-          D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D 
-     |   
-      update(...) 
-          D.update([E, ]**F) -> None.  Update D from dict/iterable E and F. 
-          If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k] 
-          If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v 
-          In either case, this is followed by: for k in F:  D[k] = F[k] 
-     |   
-      values(...) 
-          D.values() -> an object providing a view on D's values 
-     |   
-      ---------------------------------------------------------------------- 
-      Data and other attributes inherited from builtins.dict: 
-     |   
-      __hash__ = None 
          
     class Factory(builtins.object)     class Factory(builtins.object)
 +      Class usine pour chaque son.
 +     |  
       Methods defined here:       Methods defined here:
      |        |  
Ligne 258: Ligne 154:
      |        |  
       pause(self)       pause(self)
 +          Pause
      |        |  
       play(self, volume=1)       play(self, volume=1)
Ligne 263: 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
-      ---------------------------------------------------------------------- +
-      Data descriptors defined here: +
-       +
-      __dict__ +
-     |      dictionary for instance variables (if defined) +
-       +
-      __weakref__ +
-          list of weak references to the object (if defined)+
  
 </code> </code>
Ligne 291: 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 313: Ligne 205:
           In either case, this is followed by: for k in F:  D[k] = F[k]           In either case, this is followed by: for k in F:  D[k] = F[k]
      |        |  
-      ---------------------------------------------------------------------- +         
-      Data descriptors defined here: +
-       +
-      __dict__ +
-          dictionary for instance variables (if defined) +
-       +
-      __weakref__ +
-          list of weak references to the object (if defined) +
-       +
-      ---------------------------------------------------------------------- +
-      Methods inherited from builtins.dict: +
-       +
-      __contains__(self, key, /) +
-          True if D has a key k, else False. +
-       +
-      __delitem__(self, key, /) +
-          Delete self[key]. +
-       +
-      __eq__(self, value, /) +
-          Return self==value. +
-       +
-      __ge__(self, value, /) +
-          Return self>=value. +
-       +
-      __getattribute__(self, name, /) +
-          Return getattr(self, name). +
-       +
-      __getitem__(...) +
-          x.__getitem__(y) <==> x[y] +
-       +
-      __gt__(self, value, /) +
-          Return self>value. +
-       +
-      __iter__(self, /) +
-          Implement iter(self). +
-       +
-      __le__(self, value, /) +
-          Return self<=value. +
-       +
-      __len__(self, /) +
-          Return len(self). +
-       +
-      __lt__(self, value, /) +
-          Return self<value. +
-       +
-      __ne__(self, value, /) +
-          Return self!=value. +
-       +
-      __new__(*args, **kwargs) from builtins.type +
-          Create and return a new object.  See help(type) for accurate signature. +
-       +
-      __repr__(self, /) +
-          Return repr(self). +
-       +
-      __setitem__(self, key, value, /) +
-          Set self[key] to value. +
-       +
-      __sizeof__(...) +
-          D.__sizeof__() -> size of D in memory, in bytes +
-       +
-      clear(...) +
-          D.clear() -> None.  Remove all items from D. +
-       +
-      copy(...) +
-          D.copy() -> a shallow copy of D +
-       +
-      fromkeys(iterable, value=None, /) from builtins.type +
-          Returns a new dict with keys from iterable and values equal to value. +
-       +
-      get(...) +
-          D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None. +
-       +
-      items(...) +
-          D.items() -> a set-like object providing a view on D's items +
-       +
-      keys(...) +
-          D.keys() -> a set-like object providing a view on D's keys +
-       +
-      pop(...) +
-          D.pop(k[,d]) -> v, remove specified key and return the corresponding value. +
-          If key is not found, d is returned if given, otherwise KeyError is raised +
-       +
-      popitem(...) +
-          D.popitem() -> (k, v), remove and return some (key, value) pair as a +
-          2-tuple; but raise KeyError if D is empty. +
-       +
-      setdefault(...) +
-          D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D +
-       +
-      values(...) +
-          D.values() -> an object providing a view on D's values +
-       +
-      ---------------------------------------------------------------------- +
-      Data and other attributes inherited from builtins.dict: +
-       +
-      __hash__ = None +
-    +
     class TempoFactory(builtins.object)     class TempoFactory(builtins.object)
       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 433: 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 
-     |  Data descriptors defined here: +    test() 
-       +        Tourne en dehors de Blender.
-      __dict__ +
-          dictionary for instance variables (if defined+
-     |   +
-      __weakref__ +
-          list of weak references to the object (if defined)+
  
 </code> </code>
Ligne 471: 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.
-       +
-      ---------------------------------------------------------------------- +
-      Data descriptors defined here: +
-       +
-      __dict__ +
-          dictionary for instance variables (if defined) +
-       +
-      __weakref__ +
-          list of weak references to the object (if defined)+
  
 </code> </code>
Ligne 509: Ligne 292:
 FUNCTIONS FUNCTIONS
     disable_viewport(cam)     disable_viewport(cam)
 +        Disable
          
     enable_full_viewport(cam)     enable_full_viewport(cam)
Ligne 528: 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 544: Ligne 329:
           La dernière valeur est-elle cohérente par rapport aux précédentes ?           La dernière valeur est-elle cohérente par rapport aux précédentes ?
           à lancer après append et average_calcul           à lancer après append et average_calcul
-     |   
-      ---------------------------------------------------------------------- 
-      Data descriptors defined here: 
-     |   
-      __dict__ 
-          dictionary for instance variables (if defined) 
-     |   
-      __weakref__ 
-          list of weak references to the object (if defined) 
  
-</code> 
- 
-====get_docstring==== 
-<code txt> 
-DESCRIPTION 
-    Récupère la doc de tous les scripts pour le wiki 
-    et enregistre dans tools/docstring.txt 
- 
-CLASSES 
-    class GetDoc(builtins.object) 
-      Lit tous les scripts pour récupérer les docstrings. 
-      Enregistre dans un fichier docstring.txt 
-      classé par script 
-      Contrainte: 
-      - doc du script 
-      - doc de la classe avec Usage 
-      - doc des méthodes 
-      - Ne récupère pas les fonctions en dehors de la class, 
-        ni le if __name__ == '__main__': 
-     |   
-      Methods defined here: 
-     |   
-      __init__(self, directory) 
-          directory = dossier racine de recherche des scripts 
-     |   
-      get_doc(self, script) 
-          Crée la doc du script avec pydoc3.5 
-          Installation de pydoc3.5 
-          sudo pip3 install pydoc 
-          et l'ajoute à self.DOC 
-     |   
-      get_doc_batch(self) 
-          OSC3 et twisted dénére une doc top longue 
-          pas de  
-          './irctwisted.py' 
-          './tcptwisted.py' 
-          './multicasttwisted.py' 
-     |   
-      save_doc(self, doc) 
-          Save in docstring.txt 
-     |   
-      ---------------------------------------------------------------------- 
-      Data descriptors defined here: 
-     |   
-      __dict__ 
-          dictionary for instance variables (if defined) 
-     |   
-      __weakref__ 
-          list of weak references to the object (if defined) 
 </code> </code>
  
Ligne 657: Ligne 384:
           Retourne aussi la réponse.           Retourne aussi la réponse.
           Si réponse None, ne fera rien, retourne None           Si réponse None, ne fera rien, retourne None
-     |   
-      ---------------------------------------------------------------------- 
-      Data descriptors defined here: 
-     |   
-      __dict__ 
-          dictionary for instance variables (if defined) 
-     |   
-      __weakref__ 
-          list of weak references to the object (if defined) 
  
 FUNCTIONS FUNCTIONS
Ligne 681: 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 696: Ligne 414:
       send_to(self, msg, addr)       send_to(self, msg, addr)
           Envoi de msg à addr en multicast.           Envoi de msg à addr en multicast.
-     |   
-      ---------------------------------------------------------------------- 
-      Data descriptors defined here: 
-     |   
-      __dict__ 
-          dictionary for instance variables (if defined) 
-     |   
-      __weakref__ 
-          list of weak references to the object (if defined) 
  
 </code> </code>
Ligne 711: 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 731: 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 739: 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           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:
-      Data descriptors defined here:+
      |        |  
-     |  __dict__ +     |  __init__(self, ini_file) 
-          dictionary for instance variables (if defined)+          Charge la config depuis un fichier *.ini 
 +          Le cemin doit être donné avec son chemin absolu.
      |        |  
-     |  __weakref__ +     |  load_config(self) 
-          list of weak references to the object (if defined)+          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
  
 </code> </code>
Ligne 780: 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 794: 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> 
 + 
 +====tcpclient2==== 
 +<code txt> 
 +CLASSES 
 +      Uniquement python 2 
 +      Envoi et réception sur le même socket en TCP.
      |        |  
-     |  ---------------------------------------------------------------------- +     |  Methods defined here: 
-     |  Data descriptors 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à
      |        |  
-     |  __dict__ +     |  listen(self, buff) 
-          dictionary for instance variables (if defined)+          Retourne les data brutes reçues, et vide le buffer TCP
      |        |  
-     |  __weakref__ +     |  re_connect_sock(self) 
-          list of weak references to the object (if defined)+       
 +      reconnect(self) 
 +          Reconnexion. 
 +       
 +      send(self, msg) 
 +          Envoi d'un message, avec send, msg doit être encodé avant.
  
 </code> </code>
  
-====tcpclient====+====tcpclient3====
 <code txt> <code txt>
 CLASSES CLASSES
-    class TcpClient(builtins.object)+    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 823: 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 828: 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 841: Ligne 612:
       send(self, msg)       send(self, msg)
           Envoi d'un message, avec send, msg doit être encodé avant.           Envoi d'un message, avec send, msg doit être encodé avant.
-     |   
-      ---------------------------------------------------------------------- 
-      Data descriptors defined here: 
-     |   
-      __dict__ 
-          dictionary for instance variables (if defined) 
-     |   
-      __weakref__ 
-          list of weak references to the object (if defined) 
  
 </code> </code>
Ligne 859: 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 890: Ligne 647:
       send_to(self, req, address)       send_to(self, req, address)
           Envoi à l'adresse = (ip, port).           Envoi à l'adresse = (ip, port).
-     |   
-      ---------------------------------------------------------------------- 
-      Data descriptors defined here: 
-     |   
-      __dict__ 
-          dictionary for instance variables (if defined) 
-     |   
-      __weakref__ 
-          list of weak references to the object (if defined) 
  
 </code> </code>
-{{tag>python sb}}+ 
 + 
 +{{tag>python sb realisations_logicielles}}