This is a repository of libraries designed to be useful for writing MicroPython applications.
 
 
Go to file
Paul Sokolovsky c78c27c1dd asyncio_slow: Start new upstream API-compatible asyncio implementation.
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.
2014-10-21 01:31:57 +03:00
_libc _libc: Release 0.2.1. 2014-10-11 05:17:14 +03:00
abc abc: Add dummy module. 2014-05-20 22:28:36 +03:00
asyncio asyncio: Add basic asyncio stream interface test. 2014-10-21 01:31:57 +03:00
asyncio_slow asyncio_slow: Start new upstream API-compatible asyncio implementation. 2014-10-21 01:31:57 +03:00
base64 base64: Some dummy functions. 2014-05-19 23:44:18 +03:00
binascii binascii: Some dummy functions. 2014-05-19 23:24:22 +03:00
binhex
bisect
calendar calendar: Add dummy module. 2014-05-20 22:30:31 +03:00
cmd cmd: Customize to work with MicroPython. 2014-08-13 00:49:28 +03:00
collections
collections.defaultdict collections.defaultdict: Add missing metadata.txt. 2014-05-24 14:38:16 +03:00
collections.deque
copy
csv csv: Add dummy module. 2014-05-24 18:27:52 +03:00
datetime
dbm
email.charset email.charset: Add metadata. 2014-05-24 15:20:33 +03:00
email.encoders email.encoders: Add metadata. 2014-05-24 15:13:36 +03:00
email.errors email.errors: Add metadata, 2014-05-24 15:27:27 +03:00
email.feedparser email.feedparser: Add metadata. 2014-05-24 16:06:53 +03:00
email.header email.header: MicroPython doesn't have str.isspace(). 2014-05-25 03:25:06 +03:00
email.internal email.internal: Add metadata. 2014-05-24 16:18:24 +03:00
email.message email.message: Add email.iterators module to dist-package. 2014-05-24 16:21:00 +03:00
email.parser email.parser: Add metadata. 2014-05-24 16:09:11 +03:00
email.utils email.utils: Add metadata. 2014-05-24 15:36:40 +03:00
errno errno: Add EAFNOSUPPORT. 2014-05-19 22:49:31 +03:00
fcntl fcntl: Depend on _libc. 2014-06-21 14:52:03 +03:00
fnmatch
functools functools: Add dummy update_wrapper(), wraps(). 2014-06-08 00:26:17 +03:00
getopt getopt: Add setup.py. 2014-05-19 22:06:07 +03:00
getpass getpass: Add dummy module. 2014-06-21 03:19:23 +03:00
glob glob: Explicitly import os.path. 2014-06-06 22:53:30 +03:00
gzip
hashlib
heapq heapq: Import itertools only for functions which really require it. 2014-07-21 00:29:33 +03:00
html/html
html.entities
http.client http.client: Add metadata. 2014-06-07 23:15:03 +03:00
io io: As MicroPython builtin module is now _io, add dummy io wrapper. 2014-06-21 02:52:41 +03:00
ipaddress ipaddress: Add dummy module. 2014-06-21 03:20:16 +03:00
itertools
json
keyword
logging
mailbox mailbox: Add dummy module. 2014-06-21 03:24:14 +03:00
mimetypes mimetypes: Add dummy module. 2014-06-21 03:23:37 +03:00
multiprocessing
optparse optparse: Add dummy module. 2014-06-21 03:21:13 +03:00
os os: Version 0.1.9. 2014-09-06 17:13:28 +03:00
os.path os.path: Make join() accept bytes args. 2014-05-26 01:59:41 +03:00
pickle
posixpath posixpath: Add dummy module. 2014-05-20 23:33:42 +03:00
pprint
pty pty: Add dummy module. 2014-06-21 03:21:48 +03:00
queue
quopri quopri: Add metadata. 2014-05-20 22:36:54 +03:00
random
re-pcre re-pcre: Implement count arg to re.sub(). 2014-06-08 00:16:34 +03:00
reprlib reprlib: Add dummy module. 2014-06-21 03:22:19 +03:00
sched sched: Add dummy module. 2014-06-21 03:22:49 +03:00
select select: Add yet another workaround for struct epoll_event, this time for x86_64. 2014-09-06 19:36:28 +03:00
shelve shelve: Add dummy module. 2014-05-24 18:28:16 +03:00
shlex
shutil shutils: Bump version. 2014-05-19 22:47:30 +03:00
socket socket: Update for rename microsocket -> usocket. 2014-10-11 05:18:49 +03:00
sqlite3 sqlite3: Change return type of column_double from "f" to "d". 2014-09-10 21:06:54 +01:00
stat stat: Take from CPython 3.3.3. 2014-05-19 23:46:49 +03:00
string string: Add basic constant definitions. 2014-05-20 22:38:52 +03:00
subprocess
tarfile tarfile: Add dummy module. 2014-06-21 03:07:17 +03:00
tempfile
test.support
timeit timeit: Add dummy module. 2014-06-21 03:07:46 +03:00
traceback
types
unittest unittest: Switch to metadata.txt . 2014-05-19 22:22:54 +03:00
urllib
urllib.parse urllib.parse: Add metadata. 2014-05-23 02:19:21 +03:00
uu uu: Add pristine from CPython 3.3.3. 2014-05-20 23:37:43 +03:00
warnings
zipfile zipfile: Add dummy module. 2014-06-21 03:07:35 +03:00
.gitignore .gitignore: Ignore local development files. 2014-05-31 15:18:48 +03:00
LICENSE LICENSE: Add concatenation of licensing terms used. 2014-08-18 21:32:04 +03:00
Makefile
README.md README.md: Tweak a bit. 2014-10-19 14:29:10 +03:00
make_metadata.py make_metadata.py: Allow to override dist_name in metadata.txt. 2014-06-21 04:05:20 +03:00

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.

More information is on GitHub and in the MicroPython forums:

Guidelines for packaging MicroPython modules for PyPI: