pymobiledevice3 4.27.3__py3-none-any.whl → 4.27.4__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.
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '4.27.3'
32
- __version_tuple__ = version_tuple = (4, 27, 3)
31
+ __version__ = version = '4.27.4'
32
+ __version_tuple__ = version_tuple = (4, 27, 4)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -51,37 +51,38 @@ class TcpForwarderBase:
51
51
  if self.listening_event:
52
52
  self.listening_event.set()
53
53
 
54
- while self.inputs:
55
- # will only perform the socket select on the inputs. the outputs will handled
56
- # as synchronous blocking
57
- readable, writable, exceptional = select.select(self.inputs, [], self.inputs, self.TIMEOUT)
58
- if self.stopped.is_set():
59
- self.logger.debug("Closing since stopped is set")
60
- break
61
-
62
- closed_sockets = set()
63
- for current_sock in readable:
64
- self.logger.debug("Processing %r", current_sock)
65
- if current_sock is self.server_socket:
66
- self._handle_server_connection()
67
- else:
68
- if current_sock not in closed_sockets:
69
- try:
70
- self._handle_data(current_sock, closed_sockets)
71
- except ConnectionResetError:
72
- self.logger.exception("Error when handling data")
73
- self._handle_close_or_error(current_sock)
54
+ try:
55
+ while self.inputs:
56
+ # will only perform the socket select on the inputs. the outputs will handled
57
+ # as synchronous blocking
58
+ readable, writable, exceptional = select.select(self.inputs, [], self.inputs, self.TIMEOUT)
59
+ if self.stopped.is_set():
60
+ self.logger.debug("Closing since stopped is set")
61
+ break
62
+
63
+ closed_sockets = set()
64
+ for current_sock in readable:
65
+ self.logger.debug("Processing %r", current_sock)
66
+ if current_sock is self.server_socket:
67
+ self._handle_server_connection()
74
68
  else:
75
- self.logger.debug("Is closed")
76
-
77
- for current_sock in exceptional:
78
- self.logger.error("Sock failed: %r", current_sock)
79
- self._handle_close_or_error(current_sock)
80
-
81
- self.logger.info("Closing everything")
82
- # on stop, close all currently opened sockets
83
- for current_sock in self.inputs:
84
- current_sock.close()
69
+ if current_sock not in closed_sockets:
70
+ try:
71
+ self._handle_data(current_sock, closed_sockets)
72
+ except ConnectionResetError:
73
+ self.logger.exception("Error when handling data")
74
+ self._handle_close_or_error(current_sock)
75
+ else:
76
+ self.logger.debug("Is closed")
77
+
78
+ for current_sock in exceptional:
79
+ self.logger.error("Sock failed: %r", current_sock)
80
+ self._handle_close_or_error(current_sock)
81
+ finally:
82
+ self.logger.info("Closing everything")
83
+ # on stop, close all currently opened sockets
84
+ for current_sock in self.inputs:
85
+ current_sock.close()
85
86
 
86
87
  def _handle_close_or_error(self, from_sock):
87
88
  """ if an error occurred its time to close the two sockets """
@@ -5,11 +5,16 @@ import logging
5
5
  import os
6
6
  import signal
7
7
  import traceback
8
+ import warnings
8
9
  from contextlib import asynccontextmanager, suppress
9
10
  from typing import Optional, Union
10
11
 
11
12
  import construct
12
- import fastapi
13
+
14
+ with warnings.catch_warnings():
15
+ # Ignore: "Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater."
16
+ warnings.simplefilter('ignore', category=UserWarning)
17
+ import fastapi
13
18
  import uvicorn
14
19
  from construct import StreamError
15
20
  from fastapi import FastAPI
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pymobiledevice3
3
- Version: 4.27.3
3
+ Version: 4.27.4
4
4
  Summary: Pure python3 implementation for working with iDevices (iPhone, etc...)
5
5
  Author-email: doronz88 <doron88@gmail.com>, matan <matan1008@gmail.com>
6
6
  Maintainer-email: doronz88 <doron88@gmail.com>, matan <matan1008@gmail.com>
@@ -8,7 +8,7 @@ misc/understanding_idevice_protocol_layers.md,sha256=8tEqRXWOUPoxOJLZVh7C7H9JGCh
8
8
  misc/usbmux_sniff.sh,sha256=iWtbucOEQ9_UEFXk9x-2VNt48Jg5zrPsnUbZ_LfZxwA,212
9
9
  pymobiledevice3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  pymobiledevice3/__main__.py,sha256=1nv18QRgR_FDq5rE95uhdZGOQ6xkPzNDrcMzQQs8ZZ4,11697
11
- pymobiledevice3/_version.py,sha256=gvttl5othZy1SlxPqZpsRLgrqPNo8jKQwspRAV8AiVY,706
11
+ pymobiledevice3/_version.py,sha256=kZd1Lfu1YfMYyRyfVzYa9lLoPGYCKckLquTqRZzL7hE,706
12
12
  pymobiledevice3/bonjour.py,sha256=-Q_TLBGJ6qW3CX_DgBcz-CXfWSwxWVQ2L64hk6PxnDY,5631
13
13
  pymobiledevice3/ca.py,sha256=mTvWdSjTZw6Eb-22-IZ323GyA1G6CXYmdPedImTjm3A,10542
14
14
  pymobiledevice3/common.py,sha256=-PG6oaUkNFlB3jb7E0finMrX8wqhkS-cuTAfmLvZUmc,329
@@ -19,7 +19,7 @@ pymobiledevice3/lockdown.py,sha256=xejqmSLhJsvM-F4rs4InxtVVtSYYSN3VJXnxd-ijspI,3
19
19
  pymobiledevice3/lockdown_service_provider.py,sha256=l5N72tiuI-2uowk8wu6B7qkjY2UmqQsnhdJqvJy3I8A,1744
20
20
  pymobiledevice3/pair_records.py,sha256=Tr28mlBWPXvOF7vdKBDOuw1rCRwm6RViDTGbikfP77I,6034
21
21
  pymobiledevice3/service_connection.py,sha256=_-PTLFr3krtwEBNHEKXCd_2eOGwMpbsfPbB8AX2uN-g,14861
22
- pymobiledevice3/tcp_forwarder.py,sha256=I1arSMXuIcMpeP6POk4CDDT5BlrIFBtQ4NfljO4Fqy0,8765
22
+ pymobiledevice3/tcp_forwarder.py,sha256=TVtIHn4hFlNIMEYXW9nwdSEhLfHaEHf4jkMsfJXLrTA,8906
23
23
  pymobiledevice3/usbmux.py,sha256=CvJ_NgH77wcfF7ZAQuLGHTIYkuWvhXPYZNQNR7-Jf8A,16820
24
24
  pymobiledevice3/utils.py,sha256=ybli_l8JIG2usFiToAsVYe0Ymg3q0bcpKqmYUF_wpi8,2179
25
25
  pymobiledevice3/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -163,10 +163,10 @@ pymobiledevice3/services/web_protocol/session_protocol.py,sha256=7dJkFyivu554K6I
163
163
  pymobiledevice3/services/web_protocol/switch_to.py,sha256=hDddJUEePbRN-8xlllOeGhnYvE4NEnd8JJIlosLMB9c,2880
164
164
  pymobiledevice3/tunneld/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
165
  pymobiledevice3/tunneld/api.py,sha256=EfGKXEWhsMSB__menPmRmL9R6dpazVJDUy7B3pn05MM,2357
166
- pymobiledevice3/tunneld/server.py,sha256=SvC57AV_R8YQhA0fCwGNUdhfy8TKMFWwL_fp_FmXrBI,22715
167
- pymobiledevice3-4.27.3.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
168
- pymobiledevice3-4.27.3.dist-info/METADATA,sha256=VuuNr2eGYw4ZhZAQy5mi6896XlkvXb37Q9dOXPFLrHs,17450
169
- pymobiledevice3-4.27.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
170
- pymobiledevice3-4.27.3.dist-info/entry_points.txt,sha256=jJMlOanHlVwUxcY__JwvKeWPrvBJr_wJyEq4oHIZNKE,66
171
- pymobiledevice3-4.27.3.dist-info/top_level.txt,sha256=MjZoRqcWPOh5banG-BbDOnKEfsS3kCxqV9cv-nzyg2Q,21
172
- pymobiledevice3-4.27.3.dist-info/RECORD,,
166
+ pymobiledevice3/tunneld/server.py,sha256=IFgRHBEoM-DXUAz83VhGfP1b0oJbnsxgrZix29t_rk4,22919
167
+ pymobiledevice3-4.27.4.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
168
+ pymobiledevice3-4.27.4.dist-info/METADATA,sha256=af7BO2wUPogLF9E6Ex_PWDMKYAkMvCD6XzyymAXg6VU,17450
169
+ pymobiledevice3-4.27.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
170
+ pymobiledevice3-4.27.4.dist-info/entry_points.txt,sha256=jJMlOanHlVwUxcY__JwvKeWPrvBJr_wJyEq4oHIZNKE,66
171
+ pymobiledevice3-4.27.4.dist-info/top_level.txt,sha256=MjZoRqcWPOh5banG-BbDOnKEfsS3kCxqV9cv-nzyg2Q,21
172
+ pymobiledevice3-4.27.4.dist-info/RECORD,,