Qual è la funzione "__version_info__" in un pacchetto PyPi?

-4

Qual è la funzione __version_info__ ?

Sto leggendo una libreria open source uritemplate , ho trovato:

__version__ = '3.0.0'
__version_info__ = tuple(int(i) for i in __version__.split('.') if i.isdigit())

ci sono già __version__ , perché c'è ancora una definizione della variabile __version_info__ ? qual è la funzione di esso?

Modifica-01

Ho provato il codice di prova:

__version__ = '1.1.1.20180726_beta'
__version_info__ = tuple(int(i) for i in __version__.split('.') if i.isdigit())


if __name__ == '__main__':
    print(__version_info__)

il risultato è:

(1, 1, 1)
    
posta aircraft 26.07.2018 - 12:55
fonte

1 risposta

0

Può essere utile confrontare le versioni a livello di codice:

>>> '1.10.0' > '1.9.0'
False
>>> (1, 10, 0) > (1, 9, 0)
True

L'importazione del codice può quindi verificare caratteristiche specifiche:

import foolib
if foolib.__version_info__ >= (1, 9, 0):
    # this version supports super_cool_functionality
    foolib.super_cool_functionality()
else:
    print("upgrade foolib to get super cool functionality")

Questo non è generalmente ottimo, perché non gestisce bene le rimozioni e le altre modifiche API, quindi in pratica potresti voler richiedere una versione più specifica che garantisce super_cool_functionality o utilizzare più funzioni di rilevamento diretto:

if hasattr(foolib, 'super_cool_functionality'):
    # this version supports super_cool_functionality
    foolib.super_cool_functionality()
else:
    print("installed version of foolib doesn't have super cool functionality")

Python espone una tupla con nome per la sua versione in sys.version_info .

    
risposta data 26.07.2018 - 13:25
fonte

Leggi altre domande sui tag