pywinpty 3.0.2__tar.gz → 3.0.3rc0__tar.gz

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.
Files changed (30) hide show
  1. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/.github/workflows/linux_sdist.yml +2 -8
  2. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/.github/workflows/windows_build.yml +1 -1
  3. pywinpty-3.0.3rc0/.github/workflows/windows_build_arm.yml +88 -0
  4. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/.github/workflows/windows_release.yml +2 -8
  5. pywinpty-3.0.3rc0/.github/workflows/windows_release_arm.yml +58 -0
  6. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/Cargo.lock +74 -65
  7. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/Cargo.toml +3 -3
  8. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/PKG-INFO +3 -1
  9. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/pyproject.toml +2 -0
  10. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/winpty/ptyprocess.py +2 -4
  11. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/winpty/tests/test_pty.py +5 -2
  12. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/winpty/tests/test_ptyprocess.py +6 -1
  13. pywinpty-3.0.3rc0/winpty/winpty.pyi +42 -0
  14. pywinpty-3.0.2/winpty/winpty.pyi +0 -58
  15. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/.github/FUNDING.yml +0 -0
  16. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/.github/dependabot.yml +0 -0
  17. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/.github/scripts/copy_winpty.sh +0 -0
  18. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/.gitignore +0 -0
  19. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/CHANGELOG.md +0 -0
  20. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/LICENSE.txt +0 -0
  21. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/MANIFEST.in +0 -0
  22. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/README.md +0 -0
  23. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/RELEASE.md +0 -0
  24. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/build.rs +0 -0
  25. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/nuget.config +0 -0
  26. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/runtests.py +0 -0
  27. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/src/lib.rs +0 -0
  28. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/winpty/__init__.py +0 -0
  29. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/winpty/enums.py +0 -0
  30. {pywinpty-3.0.2 → pywinpty-3.0.3rc0}/winpty/tests/__init__.py +0 -0
@@ -18,14 +18,8 @@ jobs:
18
18
  PYTHON_VERSION: ["3.11"]
19
19
  steps:
20
20
  - name: Checkout branch
21
- uses: actions/checkout@v5
22
- - name: Install latest Rust stable
23
- uses: actions-rs/toolchain@v1
24
- with:
25
- toolchain: stable
26
- target: x86_64-pc-windows-msvc
27
- override: true
28
- components: rustfmt, clippy
21
+ uses: actions/checkout@v6
22
+
29
23
  - name: Install miniconda
30
24
  uses: conda-incubator/setup-miniconda@v3
31
25
  with:
@@ -23,7 +23,7 @@ jobs:
23
23
  PYTHON_VERSION: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
24
24
  steps:
25
25
  - name: Checkout branch
26
- uses: actions/checkout@v5
26
+ uses: actions/checkout@v6
27
27
  - uses: nuget/setup-nuget@v2
28
28
  with:
29
29
  nuget-version: '5.x'
@@ -0,0 +1,88 @@
1
+ name: Windows arm64 tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+ jobs:
11
+ windows:
12
+ name: Windows Py${{ matrix.PYTHON_VERSION }} arm64
13
+ runs-on: windows-11-arm
14
+ timeout-minutes: 10
15
+ env:
16
+ PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
17
+ RUNNER_OS: "windows"
18
+ PYWINPTY_BLOCK: "1"
19
+ CI_RUNNING: "1"
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ PYTHON_VERSION: ["3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
24
+ steps:
25
+ - name: Checkout branch
26
+ uses: actions/checkout@v6
27
+ - uses: nuget/setup-nuget@v2
28
+ with:
29
+ nuget-version: '5.x'
30
+ - name: Remove free-threaded suffix from version
31
+ env:
32
+ PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
33
+ shell: bash -l {0}
34
+ run: |
35
+ PYTHON_VERSION_NONSUFFIX=$PYTHON_VERSION
36
+ PYTHON_PKG="pythonarm64"
37
+ if [[ $PYTHON_VERSION = *t ]]; then
38
+ PYTHON_VERSION_NONSUFFIX=${PYTHON_VERSION//t}
39
+ echo "PYTHON_VERSION_NONSUFFIX=$PYTHON_VERSION_NONSUFFIX" >> $GITHUB_ENV
40
+ PYTHON_PKG="pythonarm64-freethreaded"
41
+ echo "PYTHON_PKG=$PYTHON_PKG" >> $GITHUB_ENV
42
+ fi
43
+ echo "PYTHON_PKG=$PYTHON_PKG" >> $GITHUB_ENV
44
+ echo "PYTHON_VERSION_NONSUFFIX=$PYTHON_VERSION_NONSUFFIX" >> $GITHUB_ENV
45
+ - name: Install Python via NuGet
46
+ shell: bash -l {0}
47
+ run: |
48
+ nuget install $PYTHON_PKG -Version $PYTHON_VERSION_NONSUFFIX -Source https://api.nuget.org/v3/index.json -ExcludeVersion
49
+ ls $PWD/$PYTHON_PKG/tools/
50
+ NUGET_PYTHON=$PWD/$PYTHON_PKG/tools/python.exe
51
+ WIN_NUGET_PYTHON=$(cygpath -w $NUGET_PYTHON)
52
+ echo "NUGET_PYTHON=$NUGET_PYTHON" >> $GITHUB_ENV
53
+ echo "WIN_NUGET_PYTHON=$WIN_NUGET_PYTHON" >> $GITHUB_ENV
54
+ - name: Install build/test dependencies
55
+ shell: bash -l {0}
56
+ run: $NUGET_PYTHON -m pip install maturin toml pytest flaky virtualenv
57
+ - name: Create virtualenv
58
+ shell: bash -l {0}
59
+ run: $NUGET_PYTHON -m virtualenv .venv
60
+ - name: Build pywinpty
61
+ shell: bash -l {0}
62
+ run: $NUGET_PYTHON -m maturin develop
63
+ - name: Run tests
64
+ shell: pwsh
65
+ run: |
66
+ &"$env:WIN_NUGET_PYTHON" "runtests.py" "winpty"
67
+ # Enable this to get RDP access to the worker.
68
+ # - name: Download
69
+ # # if: ${{ failure() }}
70
+ # run: Invoke-WebRequest https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-windows-amd64.zip -OutFile ngrok.zip
71
+ # - name: Extract
72
+ # # if: ${{ failure() }}
73
+ # run: Expand-Archive ngrok.zip
74
+ # - name: Auth
75
+ # # if: ${{ failure() }}
76
+ # run: .\ngrok\ngrok.exe config add-authtoken 1raaG4z7gsaCRlLw8cRkUWW6ItF_2LWTUFxXwd6UeeJNAAAci
77
+ # - name: Enable TS
78
+ # # if: ${{ failure() }}
79
+ # run: Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 0
80
+ # - run: Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
81
+ # # if: ${{ failure() }}
82
+ # - run: Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "UserAuthentication" -Value 1
83
+ # # if: ${{ failure() }}
84
+ # - run: Set-LocalUser -Name "runneradmin" -Password (ConvertTo-SecureString -AsPlainText "P@ssw0rd!" -Force)
85
+ # # if: ${{ failure() }}
86
+ # - name: Create Tunnel
87
+ # # if: ${{ failure() }}
88
+ # run: .\ngrok\ngrok.exe tcp 3389
@@ -18,14 +18,8 @@ jobs:
18
18
  PYTHON_VERSION: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
19
19
  steps:
20
20
  - name: Checkout branch
21
- uses: actions/checkout@v5
22
- - name: Install latest Rust stable
23
- uses: actions-rs/toolchain@v1
24
- with:
25
- toolchain: stable
26
- target: x86_64-pc-windows-msvc
27
- override: true
28
- components: rustfmt, clippy
21
+ uses: actions/checkout@v6
22
+
29
23
  - uses: nuget/setup-nuget@v2
30
24
  with:
31
25
  nuget-version: '5.x'
@@ -0,0 +1,58 @@
1
+ name: Windows release arm64
2
+
3
+ on:
4
+ release:
5
+ types:
6
+ - created
7
+
8
+ jobs:
9
+ windows:
10
+ name: Windows Py${{ matrix.PYTHON_VERSION }} arm64
11
+ runs-on: windows-11-arm
12
+ timeout-minutes: 10
13
+ env:
14
+ PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
15
+ RUNNER_OS: "windows"
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ PYTHON_VERSION: ["3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
20
+ steps:
21
+ - name: Checkout branch
22
+ uses: actions/checkout@v6
23
+ - uses: nuget/setup-nuget@v2
24
+ with:
25
+ nuget-version: '5.x'
26
+ - name: Remove free-threaded suffix from version
27
+ env:
28
+ PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
29
+ shell: bash -l {0}
30
+ run: |
31
+ PYTHON_VERSION_NONSUFFIX=$PYTHON_VERSION
32
+ PYTHON_PKG="pythonarm64"
33
+ if [[ $PYTHON_VERSION = *t ]]; then
34
+ PYTHON_VERSION_NONSUFFIX=${PYTHON_VERSION//t}
35
+ echo "PYTHON_VERSION_NONSUFFIX=$PYTHON_VERSION_NONSUFFIX" >> $GITHUB_ENV
36
+ PYTHON_PKG="pythonarm64-freethreaded"
37
+ echo "PYTHON_PKG=$PYTHON_PKG" >> $GITHUB_ENV
38
+ fi
39
+ echo "PYTHON_PKG=$PYTHON_PKG" >> $GITHUB_ENV
40
+ echo "PYTHON_VERSION_NONSUFFIX=$PYTHON_VERSION_NONSUFFIX" >> $GITHUB_ENV
41
+ - name: Install Python via NuGet
42
+ shell: bash -l {0}
43
+ run: |
44
+ nuget install $PYTHON_PKG -Version $PYTHON_VERSION_NONSUFFIX -Source https://api.nuget.org/v3/index.json -ExcludeVersion
45
+ ls $PWD/$PYTHON_PKG/tools/
46
+ NUGET_PYTHON=$PWD/$PYTHON_PKG/tools/python.exe
47
+ WIN_NUGET_PYTHON=$(cygpath -w $NUGET_PYTHON)
48
+ echo "NUGET_PYTHON=$NUGET_PYTHON" >> $GITHUB_ENV
49
+ echo "WIN_NUGET_PYTHON=$WIN_NUGET_PYTHON" >> $GITHUB_ENV
50
+ - name: Install build/test dependencies
51
+ shell: bash -l {0}
52
+ run: $NUGET_PYTHON -m pip install maturin toml
53
+ - name: Build and publish wheels
54
+ env:
55
+ MATURIN_PASSWORD: ${{secrets.MATURIN_PASSWORD}}
56
+ MATURIN_USERNAME: ${{secrets.MATURIN_USERNAME}}
57
+ shell: bash -l {0}
58
+ run: $NUGET_PYTHON -m maturin publish -i $NUGET_PYTHON -u $MATURIN_USERNAME --no-sdist
@@ -10,9 +10,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
10
10
 
11
11
  [[package]]
12
12
  name = "bitflags"
13
- version = "2.9.4"
13
+ version = "2.10.0"
14
14
  source = "registry+https://github.com/rust-lang/crates.io-index"
15
- checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
15
+ checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
16
16
 
17
17
  [[package]]
18
18
  name = "crossbeam-channel"
@@ -70,21 +70,24 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
70
70
 
71
71
  [[package]]
72
72
  name = "indoc"
73
- version = "2.0.6"
73
+ version = "2.0.7"
74
74
  source = "registry+https://github.com/rust-lang/crates.io-index"
75
- checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
75
+ checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
76
+ dependencies = [
77
+ "rustversion",
78
+ ]
76
79
 
77
80
  [[package]]
78
81
  name = "itoa"
79
- version = "1.0.15"
82
+ version = "1.0.17"
80
83
  source = "registry+https://github.com/rust-lang/crates.io-index"
81
- checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
84
+ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
82
85
 
83
86
  [[package]]
84
87
  name = "libc"
85
- version = "0.2.176"
88
+ version = "0.2.180"
86
89
  source = "registry+https://github.com/rust-lang/crates.io-index"
87
- checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174"
90
+ checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
88
91
 
89
92
  [[package]]
90
93
  name = "linux-raw-sys"
@@ -124,24 +127,24 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
124
127
 
125
128
  [[package]]
126
129
  name = "portable-atomic"
127
- version = "1.11.1"
130
+ version = "1.13.1"
128
131
  source = "registry+https://github.com/rust-lang/crates.io-index"
129
- checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
132
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
130
133
 
131
134
  [[package]]
132
135
  name = "proc-macro2"
133
- version = "1.0.101"
136
+ version = "1.0.106"
134
137
  source = "registry+https://github.com/rust-lang/crates.io-index"
135
- checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
138
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
136
139
  dependencies = [
137
140
  "unicode-ident",
138
141
  ]
139
142
 
140
143
  [[package]]
141
144
  name = "pyo3"
142
- version = "0.26.0"
145
+ version = "0.27.2"
143
146
  source = "registry+https://github.com/rust-lang/crates.io-index"
144
- checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383"
147
+ checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d"
145
148
  dependencies = [
146
149
  "indoc",
147
150
  "libc",
@@ -156,18 +159,18 @@ dependencies = [
156
159
 
157
160
  [[package]]
158
161
  name = "pyo3-build-config"
159
- version = "0.26.0"
162
+ version = "0.27.2"
160
163
  source = "registry+https://github.com/rust-lang/crates.io-index"
161
- checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f"
164
+ checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6"
162
165
  dependencies = [
163
166
  "target-lexicon",
164
167
  ]
165
168
 
166
169
  [[package]]
167
170
  name = "pyo3-ffi"
168
- version = "0.26.0"
171
+ version = "0.27.2"
169
172
  source = "registry+https://github.com/rust-lang/crates.io-index"
170
- checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105"
173
+ checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089"
171
174
  dependencies = [
172
175
  "libc",
173
176
  "pyo3-build-config",
@@ -175,9 +178,9 @@ dependencies = [
175
178
 
176
179
  [[package]]
177
180
  name = "pyo3-macros"
178
- version = "0.26.0"
181
+ version = "0.27.2"
179
182
  source = "registry+https://github.com/rust-lang/crates.io-index"
180
- checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded"
183
+ checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02"
181
184
  dependencies = [
182
185
  "proc-macro2",
183
186
  "pyo3-macros-backend",
@@ -187,9 +190,9 @@ dependencies = [
187
190
 
188
191
  [[package]]
189
192
  name = "pyo3-macros-backend"
190
- version = "0.26.0"
193
+ version = "0.27.2"
191
194
  source = "registry+https://github.com/rust-lang/crates.io-index"
192
- checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf"
195
+ checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9"
193
196
  dependencies = [
194
197
  "heck",
195
198
  "proc-macro2",
@@ -200,7 +203,7 @@ dependencies = [
200
203
 
201
204
  [[package]]
202
205
  name = "pywinpty"
203
- version = "3.0.2"
206
+ version = "3.0.3-pre0"
204
207
  dependencies = [
205
208
  "glob",
206
209
  "pyo3",
@@ -209,18 +212,18 @@ dependencies = [
209
212
 
210
213
  [[package]]
211
214
  name = "quote"
212
- version = "1.0.41"
215
+ version = "1.0.44"
213
216
  source = "registry+https://github.com/rust-lang/crates.io-index"
214
- checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1"
217
+ checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
215
218
  dependencies = [
216
219
  "proc-macro2",
217
220
  ]
218
221
 
219
222
  [[package]]
220
223
  name = "rustix"
221
- version = "1.1.2"
224
+ version = "1.1.3"
222
225
  source = "registry+https://github.com/rust-lang/crates.io-index"
223
- checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
226
+ checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
224
227
  dependencies = [
225
228
  "bitflags",
226
229
  "errno",
@@ -230,10 +233,10 @@ dependencies = [
230
233
  ]
231
234
 
232
235
  [[package]]
233
- name = "ryu"
234
- version = "1.0.20"
236
+ name = "rustversion"
237
+ version = "1.0.22"
235
238
  source = "registry+https://github.com/rust-lang/crates.io-index"
236
- checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
239
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
237
240
 
238
241
  [[package]]
239
242
  name = "serde"
@@ -267,22 +270,22 @@ dependencies = [
267
270
 
268
271
  [[package]]
269
272
  name = "serde_json"
270
- version = "1.0.145"
273
+ version = "1.0.149"
271
274
  source = "registry+https://github.com/rust-lang/crates.io-index"
272
- checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
275
+ checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
273
276
  dependencies = [
274
277
  "itoa",
275
278
  "memchr",
276
- "ryu",
277
279
  "serde",
278
280
  "serde_core",
281
+ "zmij",
279
282
  ]
280
283
 
281
284
  [[package]]
282
285
  name = "syn"
283
- version = "2.0.106"
286
+ version = "2.0.114"
284
287
  source = "registry+https://github.com/rust-lang/crates.io-index"
285
- checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6"
288
+ checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
286
289
  dependencies = [
287
290
  "proc-macro2",
288
291
  "quote",
@@ -291,15 +294,15 @@ dependencies = [
291
294
 
292
295
  [[package]]
293
296
  name = "target-lexicon"
294
- version = "0.13.3"
297
+ version = "0.13.4"
295
298
  source = "registry+https://github.com/rust-lang/crates.io-index"
296
- checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c"
299
+ checksum = "b1dd07eb858a2067e2f3c7155d54e929265c264e6f37efe3ee7a8d1b5a1dd0ba"
297
300
 
298
301
  [[package]]
299
302
  name = "unicode-ident"
300
- version = "1.0.19"
303
+ version = "1.0.22"
301
304
  source = "registry+https://github.com/rust-lang/crates.io-index"
302
- checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
305
+ checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
303
306
 
304
307
  [[package]]
305
308
  name = "unindent"
@@ -320,9 +323,9 @@ dependencies = [
320
323
 
321
324
  [[package]]
322
325
  name = "windows"
323
- version = "0.62.1"
326
+ version = "0.62.2"
324
327
  source = "registry+https://github.com/rust-lang/crates.io-index"
325
- checksum = "49e6c4a1f363c8210c6f77ba24f645c61c6fb941eccf013da691f7e09515b8ac"
328
+ checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580"
326
329
  dependencies = [
327
330
  "windows-collections",
328
331
  "windows-core",
@@ -343,18 +346,18 @@ dependencies = [
343
346
 
344
347
  [[package]]
345
348
  name = "windows-collections"
346
- version = "0.3.1"
349
+ version = "0.3.2"
347
350
  source = "registry+https://github.com/rust-lang/crates.io-index"
348
- checksum = "123e712f464a8a60ce1a13f4c446d2d43ab06464cb5842ff68f5c71b6fb7852e"
351
+ checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610"
349
352
  dependencies = [
350
353
  "windows-core",
351
354
  ]
352
355
 
353
356
  [[package]]
354
357
  name = "windows-core"
355
- version = "0.62.1"
358
+ version = "0.62.2"
356
359
  source = "registry+https://github.com/rust-lang/crates.io-index"
357
- checksum = "6844ee5416b285084d3d3fffd743b925a6c9385455f64f6d4fa3031c4c2749a9"
360
+ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
358
361
  dependencies = [
359
362
  "windows-implement",
360
363
  "windows-interface",
@@ -365,9 +368,9 @@ dependencies = [
365
368
 
366
369
  [[package]]
367
370
  name = "windows-future"
368
- version = "0.3.1"
371
+ version = "0.3.2"
369
372
  source = "registry+https://github.com/rust-lang/crates.io-index"
370
- checksum = "68f3db6b24b120200d649cd4811b4947188ed3a8d2626f7075146c5d178a9a4a"
373
+ checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb"
371
374
  dependencies = [
372
375
  "windows-core",
373
376
  "windows-link",
@@ -376,9 +379,9 @@ dependencies = [
376
379
 
377
380
  [[package]]
378
381
  name = "windows-implement"
379
- version = "0.60.1"
382
+ version = "0.60.2"
380
383
  source = "registry+https://github.com/rust-lang/crates.io-index"
381
- checksum = "edb307e42a74fb6de9bf3a02d9712678b22399c87e6fa869d6dfcd8c1b7754e0"
384
+ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
382
385
  dependencies = [
383
386
  "proc-macro2",
384
387
  "quote",
@@ -387,9 +390,9 @@ dependencies = [
387
390
 
388
391
  [[package]]
389
392
  name = "windows-interface"
390
- version = "0.59.2"
393
+ version = "0.59.3"
391
394
  source = "registry+https://github.com/rust-lang/crates.io-index"
392
- checksum = "c0abd1ddbc6964ac14db11c7213d6532ef34bd9aa042c2e5935f59d7908b46a5"
395
+ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
393
396
  dependencies = [
394
397
  "proc-macro2",
395
398
  "quote",
@@ -398,15 +401,15 @@ dependencies = [
398
401
 
399
402
  [[package]]
400
403
  name = "windows-link"
401
- version = "0.2.0"
404
+ version = "0.2.1"
402
405
  source = "registry+https://github.com/rust-lang/crates.io-index"
403
- checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65"
406
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
404
407
 
405
408
  [[package]]
406
409
  name = "windows-numerics"
407
- version = "0.3.0"
410
+ version = "0.3.1"
408
411
  source = "registry+https://github.com/rust-lang/crates.io-index"
409
- checksum = "2ce3498fe0aba81e62e477408383196b4b0363db5e0c27646f932676283b43d8"
412
+ checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26"
410
413
  dependencies = [
411
414
  "windows-core",
412
415
  "windows-link",
@@ -414,45 +417,45 @@ dependencies = [
414
417
 
415
418
  [[package]]
416
419
  name = "windows-result"
417
- version = "0.4.0"
420
+ version = "0.4.1"
418
421
  source = "registry+https://github.com/rust-lang/crates.io-index"
419
- checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f"
422
+ checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
420
423
  dependencies = [
421
424
  "windows-link",
422
425
  ]
423
426
 
424
427
  [[package]]
425
428
  name = "windows-strings"
426
- version = "0.5.0"
429
+ version = "0.5.1"
427
430
  source = "registry+https://github.com/rust-lang/crates.io-index"
428
- checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda"
431
+ checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
429
432
  dependencies = [
430
433
  "windows-link",
431
434
  ]
432
435
 
433
436
  [[package]]
434
437
  name = "windows-sys"
435
- version = "0.61.1"
438
+ version = "0.61.2"
436
439
  source = "registry+https://github.com/rust-lang/crates.io-index"
437
- checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f"
440
+ checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
438
441
  dependencies = [
439
442
  "windows-link",
440
443
  ]
441
444
 
442
445
  [[package]]
443
446
  name = "windows-threading"
444
- version = "0.2.0"
447
+ version = "0.2.1"
445
448
  source = "registry+https://github.com/rust-lang/crates.io-index"
446
- checksum = "ab47f085ad6932defa48855254c758cdd0e2f2d48e62a34118a268d8f345e118"
449
+ checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37"
447
450
  dependencies = [
448
451
  "windows-link",
449
452
  ]
450
453
 
451
454
  [[package]]
452
455
  name = "winpty-rs"
453
- version = "1.0.4"
456
+ version = "1.0.5"
454
457
  source = "registry+https://github.com/rust-lang/crates.io-index"
455
- checksum = "40de59a23f65026b6aad538a1acd6c5fa996894df469e2039eee1322e97581e8"
458
+ checksum = "c60d4edfd88e387e4f86dc45ba371ee63e9b2636e4056adb739cd2ac3b8230d7"
456
459
  dependencies = [
457
460
  "bitflags",
458
461
  "crossbeam-channel",
@@ -472,3 +475,9 @@ name = "winsafe"
472
475
  version = "0.0.19"
473
476
  source = "registry+https://github.com/rust-lang/crates.io-index"
474
477
  checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
478
+
479
+ [[package]]
480
+ name = "zmij"
481
+ version = "1.0.19"
482
+ source = "registry+https://github.com/rust-lang/crates.io-index"
483
+ checksum = "3ff05f8caa9038894637571ae6b9e29466c1f4f829d26c9b28f869a29cbe3445"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "pywinpty"
3
- version = "3.0.2"
3
+ version = "3.0.3-pre0"
4
4
  authors = ["Edgar Andrés Margffoy Tuay <andfoy@gmail.com>"]
5
5
  description = "Pseudo terminal support for Windows from Python."
6
6
  repository = "https://github.com/spyder-ide/pywinpty"
@@ -17,10 +17,10 @@ crate-type = ["cdylib"]
17
17
  glob = "0.3.2"
18
18
 
19
19
  [dependencies]
20
- winpty-rs = "1.0.4"
20
+ winpty-rs = "1.0.5"
21
21
 
22
22
  [dependencies.pyo3]
23
- version = "0.26.0"
23
+ version = "0.27.2"
24
24
  features = ["extension-module"]
25
25
 
26
26
  [package.metadata.docs.rs]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pywinpty
3
- Version: 3.0.2
3
+ Version: 3.0.3rc0
4
4
  Classifier: Development Status :: 5 - Production/Stable
5
5
  Classifier: Programming Language :: Python
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -18,6 +18,8 @@ Author-email: andfoy@gmail.com
18
18
  Maintainer-email: Edgar Margffoy <andfoy@gmail.com>
19
19
  Requires-Python: >=3.9
20
20
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
21
+ Project-URL: Changelog, https://github.com/andfoy/pywinpty/blob/main/CHANGELOG.md
22
+ Project-URL: Repository, https://github.com/andfoy/pywinpty
21
23
 
22
24
  # PyWinpty: Pseudoterminals for Windows in Python
23
25
 
@@ -23,6 +23,8 @@ authors = [
23
23
  maintainers = [
24
24
  {name = "Edgar Margffoy", email = "andfoy@gmail.com"}
25
25
  ]
26
+ urls.Changelog = "https://github.com/andfoy/pywinpty/blob/main/CHANGELOG.md"
27
+ urls.Repository = "https://github.com/andfoy/pywinpty"
26
28
 
27
29
  [build-system]
28
30
  requires = ["maturin>=1.1,<2.0"]
@@ -1,7 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  # Standard library imports
4
- import codecs
5
4
  import os
6
5
  import shlex
7
6
  import signal
@@ -351,7 +350,7 @@ def _read_in_thread(address, pty: PTY, blocking: bool):
351
350
 
352
351
  while 1:
353
352
  try:
354
- data = pty.read(blocking=blocking) or b'0011Ignore'
353
+ data = pty.read(blocking=blocking) or '0011Ignore'
355
354
  try:
356
355
  client.send(bytes(data, 'utf-8'))
357
356
  except socket.error:
@@ -363,8 +362,7 @@ def _read_in_thread(address, pty: PTY, blocking: bool):
363
362
  client.send(b'')
364
363
  except socket.error:
365
364
  pass
366
- finally:
367
- break
365
+ break
368
366
 
369
367
  call += 1
370
368
  except Exception as e:
@@ -51,14 +51,17 @@ def pty_fixture(request):
51
51
 
52
52
  backend = getattr(Backend, backend)
53
53
  def _pty_factory():
54
- pty = PTY(80, 25, backend=backend)
54
+ try:
55
+ pty = PTY(80, 25, backend=backend)
56
+ except WinptyError:
57
+ pytest.skip()
58
+ return None
55
59
  assert pty.spawn(CMD)
56
60
  time.sleep(0.3)
57
61
  return pty
58
62
  return _pty_factory
59
63
 
60
64
 
61
-
62
65
  # @pytest.fixture(scope='function', params=[
63
66
  # pytest.lazy_fixture('conpty_provider'),
64
67
  # pytest.lazy_fixture('winpty_provider')])
@@ -14,6 +14,7 @@ import pytest
14
14
  from flaky import flaky
15
15
 
16
16
  # Local imports
17
+ from winpty import WinptyError
17
18
  from winpty.enums import Backend
18
19
  from winpty.ptyprocess import PtyProcess, which
19
20
 
@@ -33,7 +34,11 @@ def pty_fixture(request):
33
34
  backend = getattr(Backend, backend)
34
35
  def _pty_factory(cmd=None, env=None):
35
36
  cmd = cmd or 'cmd'
36
- pty = PtyProcess.spawn(cmd, env=env, backend=backend)
37
+ try:
38
+ pty = PtyProcess.spawn(cmd, env=env, backend=backend)
39
+ except WinptyError:
40
+ pytest.skip()
41
+ return None
37
42
  return pty
38
43
  # time.sleep(10)
39
44
  _pty_factory.backend = request.param
@@ -0,0 +1,42 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ """Stub typing declarations for the native PTY object."""
4
+
5
+ # Standard library imports
6
+ from typing import Optional
7
+
8
+ # Local imports
9
+ from .enums import MouseMode, AgentConfig
10
+
11
+ __version__: str
12
+
13
+ class WinptyError(Exception): ...
14
+
15
+ class PTY:
16
+ def __init__(
17
+ self,
18
+ cols: int,
19
+ rows: int,
20
+ backend: Optional[int] = None,
21
+ mouse_mode: int = MouseMode.WINPTY_MOUSE_MODE_NONE,
22
+ timeout: int = 30000,
23
+ agent_config: int = AgentConfig.WINPTY_FLAG_COLOR_ESCAPES,
24
+ ): ...
25
+ def spawn(
26
+ self,
27
+ appname: str,
28
+ cmdline: Optional[str] = None,
29
+ cwd: Optional[str] = None,
30
+ env: Optional[str] = None,
31
+ ) -> bool: ...
32
+ def set_size(self, cols: int, rows: int): ...
33
+ def read(self, blocking: bool = False) -> str: ...
34
+ def write(self, to_write: str) -> int: ...
35
+ def isalive(self) -> bool: ...
36
+ def get_exitstatus(self) -> Optional[int]: ...
37
+ def iseof(self) -> bool: ...
38
+ def cancel_io(self) -> bool: ...
39
+ @property
40
+ def pid(self) -> Optional[int]: ...
41
+ @property
42
+ def fd(self) -> Optional[int]: ...
@@ -1,58 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- """Stub typing declarations for the native PTY object."""
4
-
5
- # Standard library imports
6
- from typing import Optional
7
-
8
- # Local imports
9
- from .enums import Backend, Encoding, MouseMode, AgentConfig
10
-
11
- __version__: str
12
-
13
- class WinptyError(Exception):
14
- ...
15
-
16
- class PTY:
17
- def __init__(self, cols: int, rows: int,
18
- backend: Optional[int] = None,
19
- encoding: Optional[str] = Encoding.UTF8,
20
- mouse_mode: int = MouseMode.WINPTY_MOUSE_MODE_NONE,
21
- timeout: int = 30000,
22
- agent_config: int = AgentConfig.WINPTY_FLAG_COLOR_ESCAPES):
23
- ...
24
-
25
- def spawn(self,
26
- appname: str,
27
- cmdline: Optional[str] = None,
28
- cwd: Optional[str] = None,
29
- env: Optional[str] = None) -> bool:
30
- ...
31
-
32
- def set_size(self, cols: int, rows: int): ...
33
-
34
- def read(self,
35
- length: Optional[int] = 1000,
36
- blocking: bool = False) -> str:
37
- ...
38
-
39
- def read_stderr(self,
40
- length: Optional[int] = 1000,
41
- blocking: bool = False) -> str:
42
- ...
43
-
44
- def write(self, to_write: str) -> int: ...
45
-
46
- def isalive(self) -> bool: ...
47
-
48
- def get_exitstatus(self) -> Optional[int]: ...
49
-
50
- def iseof(self) -> bool: ...
51
-
52
- def cancel_io() -> bool: ...
53
-
54
- @property
55
- def pid(self) -> Optional[int]: ...
56
-
57
- @property
58
- def fd(self) -> Optional[int]: ...
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes