Re: règle pour écrire les "usage: ..."

Liste des GroupesRevenir à fco unix 
Sujet : Re: règle pour écrire les "usage: ..."
De : alain (at) *nospam* universite-de-strasbourg.fr.invalid (Alain Ketterlin)
Groupes : fr.comp.os.unix
Date : 13. Jul 2022, 19:15:57
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87wnchvsqa.fsf@universite-de-strasbourg.fr.invalid>
References : 1 2 3 4 5 6 7 8 9 10
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Thomas <fantome.forums.tDeContes@free.fr.invalid> writes:

accepter "-vn" comme "-v -n",
accepter "-odir" comme "-o dir",
>
est-ce que c'est qqch que les usagers utilisent bcp, ça ?
parce que moi je trouve ça plutôt embêtant, avec notamment :
"-onv" = "-o -n -v", ou
"-onv" => dir = "nv" ?
 
La seconde. Si un argument contient plusieurs options, la première
nécessitant un argument d'option s'impose : l'argument de l'option est
soit la suite, soit l'argument suivant.
>
(si l'argument suivant est une option, que fait getopt() ?)

-o -v => -v est l'argument de l'option -o (idem "-o-v")

ce que je voulais dire c'est qu'à la relecture c'est pas évident du
tout, il faut déchiffrer.
c'est qqch que j'évite au maximum.

Je pense que c'est juste le contraire : on lit de gauche à droite, il
suffit de savoir quelle option a un argument.

[...]
ça fait bcp plus usine à gaz que l'analyse linéaire,
donc - entre autres - plus difficile à debugger et à maintenir.
>
bon, si c'est nécessaire on va se le farcir ...

Pas du tout, tu fais ce que tu veux, c'est juste une illustration du
fait que ce n'est pas très difficile.

[...]
    while optind < argc and argv[optind][0] == "-":
        if argv[optind] in ["-v", "--verbose"]:
            opt_v = True; optind += 1
        elif argv[optind] in ["-ni", "--new-iork"]:
            opt_ni = True; optind += 1
        elif argv[optind] in ["-od", "--output-dir"] and optind+1 < argc:
            opt_od = True; dir = argv[optind+1]; optind += 2
        else:
            wtf ("option inconnue")
[...]
>
si je te suis bien, tu considères qu'il n'est pas important de traiter
"--" ?

Voilà ce qu'il faut ajouter :

        elif argv[optind] == "--":
            optind += 1
            break

On peut affiner le cas d'erreur où "-od" est le dernier élément.
>
hé oui ! là tu utilises argv[optind+1] sans vérifier qu'il existe !

Si si, c'est vérifié.

On peut aussi tester la duplication des options (si le opt_x est déjà
True).
>
dans ce cas là on doit faire quoi ? ignorer ou une erreur ?

Au choix. Je préfère ignorer (ou warning au pire).

[...]
Le test de cohérence final a exactement la meme structure que celui que
tu fais en analysant les arguments (sauf qu'il teste seulement les
différents booléens).
>
je ne dirais pas "exactement", mais je crois que ça va aller.

C'est la même logique.

[...]
(À mon avis, ce n'est pas assez gratifiant pour se passer de getopt() ou
s'écarter de ses conventions, mais chacun son truc.)
>
je ne comprend pas cette phrase.

Cela signifie : moi j'utiliserais getopt() à la place

C'est Posix, il y a de fortes chances que la dépendance soit déjà
satisfaite.
>
je programme en Ada, et ça ne fait pas partie de la norme Ada. donc ça
me fait dépendre de mon compilateur via ses "suppléments".
ça peut être gênant pour ceux qui voudraient utiliser un autre
compilateur que le mien.

Il doit y a avoir quelque chose d'équivalent à getopt. En python il y a
un module getopt et aussi argparse. Si ça n'y est pas, tu peux râler
auprès des développeurs de la bibliothèque standard.

-- Alain.

Date Sujet#  Auteur
9 Jul 22 * règle pour écrire les "usage: ..."35Thomas
9 Jul 22 +* Re: règle pour écrire les "usage: ..."31ST
9 Jul 22 i`* Re: règle pour écrire les "usage: ..."30Thomas
9 Jul 22 i `* Re: règle pour écrire les "usage: ..."29Alain Ketterlin
11 Jul 22 i  `* Re: règle pour écrire les "usage: ..."28Thomas
11 Jul 22 i   `* Re: règle pour écrire les "usage: ..."27Olivier Miakinen
11 Jul 22 i    +* Re: règle pour écrire les "usage: ..."24Alain Ketterlin
13 Jul 22 i    i`* Re: règle pour écrire les "usage: ..."23Thomas
13 Jul 22 i    i +* Re: règle pour écrire les "usage: ..."21Alain Ketterlin
13 Jul 22 i    i i`* Re: règle pour écrire les "usage: ..."20Thomas
13 Jul 22 i    i i +* Re: règle pour écrire les "usage: ..."15Nicolas George
13 Jul 22 i    i i i`* Re: règle pour écrire les "usage: ..."14Thomas
13 Jul 22 i    i i i +* Re: règle pour écrire les "usage: ..."12Olivier Miakinen
13 Jul 22 i    i i i i`* Re: règle pour écrire les "usage: ..."11Thomas
13 Jul 22 i    i i i i `* Re: règle pour écrire les "usage: ..."10Olivier Miakinen
14 Jul 22 i    i i i i  +* Re: règle pour écrire les "usage: ..."6Nicolas George
9 Aug 22 i    i i i i  i`* Re: règle pour écrire les "usage: ..."5Thomas
10 Aug 22 i    i i i i  i `* Re: règle pour écrire les "usage: ..."4Nicolas George
14 Aug 22 i    i i i i  i  `* Re: règle pour écrire les "usage: ..."3Thomas
14 Aug 22 i    i i i i  i   `* Re: règle pour écrire les "usage: ..."2Nicolas George
19 Apr 23 i    i i i i  i    `- Re: règle pour écrire les "usage: ..."1Thomas
14 Jul 22 i    i i i i  `* Re: règle pour écrire les "usage: ..."3Thomas
14 Jul 22 i    i i i i   `* Re: règle pour écrire les "usage: ..."2Olivier Miakinen
31 Jul 22 i    i i i i    `- Re: règle pour écrire les "usage: ..."1Thomas
13 Jul 22 i    i i i `- Re: règle pour écrire les "usage: ..."1Nicolas George
13 Jul 22 i    i i `* Re: règle pour écrire les "usage: ..."4Alain Ketterlin
14 Jul 22 i    i i  `* Re: règle pour écrire les "usage: ..."3Thomas
14 Jul 22 i    i i   `* Re: règle pour écrire les "usage: ..."2Olivier Miakinen
31 Jul 22 i    i i    `- Re: règle pour écrire les "usage: ..."1Thomas
13 Jul 22 i    i `- Re: règle pour écrire les "usage: ..."1Nicolas George
11 Jul 22 i    +- Re: règle pour écrire les "usage: ..."1Thomas
14 Aug 22 i    `- Re: règle pour écrire les "usage: ..."1Thomas
9 Jul 22 `* Re: règle pour écrire les "usage: ..."3Olivier Miakinen
9 Jul 22  `* Re: règle pour écrire les "usage: ..."2Thomas
9 Jul 22   `- Re: règle pour écrire les "usage: ..."1Olivier Miakinen

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal