winrt-Windows.Devices.Display 2.0.1__tar.gz → 2.2.0__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 (20) hide show
  1. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/PKG-INFO +5 -5
  2. winrt_windows_devices_display-2.2.0/all-requirements.txt +4 -0
  3. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/py.Windows.Devices.Display.cpp +330 -166
  4. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/pyproject.toml +3 -2
  5. winrt_windows_devices_display-2.2.0/pywinrt-version.txt +1 -0
  6. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/requirements.txt +2 -2
  7. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/winrt/_winrt_windows_devices_display.pyi +13 -13
  8. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/winrt/windows/devices/display/__init__.py +1 -1
  9. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/winrt_Windows.Devices.Display.egg-info/PKG-INFO +5 -5
  10. winrt_windows_devices_display-2.2.0/winrt_Windows.Devices.Display.egg-info/requires.txt +5 -0
  11. winrt_windows_devices_display-2.0.1/all-requirements.txt +0 -4
  12. winrt_windows_devices_display-2.0.1/pywinrt-version.txt +0 -1
  13. winrt_windows_devices_display-2.0.1/winrt_Windows.Devices.Display.egg-info/requires.txt +0 -5
  14. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/README.md +0 -0
  15. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/setup.cfg +0 -0
  16. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/setup.py +0 -0
  17. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/winrt/windows/devices/display/py.typed +0 -0
  18. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/winrt_Windows.Devices.Display.egg-info/SOURCES.txt +0 -0
  19. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/winrt_Windows.Devices.Display.egg-info/dependency_links.txt +0 -0
  20. {winrt_windows_devices_display-2.0.1 → winrt_windows_devices_display-2.2.0}/winrt_Windows.Devices.Display.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: winrt-Windows.Devices.Display
3
- Version: 2.0.1
3
+ Version: 2.2.0
4
4
  Summary: Python projection of Windows Runtime (WinRT) APIs
5
5
  License: MIT
6
6
  Project-URL: Documentation, https://pywinrt.readthedocs.io
@@ -10,12 +10,12 @@ Classifier: Operating System :: Microsoft :: Windows
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: Implementation :: CPython
12
12
  Classifier: Intended Audience :: Developers
13
- Requires-Python: <3.13,>=3.9
13
+ Requires-Python: <3.14,>=3.9
14
14
  Description-Content-Type: text/markdown
15
- Requires-Dist: winrt-runtime==2.0.1
15
+ Requires-Dist: winrt-runtime==2.2.0
16
16
  Provides-Extra: all
17
- Requires-Dist: winrt-Windows.Foundation[all]==2.0.1; extra == "all"
18
- Requires-Dist: winrt-Windows.Graphics[all]==2.0.1; extra == "all"
17
+ Requires-Dist: winrt-Windows.Foundation[all]==2.2.0; extra == "all"
18
+ Requires-Dist: winrt-Windows.Graphics[all]==2.2.0; extra == "all"
19
19
 
20
20
  <!-- warning: Please don't edit this file. It was automatically generated. -->
21
21
 
@@ -0,0 +1,4 @@
1
+ # WARNING: Please don't edit this file. It was generated by Python/WinRT v2.2.0
2
+
3
+ winrt-Windows.Foundation[all]==2.2.0
4
+ winrt-Windows.Graphics[all]==2.2.0
@@ -1,8 +1,7 @@
1
- // WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.1
1
+ // WARNING: Please don't edit this file. It was generated by Python/WinRT v2.2.0
2
2
 
3
3
  #include "py.Windows.Devices.Display.h"
4
4
 
5
-
6
5
  namespace py::cpp::Windows::Devices::Display
7
6
  {
8
7
  // ----- DisplayMonitor class --------------------
@@ -28,14 +27,21 @@ namespace py::cpp::Windows::Devices::Display
28
27
 
29
28
  if (arg_count == 1)
30
29
  {
31
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsMethodPresent(L"Windows.Devices.Display.DisplayMonitor", L"FromIdAsync", 1))
32
- {
33
- py::set_arg_count_version_error(1);
34
- return nullptr;
35
- }
36
-
37
30
  try
38
31
  {
32
+ static std::optional<bool> is_overload_present{};
33
+
34
+ if (!is_overload_present.has_value())
35
+ {
36
+ is_overload_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsMethodPresent(L"Windows.Devices.Display.DisplayMonitor", L"FromIdAsync", 1);
37
+ }
38
+
39
+ if (!is_overload_present.value())
40
+ {
41
+ py::set_arg_count_version_error(1);
42
+ return nullptr;
43
+ }
44
+
39
45
  auto param0 = py::convert_to<winrt::hstring>(args, 0);
40
46
 
41
47
  return py::convert(winrt::Windows::Devices::Display::DisplayMonitor::FromIdAsync(param0));
@@ -59,14 +65,21 @@ namespace py::cpp::Windows::Devices::Display
59
65
 
60
66
  if (arg_count == 1)
61
67
  {
62
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsMethodPresent(L"Windows.Devices.Display.DisplayMonitor", L"FromInterfaceIdAsync", 1))
63
- {
64
- py::set_arg_count_version_error(1);
65
- return nullptr;
66
- }
67
-
68
68
  try
69
69
  {
70
+ static std::optional<bool> is_overload_present{};
71
+
72
+ if (!is_overload_present.has_value())
73
+ {
74
+ is_overload_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsMethodPresent(L"Windows.Devices.Display.DisplayMonitor", L"FromInterfaceIdAsync", 1);
75
+ }
76
+
77
+ if (!is_overload_present.value())
78
+ {
79
+ py::set_arg_count_version_error(1);
80
+ return nullptr;
81
+ }
82
+
70
83
  auto param0 = py::convert_to<winrt::hstring>(args, 0);
71
84
 
72
85
  return py::convert(winrt::Windows::Devices::Display::DisplayMonitor::FromInterfaceIdAsync(param0));
@@ -90,14 +103,21 @@ namespace py::cpp::Windows::Devices::Display
90
103
 
91
104
  if (arg_count == 1)
92
105
  {
93
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsMethodPresent(L"Windows.Devices.Display.DisplayMonitor", L"GetDescriptor", 1))
94
- {
95
- py::set_arg_count_version_error(1);
96
- return nullptr;
97
- }
98
-
99
106
  try
100
107
  {
108
+ static std::optional<bool> is_overload_present{};
109
+
110
+ if (!is_overload_present.has_value())
111
+ {
112
+ is_overload_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsMethodPresent(L"Windows.Devices.Display.DisplayMonitor", L"GetDescriptor", 1);
113
+ }
114
+
115
+ if (!is_overload_present.value())
116
+ {
117
+ py::set_arg_count_version_error(1);
118
+ return nullptr;
119
+ }
120
+
101
121
  auto param0 = py::convert_to<winrt::Windows::Devices::Display::DisplayMonitorDescriptorKind>(args, 0);
102
122
 
103
123
  return py::convert(self->obj.GetDescriptor(param0));
@@ -121,14 +141,21 @@ namespace py::cpp::Windows::Devices::Display
121
141
 
122
142
  if (arg_count == 0)
123
143
  {
124
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsMethodPresent(L"Windows.Devices.Display.DisplayMonitor", L"GetDeviceSelector", 0))
125
- {
126
- py::set_arg_count_version_error(0);
127
- return nullptr;
128
- }
129
-
130
144
  try
131
145
  {
146
+ static std::optional<bool> is_overload_present{};
147
+
148
+ if (!is_overload_present.has_value())
149
+ {
150
+ is_overload_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsMethodPresent(L"Windows.Devices.Display.DisplayMonitor", L"GetDeviceSelector", 0);
151
+ }
152
+
153
+ if (!is_overload_present.value())
154
+ {
155
+ py::set_arg_count_version_error(0);
156
+ return nullptr;
157
+ }
158
+
132
159
  return py::convert(winrt::Windows::Devices::Display::DisplayMonitor::GetDeviceSelector());
133
160
  }
134
161
  catch (...)
@@ -146,14 +173,21 @@ namespace py::cpp::Windows::Devices::Display
146
173
 
147
174
  static PyObject* DisplayMonitor_get_BluePrimary(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
148
175
  {
149
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"BluePrimary"))
150
- {
151
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
152
- return nullptr;
153
- }
154
-
155
176
  try
156
177
  {
178
+ static std::optional<bool> is_property_present{};
179
+
180
+ if (!is_property_present.has_value())
181
+ {
182
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"BluePrimary");
183
+ }
184
+
185
+ if (!is_property_present.value())
186
+ {
187
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
188
+ return nullptr;
189
+ }
190
+
157
191
  return py::convert(self->obj.BluePrimary());
158
192
  }
159
193
  catch (...)
@@ -165,14 +199,21 @@ namespace py::cpp::Windows::Devices::Display
165
199
 
166
200
  static PyObject* DisplayMonitor_get_ConnectionKind(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
167
201
  {
168
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"ConnectionKind"))
169
- {
170
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
171
- return nullptr;
172
- }
173
-
174
202
  try
175
203
  {
204
+ static std::optional<bool> is_property_present{};
205
+
206
+ if (!is_property_present.has_value())
207
+ {
208
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"ConnectionKind");
209
+ }
210
+
211
+ if (!is_property_present.value())
212
+ {
213
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
214
+ return nullptr;
215
+ }
216
+
176
217
  return py::convert(self->obj.ConnectionKind());
177
218
  }
178
219
  catch (...)
@@ -184,14 +225,21 @@ namespace py::cpp::Windows::Devices::Display
184
225
 
185
226
  static PyObject* DisplayMonitor_get_DeviceId(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
186
227
  {
187
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"DeviceId"))
188
- {
189
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
190
- return nullptr;
191
- }
192
-
193
228
  try
194
229
  {
230
+ static std::optional<bool> is_property_present{};
231
+
232
+ if (!is_property_present.has_value())
233
+ {
234
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"DeviceId");
235
+ }
236
+
237
+ if (!is_property_present.value())
238
+ {
239
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
240
+ return nullptr;
241
+ }
242
+
195
243
  return py::convert(self->obj.DeviceId());
196
244
  }
197
245
  catch (...)
@@ -203,14 +251,21 @@ namespace py::cpp::Windows::Devices::Display
203
251
 
204
252
  static PyObject* DisplayMonitor_get_DisplayAdapterDeviceId(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
205
253
  {
206
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"DisplayAdapterDeviceId"))
207
- {
208
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
209
- return nullptr;
210
- }
211
-
212
254
  try
213
255
  {
256
+ static std::optional<bool> is_property_present{};
257
+
258
+ if (!is_property_present.has_value())
259
+ {
260
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"DisplayAdapterDeviceId");
261
+ }
262
+
263
+ if (!is_property_present.value())
264
+ {
265
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
266
+ return nullptr;
267
+ }
268
+
214
269
  return py::convert(self->obj.DisplayAdapterDeviceId());
215
270
  }
216
271
  catch (...)
@@ -222,14 +277,21 @@ namespace py::cpp::Windows::Devices::Display
222
277
 
223
278
  static PyObject* DisplayMonitor_get_DisplayAdapterId(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
224
279
  {
225
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"DisplayAdapterId"))
226
- {
227
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
228
- return nullptr;
229
- }
230
-
231
280
  try
232
281
  {
282
+ static std::optional<bool> is_property_present{};
283
+
284
+ if (!is_property_present.has_value())
285
+ {
286
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"DisplayAdapterId");
287
+ }
288
+
289
+ if (!is_property_present.value())
290
+ {
291
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
292
+ return nullptr;
293
+ }
294
+
233
295
  return py::convert(self->obj.DisplayAdapterId());
234
296
  }
235
297
  catch (...)
@@ -241,14 +303,21 @@ namespace py::cpp::Windows::Devices::Display
241
303
 
242
304
  static PyObject* DisplayMonitor_get_DisplayAdapterTargetId(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
243
305
  {
244
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"DisplayAdapterTargetId"))
245
- {
246
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
247
- return nullptr;
248
- }
249
-
250
306
  try
251
307
  {
308
+ static std::optional<bool> is_property_present{};
309
+
310
+ if (!is_property_present.has_value())
311
+ {
312
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"DisplayAdapterTargetId");
313
+ }
314
+
315
+ if (!is_property_present.value())
316
+ {
317
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
318
+ return nullptr;
319
+ }
320
+
252
321
  return py::convert(self->obj.DisplayAdapterTargetId());
253
322
  }
254
323
  catch (...)
@@ -260,14 +329,21 @@ namespace py::cpp::Windows::Devices::Display
260
329
 
261
330
  static PyObject* DisplayMonitor_get_DisplayName(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
262
331
  {
263
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"DisplayName"))
264
- {
265
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
266
- return nullptr;
267
- }
268
-
269
332
  try
270
333
  {
334
+ static std::optional<bool> is_property_present{};
335
+
336
+ if (!is_property_present.has_value())
337
+ {
338
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"DisplayName");
339
+ }
340
+
341
+ if (!is_property_present.value())
342
+ {
343
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
344
+ return nullptr;
345
+ }
346
+
271
347
  return py::convert(self->obj.DisplayName());
272
348
  }
273
349
  catch (...)
@@ -279,14 +355,21 @@ namespace py::cpp::Windows::Devices::Display
279
355
 
280
356
  static PyObject* DisplayMonitor_get_GreenPrimary(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
281
357
  {
282
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"GreenPrimary"))
283
- {
284
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
285
- return nullptr;
286
- }
287
-
288
358
  try
289
359
  {
360
+ static std::optional<bool> is_property_present{};
361
+
362
+ if (!is_property_present.has_value())
363
+ {
364
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"GreenPrimary");
365
+ }
366
+
367
+ if (!is_property_present.value())
368
+ {
369
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
370
+ return nullptr;
371
+ }
372
+
290
373
  return py::convert(self->obj.GreenPrimary());
291
374
  }
292
375
  catch (...)
@@ -298,14 +381,21 @@ namespace py::cpp::Windows::Devices::Display
298
381
 
299
382
  static PyObject* DisplayMonitor_get_MaxAverageFullFrameLuminanceInNits(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
300
383
  {
301
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"MaxAverageFullFrameLuminanceInNits"))
302
- {
303
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
304
- return nullptr;
305
- }
306
-
307
384
  try
308
385
  {
386
+ static std::optional<bool> is_property_present{};
387
+
388
+ if (!is_property_present.has_value())
389
+ {
390
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"MaxAverageFullFrameLuminanceInNits");
391
+ }
392
+
393
+ if (!is_property_present.value())
394
+ {
395
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
396
+ return nullptr;
397
+ }
398
+
309
399
  return py::convert(self->obj.MaxAverageFullFrameLuminanceInNits());
310
400
  }
311
401
  catch (...)
@@ -317,14 +407,21 @@ namespace py::cpp::Windows::Devices::Display
317
407
 
318
408
  static PyObject* DisplayMonitor_get_MaxLuminanceInNits(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
319
409
  {
320
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"MaxLuminanceInNits"))
321
- {
322
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
323
- return nullptr;
324
- }
325
-
326
410
  try
327
411
  {
412
+ static std::optional<bool> is_property_present{};
413
+
414
+ if (!is_property_present.has_value())
415
+ {
416
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"MaxLuminanceInNits");
417
+ }
418
+
419
+ if (!is_property_present.value())
420
+ {
421
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
422
+ return nullptr;
423
+ }
424
+
328
425
  return py::convert(self->obj.MaxLuminanceInNits());
329
426
  }
330
427
  catch (...)
@@ -336,14 +433,21 @@ namespace py::cpp::Windows::Devices::Display
336
433
 
337
434
  static PyObject* DisplayMonitor_get_MinLuminanceInNits(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
338
435
  {
339
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"MinLuminanceInNits"))
340
- {
341
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
342
- return nullptr;
343
- }
344
-
345
436
  try
346
437
  {
438
+ static std::optional<bool> is_property_present{};
439
+
440
+ if (!is_property_present.has_value())
441
+ {
442
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"MinLuminanceInNits");
443
+ }
444
+
445
+ if (!is_property_present.value())
446
+ {
447
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
448
+ return nullptr;
449
+ }
450
+
347
451
  return py::convert(self->obj.MinLuminanceInNits());
348
452
  }
349
453
  catch (...)
@@ -355,14 +459,21 @@ namespace py::cpp::Windows::Devices::Display
355
459
 
356
460
  static PyObject* DisplayMonitor_get_NativeResolutionInRawPixels(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
357
461
  {
358
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"NativeResolutionInRawPixels"))
359
- {
360
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
361
- return nullptr;
362
- }
363
-
364
462
  try
365
463
  {
464
+ static std::optional<bool> is_property_present{};
465
+
466
+ if (!is_property_present.has_value())
467
+ {
468
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"NativeResolutionInRawPixels");
469
+ }
470
+
471
+ if (!is_property_present.value())
472
+ {
473
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
474
+ return nullptr;
475
+ }
476
+
366
477
  return py::convert(self->obj.NativeResolutionInRawPixels());
367
478
  }
368
479
  catch (...)
@@ -374,14 +485,21 @@ namespace py::cpp::Windows::Devices::Display
374
485
 
375
486
  static PyObject* DisplayMonitor_get_PhysicalConnector(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
376
487
  {
377
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"PhysicalConnector"))
378
- {
379
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
380
- return nullptr;
381
- }
382
-
383
488
  try
384
489
  {
490
+ static std::optional<bool> is_property_present{};
491
+
492
+ if (!is_property_present.has_value())
493
+ {
494
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"PhysicalConnector");
495
+ }
496
+
497
+ if (!is_property_present.value())
498
+ {
499
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
500
+ return nullptr;
501
+ }
502
+
385
503
  return py::convert(self->obj.PhysicalConnector());
386
504
  }
387
505
  catch (...)
@@ -393,14 +511,21 @@ namespace py::cpp::Windows::Devices::Display
393
511
 
394
512
  static PyObject* DisplayMonitor_get_PhysicalSizeInInches(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
395
513
  {
396
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"PhysicalSizeInInches"))
397
- {
398
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
399
- return nullptr;
400
- }
401
-
402
514
  try
403
515
  {
516
+ static std::optional<bool> is_property_present{};
517
+
518
+ if (!is_property_present.has_value())
519
+ {
520
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"PhysicalSizeInInches");
521
+ }
522
+
523
+ if (!is_property_present.value())
524
+ {
525
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
526
+ return nullptr;
527
+ }
528
+
404
529
  return py::convert(self->obj.PhysicalSizeInInches());
405
530
  }
406
531
  catch (...)
@@ -412,14 +537,21 @@ namespace py::cpp::Windows::Devices::Display
412
537
 
413
538
  static PyObject* DisplayMonitor_get_RawDpiX(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
414
539
  {
415
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"RawDpiX"))
416
- {
417
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
418
- return nullptr;
419
- }
420
-
421
540
  try
422
541
  {
542
+ static std::optional<bool> is_property_present{};
543
+
544
+ if (!is_property_present.has_value())
545
+ {
546
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"RawDpiX");
547
+ }
548
+
549
+ if (!is_property_present.value())
550
+ {
551
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
552
+ return nullptr;
553
+ }
554
+
423
555
  return py::convert(self->obj.RawDpiX());
424
556
  }
425
557
  catch (...)
@@ -431,14 +563,21 @@ namespace py::cpp::Windows::Devices::Display
431
563
 
432
564
  static PyObject* DisplayMonitor_get_RawDpiY(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
433
565
  {
434
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"RawDpiY"))
435
- {
436
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
437
- return nullptr;
438
- }
439
-
440
566
  try
441
567
  {
568
+ static std::optional<bool> is_property_present{};
569
+
570
+ if (!is_property_present.has_value())
571
+ {
572
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"RawDpiY");
573
+ }
574
+
575
+ if (!is_property_present.value())
576
+ {
577
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
578
+ return nullptr;
579
+ }
580
+
442
581
  return py::convert(self->obj.RawDpiY());
443
582
  }
444
583
  catch (...)
@@ -450,14 +589,21 @@ namespace py::cpp::Windows::Devices::Display
450
589
 
451
590
  static PyObject* DisplayMonitor_get_RedPrimary(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
452
591
  {
453
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"RedPrimary"))
454
- {
455
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
456
- return nullptr;
457
- }
458
-
459
592
  try
460
593
  {
594
+ static std::optional<bool> is_property_present{};
595
+
596
+ if (!is_property_present.has_value())
597
+ {
598
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"RedPrimary");
599
+ }
600
+
601
+ if (!is_property_present.value())
602
+ {
603
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
604
+ return nullptr;
605
+ }
606
+
461
607
  return py::convert(self->obj.RedPrimary());
462
608
  }
463
609
  catch (...)
@@ -469,14 +615,21 @@ namespace py::cpp::Windows::Devices::Display
469
615
 
470
616
  static PyObject* DisplayMonitor_get_UsageKind(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
471
617
  {
472
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"UsageKind"))
473
- {
474
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
475
- return nullptr;
476
- }
477
-
478
618
  try
479
619
  {
620
+ static std::optional<bool> is_property_present{};
621
+
622
+ if (!is_property_present.has_value())
623
+ {
624
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"UsageKind");
625
+ }
626
+
627
+ if (!is_property_present.value())
628
+ {
629
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
630
+ return nullptr;
631
+ }
632
+
480
633
  return py::convert(self->obj.UsageKind());
481
634
  }
482
635
  catch (...)
@@ -488,14 +641,21 @@ namespace py::cpp::Windows::Devices::Display
488
641
 
489
642
  static PyObject* DisplayMonitor_get_WhitePoint(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
490
643
  {
491
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"WhitePoint"))
492
- {
493
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
494
- return nullptr;
495
- }
496
-
497
644
  try
498
645
  {
646
+ static std::optional<bool> is_property_present{};
647
+
648
+ if (!is_property_present.has_value())
649
+ {
650
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"WhitePoint");
651
+ }
652
+
653
+ if (!is_property_present.value())
654
+ {
655
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
656
+ return nullptr;
657
+ }
658
+
499
659
  return py::convert(self->obj.WhitePoint());
500
660
  }
501
661
  catch (...)
@@ -507,14 +667,21 @@ namespace py::cpp::Windows::Devices::Display
507
667
 
508
668
  static PyObject* DisplayMonitor_get_IsDolbyVisionSupportedInHdrMode(py::wrapper::Windows::Devices::Display::DisplayMonitor* self, void* /*unused*/) noexcept
509
669
  {
510
- if (!winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"IsDolbyVisionSupportedInHdrMode"))
511
- {
512
- PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
513
- return nullptr;
514
- }
515
-
516
670
  try
517
671
  {
672
+ static std::optional<bool> is_property_present{};
673
+
674
+ if (!is_property_present.has_value())
675
+ {
676
+ is_property_present = winrt::Windows::Foundation::Metadata::ApiInformation::IsPropertyPresent(L"Windows.Devices.Display.DisplayMonitor", L"IsDolbyVisionSupportedInHdrMode");
677
+ }
678
+
679
+ if (!is_property_present.value())
680
+ {
681
+ PyErr_SetString(PyExc_AttributeError, "property is not available in this version of Windows");
682
+ return nullptr;
683
+ }
684
+
518
685
  return py::convert(self->obj.IsDolbyVisionSupportedInHdrMode());
519
686
  }
520
687
  catch (...)
@@ -579,23 +746,20 @@ namespace py::cpp::Windows::Devices::Display
579
746
  { }
580
747
  };
581
748
 
582
- static PyType_Slot _type_slots_DisplayMonitor[] =
583
- {
749
+ static PyType_Slot _type_slots_DisplayMonitor[] = {
584
750
  { Py_tp_new, reinterpret_cast<void*>(_new_DisplayMonitor) },
585
751
  { Py_tp_dealloc, reinterpret_cast<void*>(_dealloc_DisplayMonitor) },
586
752
  { Py_tp_methods, reinterpret_cast<void*>(_methods_DisplayMonitor) },
587
753
  { Py_tp_getset, reinterpret_cast<void*>(_getset_DisplayMonitor) },
588
- { },
754
+ { }
589
755
  };
590
756
 
591
- static PyType_Spec type_spec_DisplayMonitor =
592
- {
757
+ static PyType_Spec type_spec_DisplayMonitor = {
593
758
  "winrt._winrt_windows_devices_display.DisplayMonitor",
594
759
  sizeof(py::wrapper::Windows::Devices::Display::DisplayMonitor),
595
760
  0,
596
761
  Py_TPFLAGS_DEFAULT,
597
- _type_slots_DisplayMonitor
598
- };
762
+ _type_slots_DisplayMonitor};
599
763
 
600
764
  static PyGetSetDef getset_DisplayMonitor_Static[] = {
601
765
  { }
@@ -626,20 +790,19 @@ namespace py::cpp::Windows::Devices::Display
626
790
  };
627
791
 
628
792
  // ----- Windows.Devices.Display Initialization --------------------
629
- PyDoc_STRVAR(module_doc, "Windows::Devices::Display");
630
793
 
794
+ PyDoc_STRVAR(module_doc, "Windows.Devices.Display");
631
795
 
632
- static PyModuleDef module_def
633
- = {PyModuleDef_HEAD_INIT,
634
- "_winrt_windows_devices_display",
635
- module_doc,
636
- 0,
637
- nullptr,
638
- nullptr,
639
- nullptr,
640
- nullptr,
641
- nullptr};
642
-
796
+ static PyModuleDef module_def = {
797
+ PyModuleDef_HEAD_INIT,
798
+ "_winrt_windows_devices_display",
799
+ module_doc,
800
+ 0,
801
+ nullptr,
802
+ nullptr,
803
+ nullptr,
804
+ nullptr,
805
+ nullptr};
643
806
  } // py::cpp::Windows::Devices::Display
644
807
 
645
808
  PyMODINIT_FUNC PyInit__winrt_windows_devices_display(void) noexcept
@@ -677,7 +840,8 @@ PyMODINIT_FUNC PyInit__winrt_windows_devices_display(void) noexcept
677
840
  return nullptr;
678
841
  }
679
842
 
680
- if (py::register_python_type(module.get(), &type_spec_DisplayMonitor, object_bases.get(), reinterpret_cast<PyTypeObject*>(type_DisplayMonitor_Static.get())) == -1)
843
+ py::pytype_handle DisplayMonitor_type{py::register_python_type(module.get(), &type_spec_DisplayMonitor, object_bases.get(), reinterpret_cast<PyTypeObject*>(type_DisplayMonitor_Static.get()))};
844
+ if (!DisplayMonitor_type)
681
845
  {
682
846
  return nullptr;
683
847
  }
@@ -16,7 +16,7 @@ classifiers = [
16
16
  "Intended Audience :: Developers",
17
17
  ]
18
18
  dynamic = ["version", "dependencies", "optional-dependencies"]
19
- requires-python = ">=3.9,<3.13"
19
+ requires-python = ">=3.9,<3.14"
20
20
 
21
21
  [project.urls]
22
22
  # Homepage = "https://github.com/pywinrt/pywinrt"
@@ -36,7 +36,8 @@ optional-dependencies.all = { file = "all-requirements.txt" }
36
36
  # use local winrt-sdk build dependency
37
37
  environment = { PYTHONPATH="../winrt-sdk/src" }
38
38
  # don't install winrt-sdk from PyPI
39
- build-frontend = { name = "build", args = ["--skip-dependency-check", "--no-isolation"] }
39
+ build-frontend = { name = "build[uv]", args = ["--skip-dependency-check", "--no-isolation"] }
40
+ before-build = "uv pip install setuptools"
40
41
  # don't build for PyPy
41
42
  skip = "pp*"
42
43
  # suppress warnings about ARM64 testing
@@ -1,3 +1,3 @@
1
- # WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.1
1
+ # WARNING: Please don't edit this file. It was generated by Python/WinRT v2.2.0
2
2
 
3
- winrt-runtime==2.0.1
3
+ winrt-runtime==2.2.0
@@ -1,4 +1,4 @@
1
- # WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.1
1
+ # WARNING: Please don't edit this file. It was generated by Python/WinRT v2.2.0
2
2
 
3
3
  import datetime
4
4
  import sys
@@ -9,8 +9,8 @@ from builtins import property as _property
9
9
 
10
10
  import winrt._winrt
11
11
  import winrt.system
12
- import winrt.windows.foundation
13
- import winrt.windows.graphics
12
+ import winrt.windows.foundation as windows_foundation
13
+ import winrt.windows.graphics as windows_graphics
14
14
 
15
15
  from winrt.windows.devices.display import DisplayMonitorConnectionKind, DisplayMonitorDescriptorKind, DisplayMonitorPhysicalConnectorKind, DisplayMonitorUsageKind
16
16
 
@@ -18,17 +18,17 @@ Self = typing.TypeVar('Self')
18
18
 
19
19
  @typing.final
20
20
  class DisplayMonitor_Static(type):
21
- def from_id_async(cls, device_id: str, /) -> winrt.windows.foundation.IAsyncOperation[DisplayMonitor]: ...
22
- def from_interface_id_async(cls, device_interface_id: str, /) -> winrt.windows.foundation.IAsyncOperation[DisplayMonitor]: ...
21
+ def from_id_async(cls, device_id: str, /) -> windows_foundation.IAsyncOperation[DisplayMonitor]: ...
22
+ def from_interface_id_async(cls, device_interface_id: str, /) -> windows_foundation.IAsyncOperation[DisplayMonitor]: ...
23
23
  def get_device_selector(cls) -> str: ...
24
24
 
25
25
  @typing.final
26
26
  class DisplayMonitor(winrt.system.Object, metaclass=DisplayMonitor_Static):
27
27
  @staticmethod
28
28
  def _from(obj: winrt.system.Object, /) -> DisplayMonitor: ...
29
- def get_descriptor(self, descriptor_kind: DisplayMonitorDescriptorKind, /) -> winrt.system.UInt8: ...
29
+ def get_descriptor(self, descriptor_kind: DisplayMonitorDescriptorKind, /) -> winrt.system.Array[winrt.system.UInt8]: ...
30
30
  @_property
31
- def blue_primary(self) -> winrt.windows.foundation.Point: ...
31
+ def blue_primary(self) -> windows_foundation.Point: ...
32
32
  @_property
33
33
  def connection_kind(self) -> DisplayMonitorConnectionKind: ...
34
34
  @_property
@@ -36,13 +36,13 @@ class DisplayMonitor(winrt.system.Object, metaclass=DisplayMonitor_Static):
36
36
  @_property
37
37
  def display_adapter_device_id(self) -> str: ...
38
38
  @_property
39
- def display_adapter_id(self) -> winrt.windows.graphics.DisplayAdapterId: ...
39
+ def display_adapter_id(self) -> windows_graphics.DisplayAdapterId: ...
40
40
  @_property
41
41
  def display_adapter_target_id(self) -> winrt.system.UInt32: ...
42
42
  @_property
43
43
  def display_name(self) -> str: ...
44
44
  @_property
45
- def green_primary(self) -> winrt.windows.foundation.Point: ...
45
+ def green_primary(self) -> windows_foundation.Point: ...
46
46
  @_property
47
47
  def max_average_full_frame_luminance_in_nits(self) -> winrt.system.Single: ...
48
48
  @_property
@@ -50,21 +50,21 @@ class DisplayMonitor(winrt.system.Object, metaclass=DisplayMonitor_Static):
50
50
  @_property
51
51
  def min_luminance_in_nits(self) -> winrt.system.Single: ...
52
52
  @_property
53
- def native_resolution_in_raw_pixels(self) -> winrt.windows.graphics.SizeInt32: ...
53
+ def native_resolution_in_raw_pixels(self) -> windows_graphics.SizeInt32: ...
54
54
  @_property
55
55
  def physical_connector(self) -> DisplayMonitorPhysicalConnectorKind: ...
56
56
  @_property
57
- def physical_size_in_inches(self) -> typing.Optional[typing.Optional[winrt.windows.foundation.Size]]: ...
57
+ def physical_size_in_inches(self) -> typing.Optional[typing.Optional[windows_foundation.Size]]: ...
58
58
  @_property
59
59
  def raw_dpi_x(self) -> winrt.system.Single: ...
60
60
  @_property
61
61
  def raw_dpi_y(self) -> winrt.system.Single: ...
62
62
  @_property
63
- def red_primary(self) -> winrt.windows.foundation.Point: ...
63
+ def red_primary(self) -> windows_foundation.Point: ...
64
64
  @_property
65
65
  def usage_kind(self) -> DisplayMonitorUsageKind: ...
66
66
  @_property
67
- def white_point(self) -> winrt.windows.foundation.Point: ...
67
+ def white_point(self) -> windows_foundation.Point: ...
68
68
  @_property
69
69
  def is_dolby_vision_supported_in_hdr_mode(self) -> bool: ...
70
70
 
@@ -1,4 +1,4 @@
1
- # WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.1
1
+ # WARNING: Please don't edit this file. It was generated by Python/WinRT v2.2.0
2
2
 
3
3
  import enum
4
4
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: winrt-Windows.Devices.Display
3
- Version: 2.0.1
3
+ Version: 2.2.0
4
4
  Summary: Python projection of Windows Runtime (WinRT) APIs
5
5
  License: MIT
6
6
  Project-URL: Documentation, https://pywinrt.readthedocs.io
@@ -10,12 +10,12 @@ Classifier: Operating System :: Microsoft :: Windows
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: Implementation :: CPython
12
12
  Classifier: Intended Audience :: Developers
13
- Requires-Python: <3.13,>=3.9
13
+ Requires-Python: <3.14,>=3.9
14
14
  Description-Content-Type: text/markdown
15
- Requires-Dist: winrt-runtime==2.0.1
15
+ Requires-Dist: winrt-runtime==2.2.0
16
16
  Provides-Extra: all
17
- Requires-Dist: winrt-Windows.Foundation[all]==2.0.1; extra == "all"
18
- Requires-Dist: winrt-Windows.Graphics[all]==2.0.1; extra == "all"
17
+ Requires-Dist: winrt-Windows.Foundation[all]==2.2.0; extra == "all"
18
+ Requires-Dist: winrt-Windows.Graphics[all]==2.2.0; extra == "all"
19
19
 
20
20
  <!-- warning: Please don't edit this file. It was automatically generated. -->
21
21
 
@@ -0,0 +1,5 @@
1
+ winrt-runtime==2.2.0
2
+
3
+ [all]
4
+ winrt-Windows.Foundation[all]==2.2.0
5
+ winrt-Windows.Graphics[all]==2.2.0
@@ -1,4 +0,0 @@
1
- # WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.1
2
-
3
- winrt-Windows.Foundation[all]==2.0.1
4
- winrt-Windows.Graphics[all]==2.0.1
@@ -1,5 +0,0 @@
1
- winrt-runtime==2.0.1
2
-
3
- [all]
4
- winrt-Windows.Foundation[all]==2.0.1
5
- winrt-Windows.Graphics[all]==2.0.1