Python Yorumlayıcısını Genişletme ve Gömme
******************************************

Bu belge, Python yorumlayıcısını yeni modüllerle genişletmek için C
veya C++'da modüllerin nasıl yazılacağını açıklar. Bu modüller sadece
yeni fonksiyonları değil, aynı zamanda yeni nesne tiplerini ve
metotlarını da tanımlayabilir. Belge ayrıca Python yorumlayıcısının
bir uzantı dili olarak kullanılmak üzere başka bir uygulamaya nasıl
yerleştirileceğini de açıklar. Son olarak, temeldeki işletim sistemi
bu özelliği destekliyorsa, uzantı modüllerinin yorumlayıcıya dinamik
olarak (çalışma zamanında) yüklenebilmesi için nasıl derleneceğini ve
bağlanacağını gösterir.

Bu belge, Python hakkında temel bilgiye sahip olduğunuzu varsayar.
Dile gayri resmi bir giriş için bkz. Python Standart Kütüphanesi.
Python Standart Kütüphanesi, dilin daha resmi bir tanımını verir.
Python Standart Kütüphanesi, dile geniş uygulama yelpazesi sağlayan
mevcut nesne türlerini, işlevleri ve modülleri (hem yerleşik hem de
Python'da yazılmış) belgeler.

Tüm Python/C API'sinin ayrıntılı açıklaması için ayrı Python/C API
Referans Kılavuzu'a bakın.


Önerilen üçüncü taraf araçları
==============================

This guide only covers the basic tools for creating extensions
provided as part of this version of CPython. Some third party tools
offer both simpler and more sophisticated approaches to creating C and
C++ extensions for Python.


Üçüncü taraf araçları olmadan uzantılar oluşturma
=================================================

Kılavuzun bu bölümü, üçüncü taraf araçlardan yardım almadan C ve C++
uzantıları oluşturmayı kapsar. Kendi C uzantılarınızı oluşturmanız
için önerilen bir yol olmaktan ziyade, öncelikle bu araçların
yaratıcılarına yöneliktir.

Ayrıca bakınız:

  **PEP 489** -- Multi-phase extension module initialization

* 1. Extending Python with C or C++

  * 1.1. A Simple Example

  * 1.2. Intermezzo: Errors and Exceptions

  * 1.3. Back to the Example

  * 1.4. The Module's Method Table and Initialization Function

  * 1.5. Compilation and Linkage

  * 1.6. Calling Python Functions from C

  * 1.7. Extracting Parameters in Extension Functions

  * 1.8. Keyword Parameters for Extension Functions

  * 1.9. Building Arbitrary Values

  * 1.10. Reference Counts

  * 1.11. Writing Extensions in C++

  * 1.12. Providing a C API for an Extension Module

* 2. Defining Extension Types: Tutorial

  * 2.1. The Basics

  * 2.2. Adding data and methods to the Basic example

  * 2.3. Providing finer control over data attributes

  * 2.4. Supporting cyclic garbage collection

  * 2.5. Subclassing other types

* 3. Defining Extension Types: Assorted Topics

  * 3.1. Finalization and De-allocation

  * 3.2. Object Presentation

  * 3.3. Attribute Management

  * 3.4. Object Comparison

  * 3.5. Abstract Protocol Support

  * 3.6. Weak Reference Support

  * 3.7. More Suggestions

* 4. Building C and C++ Extensions

  * 4.1. Building C and C++ Extensions with setuptools

* 5. Windows'ta C ve C++ Uzantıları Oluşturmak

  * 5.1. Bir Yemek Kitabı Yaklaşımı

  * 5.2. Unix ve Windows Arasındaki Farklar

  * 5.3. DLL'leri Uygulamada Kullanma


CPython çalışma zamanını daha büyük bir uygulamaya gömme
========================================================

Bazen, ana uygulama olarak Python yorumlayıcısının içinde çalışan bir
uzantı oluşturmak yerine, bunun yerine CPython çalışma zamanını daha
büyük bir uygulamanın içine gömmek tercih edilir. Bu bölüm, bunu
başarılı bir şekilde yapmakla ilgili bazı ayrıntıları içerir.

* 1. Python'ı Başka Bir Uygulamaya Gömme

  * 1.1. Çok Üst Düzey Gömme

  * 1.2. Çok Yüksek Düzeyde Gömmenin Ötesinde: Genel Bir Bakış

  * 1.3. Saf Gömme

  * 1.4. Gömülü Python'u Genişletme

  * 1.5. Python'u C++'a Gömmek

  * 1.6. Unix benzeri sistemler altında Derleme ve Bağlama
