[Python] Come determinare le dipendenze di un progetto Python senza Pipfile o requirements.txt?

bruno bossola bbossola a gmail.com
Ven 10 Apr 2020 15:04:55 CEST


Ciao a tutti,

Riemergo sulla lista dopo qualche anno :) e come CTO di un'azienda. Meterian
<https://www.meterian.com/>, che si occupa di sicurezza. In pratica il
nostro tool, data una codebase, ne determina le dipendenze e verifica che
nessuna di esse sia vulnerabile, out of date o che usi una licenza non
business friendly. In pratica generiamo dei report tipo questo
<https://www.meterian.com/projects/?pid=2285a757-857f-4bdf-9b5e-d1c5acb27751> o
questo
<https://www.meterian.com/projects/?pid=495ac650-b512-498d-b58b-fb5aff4d0320>
.

Abbiamo implementato il supporto per Python fino a un certo punto :), al
momento supportiamo Pipfile e requirements.txt (dove usiamo comunque pipenv
per rigenerare il Pipfile) ma direi che ci manca supporto a tutto il resto
e siccome io non sono un esperto di Python (cioe', conosco il linguaggio ma
professionalmente lo uso solo per scripting e QA al momento) avrei bisogno
di aiuto :)

Intravedo per ora altri tre altri fondamentali sistemi per dichiarare le
dipendenze:

   1. setup.py
   2. Venv
   3. Conda

Per quanto riguarda *setup.py *credo sia sufficiente usare "python setup.py
egg_info" che genera il file <name>.egg-info/requires.txt che a quel punto
mi posso andare a leggere. Unica cosa che ho notato e' che non sempre le
dipendenze dichiarano una versione, e poi non sono sicuro di riuscire a
generare il grafo quindi.... boh.

Per quanto riguarda *venv *se ho capito bene crea un virtual environment
con tutto dentro, quindi dovrebbe bastare zomparci dentro e fare un pip
freeze. Pero' mi mancherebbe il vero grafo delle dipendenze.

Per *conda *mi sto ancora studiando il tooling, ma mi sembra si possa
ottteere il grafo con "conda create --dry-run --json -n <package>" oppure
con il nuovo
comando "conda.models.dag" (che pero' non sono riuscito a fare funzionare.

Se avete suggerimenti li apprezzo molto volentieri. E se volete usare il
tool comunque e' gratis per progetti opensource :)

Grazie in anticipo e buona Pasqua (anche se casalinga quest'anno!).
Ciao,

    Bruno

--
Bruno Bossola
CTO - meterian.io
Scan your website now! <https://www.meterian.com/webscanner.html>
Scan your project now! <https://www.meterian.com/projectscanner.html>
-------------- parte successiva --------------
Un allegato HTML รจ stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20200410/dad7fe65/attachment.html>


Maggiori informazioni sulla lista Python