This is a repository of libraries designed to be useful for writing MicroPython applications.
 
 
Go to file
Michael Buesch ff27e3c8ba socket: Add socket.error
Older CPython versions raised socker.error (or classes derived from it)
as exceptions on errors. Various software still uses it to be compatible
with older Python versions. As it's one-line fix, allow MicroPython to
run such code too.

try:
  socket...
except socker.error as e:
  ...
2015-12-09 00:34:48 +02: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 abc: Add dummy module. 2014-05-20 22:28:36 +03:00
argparse argparse: Release 0.3.1. 2015-10-22 20:52:57 +03:00
asyncio_slow asyncio_slow: Add example of wait() from docs. 2014-10-21 01:31:57 +03:00
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 dummy modules: Switch to new metadata. 2014-05-12 21:21:08 +03:00
bisect bisect: Add module from CPython 3.3.3. 2014-05-10 00:43:26 +03:00
calendar calendar: Add dummy module. 2014-05-20 22:30:31 +03:00
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. 2015-06-10 00:34:05 +03:00
collections.defaultdict collections.defaultdict: Add missing metadata.txt. 2014-05-24 14:38:16 +03:00
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 copy: Switch to setuptools to support dependencies (types module). 2014-04-13 02:14:14 +03:00
cpython-uasyncio cpython-uasyncio: Add StreamWriter with awrite() & aclose(). 2015-01-02 22:25:53 +02:00
csv csv: Add dummy module. 2014-05-24 18:27:52 +03:00
curses.ascii curses.ascii: Add metadata. 2015-05-03 22:39:19 +03:00
datetime dummy modules: Switch to new metadata. 2014-05-12 21:21:08 +03:00
dbm make_metadata.py: Support modules vs packages. 2014-05-12 17:14:12 +03:00
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.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 ECONNRESET. 2014-10-25 00:07:26 +03:00
fcntl fcntl: Switch to ffilib. 2015-09-08 22:27:59 +03:00
ffilib ffilib: Release 0.1.2. 2015-08-30 03:14:17 +03:00
fnmatch fnmatch: Add new metadata. 2014-05-12 21:00:54 +03:00
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: Add setup.py. 2014-05-19 22:06:07 +03:00
getpass getpass: Add dummy module. 2014-06-21 03:19:23 +03:00
gettext gettext: Add dummy module. 2015-05-22 10:29:57 +03:00
glob glob: Explicitly import os.path. 2014-06-06 22:53:30 +03:00
gzip gzip: Implement decompress() function. 2015-01-28 03:05:06 +02:00
hashlib hashlib: Selectively import individual classes to top-level package. 2015-03-01 07:36:30 +02:00
heapq heapq: Import itertools only for functions which really require it. 2014-07-21 00:29:33 +03:00
hmac hmac: Depends on warnings module. 2015-02-22 15:12:24 +02:00
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 http.client: Add metadata. 2014-06-07 23:15:03 +03:00
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: 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 itertools: Release 0.2. 2015-08-25 21:29:44 +03:00
json json: Add simple test. 2014-04-19 21:39:13 +03:00
keyword keyword: Work around lack of frozenset. 2014-04-13 23:14:58 +03:00
locale locale: Add dummy implementation with getpreferredencoding(). 2015-05-16 00:14:59 +03:00
logging logging: Release 0.1.1. 2015-06-22 20:43:16 +03:00
mailbox mailbox: Add dummy module. 2014-06-21 03:24:14 +03:00
mailcap mailcap: Add dummy module. 2015-05-23 00:09:14 +03:00
mimetypes mimetypes: Add dummy module. 2014-06-21 03:23:37 +03:00
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 optparse: Add dummy module. 2014-06-21 03:21:13 +03:00
os os: Release 0.3. 2015-10-11 17:42:15 +03:00
os.path os.path: abspath() should affect only relative paths. 2015-06-29 00:05:01 +03: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 posixpath: Add dummy module. 2014-05-20 23:33:42 +03:00
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 pty: Add dummy module. 2014-06-21 03:21:48 +03:00
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
queue dummy modules: Switch to new metadata. 2014-05-12 21:21:08 +03:00
quopri quopri: Add metadata. 2014-05-20 22:36:54 +03:00
random dummy modules: Switch to new metadata. 2014-05-12 21:21:08 +03:00
re-pcre re-pcre: Release 0.2.1. 2015-06-05 18:18:22 +03:00
reprlib reprlib: Add dummy module. 2014-06-21 03:22:19 +03:00
runpy runpy: Add dummy module. 2015-05-24 00:51:28 +03:00
sched sched: Add dummy module. 2014-06-21 03:22:49 +03:00
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 shelve: Add dummy module. 2014-05-24 18:28:16 +03:00
shlex dummy modules: Switch to new metadata. 2014-05-12 21:21:08 +03:00
shutil shutil: copyfileobj(): Support file objects without readinto() method. 2015-02-04 02:50:20 +02:00
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: Add socket.error 2015-12-09 00:34:48 +02: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 stat: Take from CPython 3.3.3. 2014-05-19 23:46:49 +03:00
statistics statistics: Add dummy module. 2015-05-20 01:31:59 +03:00
string string: Add implementation of translate() method. 2015-03-28 19:49:37 +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 dummy modules: Switch to new metadata. 2014-05-12 21:21:08 +03:00
tarfile tarfile: Add dummy module. 2014-06-21 03:07:17 +03:00
telnetlib telnetlib: Add dummy module. 2015-05-26 00:47:40 +03:00
tempfile dummy modules: Switch to new metadata. 2014-05-12 21:21:08 +03:00
test test: test_pep380.py: Update to pass on MicroPython. 2015-07-08 00:07:48 +03:00
test.pystone test.pystone: Upgrade to version 1.2 from Python 3.4 library. 2015-01-06 12:43:11 +00:00
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: Depend on ffilib. 2015-09-07 22:05:41 +03:00
timeit timeit: Release 3.3.3-1. 2015-01-06 01:05:31 +02:00
trace trace: Add dummy module. 2015-05-24 00:47:52 +03:00
traceback traceback: Add dummy impl of format_tb(), format_exception_only(). 2015-03-29 01:18:14 +02:00
tty tty: Add metadata. 2015-04-08 21:12:37 +03:00
types types: Add setup metadata. 2014-04-13 02:14:14 +03:00
uasyncio uasyncio: Optimize reader/writer callbacks with no arguments. 2015-12-07 01:13:00 +02:00
uasyncio.core uasyncio.core: Optimize for syscalls with single args. 2015-12-05 22:23:10 +02:00
uasyncio.queues uasyncio.queues: Add simple implementation of asynchronous queues for uasyncio 2014-12-19 19:07:59 +02:00
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
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: Release 0.6.2. 2015-11-15 00:11:56 +02:00
urllib urllib: Add dummy module. 2014-05-08 12:53:32 +03:00
urllib.parse urllib.parse: Requires collections.defaultdict class. 2015-11-16 18:47:58 +02:00
urllib.urequest urllib.urequest: Release 0.1. 2015-11-21 02:25:56 +02:00
utarfile utarfile: Update for uctype.struct() signature change. 2015-06-06 23:01:04 +03:00
uu uu: Add pristine from CPython 3.3.3. 2014-05-20 23:37:43 +03:00
uuid uuid: Add dummy module. 2015-05-24 00:47:16 +03:00
warnings warnings: Add example. 2015-02-22 14:08:19 +02:00
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 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
CONTRIBUTING.md CONTRIBUTING.md: Add file with a link to Contributor Guidelines. 2015-05-03 21:07:17 +03:00
LICENSE LICENSE: Add concatenation of licensing terms used. 2014-08-18 21:32:04 +03:00
Makefile Makefile install: Add --no-run-if-empty to xargs. 2014-05-11 12:22:03 +03:00
README.md README.md: Tweak a bit. 2014-10-19 14:29:10 +03:00
make_metadata.py make_metadata.py: Support PyPy upstream source. 2015-02-22 15:09:46 +02: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: