Skip to content

Conversation

AlexWaygood
Copy link
Member

@AlexWaygood AlexWaygood commented Aug 29, 2025

Summary

The error message we give if somebody attempts to assign to a read-only property is currently not very user-friendly: https://play.ty.dev/599eb199-504a-4fff-8ee9-585880838b5e. But this is a common error that is worth special casing so that we present a better error message. #19936 (my work-in-progress PR for @property protocol members) also threatens to make this error message more prominent in some situations, so it seems worth cleaning it up now.

Test Plan

Mdtests

@AlexWaygood AlexWaygood added the ty Multi-file analysis & type inference label Aug 29, 2025
Copy link
Contributor

github-actions bot commented Aug 29, 2025

Diagnostic diff on typing conformance tests

Changes were detected when running ty on typing conformance tests
--- old-output.txt	2025-08-29 13:20:05.597538888 +0000
+++ new-output.txt	2025-08-29 13:20:08.233544852 +0000
@@ -670,7 +670,7 @@
 namedtuples_type_compat.py:23:1: error[invalid-assignment] Object of type `Point` is not assignable to `tuple[int, str, str]`
 namedtuples_usage.py:34:7: error[index-out-of-bounds] Index 3 is out of bounds for tuple `Point` with length 3
 namedtuples_usage.py:35:7: error[index-out-of-bounds] Index -4 is out of bounds for tuple `Point` with length 3
-namedtuples_usage.py:40:1: error[invalid-assignment] Invalid assignment to data descriptor attribute `x` on type `Point` with custom `__set__` method
+namedtuples_usage.py:40:1: error[invalid-assignment] Cannot assign to read-only property `x` on object of type `Point`
 namedtuples_usage.py:41:1: error[invalid-assignment] Cannot assign to object of type `Point` with no `__setitem__` method
 namedtuples_usage.py:52:1: error[invalid-assignment] Too many values to unpack: Expected 2
 namedtuples_usage.py:53:1: error[invalid-assignment] Not enough values to unpack: Expected 4

Copy link
Contributor

github-actions bot commented Aug 29, 2025

mypy_primer results

Changes were detected when running on open source projects
trio (https://github.com/python-trio/trio)
- src/trio/_util.py:221:17: error[invalid-assignment] Invalid assignment to data descriptor attribute `__name__` on type `<Protocol with members '__name__'>` with custom `__set__` method
+ src/trio/_util.py:221:17: error[invalid-assignment] Cannot assign to read-only property `__name__` on object of type `<Protocol with members '__name__'>`

pywin32 (https://github.com/mhammond/pywin32)
- com/win32comext/axcontrol/demos/container_ie.py:178:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- com/win32comext/axcontrol/demos/container_ie.py:181:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpfnWndProc` on type `PyWNDCLASS` with custom `__set__` method
+ com/win32comext/axcontrol/demos/container_ie.py:178:9: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ com/win32comext/axcontrol/demos/container_ie.py:181:9: error[invalid-assignment] Cannot assign to read-only property `lpfnWndProc` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpfnWndProc` here
- com/win32comext/directsound/test/ds_record.py:32:1: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwBufferBytes` on type `PyDSCBUFFERDESC` with custom `__set__` method
- com/win32comext/directsound/test/ds_record.py:33:1: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpwfxFormat` on type `PyDSCBUFFERDESC` with custom `__set__` method
+ com/win32comext/directsound/test/ds_record.py:32:1: error[invalid-assignment] Cannot assign to read-only property `dwBufferBytes` on object of type `PyDSCBUFFERDESC`: Attempted assignment to `PyDSCBUFFERDESC.dwBufferBytes` here
+ com/win32comext/directsound/test/ds_record.py:33:1: error[invalid-assignment] Cannot assign to read-only property `lpwfxFormat` on object of type `PyDSCBUFFERDESC`: Attempted assignment to `PyDSCBUFFERDESC.lpwfxFormat` here
- com/win32comext/directsound/test/ds_test.py:47:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `wFormatTag` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:48:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `nChannels` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:49:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `nSamplesPerSec` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:50:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `nAvgBytesPerSec` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:51:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `nBlockAlign` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:52:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `wBitsPerSample` on type `PyWAVEFORMATEX` with custom `__set__` method
+ com/win32comext/directsound/test/ds_test.py:47:5: error[invalid-assignment] Cannot assign to read-only property `wFormatTag` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.wFormatTag` here
+ com/win32comext/directsound/test/ds_test.py:48:5: error[invalid-assignment] Cannot assign to read-only property `nChannels` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.nChannels` here
+ com/win32comext/directsound/test/ds_test.py:49:5: error[invalid-assignment] Cannot assign to read-only property `nSamplesPerSec` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.nSamplesPerSec` here
+ com/win32comext/directsound/test/ds_test.py:50:5: error[invalid-assignment] Cannot assign to read-only property `nAvgBytesPerSec` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.nAvgBytesPerSec` here
+ com/win32comext/directsound/test/ds_test.py:51:5: error[invalid-assignment] Cannot assign to read-only property `nBlockAlign` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.nBlockAlign` here
+ com/win32comext/directsound/test/ds_test.py:52:5: error[invalid-assignment] Cannot assign to read-only property `wBitsPerSample` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.wBitsPerSample` here
- com/win32comext/directsound/test/ds_test.py:86:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `wFormatTag` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:87:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `nChannels` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:88:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `nSamplesPerSec` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:89:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `nAvgBytesPerSec` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:90:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `nBlockAlign` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:91:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `wBitsPerSample` on type `PyWAVEFORMATEX` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:110:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFlags` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:111:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwMinSecondarySampleRate` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:112:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwMaxSecondarySampleRate` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:113:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwPrimaryBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:114:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwMaxHwMixingAllBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:115:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwMaxHwMixingStaticBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:116:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwMaxHwMixingStreamingBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:117:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFreeHwMixingAllBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:118:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFreeHwMixingStaticBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:119:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFreeHwMixingStreamingBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:120:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwMaxHw3DAllBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:121:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwMaxHw3DStaticBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:122:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwMaxHw3DStreamingBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:123:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFreeHw3DAllBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:124:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFreeHw3DStaticBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:125:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFreeHw3DStreamingBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:126:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwTotalHwMemBytes` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:127:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFreeHwMemBytes` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:128:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwMaxContigFreeHwMemBytes` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:129:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwUnlockTransferRateHwBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:130:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwPlayCpuOverheadSwBuffers` on type `PyDSCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:164:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFlags` on type `PyDSBCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:165:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwBufferBytes` on type `PyDSBCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:166:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwUnlockTransferRate` on type `PyDSBCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:167:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwPlayCpuOverhead` on type `PyDSBCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:184:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFlags` on type `PyDSCCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:185:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFormats` on type `PyDSCCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:186:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwChannels` on type `PyDSCCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:202:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFlags` on type `PyDSCBCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:203:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwBufferBytes` on type `PyDSCBCAPS` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:218:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFlags` on type `PyDSBUFFERDESC` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:219:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwBufferBytes` on type `PyDSBUFFERDESC` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:220:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpwfxFormat` on type `PyDSBUFFERDESC` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:255:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFlags` on type `PyDSCBUFFERDESC` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:256:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwBufferBytes` on type `PyDSCBUFFERDESC` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:257:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpwfxFormat` on type `PyDSCBUFFERDESC` with custom `__set__` method
+ com/win32comext/directsound/test/ds_test.py:86:9: error[invalid-assignment] Cannot assign to read-only property `wFormatTag` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.wFormatTag` here
+ com/win32comext/directsound/test/ds_test.py:87:9: error[invalid-assignment] Cannot assign to read-only property `nChannels` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.nChannels` here
+ com/win32comext/directsound/test/ds_test.py:88:9: error[invalid-assignment] Cannot assign to read-only property `nSamplesPerSec` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.nSamplesPerSec` here
+ com/win32comext/directsound/test/ds_test.py:89:9: error[invalid-assignment] Cannot assign to read-only property `nAvgBytesPerSec` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.nAvgBytesPerSec` here
+ com/win32comext/directsound/test/ds_test.py:90:9: error[invalid-assignment] Cannot assign to read-only property `nBlockAlign` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.nBlockAlign` here
+ com/win32comext/directsound/test/ds_test.py:91:9: error[invalid-assignment] Cannot assign to read-only property `wBitsPerSample` on object of type `PyWAVEFORMATEX`: Attempted assignment to `PyWAVEFORMATEX.wBitsPerSample` here
+ com/win32comext/directsound/test/ds_test.py:110:9: error[invalid-assignment] Cannot assign to read-only property `dwFlags` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwFlags` here
+ com/win32comext/directsound/test/ds_test.py:111:9: error[invalid-assignment] Cannot assign to read-only property `dwMinSecondarySampleRate` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwMinSecondarySampleRate` here
+ com/win32comext/directsound/test/ds_test.py:112:9: error[invalid-assignment] Cannot assign to read-only property `dwMaxSecondarySampleRate` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwMaxSecondarySampleRate` here
+ com/win32comext/directsound/test/ds_test.py:113:9: error[invalid-assignment] Cannot assign to read-only property `dwPrimaryBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwPrimaryBuffers` here
+ com/win32comext/directsound/test/ds_test.py:114:9: error[invalid-assignment] Cannot assign to read-only property `dwMaxHwMixingAllBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwMaxHwMixingAllBuffers` here
+ com/win32comext/directsound/test/ds_test.py:115:9: error[invalid-assignment] Cannot assign to read-only property `dwMaxHwMixingStaticBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwMaxHwMixingStaticBuffers` here
+ com/win32comext/directsound/test/ds_test.py:116:9: error[invalid-assignment] Cannot assign to read-only property `dwMaxHwMixingStreamingBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwMaxHwMixingStreamingBuffers` here
+ com/win32comext/directsound/test/ds_test.py:117:9: error[invalid-assignment] Cannot assign to read-only property `dwFreeHwMixingAllBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwFreeHwMixingAllBuffers` here
+ com/win32comext/directsound/test/ds_test.py:118:9: error[invalid-assignment] Cannot assign to read-only property `dwFreeHwMixingStaticBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwFreeHwMixingStaticBuffers` here
+ com/win32comext/directsound/test/ds_test.py:119:9: error[invalid-assignment] Cannot assign to read-only property `dwFreeHwMixingStreamingBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwFreeHwMixingStreamingBuffers` here
+ com/win32comext/directsound/test/ds_test.py:120:9: error[invalid-assignment] Cannot assign to read-only property `dwMaxHw3DAllBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwMaxHw3DAllBuffers` here
+ com/win32comext/directsound/test/ds_test.py:121:9: error[invalid-assignment] Cannot assign to read-only property `dwMaxHw3DStaticBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwMaxHw3DStaticBuffers` here
+ com/win32comext/directsound/test/ds_test.py:122:9: error[invalid-assignment] Cannot assign to read-only property `dwMaxHw3DStreamingBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwMaxHw3DStreamingBuffers` here
+ com/win32comext/directsound/test/ds_test.py:123:9: error[invalid-assignment] Cannot assign to read-only property `dwFreeHw3DAllBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwFreeHw3DAllBuffers` here
+ com/win32comext/directsound/test/ds_test.py:124:9: error[invalid-assignment] Cannot assign to read-only property `dwFreeHw3DStaticBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwFreeHw3DStaticBuffers` here
+ com/win32comext/directsound/test/ds_test.py:125:9: error[invalid-assignment] Cannot assign to read-only property `dwFreeHw3DStreamingBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwFreeHw3DStreamingBuffers` here
+ com/win32comext/directsound/test/ds_test.py:126:9: error[invalid-assignment] Cannot assign to read-only property `dwTotalHwMemBytes` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwTotalHwMemBytes` here
+ com/win32comext/directsound/test/ds_test.py:127:9: error[invalid-assignment] Cannot assign to read-only property `dwFreeHwMemBytes` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwFreeHwMemBytes` here
+ com/win32comext/directsound/test/ds_test.py:128:9: error[invalid-assignment] Cannot assign to read-only property `dwMaxContigFreeHwMemBytes` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwMaxContigFreeHwMemBytes` here
+ com/win32comext/directsound/test/ds_test.py:129:9: error[invalid-assignment] Cannot assign to read-only property `dwUnlockTransferRateHwBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwUnlockTransferRateHwBuffers` here
+ com/win32comext/directsound/test/ds_test.py:130:9: error[invalid-assignment] Cannot assign to read-only property `dwPlayCpuOverheadSwBuffers` on object of type `PyDSCAPS`: Attempted assignment to `PyDSCAPS.dwPlayCpuOverheadSwBuffers` here
+ com/win32comext/directsound/test/ds_test.py:164:9: error[invalid-assignment] Cannot assign to read-only property `dwFlags` on object of type `PyDSBCAPS`: Attempted assignment to `PyDSBCAPS.dwFlags` here
+ com/win32comext/directsound/test/ds_test.py:165:9: error[invalid-assignment] Cannot assign to read-only property `dwBufferBytes` on object of type `PyDSBCAPS`: Attempted assignment to `PyDSBCAPS.dwBufferBytes` here
+ com/win32comext/directsound/test/ds_test.py:166:9: error[invalid-assignment] Cannot assign to read-only property `dwUnlockTransferRate` on object of type `PyDSBCAPS`: Attempted assignment to `PyDSBCAPS.dwUnlockTransferRate` here
+ com/win32comext/directsound/test/ds_test.py:167:9: error[invalid-assignment] Cannot assign to read-only property `dwPlayCpuOverhead` on object of type `PyDSBCAPS`: Attempted assignment to `PyDSBCAPS.dwPlayCpuOverhead` here
+ com/win32comext/directsound/test/ds_test.py:184:9: error[invalid-assignment] Cannot assign to read-only property `dwFlags` on object of type `PyDSCCAPS`: Attempted assignment to `PyDSCCAPS.dwFlags` here
+ com/win32comext/directsound/test/ds_test.py:185:9: error[invalid-assignment] Cannot assign to read-only property `dwFormats` on object of type `PyDSCCAPS`: Attempted assignment to `PyDSCCAPS.dwFormats` here
+ com/win32comext/directsound/test/ds_test.py:186:9: error[invalid-assignment] Cannot assign to read-only property `dwChannels` on object of type `PyDSCCAPS`: Attempted assignment to `PyDSCCAPS.dwChannels` here
+ com/win32comext/directsound/test/ds_test.py:202:9: error[invalid-assignment] Cannot assign to read-only property `dwFlags` on object of type `PyDSCBCAPS`: Attempted assignment to `PyDSCBCAPS.dwFlags` here
+ com/win32comext/directsound/test/ds_test.py:203:9: error[invalid-assignment] Cannot assign to read-only property `dwBufferBytes` on object of type `PyDSCBCAPS`: Attempted assignment to `PyDSCBCAPS.dwBufferBytes` here
+ com/win32comext/directsound/test/ds_test.py:218:9: error[invalid-assignment] Cannot assign to read-only property `dwFlags` on object of type `PyDSBUFFERDESC`: Attempted assignment to `PyDSBUFFERDESC.dwFlags` here
+ com/win32comext/directsound/test/ds_test.py:219:9: error[invalid-assignment] Cannot assign to read-only property `dwBufferBytes` on object of type `PyDSBUFFERDESC`: Attempted assignment to `PyDSBUFFERDESC.dwBufferBytes` here
+ com/win32comext/directsound/test/ds_test.py:220:9: error[invalid-assignment] Cannot assign to read-only property `lpwfxFormat` on object of type `PyDSBUFFERDESC`: Attempted assignment to `PyDSBUFFERDESC.lpwfxFormat` here
+ com/win32comext/directsound/test/ds_test.py:255:9: error[invalid-assignment] Cannot assign to read-only property `dwFlags` on object of type `PyDSCBUFFERDESC`: Attempted assignment to `PyDSCBUFFERDESC.dwFlags` here
+ com/win32comext/directsound/test/ds_test.py:256:9: error[invalid-assignment] Cannot assign to read-only property `dwBufferBytes` on object of type `PyDSCBUFFERDESC`: Attempted assignment to `PyDSCBUFFERDESC.dwBufferBytes` here
+ com/win32comext/directsound/test/ds_test.py:257:9: error[invalid-assignment] Cannot assign to read-only property `lpwfxFormat` on object of type `PyDSCBUFFERDESC`: Attempted assignment to `PyDSCBUFFERDESC.lpwfxFormat` here
- com/win32comext/directsound/test/ds_test.py:325:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwFlags` on type `PyDSBUFFERDESC` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:326:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwBufferBytes` on type `PyDSBUFFERDESC` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:327:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpwfxFormat` on type `PyDSBUFFERDESC` with custom `__set__` method
+ com/win32comext/directsound/test/ds_test.py:325:13: error[invalid-assignment] Cannot assign to read-only property `dwFlags` on object of type `PyDSBUFFERDESC`: Attempted assignment to `PyDSBUFFERDESC.dwFlags` here
+ com/win32comext/directsound/test/ds_test.py:326:13: error[invalid-assignment] Cannot assign to read-only property `dwBufferBytes` on object of type `PyDSBUFFERDESC`: Attempted assignment to `PyDSBUFFERDESC.dwBufferBytes` here
+ com/win32comext/directsound/test/ds_test.py:327:13: error[invalid-assignment] Cannot assign to read-only property `lpwfxFormat` on object of type `PyDSBUFFERDESC`: Attempted assignment to `PyDSBUFFERDESC.lpwfxFormat` here
- com/win32comext/directsound/test/ds_test.py:372:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dwBufferBytes` on type `PyDSCBUFFERDESC` with custom `__set__` method
- com/win32comext/directsound/test/ds_test.py:373:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpwfxFormat` on type `PyDSCBUFFERDESC` with custom `__set__` method
+ com/win32comext/directsound/test/ds_test.py:372:9: error[invalid-assignment] Cannot assign to read-only property `dwBufferBytes` on object of type `PyDSCBUFFERDESC`: Attempted assignment to `PyDSCBUFFERDESC.dwBufferBytes` here
+ com/win32comext/directsound/test/ds_test.py:373:9: error[invalid-assignment] Cannot assign to read-only property `lpwfxFormat` on object of type `PyDSCBUFFERDESC`: Attempted assignment to `PyDSCBUFFERDESC.lpwfxFormat` here
- com/win32comext/shell/demos/explorer_browser.py:52:17: error[invalid-assignment] Invalid assignment to data descriptor attribute `hInstance` on type `PyWNDCLASS` with custom `__set__` method
- com/win32comext/shell/demos/explorer_browser.py:53:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- com/win32comext/shell/demos/explorer_browser.py:54:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpfnWndProc` on type `PyWNDCLASS` with custom `__set__` method
+ com/win32comext/shell/demos/explorer_browser.py:52:17: error[invalid-assignment] Cannot assign to read-only property `hInstance` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hInstance` here
+ com/win32comext/shell/demos/explorer_browser.py:53:9: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ com/win32comext/shell/demos/explorer_browser.py:54:9: error[invalid-assignment] Cannot assign to read-only property `lpfnWndProc` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpfnWndProc` here
- com/win32comext/shell/demos/servers/shell_view.py:443:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `hInstance` on type `PyWNDCLASS` with custom `__set__` method
- com/win32comext/shell/demos/servers/shell_view.py:444:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- com/win32comext/shell/demos/servers/shell_view.py:445:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `style` on type `PyWNDCLASS` with custom `__set__` method
+ com/win32comext/shell/demos/servers/shell_view.py:443:9: error[invalid-assignment] Cannot assign to read-only property `hInstance` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hInstance` here
+ com/win32comext/shell/demos/servers/shell_view.py:444:9: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ com/win32comext/shell/demos/servers/shell_view.py:445:9: error[invalid-assignment] Cannot assign to read-only property `style` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.style` here
- win32/Demos/desktopmanager.py:89:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `hInstance` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/desktopmanager.py:90:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/desktopmanager.py:91:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `style` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/desktopmanager.py:92:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `hCursor` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/desktopmanager.py:93:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `hbrBackground` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/desktopmanager.py:94:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpfnWndProc` on type `PyWNDCLASS` with custom `__set__` method
+ win32/Demos/desktopmanager.py:89:5: error[invalid-assignment] Cannot assign to read-only property `hInstance` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hInstance` here
+ win32/Demos/desktopmanager.py:90:5: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ win32/Demos/desktopmanager.py:91:5: error[invalid-assignment] Cannot assign to read-only property `style` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.style` here
+ win32/Demos/desktopmanager.py:92:5: error[invalid-assignment] Cannot assign to read-only property `hCursor` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hCursor` here
+ win32/Demos/desktopmanager.py:93:5: error[invalid-assignment] Cannot assign to read-only property `hbrBackground` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hbrBackground` here
+ win32/Demos/desktopmanager.py:94:5: error[invalid-assignment] Cannot assign to read-only property `lpfnWndProc` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpfnWndProc` here
- win32/Demos/print_desktop.py:87:1: error[invalid-assignment] Invalid assignment to data descriptor attribute `lfHeight` on type `PyLOGFONT` with custom `__set__` method
- win32/Demos/print_desktop.py:88:1: error[invalid-assignment] Invalid assignment to data descriptor attribute `lfWidth` on type `PyLOGFONT` with custom `__set__` method
- win32/Demos/print_desktop.py:89:1: error[invalid-assignment] Invalid assignment to data descriptor attribute `lfWeight` on type `PyLOGFONT` with custom `__set__` method
- win32/Demos/print_desktop.py:90:1: error[invalid-assignment] Invalid assignment to data descriptor attribute `lfItalic` on type `PyLOGFONT` with custom `__set__` method
- win32/Demos/print_desktop.py:91:1: error[invalid-assignment] Invalid assignment to data descriptor attribute `lfUnderline` on type `PyLOGFONT` with custom `__set__` method
+ win32/Demos/print_desktop.py:87:1: error[invalid-assignment] Cannot assign to read-only property `lfHeight` on object of type `PyLOGFONT`: Attempted assignment to `PyLOGFONT.lfHeight` here
+ win32/Demos/print_desktop.py:88:1: error[invalid-assignment] Cannot assign to read-only property `lfWidth` on object of type `PyLOGFONT`: Attempted assignment to `PyLOGFONT.lfWidth` here
+ win32/Demos/print_desktop.py:89:1: error[invalid-assignment] Cannot assign to read-only property `lfWeight` on object of type `PyLOGFONT`: Attempted assignment to `PyLOGFONT.lfWeight` here
+ win32/Demos/print_desktop.py:90:1: error[invalid-assignment] Cannot assign to read-only property `lfItalic` on object of type `PyLOGFONT`: Attempted assignment to `PyLOGFONT.lfItalic` here
+ win32/Demos/print_desktop.py:91:1: error[invalid-assignment] Cannot assign to read-only property `lfUnderline` on object of type `PyLOGFONT`: Attempted assignment to `PyLOGFONT.lfUnderline` here
- win32/Demos/security/sspi/simple_auth.py:59:1: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/Demos/security/sspi/simple_auth.py:68:1: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
+ win32/Demos/security/sspi/simple_auth.py:59:1: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/Demos/security/sspi/simple_auth.py:68:1: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
- win32/Demos/win32clipboard_bitmapdemo.py:22:17: error[invalid-assignment] Invalid assignment to data descriptor attribute `lfHeight` on type `PyLOGFONT` with custom `__set__` method
- win32/Demos/win32clipboard_bitmapdemo.py:23:17: error[invalid-assignment] Invalid assignment to data descriptor attribute `lfWidth` on type `PyLOGFONT` with custom `__set__` method
+ win32/Demos/win32clipboard_bitmapdemo.py:22:17: error[invalid-assignment] Cannot assign to read-only property `lfHeight` on object of type `PyLOGFONT`: Attempted assignment to `PyLOGFONT.lfHeight` here
+ win32/Demos/win32clipboard_bitmapdemo.py:23:17: error[invalid-assignment] Cannot assign to read-only property `lfWidth` on object of type `PyLOGFONT`: Attempted assignment to `PyLOGFONT.lfWidth` here
- win32/Demos/win32clipboard_bitmapdemo.py:88:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32clipboard_bitmapdemo.py:89:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `style` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32clipboard_bitmapdemo.py:90:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `hbrBackground` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32clipboard_bitmapdemo.py:91:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpfnWndProc` on type `PyWNDCLASS` with custom `__set__` method
+ win32/Demos/win32clipboard_bitmapdemo.py:88:9: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ win32/Demos/win32clipboard_bitmapdemo.py:89:9: error[invalid-assignment] Cannot assign to read-only property `style` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.style` here
+ win32/Demos/win32clipboard_bitmapdemo.py:90:9: error[invalid-assignment] Cannot assign to read-only property `hbrBackground` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hbrBackground` here
+ win32/Demos/win32clipboard_bitmapdemo.py:91:9: error[invalid-assignment] Cannot assign to read-only property `lpfnWndProc` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpfnWndProc` here
- win32/Demos/win32comport_demo.py:106:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `BaudRate` on type `PyDCB` with custom `__set__` method
- win32/Demos/win32comport_demo.py:107:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `ByteSize` on type `PyDCB` with custom `__set__` method
- win32/Demos/win32comport_demo.py:108:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Parity` on type `PyDCB` with custom `__set__` method
- win32/Demos/win32comport_demo.py:109:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `StopBits` on type `PyDCB` with custom `__set__` method
+ win32/Demos/win32comport_demo.py:106:9: error[invalid-assignment] Cannot assign to read-only property `BaudRate` on object of type `PyDCB`: Attempted assignment to `PyDCB.BaudRate` here
+ win32/Demos/win32comport_demo.py:107:9: error[invalid-assignment] Cannot assign to read-only property `ByteSize` on object of type `PyDCB`: Attempted assignment to `PyDCB.ByteSize` here
+ win32/Demos/win32comport_demo.py:108:9: error[invalid-assignment] Cannot assign to read-only property `Parity` on object of type `PyDCB`: Attempted assignment to `PyDCB.Parity` here
+ win32/Demos/win32comport_demo.py:109:9: error[invalid-assignment] Cannot assign to read-only property `StopBits` on object of type `PyDCB`: Attempted assignment to `PyDCB.StopBits` here
- win32/Demos/win32gui_demo.py:111:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_demo.py:112:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `style` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_demo.py:113:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `hbrBackground` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_demo.py:114:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpfnWndProc` on type `PyWNDCLASS` with custom `__set__` method
+ win32/Demos/win32gui_demo.py:111:5: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ win32/Demos/win32gui_demo.py:112:5: error[invalid-assignment] Cannot assign to read-only property `style` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.style` here
+ win32/Demos/win32gui_demo.py:113:5: error[invalid-assignment] Cannot assign to read-only property `hbrBackground` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hbrBackground` here
+ win32/Demos/win32gui_demo.py:114:5: error[invalid-assignment] Cannot assign to read-only property `lpfnWndProc` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpfnWndProc` here
- win32/Demos/win32gui_demo.py:139:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_demo.py:140:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `style` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_demo.py:141:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `hbrBackground` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_demo.py:142:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpfnWndProc` on type `PyWNDCLASS` with custom `__set__` method
+ win32/Demos/win32gui_demo.py:139:5: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ win32/Demos/win32gui_demo.py:140:5: error[invalid-assignment] Cannot assign to read-only property `style` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.style` here
+ win32/Demos/win32gui_demo.py:141:5: error[invalid-assignment] Cannot assign to read-only property `hbrBackground` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hbrBackground` here
+ win32/Demos/win32gui_demo.py:142:5: error[invalid-assignment] Cannot assign to read-only property `lpfnWndProc` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpfnWndProc` here
- win32/Demos/win32gui_devicenotify.py:39:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_devicenotify.py:40:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `style` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_devicenotify.py:41:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `hbrBackground` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_devicenotify.py:42:5: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpfnWndProc` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_dialog.py:126:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `hInstance` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_dialog.py:127:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_dialog.py:128:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `style` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_dialog.py:129:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `hCursor` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_dialog.py:130:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `hbrBackground` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_dialog.py:131:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpfnWndProc` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_dialog.py:133:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `cbWndExtra` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_dialog.py:139:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `hIcon` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_dialog.py:141:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `hIcon` on type `PyWNDCLASS` with custom `__set__` method
+ win32/Demos/win32gui_devicenotify.py:39:5: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ win32/Demos/win32gui_devicenotify.py:40:5: error[invalid-assignment] Cannot assign to read-only property `style` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.style` here
+ win32/Demos/win32gui_devicenotify.py:41:5: error[invalid-assignment] Cannot assign to read-only property `hbrBackground` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hbrBackground` here
+ win32/Demos/win32gui_devicenotify.py:42:5: error[invalid-assignment] Cannot assign to read-only property `lpfnWndProc` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpfnWndProc` here
+ win32/Demos/win32gui_dialog.py:126:9: error[invalid-assignment] Cannot assign to read-only property `hInstance` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hInstance` here
+ win32/Demos/win32gui_dialog.py:127:9: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ win32/Demos/win32gui_dialog.py:128:9: error[invalid-assignment] Cannot assign to read-only property `style` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.style` here
+ win32/Demos/win32gui_dialog.py:129:9: error[invalid-assignment] Cannot assign to read-only property `hCursor` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hCursor` here
+ win32/Demos/win32gui_dialog.py:130:9: error[invalid-assignment] Cannot assign to read-only property `hbrBackground` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hbrBackground` here
+ win32/Demos/win32gui_dialog.py:131:9: error[invalid-assignment] Cannot assign to read-only property `lpfnWndProc` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpfnWndProc` here
+ win32/Demos/win32gui_dialog.py:133:9: error[invalid-assignment] Cannot assign to read-only property `cbWndExtra` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.cbWndExtra` here
+ win32/Demos/win32gui_dialog.py:139:13: error[invalid-assignment] Cannot assign to read-only property `hIcon` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hIcon` here
+ win32/Demos/win32gui_dialog.py:141:13: error[invalid-assignment] Cannot assign to read-only property `hIcon` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hIcon` here
- win32/Demos/win32gui_menu.py:91:17: error[invalid-assignment] Invalid assignment to data descriptor attribute `hInstance` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_menu.py:92:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_menu.py:93:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpfnWndProc` on type `PyWNDCLASS` with custom `__set__` method
+ win32/Demos/win32gui_menu.py:91:17: error[invalid-assignment] Cannot assign to read-only property `hInstance` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hInstance` here
+ win32/Demos/win32gui_menu.py:92:9: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ win32/Demos/win32gui_menu.py:93:9: error[invalid-assignment] Cannot assign to read-only property `lpfnWndProc` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpfnWndProc` here
- win32/Demos/win32gui_taskbar.py:23:17: error[invalid-assignment] Invalid assignment to data descriptor attribute `hInstance` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_taskbar.py:24:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpszClassName` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_taskbar.py:25:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `style` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_taskbar.py:26:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `hCursor` on type `PyWNDCLASS` with custom `__set__` method
+ win32/Demos/win32gui_taskbar.py:23:17: error[invalid-assignment] Cannot assign to read-only property `hInstance` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hInstance` here
+ win32/Demos/win32gui_taskbar.py:24:9: error[invalid-assignment] Cannot assign to read-only property `lpszClassName` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpszClassName` here
+ win32/Demos/win32gui_taskbar.py:25:9: error[invalid-assignment] Cannot assign to read-only property `style` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.style` here
+ win32/Demos/win32gui_taskbar.py:26:9: error[invalid-assignment] Cannot assign to read-only property `hCursor` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hCursor` here
- win32/Demos/win32gui_taskbar.py:27:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `hbrBackground` on type `PyWNDCLASS` with custom `__set__` method
- win32/Demos/win32gui_taskbar.py:28:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `lpfnWndProc` on type `PyWNDCLASS` with custom `__set__` method
+ win32/Demos/win32gui_taskbar.py:27:9: error[invalid-assignment] Cannot assign to read-only property `hbrBackground` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.hbrBackground` here
+ win32/Demos/win32gui_taskbar.py:28:9: error[invalid-assignment] Cannot assign to read-only property `lpfnWndProc` on object of type `PyWNDCLASS`: Attempted assignment to `PyWNDCLASS.lpfnWndProc` here
- win32/Lib/sspi.py:57:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/Lib/sspi.py:68:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/Lib/sspi.py:69:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/Lib/sspi.py:83:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/Lib/sspi.py:96:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/Lib/sspi.py:97:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/Lib/sspi.py:114:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/Lib/sspi.py:143:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/Lib/sspi.py:221:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/Lib/sspi.py:298:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
+ win32/Lib/sspi.py:57:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/Lib/sspi.py:68:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/Lib/sspi.py:69:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/Lib/sspi.py:83:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/Lib/sspi.py:96:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/Lib/sspi.py:97:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/Lib/sspi.py:114:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/Lib/sspi.py:143:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/Lib/sspi.py:221:13: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/Lib/sspi.py:298:13: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
- win32/test/test_sspi.py:73:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/test/test_sspi.py:106:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/test/test_sspi.py:115:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
- win32/test/test_sspi.py:144:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `Buffer` on type `PySecBuffer` with custom `__set__` method
+ win32/test/test_sspi.py:73:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/test/test_sspi.py:106:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/test/test_sspi.py:115:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here
+ win32/test/test_sspi.py:144:9: error[invalid-assignment] Cannot assign to read-only property `Buffer` on object of type `PySecBuffer`: Attempted assignment to `PySecBuffer.Buffer` here

sympy (https://github.com/sympy/sympy)
- sympy/physics/biomechanics/tests/test_musculotendon.py:782:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `e` on type `MusculotendonDeGroote2016` with custom `__set__` method
- sympy/physics/biomechanics/tests/test_musculotendon.py:784:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `excitation` on type `MusculotendonDeGroote2016` with custom `__set__` method
- sympy/physics/biomechanics/tests/test_musculotendon.py:805:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `a` on type `MusculotendonDeGroote2016` with custom `__set__` method
- sympy/physics/biomechanics/tests/test_musculotendon.py:807:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `activation` on type `MusculotendonDeGroote2016` with custom `__set__` method
+ sympy/physics/biomechanics/tests/test_musculotendon.py:782:13: error[invalid-assignment] Cannot assign to read-only property `e` on object of type `MusculotendonDeGroote2016`: Attempted assignment to `MusculotendonDeGroote2016.e` here
+ sympy/physics/biomechanics/tests/test_musculotendon.py:784:13: error[invalid-assignment] Cannot assign to read-only property `excitation` on object of type `MusculotendonDeGroote2016`: Attempted assignment to `MusculotendonDeGroote2016.excitation` here
+ sympy/physics/biomechanics/tests/test_musculotendon.py:805:13: error[invalid-assignment] Cannot assign to read-only property `a` on object of type `MusculotendonDeGroote2016`: Attempted assignment to `MusculotendonDeGroote2016.a` here
+ sympy/physics/biomechanics/tests/test_musculotendon.py:807:13: error[invalid-assignment] Cannot assign to read-only property `activation` on object of type `MusculotendonDeGroote2016`: Attempted assignment to `MusculotendonDeGroote2016.activation` here
- sympy/physics/mechanics/tests/test_system.py:171:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `bodies` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:173:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `coordinates` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:175:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dyn_implicit_rhs` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:177:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `comb_implicit_rhs` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:179:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `loads` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:181:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `dyn_implicit_mat` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:183:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `comb_implicit_mat` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:185:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `kin_explicit_rhs` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:187:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `comb_explicit_rhs` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:189:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `speeds` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:191:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `states` on type `SymbolicSystem` with custom `__set__` method
- sympy/physics/mechanics/tests/test_system.py:193:9: error[invalid-assignment] Invalid assignment to data descriptor attribute `alg_con` on type `SymbolicSystem` with custom `__set__` method
+ sympy/physics/mechanics/tests/test_system.py:171:9: error[invalid-assignment] Cannot assign to read-only property `bodies` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.bodies` here
+ sympy/physics/mechanics/tests/test_system.py:173:9: error[invalid-assignment] Cannot assign to read-only property `coordinates` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.coordinates` here
+ sympy/physics/mechanics/tests/test_system.py:175:9: error[invalid-assignment] Cannot assign to read-only property `dyn_implicit_rhs` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.dyn_implicit_rhs` here
+ sympy/physics/mechanics/tests/test_system.py:177:9: error[invalid-assignment] Cannot assign to read-only property `comb_implicit_rhs` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.comb_implicit_rhs` here
+ sympy/physics/mechanics/tests/test_system.py:179:9: error[invalid-assignment] Cannot assign to read-only property `loads` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.loads` here
+ sympy/physics/mechanics/tests/test_system.py:181:9: error[invalid-assignment] Cannot assign to read-only property `dyn_implicit_mat` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.dyn_implicit_mat` here
+ sympy/physics/mechanics/tests/test_system.py:183:9: error[invalid-assignment] Cannot assign to read-only property `comb_implicit_mat` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.comb_implicit_mat` here
+ sympy/physics/mechanics/tests/test_system.py:185:9: error[invalid-assignment] Cannot assign to read-only property `kin_explicit_rhs` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.kin_explicit_rhs` here
+ sympy/physics/mechanics/tests/test_system.py:187:9: error[invalid-assignment] Cannot assign to read-only property `comb_explicit_rhs` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.comb_explicit_rhs` here
+ sympy/physics/mechanics/tests/test_system.py:189:9: error[invalid-assignment] Cannot assign to read-only property `speeds` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.speeds` here
+ sympy/physics/mechanics/tests/test_system.py:191:9: error[invalid-assignment] Cannot assign to read-only property `states` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.states` here
+ sympy/physics/mechanics/tests/test_system.py:193:9: error[invalid-assignment] Cannot assign to read-only property `alg_con` on object of type `SymbolicSystem`: Attempted assignment to `SymbolicSystem.alg_con` here

scipy (https://github.com/scipy/scipy)
- scipy/stats/_mstats_extras.py:88:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `flat` on type `ndarray[tuple[int, int], Unknown]` with custom `__set__` method
- scipy/stats/_mstats_extras.py:181:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `flat` on type `ndarray[tuple[int], Unknown]` with custom `__set__` method
+ scipy/stats/_mstats_extras.py:88:13: error[invalid-assignment] Cannot assign to read-only property `flat` on object of type `ndarray[tuple[int, int], Unknown]`: Attempted assignment to `ndarray[tuple[int, int], Unknown].flat` here
+ scipy/stats/_mstats_extras.py:181:13: error[invalid-assignment] Cannot assign to read-only property `flat` on object of type `ndarray[tuple[int], Unknown]`: Attempted assignment to `ndarray[tuple[int], Unknown].flat` here
- scipy/stats/tests/test_continuous.py:2176:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `components` on type `Mixture` with custom `__set__` method
- scipy/stats/tests/test_continuous.py:2178:13: error[invalid-assignment] Invalid assignment to data descriptor attribute `weights` on type `Mixture` with custom `__set__` method
+ scipy/stats/tests/test_continuous.py:2176:13: error[invalid-assignment] Cannot assign to read-only property `components` on object of type `Mixture`: Attempted assignment to `Mixture.components` here
+ scipy/stats/tests/test_continuous.py:2178:13: error[invalid-assignment] Cannot assign to read-only property `weights` on object of type `Mixture`: Attempted assignment to `Mixture.weights` here
No memory usage changes detected ✅

@AlexWaygood AlexWaygood added the diagnostics Related to reporting of diagnostics. label Aug 29, 2025
@AlexWaygood AlexWaygood marked this pull request as ready for review August 29, 2025 12:51
Copy link
Contributor

@sharkdp sharkdp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice — thank you!

@AlexWaygood AlexWaygood enabled auto-merge (squash) August 29, 2025 13:19
@AlexWaygood AlexWaygood merged commit f773157 into main Aug 29, 2025
37 checks passed
@AlexWaygood AlexWaygood deleted the alex/readonly-property-diag branch August 29, 2025 13:22
second-ed pushed a commit to second-ed/ruff that referenced this pull request Sep 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
diagnostics Related to reporting of diagnostics. ty Multi-file analysis & type inference
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants