clapp-pm 1.0.8__py3-none-any.whl → 1.0.10__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.
- {clapp_pm-1.0.8.dist-info → clapp_pm-1.0.10.dist-info}/METADATA +1 -1
- {clapp_pm-1.0.8.dist-info → clapp_pm-1.0.10.dist-info}/RECORD +10 -9
- {clapp_pm-1.0.8.dist-info → clapp_pm-1.0.10.dist-info}/top_level.txt +1 -0
- dependency_resolver.py +212 -0
- main.py +1 -1
- version.py +8 -0
- {clapp_pm-1.0.8.data → clapp_pm-1.0.10.data}/data/version.json +0 -0
- {clapp_pm-1.0.8.dist-info → clapp_pm-1.0.10.dist-info}/WHEEL +0 -0
- {clapp_pm-1.0.8.dist-info → clapp_pm-1.0.10.dist-info}/entry_points.txt +0 -0
- {clapp_pm-1.0.8.dist-info → clapp_pm-1.0.10.dist-info}/licenses/LICENSE +0 -0
@@ -2,13 +2,13 @@ check_env.py,sha256=5DJwdALpRe1TLbzF_Zta-zD312J065-pPmsJZ17xRDg,4425
|
|
2
2
|
clapp_core.py,sha256=5tkzt7J4GKSv7Chv5Zoe9N0dv_sWlYGqYxmIn3dhEPY,1764
|
3
3
|
clean_command.py,sha256=nmzitkdNo0Ovgi-tGPUxa9mkAIFzwEzGNaTm82MUdvw,6806
|
4
4
|
cli_commands.py,sha256=7tXrBE0pPkuaFIbsIGXg3RxH7GwisL-Zz2N2oMGe2GQ,12682
|
5
|
-
dependency_resolver.py,sha256=
|
5
|
+
dependency_resolver.py,sha256=OyzWOW45OWTr8BX0gcy5fFbk9qIVBP9JQyMtXrKPmEM,24499
|
6
6
|
doctor_command.py,sha256=jLnvpU9Oglq553bwgF7fhAcUChZTMD2Qle9ZxNHPefc,7680
|
7
7
|
info_command.py,sha256=b74Pl1-x_PSezALx-lS3FkEcVNTF7a9McTKk5XTDhjM,5629
|
8
8
|
install_command.py,sha256=Yj884DDYFANrCISg17-3zRQdwFaobHgvSjtemlUtEfw,9353
|
9
9
|
installer.py,sha256=EkQ5Z1Cq_Z5u_Ssv2Nc8hryI5E97x4D1QVjSqEHe0dE,10619
|
10
10
|
list_command.py,sha256=qbeocvrg2eXRklxbYS3audQhYHGXTlMBk_tNh1cMxd0,8391
|
11
|
-
main.py,sha256=
|
11
|
+
main.py,sha256=qunqz-FMwmnyat5bLP3YpZLkyCcEgL7vuUsY3UTDJpc,14493
|
12
12
|
manifest_schema.py,sha256=IxfKuYgcIhILJrDMOm5vjSJn2jp7hPpUoxtjPMCPvbE,2201
|
13
13
|
manifest_validator.py,sha256=MTI6c_sYfVakQ6aQUu5_qkukTh4H1FcSrT4uRdE6xIg,7990
|
14
14
|
package_registry.py,sha256=Rco15cvz-6lpCEDdCzwGZNCKtvVhlFIsEPy-WFAESMM,4233
|
@@ -18,6 +18,7 @@ publish_command.py,sha256=P05AFbu_mxcc1yAiwShN5Yi9PX1o_7TFXD1mowJcqJE,8589
|
|
18
18
|
remote_registry.py,sha256=rPBIM_ESXUt0br5cARQ4YbzUoTda0G4e1KGzfyYMbpQ,8235
|
19
19
|
uninstall_command.py,sha256=rQYbZ-XMw8Xxw1fmgGdDaBQmgBGqyJ_rTBZkvEV5HV0,7066
|
20
20
|
validate_command.py,sha256=idaujErzrwuZNT6DYCVTVwZqBDEEi1GTxIXAGBgKMKM,7623
|
21
|
+
version.py,sha256=3mTOZkjMG9isYT3AyXG7nNVjVBDSaO2gu1-Je2KQJuY,224
|
21
22
|
version_command.py,sha256=DZuYWtohSeM5PJNYCflBy36_k0vex3tYV2C8ixEA9ho,4259
|
22
23
|
where_command.py,sha256=TcLoXLGmrPSHQuvlceVuuKBsfeadIwz-E0G_5okH14g,6420
|
23
24
|
clapp-packages-repo/README.md,sha256=stsqg4c5qWcUZxRabvbD0DEwzjJEGDGvxpA4bGbzJqg,1688
|
@@ -29,16 +30,16 @@ clapp-packages-repo/packages/test-app/main.py,sha256=rN4Zo9u53bIVjcUlul059knx6v-
|
|
29
30
|
clapp-packages-repo/packages/test-app/manifest.json,sha256=kJe4sjYdPRNZD5hEeca80jj3lxeEWBMJoZ59RW7tiKI,118
|
30
31
|
clapp-packages-repo/packages/test-app2/main.py,sha256=lHkbjTmehFY4VuYYF2dYiVBH7W0oqHHeY0I5W85iPTY,35
|
31
32
|
clapp-packages-repo/packages/test-app2/manifest.json,sha256=vshXJrtRxBc_ISM6E8KT5BSmveMbjWszenlgxgSN86w,121
|
32
|
-
clapp_pm-1.0.
|
33
|
-
clapp_pm-1.0.
|
33
|
+
clapp_pm-1.0.10.data/data/version.json,sha256=S7yOmQU4A-UqpUE3AX0vmjehgSS--fxuVEPG1YcIvDo,238
|
34
|
+
clapp_pm-1.0.10.dist-info/licenses/LICENSE,sha256=_hryv9pKR6udRexceUYuoYCJGmYBz7e-vRuFWmm38UY,1075
|
34
35
|
packages/hello-python/main.py,sha256=Dy-Ov-Vumj8oQYI6qKWU6fIKD0gCB8b7KzAJVrGyLMg,1429
|
35
36
|
packages/hello-python/manifest.json,sha256=fJOVJk_2rwpRJ6IeWMPieklJD3gAR279jvuqRH69s90,179
|
36
37
|
packages/test-app/main.py,sha256=rN4Zo9u53bIVjcUlul059knx6v-2Cd1MFftPS57FIRU,33
|
37
38
|
packages/test-app/manifest.json,sha256=kJe4sjYdPRNZD5hEeca80jj3lxeEWBMJoZ59RW7tiKI,118
|
38
39
|
packages/test-app2/main.py,sha256=lHkbjTmehFY4VuYYF2dYiVBH7W0oqHHeY0I5W85iPTY,35
|
39
40
|
packages/test-app2/manifest.json,sha256=vshXJrtRxBc_ISM6E8KT5BSmveMbjWszenlgxgSN86w,121
|
40
|
-
clapp_pm-1.0.
|
41
|
-
clapp_pm-1.0.
|
42
|
-
clapp_pm-1.0.
|
43
|
-
clapp_pm-1.0.
|
44
|
-
clapp_pm-1.0.
|
41
|
+
clapp_pm-1.0.10.dist-info/METADATA,sha256=JBdG5GeMPPte4lLHMV466BFSC_bKdWgx1G6qLiu6XG4,3980
|
42
|
+
clapp_pm-1.0.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
43
|
+
clapp_pm-1.0.10.dist-info/entry_points.txt,sha256=7j-3pQVpQfnaVzUV83g7zlCA30ePlnXkhHLAGGz9xrQ,36
|
44
|
+
clapp_pm-1.0.10.dist-info/top_level.txt,sha256=ZGaAJz6K3RhsA9lLh56mhzn1yTOEJ9RUwJxBwFEXgYA,359
|
45
|
+
clapp_pm-1.0.10.dist-info/RECORD,,
|
dependency_resolver.py
CHANGED
@@ -492,6 +492,218 @@ def get_enhanced_system_dependency_report():
|
|
492
492
|
|
493
493
|
return report
|
494
494
|
|
495
|
+
# Dependency Command Functions
|
496
|
+
def handle_dependency_check(args):
|
497
|
+
"""Bağımlılık kontrolü komutunu işler"""
|
498
|
+
app_name = args.app_name
|
499
|
+
|
500
|
+
if app_name:
|
501
|
+
# Belirli bir uygulama için bağımlılık kontrolü
|
502
|
+
print(f"🔍 {app_name} bağımlılık kontrolü...")
|
503
|
+
print("=" * 50)
|
504
|
+
|
505
|
+
# Bağımlılık raporu
|
506
|
+
report = get_dependency_report(app_name)
|
507
|
+
print(report)
|
508
|
+
|
509
|
+
# Detaylı çözümleme
|
510
|
+
resolution = resolve_all_dependencies(app_name)
|
511
|
+
if resolution["status"] == "resolved":
|
512
|
+
print("✅ Tüm bağımlılıklar çözümlenmiş!")
|
513
|
+
elif resolution["status"] == "missing_dependencies":
|
514
|
+
print("❌ Eksik bağımlılıklar var!")
|
515
|
+
else:
|
516
|
+
print(f"⚠️ Durum: {resolution['status']}")
|
517
|
+
|
518
|
+
else:
|
519
|
+
# Sistem geneli bağımlılık kontrolü
|
520
|
+
print("🔍 Sistem geneli bağımlılık kontrolü...")
|
521
|
+
print("=" * 50)
|
522
|
+
|
523
|
+
report = get_system_dependency_report()
|
524
|
+
print(report)
|
525
|
+
|
526
|
+
# Gelişmiş sistem raporu
|
527
|
+
enhanced_report = get_enhanced_system_dependency_report()
|
528
|
+
print("\n" + enhanced_report)
|
529
|
+
|
530
|
+
def handle_dependency_install(args):
|
531
|
+
"""Bağımlılık kurulumu komutunu işler"""
|
532
|
+
app_name = args.app_name
|
533
|
+
force = args.force
|
534
|
+
|
535
|
+
if not app_name:
|
536
|
+
print("❌ Uygulama adı belirtilmelidir!")
|
537
|
+
return False, "Uygulama adı eksik"
|
538
|
+
|
539
|
+
apps_dir = get_apps_directory()
|
540
|
+
app_path = os.path.join(apps_dir, app_name)
|
541
|
+
|
542
|
+
if not os.path.exists(app_path):
|
543
|
+
return False, f"Uygulama bulunamadı: {app_name}"
|
544
|
+
|
545
|
+
print(f"🔧 {app_name} bağımlılıkları kuruluyor...")
|
546
|
+
print("=" * 50)
|
547
|
+
|
548
|
+
# Manifest'i oku
|
549
|
+
manifest_path = os.path.join(app_path, "manifest.json")
|
550
|
+
if not os.path.exists(manifest_path):
|
551
|
+
return False, "Manifest dosyası bulunamadı"
|
552
|
+
|
553
|
+
try:
|
554
|
+
with open(manifest_path, 'r', encoding='utf-8') as f:
|
555
|
+
manifest = json.load(f)
|
556
|
+
except Exception as e:
|
557
|
+
return False, f"Manifest okuma hatası: {e}"
|
558
|
+
|
559
|
+
language = manifest.get('language', 'unknown')
|
560
|
+
|
561
|
+
if language == 'python':
|
562
|
+
success, message, missing_packages = check_and_install_python_dependencies(app_path)
|
563
|
+
if success:
|
564
|
+
if missing_packages:
|
565
|
+
print(f"✅ {message}")
|
566
|
+
print(f"📦 Kurulan paketler: {', '.join(missing_packages)}")
|
567
|
+
else:
|
568
|
+
print("✅ Tüm Python bağımlılıkları zaten kurulu")
|
569
|
+
return True, message
|
570
|
+
else:
|
571
|
+
return False, message
|
572
|
+
|
573
|
+
elif language == 'lua':
|
574
|
+
success, message, missing_packages = check_and_install_lua_dependencies(app_path)
|
575
|
+
if success:
|
576
|
+
if missing_packages:
|
577
|
+
print(f"✅ {message}")
|
578
|
+
print(f"🪨 Kurulan paketler: {', '.join(missing_packages)}")
|
579
|
+
else:
|
580
|
+
print("✅ Tüm Lua bağımlılıkları zaten kurulu")
|
581
|
+
return True, message
|
582
|
+
else:
|
583
|
+
return False, message
|
584
|
+
|
585
|
+
else:
|
586
|
+
return False, f"Desteklenmeyen dil: {language}"
|
587
|
+
|
588
|
+
def handle_engine_check(args):
|
589
|
+
"""Engine kontrolü komutunu işler"""
|
590
|
+
app_name = args.app_name
|
591
|
+
|
592
|
+
if app_name:
|
593
|
+
# Belirli bir uygulama için engine kontrolü
|
594
|
+
apps_dir = get_apps_directory()
|
595
|
+
app_path = os.path.join(apps_dir, app_name)
|
596
|
+
|
597
|
+
if not os.path.exists(app_path):
|
598
|
+
return False, f"Uygulama bulunamadı: {app_name}"
|
599
|
+
|
600
|
+
print(f"🔧 {app_name} engine kontrolü...")
|
601
|
+
print("=" * 50)
|
602
|
+
|
603
|
+
available, message, engine_info = check_engine_availability(app_path)
|
604
|
+
|
605
|
+
if available:
|
606
|
+
print(f"✅ {message}")
|
607
|
+
else:
|
608
|
+
print(f"❌ {message}")
|
609
|
+
|
610
|
+
if engine_info:
|
611
|
+
print(f"📊 Engine Bilgileri:")
|
612
|
+
print(f" - Ad: {engine_info.get('name', 'Bilinmiyor')}")
|
613
|
+
print(f" - Dil: {engine_info.get('language', 'Bilinmiyor')}")
|
614
|
+
print(f" - Gerekli: {engine_info.get('required', False)}")
|
615
|
+
print(f" - Mevcut: {engine_info.get('available', False)}")
|
616
|
+
|
617
|
+
return available, message
|
618
|
+
|
619
|
+
else:
|
620
|
+
# Tüm uygulamalar için engine kontrolü
|
621
|
+
print("🔧 Sistem geneli engine kontrolü...")
|
622
|
+
print("=" * 50)
|
623
|
+
|
624
|
+
packages = list_packages()
|
625
|
+
engine_report = {
|
626
|
+
"total_apps": len(packages),
|
627
|
+
"apps_with_engines": 0,
|
628
|
+
"apps_with_missing_engines": 0,
|
629
|
+
"engine_details": []
|
630
|
+
}
|
631
|
+
|
632
|
+
for package in packages:
|
633
|
+
app_name = package['name']
|
634
|
+
apps_dir = get_apps_directory()
|
635
|
+
app_path = os.path.join(apps_dir, app_name)
|
636
|
+
|
637
|
+
available, message, engine_info = check_engine_availability(app_path)
|
638
|
+
|
639
|
+
if engine_info:
|
640
|
+
engine_report["apps_with_engines"] += 1
|
641
|
+
if not available:
|
642
|
+
engine_report["apps_with_missing_engines"] += 1
|
643
|
+
|
644
|
+
engine_report["engine_details"].append({
|
645
|
+
"app": app_name,
|
646
|
+
"engine": engine_info.get('name', 'Bilinmiyor'),
|
647
|
+
"language": engine_info.get('language', 'Bilinmiyor'),
|
648
|
+
"available": available,
|
649
|
+
"message": message
|
650
|
+
})
|
651
|
+
|
652
|
+
# Raporu yazdır
|
653
|
+
print(f"📊 Engine Raporu:")
|
654
|
+
print(f" - Toplam Uygulama: {engine_report['total_apps']}")
|
655
|
+
print(f" - Engine Gereksinimi: {engine_report['apps_with_engines']}")
|
656
|
+
print(f" - Eksik Engine: {engine_report['apps_with_missing_engines']}")
|
657
|
+
print()
|
658
|
+
|
659
|
+
if engine_report["engine_details"]:
|
660
|
+
print("🔍 Detaylı Engine Durumu:")
|
661
|
+
for detail in engine_report["engine_details"]:
|
662
|
+
status = "✅" if detail["available"] else "❌"
|
663
|
+
print(f" {status} {detail['app']}: {detail['engine']} ({detail['language']})")
|
664
|
+
|
665
|
+
return True, "Engine kontrolü tamamlandı"
|
666
|
+
|
667
|
+
def handle_dependency_tree(args):
|
668
|
+
"""Bağımlılık ağacı komutunu işler"""
|
669
|
+
app_name = args.app_name
|
670
|
+
|
671
|
+
if not app_name:
|
672
|
+
print("❌ Uygulama adı belirtilmelidir!")
|
673
|
+
return False, "Uygulama adı eksik"
|
674
|
+
|
675
|
+
print(f"🌳 {app_name} bağımlılık ağacı...")
|
676
|
+
print("=" * 50)
|
677
|
+
|
678
|
+
resolution = resolve_all_dependencies(app_name)
|
679
|
+
|
680
|
+
if resolution["status"] == "error":
|
681
|
+
print(f"❌ Hata: {resolution.get('dependency_tree', {}).get('error', 'Bilinmeyen hata')}")
|
682
|
+
return False, "Bağımlılık ağacı oluşturulamadı"
|
683
|
+
|
684
|
+
tree = resolution["dependency_tree"]
|
685
|
+
|
686
|
+
def print_tree(node, level=0):
|
687
|
+
indent = " " * level
|
688
|
+
status = "✅" if node.get("missing_dependencies") == [] else "❌"
|
689
|
+
print(f"{indent}{status} {node['name']} (v{node['version']}) [{node['language']}]")
|
690
|
+
|
691
|
+
if node.get("missing_dependencies"):
|
692
|
+
for missing in node["missing_dependencies"]:
|
693
|
+
print(f"{indent} ❌ Eksik: {missing}")
|
694
|
+
|
695
|
+
for dep in node.get("dependencies", []):
|
696
|
+
print_tree(dep, level + 1)
|
697
|
+
|
698
|
+
print_tree(tree)
|
699
|
+
|
700
|
+
print(f"\n📊 Özet:")
|
701
|
+
print(f" - Durum: {resolution['status']}")
|
702
|
+
print(f" - Toplam Bağımlılık: {len(resolution['all_dependencies'])}")
|
703
|
+
print(f" - Eksik: {len(resolution['missing_dependencies'])}")
|
704
|
+
|
705
|
+
return True, "Bağımlılık ağacı gösterildi"
|
706
|
+
|
495
707
|
if __name__ == "__main__":
|
496
708
|
# Test için örnek kullanım
|
497
709
|
print("Sistem bağımlılık raporu:")
|
main.py
CHANGED
@@ -39,7 +39,7 @@ from uninstall_command import uninstall_app
|
|
39
39
|
from list_command import list_apps as list_apps_new
|
40
40
|
|
41
41
|
# Dependency yönetimi komutları
|
42
|
-
from
|
42
|
+
from dependency_resolver import (
|
43
43
|
handle_dependency_check,
|
44
44
|
handle_dependency_install,
|
45
45
|
handle_engine_check,
|
version.py
ADDED
File without changes
|
File without changes
|
File without changes
|
File without changes
|