pyloid 0.23.11__py3-none-any.whl → 0.23.12__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.
pyloid/browser_window.py CHANGED
@@ -356,7 +356,7 @@ class _BrowserWindow:
356
356
  return;
357
357
 
358
358
  self.rpc.pyloid = self.app.pyloid_wrapper
359
- self.rpc.window = self.window_wrapper
359
+ # self.rpc.window = self.window_wrapper
360
360
 
361
361
  # RPC 서버 중복 방지
362
362
  if self.rpc in self.app.rpc_servers:
pyloid/rpc.py CHANGED
@@ -130,7 +130,7 @@ class PyloidRPC:
130
130
  self._app = web.Application()
131
131
 
132
132
  self.pyloid: Optional["Pyloid"] = None
133
- self.window: Optional["BrowserWindow"] = None
133
+ # self.window: Optional["BrowserWindow"] = None
134
134
 
135
135
  # CORS 설정 추가
136
136
  cors = aiohttp_cors.setup(self._app, defaults={
@@ -177,12 +177,12 @@ class PyloidRPC:
177
177
  Examples
178
178
  --------
179
179
  ```python
180
- from pyloid.rpc import PyloidRPC
180
+ from pyloid.rpc import PyloidRPC, RPCContext
181
181
 
182
182
  rpc = PyloidRPC()
183
183
 
184
184
  @rpc.method()
185
- async def add(ctx, a: int, b: int) -> int:
185
+ async def add(ctx: RPCContext, a: int, b: int) -> int:
186
186
  # Access the application and window through ctx.pyloid and ctx.window
187
187
  if ctx.window:
188
188
  print(f"Window title: {ctx.window.title}")
@@ -205,16 +205,13 @@ class PyloidRPC:
205
205
  log.info(f"RPC function registered: {rpc_name}")
206
206
 
207
207
  @wraps(func)
208
- async def wrapper(*args, **kwargs):
209
- # If the function has a 'ctx' parameter and it's not provided, inject the context object
208
+ async def wrapper(*args, _pyloid_window_id=None, **kwargs):
210
209
  if has_ctx_param and 'ctx' not in kwargs:
211
210
  ctx = RPCContext(
212
211
  pyloid=self.pyloid,
213
- window=self.window
212
+ window=self.pyloid.get_window_by_id(_pyloid_window_id)
214
213
  )
215
214
  kwargs['ctx'] = ctx
216
-
217
- # Call the original function
218
215
  return await func(*args, **kwargs)
219
216
  return wrapper
220
217
  return decorator
@@ -325,7 +322,7 @@ class PyloidRPC:
325
322
  if has_ctx_param and isinstance(params, dict) and 'ctx' not in params:
326
323
  ctx = RPCContext(
327
324
  pyloid=self.pyloid,
328
- window=self.window
325
+ window=self.pyloid.get_window_by_id(request_id)
329
326
  )
330
327
  # 딕셔너리 형태로 params 사용할 때
331
328
  params = params.copy() # 원본 params 복사
@@ -335,11 +332,14 @@ class PyloidRPC:
335
332
  if isinstance(params, list):
336
333
  # 리스트 형태로 params 사용할 때 처리 필요
337
334
  if has_ctx_param:
338
- ctx = RPCContext(pyloid=self.pyloid, window=self.window)
339
- result = await func(ctx, *params)
335
+ ctx = RPCContext(pyloid=self.pyloid, window=self.pyloid.get_window_by_id(request_id))
336
+ result = await func(ctx, *params, request_id=request_id)
340
337
  else:
341
- result = await func(*params)
338
+ result = await func(*params, request_id=request_id)
342
339
  else: # isinstance(params, dict)
340
+ internal_window_id = request_id # 기존 request_id에서 이름만 변경
341
+ params = params.copy()
342
+ params['_pyloid_window_id'] = internal_window_id
343
343
  result = await func(**params)
344
344
 
345
345
  # 5. Format Success Response (only for non-notification requests)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyloid
3
- Version: 0.23.11
3
+ Version: 0.23.12
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=YKwMCSOds1QVi9N7EGfY0Z7BEjJn8j6HGqRblZlZClA,235
2
2
  pyloid/api.py,sha256=A61Kmddh8BlpT3LfA6NbPQNzFmD95vQ4WKX53oKsGYU,2419
3
3
  pyloid/autostart.py,sha256=K7DQYl4LHItvPp0bt1V9WwaaZmVSTeGvadkcwG-KKrI,3899
4
- pyloid/browser_window.py,sha256=FJPD9H47yCjtw-v2QjJmm8ENvznspOdKiu72MKBh-Xs,100591
4
+ pyloid/browser_window.py,sha256=4w9xsTzn66YEhRRuVzu4ZXcYGh_-GQL829fYGX6ZXwc,100593
5
5
  pyloid/custom/titlebar.py,sha256=itzK9pJbZMQ7BKca9kdbuHMffurrw15UijR6OU03Xsk,3894
6
6
  pyloid/filewatcher.py,sha256=3M5zWVUf1OhlkWJcDFC8ZA9agO4Q-U8WdgGpy6kaVz0,4601
7
7
  pyloid/js_api/base.py,sha256=XD3sqWYAb1nw6VgY3xXsU4ls5xLGrxpOqmLRJm_vBso,8669
@@ -9,7 +9,7 @@ pyloid/js_api/event_api.py,sha256=w0z1DcmwcmseqfcoZWgsQmFC2iBCgTMVJubTaHeXI1c,95
9
9
  pyloid/js_api/window_api.py,sha256=-isphU3m2wGB5U0yZrSuK_4XiBz2mG45HsjYTUq7Fxs,7348
10
10
  pyloid/monitor.py,sha256=1mXvHm5deohnNlTLcRx4sT4x-stnOIb0dUQnnxN50Uo,28295
11
11
  pyloid/pyloid.py,sha256=r70Xa-SKk0yZsJ_d2Kl-adLy7P2VX1yqxymVBVeNNa8,85762
12
- pyloid/rpc.py,sha256=_T7zDdKgnoUg9pvBaHHn3uG4LW4W7euHp_80QZs8wlk,18111
12
+ pyloid/rpc.py,sha256=gILZkC9_SU58VAad15iRp9S2_efddJjZPJYU0iCk4c8,18342
13
13
  pyloid/serve.py,sha256=wJIBqiLr1-8FvBdV3yybeBtVXsu94FfWYKjHL0eQ68s,1444
14
14
  pyloid/store.py,sha256=p0plJj52hQjjtNMVJhy20eNLXfQ3Qmf7LtGHQk7FiPg,4471
15
15
  pyloid/thread_pool.py,sha256=fKOBb8jMfZn_7crA_fJCno8dObBRZE31EIWaNQ759aw,14616
@@ -17,7 +17,7 @@ pyloid/timer.py,sha256=RqMsChFUd93cxMVgkHWiIKrci0QDTBgJSTULnAtYT8M,8712
17
17
  pyloid/tray.py,sha256=D12opVEc2wc2T4tK9epaN1oOdeziScsIVNM2uCN7C-A,1710
18
18
  pyloid/url_interceptor.py,sha256=AFjPANDELc9-E-1TnVvkNVc-JZBJYf0677dWQ8LDaqw,726
19
19
  pyloid/utils.py,sha256=NqB8W-irXDtTGb74rrJ2swU6tgzU0HSE8lGewrStOKc,5685
20
- pyloid-0.23.11.dist-info/LICENSE,sha256=F96EzotgWhhpnQTW2TcdoqrMDir1jyEo6H915tGQ-QE,11524
21
- pyloid-0.23.11.dist-info/METADATA,sha256=M9MiMVNioWt0DDWUU9FTWJiChcc7YwrVdPoBnpYCtSE,3198
22
- pyloid-0.23.11.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
23
- pyloid-0.23.11.dist-info/RECORD,,
20
+ pyloid-0.23.12.dist-info/LICENSE,sha256=F96EzotgWhhpnQTW2TcdoqrMDir1jyEo6H915tGQ-QE,11524
21
+ pyloid-0.23.12.dist-info/METADATA,sha256=3956skq8Asmg8_yLWVtZohJP25YSmFq0Fl2AmXdiok8,3198
22
+ pyloid-0.23.12.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
23
+ pyloid-0.23.12.dist-info/RECORD,,