Topic: pycharm & style check - eccezioni  (Letto 52 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline imbuto

  • python neanderthalensis
  • ****
  • Post: 464
  • Punti reputazione: 2
    • Mostra profilo
pycharm & style check - eccezioni
« il: Novembre 16, 2020, 13:30 »
Dopo molto tempo sono rimesso a scrivere codice e ho iniziato a usare PyCharm (che penso non abbandonerò più, dopo aver attivato il vim mode).

Quando scrivo cerco di attenermi scrupolosamente allo stile PEP8 - con un’eccezione: nel caso un package segua uno stile diverso (per esempio wx, che per i metodi usa l'upper camel case). In queste situazioni evito di mescolare snake case e camel case per una stessa classe.

Sapete se è possibile disattivare alcuni check selettivamente per alcuni file? O meglio ancore definire uno stile specifico per un file? Tipo per tutte le classi in gui.py applicare il camel case. Non è un grosso problema, ma se ci fosse una soluzione facile...

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.144
  • Punti reputazione: 9
    • Mostra profilo
Re:pycharm & style check - eccezioni
« Risposta #1 il: Novembre 16, 2020, 21:44 »
Certo che sì... dipende da quale linter stai usando (o forse... da quale linter sta usando pycharm senza che tu lo sappia!).
Per esempio, considera PyLint: puoi abilitare/disabilitare i singoli check da un file di configurazione, o anche con dei "commenti speciali" all'interno del codice stesso. Guarda qui http://pylint.pycqa.org/en/latest/user_guide/message-control.html e anche qui http://pylint.pycqa.org/en/latest/user_guide/options.html per farti un'idea. Gli altri linter "evoluti" hanno delle consuetudini abbastanza simili.
Probabilmente, poi, pycharm "pesca" la configurazione del suo linter interno da un file di configurazione, che puoi modificare... ma qui devi appunto scoprire che cosa usa pycharm per fare linting, e come puoi intervenire. Non so quanto sia accurata la documentazione di pycharm, dovresti scavare un po'...

Offline imbuto

  • python neanderthalensis
  • ****
  • Post: 464
  • Punti reputazione: 2
    • Mostra profilo
Re:pycharm & style check - eccezioni
« Risposta #2 il: Novembre 17, 2020, 07:27 »
ok, ho visto che viene usato pycodestyle, bundled con pycharm - proverò a vedere se anche la versione bundled legge il file di configurazione e se c’è qualche opzione che fa al caso mio.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.144
  • Punti reputazione: 9
    • Mostra profilo
Re:pycharm & style check - eccezioni
« Risposta #3 il: Novembre 17, 2020, 11:22 »
uhm... pycodestile è il vecchio Pep8... da un lato ha senso che sia predefinito in pycharme, dall'altro è un linter piuttosto rudimentale... tra l'altro non so neanche se si possa configurare con la tecnica dei "commenti speciali" (ma non ricordo, è un secolo che non lo guardo).
Forse potresti considerare anche di cercare nella documentazione di pycharme come si fa a integrare un altro linter invece di pycodestile... per esempio vanno molto di moda Flake8 e Pylint... che sono entrambi più potenti (Pylint è pure troppo... praticamente se non lo configuri si mette a rilevare... tutto!).
Ovviamente se vuoi fare una scelta ragionata, ti conviene prima testarli tutti... chiudi per un attimo pycharme, ti fai un virtual environment con la shell e ci installi dentro tutti e tre. Poi scrivi un modulo "test.py" pieno di erorri, e sempre dalla shell fai qualcosa come

$ python -m pycodestyle test.py > pycodestyle_report.txt
$ python -m pylint test.py > pylint_report.txt
$ python -m flake8 test.py > flake8_report.txt

e ti vai a leggere i tre report, e vedi quali e quanti errori ti hanno segnalato, e in che modo.