This is a repository of libraries designed to be useful for writing MicroPython applications.
 
 
Go to file
Paul Sokolovsky 6764d27d78 upip: Switch to stream mode of operation using uzlib.DecompIO.
So, there's no longer requirement that uncompressed file fit into memory,
though for stream mode, max dictionary size of 32K is used so far.
2016-09-28 09:00:33 -07:00
__future__ __future__: Add dummies for all available feature descriptions 2015-12-05 22:13:12 +02:00
_libc _libc: Deprecated, superseded by ffilib. 2015-09-10 01:18:36 +03:00
_markupbase _markupbase: Add metadata. 2015-04-11 23:18:19 +03:00
abc
argparse argparse: Release 0.3.2. 2016-05-02 14:08:42 +03:00
asyncio_slow
base64 base64: Depend on "struct". 2015-05-07 00:33:48 +03:00
binascii binascii: Release 2.4.0-3. 2015-06-15 00:27:19 +03:00
binhex
bisect
calendar
cgi cgi: Add metadata. 2015-03-29 01:20:08 +02:00
cmd cmd: 3.4.0-1 is a final version. 2015-05-08 22:46:48 +03:00
collections collections: Release 0.1.1. 2016-05-02 14:08:42 +03:00
collections.defaultdict
collections.deque collections.deque: Add extend() method. 2015-12-03 00:36:07 +02:00
concurrent.futures concurrent.futures: Add dummy module. 2015-05-22 10:45:49 +03:00
contextlib contextlib: modify TestExitStack to work in uPy 2015-11-04 00:27:03 +03:00
copy
cpython-uasyncio
csv
curses.ascii curses.ascii: Add metadata. 2015-05-03 22:39:19 +03:00
datetime
dbm
decimal decimal: Add dummy module. 2015-05-11 02:50:34 +03:00
difflib difflib: Add dummy module. 2015-05-14 00:21:13 +03:00
email.charset
email.encoders
email.errors
email.feedparser
email.header
email.internal
email.message
email.parser
email.utils email.utils: Switch to CPython based version scheme. 2016-02-26 10:08:48 +02:00
errno
fcntl fcntl: Switch to ffilib. 2015-09-08 22:27:59 +03:00
ffilib ffilib: Don't fail if "ffi" module not present, just return None. 2015-12-18 20:21:17 +02:00
fnmatch
formatter formatter: Add dummy module. 2015-05-22 10:33:55 +03:00
fractions fractions: Add dummy module. 2015-05-21 20:35:26 +03:00
ftplib ftplib: Add dummy module. 2015-05-24 17:29:51 +03:00
functools functools: Add very simple implementation of reduce() 2015-12-05 22:24:08 +02:00
getopt getopt: Re-release as 3.3.3 per the latest conventions. 2016-06-10 22:50:38 +03:00
getpass
gettext gettext: Add dummy module. 2015-05-22 10:29:57 +03:00
glob
gzip
hashlib
heapq
hmac
html html: Add metadata. 2015-05-18 00:53:01 +03:00
html.entities html.entities: Add metadata.txt, release 3.3.3. 2015-03-28 20:22:46 +02:00
html.parser html.parser: Add metadata. 2015-05-17 00:42:26 +03:00
http.client
imaplib imaplib: Add dummy module. 2015-05-25 17:14:25 +03:00
imp imp: Add dummy module. 2015-05-23 00:07:42 +03:00
inspect inspect: Release 0.1.1. 2015-07-16 13:16:14 +03:00
io io: Release 0.0.2. 2016-05-02 14:08:42 +03:00
ipaddress
itertools itertools: Release 0.2.1. 2015-12-10 00:06:01 +02:00
json
keyword
linecache linecache: Release 0.0.0. 2016-06-10 22:37:20 +03:00
locale locale: Add dummy implementation with getpreferredencoding(). 2015-05-16 00:14:59 +03:00
logging logging: Release 0.1.2. 2016-01-31 01:59:44 +02:00
machine machine: Release 0.1. 2016-07-02 18:42:13 +03:00
mailbox
mailcap mailcap: Add dummy module. 2015-05-23 00:09:14 +03:00
mimetypes
multiprocessing multiprocessing: Release 0.1. 2015-06-20 19:29:19 +03:00
nntplib nntplib: Add dummy module. 2015-05-25 17:09:47 +03:00
numbers numbers: Add dummy module. 2015-05-11 02:50:56 +03:00
operator operator: Add metadata. 2015-05-10 01:54:47 +03:00
optparse
os os: Release 0.4.3. 2016-06-13 10:16:42 +03:00
os.path os.path: Add sep 2015-12-10 00:01:02 +02:00
pathlib pathlib: Add dummy module. 2015-05-22 10:29:03 +03:00
pdb pdb: Add dummy module. 2015-05-16 00:17:13 +03:00
pickle pickle: Add metadata.txt . 2015-08-23 23:22:36 +03:00
pickletools pickletools: Add dummy module. 2015-05-26 00:48:20 +03:00
pkg_resources pkg_resources: Add metadata. 2015-06-26 02:17:32 +03:00
pkgutil pkgutil: Release 0.1. 2015-06-26 13:50:47 +03:00
platform platform: Add dummy module. 2015-05-08 22:53:16 +03:00
poplib poplib: Add dummy module. 2015-05-24 17:33:11 +03:00
posixpath
pprint pprint: Add dummy pformat(). 2015-05-05 10:08:37 +03:00
profile profile: Add dummy module. 2015-05-25 17:57:32 +03:00
pty
pyb pyb: Add LED blink example. 2015-04-05 14:08:16 +03:00
pystone pystone: Add metadata. 2015-04-03 00:16:21 +03:00
pystone_lowmem pystone_lowmem: Release 3.4.2-2. 2016-05-10 00:42:25 +03:00
queue
quopri
random
re-pcre re-pcre: Release 0.2.1. 2015-06-05 18:18:22 +03:00
reprlib
runpy runpy: Add dummy module. 2015-05-24 00:51:28 +03:00
sched
select select: Switch to ffilib. 2015-09-02 00:15:05 +03:00
selectors selectors: Add dummy module. 2015-05-21 20:29:43 +03:00
shelve
shlex
shutil
signal signal: Switch to ffilib. 2015-09-09 17:57:25 +03:00
smtplib smtplib: Add dummy module. 2015-05-24 17:28:22 +03:00
socket socket: Release 0.5.1. 2016-04-16 21:24:42 +03:00
socketserver socketserver: Add dummy module. 2015-05-20 00:18:52 +03:00
sqlite3 sqlite3: Use ffilib to load shared library. 2015-06-05 18:39:46 +03:00
stat
statistics statistics: Add dummy module. 2015-05-20 01:31:59 +03:00
string string: Add test_translate.py 2016-02-03 00:24:36 +02:00
stringprep stringprep: Add dummy module. 2015-05-26 01:03:52 +03:00
struct struct: Add metadata. 2015-05-08 00:56:14 +03:00
subprocess
tarfile
telnetlib telnetlib: Add dummy module. 2015-05-26 00:47:40 +03:00
tempfile
test test: test_pep380.py: Update to pass on MicroPython. 2015-07-08 00:07:48 +03:00
test.pystone
test.support test.support: Release 0.1. 2015-07-05 22:25:33 +03:00
textwrap textwrap: Add metadata. 2015-05-12 01:23:13 +03:00
threading threading: Add dummy module. 2015-05-21 20:29:43 +03:00
time time: Release 0.3. 2016-09-18 20:21:03 +03:00
timeit timeit: Release 3.3.3-2. 2016-06-10 22:47:35 +03:00
trace trace: Add dummy module. 2015-05-24 00:47:52 +03:00
traceback traceback: Release 0.2. 2016-06-10 23:10:43 +03:00
tty tty: Add metadata. 2015-04-08 21:12:37 +03:00
types
uasyncio uasyncio: test_http_server_heavy.py: Comment out mem_info() call. 2016-01-11 00:07:43 +02:00
uasyncio.core uasyncio.core: Protect another case of debug logging with "if __debug__:". 2016-07-04 12:58:40 +03:00
uasyncio.queues
ucontextlib ucontextlib: spin off minimal module from contextlib 2015-10-22 20:47:22 +03:00
ucurses ucurses: Release 0.1.1. 2015-06-24 00:27:26 +03:00
umqtt.robust umqtt.robust: Add README and metadata. 2016-08-15 17:06:49 +03:00
umqtt.simple umqtt.simple: Release 1.2. 2016-09-18 21:22:23 +03:00
unicodedata unicodedata: Add metadata. 2015-05-14 00:34:33 +03:00
unittest unittest: add assertIsNone() and assertIsNotNone() methods to TestCase 2015-11-01 17:01:58 +03:00
upip upip: Switch to stream mode of operation using uzlib.DecompIO. 2016-09-28 09:00:33 -07:00
upysh upysh: Release 0.6. 2016-08-06 15:11:28 +03:00
urequests urequests: Release 0.4. 2016-06-10 00:57:40 +03:00
urllib
urllib.parse urllib.parse: Requires collections.defaultdict class. 2015-11-16 18:47:58 +02:00
urllib.urequest urllib.urequest: Release 0.4.1. 2016-06-11 00:28:30 +03:00
utarfile utarfile: Release 0.2. 2016-09-26 12:10:33 -07:00
uu
uuid uuid: Add dummy module. 2015-05-24 00:47:16 +03:00
warnings
weakref weakref: Add metadata. 2015-05-09 00:21:31 +03:00
xmltok xmltok: Release 0.1. 2015-10-10 13:16:47 +03:00
zipfile
.gitignore
CONTRIBUTING.md CONTRIBUTING.md: Add file with a link to Contributor Guidelines. 2015-05-03 21:07:17 +03:00
LICENSE
Makefile
README.md
make_metadata.py make_metadata.py: Allow to use README.rst as a long_description. 2016-07-03 15:47:46 +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: