micropython-lib/python-stdlib
W Winfried Kretzschmar 61efc92e26 functools: Add functools.total_ordering.
This commit is the result of copying the total_ordering code and tests
over from CPython v3.7.17.
One test is disabled because it expects builtin objects to have
attributes (__lt__, __gt__, etc.).
Another test for compatibility with pickle is also disabled because
pickle compatibility is currently broken.
Bumped package version to 0.0.8.

The functools code in CPython has the following credits:

Written by Nick Coghlan <ncoghlan at gmail.com>,
Raymond Hettinger <python at rcn.com>,
and Łukasz Langa <lukasz at langa.pl>.
  Copyright (C) 2006-2013 Python Software Foundation.
See C source code for _functools credits/copyright

This work was donated by W Winfried Kretzschmar.

Signed-off-by: W Winfried Kretzschmar <winni@warrenwk.com>
2024-03-19 15:35:50 +01:00
..
__future__ __future__: Add "annotations". 2023-10-04 12:53:52 +11:00
abc
argparse all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
base64 base64: Implement custom maketrans and translate methods. 2023-12-20 12:26:13 +11:00
binascii all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
bisect all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
cmd all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
collections
collections-defaultdict all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
collections-deque
contextlib all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
copy
curses.ascii all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
datetime
errno
fnmatch
functools functools: Add functools.total_ordering. 2024-03-19 15:35:50 +01:00
gzip zlib: Add zlib module. 2023-07-25 18:19:51 +10:00
hashlib
hashlib-core all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
hashlib-sha224 all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
hashlib-sha256 all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
hashlib-sha384 all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
hashlib-sha512 all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
heapq
hmac hmac: Fix passing in a string for digestmod argument. 2024-02-07 12:45:03 +11:00
html all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
inspect all: Replace metadata.txt with manifest.py. 2022-09-05 17:50:28 +10:00
io all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
itertools
json all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
keyword
locale
logging logging: Bump minor version. 2023-07-23 11:48:46 +10:00
operator
os all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
os-path os-path: Implement os.path.isfile(). 2023-12-20 14:46:57 +11:00
pathlib
pickle all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
pkg_resources
pkgutil
pprint
quopri
random all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
shutil
ssl ssl: Restructure micropython SSL interface to a new tls module. 2024-02-07 12:12:13 +11:00
stat
string
struct
tarfile
tarfile-write tarfile-write: Fix permissions when adding to archive. 2024-02-09 10:43:05 +11:00
tempfile
textwrap all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
threading all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
time time: Add README to explain the purpose of the time extension library. 2023-12-20 12:05:35 +11:00
traceback all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
types
unittest
unittest-discover
uu
venv
warnings
zlib zlib: Add zlib module. 2023-07-25 18:19:51 +10:00
README.md

README.md

CPython Standard Library

The packages in this directory aim to provide compatible implementations of modules from the Python Standard Library, with the goal of allowing existing Python code to run un-modified on MicroPython.

Implementation

Many packages are implemented in pure Python, often based on the original CPython implementation. (e.g. collections.defaultdict)

Some packages are based on or extend from the built-in "micro" modules in the MicroPython firmware, providing additional functionality that didn't need to be written in C (e.g. collections, socket, struct).

Future plans (ideas for contributors):

  • Add README.md to each library explaining compatibility and limitations.