unrealon 2.0.25__py3-none-any.whl → 2.0.28__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.25
3
+ Version: 2.0.28
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
@@ -128,11 +128,14 @@ unrealon_driver/utils/time.py,sha256=Oxk1eicKeZl8ZWbf7gu1Ll716k6CpXmVj67FHSnPIsA
128
128
  unrealon_installer/__init__.py,sha256=JxA2hKat5E6R6nt-batuAc-2Cr0nO2M0XW0vOFU_xy0,333
129
129
  unrealon_installer/browser_fixes.py,sha256=f67T41e4vfOpDAu1hiDEZ5-BLJ663Bl7oWiHD83rR6E,8081
130
130
  unrealon_installer/core.py,sha256=VvAi7iNBFUrJFUkANQ0gv4tyYCaf-cgtUboXVnrjr50,3826
131
- unrealon_installer/platform.py,sha256=NI6-j6674jLWjF0RFRDwXW01D0OueEhhijjevgmbAVs,3122
131
+ unrealon_installer/platform.py,sha256=FNZKAtU8xQwK-Jh_8aNQchM_RSu9nXd3bd1ytmLTSS0,3948
132
132
  unrealon_installer/templates.py,sha256=PBGfKWlrhtd92h2c68RhtXgICATmHkGObRn6nT0e2Jg,1920
133
- unrealon-2.0.25.dist-info/LICENSE,sha256=eEH8mWZW49YMpl4Sh5MtKqkZ8aVTzKQXiNPEnvL14ns,1070
134
- unrealon-2.0.25.dist-info/METADATA,sha256=nn9R2q5d3nuNOtOlIYN9cXvXF4wLuvXO-qHE4mjo2m4,15718
135
- unrealon-2.0.25.dist-info/WHEEL,sha256=pL8R0wFFS65tNSRnaOVrsw9EOkOqxLrlUPenUYnJKNo,91
136
- unrealon-2.0.25.dist-info/entry_points.txt,sha256=tBJgozewpyuXznEYIsLwfE1s16VRjy3Wizhuyh26zb4,153
137
- unrealon-2.0.25.dist-info/top_level.txt,sha256=qN6Q72fe4_i8mTOhYcO3fhGa3g4dmBgvZOsqmK4j8D8,66
138
- unrealon-2.0.25.dist-info/RECORD,,
133
+ unrealon_installer/batch_templates/quick_run.bat.j2,sha256=B5_vNI7qbds-uHA3rQGx77cle19wKRgerCDHafLaQwc,554
134
+ unrealon_installer/batch_templates/start.bat.j2,sha256=_4M-iKJzcVuh7ORkJWcOE7Yd8X7gyCa5FMKwRhyRW2k,6529
135
+ unrealon_installer/batch_templates/test.bat.j2,sha256=eq_Bj-zN6jUZWLwgzPtYDCr4YbgjseMSIfDPYT5ODFw,1348
136
+ unrealon-2.0.28.dist-info/LICENSE,sha256=eEH8mWZW49YMpl4Sh5MtKqkZ8aVTzKQXiNPEnvL14ns,1070
137
+ unrealon-2.0.28.dist-info/METADATA,sha256=NHZvMXSGUrNUa-EcuEZaRFc9oCaPdsv239huf84KT3E,15718
138
+ unrealon-2.0.28.dist-info/WHEEL,sha256=pL8R0wFFS65tNSRnaOVrsw9EOkOqxLrlUPenUYnJKNo,91
139
+ unrealon-2.0.28.dist-info/entry_points.txt,sha256=tBJgozewpyuXznEYIsLwfE1s16VRjy3Wizhuyh26zb4,153
140
+ unrealon-2.0.28.dist-info/top_level.txt,sha256=qN6Q72fe4_i8mTOhYcO3fhGa3g4dmBgvZOsqmK4j8D8,66
141
+ unrealon-2.0.28.dist-info/RECORD,,
@@ -0,0 +1,25 @@
1
+ @echo off
2
+ REM {{ parser_name }} - Quick Run
3
+ REM Fast execution without menus
4
+
5
+ title {{ parser_name }} Quick Run
6
+
7
+ echo.
8
+ echo {{ parser_name }} - Quick Run Mode
9
+ echo {{ "=" * (parser_name|length + 20) }}
10
+ echo.
11
+
12
+ REM Setup environment
13
+ set PYTHONIOENCODING=utf-8
14
+ set PLAYWRIGHT_BROWSERS_PATH=0
15
+ set PYTHONUNBUFFERED=1
16
+
17
+ REM Apply platform fixes
18
+ python -c "from unrealon_installer.platform import apply_platform_fixes; apply_platform_fixes()" 2>nul
19
+
20
+ echo Starting quick test: 5 requests, 2 concurrent...
21
+ python main.py 5 2
22
+
23
+ echo.
24
+ echo Quick run completed!
25
+ pause
@@ -0,0 +1,261 @@
1
+ @echo off
2
+ REM {{ parser_name }} - Universal Windows Installer
3
+ REM Generated by UnrealOn Universal Installer v2.0.0
4
+
5
+ title {{ parser_name }} Parser
6
+
7
+ echo.
8
+ echo {{ parser_name }} Parser - Windows Edition
9
+ echo {{ "=" * (parser_name|length + 25) }}
10
+ echo UnrealOn Driver-based parser with universal installer
11
+ echo Browsers: {{ browsers_list }}
12
+ echo Proxy Support: {% if has_proxy %}Yes{% else %}No{% endif %}
13
+ echo.
14
+
15
+ REM Setup environment variables
16
+ set PYTHONIOENCODING=utf-8
17
+ set PLAYWRIGHT_BROWSERS_PATH=0
18
+ set PYTHONUNBUFFERED=1
19
+ set UNREALON_PARSER_NAME={{ parser_name }}
20
+
21
+ REM Apply UnrealOn platform fixes - CRITICAL for Windows asyncio
22
+ echo Applying Windows compatibility fixes...
23
+ python -c "
24
+ import sys
25
+ print(f'Python {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro} on {sys.platform}')
26
+ try:
27
+ from unrealon_installer.platform import apply_platform_fixes
28
+ fixes = apply_platform_fixes()
29
+ print(f'Applied fixes: {fixes}')
30
+ except Exception as e:
31
+ print(f'Platform fixes failed: {e}')
32
+ " 2>nul
33
+
34
+ :main_menu
35
+ echo Main Menu:
36
+ echo.
37
+ echo [1] RUN PARSER (Quick Start)
38
+ echo [2] SETUP SYSTEM (First Time Setup)
39
+ echo [3] MANAGE BROWSERS (Install/Fix Browsers)
40
+ echo [4] MANAGE DEPENDENCIES (Install/Update Packages)
41
+ echo [5] SYSTEM STATUS (Check Installation)
42
+ echo [6] TROUBLESHOOTING (Fix Issues)
43
+ echo [7] HELP and INFO
44
+ echo [8] EXIT
45
+ echo.
46
+ set /p choice="Enter your choice (1-8): "
47
+
48
+ if "%choice%"=="1" goto run_parser
49
+ if "%choice%"=="2" goto setup_system
50
+ if "%choice%"=="3" goto manage_browsers
51
+ if "%choice%"=="4" goto manage_dependencies
52
+ if "%choice%"=="5" goto system_status
53
+ if "%choice%"=="6" goto troubleshooting
54
+ if "%choice%"=="7" goto help_info
55
+ if "%choice%"=="8" goto exit_script
56
+ goto main_menu
57
+
58
+ :run_parser
59
+ cls
60
+ echo.
61
+ echo {{ parser_name }} Parser - Run Mode
62
+ echo {{ "=" * (parser_name|length + 25) }}
63
+ echo.
64
+
65
+ echo Choose run mode:
66
+ echo [1] QUICK RUN (default parameters)
67
+ echo [2] TEST RUN (minimal test)
68
+ {% if has_persistent %}echo [3] PERSISTENT mode (continuous){% endif %}
69
+ echo [4] CUSTOM mode (specify arguments)
70
+ echo.
71
+ set /p mode="Enter mode (1-{% if has_persistent %}4{% else %}3{% endif %}): "
72
+
73
+ if "%mode%"=="1" (
74
+ echo Starting default run...
75
+ python main.py
76
+ )
77
+ if "%mode%"=="2" (
78
+ echo Starting test run...
79
+ python main.py 1 1
80
+ )
81
+ {% if has_persistent %}
82
+ if "%mode%"=="3" (
83
+ echo Starting persistent mode...
84
+ python main.py --persistent
85
+ )
86
+ if "%mode%"=="4" (
87
+ set /p args="Enter arguments (e.g. 5 2): "
88
+ python main.py %args%
89
+ )
90
+ {% else %}
91
+ if "%mode%"=="3" (
92
+ set /p args="Enter arguments (e.g. 5 2): "
93
+ python main.py %args%
94
+ )
95
+ {% endif %}
96
+
97
+ echo.
98
+ echo Press any key to return to main menu...
99
+ pause >nul
100
+ goto main_menu
101
+
102
+ :setup_system
103
+ cls
104
+ echo.
105
+ echo System Setup
106
+ echo =============
107
+ echo.
108
+ echo Installing Python dependencies...
109
+ pip install -r requirements.txt
110
+ echo.
111
+ echo Installing browsers...
112
+ playwright install chromium
113
+ echo.
114
+ echo Setup complete!
115
+ echo.
116
+ pause
117
+ goto main_menu
118
+
119
+ :manage_browsers
120
+ cls
121
+ echo.
122
+ echo Browser Management
123
+ echo ==================
124
+ echo.
125
+ echo [1] Install all browsers
126
+ echo [2] Install Chromium only
127
+ echo [3] Install Firefox only
128
+ echo [4] Check browser status
129
+ echo [5] Back to main menu
130
+ echo.
131
+ set /p browser_choice="Enter choice (1-5): "
132
+
133
+ if "%browser_choice%"=="1" playwright install
134
+ if "%browser_choice%"=="2" playwright install chromium
135
+ if "%browser_choice%"=="3" playwright install firefox
136
+ if "%browser_choice%"=="4" (
137
+ echo Checking browser status...
138
+ playwright --version
139
+ python -c "from playwright.sync_api import sync_playwright; print('Browsers OK')" 2>nul || echo "Browser check failed"
140
+ )
141
+ if "%browser_choice%"=="5" goto main_menu
142
+
143
+ echo.
144
+ pause
145
+ goto main_menu
146
+
147
+ :manage_dependencies
148
+ cls
149
+ echo.
150
+ echo Dependency Management
151
+ echo =====================
152
+ echo.
153
+ echo [1] Install/Update all dependencies
154
+ echo [2] Install production dependencies only
155
+ echo [3] Check dependency status
156
+ echo [4] Back to main menu
157
+ echo.
158
+ set /p dep_choice="Enter choice (1-4): "
159
+
160
+ if "%dep_choice%"=="1" (
161
+ pip install -r requirements.txt
162
+ pip install --upgrade unrealon
163
+ )
164
+ if "%dep_choice%"=="2" pip install -r requirements.txt
165
+ if "%dep_choice%"=="3" (
166
+ echo Checking dependencies...
167
+ pip list | findstr unrealon
168
+ python -c "import unrealon_driver; print('UnrealOn Driver:', unrealon_driver.__version__)" 2>nul || echo "UnrealOn Driver not found"
169
+ )
170
+ if "%dep_choice%"=="4" goto main_menu
171
+
172
+ echo.
173
+ pause
174
+ goto main_menu
175
+
176
+ :system_status
177
+ cls
178
+ echo.
179
+ echo System Status Check
180
+ echo ===================
181
+ echo.
182
+
183
+ echo Python Version:
184
+ python --version
185
+
186
+ echo.
187
+ echo Platform Information:
188
+ python -c "from unrealon_installer.platform import get_platform_info; import json; print(json.dumps(get_platform_info(), indent=2))" 2>nul || echo "Platform info not available"
189
+
190
+ echo.
191
+ echo UnrealOn Driver Status:
192
+ python -c "import unrealon_driver; print('Version:', unrealon_driver.__version__)" 2>nul || echo "UnrealOn Driver not installed"
193
+
194
+ echo.
195
+ echo Browser Status:
196
+ playwright --version 2>nul || echo "Playwright not installed"
197
+
198
+ echo.
199
+ echo Dependencies:
200
+ pip list | findstr -i "unrealon playwright requests"
201
+
202
+ echo.
203
+ pause
204
+ goto main_menu
205
+
206
+ :troubleshooting
207
+ cls
208
+ echo.
209
+ echo Troubleshooting Guide
210
+ echo =====================
211
+ echo.
212
+ echo Common issues and solutions:
213
+ echo.
214
+ echo 1. "ModuleNotFoundError: No module named 'unrealon_driver'"
215
+ echo Solution: Run "pip install -r requirements.txt"
216
+ echo.
217
+ echo 2. "Browser not found" errors
218
+ echo Solution: Run "playwright install chromium"
219
+ echo.
220
+ echo 3. "Permission denied" errors
221
+ echo Solution: Run as Administrator
222
+ echo.
223
+ echo 4. Proxy connection issues
224
+ echo Solution: Check proxy configuration in proxy_config.py
225
+ echo.
226
+ echo 5. SSL certificate errors
227
+ echo Solution: Platform fixes are applied automatically
228
+ echo.
229
+ echo Press any key to return to main menu...
230
+ pause >nul
231
+ goto main_menu
232
+
233
+ :help_info
234
+ cls
235
+ echo.
236
+ echo {{ parser_name }} Parser - Help and Information
237
+ echo {{ "=" * (parser_name|length + 25) }}
238
+ echo.
239
+ echo This is a UnrealOn Driver-based parser with the following features:
240
+ echo.
241
+ echo - Multi-concurrent API processing
242
+ echo - Browser automation with Playwright
243
+ echo - Proxy support (if configured)
244
+ echo - Cross-platform compatibility
245
+ {% if has_persistent %}echo - Persistent monitoring mode{% endif %}
246
+ echo - Automatic dependency management
247
+ echo.
248
+ echo Configuration:
249
+ echo {{ config_json }}
250
+ echo.
251
+ echo For more information, visit: https://github.com/unrealon
252
+ echo.
253
+ echo Press any key to return to main menu...
254
+ pause >nul
255
+ goto main_menu
256
+
257
+ :exit_script
258
+ echo.
259
+ echo Thank you for using {{ parser_name }} Parser!
260
+ echo.
261
+ exit /b 0
@@ -0,0 +1,56 @@
1
+ @echo off
2
+ REM {{ parser_name }} - System Test
3
+ REM Comprehensive system and functionality test
4
+
5
+ title {{ parser_name }} System Test
6
+
7
+ echo.
8
+ echo {{ parser_name }} - System Test
9
+ echo {{ "=" * (parser_name|length + 15) }}
10
+ echo.
11
+
12
+ REM Setup environment
13
+ set PYTHONIOENCODING=utf-8
14
+ set PLAYWRIGHT_BROWSERS_PATH=0
15
+ set PYTHONUNBUFFERED=1
16
+
17
+ echo [1/5] Testing Python environment...
18
+ python --version || (
19
+ echo ERROR: Python not found!
20
+ pause
21
+ exit /b 1
22
+ )
23
+
24
+ echo [2/5] Testing UnrealOn Driver...
25
+ python -c "import unrealon_driver; print('UnrealOn Driver version:', unrealon_driver.__version__)" || (
26
+ echo ERROR: UnrealOn Driver not installed!
27
+ echo Run: pip install -r requirements.txt
28
+ pause
29
+ exit /b 1
30
+ )
31
+
32
+ echo [3/5] Testing platform compatibility...
33
+ python -c "from unrealon_installer.platform import get_platform_info; print('Platform OK')" || (
34
+ echo ERROR: Platform compatibility issues!
35
+ pause
36
+ exit /b 1
37
+ )
38
+
39
+ echo [4/5] Testing browser availability...
40
+ playwright --version || (
41
+ echo ERROR: Playwright not installed!
42
+ echo Run: playwright install chromium
43
+ pause
44
+ exit /b 1
45
+ )
46
+
47
+ echo [5/5] Running parser test...
48
+ python main.py 1 1
49
+
50
+ echo.
51
+ echo {{ "=" * (parser_name|length + 15) }}
52
+ echo All tests completed successfully!
53
+ echo {{ parser_name }} is ready to use.
54
+ echo {{ "=" * (parser_name|length + 15) }}
55
+ echo.
56
+ pause
@@ -33,13 +33,26 @@ def _apply_windows_fixes():
33
33
  """Windows-specific fixes."""
34
34
  fixes = []
35
35
 
36
- # Asyncio event loop policy
36
+ # Asyncio event loop policy - CRITICAL for Windows
37
37
  if sys.version_info >= (3, 8):
38
38
  try:
39
- asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy())
40
- fixes.append("ProactorEventLoop")
41
- except Exception:
42
- pass
39
+ # Force ProactorEventLoopPolicy to avoid pipe issues
40
+ policy = asyncio.WindowsProactorEventLoopPolicy()
41
+ asyncio.set_event_loop_policy(policy)
42
+
43
+ # Also set a new event loop to ensure clean state
44
+ loop = asyncio.new_event_loop()
45
+ asyncio.set_event_loop(loop)
46
+
47
+ fixes.append("ProactorEventLoop + new loop")
48
+ except Exception as e:
49
+ logger.warning(f"Failed to set Windows event loop policy: {e}")
50
+ # Fallback: try to at least set the policy
51
+ try:
52
+ asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy())
53
+ fixes.append("ProactorEventLoop (fallback)")
54
+ except Exception:
55
+ pass
43
56
 
44
57
  # Console encoding
45
58
  try:
@@ -50,9 +63,11 @@ def _apply_windows_fixes():
50
63
  except Exception:
51
64
  pass
52
65
 
53
- # Suppress warnings
66
+ # Suppress asyncio warnings that are common on Windows
54
67
  warnings.filterwarnings("ignore", category=ResourceWarning)
55
- fixes.append("ResourceWarning suppression")
68
+ warnings.filterwarnings("ignore", message=".*unclosed transport.*")
69
+ warnings.filterwarnings("ignore", message=".*I/O operation on closed pipe.*")
70
+ fixes.append("Windows warnings suppression")
56
71
 
57
72
  return fixes
58
73