pyloid 0.17.0__py3-none-any.whl → 0.17.1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
pyloid/browser_window.py CHANGED
@@ -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
  };
pyloid/utils.py CHANGED
@@ -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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyloid
3
- Version: 0.17.0
3
+ Version: 0.17.1
4
4
  Summary:
5
5
  Author: aesthetics-of-record
6
6
  Author-email: 111675679+aesthetics-of-record@users.noreply.github.com
@@ -1,7 +1,7 @@
1
1
  pyloid/__init__.py,sha256=OOPhOKNQVmAM8hnfTeE7lHzxb8LsFNcgegBAvDrA-vY,293
2
2
  pyloid/api.py,sha256=np0pFVUlen_GpN0svY0A3awY_ZjVFk-RpHQZZKFUMuo,2157
3
3
  pyloid/autostart.py,sha256=K7DQYl4LHItvPp0bt1V9WwaaZmVSTeGvadkcwG-KKrI,3899
4
- pyloid/browser_window.py,sha256=YoScOpHQjxZBGZsYZ_TrDjyoyvwhBsc74ySVNzw5g1g,60873
4
+ pyloid/browser_window.py,sha256=BYjzcP6tPg-3Splai-v60-0LZ2gXeyk0QUrcy6rHydA,61946
5
5
  pyloid/custom/titlebar.py,sha256=itzK9pJbZMQ7BKca9kdbuHMffurrw15UijR6OU03Xsk,3894
6
6
  pyloid/filewatcher.py,sha256=3M5zWVUf1OhlkWJcDFC8ZA9agO4Q-U8WdgGpy6kaVz0,4601
7
7
  pyloid/js_api/event_api.py,sha256=_52yyBonqecmMvJpFW7OMNi_jX8Nrteqw_kI6r-DGG0,951
@@ -11,8 +11,8 @@ pyloid/pyloid.py,sha256=klY6-O7rEZZYfhayq9RTwvO9f8KCXWxIo7G8BDFy2hg,44236
11
11
  pyloid/thread_pool.py,sha256=fKOBb8jMfZn_7crA_fJCno8dObBRZE31EIWaNQ759aw,14616
12
12
  pyloid/timer.py,sha256=RqMsChFUd93cxMVgkHWiIKrci0QDTBgJSTULnAtYT8M,8712
13
13
  pyloid/tray.py,sha256=D12opVEc2wc2T4tK9epaN1oOdeziScsIVNM2uCN7C-A,1710
14
- pyloid/utils.py,sha256=VGZE2liY8_AElEqxVe1YLbk3fWlcAevpRc6oOTTgi-U,1927
15
- pyloid-0.17.0.dist-info/LICENSE,sha256=F96EzotgWhhpnQTW2TcdoqrMDir1jyEo6H915tGQ-QE,11524
16
- pyloid-0.17.0.dist-info/METADATA,sha256=iuLvJxvORyzQNX-ZDgkOJ8TP6onbfIcFUc5OQZSuPHs,3054
17
- pyloid-0.17.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
18
- pyloid-0.17.0.dist-info/RECORD,,
14
+ pyloid/utils.py,sha256=XPM2PxO0LQ_eAnba5pKJ3vYsCev91JMFmv13EFuAy5o,2620
15
+ pyloid-0.17.1.dist-info/LICENSE,sha256=F96EzotgWhhpnQTW2TcdoqrMDir1jyEo6H915tGQ-QE,11524
16
+ pyloid-0.17.1.dist-info/METADATA,sha256=zx0zcFBel8qVl0pzxeEey7KhwkzDbk6H1GrPj7uw-1Y,3054
17
+ pyloid-0.17.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
18
+ pyloid-0.17.1.dist-info/RECORD,,