Şablonlarla daha hızlı paket geliştirme

Python Paketleri Geliştirme

James Fulton

Climate informatics researcher

Şablonlar

  • Python paketlerinde birçok ek dosya vardır
  • Hatırlanacak çok şey vardır
  • Şablonlar bunların çoğunu sizin yerinize halleder

Paket dosya ağacı

.
|-- example_package
|   |-- __init__.py
|   `-- example_package.py
|-- tests
|   |-- __init__.py
|   `-- test_example_package.py
|-- README.rst     <-
|-- LICENSE        <-- çok
|-- MANIFEST.in    <-- sayıda
|-- tox.ini        <-- ek
|-- setup.py       <-- dosya
`-- setup.cfg      <--
Python Paketleri Geliştirme

cookiecutter

  • Boş Python paketleri oluşturmak için kullanılabilir
  • Paketinizin ihtiyaç duyduğu tüm ek dosyaları oluşturur

Paket dosya ağacı

.
|-- example_package
|   |-- __init__.py
|   `-- example_package.py
|-- tests
|   |-- __init__.py
|   `-- test_example_package.py
|-- README.rst
|-- LICENSE
|-- MANIFEST.in
|-- tox.ini
|-- setup.py
`-- setup.cfg
Python Paketleri Geliştirme

cookiecutter kullanımı

cookiecutter <template-url>
Python Paketleri Geliştirme

cookiecutter kullanımı

cookiecutter https://github.com/audreyr/cookiecutter-pypackage
Python Paketleri Geliştirme

cookiecutter kullanımı

cookiecutter https://github.com/audreyr/cookiecutter-pypackage
adı_soyadı [Audrey Roy Greenfeld]:
Python Paketleri Geliştirme

cookiecutter kullanımı

cookiecutter https://github.com/audreyr/cookiecutter-pypackage
adı_soyadı [Audrey Roy Greenfeld]: James Fulton




  • Adınızı girip Enter/Return tuşuna basınız
Python Paketleri Geliştirme

cookiecutter kullanımı

cookiecutter https://github.com/audreyr/cookiecutter-pypackage
adı_soyadı [Audrey Roy Greenfeld]: James Fulton

e-posta [[email protected]]: [email protected] github_kullanıcı_adı [audreyr]: MyUsername
proje_adı [Python Boilerplate]: mysklearn project_slug [mysklearn]: mysklearn
  • Project slug - pip install name içinde kullanılan name
Python Paketleri Geliştirme

cookiecutter kullanımı

cookiecutter https://github.com/audreyr/cookiecutter-pypackage
...
project_short_description [Python Boilerplate ...]: A Python package for linear 
    regression.

pypi_kullanıcı_adı [MyUsername]: version [0.1.0]:
Python Paketleri Geliştirme

cookiecutter kullanımı

cookiecutter https://github.com/audreyr/cookiecutter-pypackage
...
use_pytest [n]: y
use_pypi_deployment_with_travis [y]: n
add_pyup_badge [n]: n
Python Paketleri Geliştirme

cookiecutter kullanımı

cookiecutter https://github.com/audreyr/cookiecutter-pypackage
...
Komut satırı arayüzünü seçin:
1 - Click
2 - Argparse
3 - Komut satırı arayüzü yok
1, 2, 3 arasından seçiniz [1]: 3

yazar_dosyası_oluştur [y]: y
Python Paketleri Geliştirme

cookiecutter kullanımı

cookiecutter https://github.com/audreyr/cookiecutter-pypackage
...
Açık kaynak lisansı seçin:
1 - MIT license
2 - BSD license
3 - ISC license
4 - Apache Software License 2.0
5 - GNU General Public License v3
6 - Açık kaynak değil
1, 2, 3, 4, 5, 6 arasından seçiniz [1]: 6
Python Paketleri Geliştirme

Şablon çıktısı

mysklearn/
|-- mysklearn/
|   |-- __init__.py
|   `-- mysklearn.py
|-- tests/
|   |-- __init__.py
|   `-- test_mysklearn.py
|-- MANIFEST.in
|-- README.rst
|-- requirements_dev.txt
|-- setup.cfg
|-- setup.py
|-- tox.ini

|-- AUTHORS.rst |-- CONTRIBUTING.rst |-- HISTORY.rst `-- Makefile

AUTHORS.rst dosyasının içinde

=======
Emeği Geçenler
=======

Geliştirme Lideri
________________

* James Fulton <[email protected]>

Katkıda Bulunanlar
____________

Henüz yok. Neden ilk siz olmayasınız?
Python Paketleri Geliştirme

Şablon çıktısı

mysklearn/
|-- mysklearn/
|-- tests/
|-- MANIFEST.in
|-- README.rst
|-- requirements_dev.txt
|-- setup.cfg
|-- setup.py
|-- tox.ini
...
...
|-- docs/
|-- .github/
|-- .editorconfig
|-- .gitignore
`-- .travis.yml
Python Paketleri Geliştirme

Haydi pratik yapalım!

Python Paketleri Geliştirme

Preparing Video For Download...