Makefiles et classificateurs

Créer des paquetages Python

James Fulton

Climate informatics researcher

Classificateurs

  • Métadonnées de votre paquet
  • Aide les utilisateurs à trouver votre paquet sur PyPI
  • À inclure
    • État du paquet
    • Public cible
    • Type de licence
    • Langue
    • Versions de Python prises en charge
  • Beaucoup d'autres classificateurs existent https://pypi.org/classifiers

Dans setup.py de mysklearn

setup(
    ...
    classifiers=[
        'Development Status :: 2 - Pre-Alpha',
        'Intended Audience :: Developers',
        'License :: OSI Approved :: MIT License',
        'Natural Language :: English',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
    ],
    ...
)
Créer des paquetages Python

À quoi servent les Makefiles ?

  • Utilisés pour automatiser des parties de la création de votre paquet
mysklearn/
...
|-- README.md
|-- setup.py
|-- Makefile  <---
...
Créer des paquetages Python

Que contient un Makefile ?

Dans Makefile

...

dist: ## construit les paquets source et wheel
    python3 setup.py sdist bdist_wheel

clean-build: ## supprimer les artéfacts de construction rm -fr build/ rm -fr dist/ rm -fr .eggs/
test: ## exécuter rapidement les tests avec le Python par défaut pytest
release: dist ## empaqueter et téléverser une publication twine upload dist/*
Créer des paquetages Python

Comment utiliser le Makefile ?

make <function-name>
mysklearn/ <--- se placer ici
...
|-- README.md
|-- setup.py
|-- Makefile  
...
Créer des paquetages Python

Comment utiliser le Makefile ?

Pour utiliser la fonction dist, tapez ceci dans le terminal

make dist

Dans Makefile

...

dist: ## construit les paquets source et wheel
    python3 setup.py sdist bdist_wheel

clean-build: ## supprimer les artéfacts de construction
    rm -fr build/
    rm -fr dist/
    rm -fr .eggs/

test: ## exécuter rapidement les tests avec le Python par défaut
    pytest

release: dist ## empaqueter et téléverser une publication
    twine upload dist/*
Créer des paquetages Python

Résumé du Makefile

make help
clean                supprimer tous les artéfacts de construction, de test, de couverture et de Python
clean-build          supprimer les artéfacts de construction
clean-pyc            supprimer les artéfacts de fichiers Python
clean-test           supprimer les artéfacts de test et de couverture
lint                 vérifier le style avec flake8
test                 exécuter rapidement les tests avec le Python par défaut
test-all             exécuter les tests sur chaque version de Python avec tox
release              empaqueter et téléverser une publication
dist                 construire les paquets source et wheel
install              installer le paquet dans le site-packages du Python actif
Créer des paquetages Python

Passons à la pratique !

Créer des paquetages Python

Preparing Video For Download...