CodeBlanks Logo Icon CodeBlanks

pyproject.toml

pyproject.toml ile proje yapılandırmasını öğrenirsin.

pyproject.toml

pyproject.toml, modern bir Python projesinin yapılandırma dosyasıdır. Proje adı, sürümü ve bağımlılıkları burada tanımlanır. Biçim TOML'dir; Python 3.12'de tomllib modülüyle standart kütüphaneden okunur.

[project]
name = "demo"
version = "0.1.0"

Dosya en az bir [project] tablosu içerir. Bu tablo, paketin kimliğini ve gereksinimlerini tutar; pip ve derleme araçları buradan okur.

[project] tablosu

[project] tablosunun zorunlu alanları name ve version'dur. dependencies alanı ise projenin çalışması için gereken paket listesini tutar.

[project]
name = "demo"
version = "0.1.0"
dependencies = ["requests>=2.28"]

name PyPI'da görünen paket adıdır; version anlamsal sürümdür. Bu üç alan birlikte paketin kimliğini oluşturur ve pip tarafından kullanılır.

Uygulama tomllib ile proje adını oku

import tomllib ile başla. tomllib.loads(...) çağrısıyla aşağıdaki TOML dizesini yapısal veriye çevir ve data değişkenine ata:

[project]
name = "demo"
version = "0.1.0"

Sonra print(data["project"]["name"]) ile proje adını yazdır.

Başlangıç kodu

main.py
# tomllib modülünü içe aktar
# pyproject içeriğini yapısal veri olarak yükle
# project tablosunun name alanını yazdır

Örnek çözüm

main.py
import tomllib

data = tomllib.loads('''
[project]
name = "demo"
version = "0.1.0"
''')

print(data["project"]["name"])

Beklenen çıktı

demo

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 pyproject.toml içinde proje kimliğini hangi tablo tutar?

  • [package]
  • [build-system]
  • [tool]
  • [project] Doğru cevap

Açıklama: [project] tablosu ad, sürüm ve bağımlılıkları tutar.

2 name satırını tamamla

Soru
[project]
____ = "demo"
Cevap
[project]
name = "demo"

Açıklama: name alanı paket adını tutar.

3 pyproject.toml tablolarını eşleştir

Kavram Anlamı
[project] Paket kimliği
[build-system] Derleme aracı
name Paket adı
version Sürüm

İleri seviye bölümündeki tüm dersler