Skip to content

Commit 9f9bf8b

Browse files
committed
[Optimization] moved from slower platform to sys
1 parent ba33619 commit 9f9bf8b

9 files changed

Lines changed: 29 additions & 37 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ classifiers = [
4848
[project.urls]
4949
Homepage = "https://pytron-kit.github.io/"
5050
Repository = "https://github.com/Ghua8088/pytron-kit"
51-
51+
asyncio_mode = "auto"
5252
[tool.pytest.ini_options]
5353
testpaths = ["tests"]
5454
addopts = "-v -ra --tb=short"

pytron/apputils/window_mixin.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -209,18 +209,15 @@ def register_protocol(self, scheme="pytron"):
209209

210210
if not impl:
211211
# Fallback detection for App level calls before windows are created
212-
import platform
213-
214-
sys_plat = platform.system()
215-
if sys_plat == "Windows":
212+
if sys.platform == "win32":
216213
from ..platforms.windows import WindowsImplementation
217214

218215
impl = WindowsImplementation()
219-
elif sys_plat == "Linux":
216+
elif sys.platform == "linux":
220217
from ..platforms.linux import LinuxImplementation
221218

222219
impl = LinuxImplementation()
223-
elif sys_plat == "Darwin":
220+
elif sys.platform == "darwin":
224221
from ..platforms.darwin import DarwinImplementation
225222

226223
impl = DarwinImplementation()

pytron/commands/doctor.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import sys
33
import shutil
44
import subprocess
5-
import platform
65
import argparse
76
from pathlib import Path
87
from ..console import console, print_rule
@@ -44,7 +43,7 @@ def cmd_doctor(args: argparse.Namespace) -> int:
4443
console.print(f"[bold]Python Environment[/bold]")
4544
console.print(f" [success]✓[/success] Python: {py_ver} ({py_arch})")
4645
console.print(
47-
f" [success]✓[/success] Platform: {platform.system()} {platform.release()}"
46+
f" [success]✓[/success] Platform: {sys.platform}"
4847
)
4948

5049
# Check if in VENV
@@ -115,7 +114,7 @@ def cmd_doctor(args: argparse.Namespace) -> int:
115114
f" [error]✗[/error] PyInstaller: Not found (Required for 'pytron package')"
116115
)
117116

118-
if platform.system() == "Windows":
117+
if sys.platform == "win32":
119118
# Check NSIS
120119
from ..pack.installers import find_makensis
121120

pytron/commands/login.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import argparse
2-
import keyring
32
import time
43
import webbrowser
54
import requests
@@ -81,6 +80,7 @@ def cmd_login(args: argparse.Namespace) -> int:
8180
else "User"
8281
)
8382

83+
import keyring
8484
keyring.set_password(SERVICE_NAME, ACCOUNT_NAME, token)
8585
log(f"Successfully logged in as @{username}!", style="success")
8686
return 0
@@ -104,12 +104,10 @@ def cmd_login(args: argparse.Namespace) -> int:
104104

105105
def cmd_logout(args: argparse.Namespace) -> int:
106106
try:
107+
import keyring
107108
keyring.delete_password(SERVICE_NAME, ACCOUNT_NAME)
108109
log("Logged out. GitHub token removed from keyring.", style="success")
109110
return 0
110-
except keyring.errors.PasswordDeleteError:
111-
log("Already logged out.", style="warning")
112-
return 0
113111
except Exception as e:
114112
log(f"Logout failed: {e}", style="error")
115113
return 1
@@ -125,6 +123,7 @@ def get_github_token() -> str | None:
125123

126124
# Priority 2: Keyring
127125
try:
126+
import keyring
128127
return keyring.get_password(SERVICE_NAME, ACCOUNT_NAME)
129128
except Exception:
130129
return None

pytron/engines/chrome/engine.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import json
44
import logging
55
import ctypes
6-
import platform
76
import subprocess
87
import urllib.parse
98
from ...webview import Webview
@@ -112,7 +111,7 @@ def webview_return(self, w, seq, status, result):
112111

113112
def webview_get_window(self, w):
114113
# On Windows, returning the real HWND allows native features (Taskbar, Menus) to work.
115-
if platform.system() == "Windows":
114+
if sys.platform == "win32":
116115
return self.real_hwnd
117116
return 0
118117

@@ -319,22 +318,22 @@ def __init__(self, config):
319318

320319
# --- Platform Helpers (All Platforms) ---
321320
self._platform = None
322-
current_sys = platform.system()
321+
current_sys = sys.platform
323322
try:
324-
if current_sys == "Windows":
323+
if current_sys == "win32":
325324
from ...platforms.windows import WindowsImplementation
326325

327326
self._platform = WindowsImplementation()
328-
elif current_sys == "Darwin":
327+
elif current_sys == "darwin":
329328
from ...platforms.darwin import DarwinImplementation
330329

331330
self._platform = DarwinImplementation()
332-
elif current_sys == "Linux":
331+
elif current_sys == "linux":
333332
from ...platforms.linux import LinuxImplementation
334333

335334
self._platform = LinuxImplementation()
336335
except Exception as e:
337-
self.logger.warning(f"Failed to load {current_sys} Platform helpers: {e}")
336+
self.logger.warning(f"Failed to load platform helpers: {e}")
338337

339338
# 7. JS Init Shim (With Proxy for Dynamic Methods)
340339
init_js = f"""

pytron/engines/chrome/forge.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import zipfile
33
import shutil
44
import requests
5-
import platform
5+
import sys
66
import logging
77
from ...exceptions import ForgeError
88

@@ -13,10 +13,10 @@
1313

1414

1515
def get_electron_url():
16-
system = platform.system().lower()
16+
system = sys.platform # 'win32', 'darwin', or 'linux'
1717
arch = "x64" # Default to x64 for now
1818

19-
if system == "windows":
19+
if system == "win32":
2020
return f"https://github.com/electron/electron/releases/download/v{ELECTRON_VERSION}/electron-v{ELECTRON_VERSION}-win32-{arch}.zip"
2121
elif system == "darwin":
2222
return f"https://github.com/electron/electron/releases/download/v{ELECTRON_VERSION}/electron-v{ELECTRON_VERSION}-darwin-{arch}.zip"
@@ -143,7 +143,7 @@ def __init__(self, target_dir=None):
143143

144144
def provision(self):
145145
"""Ensures the Chrome engine is installed and ready."""
146-
exe_name = "electron.exe" if platform.system() == "Windows" else "electron"
146+
exe_name = "electron.exe" if sys.platform == "win32" else "electron"
147147
exe_path = os.path.join(self.target_dir, exe_name)
148148

149149
if not os.path.exists(exe_path):

pytron/engines/servo/engine.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import json
44
import logging
55
import ctypes
6-
import platform
76
import subprocess
87
import urllib.parse
98
from ...webview import Webview
@@ -112,7 +111,7 @@ def webview_return(self, w, seq, status, result):
112111

113112
def webview_get_window(self, w):
114113
# On Windows, returning the real HWND allows native features (Taskbar, Menus) to work.
115-
if platform.system() == "Windows":
114+
if sys.platform == "win32":
116115
return self.real_hwnd
117116
return 0
118117

@@ -319,22 +318,22 @@ def __init__(self, config):
319318

320319
# --- Platform Helpers (All Platforms) ---
321320
self._platform = None
322-
current_sys = platform.system()
321+
current_sys = sys.platform
323322
try:
324-
if current_sys == "Windows":
323+
if current_sys == "win32":
325324
from ...platforms.windows import WindowsImplementation
326325

327326
self._platform = WindowsImplementation()
328-
elif current_sys == "Darwin":
327+
elif current_sys == "darwin":
329328
from ...platforms.darwin import DarwinImplementation
330329

331330
self._platform = DarwinImplementation()
332-
elif current_sys == "Linux":
331+
elif current_sys == "linux":
333332
from ...platforms.linux import LinuxImplementation
334333

335334
self._platform = LinuxImplementation()
336335
except Exception as e:
337-
self.logger.warning(f"Failed to load {current_sys} Platform helpers: {e}")
336+
self.logger.warning(f"Failed to load platform helpers: {e}")
338337

339338
# 7. JS Init Shim (With Proxy for Dynamic Methods)
340339
init_js = f"""

pytron/engines/servo/forge.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import os
22
import sys
33
import subprocess
4-
import platform
54
import logging
65
import shutil
76

@@ -22,7 +21,7 @@ def __init__(self, target_dir=None):
2221

2322
def provision(self):
2423
"""Ensures the Servo engine (miniservo rust binary) is compiled and ready."""
25-
exe_name = "miniservo.exe" if platform.system() == "Windows" else "miniservo"
24+
exe_name = "miniservo.exe" if sys.platform == "win32" else "miniservo"
2625
exe_path = os.path.join(self.target_dir, exe_name)
2726

2827
if not os.path.exists(exe_path):
@@ -53,7 +52,7 @@ def provision(self):
5352

5453
# Copy the binary to target_dir
5554
target_debug_exe = (
56-
"servo-shell.exe" if platform.system() == "Windows" else "servo-shell"
55+
"servo-shell.exe" if sys.platform == "win32" else "servo-shell"
5756
)
5857
compiled_bin = os.path.join(
5958
shell_dir, "target", "release", target_debug_exe

pytron/inspector.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import base64
44
import time
55
import os
6-
import platform
6+
import sys
77
from collections import deque
88
from .serializer import pytron_serialize
99

@@ -88,7 +88,7 @@ def get_stats(self):
8888
"uptime": round(time.time() - self.start_time, 1),
8989
"pid": os.getpid(),
9090
"threads": self._proc.num_threads(),
91-
"platform": f"{platform.system()} {platform.release()}",
91+
"platform": sys.platform,
9292
}
9393
except Exception:
9494
return {

0 commit comments

Comments
 (0)