micropython.const inconsistent behaviour in class
Port, board and/or hardware
Waveshare ESP32-C3-Zero Development Board
MicroPython version
MicroPython v1.25.0 on 2025-04-15; ESP32C3 module with ESP32C3
Reproduction
with_const.py
from micropython import const
class HelloWorld:
TEST = const("Hello World!")
def __init__(self):
print(TEST)
>>> import with_const
>>> hello_world = with_const.HelloWorld()
Hello World!
>>>
without_const.py
class HelloWorld:
TEST = "Hello World!"
def __init__(self):
print(TEST)
>>> import without_const
>>> hello_world = without_const.HelloWorld()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "without_const.py", line 5, in __init__
NameError: name 'TEST' isn't defined
>>>
I wouldn't have noticed that I wasn't properly referencing my class constant variable if it wasn't for PyLint telling me I was making mistakes. This seems like a bug?
Expected behaviour
I expected the example using micropython.const() to error.
Observed behaviour
There is no error.
Additional Information
No, I've provided everything above.
Code of Conduct
Yes, I agree
TypeError: unexpected keyword argument 'sideset_count'
Port, board and/or hardware
rp2
MicroPython version
MicroPython v1.24.1 on 2024-11-29; Pi Pico Board
Reproduction
`import rp2
Define the PIO program
@rp2.asm_pio(sideset_init=rp2.PIO.OUT_HIGH, autopush=True, push_thresh=32, sideset_count=3)
def pio_program():
wait(0,gpio,5).side(7)
print("Hello World")
`
Expected behaviour
Expected to print "Hello World"
Observed behaviour
This unexpected error occurs: -
TypeError: unexpected keyword argument 'sideset_count'
Additional Information
No, I've provided everything above.
Code of Conduct
Yes, I agree