corriges2rst
Thierry je n'ai pas les droits en écriture sur le directory 'fangh'. Il m'a fait un fork, c'est le fonctionnement voulu ? pour être plus précis avec upload j'ai :
Uploads are disabled. File uploads require push access to this repository.
Et pour new file :
You’re creating a file in a project you don’t have write access to. Submitting a change will create the file in a new branch in your fork Karduin/moocpython, so you can send a pull request.
je suis très étonné; non ce n’est pas l’intention que d’utiliser un fork dans ce cas précis, je m’attendais à t’avoir donné les droits de ‘collaborator’
par contre il me dit ceci
alors que pour jeang07 il ne dit pas ‘awaiting response’; il n’y aurait pas une étape à faire de ton coté ?
On 14 Dec 2017, at 16:17, Karduin [email protected] wrote:
Thierry je n'ai pas les droits en écriture sur le directory 'fangh'. Il m'a fait un fork, c'est le fonctionnement voulu ?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
OK autant pour moi, il fallait que j'accepte ton invitation à partir de ma messagerie. Merci
Bonjour à vous ;)
@Fangh, Je te laisse t'organiser avant tout mais juste savoir si c'est ok pour le principe d'un seul dossier commun... Sinon, j'ai aussi travaillé sur un petit script de départ... on verra comment s'organiser ensuite en fonction, pas de souci pour moi J'avoue que je ne suis pas trop à l'aise non plus et pas encore collaboré au travers de github ;)
@jgorene, Oui pas de souci, on fait comme ça. C'est l'occasion pour nous de se familiariser avec l'outil ;-)
Ok =)
Bonjour. Depuis quand suis-je un directory ? (vous venez de mentionner un utilisateur à travers l'univers github.com : moi, sans faire exprès je crois.)
Bonjour, Oui en effet... il s'agit d'une erreur, désolé ,)
Comment fait on pour changer le non d'un directory ?
Il me semble qu'il n'y a que Thierry à pouvoir le faire mais sous réserve quand même ;)
non, vous le faites avec git:
git mv olddir newdir
git commit
git push
ok, merci ;)
ok c'est fait, pas trop intuitif au départ, mais bon j’apprends ;-) Bah zut, ça change d'autre truc, ton commentaire et les remarques que j'avais mis à la suite de ton code on disparus... Bon si on va dans la listes des commits on retrouve tout. Faut s'y faire....
Vu que ça commence à bouger... j'ai amendé le README du dossier pour avoir une description minimum pour les futurs participant(e)s ou même visiteurs éventuels. Bien sûr à modifier le cas échéant... Bonne soirée ;)
Bon je commence enfin à résoudre mes problèmes avec les regex, grâce à ce site : https://regex101.com/
Oui très pratique... je m'en sers aussi car je ne suis pas non plus un foudre sur les regex ;)
Sinon pour l'instant, j'ai mis le code de côté car ça fonctionne pas mal et pour le moment ça me va ! Bien qu'on doit pouvoir encore optimiser tout ça... ne serait-ce que pour la gestion des erreurs éventuelles. J'avoue que j'ai défini un cadre d'utilisation hyper simple simple pour démarrer ;)
Pour l'instant, je me bagarre plutôt avec la personnalisation des éditions avec le config.py de Sphinx... En passant ton tuto sur le mooc m'a vraiment bien aidé pour démarrer... je ne connaissais pas du tout ;)
Ok, on se tient au courant...
Bon ! je vais repartir de zéro, passer par un chaine unique comme j'ai tenté de le faire n'est pas souple du tout ! Ton code est bien plus efficace.
Oui, je pense aussi pour le code mais j'ai fonctionné plus "par habitude" en fait ;) Bien souvent, il me semble qu'il est préférable de bien préparer et regrouper ses données dans 1 seul objet avant "écriture" proprement... pour ce type d'actions en tout cas et sous réserve :D Quoiqu'il en soit, on doit pouvoir aller encore un plus loin au niveau du code .. à voir en tout cas ?
Sinon aucun rapport direct, je vais uploader mes fichiers .txt et le corriges.rst généré dans le dossier... ce sera je pense +pratique à l'usage et on pourra faire des tests de part et d'autre ;)
Je ne sais pas si ma nouvelle version est très 'pythonique' mais bon elle fonctionne.
Si je me fis à ton pdf, les titres de niveau 3 ne sont pas complets. c'est pas très grave, c'est plus pour la lisibilité dans la table des matières.
Je viens de la tester... comme sur des roulettes, donc c'est bien ! Bien mieux que ma solution (beaucoup trop rapide)... et d'accord pour les titres 3 en effet, il en manque un bout... d'ailleurs dans le sommaire... ça me gênait sans trop voir ce qui clochait :D Pour l'écriture "pythonique"... je préfère ne pas me prononcer pour le moment ;)
Je vais prendre un peu de temps pour étudier ta version, il me semble déjà qu'il faudrait ne pas avoir à saisir les fichiers d'entrée manuellement... mais plutôt par un appel et une sélection du fichier concerné. Si on peut le faire... Sinon une seule petite erreur à la génération du pdf "corriges_all.rst:1239: WARNING: Explicit markup ends without a blank line; unexpected unindent." ... non bloquante par contre Corriges.pdf
Bon, on avance en tout cas ;)
Pour les titres 3 c'est rectifié, merci ;) Corriges.pdf
Sinon je vais voir comment améliorer tout ça en partant du principe d'exécution de ta solution, qui pour moi est bien plus adaptée pour une utilisation "en production", à suivre donc...
@Karduin Mon script a un peu évolué en m'inspirant de la "présélection" que tu as mis en place sur ton script... indispensable à l'usage en effet ! (à mon humble avis) Par contre je garde la logique de mon script pour le moment et j'adapte en fonction... je verrais ensuite à changer suivant l'évolution... Sinon pythonique ? J'aurais aimé passer avec une fonction lambda pour la demande de sélection avec l'input, si c'est possible... mais rien trouvé pour l'instant en tout cas.
J'ai fait évolué le script avant le "break" pour ajouter une vérification du dossier concerné (à y être;) Le script marche toujours bien mais j'expérimente en fait et on peut encore bien améliorer tout ça...
Finalement, je trouve que ce "petit travail" ouvre un tas de perspectives à l'usage voire de variantes applicatives et du coup ça devient vraiment intéressant...
tant mieux si vous trouvez ça intéressant :)
je vous suggère deux directions d'améliorations
-
from pathlib import Pathplutôt que le vieux (et un peu ringard)os.path; ça c'est assez superficiel et ça ira vite -
ensuite et surtout, mais c'est plus lourd comme changements, ce serait de transformer ce script en une classe. Ça le rendrait beaucoup plus réutilisable.
Quelque chose comme
translator = Corriges2Rst(directory)
translator.add_file("corriges-w1.txt")
# et / ou
translator.add_all_txt_files()
translator.run('myoutput.rst')
C'est un prétexte naturellement, pour vous montrer qu'une classe ça peut servir à faire juste du tri dans les espaces de noms, pour rendre un code réutilisable. Ça n'est pas important si l'interface est différente de ce que je propose, c'est jute une direction générale que je vous donne.
fausse manipe, je n'avais pas l'intention de fermer cette discussion
Je préfère pour la fausse manip...
Bon ok pour essayer de créer une classe... essayer car j'ai encore quelques notions à voir et même à bien revoir ! Sinon intéressant et passionnant car créatif pour ma part... merci pour les suggestions ;)
Effectivement, intéressant ! parce-qu’en essayant d'être généraliste sur le sujet (ne pas s'en tenir qu’aux fichiers de corrections), sa ouvre des perspectives vers d'autres thèmes. Comme quoi même sur un besoin plutôt basique au départ ça peut déboucher sur des techniques utiles pour d'autre développements.
Bon premier coup d’œil sur pathlib... un truc m’échappe... pour mettre les fichiers dans une liste, à priori on fait :
from pathlib import Path
p=Path('.')
list(p.glob('*.py'))
OK mais dans la liste j'ai :
[WindowsPath('dispatch.py'), WindowsPath('robots.py'), WindowsPath('robots2.py'), WindowsPath('test1.py'), WindowsPath('test2.py'), WindowsPath('test3.py'), WindowsPath('test4.py'), WindowsPath('test9.py')]
Je ne peux pas avoir juste le nom des fichiers sans le WindowsPath ?
vous convertissez un Path en str:
[str(path) for path in your_list]
mais bon c'est pas vraiment la peine en fait, vous pouvez directement ouvrir un Path !
OK, il faut que je creuse l'utilisation... edit : Pour les noms on peut faire comme ça :
from pathlib import Path
p = Path('.')
z = list(p.glob('*.py'))
for i in z:
print(i.name)
Cool, il y a un attribut pour récupérer le nom.
Pour pathlib ... j'avance doucement et par ailleurs encore très loin de savoir comment bien utiliser les modules importés, bref ;) A titre indicatif seulement, quelques exemples réalisés que j'arrive à comprendre "en gros" mais quand même que je creuse encore pour bien en comprendre toutes les subtilités :P
p = Path(__file__).parent
paths_files = list(p.glob('*.txt'))
paths_list = [str(path) for path in paths_files]
print(f"chemin dossier => {p}\n\nliste chemins fichiers :\n{paths_list}")
# en effet après retour et (re)édition, c'est mieux avec l'attribut name ;)
files = [file.name for file in paths_files]
print(f"chemin dossier => {p}\nliste fichiers : {files}")
Sinon complètement d'accord ! ;)
Comme quoi même sur un besoin plutôt basique au départ ça peut déboucher sur des techniques utiles pour d'autre développements.