2.6 Ulteriori meta-data

Lo script di setup può includere ulteriori meta-data, oltre al nome e la versione. Queste informazioni includono:

Meta-Data  Descrizione  Valore  Note 
name nome del package breve stringa (1)
version versione di questa release breve stringa (1)(2)
author nome dell'autore del package breve stringa (3)
author_email indirizzo email dell'autore del package indirizzo email (3)
maintainer il nome del manutentore del package breve stringa (3)
maintainer_email indirizzo email del manutentore del package indirizzo email (3)
url home page per il package URL (1)
description breve, sommaria descrizione del package breve stringa  
long_description descrizione estesa del package stringa lunga  
download_url indirizzo da cui poter scaricare il package URL (4)
classifiers una lista di classificatori Trove lista di stringhe (4)

Note:

(1)
Questo campo viene richiesto.
(2)
Si raccomanda che la versione sia nella forma major.minor[.patch[.sub]].
(3)
Sia l'autore che il manutentore devono essere identificati.
(4)
Questi campi non devono essere usati se il package deve essere compatibile con versioni di Python precedenti alla 2.2.3 o 2.3. L'elenco è disponibile presso il sito web PyPI.

'breve stringa'
Una singola riga di testo, non più di 200 caratteri.
'stringa lunga'
Righe multiple in puro testo in formato reStructuredText (vedete http://docutils.sf.net/).
'lista di stringhe'
vedete più avanti.

Nessuno dei valori stringa deve essere in Unicode.

La codifica delle informazioni sulla versione è un'arte essa stessa. I package Python generalmente sono conformi al formato di versione major.minor[.patch][sub]. Il numero maggiore è 0 per la release iniziale e sperimentale del software. Viene incrementato per rilasci che rappresentano un punto importante di svolta del package. Il numero minore viene incrementato quando importanti, nuovi aggiornamenti vengono aggiunti al package. Il numero di patch aumenta quando vengono rilasciati dei bug-fix. Elementi aggiuntivi per informazioni varie sulle versioni vengono talvolta usati per rappresentare sottoversioni. Queste vengono solitamente denominate "a1, a2,...,aN) (per versioni alpha, dove funzionalità e API possono cambiare), "b1,b2,...,bN) (per versioni beta, che sono solamente dei bug-fix) e "pr1,pr2,...,prN" (per versioni di testing di pre-release della versione finale). Alcuni esempi:

0.1.0
La prima, versione sperimentale di un package
1.0.1a2
La seconda versione alpha della prima versione di patch della 1.0

I classifiers vengono specificati in una lista python:

setup(...
      classifiers=[
          'Development Status :: 4 - Beta',
          'Environment :: Console',
          'Environment :: Web Environment',
          'Intended Audience :: End Users/Desktop',
          'Intended Audience :: Developers',
          'Intended Audience :: System Administrators',
          'License :: OSI Approved :: Python Software Foundation License',
          'Operating System :: MacOS :: MacOS X',
          'Operating System :: Microsoft :: Windows',
          'Operating System :: POSIX',
          'Programming Language :: Python',
          'Topic :: Communications :: Email',
          'Topic :: Office/Business',
          'Topic :: Software Development :: Bug Tracking',
          ],
      )

Se si vuole includere dei classificatori nel proprio file setup.py e si desidera anche restare compatibili all'indietro con le precedenti versioni di Python (prima della 2.2.3), si può includere il seguente frammento di codice nel proprio setup.py prima della chiamata setup():

# patch distutils if it can't cope with the "classifiers" or
# "download_url" keywords
if sys.version < '2.2.3':
    from distutils.dist import DistributionMetadata
    DistributionMetadata.classifiers = None
    DistributionMetadata.download_url = None

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.