Makefile'lar ve sınıflandırıcılar

Python Paketleri Geliştirme

James Fulton

Climate informatics researcher

Sınıflandırıcılar

  • Paketiniz için meta veriler
  • Kullanıcıların paketinizi PyPI'da bulmasına yardımcı olur
  • Şunları eklemelisiniz
    • Paket durumu
    • Hedef kitle
    • Lisans türü
    • Dil
    • Desteklenen Python sürümleri
  • Daha çok sınıflandırıcı var https://pypi.org/classifiers

mysklearn'in setup.py dosyasında

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',
    ],
    ...
)
Python Paketleri Geliştirme

Makefile ne için kullanılır?

  • Paketi oluşturmanın bazı kısımlarını otomatikleştirmek için kullanılır
mysklearn/
...
|-- README.md
|-- setup.py
|-- Makefile  <---
...
Python Paketleri Geliştirme

Bir Makefile'da neler var?

Makefile içinde

...

dist: ## kaynak ve wheel paketi oluşturur
    python3 setup.py sdist bdist_wheel

clean-build: ## derleme artifaktlarını temizler rm -fr build/ rm -fr dist/ rm -fr .eggs/
test: ## varsayılan Python ile hızlı test çalıştırır pytest
release: dist ## bir sürümü paketler ve yükler twine upload dist/*
Python Paketleri Geliştirme

Makefile nasıl kullanılır?

make <function-name>
mysklearn/ <--- buraya gidin
...
|-- README.md
|-- setup.py
|-- Makefile  
...
Python Paketleri Geliştirme

Makefile nasıl kullanılır?

dist işlevini kullanmak için terminale yazın

make dist

Makefile içinde

...

dist: ## kaynak ve wheel paketi oluşturur
    python3 setup.py sdist bdist_wheel

clean-build: ## derleme artifaktlarını temizler
    rm -fr build/
    rm -fr dist/
    rm -fr .eggs/

test: ## varsayılan Python ile hızlı test çalıştırır
    pytest

release: dist ## bir sürümü paketler ve yükler
    twine upload dist/*
Python Paketleri Geliştirme

Makefile özeti

make help
clean                tüm derleme, test, kapsam ve Python artifaktlarını temizle
clean-build          derleme artifaktlarını temizle
clean-pyc            Python dosya artifaktlarını temizle
clean-test           test ve kapsam artifaktlarını temizle
lint                 flake8 ile stil kontrolü yap
test                 varsayılan Python ile hızlı test çalıştır
test-all             tüm Python sürümlerinde tox ile test çalıştır
release              bir sürümü paketle ve yükle
dist                 kaynak ve wheel paketi oluştur
install              paketi etkin Python'un site-packages'ına kur
Python Paketleri Geliştirme

Haydi pratik yapalım!

Python Paketleri Geliştirme

Preparing Video For Download...