-
Notifications
You must be signed in to change notification settings - Fork 28
Description
Issue synopsis
Spotted this issue about a month ago the first time, tried to reproduce it again recently and saw it still wasn't resolved. I am not sure this is a puya py compiler issue specifically, but i didn't know where else to report it. So basically, I was working on my smart contract using the algopy module and the VS Code IDE that's using Pylance for Python-related intellisense handling. My Pylance extension has the auto-update feature on, and when it got updated from version 2025.3.2 to version 2025.4.1, i was no longer able to access (or even see) the native data types properties Uin64 and Bytes from various ARC4 data types. In example:
abc = arc4.UInt16(100)
Both abc.native and abc.bytes are not provided/recognized by the PyLance v2025.4.1 intellisense feature in my VS Code editor. However, the compiler itself recognizes them and is able to correctly parse both of these commands and build the smart contract without any errors.
Environment info
language: algorand-python
framework: algokit
module: algopy
compiler: puyapy
Algokit Doctor output
AlgoKit: 2.6.2
AlgoKit Python: 3.13.0
OS: Windows-11-10.0.26100-SP0
docker: 28.0.4
docker compose: 2.34.0-desktop.1
git: 2.47.0.windows.2
python: 3.13.0
python3: 3.13.0
pipx: 1.7.1
poetry: 2.1.1
node: 23.1.0
npm: 10.9.0
winget: 1.10.390
Steps to reproduce
- Use VS Code
- Use the Pylance extension and upgrade to the latest version (v2025.4.1)
- Define any
algopyARC4 data type (exceptarc4.Struct, if i recall correctly from about a month ago, i was able to successfully access the underlying bytes of this particular ARC4 data type weirdly enough, but not others) - Try accessing it's underlying AVM native data types
Expected behaviour
You should be able to access the underlying AVM native data types (Uin64 and Bytes) from any ARC4 data type using Pylance.
Actual behaviour
You aren't able to do the above using Pylance v2025.4.1 , barring some exceptions (like the underlying bytes of arc4.Struct).
Current workaround
Downgrading to the previous version of Pylance v2025.3.2 still works as expected and intended.
Visual evidence
Forgot to mention
As one of the images above depicts, Pylance v2025.4.1 is also unable to properly retrieve/recognize the correct ensuing data type from performing an operation. In example.
abc = arc4.UInt16(100)
result = abc.native + UInt64(400)
The result variable here (on mouse hover to inspect w/ Pylance) should be recognized as type UIn64. However, Plyance v.2025.4.1 does not recognize the type as such, but rather, it shows Any.

