pymobiledevice3 7.0.3__py3-none-any.whl → 7.0.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 = '7.0.3'
32
- __version_tuple__ = version_tuple = (7, 0, 3)
31
+ __version__ = version = '7.0.4'
32
+ __version_tuple__ = version_tuple = (7, 0, 4)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -3,13 +3,13 @@ import logging
3
3
  import os
4
4
  import posixpath
5
5
  import shlex
6
- import signal
7
6
  from datetime import datetime
7
+ from enum import IntEnum
8
8
  from pathlib import Path
9
9
  from typing import Annotated, NamedTuple, Optional
10
10
 
11
11
  import typer
12
- from click.exceptions import MissingParameter, UsageError
12
+ from click.exceptions import BadParameter, MissingParameter, UsageError
13
13
  from typer_injector import InjectingTyper
14
14
 
15
15
  from pymobiledevice3.cli.cli_common import ServiceProviderDep, print_json, user_requested_colored_output
@@ -80,22 +80,73 @@ def applist(service_provider: ServiceProviderDep) -> None:
80
80
  print_json(apps)
81
81
 
82
82
 
83
+ class Signals(IntEnum):
84
+ """Platform-independent version of `signal.Signals`, allowing names to be used on Windows."""
85
+
86
+ HUP = 1
87
+ INT = 2
88
+ QUIT = 3
89
+ ILL = 4
90
+ TRAP = 5
91
+ ABRT = 6
92
+ EMT = 7
93
+ FPE = 8
94
+ KILL = 9
95
+ BUS = 10
96
+ SEGV = 11
97
+ SYS = 12
98
+ PIPE = 13
99
+ ALRM = 14
100
+ TERM = 15
101
+ URG = 16
102
+ STOP = 17
103
+ TSTP = 18
104
+ CONT = 19
105
+ CHLD = 20
106
+ TTIN = 21
107
+ TTOU = 22
108
+ IO = 23
109
+ XCPU = 24
110
+ XFSZ = 25
111
+ VTALRM = 26
112
+ PROF = 27
113
+ WINCH = 28
114
+ INFO = 29
115
+ USR1 = 30
116
+ USR2 = 31
117
+
118
+
83
119
  @cli.command("signal")
84
120
  def send_signal(
85
121
  service_provider: ServiceProviderDep,
86
122
  pid: int,
87
- sig: Optional[int] = None,
123
+ sig: Annotated[
124
+ Optional[int],
125
+ typer.Argument(),
126
+ ] = None,
88
127
  signal_name: Annotated[
89
- Optional[signal.Signals],
128
+ Optional[str],
90
129
  typer.Option("--signal-name", "-s"),
91
130
  ] = None,
92
131
  ) -> None:
93
132
  """Send a signal to a PID (choose numeric SIG or --signal-name)."""
94
- if not sig and not signal_name:
95
- raise MissingParameter(param_type="argument|option", param_hint="'SIG|SIGNAL-NAME'")
96
- if sig and signal_name:
133
+ if sig is not None and signal_name is not None:
97
134
  raise UsageError(message="Cannot give SIG and SIGNAL-NAME together")
98
- sig = sig or signal_name.value
135
+
136
+ if signal_name is not None:
137
+ normalized_signal_name = signal_name.upper().removeprefix("SIG")
138
+ try:
139
+ sig = Signals[normalized_signal_name]
140
+ except KeyError:
141
+ raise BadParameter(f"{signal_name!r} is not a valid signal") from None
142
+ elif sig is not None:
143
+ try:
144
+ sig = Signals(sig)
145
+ except ValueError:
146
+ raise BadParameter(f"{sig} is not a valid signal") from None
147
+ else:
148
+ raise MissingParameter(param_type="argument|option", param_hint="'SIG|SIGNAL-NAME'")
149
+
99
150
  with DvtSecureSocketProxyService(lockdown=service_provider) as dvt:
100
151
  ProcessControl(dvt).signal(pid, sig)
101
152
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pymobiledevice3
3
- Version: 7.0.3
3
+ Version: 7.0.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=FMJQ-ik2j9kFLPS15JzDZg62uk1
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=Ogsyro4MUVVSciEtg8kZufL81AHcjuphItnaL0BT10Q,16386
11
- pymobiledevice3/_version.py,sha256=PxlQCxVdZVIvUH2WxIt6XwlEWOz4EwsXEUQF0kgoNSg,704
11
+ pymobiledevice3/_version.py,sha256=3ZvWeFiL6ydSuz1pqpT30LMsP38k9fY7dz7VC5XSZ9U,704
12
12
  pymobiledevice3/bonjour.py,sha256=lmx3uCaiolF59AieftmTKqktNod5ZDyJ06oRZdYKHSE,13681
13
13
  pymobiledevice3/ca.py,sha256=5_Y4F-zDFX_KeDL-M_TRCKKyrRRb9h1lBE8MGTWv91o,10606
14
14
  pymobiledevice3/common.py,sha256=FZzF0BQYV5fCEUPbLo6jbt2Ig9s5YwR8AvX_iR124Ew,329
@@ -57,7 +57,7 @@ pymobiledevice3/cli/developer/fetch_symbols.py,sha256=57HzVyUJPXL_I8EiqWArJ2Fczb
57
57
  pymobiledevice3/cli/developer/simulate_location.py,sha256=IVJQPYKUrQcsdpCxf2D2sgy6Nb3mUOFvK-Og_y5lfDM,1555
58
58
  pymobiledevice3/cli/developer/accessibility/__init__.py,sha256=VpJSdnkEZhUuJXWy08wqgqObXv1PgZ2Ht4qy-560QRk,2271
59
59
  pymobiledevice3/cli/developer/accessibility/settings.py,sha256=QKgQ7XK6LNrlE-1nnWVGL2Mix385Huf-diptgY91apA,1170
60
- pymobiledevice3/cli/developer/dvt/__init__.py,sha256=8msMFeRv9Wcm-OIkb9-iJOSXIOxkQTTxjbsgvJ4cBr8,14710
60
+ pymobiledevice3/cli/developer/dvt/__init__.py,sha256=DrmpUNrx0xGLJcs6npYoWpbymmvNHo7aaT7ml2HBdXk,15730
61
61
  pymobiledevice3/cli/developer/dvt/core_profile_session.py,sha256=Ni6znP0mg-XKLu0aXm8ZZDEKziKokQYMjwbTu2TzFxk,9968
62
62
  pymobiledevice3/cli/developer/dvt/simulate_location.py,sha256=QLjjllbjuM205joFlRXdo7cIjvkFdXJ2f5pKzT9sHOY,1816
63
63
  pymobiledevice3/cli/developer/dvt/sysmon/__init__.py,sha256=PSTruXzQQLGvVuc1j7aKEafXFYgFMOCuNiMjbtDqKrM,2283
@@ -180,9 +180,9 @@ pymobiledevice3/services/web_protocol/switch_to.py,sha256=TCdVrMfsvd18o-vZ0owVrE
180
180
  pymobiledevice3/tunneld/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
181
  pymobiledevice3/tunneld/api.py,sha256=Lwl1OdhPTgX6Zqezy8T4dEcXRfaEPwyGNClioTx3fUc,2338
182
182
  pymobiledevice3/tunneld/server.py,sha256=dMEZAv_X-76l0vSalpq4x0IVkbE-MNGR77T-u1TiHuE,25752
183
- pymobiledevice3-7.0.3.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
184
- pymobiledevice3-7.0.3.dist-info/METADATA,sha256=o_ZVbQ8SVyx-UluPA_DE9T-REKuInbnCT1LtHsRHTl8,17500
185
- pymobiledevice3-7.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
186
- pymobiledevice3-7.0.3.dist-info/entry_points.txt,sha256=jJMlOanHlVwUxcY__JwvKeWPrvBJr_wJyEq4oHIZNKE,66
187
- pymobiledevice3-7.0.3.dist-info/top_level.txt,sha256=MjZoRqcWPOh5banG-BbDOnKEfsS3kCxqV9cv-nzyg2Q,21
188
- pymobiledevice3-7.0.3.dist-info/RECORD,,
183
+ pymobiledevice3-7.0.4.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
184
+ pymobiledevice3-7.0.4.dist-info/METADATA,sha256=aP8inpVUrpvFgvBC9ypHpf5ybn3LoKW2p4dcCVe3cNM,17500
185
+ pymobiledevice3-7.0.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
186
+ pymobiledevice3-7.0.4.dist-info/entry_points.txt,sha256=jJMlOanHlVwUxcY__JwvKeWPrvBJr_wJyEq4oHIZNKE,66
187
+ pymobiledevice3-7.0.4.dist-info/top_level.txt,sha256=MjZoRqcWPOh5banG-BbDOnKEfsS3kCxqV9cv-nzyg2Q,21
188
+ pymobiledevice3-7.0.4.dist-info/RECORD,,