clapp-pm 1.0.10__py3-none-any.whl → 1.0.13__py3-none-any.whl

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.
Files changed (40) hide show
  1. backup_current/build_index.py +132 -0
  2. backup_current/check_env.py +133 -0
  3. backup_current/clapp_core.py +61 -0
  4. backup_current/clean_command.py +214 -0
  5. backup_current/cli_commands.py +404 -0
  6. backup_current/dependency_resolver.py +272 -0
  7. backup_current/doctor_command.py +239 -0
  8. backup_current/info_command.py +194 -0
  9. backup_current/install_command.py +236 -0
  10. backup_current/installer.py +323 -0
  11. backup_current/list_command.py +262 -0
  12. backup_current/main.py +294 -0
  13. backup_current/manifest_schema.py +84 -0
  14. backup_current/manifest_validator.py +245 -0
  15. backup_current/package_registry.py +127 -0
  16. backup_current/package_runner.py +85 -0
  17. backup_current/post_install_hint.py +144 -0
  18. backup_current/publish_command.py +253 -0
  19. backup_current/remote_registry.py +285 -0
  20. backup_current/setup.py +160 -0
  21. backup_current/system_test.py +477 -0
  22. backup_current/uninstall_command.py +215 -0
  23. backup_current/validate_command.py +225 -0
  24. backup_current/version.py +8 -0
  25. backup_current/version_command.py +145 -0
  26. backup_current/where_command.py +207 -0
  27. check_env.py +1 -8
  28. clapp-packages-repo/packages/hello-python/main.py +0 -49
  29. clapp-packages-repo/packages/hello-python/manifest.json +0 -8
  30. {clapp_pm-1.0.10.data → clapp_pm-1.0.13.data}/data/version.json +1 -1
  31. {clapp_pm-1.0.10.dist-info → clapp_pm-1.0.13.dist-info}/METADATA +1 -1
  32. clapp_pm-1.0.13.dist-info/RECORD +71 -0
  33. {clapp_pm-1.0.10.dist-info → clapp_pm-1.0.13.dist-info}/top_level.txt +1 -0
  34. doctor_command.py +0 -1
  35. install_command.py +3 -0
  36. version.py +1 -1
  37. clapp_pm-1.0.10.dist-info/RECORD +0 -45
  38. {clapp_pm-1.0.10.dist-info → clapp_pm-1.0.13.dist-info}/WHEEL +0 -0
  39. {clapp_pm-1.0.10.dist-info → clapp_pm-1.0.13.dist-info}/entry_points.txt +0 -0
  40. {clapp_pm-1.0.10.dist-info → clapp_pm-1.0.13.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,225 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ validate_command.py - Uygulama doğrulama modülü
4
+
5
+ Bu modül `clapp validate <folder>` komutunu destekler ve
6
+ uygulama klasörlerinin doğru yapıda olup olmadığını kontrol eder.
7
+ """
8
+
9
+ import os
10
+ import json
11
+ from pathlib import Path
12
+ from manifest_validator import validate_manifest_verbose
13
+
14
+ def validate_app_folder(folder_path):
15
+ """Uygulama klasörünü doğrular"""
16
+ folder = Path(folder_path)
17
+
18
+ print(f"🔍 '{folder_path}' klasörü doğrulanıyor...")
19
+ print("=" * 50)
20
+
21
+ # Klasörün var olup olmadığını kontrol et
22
+ if not folder.exists():
23
+ print(f"❌ Klasör bulunamadı: {folder_path}")
24
+ return False
25
+
26
+ if not folder.is_dir():
27
+ print(f"❌ Belirtilen yol bir klasör değil: {folder_path}")
28
+ return False
29
+
30
+ errors = []
31
+ warnings = []
32
+
33
+ # 1. manifest.json kontrolü
34
+ manifest_path = folder / "manifest.json"
35
+ if not manifest_path.exists():
36
+ errors.append("manifest.json dosyası bulunamadı")
37
+ else:
38
+ print("✅ manifest.json dosyası mevcut")
39
+
40
+ # Manifest içeriğini kontrol et
41
+ try:
42
+ with open(manifest_path, 'r', encoding='utf-8') as f:
43
+ manifest_data = json.load(f)
44
+
45
+ # Manifest'i doğrula
46
+ is_valid, validation_errors = validate_manifest_verbose(manifest_data)
47
+
48
+ if is_valid:
49
+ print("✅ manifest.json geçerli")
50
+ else:
51
+ print("❌ manifest.json geçersiz:")
52
+ for error in validation_errors:
53
+ print(f" • {error}")
54
+ errors.append(f"Manifest hatası: {error}")
55
+
56
+ # Giriş dosyası kontrolü
57
+ if "entry" in manifest_data:
58
+ entry_file = folder / manifest_data["entry"]
59
+ if entry_file.exists():
60
+ print(f"✅ Giriş dosyası mevcut: {manifest_data['entry']}")
61
+ else:
62
+ error_msg = f"Giriş dosyası bulunamadı: {manifest_data['entry']}"
63
+ print(f"❌ {error_msg}")
64
+ errors.append(error_msg)
65
+
66
+ # Dil kontrolü
67
+ if "language" in manifest_data:
68
+ language = manifest_data["language"].lower()
69
+ if language in ["python", "lua"]:
70
+ print(f"✅ Desteklenen dil: {language}")
71
+ else:
72
+ warning_msg = f"Desteklenmeyen dil: {language}"
73
+ print(f"⚠️ {warning_msg}")
74
+ warnings.append(warning_msg)
75
+
76
+ except json.JSONDecodeError as e:
77
+ error_msg = f"manifest.json JSON formatı geçersiz: {str(e)}"
78
+ print(f"❌ {error_msg}")
79
+ errors.append(error_msg)
80
+ except Exception as e:
81
+ error_msg = f"manifest.json okunamadı: {str(e)}"
82
+ print(f"❌ {error_msg}")
83
+ errors.append(error_msg)
84
+
85
+ # 2. Klasör içeriği kontrolü
86
+ files = list(folder.iterdir())
87
+ if not files:
88
+ warnings.append("Klasör boş")
89
+ print("⚠️ Klasör boş")
90
+ else:
91
+ print(f"✅ Klasör içeriği: {len(files)} öğe")
92
+
93
+ # 3. Önerilen dosya yapısı kontrolü
94
+ recommended_files = ["manifest.json", "README.md", "requirements.txt"]
95
+ missing_recommended = []
96
+
97
+ for rec_file in recommended_files:
98
+ if not (folder / rec_file).exists():
99
+ missing_recommended.append(rec_file)
100
+
101
+ if missing_recommended:
102
+ print("💡 Önerilen dosyalar eksik:")
103
+ for missing in missing_recommended:
104
+ print(f" • {missing}")
105
+
106
+ # 4. Dosya boyutu kontrolü
107
+ try:
108
+ total_size = 0
109
+ file_count = 0
110
+
111
+ for file_path in folder.rglob("*"):
112
+ if file_path.is_file():
113
+ file_count += 1
114
+ total_size += file_path.stat().st_size
115
+
116
+ print(f"📊 İstatistikler: {file_count} dosya, {format_size(total_size)}")
117
+
118
+ # Büyük dosyalar için uyarı
119
+ if total_size > 100 * 1024 * 1024: # 100MB
120
+ warnings.append(f"Büyük uygulama boyutu: {format_size(total_size)}")
121
+
122
+ except Exception as e:
123
+ warnings.append(f"Dosya boyutu hesaplanamadı: {str(e)}")
124
+
125
+ # Sonuçları göster
126
+ print("\n" + "=" * 50)
127
+ print("📋 Doğrulama Sonuçları:")
128
+
129
+ if not errors and not warnings:
130
+ print("🎉 Mükemmel! Uygulama klasörü tamamen geçerli.")
131
+ print("✅ Kurulum için hazır.")
132
+ elif not errors:
133
+ print("✅ Uygulama klasörü geçerli.")
134
+ if warnings:
135
+ print("⚠️ Bazı uyarılar var:")
136
+ for warning in warnings:
137
+ print(f" • {warning}")
138
+ else:
139
+ print("❌ Uygulama klasörü geçersiz.")
140
+ print("🔧 Düzeltilmesi gereken hatalar:")
141
+ for error in errors:
142
+ print(f" • {error}")
143
+
144
+ if warnings:
145
+ print("⚠️ Ek uyarılar:")
146
+ for warning in warnings:
147
+ print(f" • {warning}")
148
+
149
+ # Öneriler
150
+ if errors or warnings:
151
+ print("\n💡 Öneriler:")
152
+ if not manifest_path.exists():
153
+ print("• manifest.json dosyası oluşturun")
154
+ print("• Örnek: clapp init komutu ile başlayabilirsiniz")
155
+
156
+ if missing_recommended:
157
+ print("• Önerilen dosyaları ekleyin:")
158
+ for missing in missing_recommended:
159
+ if missing == "README.md":
160
+ print(f" - {missing}: Uygulama açıklaması")
161
+ elif missing == "requirements.txt":
162
+ print(f" - {missing}: Python bağımlılıkları (Python uygulamaları için)")
163
+
164
+ if warnings:
165
+ print("• Uyarıları gözden geçirin ve gerekirse düzeltin")
166
+
167
+ print(f"\n🔧 Daha fazla yardım için: clapp doctor")
168
+
169
+ return len(errors) == 0
170
+
171
+ def format_size(size_bytes):
172
+ """Dosya boyutunu formatlar"""
173
+ if size_bytes == 0:
174
+ return "0 B"
175
+
176
+ for unit in ['B', 'KB', 'MB', 'GB']:
177
+ if size_bytes < 1024.0:
178
+ return f"{size_bytes:.1f} {unit}"
179
+ size_bytes /= 1024.0
180
+
181
+ return f"{size_bytes:.1f} TB"
182
+
183
+ def validate_multiple_folders(folder_paths):
184
+ """Birden fazla klasörü doğrular"""
185
+ results = []
186
+
187
+ for folder_path in folder_paths:
188
+ print(f"\n{'='*60}")
189
+ result = validate_app_folder(folder_path)
190
+ results.append((folder_path, result))
191
+
192
+ # Özet
193
+ print(f"\n{'='*60}")
194
+ print("📊 Toplu Doğrulama Özeti:")
195
+
196
+ valid_count = sum(1 for _, result in results if result)
197
+ invalid_count = len(results) - valid_count
198
+
199
+ print(f"✅ Geçerli: {valid_count}")
200
+ print(f"❌ Geçersiz: {invalid_count}")
201
+
202
+ if invalid_count > 0:
203
+ print("\n❌ Geçersiz klasörler:")
204
+ for folder_path, result in results:
205
+ if not result:
206
+ print(f" • {folder_path}")
207
+
208
+ return invalid_count == 0
209
+
210
+ if __name__ == "__main__":
211
+ import sys
212
+
213
+ if len(sys.argv) < 2:
214
+ print("Kullanım: python validate_command.py <klasör_yolu>")
215
+ print("Örnek: python validate_command.py apps/my-app")
216
+ sys.exit(1)
217
+
218
+ folder_paths = sys.argv[1:]
219
+
220
+ if len(folder_paths) == 1:
221
+ success = validate_app_folder(folder_paths[0])
222
+ sys.exit(0 if success else 1)
223
+ else:
224
+ success = validate_multiple_folders(folder_paths)
225
+ sys.exit(0 if success else 1)
@@ -0,0 +1,8 @@
1
+ """
2
+ Version information for clapp-pm package.
3
+ """
4
+
5
+ __version__ = "1.0.1"
6
+ __author__ = "Melih Burak Memiş"
7
+ __email__ = "mburakmemiscy@gmail.com"
8
+ __description__ = "Lightweight cross-language app manager for Python and Lua"
@@ -0,0 +1,145 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ version_command.py - Sürüm bilgisi modülü
4
+
5
+ Bu modül `clapp version` komutunu destekler ve
6
+ clapp'in sürüm bilgilerini gösterir.
7
+ """
8
+
9
+ import sys
10
+ import platform
11
+ import json
12
+ from pathlib import Path
13
+
14
+ def get_version_info():
15
+ """Sürüm bilgilerini toplar"""
16
+ # version.json dosyasından sürüm bilgisini oku
17
+ version_file = Path("version.json")
18
+
19
+ if version_file.exists():
20
+ try:
21
+ with open(version_file, 'r', encoding='utf-8') as f:
22
+ version_data = json.load(f)
23
+
24
+ app_name = version_data.get("name", "clapp")
25
+ version = version_data.get("version", "1.0.0")
26
+ author = version_data.get("author", "Bilinmiyor")
27
+
28
+ except Exception:
29
+ app_name = "clapp"
30
+ version = "1.0.0"
31
+ author = "Bilinmiyor"
32
+ else:
33
+ app_name = "clapp"
34
+ version = "1.0.0"
35
+ author = "Bilinmiyor"
36
+
37
+ # Sistem bilgileri
38
+ python_version = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
39
+ system_info = platform.system()
40
+ machine = platform.machine()
41
+
42
+ return {
43
+ "app_name": app_name,
44
+ "version": version,
45
+ "author": author,
46
+ "python_version": python_version,
47
+ "system": system_info,
48
+ "machine": machine,
49
+ "platform": f"{system_info} {platform.release()}"
50
+ }
51
+
52
+ def print_version(format_type="default"):
53
+ """Sürüm bilgisini yazdırır"""
54
+ info = get_version_info()
55
+
56
+ if format_type == "short":
57
+ print(info["version"])
58
+ elif format_type == "json":
59
+ import json
60
+ output = {
61
+ "version": info["version"],
62
+ "python": info["python_version"],
63
+ "os": info["system"],
64
+ "machine": info["machine"]
65
+ }
66
+ print(json.dumps(output, indent=2))
67
+ else: # default
68
+ print(f"🚀 {info['app_name']} v{info['version']}")
69
+ print(f"🐍 Python {info['python_version']}")
70
+ print(f"💻 Platform: {info['platform']} ({info['machine']})")
71
+ print(f"👨‍💻 Yazar: {info['author']}")
72
+
73
+ def print_detailed_version():
74
+ """Detaylı sürüm bilgisini yazdırır"""
75
+ info = get_version_info()
76
+
77
+ print("📋 clapp Detaylı Sürüm Bilgileri")
78
+ print("=" * 50)
79
+
80
+ # Temel bilgiler
81
+ print("🚀 Uygulama Bilgileri:")
82
+ print(f" Ad: {info['app_name']}")
83
+ print(f" Sürüm: {info['version']}")
84
+ print(f" Yazar: {info['author']}")
85
+ print()
86
+
87
+ # Python bilgileri
88
+ print("🐍 Python Bilgileri:")
89
+ print(f" Sürüm: {info['python_version']}")
90
+ print(f" Çalıştırılabilir: {sys.executable}")
91
+ print(f" Prefix: {sys.prefix}")
92
+ print()
93
+
94
+ # Platform bilgileri
95
+ print("💻 Platform Bilgileri:")
96
+ print(f" İşletim Sistemi: {info['system']}")
97
+ print(f" Sürüm: {platform.release()}")
98
+ print(f" Mimari: {info['machine']}")
99
+ print(f" İşlemci: {platform.processor()}")
100
+ print()
101
+
102
+ # Modül bilgileri
103
+ print("📦 Modül Bilgileri:")
104
+ try:
105
+ import flet
106
+ print(f" Flet: v{flet.__version__}")
107
+ except ImportError:
108
+ print(" Flet: Yüklü değil")
109
+
110
+ # Ek bilgiler
111
+ print()
112
+ print("📁 Dizin Bilgileri:")
113
+ print(f" Çalışma Dizini: {Path.cwd()}")
114
+
115
+ # apps/ dizini kontrolü
116
+ apps_dir = Path("apps")
117
+ if apps_dir.exists():
118
+ app_count = len([d for d in apps_dir.iterdir() if d.is_dir()])
119
+ print(f" Apps Dizini: {apps_dir.resolve()} ({app_count} uygulama)")
120
+ else:
121
+ print(" Apps Dizini: Bulunamadı")
122
+
123
+ def check_latest_version():
124
+ """En son sürümü kontrol eder (placeholder)"""
125
+ print("🔍 En son sürüm kontrol ediliyor...")
126
+ print("⚠️ Bu özellik henüz mevcut değil.")
127
+ print("📞 Manuel kontrol için: https://github.com/user/clapp")
128
+
129
+ if __name__ == "__main__":
130
+ import sys
131
+
132
+ if len(sys.argv) > 1:
133
+ arg = sys.argv[1]
134
+ if arg == "--short":
135
+ print_version("short")
136
+ elif arg == "--json":
137
+ print_version("json")
138
+ elif arg == "--detailed":
139
+ print_detailed_version()
140
+ elif arg == "--latest":
141
+ check_latest_version()
142
+ else:
143
+ print_version("default")
144
+ else:
145
+ print_version("default")
@@ -0,0 +1,207 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ where_command.py - Uygulama konum bulma modülü
4
+
5
+ Bu modül `clapp where <app_name>` komutunu destekler ve
6
+ yüklü uygulamaların dosya sistemi konumlarını gösterir.
7
+ """
8
+
9
+ import os
10
+ import json
11
+ from pathlib import Path
12
+
13
+ def locate_app_path(app_name, check_entry=False):
14
+ """Uygulama konumunu bulur"""
15
+ print(f"📍 '{app_name}' uygulaması aranıyor...")
16
+ print("=" * 50)
17
+
18
+ # Varsayılan uygulama dizini
19
+ apps_dir = Path("apps")
20
+ app_dir = apps_dir / app_name
21
+
22
+ if not app_dir.exists():
23
+ print(f"❌ '{app_name}' uygulaması bulunamadı.")
24
+ print()
25
+ print("🔍 Öneriler:")
26
+ print("• Uygulama adını kontrol edin")
27
+ print("• Yüklü uygulamaları görmek için: clapp list")
28
+ print("• Uygulama yüklemek için: clapp install <kaynak>")
29
+ return False
30
+
31
+ if not app_dir.is_dir():
32
+ print(f"❌ '{app_name}' bir dizin değil.")
33
+ return False
34
+
35
+ # Temel bilgiler
36
+ abs_path = app_dir.resolve()
37
+ print(f"📂 Uygulama konumu:")
38
+ print(f" {abs_path}")
39
+ print()
40
+
41
+ # Dizin içeriği
42
+ try:
43
+ contents = list(app_dir.iterdir())
44
+ print(f"📋 Dizin içeriği ({len(contents)} öğe):")
45
+
46
+ for item in contents:
47
+ if item.is_file():
48
+ size = item.stat().st_size
49
+ print(f" 📄 {item.name} ({format_size(size)})")
50
+ elif item.is_dir():
51
+ print(f" 📁 {item.name}/")
52
+ print()
53
+ except Exception as e:
54
+ print(f"⚠️ Dizin içeriği okunamadı: {e}")
55
+ print()
56
+
57
+ # Manifest kontrolü
58
+ manifest_path = app_dir / "manifest.json"
59
+ if manifest_path.exists():
60
+ print("✅ manifest.json mevcut")
61
+
62
+ try:
63
+ with open(manifest_path, 'r', encoding='utf-8') as f:
64
+ manifest = json.load(f)
65
+
66
+ # Temel manifest bilgileri
67
+ print(f" 📝 Ad: {manifest.get('name', 'Belirtilmemiş')}")
68
+ print(f" 🔢 Sürüm: {manifest.get('version', 'Belirtilmemiş')}")
69
+ print(f" 🔧 Dil: {manifest.get('language', 'Belirtilmemiş')}")
70
+ print(f" 🚀 Giriş: {manifest.get('entry', 'Belirtilmemiş')}")
71
+
72
+ # Giriş dosyası kontrolü
73
+ if check_entry and "entry" in manifest:
74
+ entry_file = app_dir / manifest["entry"]
75
+ print()
76
+ print("🔍 Giriş dosyası kontrolü:")
77
+ if entry_file.exists():
78
+ size = entry_file.stat().st_size
79
+ print(f" ✅ {manifest['entry']} mevcut ({format_size(size)})")
80
+ print(f" 📍 Tam yol: {entry_file.resolve()}")
81
+ else:
82
+ print(f" ❌ {manifest['entry']} bulunamadı")
83
+
84
+ except json.JSONDecodeError:
85
+ print(" ❌ manifest.json geçersiz JSON formatında")
86
+ except Exception as e:
87
+ print(f" ❌ manifest.json okunamadı: {e}")
88
+ else:
89
+ print("❌ manifest.json bulunamadı")
90
+
91
+ print()
92
+
93
+ # Kullanım örnekleri
94
+ print("🚀 Kullanım:")
95
+ print(f" clapp run {app_name}")
96
+ print(f" clapp info {app_name}")
97
+ print(f" clapp validate {app_dir}")
98
+
99
+ return True
100
+
101
+ def format_size(size_bytes):
102
+ """Dosya boyutunu formatlar"""
103
+ if size_bytes == 0:
104
+ return "0 B"
105
+
106
+ for unit in ['B', 'KB', 'MB', 'GB']:
107
+ if size_bytes < 1024.0:
108
+ return f"{size_bytes:.1f} {unit}"
109
+ size_bytes /= 1024.0
110
+
111
+ return f"{size_bytes:.1f} TB"
112
+
113
+ def list_all_app_locations():
114
+ """Tüm uygulamaların konumlarını listeler"""
115
+ print("📍 Tüm Uygulama Konumları")
116
+ print("=" * 60)
117
+
118
+ apps_dir = Path("apps")
119
+ if not apps_dir.exists():
120
+ print("❌ apps/ dizini bulunamadı")
121
+ return False
122
+
123
+ app_dirs = [d for d in apps_dir.iterdir() if d.is_dir()]
124
+
125
+ if not app_dirs:
126
+ print("📦 Yüklü uygulama bulunamadı")
127
+ return True
128
+
129
+ print(f"📂 Toplam {len(app_dirs)} uygulama bulundu:\n")
130
+
131
+ for app_dir in sorted(app_dirs):
132
+ app_name = app_dir.name
133
+ abs_path = app_dir.resolve()
134
+
135
+ # Manifest kontrolü
136
+ manifest_path = app_dir / "manifest.json"
137
+ version = "?"
138
+ language = "?"
139
+
140
+ if manifest_path.exists():
141
+ try:
142
+ with open(manifest_path, 'r', encoding='utf-8') as f:
143
+ manifest = json.load(f)
144
+ version = manifest.get('version', '?')
145
+ language = manifest.get('language', '?')
146
+ except:
147
+ pass
148
+
149
+ # Dizin boyutu
150
+ try:
151
+ total_size = sum(f.stat().st_size for f in app_dir.rglob("*") if f.is_file())
152
+ size_str = format_size(total_size)
153
+ except:
154
+ size_str = "?"
155
+
156
+ print(f"📦 {app_name} (v{version}, {language})")
157
+ print(f" 📍 {abs_path}")
158
+ print(f" 📊 {size_str}")
159
+ print()
160
+
161
+ return True
162
+
163
+ def open_app_location(app_name):
164
+ """Uygulama konumunu dosya yöneticisinde açar"""
165
+ apps_dir = Path("apps")
166
+ app_dir = apps_dir / app_name
167
+
168
+ if not app_dir.exists():
169
+ print(f"❌ '{app_name}' uygulaması bulunamadı.")
170
+ return False
171
+
172
+ abs_path = app_dir.resolve()
173
+
174
+ try:
175
+ import platform
176
+ system = platform.system()
177
+
178
+ if system == "Windows":
179
+ os.startfile(abs_path)
180
+ elif system == "Darwin": # macOS
181
+ os.system(f"open '{abs_path}'")
182
+ else: # Linux
183
+ os.system(f"xdg-open '{abs_path}'")
184
+
185
+ print(f"📂 '{app_name}' konumu dosya yöneticisinde açıldı")
186
+ print(f"📍 {abs_path}")
187
+ return True
188
+
189
+ except Exception as e:
190
+ print(f"❌ Dosya yöneticisi açılamadı: {e}")
191
+ print(f"📍 Manuel olarak açın: {abs_path}")
192
+ return False
193
+
194
+ if __name__ == "__main__":
195
+ import sys
196
+
197
+ if len(sys.argv) < 2:
198
+ list_all_app_locations()
199
+ else:
200
+ app_name = sys.argv[1]
201
+ check_entry = "--check-entry" in sys.argv
202
+ open_flag = "--open" in sys.argv
203
+
204
+ if open_flag:
205
+ open_app_location(app_name)
206
+ else:
207
+ locate_app_path(app_name, check_entry)
check_env.py CHANGED
@@ -72,13 +72,7 @@ def check_permissions():
72
72
  except Exception as e:
73
73
  return False, f"Yazma izinleri: Hata - {str(e)}"
74
74
 
75
- def check_flet_installation():
76
- """Flet kurulumunu kontrol eder"""
77
- try:
78
- import flet
79
- return True, f"Flet kurulu: v{flet.__version__}"
80
- except ImportError:
81
- return False, "Flet kurulu değil (pip install flet)"
75
+
82
76
 
83
77
  def run_environment_check():
84
78
  """Tüm ortam kontrollerini çalıştırır ve sonuçları yazdırır"""
@@ -93,7 +87,6 @@ def run_environment_check():
93
87
  ("clapp PATH Kontrolü", check_clapp_in_path),
94
88
  ("apps/ Dizini", check_apps_directory),
95
89
  ("Yazma İzinleri", check_permissions),
96
- ("Flet Kurulumu", check_flet_installation),
97
90
  ]
98
91
 
99
92
  passed = 0
@@ -1,49 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Hello Python - Basit Python merhaba dünya uygulaması
4
- clapp paket yöneticisi için örnek uygulama
5
- """
6
-
7
- import sys
8
- import os
9
- from datetime import datetime
10
-
11
- def main():
12
- """Ana fonksiyon"""
13
- print("🐍 Merhaba Python Dünyası!")
14
- print("=" * 40)
15
-
16
- # Uygulama bilgileri
17
- print(f"📦 Uygulama: hello-python")
18
- print(f"🔢 Sürüm: 1.0.0")
19
- print(f"💻 Dil: Python {sys.version.split()[0]}")
20
- print(f"📅 Tarih: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
21
-
22
- # Sistem bilgileri
23
- print(f"\n🖥️ Sistem Bilgileri:")
24
- print(f" İşletim Sistemi: {os.name}")
25
- print(f" Python Sürümü: {sys.version}")
26
- print(f" Çalışma Dizini: {os.getcwd()}")
27
-
28
- # Basit hesaplama
29
- print(f"\n🧮 Basit Hesaplama:")
30
- a, b = 15, 25
31
- print(f" {a} + {b} = {a + b}")
32
- print(f" {a} * {b} = {a * b}")
33
-
34
- # Dosya listesi
35
- print(f"\n📁 Mevcut Dizin İçeriği:")
36
- try:
37
- files = os.listdir('.')
38
- for i, file in enumerate(files[:5], 1):
39
- print(f" {i}. {file}")
40
- if len(files) > 5:
41
- print(f" ... ve {len(files) - 5} dosya daha")
42
- except Exception as e:
43
- print(f" Dosya listesi alınamadı: {e}")
44
-
45
- print(f"\n✅ hello-python uygulaması başarıyla çalıştı!")
46
- print("🎉 clapp paket yöneticisine hoş geldiniz!")
47
-
48
- if __name__ == "__main__":
49
- main()
@@ -1,8 +0,0 @@
1
- {
2
- "name": "hello-python",
3
- "version": "1.0.0",
4
- "language": "python",
5
- "entry": "main.py",
6
- "description": "Basit Python merhaba dünya uygulaması",
7
- "dependencies": []
8
- }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "app_name": "clapp",
3
- "version": "1.0.1",
3
+ "version": "1.0.13",
4
4
  "author": "Melih Burak Memiş",
5
5
  "description": "Basit ve güçlü paket yöneticisi",
6
6
  "source": "https://github.com/melihburak/clapp",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clapp-pm
3
- Version: 1.0.10
3
+ Version: 1.0.13
4
4
  Summary: Lightweight cross-language app manager for Python and Lua
5
5
  Home-page: https://github.com/mburakmmm/clapp
6
6
  Author: Melih Burak Memiş