![]() The trait of this implementation is that it doesn't use priority queue and time scheduling, and instead does its all operations using polling, starting with such basic one as sleep. On the other hand, this tries to implement all (well, much) of upstream asyncio API and warts. asyncio_slow: Rename from asyncio_micro. It may turn out that this won't be "micro" at all. The main trait of this implementation is that it stay 100% API compatible with upstream (in those APIs which are implemented of course). It will also keep inefficient implementation of event loop scheduling, to discourage its use. Here we go. |
||
---|---|---|
_libc | ||
abc | ||
asyncio | ||
asyncio_slow | ||
base64 | ||
binascii | ||
binhex | ||
bisect | ||
calendar | ||
cmd | ||
collections | ||
collections.defaultdict | ||
collections.deque | ||
copy | ||
csv | ||
datetime | ||
dbm | ||
email.charset | ||
email.encoders | ||
email.errors | ||
email.feedparser | ||
email.header | ||
email.internal | ||
email.message | ||
email.parser | ||
email.utils | ||
errno | ||
fcntl | ||
fnmatch | ||
functools | ||
getopt | ||
getpass | ||
glob | ||
gzip | ||
hashlib | ||
heapq | ||
html/html | ||
html.entities | ||
http.client | ||
io | ||
ipaddress | ||
itertools | ||
json | ||
keyword | ||
logging | ||
mailbox | ||
mimetypes | ||
multiprocessing | ||
optparse | ||
os | ||
os.path | ||
pickle | ||
posixpath | ||
pprint | ||
pty | ||
queue | ||
quopri | ||
random | ||
re-pcre | ||
reprlib | ||
sched | ||
select | ||
shelve | ||
shlex | ||
shutil | ||
socket | ||
sqlite3 | ||
stat | ||
string | ||
subprocess | ||
tarfile | ||
tempfile | ||
test.support | ||
timeit | ||
traceback | ||
types | ||
unittest | ||
urllib | ||
urllib.parse | ||
uu | ||
warnings | ||
zipfile | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README.md | ||
make_metadata.py |
README.md
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
micropython-lib is a highly experimental community project.
Please help to drive it to just "experimental" state by testing
provided packages with MicroPython.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
micropython-lib
micropython-lib is a project to develop a non-monolothic standard library for MicroPython. Each module or package is available as a separate distribution package from PyPI. Each module is either written from scratch or ported from CPython.
Note that the main target of micropython-lib is a "Unix" port of MicroPython (additional ports to support are to be determined). Actual system requirements vary per module. Though if a module is not related to I/O, the module should work without problem on bare-metal ports too (e.g. pyboard).
Usage
micropython-lib packages are published on PyPI (Python Package Index), the standard Python community package repository: http://pypi.python.org/ . On PyPi, you can search for MicroPython related packages and read additional package information.
To install packages from PyPI for usage on your local system, use the
pip-micropython
tool, which is a simple wrapper around the standard
pip
tool, which is used to install packages for CPython.
The pip-micropython
tool can be found in tools
subdirectory
of the main MicroPython repository (https://github.com/micropython/micropython).
Just install the pip-micropython
script somewhere on your PATH
.
Afterwards, just use pip-micropython
in a way similar to pip
:
$ pip-micropython install micropython-copy
$ micropython
>>> import copy
>>> copy.copy([1, 2, 3])
[1, 2, 3]
Review the pip-micropython
source code for more info.
Development
To install modules during development, use make install
. By default, all
available packages will be installed. To install a specific module, add the
MOD=<module>
parameter to the end of the make install
command.
Links
More information is on GitHub and in the MicroPython forums:
- https://github.com/micropython/micropython/issues/405
- http://forum.micropython.org/viewtopic.php?f=5&t=70
Guidelines for packaging MicroPython modules for PyPI: