pyloid 0.17.0__tar.gz → 0.17.2__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyloid
3
- Version: 0.17.0
3
+ Version: 0.17.2
4
4
  Summary:
5
5
  Author: aesthetics-of-record
6
6
  Author-email: 111675679+aesthetics-of-record@users.noreply.github.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pyloid"
3
- version = "0.17.0"
3
+ version = "0.17.2"
4
4
  description = ""
5
5
  authors = ["aesthetics-of-record <111675679+aesthetics-of-record@users.noreply.github.com>"]
6
6
  readme = "README.md"
@@ -372,7 +372,17 @@ class BrowserWindow:
372
372
  new QWebChannel(qt.webChannelTransport, function (channel) {
373
373
  window.pyloid = {
374
374
  EventAPI: {
375
+ _listeners: {}, // 콜백 함수들을 저장할 객체
376
+
375
377
  listen: function(eventName, callback) {
378
+ // 이벤트에 대한 콜백 배열이 없다면 생성
379
+ if (!this._listeners[eventName]) {
380
+ this._listeners[eventName] = [];
381
+ }
382
+
383
+ // 콜백 함수 저장
384
+ this._listeners[eventName].push(callback);
385
+
376
386
  document.addEventListener(eventName, function(event) {
377
387
  let eventData;
378
388
  try {
@@ -383,8 +393,16 @@ class BrowserWindow:
383
393
  callback(eventData);
384
394
  });
385
395
  },
396
+
386
397
  unlisten: function(eventName) {
387
- document.removeEventListener(eventName);
398
+ // 해당 이벤트의 모든 리스너 제거
399
+ if (this._listeners[eventName]) {
400
+ this._listeners[eventName].forEach(callback => {
401
+ document.removeEventListener(eventName, callback);
402
+ });
403
+ // 저장된 콜백 제거
404
+ delete this._listeners[eventName];
405
+ }
388
406
  }
389
407
  }
390
408
  };
@@ -434,9 +434,6 @@ class Pyloid(QApplication):
434
434
  app.quit()
435
435
  ```
436
436
  """
437
- # 먼저 스레드 풀 정리
438
- thread_pool = self.get_thread_pool()
439
- thread_pool.clear() # 대기 중인 작업 제거
440
437
 
441
438
  # 윈도우 정리
442
439
  for window in self.windows:
@@ -4,7 +4,7 @@ import platform
4
4
  from typing import Optional
5
5
 
6
6
 
7
- def get_production_path() -> Optional[str]:
7
+ def get_production_path(path: Optional[str] = None) -> Optional[str]:
8
8
  """
9
9
  Returns the path to the resource files in a production environment.
10
10
  If running as a regular Python script, returns None.
@@ -18,7 +18,7 @@ def get_production_path() -> Optional[str]:
18
18
  Examples
19
19
  --------
20
20
  >>> from pyloid.utils import get_production_path
21
- >>> path = get_production_path()
21
+ >>> path = get_production_path("assets/icon.ico")
22
22
  >>> if path:
23
23
  >>> print(f"Production path: {path}")
24
24
  >>> else:
@@ -26,7 +26,7 @@ def get_production_path() -> Optional[str]:
26
26
  """
27
27
  if getattr(sys, 'frozen', False):
28
28
  # If built with PyInstaller
29
- return sys._MEIPASS
29
+ return sys._MEIPASS + "/" + path if path else sys._MEIPASS
30
30
  else:
31
31
  # If running as a regular Python script
32
32
  return None
@@ -73,6 +73,26 @@ def get_platform() -> str:
73
73
  """
74
74
  return platform.system()
75
75
 
76
+ def get_absolute_path(path: str) -> str:
77
+ """
78
+ Returns the absolute path of the given relative path.
79
+
80
+ Parameters
81
+ ----------
82
+ path : str
83
+ The relative path to get the absolute path of.
76
84
 
77
-
85
+ Returns
86
+ -------
87
+ str
88
+ The absolute path of the given relative path.
89
+
90
+ Examples
91
+ --------
92
+ >>> from pyloid.utils import get_absolute_path
93
+ >>> absolute_path = get_absolute_path("assets/icon.ico")
94
+ >>> print(absolute_path)
95
+ C:/Users/aaaap/Documents/pyloid/pyloid/assets/icon.ico
96
+ """
97
+ return os.path.normpath(os.path.abspath(path))
78
98
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes