Forum des Condylures daicaidais

General Motors => Informatique => Discussion démarrée par: Caabale le 19/05/09 17:56

Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Caabale le 19/05/09 17:56
Zat, question barbusante, le python, ca gere bien les structures complexes ? Genre les tableaux de hash dont certaines valeurs sont des tableaux de scalaires. Parce qu'en perl, c'est un peu la cata et pour pas te planter, vaut mieux passer par des pointeurs, et les trucs du genre :
${${$titi[5]}{toto}}[3]

C'est pas ce qu'il y a plus de simple a maintenir [:matleflou]
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: pastigo le 19/05/09 18:24
${${$pipi[5]}{caca}}[3]


de rien.
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: mout le 19/05/09 18:29
sinon j'en connais un rayon en tablettes de hash moi :)
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: John Henry le 19/05/09 19:15
Ton truc st'un tableau composé d'objet pouvant etre different ? Ou juste un tableau à plusieurs dimensions ?
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: mout le 19/05/09 20:12
ben ça depend hein, tu veux 20€ jte coupe 20 €..
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Bitman le 19/05/09 20:19
hey les enfants, c'est pas bla² ici merci ;)
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Caabale le 19/05/09 21:53
Ton truc st'un tableau composé d'objet pouvant etre different ? Ou juste un tableau à plusieurs dimensions ?


Mmh, c'est un tableau compose des memes classes d'objet, mais un membre de cette classe est un tableau.

En perl ca revient a dire :
@titi est un tableau de pointeurs de hash
donc
$titi{5} est un pointeur vers un hash (enfin, une hash table, en fait, tableau associatif en français)
donc
%{$titi{5}} est un hash
donc
${$titi[5]}}{toto} est la valeur du membre "toto" dudit hash (en l'occurence, un pointeur vers un tableau)
donc
@{${$titi[5]}}{toto}} est un tableau
donc
${${$titi[5]}}{toto}}[3] est un element du tableau (un scalaire, mais à ce point là, on s'en fout)

Comme tu peux le voir, c'est absolument imbitable [:matleflou] Ce genre de choses, ça se fait mieux en python ?

En fait, le truc, c'est que perl gère très mal l'approche objet, donc je suppose que si python gère ça correctement, ça sera déjà mieux...
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Caabale le 19/05/09 21:55
On pourrait théoriquement abréger tout le bordel en éludant les { }de désambiguation :
$$$titi[5]{toto}[3], et qq part, c'est plus clair, mais j'ai déjà eu des emmerdes avec cette notation, parce qu'ambigüe...
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: John Henry le 19/05/09 22:59
Python est plus puissant que Java niveau objet (heritage multiple par exemple), donc au niveau du C++ :D

Et aussi il y a des trucs sympa au niveau des acces aux methodes, donc il y a moyen d'avoir un syntaxe bien plus belle que celle de Java sur ce point !

(genre les .getX() .setX() peuvent etre abrégé par un .x qui appel tout seul comme un grand la bonne methode §§)
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Shor-T le 19/05/09 22:59
Et tu te tires pas les cheveux avec des merdes pareilles ? [:dawa']
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Caabale le 19/05/09 23:32
Python est plus puissant que Java niveau objet (heritage multiple par exemple), donc au niveau du C++ :D

Et aussi il y a des trucs sympa au niveau des acces aux methodes, donc il y a moyen d'avoir un syntaxe bien plus belle que celle de Java sur ce point !

(genre les .getX() .setX() peuvent etre abrégé par un .x qui appel tout seul comme un grand la bonne methode §§)


Ok, mais le genre de stuctures à la con comme décrit plus haut, ça se fait plus simplement ou pas ?

Et tu te tires pas les cheveux avec des merdes pareilles ? [:dawa']


Si :D Mais là, je vois relativement mal comment faire plus simple. Pour la structure là, cétait en fait un script qui analysaient une série de scripts sh qui lancent des outils qui génèrent des fichiers, mais avec des dépendances (genre le 10 ème script attends un fichier généré par le premier).

Donc je mets ces scripts dans un tableau ordonné (dans l'ordre de lancement), et à chacun, je leur associe une liste (un tableau donc) des scripts dont il dépendent. Sachant que j'ai aussi besoin de stocker d'autres infos sur ces scripts.

Le but étant de paralléliser le lancement de ces scripts, qui aujourd'hui s'exécutent les uns après les autres...
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: John Henry le 19/05/09 23:34
man xargs ?
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Caabale le 19/05/09 23:40
man xargs ?


Qu'es-ce que tu racontes ? :heink:
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: John Henry le 19/05/09 23:48
http://lmgtfy.com/ ?
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Caabale le 19/05/09 23:51
Nan mais je sais ce que c'est xargs, hein, c'est juste que c'est complètement hors-sujet...
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: John Henry le 19/05/09 23:53
No no ! xarg peut servir à faire de la parallélisation de script §§
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Caabale le 20/05/09 00:01
Non, mais atta, je t'explique:
Les scripts d'analyse en question sont générés par un flow, qui générent ces scripts (qui lancent des outils dans différentes conditions), et qui sont inter dépendants (certains scripts génèrent des fichiers utilisés par d'autres).

Ces scripts sont lancés en série par un "run file" qui est un bête script sh qui lance ces scripts.

C'est une grosse usine à gaz, c'est trop compliqué, mais c'est comme a, j'ai pas le choix.

Le but de mon truc, c'est de modifier ces run files pour que les scripts soient lancés sur lsf, avec une option qui dit quand besoin est à chaque script : attend que celui-là soit fini avant de te lancer.

Pour faire ça, je fais un perl qui lit ces scripts pour voir quelles sont leurs dépendances, ce qui me permet de modifier le run file de façon adéquate.

xarg ne m'est d'aucune utilité là-dedans et en plus, c'est pas la question.

Bon, je vais jeter un coup d'oeil au man de python, d'après ce que tu m'a dit, doit y avoir un moyen de faire quelque chose de plus lisible.
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Shor-T le 20/05/09 20:15


Ok, mais le genre de stuctures à la con comme décrit plus haut, ça se fait plus simplement ou pas ?



Si :D Mais là, je vois relativement mal comment faire plus simple. Pour la structure là, cétait en fait un script qui analysaient une série de scripts sh qui lancent des outils qui génèrent des fichiers, mais avec des dépendances (genre le 10 ème script attends un fichier généré par le premier).

Donc je mets ces scripts dans un tableau ordonné (dans l'ordre de lancement), et à chacun, je leur associe une liste (un tableau donc) des scripts dont il dépendent. Sachant que j'ai aussi besoin de stocker d'autres infos sur ces scripts.

Le but étant de paralléliser le lancement de ces scripts, qui aujourd'hui s'exécutent les uns après les autres...


[:grunt]
Titre: [TOPICAZAT] Python et structure de donnees complexes
Posté par: Caabale le 20/05/09 20:23
Ca n'est pas le script perl le plus complexe que j'aurais fait :o Et si les scripts que j'analyse étaient pas aussi mal foutus, il fonctionnerait depuis qqs temps. Mais bon, garbage in, garbage out, je suis pas alchimiste, je transformerai pas la fiente en or...