Dokümantasyon

Python Paketleri Geliştirme

James Fulton

Climate informatics researcher

Neden dokümantasyon eklenir?

  • Kullanıcıların kodunuzu kullanmasına yardımcı olur
  • Her birini belgeleyin
    • Fonksiyon
    • Sınıf
    • Sınıf metodu
import numpy as np
help(np.sum)
...
sum(a, axis=None, dtype=None, out=None)
    Belirtilen eksende dizi öğelerinin toplamı.

    Parameters
    ----------
    a : array_like
        Toplanacak öğeler.
    axis : None or int or tuple of ints, optional
        Toplamın alınacağı eksen(ler).  
        Varsayılan, axis=None, girdi dizisinin
        tüm öğelerini toplar.
...
Python Paketleri Geliştirme

Neden dokümantasyon eklenir?

  • Kullanıcıların kodunuzu kullanmasına yardımcı olur
  • Her birini belgeleyin
    • Fonksiyon
    • Sınıf
    • Sınıf metodu
import numpy as np
help(np.array)
...
    array(object, dtype=None, copy=True)

    Bir dizi oluştur.

    Parameters
    ----------
    object : array_like
        Bir dizi, dizi arayüzünü sunan herhangi bir nesne ...
    dtype : data-type, optional
        Dizi için istenen veri türü. 
    copy : bool, optional
        True ise (varsayılan) nesne kopyalanır.
...
Python Paketleri Geliştirme

Neden dokümantasyon eklenir?

  • Kullanıcıların kodunuzu kullanmasına yardımcı olur
  • Her birini belgeleyin
    • Fonksiyon
    • Sınıf
    • Sınıf metodu
import numpy as np
x = np.array([1,2,3,4])
help(x.mean)
...
mean(...) method of numpy.ndarray instance
    a.mean(axis=None, dtype=None, out=None)

    Verilen eksen boyunca dizi öğelerinin ortalamasını döndürür.
    Tam dokümantasyon için `numpy.mean` bölümüne bakın.

...
Python Paketleri Geliştirme

Fonksiyon dokümantasyonu

def count_words(filepath, words_list):

""" ... """
Python Paketleri Geliştirme

Fonksiyon dokümantasyonu

def count_words(filepath, words_list):

"""Bu kelimelerin toplam görülme sayısını say."""
Python Paketleri Geliştirme

Fonksiyon dokümantasyonu

def count_words(filepath, words_list):

"""Bu kelimelerin toplam görülme sayısını say. Sayım, verilen konumdaki bir metin dosyasında yapılır. """
Python Paketleri Geliştirme

Fonksiyon dokümantasyonu

def count_words(filepath, words_list):

"""Bu kelimelerin toplam görülme sayısını say. Sayım, verilen konumdaki bir metin dosyasında yapılır. [filepath ve words_list nedir açıkla] [ne döndürülür] """
Python Paketleri Geliştirme

Dokümantasyon stili

Google dokümantasyon stili

"""Özet satırı.

Fonksiyonun geniş açıklaması.

Args:
    arg1 (int): arg1 açıklaması
    arg2 (str): arg2 açıklaması

NumPy stili

    """Özet satırı.

    Fonksiyonun geniş açıklaması.

    Parameters
    ----------
    arg1 : int
        arg1 açıklaması ...

    Returns
    ----------
    numpy.ndarray

reStructuredText stili

    """Özet satırı.

    Fonksiyonun geniş açıklaması.

    :param arg1: arg1 açıklaması
    :type arg1: int
    :param arg2: arg2 açıklaması
    :type arg2: str

Epytext stili

"""Özet satırı.

  Fonksiyonun geniş açıklaması.

  @type arg1: int
  @param arg1:  arg1 açıklaması
  @type arg2: str
  @param arg2: arg2 açıklaması
Python Paketleri Geliştirme

NumPy dokümantasyon stili

Bilimsel Python paketlerinde yaygın:

  • numpy
  • scipy
  • pandas
  • sklearn
  • matplotlib
  • dask
  • vb.
Python Paketleri Geliştirme

NumPy dokümantasyon stili

import scipy
help(scipy.percentile)
percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear')
    Belirtilen eksen boyunca verinin q'nci yüzdelik değerini hesapla.

    Dizinin q'nci yüzdelik(ler)ini döndürür.


Parameters ----------
a : array_like
Diziye dönüştürülebilen girdi dizi veya nesnesi.

Diğer türler: int, float, bool, str, dict, numpy.array, vb.

Python Paketleri Geliştirme

NumPy dokümantasyon stili

import scipy
help(scipy.percentile)
percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear')
    ...
    Parameters
    ----------
    ...
    axis : {int, tuple of int, None}
    ...
    interpolation : {'linear', 'lower', 'higher', 'midpoint', 'nearest'}
  • Uygunsa parametre için birden çok türü listeleyin
  • Yalnızca birkaç geçerli seçenek varsa kabul edilen değerleri listeleyin
Python Paketleri Geliştirme

NumPy dokümantasyon stili

import scipy
help(scipy.percentile)
percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear')
    ...
    Returns
    -------
    percentile : scalar or ndarray
        Eğer `q` tek bir yüzdelik ve `axis=None` ise sonuç
        skalar olur. Birden çok yüzdelik verilirse, sonucun
        ilk ekseni yüzdeliklere karşılık gelir...
    ...
Python Paketleri Geliştirme

NumPy dokümantasyon stili

Diğer bölümler

  • Raises
  • See Also
  • Notes
  • References
  • Examples
1 https://numpydoc.readthedocs.io/en/latest/format.html
Python Paketleri Geliştirme

Şablonlar ve stil dönüşümü

  • pyment docstring oluşturabilir
  • Terminalden çalıştırın
  • Aşağıdaki stillerden herhangi biri
    • Google
    • Numpydoc
    • reST (reStructuredText)
    • Javadoc (epytext)
  • Dokümantasyonu bir stilden diğerine dönüştürün
Python Paketleri Geliştirme

Şablonlar ve stil dönüşümü

pyment -w -o numpydoc textanalysis.py
def count_words(filepath, words_list):
    # Metin dosyasını aç
    ...
    return n
  • -w - dosyanın üzerine yaz
  • -o numpydoc - çıktıyı NumPy stilinde ver
Python Paketleri Geliştirme

Şablonlar ve stil dönüşümü

pyment -w -o numpydoc textanalysis.py
def count_words(filepath, words_list):
    """

    Parameters
    ----------
    filepath :

    words_list :


    Returns
    -------
    type
    """
Python Paketleri Geliştirme

Google stiline çevirin

pyment -w -o google textanalysis.py
def count_words(filepath, words_list):
    """Bu kelimelerin toplam görülme sayısını say.

    Sayım, verilen konumdaki bir metin dosyasında yapılır.

    Parameters
    ----------
    filepath : str
        Metin dosyasının yolu.
    words_list : list of str
        Bu kelimelerin toplam görülme sayısını say.

    Returns
    -------

    """
Python Paketleri Geliştirme

Google stiline çevirin

pyment -w -o google textanalysis.py
def count_words(filepath, words_list):
    """Bu kelimelerin toplam görülme sayısını say.

    Sayım, verilen konumdaki bir metin dosyasında yapılır.

    Args:
      filepath(str): Metin dosyasının yolu.
      words_list(list of str): Bu kelimelerin toplam görülme sayısını say.

    Returns:


    """
Python Paketleri Geliştirme

Paket, alt paket ve modül dokümantasyonu

mysklearn/__init__.py

"""
Python için doğrusal regresyon
============================

mysklearn, python'da doğrusal regresyonu
uygulamak için eksiksiz bir pakettir. 
"""

mysklearn/preprocessing/__init__.py

"""
Standart önişleme işlemleri için bir alt paket.
"""

 

mysklearn/preprocessing/normalize.py

"""
Veriyi normalize eden bir modül.
"""
Python Paketleri Geliştirme

Haydi pratik yapalım!

Python Paketleri Geliştirme

Preparing Video For Download...