unrealon 2.0.14__py3-none-any.whl → 2.0.16__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unrealon
3
- Version: 2.0.14
3
+ Version: 2.0.16
4
4
  Summary: Enterprise-grade web scraping platform with AI-powered automation and real-time orchestration capabilities
5
5
  Author-email: UnrealOn Team <team@unrealon.com>
6
6
  License: MIT
@@ -33,6 +33,7 @@ Requires-Dist: aiohttp>=3.8.0
33
33
  Requires-Dist: httpx>=0.23.0
34
34
  Requires-Dist: beautifulsoup4>=4.13.5
35
35
  Requires-Dist: pydantic-yaml>=1.6.0
36
+ Requires-Dist: jinja2>=3.1.0
36
37
  Requires-Dist: rich>=13.0.0
37
38
  Requires-Dist: pyyaml>=6.0
38
39
  Requires-Dist: python-socketio>=5.0
@@ -127,12 +127,12 @@ unrealon_driver/utils/__init__.py,sha256=2Sz3eats5q4O2fDmefDuJt8M_zkN6xrS-9xXntW
127
127
  unrealon_driver/utils/time.py,sha256=Oxk1eicKeZl8ZWbf7gu1Ll716k6CpXmVj67FHSnPIsA,184
128
128
  unrealon_installer/__init__.py,sha256=JxA2hKat5E6R6nt-batuAc-2Cr0nO2M0XW0vOFU_xy0,333
129
129
  unrealon_installer/browser_fixes.py,sha256=I09aEMWwvN8-SbGJqJQHcnvsR4_JmjoiRKoyIqft4Rc,7754
130
- unrealon_installer/core.py,sha256=Ib_10WwXBixHw_jozY_JsAG2eq6dmDCxT0Ucoy_WKVU,5259
130
+ unrealon_installer/core.py,sha256=2BDDTrKthFtSqdRq0gSLkzN6lpMC9ER024wFMb1E5VQ,4584
131
131
  unrealon_installer/platform.py,sha256=NI6-j6674jLWjF0RFRDwXW01D0OueEhhijjevgmbAVs,3122
132
132
  unrealon_installer/templates.py,sha256=jU3Fznp_VfZedfWNutVzepGUv2QYI2Q4LM_j8H38CrU,1896
133
- unrealon-2.0.14.dist-info/LICENSE,sha256=eEH8mWZW49YMpl4Sh5MtKqkZ8aVTzKQXiNPEnvL14ns,1070
134
- unrealon-2.0.14.dist-info/METADATA,sha256=HIr3X3TBCqGy3nZ0-VVvAZSqHrAFVIngrg4x0RcYGJI,15689
135
- unrealon-2.0.14.dist-info/WHEEL,sha256=pL8R0wFFS65tNSRnaOVrsw9EOkOqxLrlUPenUYnJKNo,91
136
- unrealon-2.0.14.dist-info/entry_points.txt,sha256=k0qM-eotpajkKUq-almJmxj9afhXprZ6IkvQkSdcKhI,104
137
- unrealon-2.0.14.dist-info/top_level.txt,sha256=qN6Q72fe4_i8mTOhYcO3fhGa3g4dmBgvZOsqmK4j8D8,66
138
- unrealon-2.0.14.dist-info/RECORD,,
133
+ unrealon-2.0.16.dist-info/LICENSE,sha256=eEH8mWZW49YMpl4Sh5MtKqkZ8aVTzKQXiNPEnvL14ns,1070
134
+ unrealon-2.0.16.dist-info/METADATA,sha256=-z8xcBDIOXBoV1_iBWpMIo8CZx9_R0JlTlF73etZS24,15718
135
+ unrealon-2.0.16.dist-info/WHEEL,sha256=pL8R0wFFS65tNSRnaOVrsw9EOkOqxLrlUPenUYnJKNo,91
136
+ unrealon-2.0.16.dist-info/entry_points.txt,sha256=tBJgozewpyuXznEYIsLwfE1s16VRjy3Wizhuyh26zb4,153
137
+ unrealon-2.0.16.dist-info/top_level.txt,sha256=qN6Q72fe4_i8mTOhYcO3fhGa3g4dmBgvZOsqmK4j8D8,66
138
+ unrealon-2.0.16.dist-info/RECORD,,
@@ -1,3 +1,4 @@
1
1
  [console_scripts]
2
2
  unrealon = unrealon_driver.cli:main
3
3
  unrealon-browser = unrealon_browser.cli.main:main
4
+ unrealon-installer = unrealon_installer.cli:main
@@ -14,21 +14,22 @@ from .templates import TemplateEngine
14
14
  from .browser_fixes import fix_browsers, diagnose_browsers
15
15
 
16
16
 
17
- def install_parser(parser_name: str, parser_path: str = ".") -> bool:
17
+ def install_parser(parser_path: str = ".") -> bool:
18
18
  """
19
19
  Install everything for a UnrealOn parser.
20
20
 
21
21
  Args:
22
- parser_name: Name like "upbit_concurrent"
23
22
  parser_path: Path to parser directory
24
23
 
25
24
  Returns:
26
25
  True if success, False if failed
27
26
  """
27
+ parser_dir = Path(parser_path).resolve()
28
+ parser_name = parser_dir.name # Auto-detect from directory name
29
+
28
30
  print(f"🚀 Installing {parser_name}")
29
31
  print("=" * 40)
30
32
 
31
- parser_dir = Path(parser_path).resolve()
32
33
  os.chdir(parser_dir)
33
34
 
34
35
  # 1. Apply platform fixes
@@ -46,74 +47,51 @@ def install_parser(parser_name: str, parser_path: str = ".") -> bool:
46
47
 
47
48
  print(f"✅ Python {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}")
48
49
 
49
- # 3. Install dependencies
50
- if not _install_dependencies():
51
- return False
52
-
53
- # 4. Install browsers
54
- if not _install_browsers():
55
- return False
50
+ # 3. Check if basic tools are available (optional)
51
+ _check_tools_availability()
56
52
 
57
- # 5. Create batch files (Windows only)
53
+ # 4. Create batch files (Windows only)
58
54
  if platform.system() == "Windows":
59
55
  _create_batch_files(parser_name)
60
56
 
61
- print(f"\n✅ {parser_name} installed successfully!")
62
- print("Run: python main.py 5 2")
57
+ print(f"\n✅ {parser_name} setup completed!")
58
+ print("\n📋 Next steps:")
59
+ print("1. Install dependencies: pip install -r requirements.txt")
60
+ print("2. Install browsers: playwright install chromium")
61
+ print("3. Run parser: python main.py 5 2")
63
62
  if platform.system() == "Windows":
64
- print("Or: START.bat")
63
+ print(" Or use: START.bat (includes setup menu)")
65
64
 
66
65
  return True
67
66
 
68
67
 
69
- def _install_dependencies() -> bool:
70
- """Install Python dependencies."""
71
- print("📦 Installing dependencies...")
68
+ def _check_tools_availability():
69
+ """Check if basic tools are available (non-blocking)."""
70
+ print("🔍 Checking available tools...")
72
71
 
72
+ # Check pip
73
73
  try:
74
- # Check if requirements.txt exists
75
- if Path("requirements.txt").exists():
76
- subprocess.run([sys.executable, "-m", "pip", "install", "-r", "requirements.txt"],
77
- check=True, capture_output=True)
78
- else:
79
- # Fallback to basic packages
80
- subprocess.run([sys.executable, "-m", "pip", "install", "unrealon", "playwright"],
81
- check=True, capture_output=True)
82
-
83
- print(" Dependencies installed")
84
- return True
85
- except subprocess.CalledProcessError as e:
86
- print(f"❌ Failed to install dependencies: {e}")
87
- return False
88
-
89
-
90
- def _install_browsers() -> bool:
91
- """Install Playwright browsers with smart fixing."""
92
- print("🌐 Installing browsers...")
93
-
94
- # First, diagnose any issues
95
- issues = diagnose_browsers()
96
-
97
- # If there are issues, try to fix them
98
- if not all(issues.values()):
99
- print("🔧 Detected browser issues, applying fixes...")
100
- if fix_browsers(force_reinstall=False):
101
- print("✅ Browser issues fixed")
102
- return True
103
- else:
104
- print("❌ Could not fix browser issues")
105
- return False
106
-
107
- # If no issues, just install normally
74
+ subprocess.run([sys.executable, "-m", "pip", "--version"],
75
+ check=True, capture_output=True)
76
+ print(" pip available")
77
+ except:
78
+ print("⚠️ pip not available")
79
+
80
+ # Check if requirements.txt exists
81
+ if Path("requirements.txt").exists():
82
+ print("✅ requirements.txt found")
83
+ print("💡 To install dependencies: pip install -r requirements.txt")
84
+ else:
85
+ print("⚠️ requirements.txt not found")
86
+
87
+ # Check playwright
108
88
  try:
109
- subprocess.run([sys.executable, "-m", "playwright", "install", "chromium"],
89
+ subprocess.run([sys.executable, "-c", "import playwright"],
110
90
  check=True, capture_output=True)
111
- print("✅ Browsers installed")
112
- return True
113
- except subprocess.CalledProcessError as e:
114
- print(f"⚠️ Normal install failed, trying fix: {e}")
115
- # Try fixing as fallback
116
- return fix_browsers(force_reinstall=True)
91
+ print("✅ playwright available")
92
+ except:
93
+ print("⚠️ playwright not available")
94
+ print("💡 To install: pip install playwright && playwright install chromium")
117
95
 
118
96
 
119
97
  def _create_batch_files(parser_name: str):