Request for package: micropython-enum
I would like micropython to have support for IntEnum class. Base Enum would be nice to have, although just bare IntEnum would be enough in my opinion.
MPRemote: Create separated source package or repository
Description
Because Arch linux maintainers complains about pip-way of package installation in PKGBUILD and they want to build it more Pythonic/Arch linux way it would be nice to have mpremote sources somehow separated from main tree, so PKGBUILD will NOT download 120MB just because of 240kB tool in order to build.
Maybe some release workfow can just separately pack mpremote and put it beside of whole source here at github releases.
Check
https://wiki.archlinux.org/title/Python_package_guidelines#Installation_methods
and it related issue
https://aur.archlinux.org/packages/mpremote#comment-1047502
Code Size
It is not micropython related, but mpremote is part of this repository, unfortunately.
Implementation
I intend to implement this feature and would submit a Pull Request if desirable
Code of Conduct
Yes, I agree
Enums are especially useful when it comes to static type-checking. So it would be great if the implementation of this enum type allowed type-checking via mypy. This means all values need to be an instance of the defined enum-type.
I'm also interested by enum in MicroPython.
In the meantime, I found here this workaround:
for type-checking, I'm using the following trick:
This workaround is excellent! I combined it with const for my purposes:
+1 for a real implementation of this
But when have been imported getting "Unresolved attribute reference" warning.
The cpython implementation is surprisingly very complicated and relies heavily on metaclasses which aren't supported in micropython:
https://github.com/python/cpython/blob/f585ed19ad00f78ed99ba44be5e333c056076160/Lib/enum.py#L1051
As such any micropython implementation will need to be completely custom really, at which point we need to clearly define which aspects of Enum we want to support first, before figuring out how to implement them!
There are a number of limitations when subclassing builtins in micropython, especially
intbecause behind the scenes it's particularly optimised. Eg. https://docs.micropython.org/en/latest/genrst/builtin_types.html#no-int-conversion-for-int-derived-types-available+1 for an implementation of this as well.
docs/library/enum.rst: Add Enum class. #16842
Implementation in:
micropython-lib/python-stdlib/enum/enum.py: Add Enum class. #980