advertisement

Python - Geliştirme Ortamı

50 %
50 %
advertisement
Information about Python - Geliştirme Ortamı
Education

Published on February 24, 2014

Author: uyar

Source: slideshare.net

Description

Python kurulumunun yapısı. Bir Python projesinin yapısı. Sanal ortamlar. Kod stili, PEP8. Belgeleme, Sphinx.
advertisement

Python Geli¸tirme Ortamı s H. Turgut Uyar Subat 2014 ¸

License © 2014 H. Turgut Uyar You are free to: Share – copy and redistribute the material in any medium or format for any purpose, even commercially. Under the following terms: Attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. NoDerivatives – If you remix, transform, or build upon the material, you may not distribute the modified material. For more information: https://creativecommons.org/licenses/by-nd/4.0/ Read the full license: https://creativecommons.org/licenses/by-nd/4.0/legalcode

Konular 1 Calı¸ma Ortamı ¸ s Kurulum Yapısı Proje Yapısı Geli¸tirme Ara¸ları s c 2 Gelenekler Stil Belgeleme Mesajlar

Python Kurulumu Python kurulumu klas¨r hiyerar¸isi o s <tepe klas¨r> o | |- bin |- lib | |- python3.4 | |- site-packages |- include --> ¸alı¸tırılabilir dosyalar c s --> kitaplıklar --> s¨r¨me ba˘lı tepe klas¨r u u g o --> sonradan kurulan paketler --> ba¸lık dosyaları (C i¸in) s c

Ek Paket Kurulumu paket dizin sitesi: http://pypi.python.org/ paket kurulumu: pip install <paket>

Sanal Ortamlar sistemin kullandı˘ı Python kurulumunu kurcalamak istemiyoruz g farklı projeler farklı kitaplıklar kullanmak isteyebilir her proje i¸in yalnızca o projeye gereken kitaplıkları kurmak c istiyoruz her proje i¸in Python derleyip kurmak da istemiyoruz: c sanal ortamlar ¸o˘u dosyaya payla¸ılan bir ana kurulumdan eri¸ilir c g s s ek kitaplıklar sanal ortama ¨zel o

Sanal Ortamlar sanal ortam yaratma komutu: pyvenv <tepe klas¨r> o sanal ortama ge¸i¸ - ¸ıkı¸ komutları: cs c s activate - deactivate

Konular 1 Calı¸ma Ortamı ¸ s Kurulum Yapısı Proje Yapısı Geli¸tirme Ara¸ları s c 2 Gelenekler Stil Belgeleme Mesajlar

Proje Yapısı bir projenin klas¨r hiyerar¸isi o s <tepe klas¨r> o | |- <tepe paket> | |- mod¨ller u |- <alt paket> |- setup.py |- README.txt |- LICENSE.txt |- docs |- tests --> --> --> --> --> kurulum beti˘i g tanıtım dosyası lisans dosyası belgeler testler

Kurulum Beti˘i g kurulum beti˘i paketle ilgili ustveriyi tutar: g ¨ isim, s¨r¨m, tanım, web adresi, yazar, e-posta adresi, lisans, . . . uu anahtar s¨zc¨kler, sınıflandırıcılar o u gereken dı¸ paketler s

Kurulum Beti˘i g kurulum beti˘i: temel bilgiler g setup( name=’mastermind’, version=’1.0’, description="A simple board game.", author=’H. Turgut Uyar’, author_email=’uyar@tekir.org’, url=’http://code.tekir.org/mastermind/’, license=’GPL’, ... )

Kurulum Beti˘i g kurulum beti˘i: sınıflandırma g setup( ... classifiers=[ "Development Status :: 3 - Alpha", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General ...", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", ], keywords=[’game’, ’mastermind’], ... )

Kurulum Beti˘i g kurulum beti˘i: gereken paketler g setup( ... install_requires=[’bottle’, ’beautifulsoup4’], ... )

Kurulum Beti˘i g kurulum beti˘i: giri¸ noktaları g s setup( ... entry_points=""" [console_scripts] mastermind=mastermind.cli:main """ )

Konular 1 Calı¸ma Ortamı ¸ s Kurulum Yapısı Proje Yapısı Geli¸tirme Ara¸ları s c 2 Gelenekler Stil Belgeleme Mesajlar

Geli¸tirme Ara¸ları s c t¨mle¸ik geli¸tirme ortamları: u s s Eclipse Pydev, PyCharm Community herhangi bir edit¨r kullanılabilir: o vim, emacs, geany

Hata Ayıklama kodun i¸inde calı¸ma duraklatılarak hata ayıklayıcıya ge¸ilebilir c ¸ s c import pdb pdb.set_trace()

Konular 1 Calı¸ma Ortamı ¸ s Kurulum Yapısı Proje Yapısı Geli¸tirme Ara¸ları s c 2 Gelenekler Stil Belgeleme Mesajlar

Stil stil kuralları: PEP8 http://www.python.org/dev/peps/pep-0008/ stil kontrol aracı: pep8

PEP8 Kuralları kod dosyası isimleri kısa, k¨¸uk harfle uc¨ de˘i¸ken ve fonksiyon isimleri k¨¸uk harfle, birle¸tirme i¸in _ gs uc¨ s c mixedCase tercih edilmiyor sınıf isimleri CamelCase de˘i¸meyecek veriler b¨y¨k harfle gs u u

PEP8 Kuralları girintileme: 4 bo¸luk s maksimum satır uzunlu˘u 79 g tepe seviye sınıf ve fonksiyonlar arasında 2 satır bo¸luk s

PEP8 Kuralları import komutları ayrı satırlara # YANLI¸ S import bottle, beautifulsoup4 ˘ # DOGRU import bottle import beautifulsoup4

PEP8 Kuralları parantezlerin hemen i¸inde bo¸luk yok c s fonksiyon adından sonra bo¸luk yok s # YANLI¸ S guesser.register_guess( guess, plus, minus ) years = [ 1998, 2011, 2004 ] prices = { ’tea’: 0.75, ’coffee’: 1.25 } ˘ # DOGRU guesser.register_guess(guess, plus, minus) years = [1998, 2011, 2004] prices = {’tea’: 0.75, ’coffee’: 1.25}

PEP8 Kuralları , : ¨ncesinde bo¸luk yok, sonrasında 1 bo¸luk var o s s = ve operat¨rlerin iki yanında birer bo¸luk var o s # YANLI¸ S years = [1998 , 2011 , 2004] if r > 0 : area=math.pi*r*r ˘ # DOGRU years = [1998, 2011, 2004] if r > 0: area = math.pi * r * r

PEP8 Kuralları parametre varsayılan de˘erlerinde ve isimle ¸a˘ırmada bo¸luk yok g c g s # YANLI¸ S def get_secret(choices, n = 4): ... get_secret([1, 2, 3, 4], n = 3) ˘ # DOGRU def get_secret(choices, n=4): ... get_secret([1, 2, 3, 4], n=3)

PEP8 Kuralları atamaları hizalamak i¸in bo¸luk yok c s # YANLI¸ S name = ’Alan Turing’ birth_year = 1912 age = 102 ˘ # DOGRU name = ’Alan Turing’ birth_year = 1912 age = 102

PEP8 Kuralları koleksiyon tipleri elemanlarının yazımında sonraki satırlar hizalanır # YANLI¸ S prices = {’tea’: 0.75, ... ’coffee’: 1.25, ..., ’soda’: 1.0} ˘ # DOGRU prices = {’tea’: 0.75, ... ’coffee’: 1.25, ..., ’soda’: 1.0} prices = { ’tea’: 0.75, ... ’coffee’: 1.25, ... ’soda`’: 1.0 }

PEP8 Kuralları fonksiyon parametrelerinin yazımında sonraki satırlar hizalanır # YANLI¸ S def register_guess(self, guess, plus, minus): ... guesser.register_guess(guess, plus, minus) ˘ # DOGRU def register_guess(self, guess, plus, minus): ... guesser.register_guess(guess, plus, minus)

PEP8 Kuralları altsatıra devam eden komutlarda sonraki satırlar hizalanmaz # YANLI¸ S circumference = 2 * math.pi * r circumference = 2 * math.pi * r ˘ # DOGRU circumference = 2 * math.pi * r

Lisans her kaynak dosyasının ba¸ında lisans bilgisi bulunmalı s # # # # # # # # # # # # # # # # Copyright (c) 2014 H. Turgut Uyar <uyar@tekir.org> This file is part of Mastermind. Mastermind is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Mastermind is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Mastermind. If not, see <http://www.gnu.org/licenses/>. import ...

Konular 1 Calı¸ma Ortamı ¸ s Kurulum Yapısı Proje Yapısı Geli¸tirme Ara¸ları s c 2 Gelenekler Stil Belgeleme Mesajlar

Belgeleme belgeleme sistemi: Sphinx http://sphinx-doc.org/ belgeleme projesi yaratma: sphinx-quickstart HTML belgeleme olu¸turma: make html s PDF belgeleme olu¸turma: make latexpdf s ayar dosyası: conf.py

Restructured Text belgeleme formatı: ReStructured Text http://docutils.sourceforge.net/rst.html italik: *italic* kalın: **bold** madde listesi: maddelerin ¨n¨nde * ya da o u numaralı liste: maddelerin ¨n¨nde numara ya da # o u

Sphinx Ana Dosyası Welcome to Mastermind’s documentation! ====================================== Mastermind is a simple board game. Contents: .. toctree:: :maxdepth: 2 user-guide developer-guide Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`

Belgeleme ba¸lıkları ayırmak i¸in altlarına === ya da --s c link: ‘text <address>‘_ User Guide ========== Rules of the Game ----------------- `Mastermind`_ is a two-player game. .. _Mastermind: http://en.wikipedia.org/wiki/Mastermind

Belgeleme kod ¨rne˘i verme: code-block:: language o g ¸ok sayıda programlama diline g¨re renklendirme c o You can create a new chooser player as follows: .. code-block:: python from mastermind.chooser import Chooser choices = tuple(range(10)) player1 = Chooser(choices, 4)

Kod Belgelemesi a¸ıklama katarları ’’’ ya da """ ¸iftleri arasına yazılır c c her mod¨l¨n ba¸ına mod¨l i¸in bir a¸ıklama katarı uu s u c c # Copyright ... # ... # ... """ This module contains the command-line interface for Mastermind. """ import ...

Kod Belgelemesi a¸ıklama katarı tanımın hemen ardından gelir c def main(): """Entry point for the game interface.""" ... class Chooser: """Random chooser.""" def evaluate(self, guess): """Evaluate a guess for the chosen secret.""" ... secret = property(fget=get_secret) """The secret of this chooser."""

Kod Belgelemesi ilk c¨mle kısa ve a¸ıklayıcı olmalı u c class Chooser: def finish(self): """Finish the game. After this method has been invoked, further guesses will not be evaluated. """ ...

Kod Belgelemesi parametre a¸ıklamak i¸in: :param name: c c parametre tipi belirtmek i¸in: :type name: c def evaluate(self, guess): """Evaluate a guess for the chosen secret. :param guess: The guess to evaluate. :type guess: seq """

Kod Belgelemesi d¨n¨¸ de˘eri a¸ıklamak i¸in: :return: o us g c c d¨n¨¸ de˘eri tipi belirtmek i¸in: :rtype: o us g c def evaluate(self, guess): """Evaluate a guess for the chosen secret. ... :return: The number of correct and misplaced guesses. :rtype: tuple(int, int) """

Kod Belgelemesi olu¸abilecek aykırı durumlar i¸in: :raise Error: s c def get_secret(self): """Get the secret of this chooser. This will only work if the game is finished. :raise RuntimeError: If called before the game is finished. """

Kod Belgelemesi mod¨l referansları: :mod:‘...‘ u sınıf referansları: :class:‘...‘ metot referansları: :meth:‘...‘ def main(): """Entry point for the game interface. First, it creates two players, a :class:`mastermind.choosers.Chooser` and a :class:`mastermind.guessers.base.BaseGuesser`. Then, it ... """

Belgeleme kod belgelemesini Sphinx’e eklemek i¸in c mod¨llere referans veren belgeleme dosyaları u :mod:`mastermind.choosers` ========================== .. currentmodule:: mastermind.choosers .. automodule:: mastermind.choosers .. autoclass:: mastermind.choosers.Chooser :show-inheritance: :members:

Konular 1 Calı¸ma Ortamı ¸ s Kurulum Yapısı Proje Yapısı Geli¸tirme Ara¸ları s c 2 Gelenekler Stil Belgeleme Mesajlar

Mesajlar kullanıcı etkile¸imi ama¸lı olmayan mesajlar s c print() ile basılmamalı mesaj g¨nl¨˘u kullanılmalı: logging u ug¨ mesajların ¨nem d¨zeyleri var: o u CRITICAL > ERROR > WARNING > INFO > DEBUG ekrana, dosyaya v.b. kanallara yazdırılabilir

Mesaj G¨nl¨gu u u˘¨ uygulamanın ba¸ında ayarlanmalı s import logging def main(): logging.basicConfig(level=logging.INFO) ...

Mesaj G¨nl¨gu u u˘¨ yazdırılaca˘ı yerde ilgili d¨zeyin metodu ¸a˘ırılmalı g u c g import logging class Chooser: def __init__(self, choices, n): logging.info("choosing a secret") self.choices = choices self.n_items = n self.__secret = ... logging.debug("the secret is: ...") ...

Add a comment

Related presentations

Related pages

Python ile Uygulama Geliştirme Ortamları ~ Python Dersleri

Python yorumlayıcısını sisteminize kurduktan sonra, ... (Integrated Development Enviroment) yani "Tümleşik Geliştirme Ortamı" adını almıştır.
Read more

Python Geliştirme Ortamı | M.Serhat Dündar

Kısacası neredeyse tüm uygulama geliştirme işlemlerinizi NetBeans ile yapabilirsiniz. Ayrıca dehşet büyük bir plug-in kütüphanesi mevcut.
Read more

python geliştirme ortamı – M.Serhat Dündar

NetBeans Nedir? Netbeans ve Eclipse şüphesiz ki Java’nın en güçlü IDE’leri. İkisi birbiriyle çok kıyaslansa da, birbirlerine göre artı veya ...
Read more

Python Deneyimlerimiz: Python Geliştirme Ortamları

--- Bu yazı yeni başlamayı düşünenler içindir ---Python'a yeni başlıyorum ve windows ortamında geliştirmek istiyorum bana development ortamı ...
Read more

Python için Geliştirme Ortamları(IDEs)

Python için Geliştirme Ortamları ... Açılımı Integrated development environment olan Türkçeye Tümleşik geliştirme ortamı diye çevrilen IDE , ...
Read more

HTML Geliştirme Ortamı - Python Programlama Dili

Python Programları bölümümüze bugün yeni bir program daha eklendi. Programın adı "HTML IDE". Samet Aras tarafından yazılan bu uygulama ile HTML ...
Read more

Python Windows ve Linux Yazılım Geliştirme Ortamı ...

Merhaba bu yazımda Python’a başlıyan bir yazılımcının tüm ihtiyaçlarını karşılamaya yönelik bilgileri ele alacığız, Pythonun şuanda 2 ...
Read more

Said Aydogan

Bu dillerden biri de Python. Python geliştirme ortamı için de seçenekler oldukça fazla bunlardan benim tercih ettiğim ise PyCharm.
Read more