wewlott 0.7__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.
wewlott-0.7/LICENSE ADDED
@@ -0,0 +1,16 @@
1
+ Copyright (c) 2026 Bedirhan
2
+ Permission is hereby granted, free of charge, to any person obtaining a copy
3
+ of this software and associated documentation files wewlot, to deal
4
+ in the Software without restriction, including without limitation the rights
5
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
6
+ copies of the Software, and to permit persons to whom the Software is
7
+ furnished to do so, subject to the following conditions:
8
+ The above copyright notice and this permission notice shall be included in all
9
+ copies or substantial portions of the Software.
10
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
+ SOFTWARE.
wewlott-0.7/PKG-INFO ADDED
@@ -0,0 +1,77 @@
1
+ Metadata-Version: 2.4
2
+ Name: wewlott
3
+ Version: 0.7
4
+ Summary: wewlot: İşlevsel ve kolaylaştırılmış Python Database kütüphanesi
5
+ Author: Bedirhan
6
+ Author-email: bedirhan.oytpass@gmail.com
7
+ License: MIT
8
+ Keywords: Kolay kod,files,basitleştirilmiş
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.6
12
+ Classifier: Programming Language :: Python :: 3.7
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Dynamic: author
19
+ Dynamic: author-email
20
+ Dynamic: classifier
21
+ Dynamic: description
22
+ Dynamic: description-content-type
23
+ Dynamic: keywords
24
+ Dynamic: license
25
+ Dynamic: license-file
26
+ Dynamic: summary
27
+
28
+ # Tanıtım
29
+ wewlot sistemkar uydu protokolini
30
+ uygulayan basitleştirilmiş bir veriPyo olmakla birlikte dosya tabanlı veri
31
+ saklama kütüphanesi
32
+
33
+ ## Kullanım ve fonksiyonlar
34
+
35
+ - wewlot_database \=\ veri dosyasını oluşturma
36
+
37
+ wewlot_database(
38
+ "wew_deneme",
39
+ control=deneme \=\ onay True/False
40
+ )
41
+
42
+ - wew_data_give \=\ kullanıcı veri başlığı ekleme
43
+
44
+ wew_data_give("wew_deneme", \=\ dosya adı
45
+ {"name": "kullanıcı", \=\ başlık adı
46
+ "data": "Ali bulut", \=\ veri başlığı adı
47
+ "data_id": "alikaya1234f5"}, \=\ benzersiz veri ID'si
48
+ control=deneme \=\ onay True/False
49
+ )
50
+
51
+ - wew_data_add \=\ veri başlığına veri ekleme
52
+
53
+ wew_data_add("wew_deneme", \=\ dosya adı
54
+ "alikaya1234f5", \=\ veri başlığı ID'si
55
+ {"name": "yön", "data": "→"} \=\ veri ekleme başlık/veri
56
+ ,control=deneme \=\ onay True/False
57
+ )
58
+
59
+ - wew_data_get \=\ veri başlığından veri çekme
60
+
61
+ dene = wew_data_get("wew_deneme", \=\ verinin geleceği değişken/dosya adı
62
+ "alikaya1234f5", \=\ benzersiz veri başlığı ID'si
63
+ {"name": "yön"}, \=\ çekilecek veri başlığı
64
+ control=deneme \=\ onay True/False
65
+ )
66
+
67
+ - wew_data_update \=\ veri güncelleme
68
+
69
+ wew_data_update("wew_deneme", \=\ dosya adı
70
+ "alikaya1234f5", \=\ benzersiz veri başlığı ID'si
71
+ {"name": "yön", "data": "↓"}, \=\ güncellenecek veri başlığı/veri
72
+ control=deneme \=\ onay True/False
73
+ )
74
+
75
+ wewlot_server("True") \=\ server açma
76
+
77
+ DEVAM EDECEK...
wewlott-0.7/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # Tanıtım
2
+ wewlot sistemkar uydu protokolini
3
+ uygulayan basitleştirilmiş bir veriPyo olmakla birlikte dosya tabanlı veri
4
+ saklama kütüphanesi
5
+
6
+ ## Kullanım ve fonksiyonlar
7
+
8
+ - wewlot_database \=\ veri dosyasını oluşturma
9
+
10
+ wewlot_database(
11
+ "wew_deneme",
12
+ control=deneme \=\ onay True/False
13
+ )
14
+
15
+ - wew_data_give \=\ kullanıcı veri başlığı ekleme
16
+
17
+ wew_data_give("wew_deneme", \=\ dosya adı
18
+ {"name": "kullanıcı", \=\ başlık adı
19
+ "data": "Ali bulut", \=\ veri başlığı adı
20
+ "data_id": "alikaya1234f5"}, \=\ benzersiz veri ID'si
21
+ control=deneme \=\ onay True/False
22
+ )
23
+
24
+ - wew_data_add \=\ veri başlığına veri ekleme
25
+
26
+ wew_data_add("wew_deneme", \=\ dosya adı
27
+ "alikaya1234f5", \=\ veri başlığı ID'si
28
+ {"name": "yön", "data": "→"} \=\ veri ekleme başlık/veri
29
+ ,control=deneme \=\ onay True/False
30
+ )
31
+
32
+ - wew_data_get \=\ veri başlığından veri çekme
33
+
34
+ dene = wew_data_get("wew_deneme", \=\ verinin geleceği değişken/dosya adı
35
+ "alikaya1234f5", \=\ benzersiz veri başlığı ID'si
36
+ {"name": "yön"}, \=\ çekilecek veri başlığı
37
+ control=deneme \=\ onay True/False
38
+ )
39
+
40
+ - wew_data_update \=\ veri güncelleme
41
+
42
+ wew_data_update("wew_deneme", \=\ dosya adı
43
+ "alikaya1234f5", \=\ benzersiz veri başlığı ID'si
44
+ {"name": "yön", "data": "↓"}, \=\ güncellenecek veri başlığı/veri
45
+ control=deneme \=\ onay True/False
46
+ )
47
+
48
+ wewlot_server("True") \=\ server açma
49
+
50
+ DEVAM EDECEK...
wewlott-0.7/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
wewlott-0.7/setup.py ADDED
@@ -0,0 +1,29 @@
1
+ from setuptools import setup, find_packages
2
+
3
+ with open("README.md", "r", encoding="utf-8") as f:
4
+ README = f.read()
5
+
6
+ setup(
7
+ name="wewlott",
8
+ version="0.7",
9
+ packages=find_packages(),
10
+ install_requiresk=[
11
+ "kivy>=2.1.0"
12
+ ],
13
+ description="wewlot: İşlevsel ve kolaylaştırılmış Python Database kütüphanesi",
14
+ long_description=README,
15
+ long_description_content_type="text/markdown",
16
+ author="Bedirhan",
17
+ author_email="bedirhan.oytpass@gmail.com",
18
+ license="MIT",
19
+ keywords=["Kolay kod", "files", "basitleştirilmiş"],
20
+ classifiers=[
21
+ "License :: OSI Approved :: MIT License",
22
+ "Programming Language :: Python :: 3",
23
+ "Programming Language :: Python :: 3.6",
24
+ "Programming Language :: Python :: 3.7",
25
+ "Programming Language :: Python :: 3.8",
26
+ "Programming Language :: Python :: 3.9",
27
+ "Programming Language :: Python :: 3.10"
28
+ ],
29
+ )
@@ -0,0 +1 @@
1
+ from .wewlott import wewlot_server, wewlot_database, wew_data_give, wew_data_add, wew_data_get, wew_data_update
@@ -0,0 +1,216 @@
1
+ import socket
2
+ import http.server
3
+ import socketserver
4
+ import os
5
+ import base64
6
+ from kivy.app import App
7
+
8
+ # --- DOSYA YOLU YARDIMCISI ---
9
+
10
+ def _get_secure_path():
11
+ """Uygulamanın özel veri dizininde gizli bir klasör yolu döndürür."""
12
+ try:
13
+ # Kivy üzerinden uygulamanın özel veri klasörünü alıyoruz
14
+ base_path = App.get_running_app().user_data_dir
15
+ except:
16
+ # Kivy dışında (test sırasında) çalışıyorsa mevcut dizini kullan
17
+ base_path = os.getcwd()
18
+
19
+ # Klasör isminin başına nokta (.) koymak Linux/Android sistemlerde klasörü gizli yapar
20
+ folder_name = ".wew_data_storage"
21
+ full_path = os.path.join(base_path, folder_name)
22
+
23
+ # Klasör yoksa oluştur
24
+ if not os.path.exists(full_path):
25
+ os.makedirs(full_path, exist_ok=True)
26
+
27
+ return full_path
28
+
29
+ # --- ŞİFRELEME YARDIMCILARI ---
30
+
31
+ def _sifrele(metin):
32
+ """Metni Base64 ile okunamaz hale getirir."""
33
+ return base64.b64encode(metin.encode('utf-8')).decode('utf-8')
34
+
35
+ def _sifre_coz(sifreli_metin):
36
+ """Şifrelenmiş metni orijinal haline döndürür."""
37
+ try:
38
+ if not sifreli_metin: return ""
39
+ return base64.b64decode(sifreli_metin.encode('utf-8')).decode('utf-8')
40
+ except:
41
+ return ""
42
+
43
+ def _update_control(control_list, result):
44
+ """İşlem sonucunu (True/False) belirtilen listeye ekler."""
45
+ if control_list is not None and isinstance(control_list, list):
46
+ control_list.append(result)
47
+
48
+ # --- VERİTABANI FONKSİYONLARI ---
49
+
50
+ def wewlot_database(dosya_adi, control=None):
51
+ """Veritabanı dosyasını gizli klasörde şifreli bir yapıyla oluşturur."""
52
+ try:
53
+ path = _get_secure_path()
54
+ tam_dosya_adi = os.path.join(path, f"{dosya_adi}.txt")
55
+
56
+ if not os.path.exists(tam_dosya_adi):
57
+ baslangic_icerik = "[\n]\n"
58
+ with open(tam_dosya_adi, "w", encoding="utf-8") as dosya:
59
+ dosya.write(_sifrele(baslangic_icerik))
60
+ _update_control(control, True)
61
+ except:
62
+ _update_control(control, False)
63
+
64
+ def wew_data_give(dosya_adi, veri_sozlugu, control=None):
65
+ """Ana ID kaydını oluşturur ve dosyayı şifreleyerek kaydeder."""
66
+ try:
67
+ path = _get_secure_path()
68
+ tam_dosya_adi = os.path.join(path, f"{dosya_adi}.txt")
69
+
70
+ aranan_id = str(veri_sozlugu['data_id'])
71
+ yeni_satir = f"-{veri_sozlugu['data']} = {aranan_id}\n"
72
+
73
+ with open(tam_dosya_adi, "r", encoding="utf-8") as f:
74
+ mevcut_icerik = _sifre_coz(f.read())
75
+
76
+ if f"= {aranan_id}" in mevcut_icerik:
77
+ _update_control(control, False)
78
+ return
79
+
80
+ satirlar = mevcut_icerik.splitlines(keepends=True)
81
+ for i in range(len(satirlar)-1, -1, -1):
82
+ if satirlar[i].strip() == "]":
83
+ satirlar.insert(i, yeni_satir)
84
+ break
85
+
86
+ with open(tam_dosya_adi, "w", encoding="utf-8") as f:
87
+ f.write(_sifrele("".join(satirlar)))
88
+ _update_control(control, True)
89
+ except:
90
+ _update_control(control, False)
91
+
92
+ def wew_data_add(dosya_adi, hedef_id, ek_veri, control=None):
93
+ """Belirtilen ID altına yeni veri ekler."""
94
+ try:
95
+ path = _get_secure_path()
96
+ tam_dosya_adi = os.path.join(path, f"{dosya_adi}.txt")
97
+
98
+ aranan_name = f"{ek_veri['name']} ="
99
+ yeni_bilgi = f"{ek_veri['name']} = {ek_veri['data']}\n"
100
+
101
+ with open(tam_dosya_adi, "r", encoding="utf-8") as f:
102
+ mevcut_icerik = _sifre_coz(f.read())
103
+
104
+ satirlar = mevcut_icerik.splitlines(keepends=True)
105
+ yeni_icerik_listesi = []
106
+ id_bulundu = False
107
+ veri_eklendi = False
108
+
109
+ for i in range(len(satirlar)):
110
+ yeni_icerik_listesi.append(satirlar[i])
111
+ if f"= {hedef_id}" in satirlar[i]:
112
+ id_bulundu = True
113
+ var_mi = False
114
+ for j in range(i + 1, len(satirlar)):
115
+ if satirlar[j].startswith("-") or satirlar[j].strip() == "]": break
116
+ if aranan_name in satirlar[j]:
117
+ var_mi = True; break
118
+ if not var_mi:
119
+ yeni_icerik_listesi.append(yeni_bilgi)
120
+ veri_eklendi = True
121
+
122
+ if id_bulundu and veri_eklendi:
123
+ with open(tam_dosya_adi, "w", encoding="utf-8") as f:
124
+ f.write(_sifrele("".join(yeni_icerik_listesi)))
125
+ _update_control(control, True)
126
+ else:
127
+ _update_control(control, False)
128
+ except:
129
+ _update_control(control, False)
130
+
131
+ def wew_data_update(dosya_adi, hedef_id, guncel_veri, control=None):
132
+ """Şifreli dosya içindeki veriyi günceller."""
133
+ try:
134
+ path = _get_secure_path()
135
+ tam_dosya_adi = os.path.join(path, f"{dosya_adi}.txt")
136
+
137
+ aranan_name = f"{guncel_veri['name']} ="
138
+ yeni_satir = f"{guncel_veri['name']} = {guncel_veri['data']}\n"
139
+
140
+ with open(tam_dosya_adi, "r", encoding="utf-8") as f:
141
+ mevcut_icerik = _sifre_coz(f.read())
142
+
143
+ satirlar = mevcut_icerik.splitlines(keepends=True)
144
+ yeni_liste = []
145
+ hedef_bolge = False
146
+ guncellendi = False
147
+
148
+ for satir in satirlar:
149
+ if f"= {hedef_id}" in satir:
150
+ hedef_bolge = True
151
+ yeni_liste.append(satir)
152
+ continue
153
+ if hedef_bolge and aranan_name in satir:
154
+ yeni_liste.append(yeni_satir)
155
+ guncellendi = True
156
+ hedef_bolge = False
157
+ continue
158
+ if hedef_bolge and (satir.startswith("-") or satir.strip() == "]"):
159
+ hedef_bolge = False
160
+ yeni_liste.append(satir)
161
+
162
+ if guncellendi:
163
+ with open(tam_dosya_adi, "w", encoding="utf-8") as f:
164
+ f.write(_sifrele("".join(yeni_liste)))
165
+ _update_control(control, True)
166
+ else:
167
+ _update_control(control, False)
168
+ except:
169
+ _update_control(control, False)
170
+
171
+ def wew_data_get(dosya_adi, hedef_id, sorgu_sozlugu, control=None):
172
+ """Şifreli dosyayı çözer ve istenen veriyi döndürür."""
173
+ try:
174
+ path = _get_secure_path()
175
+ tam_dosya_adi = os.path.join(path, f"{dosya_adi}.txt")
176
+
177
+ aranan_name = f"{sorgu_sozlugu['name']} ="
178
+
179
+ with open(tam_dosya_adi, "r", encoding="utf-8") as f:
180
+ mevcut_icerik = _sifre_coz(f.read())
181
+
182
+ satirlar = mevcut_icerik.splitlines(keepends=True)
183
+ for i in range(len(satirlar)):
184
+ if f"= {hedef_id}" in satirlar[i]:
185
+ for j in range(i + 1, len(satirlar)):
186
+ if satirlar[j].startswith("-") or satirlar[j].strip() == "]": break
187
+ if aranan_name in satirlar[j]:
188
+ _update_control(control, True)
189
+ return satirlar[j].split("=")[1].strip()
190
+ _update_control(control, False)
191
+ return None
192
+ except:
193
+ _update_control(control, False)
194
+ return None
195
+
196
+ # --- SUNUCU FONKSİYONU ---
197
+
198
+ def wewlot_server(status, control=None):
199
+ """Sunucuyu başlatır."""
200
+ if status != "True":
201
+ _update_control(control, False)
202
+ return
203
+ try:
204
+ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
205
+ s.bind(('', 0))
206
+ port = s.getsockname()[1]
207
+
208
+ Handler = http.server.SimpleHTTPRequestHandler
209
+ with socketserver.TCPServer(("", port), Handler) as httpd:
210
+ print(f"Sunucu aktif: http://localhost:{port}")
211
+ _update_control(control, True)
212
+ httpd.serve_forever()
213
+ except Exception as e:
214
+ print(f"Sunucu hatası: {e}")
215
+ _update_control(control, False)
216
+
@@ -0,0 +1,77 @@
1
+ Metadata-Version: 2.4
2
+ Name: wewlott
3
+ Version: 0.7
4
+ Summary: wewlot: İşlevsel ve kolaylaştırılmış Python Database kütüphanesi
5
+ Author: Bedirhan
6
+ Author-email: bedirhan.oytpass@gmail.com
7
+ License: MIT
8
+ Keywords: Kolay kod,files,basitleştirilmiş
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.6
12
+ Classifier: Programming Language :: Python :: 3.7
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Dynamic: author
19
+ Dynamic: author-email
20
+ Dynamic: classifier
21
+ Dynamic: description
22
+ Dynamic: description-content-type
23
+ Dynamic: keywords
24
+ Dynamic: license
25
+ Dynamic: license-file
26
+ Dynamic: summary
27
+
28
+ # Tanıtım
29
+ wewlot sistemkar uydu protokolini
30
+ uygulayan basitleştirilmiş bir veriPyo olmakla birlikte dosya tabanlı veri
31
+ saklama kütüphanesi
32
+
33
+ ## Kullanım ve fonksiyonlar
34
+
35
+ - wewlot_database \=\ veri dosyasını oluşturma
36
+
37
+ wewlot_database(
38
+ "wew_deneme",
39
+ control=deneme \=\ onay True/False
40
+ )
41
+
42
+ - wew_data_give \=\ kullanıcı veri başlığı ekleme
43
+
44
+ wew_data_give("wew_deneme", \=\ dosya adı
45
+ {"name": "kullanıcı", \=\ başlık adı
46
+ "data": "Ali bulut", \=\ veri başlığı adı
47
+ "data_id": "alikaya1234f5"}, \=\ benzersiz veri ID'si
48
+ control=deneme \=\ onay True/False
49
+ )
50
+
51
+ - wew_data_add \=\ veri başlığına veri ekleme
52
+
53
+ wew_data_add("wew_deneme", \=\ dosya adı
54
+ "alikaya1234f5", \=\ veri başlığı ID'si
55
+ {"name": "yön", "data": "→"} \=\ veri ekleme başlık/veri
56
+ ,control=deneme \=\ onay True/False
57
+ )
58
+
59
+ - wew_data_get \=\ veri başlığından veri çekme
60
+
61
+ dene = wew_data_get("wew_deneme", \=\ verinin geleceği değişken/dosya adı
62
+ "alikaya1234f5", \=\ benzersiz veri başlığı ID'si
63
+ {"name": "yön"}, \=\ çekilecek veri başlığı
64
+ control=deneme \=\ onay True/False
65
+ )
66
+
67
+ - wew_data_update \=\ veri güncelleme
68
+
69
+ wew_data_update("wew_deneme", \=\ dosya adı
70
+ "alikaya1234f5", \=\ benzersiz veri başlığı ID'si
71
+ {"name": "yön", "data": "↓"}, \=\ güncellenecek veri başlığı/veri
72
+ control=deneme \=\ onay True/False
73
+ )
74
+
75
+ wewlot_server("True") \=\ server açma
76
+
77
+ DEVAM EDECEK...
@@ -0,0 +1,9 @@
1
+ LICENSE
2
+ README.md
3
+ setup.py
4
+ wewlott/__init__.py
5
+ wewlott/wewlott.py
6
+ wewlott.egg-info/PKG-INFO
7
+ wewlott.egg-info/SOURCES.txt
8
+ wewlott.egg-info/dependency_links.txt
9
+ wewlott.egg-info/top_level.txt
@@ -0,0 +1 @@
1
+ wewlott