kopia lustrzana https://github.com/micropython/micropython-lib
unix-ffi: Move more unix-only packages to unix-ffi.
With the dependencies captured in manifest.py, several packages in python-stdlib were still unix-only due to direct or transitive dependencies on unix-only or ffi modules. Or they just make no sense to run on microcontroller targets. In a few cases (e.g. base64) where possible, the unix dependency could be removed. Updates manifest.py to use the `unix_ffi=True` arg to `require()` for these libraries. Rename re-pcre to re now that unix-ffi is effectively its own namespace. Update unix-ffi/README.md, and strengthen the wording that the unix libraries are unmaintained. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>pull/528/head
rodzic
ce66e701a5
commit
f3cfc52ab0
|
@ -96,7 +96,7 @@ def b64decode(s, altchars=None, validate=False):
|
|||
altchars = _bytes_from_decode_data(altchars)
|
||||
assert len(altchars) == 2, repr(altchars)
|
||||
s = s.translate(bytes.maketrans(altchars, b"+/"))
|
||||
if validate and not re.match(b"^[A-Za-z0-9+/]*={0,2}$", s):
|
||||
if validate and not re.match(b"^[A-Za-z0-9+/]*=*$", s):
|
||||
raise binascii.Error("Non-base64 digit found")
|
||||
return binascii.a2b_base64(s)
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
metadata(version="3.3.3-4")
|
||||
|
||||
require("binascii")
|
||||
require("re-pcre")
|
||||
require("struct")
|
||||
|
||||
module("base64.py")
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
# email.charset
|
||||
|
||||
require("functools")
|
||||
require("email.encoders")
|
||||
require("email.errors")
|
||||
|
||||
package("email", version="0.5.1")
|
|
@ -1,8 +0,0 @@
|
|||
# email.feedparser
|
||||
|
||||
require("re-pcre")
|
||||
require("email.errors")
|
||||
require("email.message")
|
||||
require("email.internal")
|
||||
|
||||
package("email", version="0.5.1")
|
|
@ -1,9 +0,0 @@
|
|||
# email.header
|
||||
|
||||
require("re-pcre")
|
||||
require("binascii")
|
||||
require("email.encoders")
|
||||
require("email.errors")
|
||||
require("email.charset")
|
||||
|
||||
package("email", version="0.5.2")
|
|
@ -1,15 +0,0 @@
|
|||
# email.internal
|
||||
|
||||
require("re-pcre")
|
||||
require("base64")
|
||||
require("binascii")
|
||||
require("functools")
|
||||
require("string")
|
||||
# require("calendar") TODO
|
||||
require("abc")
|
||||
require("email.errors")
|
||||
require("email.header")
|
||||
require("email.charset")
|
||||
require("email.utils")
|
||||
|
||||
package("email", version="0.5.1")
|
|
@ -1,11 +0,0 @@
|
|||
# email.message
|
||||
|
||||
require("re-pcre")
|
||||
require("uu")
|
||||
require("base64")
|
||||
require("binascii")
|
||||
require("email.utils")
|
||||
require("email.errors")
|
||||
require("email.charset")
|
||||
|
||||
package("email", version="0.5.3")
|
|
@ -1,8 +0,0 @@
|
|||
# email.parser
|
||||
|
||||
require("warnings")
|
||||
require("email.feedparser")
|
||||
require("email.message")
|
||||
require("email.internal")
|
||||
|
||||
package("email", version="0.5.1")
|
|
@ -1,7 +0,0 @@
|
|||
# glob
|
||||
|
||||
require("os")
|
||||
require("re-pcre")
|
||||
require("fnmatch")
|
||||
|
||||
module("glob.py", version="0.5.2")
|
|
@ -1,8 +0,0 @@
|
|||
# html.parser
|
||||
|
||||
require("_markupbase")
|
||||
require("warnings")
|
||||
require("html.entities")
|
||||
require("re-pcre")
|
||||
|
||||
package("html", version="3.3.3-2")
|
|
@ -1,10 +0,0 @@
|
|||
# http.client
|
||||
|
||||
require("email.parser")
|
||||
require("email.message")
|
||||
require("socket")
|
||||
require("collections")
|
||||
require("urllib.parse")
|
||||
require("warnings")
|
||||
|
||||
package("http", version="0.5.1")
|
|
@ -1,6 +1,6 @@
|
|||
metadata(version="0.5.1")
|
||||
|
||||
require("binascii")
|
||||
require("os")
|
||||
require("os.path")
|
||||
|
||||
module("uu.py")
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
Unix-specific libraries
|
||||
=======================
|
||||
|
||||
These are libraries that will only run on the Unix port of MicroPython. There is some limited support for the Windows port too.
|
||||
These are libraries that will only run on the Unix port of MicroPython, or are
|
||||
too big to be used on microcontrollers. There is some limited support for the
|
||||
Windows port too.
|
||||
|
||||
**Note:** This directory is largely unmaintained, although large breaking changes are not expected.
|
||||
**Note:** This directory is unmaintained.
|
||||
|
||||
Background
|
||||
----------
|
||||
|
@ -11,7 +13,18 @@ Background
|
|||
The libraries in this directory provide additional CPython compatibility using
|
||||
the host operating system's native libraries.
|
||||
|
||||
This is implemented either by accessing the libraries directly via libffi, or by using built-in modules that are only available on the Unix port.
|
||||
This is implemented either by accessing the libraries directly via libffi, or
|
||||
by using built-in modules that are only available on the Unix port.
|
||||
|
||||
In theory, this allows you to use MicroPython as a more complete drop-in
|
||||
replacement for CPython.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
To use a unix-specific library, pass `unix_ffi=True` to `require()` in your
|
||||
manifest file.
|
||||
|
||||
```py
|
||||
require("os", unix_ffi=True) # Use the unix-ffi version instead of python-stdlib.
|
||||
```
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
metadata(version="3.3.3-1")
|
||||
|
||||
require("re-pcre")
|
||||
require("re", unix_ffi=True)
|
||||
|
||||
module("_markupbase.py")
|
|
@ -3,7 +3,7 @@ metadata(version="0.5.1")
|
|||
require("base64")
|
||||
require("binascii")
|
||||
require("quopri")
|
||||
require("re-pcre")
|
||||
require("re", unix_ffi=True)
|
||||
require("string")
|
||||
|
||||
package("email")
|
|
@ -215,7 +215,10 @@ def make_msgid(idstring=None, domain=None):
|
|||
"""
|
||||
timeval = time.time()
|
||||
utcdate = time.strftime("%Y%m%d%H%M%S", time.gmtime(timeval))
|
||||
pid = os.getpid()
|
||||
if hasattr(os, "getpid"):
|
||||
pid = os.getpid()
|
||||
else:
|
||||
pid = 0
|
||||
randint = random.randrange(100000)
|
||||
if idstring is None:
|
||||
idstring = ""
|
|
@ -1,13 +1,13 @@
|
|||
metadata(version="3.3.3-2")
|
||||
|
||||
require("os")
|
||||
require("re-pcre")
|
||||
require("os", unix_ffi=True)
|
||||
require("re", unix_ffi=True)
|
||||
require("base64")
|
||||
require("random")
|
||||
require("datetime")
|
||||
require("urllib.parse")
|
||||
require("urllib.parse", unix_ffi=True)
|
||||
require("warnings")
|
||||
require("quopri")
|
||||
require("email.charset")
|
||||
require("email.charset", unix_ffi=True)
|
||||
|
||||
package("email")
|
|
@ -2,6 +2,6 @@ metadata(version="0.0.4")
|
|||
|
||||
# Originally written by Paul Sokolovsky.
|
||||
|
||||
require("ffilib")
|
||||
require("ffilib", unix_ffi=True)
|
||||
|
||||
module("fcntl.py")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
metadata(version="3.3.3-1")
|
||||
|
||||
require("os")
|
||||
require("os", unix_ffi=True)
|
||||
|
||||
module("getopt.py")
|
|
@ -2,6 +2,6 @@ metadata(version="0.1")
|
|||
|
||||
# Originally written by Riccardo Magliocchetti.
|
||||
|
||||
require("ffilib")
|
||||
require("ffilib", unix_ffi=True)
|
||||
|
||||
module("gettext.py")
|
||||
|
|
|
@ -2,8 +2,8 @@ metadata(version="0.2.1")
|
|||
|
||||
# Originally written by Paul Sokolovsky.
|
||||
|
||||
require("ffilib")
|
||||
require("os")
|
||||
require("signal")
|
||||
require("ffilib", unix_ffi=True)
|
||||
require("os", unix_ffi=True)
|
||||
require("signal", unix_ffi=True)
|
||||
|
||||
package("machine")
|
||||
|
|
|
@ -2,8 +2,8 @@ metadata(version="0.1.2")
|
|||
|
||||
# Originally written by Paul Sokolovsky.
|
||||
|
||||
require("os")
|
||||
require("select")
|
||||
require("os", unix_ffi=True)
|
||||
require("select", unix_ffi=True)
|
||||
require("pickle")
|
||||
|
||||
module("multiprocessing.py")
|
||||
|
|
|
@ -2,7 +2,7 @@ metadata(version="0.6")
|
|||
|
||||
# Originally written by Paul Sokolovsky.
|
||||
|
||||
require("ffilib")
|
||||
require("ffilib", unix_ffi=True)
|
||||
require("errno")
|
||||
require("stat")
|
||||
|
||||
|
|
|
@ -2,6 +2,6 @@ metadata(version="0.1")
|
|||
|
||||
# Originally written by Riccardo Magliocchetti.
|
||||
|
||||
require("ffilib")
|
||||
require("ffilib", unix_ffi=True)
|
||||
|
||||
module("pwd.py")
|
||||
|
|
|
@ -2,6 +2,6 @@ metadata(version="0.2.5")
|
|||
|
||||
# Originally written by Paul Sokolovsky.
|
||||
|
||||
require("ffilib")
|
||||
require("ffilib", unix_ffi=True)
|
||||
|
||||
module("re.py")
|
|
@ -2,7 +2,7 @@ metadata(version="0.3")
|
|||
|
||||
# Originally written by Paul Sokolovsky.
|
||||
|
||||
require("os")
|
||||
require("ffilib")
|
||||
require("os", unix_ffi=True)
|
||||
require("ffilib", unix_ffi=True)
|
||||
|
||||
module("select.py")
|
||||
|
|
|
@ -2,6 +2,6 @@ metadata(version="0.3.2")
|
|||
|
||||
# Originally written by Paul Sokolovsky.
|
||||
|
||||
require("ffilib")
|
||||
require("ffilib", unix_ffi=True)
|
||||
|
||||
module("signal.py")
|
||||
|
|
|
@ -2,6 +2,6 @@ metadata(version="0.2.4")
|
|||
|
||||
# Originally written by Paul Sokolovsky.
|
||||
|
||||
require("ffilib")
|
||||
require("ffilib", unix_ffi=True)
|
||||
|
||||
module("sqlite3.py")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
metadata(version="0.5")
|
||||
|
||||
require("ffilib")
|
||||
require("ffilib", unix_ffi=True)
|
||||
|
||||
module("time.py")
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
metadata(version="3.3.3-3")
|
||||
|
||||
require("getopt")
|
||||
require("getopt", unix_ffi=True)
|
||||
require("itertools")
|
||||
# require("linecache") TODO
|
||||
require("time")
|
||||
require("time", unix_ffi=True)
|
||||
require("traceback")
|
||||
|
||||
module("timeit.py")
|
|
@ -2,8 +2,8 @@ metadata(version="0.1.2")
|
|||
|
||||
# Originally written by Paul Sokolovsky.
|
||||
|
||||
require("os")
|
||||
require("tty")
|
||||
require("select")
|
||||
require("os", unix_ffi=True)
|
||||
require("tty", unix_ffi=True)
|
||||
require("select", unix_ffi=True)
|
||||
|
||||
package("ucurses")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
metadata(version="0.9.0")
|
||||
|
||||
require("argparse")
|
||||
require("argparse", unix_ffi=True)
|
||||
require("fnmatch")
|
||||
|
||||
module("unittest.py")
|
|
@ -1,6 +1,6 @@
|
|||
metadata(version="0.5.2")
|
||||
|
||||
require("re-pcre")
|
||||
require("re", unix_ffi=True)
|
||||
require("collections")
|
||||
require("collections.defaultdict")
|
||||
|
Ładowanie…
Reference in New Issue