Rendere l'output di phicli json #3

Open
blallo wants to merge 4 commits from json-serialize-output into master

Ho fatto tre modifiche in questa PR:

  • Ho aggiunto la possibilità di avere flag booleani (--flag/--no-flag, con default a False) dalla cli
  • Ho aggiunto un flag globale, con default a False per scegliere di mostrare le password nell'output dei comandi
  • Ho fatto in modo che l'output di showuser, adduser e showgroup sia del json valido, scegliendo in particolare di trasformare le password (che vengono fornite come bytes) nella lista di hex corrispondenti

Lungo la strada, ho anche applicato black. Non me ne vogliate. Mi mette l'anima in pace e ce l'ho direttamente integrato in vim.

Ho fatto tre modifiche in questa PR: - Ho aggiunto la possibilità di avere flag booleani (`--flag/--no-flag`, con default a `False`) dalla cli - Ho aggiunto un flag globale, con default a `False` per scegliere di mostrare le password nell'output dei comandi - Ho fatto in modo che l'output di `showuser`, `adduser` e `showgroup` sia del json valido, scegliendo in particolare di trasformare le password (che vengono fornite come `bytes`) nella lista di hex corrispondenti Lungo la strada, ho anche applicato [black](https://github.com/psf/black). Non me ne vogliate. Mi mette l'anima in pace e ce l'ho direttamente integrato in [vim](https://black.readthedocs.io/en/stable/editor_integration.html#vim).
crudo was assigned by blallo 2020-11-20 12:12:46 +01:00
uid was assigned by blallo 2020-11-20 12:12:46 +01:00
crudo requested changes 2020-11-20 15:33:09 +01:00
crudo left a comment
Owner

Ho svolto una prima revisione non completa.

Visto che la patch è formata in buona parte da modifiche estetiche, ho iniziato da quelle.

Il progetto era già lintato con flake8 e personalmente validavo ogni commit (cfr. flake8 --install-hook git). Non mi sembra il caso di usare due linter diversi.

Ho indicato senza ripetermi i punti in cui il linter ha fatto cazzate e dove si è comportato bene.

Per favore evitiamo di far scrivere sorgente alle macchine. Usare sempre, in ogni caso, senza possibilità di appello lo stesso stile non rende il codice più leggibile. Lasciare rifare a un software tutte le indentazioni in un modo standard (o cambiare tutte le virgolette) probabilmente impatterà positivamente sugli OCD di qualcuno ma IMHO non rende automagicamente il codice migliore o più chiaro.

Completerò la revisione più in là oggi stesso (spero).

Ho svolto una prima revisione **non** completa. Visto che la patch è formata in buona parte da modifiche estetiche, ho iniziato da quelle. Il progetto era già lintato con flake8 e personalmente validavo ogni commit (cfr. `flake8 --install-hook git`). Non mi sembra il caso di usare due linter diversi. Ho indicato senza ripetermi i punti in cui il linter ha fatto cazzate e dove si è comportato bene. Per favore evitiamo di far scrivere sorgente alle macchine. Usare sempre, in ogni caso, senza possibilità di appello lo stesso stile **non** rende il codice più leggibile. Lasciare rifare a un software tutte le indentazioni in un modo standard (o cambiare tutte le virgolette) probabilmente impatterà positivamente sugli OCD di qualcuno ma IMHO non rende automagicamente il codice migliore o più chiaro. Completerò la revisione più in là oggi stesso (spero).
@ -4,3 +4,2 @@
def serialize(d):
return {k: (v.isoformat() if isinstance(v, datetime) else v)
for k, v in d.items()}
return {k: (v.isoformat() if isinstance(v, datetime) else v) for k, v in d.items()}

Qui malissimo.

Qui malissimo.
@ -20,3 +20,1 @@
web.run_app(app,
host=app['config']['core']['listen'].get('host', '127.0.0.1'),
port=app['config']['core']['listen'].get('port', '8080'))
web.run_app(

Qui male.

Qui male.
@ -22,3 +23,3 @@
for i, name in enumerate(param_names):
info = param_infos[i] if i<len(param_infos) else ''
info = param_infos[i] if i < len(param_infos) else ""

Qui bene.

Qui bene.
@ -42,3 +42,1 @@
raise FileNotFoundError("Could not find {} in any of {}."
.format(CONFIG_FILE,
', '.join(CONFIG_PATHS)))
raise FileNotFoundError(

Qui male.

Qui male.

Inoltre non capisco perché l'unica regola a mio avviso sana, cioè di evitare righe più lunghe di 80 colonne, rispettata finora, è stata falciata via con violenza.

Inoltre non capisco perché l'unica regola a mio avviso sana, cioè di evitare righe più lunghe di 80 colonne, rispettata finora, è stata falciata via con violenza.
Poster
Owner

Inoltre non capisco perché l'unica regola a mio avviso sana, cioè di evitare righe più lunghe di 80 colonne, rispettata finora, è stata falciata via con violenza.

https://black.readthedocs.io/en/stable/the_black_code_style.html#line-length

Comunque è questione di scelte. Sappiamo che python ha ventuordicimila strumenti diversi per fare lint e fix. Ho trovato black il più facile da usare e per questo mi sono adattato.

Il progetto era già lintato con flake8 e personalmente validavo ogni commit (cfr. flake8 --install-hook git). Non mi sembra il caso di usare due linter diversi.

Perdonami, dove sta scritto? Non ho trovato riferimenti a questa convenzione di sviluppo nel readme o da altre parti.

> Inoltre non capisco perché l'unica regola a mio avviso sana, cioè di evitare righe più lunghe di 80 colonne, rispettata finora, è stata falciata via con violenza. https://black.readthedocs.io/en/stable/the_black_code_style.html#line-length Comunque è questione di scelte. Sappiamo che python ha ventuordicimila strumenti diversi per fare lint e fix. Ho trovato `black` il più facile da usare e per questo mi sono adattato. > Il progetto era già lintato con flake8 e personalmente validavo ogni commit (cfr. flake8 --install-hook git). Non mi sembra il caso di usare due linter diversi. Perdonami, dove sta scritto? Non ho trovato riferimenti a questa convenzione di sviluppo nel readme o da altre parti.
Poster
Owner

Cosa vogliamo fare con questa PR? Rejected? @crudo @uid

Cosa vogliamo fare con questa PR? Rejected? @crudo @uid
This pull request can be merged automatically.
You are not authorized to merge this pull request.
You can also view command line instructions.

Step 1:

From your project repository, check out a new branch and test the changes.
git checkout -b json-serialize-output master
git pull origin json-serialize-output

Step 2:

Merge the changes and update on Gitea.
git checkout master
git merge --no-ff json-serialize-output
git push origin master
Sign in to join this conversation.
No reviewers
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: unit/phi#3
There is no content yet.