turkterm 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
turkterm-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Senin Adın
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,83 @@
1
+ Metadata-Version: 2.4
2
+ Name: turkterm
3
+ Version: 0.1.0
4
+ Summary: Türkçe destekli renkli terminal kütüphanesi - spinner, progress bar, menü, tablo ve daha fazlası
5
+ Author: Sen
6
+ Author-email: Senin Adın <senin_mailin@example.com>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/kullanici-adin/turkterm
9
+ Project-URL: Repository, https://github.com/kullanici-adin/turkterm
10
+ Keywords: terminal,türkçe,renkli,cli,progress-bar,spinner,turkish
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Natural Language :: Turkish
15
+ Classifier: Topic :: Terminals
16
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
+ Requires-Python: >=3.6
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Dynamic: author
21
+ Dynamic: license-file
22
+ Dynamic: requires-python
23
+
24
+ # turkterm 🇹🇷
25
+
26
+ Türkçe destekli, renkli ve eğlenceli terminal kütüphanesi. Termux ve Pydroid3 ile tam uyumlu.
27
+
28
+ ## Kurulum
29
+
30
+ ```bash
31
+ pip install turkterm
32
+ ```
33
+
34
+ ## Özellikler
35
+
36
+ - 🎨 Renkli yazı yazdırma
37
+ - 🔄 Spinner (yükleme animasyonu)
38
+ - 📊 Progress bar (ilerleme çubuğu)
39
+ - 📦 Kutu içinde yazı
40
+ - 📋 Tablo gösterme
41
+ - 📜 İnteraktif menü
42
+ - 🇹🇷 Türkçe karakter düzeltici
43
+ - ✓ Bilgi/Hata/Başarı mesajları
44
+
45
+ ## Hızlı Başlangıç
46
+
47
+ ```python
48
+ import turkterm as tt
49
+
50
+ # Renkli yazı
51
+ tt.yaz("Merhaba Dünya!", renk="yesil", kalin=True)
52
+
53
+ # Mesajlar
54
+ tt.basari("İşlem tamamlandı!")
55
+ tt.hata("Bir şeyler yanlış gitti")
56
+ tt.uyari("Dikkatli ol!")
57
+ tt.bilgi("Bilgilendirme mesajı")
58
+
59
+ # Kutu
60
+ tt.kutu("Bu yazı çerçeve içinde", renk="mavi")
61
+
62
+ # Tablo
63
+ tt.tablo(
64
+ ["İsim", "Yaş", "Şehir"],
65
+ [["Ali", 25, "İstanbul"], ["Ayşe", 30, "İzmir"]]
66
+ )
67
+
68
+ # Menü
69
+ secim = tt.menu("Ne yapmak istersin?", ["Başla", "Ayarlar", "Çıkış"])
70
+
71
+ # Progress bar
72
+ import time
73
+ for i in range(101):
74
+ tt.ilerleme(i, 100, "İndiriliyor")
75
+ time.sleep(0.02)
76
+
77
+ # Spinner
78
+ with tt.Spinner("Veriler yükleniyor..."):
79
+ time.sleep(3)
80
+ ```
81
+
82
+ ## Lisans
83
+ MIT
@@ -0,0 +1,60 @@
1
+ # turkterm 🇹🇷
2
+
3
+ Türkçe destekli, renkli ve eğlenceli terminal kütüphanesi. Termux ve Pydroid3 ile tam uyumlu.
4
+
5
+ ## Kurulum
6
+
7
+ ```bash
8
+ pip install turkterm
9
+ ```
10
+
11
+ ## Özellikler
12
+
13
+ - 🎨 Renkli yazı yazdırma
14
+ - 🔄 Spinner (yükleme animasyonu)
15
+ - 📊 Progress bar (ilerleme çubuğu)
16
+ - 📦 Kutu içinde yazı
17
+ - 📋 Tablo gösterme
18
+ - 📜 İnteraktif menü
19
+ - 🇹🇷 Türkçe karakter düzeltici
20
+ - ✓ Bilgi/Hata/Başarı mesajları
21
+
22
+ ## Hızlı Başlangıç
23
+
24
+ ```python
25
+ import turkterm as tt
26
+
27
+ # Renkli yazı
28
+ tt.yaz("Merhaba Dünya!", renk="yesil", kalin=True)
29
+
30
+ # Mesajlar
31
+ tt.basari("İşlem tamamlandı!")
32
+ tt.hata("Bir şeyler yanlış gitti")
33
+ tt.uyari("Dikkatli ol!")
34
+ tt.bilgi("Bilgilendirme mesajı")
35
+
36
+ # Kutu
37
+ tt.kutu("Bu yazı çerçeve içinde", renk="mavi")
38
+
39
+ # Tablo
40
+ tt.tablo(
41
+ ["İsim", "Yaş", "Şehir"],
42
+ [["Ali", 25, "İstanbul"], ["Ayşe", 30, "İzmir"]]
43
+ )
44
+
45
+ # Menü
46
+ secim = tt.menu("Ne yapmak istersin?", ["Başla", "Ayarlar", "Çıkış"])
47
+
48
+ # Progress bar
49
+ import time
50
+ for i in range(101):
51
+ tt.ilerleme(i, 100, "İndiriliyor")
52
+ time.sleep(0.02)
53
+
54
+ # Spinner
55
+ with tt.Spinner("Veriler yükleniyor..."):
56
+ time.sleep(3)
57
+ ```
58
+
59
+ ## Lisans
60
+ MIT
@@ -0,0 +1,32 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "turkterm"
7
+ version = "0.1.0"
8
+ description = "Türkçe destekli renkli terminal kütüphanesi - spinner, progress bar, menü, tablo ve daha fazlası"
9
+ readme = "README.md"
10
+ requires-python = ">=3.6"
11
+ license = {text = "MIT"}
12
+ authors = [
13
+ {name = "Senin Adın", email = "senin_mailin@example.com"}
14
+ ]
15
+ keywords = ["terminal", "türkçe", "renkli", "cli", "progress-bar", "spinner", "turkish"]
16
+ classifiers = [
17
+ "Programming Language :: Python :: 3",
18
+ "License :: OSI Approved :: MIT License",
19
+ "Operating System :: OS Independent",
20
+ "Natural Language :: Turkish",
21
+ "Topic :: Terminals",
22
+ "Topic :: Software Development :: Libraries :: Python Modules",
23
+ ]
24
+ dependencies = []
25
+
26
+ [project.urls]
27
+ Homepage = "https://github.com/kullanici-adin/turkterm"
28
+ Repository = "https://github.com/kullanici-adin/turkterm"
29
+
30
+ [tool.setuptools.packages.find]
31
+ where = ["."]
32
+ include = ["turkterm*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,22 @@
1
+ from setuptools import setup, find_packages
2
+
3
+ with open("README.md", "r", encoding="utf-8") as f:
4
+ uzun_aciklama = f.read()
5
+
6
+ setup(
7
+ name="turkterm",
8
+ version="0.1.0",
9
+ author="Sen",
10
+ description="Türkçe destekli renkli terminal kütüphanesi - spinner, progress bar, menü, tablo ve daha fazlası",
11
+ long_description=uzun_aciklama,
12
+ long_description_content_type="text/markdown",
13
+ packages=find_packages(),
14
+ classifiers=[
15
+ "Programming Language :: Python :: 3",
16
+ "License :: OSI Approved :: MIT License",
17
+ "Operating System :: OS Independent",
18
+ "Natural Language :: Turkish",
19
+ ],
20
+ python_requires=">=3.6",
21
+ install_requires=[], # Hiç dış bağımlılık yok!
22
+ )
@@ -0,0 +1,220 @@
1
+ """
2
+ turkterm - Türkçe destekli renkli terminal kütüphanesi
3
+ Kullanım: pip install turkterm
4
+ """
5
+
6
+ import sys
7
+ import time
8
+ import threading
9
+ import shutil
10
+
11
+ __version__ = "0.1.0"
12
+ __author__ = "Sen"
13
+
14
+ # ============ RENKLER ============
15
+ class Renk:
16
+ SIYAH = "\033[30m"
17
+ KIRMIZI = "\033[31m"
18
+ YESIL = "\033[32m"
19
+ SARI = "\033[33m"
20
+ MAVI = "\033[34m"
21
+ MOR = "\033[35m"
22
+ CAMGOBEGI = "\033[36m"
23
+ BEYAZ = "\033[37m"
24
+
25
+ # Parlak
26
+ P_KIRMIZI = "\033[91m"
27
+ P_YESIL = "\033[92m"
28
+ P_SARI = "\033[93m"
29
+ P_MAVI = "\033[94m"
30
+ P_MOR = "\033[95m"
31
+ P_CAMGOBEGI = "\033[96m"
32
+
33
+ # Stiller
34
+ KALIN = "\033[1m"
35
+ ITALIK = "\033[3m"
36
+ ALTI_CIZILI = "\033[4m"
37
+ SIFIRLA = "\033[0m"
38
+
39
+
40
+ def yaz(metin, renk=None, kalin=False, sonu=""):
41
+ """Renkli yazı yazdır. Örnek: yaz('Merhaba', 'kirmizi', kalin=True)"""
42
+ renkler = {
43
+ "siyah": Renk.SIYAH, "kirmizi": Renk.KIRMIZI, "yesil": Renk.YESIL,
44
+ "sari": Renk.SARI, "mavi": Renk.MAVI, "mor": Renk.MOR,
45
+ "camgobegi": Renk.CAMGOBEGI, "beyaz": Renk.BEYAZ,
46
+ "p_kirmizi": Renk.P_KIRMIZI, "p_yesil": Renk.P_YESIL,
47
+ "p_sari": Renk.P_SARI, "p_mavi": Renk.P_MAVI,
48
+ }
49
+ onek = ""
50
+ if kalin:
51
+ onek += Renk.KALIN
52
+ if renk and renk.lower() in renkler:
53
+ onek += renkler[renk.lower()]
54
+ print(f"{onek}{metin}{Renk.SIFIRLA}{sonu}")
55
+
56
+
57
+ # ============ TÜRKÇE KARAKTER DÜZELTİCİ ============
58
+ def turkcelestir(metin):
59
+ """ASCII karakterleri Türkçe'ye çevirir (örn: 'sehir' -> 'şehir' değil, manuel haritalama)"""
60
+ # Basit ters dönüşüm: Türkçe -> ASCII
61
+ harita = str.maketrans("çÇğĞıİöÖşŞüÜ", "cCgGiIoOsSuU")
62
+ return metin.translate(harita)
63
+
64
+
65
+ def asciilestir(metin):
66
+ """Türkçe karakterleri ASCII'ye çevirir. Dosya adları için kullanışlı."""
67
+ harita = str.maketrans("çÇğĞıİöÖşŞüÜ", "cCgGiIoOsSuU")
68
+ return metin.translate(harita)
69
+
70
+
71
+ # ============ KUTU İÇİNDE YAZI ============
72
+ def kutu(metin, renk=None, genislik=None):
73
+ """Yazıyı çerçeve içinde göster"""
74
+ satirlar = metin.split("\n")
75
+ if genislik is None:
76
+ genislik = max(len(s) for s in satirlar) + 4
77
+
78
+ ust = "╔" + "═" * (genislik - 2) + "╗"
79
+ alt = "╚" + "═" * (genislik - 2) + "╝"
80
+
81
+ yaz(ust, renk=renk)
82
+ for satir in satirlar:
83
+ bosluk = genislik - len(satir) - 4
84
+ yaz(f"║ {satir}{' ' * bosluk} ║", renk=renk)
85
+ yaz(alt, renk=renk)
86
+
87
+
88
+ # ============ İLERLEME ÇUBUĞU ============
89
+ def ilerleme(mevcut, toplam, baslik="İlerleme", uzunluk=30, renk="yesil"):
90
+ """Progress bar göster. Döngü içinde kullan."""
91
+ oran = mevcut / toplam
92
+ dolu = int(uzunluk * oran)
93
+ bos = uzunluk - dolu
94
+ yuzde = oran * 100
95
+
96
+ renkler = {"yesil": Renk.YESIL, "mavi": Renk.MAVI, "kirmizi": Renk.KIRMIZI, "sari": Renk.SARI}
97
+ r = renkler.get(renk, Renk.YESIL)
98
+
99
+ cubuk = f"\r{baslik}: {r}{'█' * dolu}{Renk.SIFIRLA}{'░' * bos} {yuzde:5.1f}% ({mevcut}/{toplam})"
100
+ sys.stdout.write(cubuk)
101
+ sys.stdout.flush()
102
+ if mevcut >= toplam:
103
+ print()
104
+
105
+
106
+ # ============ SPINNER / YÜKLEME ANİMASYONU ============
107
+ class Spinner:
108
+ """
109
+ Yükleme animasyonu. 'with' bloğu ile kullan.
110
+
111
+ Örnek:
112
+ with Spinner("Veriler indiriliyor..."):
113
+ time.sleep(3)
114
+ """
115
+ def __init__(self, mesaj="Yükleniyor", renk="camgobegi"):
116
+ self.mesaj = mesaj
117
+ self.renk = renk
118
+ self.calisiyor = False
119
+ self.thread = None
120
+ self.karakterler = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
121
+
122
+ def _donder(self):
123
+ i = 0
124
+ renkler = {"camgobegi": Renk.CAMGOBEGI, "yesil": Renk.YESIL, "sari": Renk.SARI}
125
+ r = renkler.get(self.renk, Renk.CAMGOBEGI)
126
+ while self.calisiyor:
127
+ sys.stdout.write(f"\r{r}{self.karakterler[i % len(self.karakterler)]}{Renk.SIFIRLA} {self.mesaj}")
128
+ sys.stdout.flush()
129
+ time.sleep(0.1)
130
+ i += 1
131
+ sys.stdout.write("\r" + " " * (len(self.mesaj) + 5) + "\r")
132
+ sys.stdout.flush()
133
+
134
+ def __enter__(self):
135
+ self.calisiyor = True
136
+ self.thread = threading.Thread(target=self._donder, daemon=True)
137
+ self.thread.start()
138
+ return self
139
+
140
+ def __exit__(self, *args):
141
+ self.calisiyor = False
142
+ if self.thread:
143
+ self.thread.join()
144
+ yaz(f"✓ {self.mesaj} tamamlandı", renk="yesil")
145
+
146
+
147
+ # ============ TABLO ============
148
+ def tablo(basliklar, satirlar, renk="camgobegi"):
149
+ """
150
+ Veri tablosu yazdır.
151
+
152
+ Örnek:
153
+ tablo(["İsim", "Yaş"], [["Ali", 25], ["Ayşe", 30]])
154
+ """
155
+ # Sütun genişlikleri
156
+ genislikler = [len(str(b)) for b in basliklar]
157
+ for satir in satirlar:
158
+ for i, h in enumerate(satir):
159
+ genislikler[i] = max(genislikler[i], len(str(h)))
160
+
161
+ # Üst çizgi
162
+ ust = "┌" + "┬".join("─" * (g + 2) for g in genislikler) + "┐"
163
+ orta = "├" + "┼".join("─" * (g + 2) for g in genislikler) + "┤"
164
+ alt = "└" + "┴".join("─" * (g + 2) for g in genislikler) + "┘"
165
+
166
+ yaz(ust, renk=renk)
167
+ baslik_satiri = "│" + "│".join(f" {str(b):<{genislikler[i]}} " for i, b in enumerate(basliklar)) + "│"
168
+ yaz(baslik_satiri, renk=renk, kalin=True)
169
+ yaz(orta, renk=renk)
170
+ for satir in satirlar:
171
+ s = "│" + "│".join(f" {str(h):<{genislikler[i]}} " for i, h in enumerate(satir)) + "│"
172
+ print(s)
173
+ yaz(alt, renk=renk)
174
+
175
+
176
+ # ============ MENÜ ============
177
+ def menu(baslik, secenekler):
178
+ """
179
+ İnteraktif menü göster, kullanıcının seçtiği indexi döndür.
180
+
181
+ Örnek:
182
+ secim = menu("Ne yapmak istersin?", ["Başla", "Ayarlar", "Çıkış"])
183
+ """
184
+ yaz("\n" + "═" * 40, renk="camgobegi")
185
+ yaz(f" {baslik}", renk="sari", kalin=True)
186
+ yaz("═" * 40, renk="camgobegi")
187
+
188
+ for i, secenek in enumerate(secenekler, 1):
189
+ yaz(f" {Renk.P_SARI}[{i}]{Renk.SIFIRLA} {secenek}")
190
+
191
+ while True:
192
+ try:
193
+ secim = input(f"\n{Renk.P_YESIL}Seçiminiz (1-{len(secenekler)}): {Renk.SIFIRLA}")
194
+ secim = int(secim)
195
+ if 1 <= secim <= len(secenekler):
196
+ return secim - 1
197
+ yaz("Geçersiz seçim! Tekrar deneyin.", renk="kirmizi")
198
+ except ValueError:
199
+ yaz("Lütfen bir sayı girin!", renk="kirmizi")
200
+
201
+
202
+ # ============ EKRAN TEMİZLE ============
203
+ def temizle():
204
+ """Terminal ekranını temizler"""
205
+ import os
206
+ os.system("clear" if os.name == "posix" else "cls")
207
+
208
+
209
+ # ============ BİLGİ / HATA / BAŞARI MESAJLARI ============
210
+ def bilgi(mesaj):
211
+ yaz(f"ℹ {mesaj}", renk="mavi")
212
+
213
+ def basari(mesaj):
214
+ yaz(f"✓ {mesaj}", renk="yesil", kalin=True)
215
+
216
+ def hata(mesaj):
217
+ yaz(f"✗ {mesaj}", renk="kirmizi", kalin=True)
218
+
219
+ def uyari(mesaj):
220
+ yaz(f"⚠ {mesaj}", renk="sari")
@@ -0,0 +1,83 @@
1
+ Metadata-Version: 2.4
2
+ Name: turkterm
3
+ Version: 0.1.0
4
+ Summary: Türkçe destekli renkli terminal kütüphanesi - spinner, progress bar, menü, tablo ve daha fazlası
5
+ Author: Sen
6
+ Author-email: Senin Adın <senin_mailin@example.com>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/kullanici-adin/turkterm
9
+ Project-URL: Repository, https://github.com/kullanici-adin/turkterm
10
+ Keywords: terminal,türkçe,renkli,cli,progress-bar,spinner,turkish
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Natural Language :: Turkish
15
+ Classifier: Topic :: Terminals
16
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
+ Requires-Python: >=3.6
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Dynamic: author
21
+ Dynamic: license-file
22
+ Dynamic: requires-python
23
+
24
+ # turkterm 🇹🇷
25
+
26
+ Türkçe destekli, renkli ve eğlenceli terminal kütüphanesi. Termux ve Pydroid3 ile tam uyumlu.
27
+
28
+ ## Kurulum
29
+
30
+ ```bash
31
+ pip install turkterm
32
+ ```
33
+
34
+ ## Özellikler
35
+
36
+ - 🎨 Renkli yazı yazdırma
37
+ - 🔄 Spinner (yükleme animasyonu)
38
+ - 📊 Progress bar (ilerleme çubuğu)
39
+ - 📦 Kutu içinde yazı
40
+ - 📋 Tablo gösterme
41
+ - 📜 İnteraktif menü
42
+ - 🇹🇷 Türkçe karakter düzeltici
43
+ - ✓ Bilgi/Hata/Başarı mesajları
44
+
45
+ ## Hızlı Başlangıç
46
+
47
+ ```python
48
+ import turkterm as tt
49
+
50
+ # Renkli yazı
51
+ tt.yaz("Merhaba Dünya!", renk="yesil", kalin=True)
52
+
53
+ # Mesajlar
54
+ tt.basari("İşlem tamamlandı!")
55
+ tt.hata("Bir şeyler yanlış gitti")
56
+ tt.uyari("Dikkatli ol!")
57
+ tt.bilgi("Bilgilendirme mesajı")
58
+
59
+ # Kutu
60
+ tt.kutu("Bu yazı çerçeve içinde", renk="mavi")
61
+
62
+ # Tablo
63
+ tt.tablo(
64
+ ["İsim", "Yaş", "Şehir"],
65
+ [["Ali", 25, "İstanbul"], ["Ayşe", 30, "İzmir"]]
66
+ )
67
+
68
+ # Menü
69
+ secim = tt.menu("Ne yapmak istersin?", ["Başla", "Ayarlar", "Çıkış"])
70
+
71
+ # Progress bar
72
+ import time
73
+ for i in range(101):
74
+ tt.ilerleme(i, 100, "İndiriliyor")
75
+ time.sleep(0.02)
76
+
77
+ # Spinner
78
+ with tt.Spinner("Veriler yükleniyor..."):
79
+ time.sleep(3)
80
+ ```
81
+
82
+ ## Lisans
83
+ MIT
@@ -0,0 +1,9 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ setup.py
5
+ turkterm/__init__.py
6
+ turkterm.egg-info/PKG-INFO
7
+ turkterm.egg-info/SOURCES.txt
8
+ turkterm.egg-info/dependency_links.txt
9
+ turkterm.egg-info/top_level.txt
@@ -0,0 +1 @@
1
+ turkterm