@rowstile/cli-linux-x64 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +5 -0
- package/package.json +26 -0
- package/python/bin/python3.13 +0 -0
- package/python/bin/python3.13-config +122 -0
- package/python/lib/libpython3.13.so.1.0 +0 -0
- package/python/lib/libpython3.so +0 -0
- package/python/lib/python3.13/LICENSE.txt +277 -0
- package/python/lib/python3.13/__future__.py +147 -0
- package/python/lib/python3.13/__hello__.py +16 -0
- package/python/lib/python3.13/_aix_support.py +108 -0
- package/python/lib/python3.13/_android_support.py +192 -0
- package/python/lib/python3.13/_apple_support.py +66 -0
- package/python/lib/python3.13/_collections_abc.py +1187 -0
- package/python/lib/python3.13/_colorize.py +119 -0
- package/python/lib/python3.13/_compat_pickle.py +251 -0
- package/python/lib/python3.13/_compression.py +162 -0
- package/python/lib/python3.13/_ios_support.py +71 -0
- package/python/lib/python3.13/_markupbase.py +396 -0
- package/python/lib/python3.13/_opcode_metadata.py +343 -0
- package/python/lib/python3.13/_osx_support.py +579 -0
- package/python/lib/python3.13/_py_abc.py +147 -0
- package/python/lib/python3.13/_pydatetime.py +2640 -0
- package/python/lib/python3.13/_pydecimal.py +6356 -0
- package/python/lib/python3.13/_pyio.py +2714 -0
- package/python/lib/python3.13/_pylong.py +363 -0
- package/python/lib/python3.13/_pyrepl/__init__.py +19 -0
- package/python/lib/python3.13/_pyrepl/__main__.py +10 -0
- package/python/lib/python3.13/_pyrepl/_minimal_curses.py +68 -0
- package/python/lib/python3.13/_pyrepl/_threading_handler.py +74 -0
- package/python/lib/python3.13/_pyrepl/base_eventqueue.py +110 -0
- package/python/lib/python3.13/_pyrepl/commands.py +492 -0
- package/python/lib/python3.13/_pyrepl/completing_reader.py +295 -0
- package/python/lib/python3.13/_pyrepl/console.py +229 -0
- package/python/lib/python3.13/_pyrepl/curses.py +33 -0
- package/python/lib/python3.13/_pyrepl/fancy_termios.py +82 -0
- package/python/lib/python3.13/_pyrepl/historical_reader.py +419 -0
- package/python/lib/python3.13/_pyrepl/input.py +114 -0
- package/python/lib/python3.13/_pyrepl/keymap.py +213 -0
- package/python/lib/python3.13/_pyrepl/main.py +59 -0
- package/python/lib/python3.13/_pyrepl/mypy.ini +29 -0
- package/python/lib/python3.13/_pyrepl/pager.py +175 -0
- package/python/lib/python3.13/_pyrepl/reader.py +764 -0
- package/python/lib/python3.13/_pyrepl/readline.py +599 -0
- package/python/lib/python3.13/_pyrepl/simple_interact.py +180 -0
- package/python/lib/python3.13/_pyrepl/trace.py +21 -0
- package/python/lib/python3.13/_pyrepl/types.py +10 -0
- package/python/lib/python3.13/_pyrepl/unix_console.py +852 -0
- package/python/lib/python3.13/_pyrepl/unix_eventqueue.py +76 -0
- package/python/lib/python3.13/_pyrepl/utils.py +83 -0
- package/python/lib/python3.13/_pyrepl/windows_console.py +687 -0
- package/python/lib/python3.13/_pyrepl/windows_eventqueue.py +42 -0
- package/python/lib/python3.13/_sitebuiltins.py +91 -0
- package/python/lib/python3.13/_strptime.py +800 -0
- package/python/lib/python3.13/_sysconfigdata__linux_x86_64-linux-gnu.py +1079 -0
- package/python/lib/python3.13/_threading_local.py +120 -0
- package/python/lib/python3.13/_weakrefset.py +205 -0
- package/python/lib/python3.13/abc.py +188 -0
- package/python/lib/python3.13/antigravity.py +17 -0
- package/python/lib/python3.13/argparse.py +2690 -0
- package/python/lib/python3.13/ast.py +1865 -0
- package/python/lib/python3.13/asyncio/__init__.py +47 -0
- package/python/lib/python3.13/asyncio/__main__.py +211 -0
- package/python/lib/python3.13/asyncio/base_events.py +2086 -0
- package/python/lib/python3.13/asyncio/base_futures.py +67 -0
- package/python/lib/python3.13/asyncio/base_subprocess.py +312 -0
- package/python/lib/python3.13/asyncio/base_tasks.py +94 -0
- package/python/lib/python3.13/asyncio/constants.py +41 -0
- package/python/lib/python3.13/asyncio/coroutines.py +109 -0
- package/python/lib/python3.13/asyncio/events.py +885 -0
- package/python/lib/python3.13/asyncio/exceptions.py +62 -0
- package/python/lib/python3.13/asyncio/format_helpers.py +84 -0
- package/python/lib/python3.13/asyncio/futures.py +425 -0
- package/python/lib/python3.13/asyncio/locks.py +617 -0
- package/python/lib/python3.13/asyncio/log.py +7 -0
- package/python/lib/python3.13/asyncio/mixins.py +21 -0
- package/python/lib/python3.13/asyncio/proactor_events.py +891 -0
- package/python/lib/python3.13/asyncio/protocols.py +216 -0
- package/python/lib/python3.13/asyncio/queues.py +309 -0
- package/python/lib/python3.13/asyncio/runners.py +217 -0
- package/python/lib/python3.13/asyncio/selector_events.py +1328 -0
- package/python/lib/python3.13/asyncio/sslproto.py +929 -0
- package/python/lib/python3.13/asyncio/staggered.py +174 -0
- package/python/lib/python3.13/asyncio/streams.py +787 -0
- package/python/lib/python3.13/asyncio/subprocess.py +229 -0
- package/python/lib/python3.13/asyncio/taskgroups.py +278 -0
- package/python/lib/python3.13/asyncio/tasks.py +1121 -0
- package/python/lib/python3.13/asyncio/threads.py +26 -0
- package/python/lib/python3.13/asyncio/timeouts.py +185 -0
- package/python/lib/python3.13/asyncio/transports.py +337 -0
- package/python/lib/python3.13/asyncio/trsock.py +98 -0
- package/python/lib/python3.13/asyncio/unix_events.py +1550 -0
- package/python/lib/python3.13/asyncio/windows_events.py +906 -0
- package/python/lib/python3.13/asyncio/windows_utils.py +181 -0
- package/python/lib/python3.13/base64.py +628 -0
- package/python/lib/python3.13/bdb.py +973 -0
- package/python/lib/python3.13/bisect.py +118 -0
- package/python/lib/python3.13/bz2.py +352 -0
- package/python/lib/python3.13/cProfile.py +197 -0
- package/python/lib/python3.13/calendar.py +813 -0
- package/python/lib/python3.13/cmd.py +409 -0
- package/python/lib/python3.13/code.py +386 -0
- package/python/lib/python3.13/codecs.py +1132 -0
- package/python/lib/python3.13/codeop.py +155 -0
- package/python/lib/python3.13/collections/__init__.py +1603 -0
- package/python/lib/python3.13/colorsys.py +166 -0
- package/python/lib/python3.13/compileall.py +470 -0
- package/python/lib/python3.13/concurrent/__init__.py +1 -0
- package/python/lib/python3.13/concurrent/futures/__init__.py +54 -0
- package/python/lib/python3.13/concurrent/futures/_base.py +660 -0
- package/python/lib/python3.13/concurrent/futures/process.py +892 -0
- package/python/lib/python3.13/concurrent/futures/thread.py +240 -0
- package/python/lib/python3.13/configparser.py +1396 -0
- package/python/lib/python3.13/contextlib.py +814 -0
- package/python/lib/python3.13/contextvars.py +4 -0
- package/python/lib/python3.13/copy.py +306 -0
- package/python/lib/python3.13/copyreg.py +217 -0
- package/python/lib/python3.13/csv.py +527 -0
- package/python/lib/python3.13/ctypes/__init__.py +605 -0
- package/python/lib/python3.13/ctypes/_aix.py +327 -0
- package/python/lib/python3.13/ctypes/_endian.py +78 -0
- package/python/lib/python3.13/ctypes/macholib/README.ctypes +7 -0
- package/python/lib/python3.13/ctypes/macholib/__init__.py +9 -0
- package/python/lib/python3.13/ctypes/macholib/dyld.py +165 -0
- package/python/lib/python3.13/ctypes/macholib/dylib.py +42 -0
- package/python/lib/python3.13/ctypes/macholib/fetch_macholib +2 -0
- package/python/lib/python3.13/ctypes/macholib/fetch_macholib.bat +1 -0
- package/python/lib/python3.13/ctypes/macholib/framework.py +42 -0
- package/python/lib/python3.13/ctypes/util.py +387 -0
- package/python/lib/python3.13/ctypes/wintypes.py +202 -0
- package/python/lib/python3.13/curses/__init__.py +101 -0
- package/python/lib/python3.13/curses/ascii.py +99 -0
- package/python/lib/python3.13/curses/has_key.py +192 -0
- package/python/lib/python3.13/curses/panel.py +6 -0
- package/python/lib/python3.13/curses/textpad.py +236 -0
- package/python/lib/python3.13/dataclasses.py +1679 -0
- package/python/lib/python3.13/datetime.py +9 -0
- package/python/lib/python3.13/dbm/__init__.py +194 -0
- package/python/lib/python3.13/dbm/dumb.py +319 -0
- package/python/lib/python3.13/dbm/gnu.py +3 -0
- package/python/lib/python3.13/dbm/ndbm.py +3 -0
- package/python/lib/python3.13/dbm/sqlite3.py +144 -0
- package/python/lib/python3.13/decimal.py +109 -0
- package/python/lib/python3.13/difflib.py +2058 -0
- package/python/lib/python3.13/dis.py +1075 -0
- package/python/lib/python3.13/doctest.py +2919 -0
- package/python/lib/python3.13/email/__init__.py +61 -0
- package/python/lib/python3.13/email/_encoded_words.py +233 -0
- package/python/lib/python3.13/email/_header_value_parser.py +3153 -0
- package/python/lib/python3.13/email/_parseaddr.py +563 -0
- package/python/lib/python3.13/email/_policybase.py +382 -0
- package/python/lib/python3.13/email/architecture.rst +216 -0
- package/python/lib/python3.13/email/base64mime.py +115 -0
- package/python/lib/python3.13/email/charset.py +396 -0
- package/python/lib/python3.13/email/contentmanager.py +254 -0
- package/python/lib/python3.13/email/encoders.py +65 -0
- package/python/lib/python3.13/email/errors.py +117 -0
- package/python/lib/python3.13/email/feedparser.py +536 -0
- package/python/lib/python3.13/email/generator.py +530 -0
- package/python/lib/python3.13/email/header.py +582 -0
- package/python/lib/python3.13/email/headerregistry.py +618 -0
- package/python/lib/python3.13/email/iterators.py +68 -0
- package/python/lib/python3.13/email/message.py +1217 -0
- package/python/lib/python3.13/email/mime/__init__.py +0 -0
- package/python/lib/python3.13/email/mime/application.py +37 -0
- package/python/lib/python3.13/email/mime/audio.py +97 -0
- package/python/lib/python3.13/email/mime/base.py +29 -0
- package/python/lib/python3.13/email/mime/image.py +152 -0
- package/python/lib/python3.13/email/mime/message.py +33 -0
- package/python/lib/python3.13/email/mime/multipart.py +47 -0
- package/python/lib/python3.13/email/mime/nonmultipart.py +21 -0
- package/python/lib/python3.13/email/mime/text.py +40 -0
- package/python/lib/python3.13/email/parser.py +127 -0
- package/python/lib/python3.13/email/policy.py +232 -0
- package/python/lib/python3.13/email/quoprimime.py +300 -0
- package/python/lib/python3.13/email/utils.py +497 -0
- package/python/lib/python3.13/encodings/__init__.py +179 -0
- package/python/lib/python3.13/encodings/__pycache__/__init__.cpython-313.pyc +0 -0
- package/python/lib/python3.13/encodings/__pycache__/aliases.cpython-313.pyc +0 -0
- package/python/lib/python3.13/encodings/__pycache__/utf_8.cpython-313.pyc +0 -0
- package/python/lib/python3.13/encodings/aliases.py +560 -0
- package/python/lib/python3.13/encodings/ascii.py +50 -0
- package/python/lib/python3.13/encodings/base64_codec.py +55 -0
- package/python/lib/python3.13/encodings/big5.py +39 -0
- package/python/lib/python3.13/encodings/big5hkscs.py +39 -0
- package/python/lib/python3.13/encodings/bz2_codec.py +78 -0
- package/python/lib/python3.13/encodings/charmap.py +69 -0
- package/python/lib/python3.13/encodings/cp037.py +307 -0
- package/python/lib/python3.13/encodings/cp1006.py +307 -0
- package/python/lib/python3.13/encodings/cp1026.py +307 -0
- package/python/lib/python3.13/encodings/cp1125.py +698 -0
- package/python/lib/python3.13/encodings/cp1140.py +307 -0
- package/python/lib/python3.13/encodings/cp1250.py +307 -0
- package/python/lib/python3.13/encodings/cp1251.py +307 -0
- package/python/lib/python3.13/encodings/cp1252.py +307 -0
- package/python/lib/python3.13/encodings/cp1253.py +307 -0
- package/python/lib/python3.13/encodings/cp1254.py +307 -0
- package/python/lib/python3.13/encodings/cp1255.py +307 -0
- package/python/lib/python3.13/encodings/cp1256.py +307 -0
- package/python/lib/python3.13/encodings/cp1257.py +307 -0
- package/python/lib/python3.13/encodings/cp1258.py +307 -0
- package/python/lib/python3.13/encodings/cp273.py +307 -0
- package/python/lib/python3.13/encodings/cp424.py +307 -0
- package/python/lib/python3.13/encodings/cp437.py +698 -0
- package/python/lib/python3.13/encodings/cp500.py +307 -0
- package/python/lib/python3.13/encodings/cp720.py +309 -0
- package/python/lib/python3.13/encodings/cp737.py +698 -0
- package/python/lib/python3.13/encodings/cp775.py +697 -0
- package/python/lib/python3.13/encodings/cp850.py +698 -0
- package/python/lib/python3.13/encodings/cp852.py +698 -0
- package/python/lib/python3.13/encodings/cp855.py +698 -0
- package/python/lib/python3.13/encodings/cp856.py +307 -0
- package/python/lib/python3.13/encodings/cp857.py +694 -0
- package/python/lib/python3.13/encodings/cp858.py +698 -0
- package/python/lib/python3.13/encodings/cp860.py +698 -0
- package/python/lib/python3.13/encodings/cp861.py +698 -0
- package/python/lib/python3.13/encodings/cp862.py +698 -0
- package/python/lib/python3.13/encodings/cp863.py +698 -0
- package/python/lib/python3.13/encodings/cp864.py +690 -0
- package/python/lib/python3.13/encodings/cp865.py +698 -0
- package/python/lib/python3.13/encodings/cp866.py +698 -0
- package/python/lib/python3.13/encodings/cp869.py +689 -0
- package/python/lib/python3.13/encodings/cp874.py +307 -0
- package/python/lib/python3.13/encodings/cp875.py +307 -0
- package/python/lib/python3.13/encodings/cp932.py +39 -0
- package/python/lib/python3.13/encodings/cp949.py +39 -0
- package/python/lib/python3.13/encodings/cp950.py +39 -0
- package/python/lib/python3.13/encodings/euc_jis_2004.py +39 -0
- package/python/lib/python3.13/encodings/euc_jisx0213.py +39 -0
- package/python/lib/python3.13/encodings/euc_jp.py +39 -0
- package/python/lib/python3.13/encodings/euc_kr.py +39 -0
- package/python/lib/python3.13/encodings/gb18030.py +39 -0
- package/python/lib/python3.13/encodings/gb2312.py +39 -0
- package/python/lib/python3.13/encodings/gbk.py +39 -0
- package/python/lib/python3.13/encodings/hex_codec.py +55 -0
- package/python/lib/python3.13/encodings/hp_roman8.py +314 -0
- package/python/lib/python3.13/encodings/hz.py +39 -0
- package/python/lib/python3.13/encodings/idna.py +387 -0
- package/python/lib/python3.13/encodings/iso2022_jp.py +39 -0
- package/python/lib/python3.13/encodings/iso2022_jp_1.py +39 -0
- package/python/lib/python3.13/encodings/iso2022_jp_2.py +39 -0
- package/python/lib/python3.13/encodings/iso2022_jp_2004.py +39 -0
- package/python/lib/python3.13/encodings/iso2022_jp_3.py +39 -0
- package/python/lib/python3.13/encodings/iso2022_jp_ext.py +39 -0
- package/python/lib/python3.13/encodings/iso2022_kr.py +39 -0
- package/python/lib/python3.13/encodings/iso8859_1.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_10.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_11.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_13.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_14.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_15.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_16.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_2.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_3.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_4.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_5.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_6.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_7.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_8.py +307 -0
- package/python/lib/python3.13/encodings/iso8859_9.py +307 -0
- package/python/lib/python3.13/encodings/johab.py +39 -0
- package/python/lib/python3.13/encodings/koi8_r.py +307 -0
- package/python/lib/python3.13/encodings/koi8_t.py +308 -0
- package/python/lib/python3.13/encodings/koi8_u.py +307 -0
- package/python/lib/python3.13/encodings/kz1048.py +307 -0
- package/python/lib/python3.13/encodings/latin_1.py +50 -0
- package/python/lib/python3.13/encodings/mac_arabic.py +698 -0
- package/python/lib/python3.13/encodings/mac_croatian.py +307 -0
- package/python/lib/python3.13/encodings/mac_cyrillic.py +307 -0
- package/python/lib/python3.13/encodings/mac_farsi.py +307 -0
- package/python/lib/python3.13/encodings/mac_greek.py +307 -0
- package/python/lib/python3.13/encodings/mac_iceland.py +307 -0
- package/python/lib/python3.13/encodings/mac_latin2.py +312 -0
- package/python/lib/python3.13/encodings/mac_roman.py +307 -0
- package/python/lib/python3.13/encodings/mac_romanian.py +307 -0
- package/python/lib/python3.13/encodings/mac_turkish.py +307 -0
- package/python/lib/python3.13/encodings/mbcs.py +47 -0
- package/python/lib/python3.13/encodings/oem.py +41 -0
- package/python/lib/python3.13/encodings/palmos.py +308 -0
- package/python/lib/python3.13/encodings/ptcp154.py +312 -0
- package/python/lib/python3.13/encodings/punycode.py +253 -0
- package/python/lib/python3.13/encodings/quopri_codec.py +56 -0
- package/python/lib/python3.13/encodings/raw_unicode_escape.py +46 -0
- package/python/lib/python3.13/encodings/rot_13.py +113 -0
- package/python/lib/python3.13/encodings/shift_jis.py +39 -0
- package/python/lib/python3.13/encodings/shift_jis_2004.py +39 -0
- package/python/lib/python3.13/encodings/shift_jisx0213.py +39 -0
- package/python/lib/python3.13/encodings/tis_620.py +307 -0
- package/python/lib/python3.13/encodings/undefined.py +49 -0
- package/python/lib/python3.13/encodings/unicode_escape.py +46 -0
- package/python/lib/python3.13/encodings/utf_16.py +155 -0
- package/python/lib/python3.13/encodings/utf_16_be.py +42 -0
- package/python/lib/python3.13/encodings/utf_16_le.py +42 -0
- package/python/lib/python3.13/encodings/utf_32.py +150 -0
- package/python/lib/python3.13/encodings/utf_32_be.py +37 -0
- package/python/lib/python3.13/encodings/utf_32_le.py +37 -0
- package/python/lib/python3.13/encodings/utf_7.py +38 -0
- package/python/lib/python3.13/encodings/utf_8.py +42 -0
- package/python/lib/python3.13/encodings/utf_8_sig.py +130 -0
- package/python/lib/python3.13/encodings/uu_codec.py +103 -0
- package/python/lib/python3.13/encodings/zlib_codec.py +77 -0
- package/python/lib/python3.13/enum.py +2183 -0
- package/python/lib/python3.13/filecmp.py +320 -0
- package/python/lib/python3.13/fileinput.py +442 -0
- package/python/lib/python3.13/fnmatch.py +192 -0
- package/python/lib/python3.13/fractions.py +1043 -0
- package/python/lib/python3.13/ftplib.py +975 -0
- package/python/lib/python3.13/functools.py +1036 -0
- package/python/lib/python3.13/genericpath.py +200 -0
- package/python/lib/python3.13/getopt.py +215 -0
- package/python/lib/python3.13/getpass.py +192 -0
- package/python/lib/python3.13/gettext.py +657 -0
- package/python/lib/python3.13/glob.py +572 -0
- package/python/lib/python3.13/graphlib.py +250 -0
- package/python/lib/python3.13/gzip.py +693 -0
- package/python/lib/python3.13/hashlib.py +255 -0
- package/python/lib/python3.13/heapq.py +603 -0
- package/python/lib/python3.13/hmac.py +220 -0
- package/python/lib/python3.13/html/__init__.py +132 -0
- package/python/lib/python3.13/html/entities.py +2513 -0
- package/python/lib/python3.13/html/parser.py +583 -0
- package/python/lib/python3.13/http/__init__.py +202 -0
- package/python/lib/python3.13/http/client.py +1598 -0
- package/python/lib/python3.13/http/cookiejar.py +2122 -0
- package/python/lib/python3.13/http/cookies.py +635 -0
- package/python/lib/python3.13/http/server.py +1355 -0
- package/python/lib/python3.13/imaplib.py +1769 -0
- package/python/lib/python3.13/importlib/__init__.py +136 -0
- package/python/lib/python3.13/importlib/_abc.py +39 -0
- package/python/lib/python3.13/importlib/_bootstrap.py +1559 -0
- package/python/lib/python3.13/importlib/_bootstrap_external.py +1826 -0
- package/python/lib/python3.13/importlib/abc.py +243 -0
- package/python/lib/python3.13/importlib/machinery.py +21 -0
- package/python/lib/python3.13/importlib/metadata/__init__.py +1093 -0
- package/python/lib/python3.13/importlib/metadata/_adapters.py +89 -0
- package/python/lib/python3.13/importlib/metadata/_collections.py +30 -0
- package/python/lib/python3.13/importlib/metadata/_functools.py +104 -0
- package/python/lib/python3.13/importlib/metadata/_itertools.py +73 -0
- package/python/lib/python3.13/importlib/metadata/_meta.py +67 -0
- package/python/lib/python3.13/importlib/metadata/_text.py +99 -0
- package/python/lib/python3.13/importlib/metadata/diagnose.py +21 -0
- package/python/lib/python3.13/importlib/readers.py +12 -0
- package/python/lib/python3.13/importlib/resources/__init__.py +43 -0
- package/python/lib/python3.13/importlib/resources/_adapters.py +168 -0
- package/python/lib/python3.13/importlib/resources/_common.py +211 -0
- package/python/lib/python3.13/importlib/resources/_functional.py +81 -0
- package/python/lib/python3.13/importlib/resources/_itertools.py +38 -0
- package/python/lib/python3.13/importlib/resources/abc.py +173 -0
- package/python/lib/python3.13/importlib/resources/readers.py +203 -0
- package/python/lib/python3.13/importlib/resources/simple.py +106 -0
- package/python/lib/python3.13/importlib/simple.py +14 -0
- package/python/lib/python3.13/importlib/util.py +274 -0
- package/python/lib/python3.13/inspect.py +3479 -0
- package/python/lib/python3.13/io.py +99 -0
- package/python/lib/python3.13/ipaddress.py +2440 -0
- package/python/lib/python3.13/json/__init__.py +365 -0
- package/python/lib/python3.13/json/decoder.py +364 -0
- package/python/lib/python3.13/json/encoder.py +446 -0
- package/python/lib/python3.13/json/scanner.py +73 -0
- package/python/lib/python3.13/json/tool.py +90 -0
- package/python/lib/python3.13/keyword.py +64 -0
- package/python/lib/python3.13/lib-dynload/.empty +0 -0
- package/python/lib/python3.13/lib-dynload/_dbm.cpython-313-x86_64-linux-gnu.so +0 -0
- package/python/lib/python3.13/linecache.py +236 -0
- package/python/lib/python3.13/locale.py +1987 -0
- package/python/lib/python3.13/logging/__init__.py +2330 -0
- package/python/lib/python3.13/logging/config.py +1080 -0
- package/python/lib/python3.13/logging/handlers.py +1629 -0
- package/python/lib/python3.13/lzma.py +364 -0
- package/python/lib/python3.13/mailbox.py +2219 -0
- package/python/lib/python3.13/mimetypes.py +679 -0
- package/python/lib/python3.13/modulefinder.py +671 -0
- package/python/lib/python3.13/multiprocessing/__init__.py +37 -0
- package/python/lib/python3.13/multiprocessing/connection.py +1216 -0
- package/python/lib/python3.13/multiprocessing/context.py +383 -0
- package/python/lib/python3.13/multiprocessing/dummy/__init__.py +126 -0
- package/python/lib/python3.13/multiprocessing/dummy/connection.py +75 -0
- package/python/lib/python3.13/multiprocessing/forkserver.py +373 -0
- package/python/lib/python3.13/multiprocessing/heap.py +337 -0
- package/python/lib/python3.13/multiprocessing/managers.py +1397 -0
- package/python/lib/python3.13/multiprocessing/pool.py +957 -0
- package/python/lib/python3.13/multiprocessing/popen_fork.py +97 -0
- package/python/lib/python3.13/multiprocessing/popen_forkserver.py +74 -0
- package/python/lib/python3.13/multiprocessing/popen_spawn_posix.py +76 -0
- package/python/lib/python3.13/multiprocessing/popen_spawn_win32.py +147 -0
- package/python/lib/python3.13/multiprocessing/process.py +436 -0
- package/python/lib/python3.13/multiprocessing/queues.py +399 -0
- package/python/lib/python3.13/multiprocessing/reduction.py +281 -0
- package/python/lib/python3.13/multiprocessing/resource_sharer.py +154 -0
- package/python/lib/python3.13/multiprocessing/resource_tracker.py +499 -0
- package/python/lib/python3.13/multiprocessing/shared_memory.py +544 -0
- package/python/lib/python3.13/multiprocessing/sharedctypes.py +240 -0
- package/python/lib/python3.13/multiprocessing/spawn.py +307 -0
- package/python/lib/python3.13/multiprocessing/synchronize.py +404 -0
- package/python/lib/python3.13/multiprocessing/util.py +562 -0
- package/python/lib/python3.13/netrc.py +199 -0
- package/python/lib/python3.13/ntpath.py +872 -0
- package/python/lib/python3.13/nturl2path.py +69 -0
- package/python/lib/python3.13/numbers.py +427 -0
- package/python/lib/python3.13/opcode.py +115 -0
- package/python/lib/python3.13/operator.py +467 -0
- package/python/lib/python3.13/optparse.py +1681 -0
- package/python/lib/python3.13/os.py +1184 -0
- package/python/lib/python3.13/pathlib/__init__.py +12 -0
- package/python/lib/python3.13/pathlib/_abc.py +930 -0
- package/python/lib/python3.13/pathlib/_local.py +861 -0
- package/python/lib/python3.13/pdb.py +2550 -0
- package/python/lib/python3.13/pickle.py +1860 -0
- package/python/lib/python3.13/pickletools.py +2904 -0
- package/python/lib/python3.13/pkgutil.py +529 -0
- package/python/lib/python3.13/platform.py +1454 -0
- package/python/lib/python3.13/plistlib.py +948 -0
- package/python/lib/python3.13/poplib.py +477 -0
- package/python/lib/python3.13/posixpath.py +578 -0
- package/python/lib/python3.13/pprint.py +658 -0
- package/python/lib/python3.13/profile.py +616 -0
- package/python/lib/python3.13/pstats.py +778 -0
- package/python/lib/python3.13/pty.py +211 -0
- package/python/lib/python3.13/py_compile.py +212 -0
- package/python/lib/python3.13/pyclbr.py +314 -0
- package/python/lib/python3.13/pydoc.py +2861 -0
- package/python/lib/python3.13/queue.py +383 -0
- package/python/lib/python3.13/quopri.py +237 -0
- package/python/lib/python3.13/random.py +1078 -0
- package/python/lib/python3.13/re/__init__.py +428 -0
- package/python/lib/python3.13/re/_casefix.py +106 -0
- package/python/lib/python3.13/re/_compiler.py +768 -0
- package/python/lib/python3.13/re/_constants.py +222 -0
- package/python/lib/python3.13/re/_parser.py +1081 -0
- package/python/lib/python3.13/reprlib.py +230 -0
- package/python/lib/python3.13/rlcompleter.py +222 -0
- package/python/lib/python3.13/runpy.py +326 -0
- package/python/lib/python3.13/sched.py +167 -0
- package/python/lib/python3.13/secrets.py +71 -0
- package/python/lib/python3.13/selectors.py +603 -0
- package/python/lib/python3.13/shelve.py +250 -0
- package/python/lib/python3.13/shlex.py +345 -0
- package/python/lib/python3.13/shutil.py +1569 -0
- package/python/lib/python3.13/signal.py +94 -0
- package/python/lib/python3.13/site.py +773 -0
- package/python/lib/python3.13/smtplib.py +1123 -0
- package/python/lib/python3.13/socket.py +988 -0
- package/python/lib/python3.13/socketserver.py +863 -0
- package/python/lib/python3.13/sqlite3/__init__.py +70 -0
- package/python/lib/python3.13/sqlite3/__main__.py +139 -0
- package/python/lib/python3.13/sqlite3/dbapi2.py +108 -0
- package/python/lib/python3.13/sqlite3/dump.py +118 -0
- package/python/lib/python3.13/sre_compile.py +7 -0
- package/python/lib/python3.13/sre_constants.py +7 -0
- package/python/lib/python3.13/sre_parse.py +7 -0
- package/python/lib/python3.13/ssl.py +1541 -0
- package/python/lib/python3.13/stat.py +212 -0
- package/python/lib/python3.13/statistics.py +1817 -0
- package/python/lib/python3.13/string.py +314 -0
- package/python/lib/python3.13/stringprep.py +272 -0
- package/python/lib/python3.13/struct.py +15 -0
- package/python/lib/python3.13/subprocess.py +2258 -0
- package/python/lib/python3.13/symtable.py +414 -0
- package/python/lib/python3.13/sysconfig/__init__.py +734 -0
- package/python/lib/python3.13/sysconfig/__main__.py +248 -0
- package/python/lib/python3.13/tabnanny.py +340 -0
- package/python/lib/python3.13/tarfile.py +3136 -0
- package/python/lib/python3.13/tempfile.py +958 -0
- package/python/lib/python3.13/textwrap.py +497 -0
- package/python/lib/python3.13/this.py +28 -0
- package/python/lib/python3.13/threading.py +1602 -0
- package/python/lib/python3.13/timeit.py +381 -0
- package/python/lib/python3.13/token.py +141 -0
- package/python/lib/python3.13/tokenize.py +592 -0
- package/python/lib/python3.13/tomllib/__init__.py +10 -0
- package/python/lib/python3.13/tomllib/_parser.py +703 -0
- package/python/lib/python3.13/tomllib/_re.py +107 -0
- package/python/lib/python3.13/tomllib/_types.py +10 -0
- package/python/lib/python3.13/tomllib/mypy.ini +15 -0
- package/python/lib/python3.13/trace.py +754 -0
- package/python/lib/python3.13/traceback.py +1639 -0
- package/python/lib/python3.13/tracemalloc.py +560 -0
- package/python/lib/python3.13/tty.py +73 -0
- package/python/lib/python3.13/types.py +346 -0
- package/python/lib/python3.13/typing.py +3846 -0
- package/python/lib/python3.13/unittest/__init__.py +80 -0
- package/python/lib/python3.13/unittest/__main__.py +18 -0
- package/python/lib/python3.13/unittest/_log.py +86 -0
- package/python/lib/python3.13/unittest/async_case.py +146 -0
- package/python/lib/python3.13/unittest/case.py +1478 -0
- package/python/lib/python3.13/unittest/loader.py +460 -0
- package/python/lib/python3.13/unittest/main.py +280 -0
- package/python/lib/python3.13/unittest/mock.py +3189 -0
- package/python/lib/python3.13/unittest/result.py +256 -0
- package/python/lib/python3.13/unittest/runner.py +292 -0
- package/python/lib/python3.13/unittest/signals.py +71 -0
- package/python/lib/python3.13/unittest/suite.py +379 -0
- package/python/lib/python3.13/unittest/util.py +170 -0
- package/python/lib/python3.13/urllib/__init__.py +0 -0
- package/python/lib/python3.13/urllib/error.py +74 -0
- package/python/lib/python3.13/urllib/parse.py +1264 -0
- package/python/lib/python3.13/urllib/request.py +2796 -0
- package/python/lib/python3.13/urllib/response.py +84 -0
- package/python/lib/python3.13/urllib/robotparser.py +363 -0
- package/python/lib/python3.13/uuid.py +784 -0
- package/python/lib/python3.13/warnings.py +735 -0
- package/python/lib/python3.13/wave.py +665 -0
- package/python/lib/python3.13/weakref.py +674 -0
- package/python/lib/python3.13/webbrowser.py +724 -0
- package/python/lib/python3.13/wsgiref/__init__.py +25 -0
- package/python/lib/python3.13/wsgiref/handlers.py +575 -0
- package/python/lib/python3.13/wsgiref/headers.py +192 -0
- package/python/lib/python3.13/wsgiref/simple_server.py +161 -0
- package/python/lib/python3.13/wsgiref/types.py +54 -0
- package/python/lib/python3.13/wsgiref/util.py +159 -0
- package/python/lib/python3.13/wsgiref/validate.py +438 -0
- package/python/lib/python3.13/xml/__init__.py +20 -0
- package/python/lib/python3.13/xml/dom/NodeFilter.py +27 -0
- package/python/lib/python3.13/xml/dom/__init__.py +140 -0
- package/python/lib/python3.13/xml/dom/domreg.py +99 -0
- package/python/lib/python3.13/xml/dom/expatbuilder.py +962 -0
- package/python/lib/python3.13/xml/dom/minicompat.py +109 -0
- package/python/lib/python3.13/xml/dom/minidom.py +2024 -0
- package/python/lib/python3.13/xml/dom/pulldom.py +336 -0
- package/python/lib/python3.13/xml/dom/xmlbuilder.py +389 -0
- package/python/lib/python3.13/xml/etree/ElementInclude.py +186 -0
- package/python/lib/python3.13/xml/etree/ElementPath.py +430 -0
- package/python/lib/python3.13/xml/etree/ElementTree.py +2116 -0
- package/python/lib/python3.13/xml/etree/__init__.py +33 -0
- package/python/lib/python3.13/xml/etree/cElementTree.py +3 -0
- package/python/lib/python3.13/xml/parsers/__init__.py +8 -0
- package/python/lib/python3.13/xml/parsers/expat.py +8 -0
- package/python/lib/python3.13/xml/sax/__init__.py +94 -0
- package/python/lib/python3.13/xml/sax/_exceptions.py +127 -0
- package/python/lib/python3.13/xml/sax/expatreader.py +454 -0
- package/python/lib/python3.13/xml/sax/handler.py +387 -0
- package/python/lib/python3.13/xml/sax/saxutils.py +369 -0
- package/python/lib/python3.13/xml/sax/xmlreader.py +378 -0
- package/python/lib/python3.13/xmlrpc/__init__.py +1 -0
- package/python/lib/python3.13/xmlrpc/client.py +1503 -0
- package/python/lib/python3.13/xmlrpc/server.py +1002 -0
- package/python/lib/python3.13/zipapp.py +229 -0
- package/python/lib/python3.13/zipfile/__init__.py +2391 -0
- package/python/lib/python3.13/zipfile/__main__.py +4 -0
- package/python/lib/python3.13/zipfile/_path/__init__.py +452 -0
- package/python/lib/python3.13/zipfile/_path/glob.py +113 -0
- package/python/lib/python3.13/zipimport.py +803 -0
- package/python/lib/python3.13/zoneinfo/__init__.py +34 -0
- package/python/lib/python3.13/zoneinfo/_common.py +172 -0
- package/python/lib/python3.13/zoneinfo/_tzpath.py +189 -0
- package/python/lib/python3.13/zoneinfo/_zoneinfo.py +779 -0
- package/python/licenses/LICENSE.bdb.txt +126 -0
- package/python/licenses/LICENSE.bzip2.txt +37 -0
- package/python/licenses/LICENSE.cpython.txt +771 -0
- package/python/licenses/LICENSE.expat.txt +21 -0
- package/python/licenses/LICENSE.libX11.txt +942 -0
- package/python/licenses/LICENSE.libXau.txt +21 -0
- package/python/licenses/LICENSE.libedit.txt +29 -0
- package/python/licenses/LICENSE.libffi.txt +21 -0
- package/python/licenses/LICENSE.liblzma.txt +13 -0
- package/python/licenses/LICENSE.libuuid.txt +27 -0
- package/python/licenses/LICENSE.libxcb.txt +30 -0
- package/python/licenses/LICENSE.mpdecimal.txt +24 -0
- package/python/licenses/LICENSE.ncurses.txt +29 -0
- package/python/licenses/LICENSE.openssl-1.1.txt +124 -0
- package/python/licenses/LICENSE.openssl-3.txt +177 -0
- package/python/licenses/LICENSE.sqlite.txt +23 -0
- package/python/licenses/LICENSE.tcl.txt +40 -0
- package/python/licenses/LICENSE.tix.txt +54 -0
- package/python/licenses/LICENSE.zlib.txt +21 -0
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
import threading
|
|
4
|
+
|
|
5
|
+
from . import process
|
|
6
|
+
from . import reduction
|
|
7
|
+
|
|
8
|
+
__all__ = ()
|
|
9
|
+
|
|
10
|
+
#
|
|
11
|
+
# Exceptions
|
|
12
|
+
#
|
|
13
|
+
|
|
14
|
+
class ProcessError(Exception):
|
|
15
|
+
pass
|
|
16
|
+
|
|
17
|
+
class BufferTooShort(ProcessError):
|
|
18
|
+
pass
|
|
19
|
+
|
|
20
|
+
class TimeoutError(ProcessError):
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
class AuthenticationError(ProcessError):
|
|
24
|
+
pass
|
|
25
|
+
|
|
26
|
+
#
|
|
27
|
+
# Base type for contexts. Bound methods of an instance of this type are included in __all__ of __init__.py
|
|
28
|
+
#
|
|
29
|
+
|
|
30
|
+
class BaseContext(object):
|
|
31
|
+
|
|
32
|
+
ProcessError = ProcessError
|
|
33
|
+
BufferTooShort = BufferTooShort
|
|
34
|
+
TimeoutError = TimeoutError
|
|
35
|
+
AuthenticationError = AuthenticationError
|
|
36
|
+
|
|
37
|
+
current_process = staticmethod(process.current_process)
|
|
38
|
+
parent_process = staticmethod(process.parent_process)
|
|
39
|
+
active_children = staticmethod(process.active_children)
|
|
40
|
+
|
|
41
|
+
def cpu_count(self):
|
|
42
|
+
'''Returns the number of CPUs in the system'''
|
|
43
|
+
num = os.cpu_count()
|
|
44
|
+
if num is None:
|
|
45
|
+
raise NotImplementedError('cannot determine number of cpus')
|
|
46
|
+
else:
|
|
47
|
+
return num
|
|
48
|
+
|
|
49
|
+
def Manager(self):
|
|
50
|
+
'''Returns a manager associated with a running server process
|
|
51
|
+
|
|
52
|
+
The managers methods such as `Lock()`, `Condition()` and `Queue()`
|
|
53
|
+
can be used to create shared objects.
|
|
54
|
+
'''
|
|
55
|
+
from .managers import SyncManager
|
|
56
|
+
m = SyncManager(ctx=self.get_context())
|
|
57
|
+
m.start()
|
|
58
|
+
return m
|
|
59
|
+
|
|
60
|
+
def Pipe(self, duplex=True):
|
|
61
|
+
'''Returns two connection object connected by a pipe'''
|
|
62
|
+
from .connection import Pipe
|
|
63
|
+
return Pipe(duplex)
|
|
64
|
+
|
|
65
|
+
def Lock(self):
|
|
66
|
+
'''Returns a non-recursive lock object'''
|
|
67
|
+
from .synchronize import Lock
|
|
68
|
+
return Lock(ctx=self.get_context())
|
|
69
|
+
|
|
70
|
+
def RLock(self):
|
|
71
|
+
'''Returns a recursive lock object'''
|
|
72
|
+
from .synchronize import RLock
|
|
73
|
+
return RLock(ctx=self.get_context())
|
|
74
|
+
|
|
75
|
+
def Condition(self, lock=None):
|
|
76
|
+
'''Returns a condition object'''
|
|
77
|
+
from .synchronize import Condition
|
|
78
|
+
return Condition(lock, ctx=self.get_context())
|
|
79
|
+
|
|
80
|
+
def Semaphore(self, value=1):
|
|
81
|
+
'''Returns a semaphore object'''
|
|
82
|
+
from .synchronize import Semaphore
|
|
83
|
+
return Semaphore(value, ctx=self.get_context())
|
|
84
|
+
|
|
85
|
+
def BoundedSemaphore(self, value=1):
|
|
86
|
+
'''Returns a bounded semaphore object'''
|
|
87
|
+
from .synchronize import BoundedSemaphore
|
|
88
|
+
return BoundedSemaphore(value, ctx=self.get_context())
|
|
89
|
+
|
|
90
|
+
def Event(self):
|
|
91
|
+
'''Returns an event object'''
|
|
92
|
+
from .synchronize import Event
|
|
93
|
+
return Event(ctx=self.get_context())
|
|
94
|
+
|
|
95
|
+
def Barrier(self, parties, action=None, timeout=None):
|
|
96
|
+
'''Returns a barrier object'''
|
|
97
|
+
from .synchronize import Barrier
|
|
98
|
+
return Barrier(parties, action, timeout, ctx=self.get_context())
|
|
99
|
+
|
|
100
|
+
def Queue(self, maxsize=0):
|
|
101
|
+
'''Returns a queue object'''
|
|
102
|
+
from .queues import Queue
|
|
103
|
+
return Queue(maxsize, ctx=self.get_context())
|
|
104
|
+
|
|
105
|
+
def JoinableQueue(self, maxsize=0):
|
|
106
|
+
'''Returns a queue object'''
|
|
107
|
+
from .queues import JoinableQueue
|
|
108
|
+
return JoinableQueue(maxsize, ctx=self.get_context())
|
|
109
|
+
|
|
110
|
+
def SimpleQueue(self):
|
|
111
|
+
'''Returns a queue object'''
|
|
112
|
+
from .queues import SimpleQueue
|
|
113
|
+
return SimpleQueue(ctx=self.get_context())
|
|
114
|
+
|
|
115
|
+
def Pool(self, processes=None, initializer=None, initargs=(),
|
|
116
|
+
maxtasksperchild=None):
|
|
117
|
+
'''Returns a process pool object'''
|
|
118
|
+
from .pool import Pool
|
|
119
|
+
return Pool(processes, initializer, initargs, maxtasksperchild,
|
|
120
|
+
context=self.get_context())
|
|
121
|
+
|
|
122
|
+
def RawValue(self, typecode_or_type, *args):
|
|
123
|
+
'''Returns a shared object'''
|
|
124
|
+
from .sharedctypes import RawValue
|
|
125
|
+
return RawValue(typecode_or_type, *args)
|
|
126
|
+
|
|
127
|
+
def RawArray(self, typecode_or_type, size_or_initializer):
|
|
128
|
+
'''Returns a shared array'''
|
|
129
|
+
from .sharedctypes import RawArray
|
|
130
|
+
return RawArray(typecode_or_type, size_or_initializer)
|
|
131
|
+
|
|
132
|
+
def Value(self, typecode_or_type, *args, lock=True):
|
|
133
|
+
'''Returns a synchronized shared object'''
|
|
134
|
+
from .sharedctypes import Value
|
|
135
|
+
return Value(typecode_or_type, *args, lock=lock,
|
|
136
|
+
ctx=self.get_context())
|
|
137
|
+
|
|
138
|
+
def Array(self, typecode_or_type, size_or_initializer, *, lock=True):
|
|
139
|
+
'''Returns a synchronized shared array'''
|
|
140
|
+
from .sharedctypes import Array
|
|
141
|
+
return Array(typecode_or_type, size_or_initializer, lock=lock,
|
|
142
|
+
ctx=self.get_context())
|
|
143
|
+
|
|
144
|
+
def freeze_support(self):
|
|
145
|
+
'''Check whether this is a fake forked process in a frozen executable.
|
|
146
|
+
If so then run code specified by commandline and exit.
|
|
147
|
+
'''
|
|
148
|
+
# gh-140814: allow_none=True avoids locking in the default start
|
|
149
|
+
# method, which would cause a later set_start_method() to fail.
|
|
150
|
+
# None is safe to pass through: spawn.freeze_support()
|
|
151
|
+
# independently detects whether this process is a spawned
|
|
152
|
+
# child, so the start method check here is only an optimization.
|
|
153
|
+
if (getattr(sys, 'frozen', False)
|
|
154
|
+
and self.get_start_method(allow_none=True) in ('spawn', None)):
|
|
155
|
+
from .spawn import freeze_support
|
|
156
|
+
freeze_support()
|
|
157
|
+
|
|
158
|
+
def get_logger(self):
|
|
159
|
+
'''Return package logger -- if it does not already exist then
|
|
160
|
+
it is created.
|
|
161
|
+
'''
|
|
162
|
+
from .util import get_logger
|
|
163
|
+
return get_logger()
|
|
164
|
+
|
|
165
|
+
def log_to_stderr(self, level=None):
|
|
166
|
+
'''Turn on logging and add a handler which prints to stderr'''
|
|
167
|
+
from .util import log_to_stderr
|
|
168
|
+
return log_to_stderr(level)
|
|
169
|
+
|
|
170
|
+
def allow_connection_pickling(self):
|
|
171
|
+
'''Install support for sending connections and sockets
|
|
172
|
+
between processes
|
|
173
|
+
'''
|
|
174
|
+
# This is undocumented. In previous versions of multiprocessing
|
|
175
|
+
# its only effect was to make socket objects inheritable on Windows.
|
|
176
|
+
from . import connection
|
|
177
|
+
|
|
178
|
+
def set_executable(self, executable):
|
|
179
|
+
'''Sets the path to a python.exe or pythonw.exe binary used to run
|
|
180
|
+
child processes instead of sys.executable when using the 'spawn'
|
|
181
|
+
start method. Useful for people embedding Python.
|
|
182
|
+
'''
|
|
183
|
+
from .spawn import set_executable
|
|
184
|
+
set_executable(executable)
|
|
185
|
+
|
|
186
|
+
def set_forkserver_preload(self, module_names):
|
|
187
|
+
'''Set list of module names to try to load in forkserver process.
|
|
188
|
+
This is really just a hint.
|
|
189
|
+
'''
|
|
190
|
+
from .forkserver import set_forkserver_preload
|
|
191
|
+
set_forkserver_preload(module_names)
|
|
192
|
+
|
|
193
|
+
def get_context(self, method=None):
|
|
194
|
+
if method is None:
|
|
195
|
+
return self
|
|
196
|
+
try:
|
|
197
|
+
ctx = _concrete_contexts[method]
|
|
198
|
+
except KeyError:
|
|
199
|
+
raise ValueError('cannot find context for %r' % method) from None
|
|
200
|
+
ctx._check_available()
|
|
201
|
+
return ctx
|
|
202
|
+
|
|
203
|
+
def get_start_method(self, allow_none=False):
|
|
204
|
+
return self._name
|
|
205
|
+
|
|
206
|
+
def set_start_method(self, method, force=False):
|
|
207
|
+
raise ValueError('cannot set start method of concrete context')
|
|
208
|
+
|
|
209
|
+
@property
|
|
210
|
+
def reducer(self):
|
|
211
|
+
'''Controls how objects will be reduced to a form that can be
|
|
212
|
+
shared with other processes.'''
|
|
213
|
+
return globals().get('reduction')
|
|
214
|
+
|
|
215
|
+
@reducer.setter
|
|
216
|
+
def reducer(self, reduction):
|
|
217
|
+
globals()['reduction'] = reduction
|
|
218
|
+
|
|
219
|
+
def _check_available(self):
|
|
220
|
+
pass
|
|
221
|
+
|
|
222
|
+
#
|
|
223
|
+
# Type of default context -- underlying context can be set at most once
|
|
224
|
+
#
|
|
225
|
+
|
|
226
|
+
class Process(process.BaseProcess):
|
|
227
|
+
_start_method = None
|
|
228
|
+
@staticmethod
|
|
229
|
+
def _Popen(process_obj):
|
|
230
|
+
return _default_context.get_context().Process._Popen(process_obj)
|
|
231
|
+
|
|
232
|
+
@staticmethod
|
|
233
|
+
def _after_fork():
|
|
234
|
+
return _default_context.get_context().Process._after_fork()
|
|
235
|
+
|
|
236
|
+
class DefaultContext(BaseContext):
|
|
237
|
+
Process = Process
|
|
238
|
+
|
|
239
|
+
def __init__(self, context):
|
|
240
|
+
self._default_context = context
|
|
241
|
+
self._actual_context = None
|
|
242
|
+
|
|
243
|
+
def get_context(self, method=None):
|
|
244
|
+
if method is None:
|
|
245
|
+
if self._actual_context is None:
|
|
246
|
+
self._actual_context = self._default_context
|
|
247
|
+
return self._actual_context
|
|
248
|
+
else:
|
|
249
|
+
return super().get_context(method)
|
|
250
|
+
|
|
251
|
+
def set_start_method(self, method, force=False):
|
|
252
|
+
if self._actual_context is not None and not force:
|
|
253
|
+
raise RuntimeError('context has already been set')
|
|
254
|
+
if method is None and force:
|
|
255
|
+
self._actual_context = None
|
|
256
|
+
return
|
|
257
|
+
self._actual_context = self.get_context(method)
|
|
258
|
+
|
|
259
|
+
def get_start_method(self, allow_none=False):
|
|
260
|
+
if self._actual_context is None:
|
|
261
|
+
if allow_none:
|
|
262
|
+
return None
|
|
263
|
+
self._actual_context = self._default_context
|
|
264
|
+
return self._actual_context._name
|
|
265
|
+
|
|
266
|
+
def get_all_start_methods(self):
|
|
267
|
+
"""Returns a list of the supported start methods, default first."""
|
|
268
|
+
if sys.platform == 'win32':
|
|
269
|
+
return ['spawn']
|
|
270
|
+
else:
|
|
271
|
+
methods = ['spawn', 'fork'] if sys.platform == 'darwin' else ['fork', 'spawn']
|
|
272
|
+
if reduction.HAVE_SEND_HANDLE:
|
|
273
|
+
methods.append('forkserver')
|
|
274
|
+
return methods
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
#
|
|
278
|
+
# Context types for fixed start method
|
|
279
|
+
#
|
|
280
|
+
|
|
281
|
+
if sys.platform != 'win32':
|
|
282
|
+
|
|
283
|
+
class ForkProcess(process.BaseProcess):
|
|
284
|
+
_start_method = 'fork'
|
|
285
|
+
@staticmethod
|
|
286
|
+
def _Popen(process_obj):
|
|
287
|
+
from .popen_fork import Popen
|
|
288
|
+
return Popen(process_obj)
|
|
289
|
+
|
|
290
|
+
class SpawnProcess(process.BaseProcess):
|
|
291
|
+
_start_method = 'spawn'
|
|
292
|
+
@staticmethod
|
|
293
|
+
def _Popen(process_obj):
|
|
294
|
+
from .popen_spawn_posix import Popen
|
|
295
|
+
return Popen(process_obj)
|
|
296
|
+
|
|
297
|
+
@staticmethod
|
|
298
|
+
def _after_fork():
|
|
299
|
+
# process is spawned, nothing to do
|
|
300
|
+
pass
|
|
301
|
+
|
|
302
|
+
class ForkServerProcess(process.BaseProcess):
|
|
303
|
+
_start_method = 'forkserver'
|
|
304
|
+
@staticmethod
|
|
305
|
+
def _Popen(process_obj):
|
|
306
|
+
from .popen_forkserver import Popen
|
|
307
|
+
return Popen(process_obj)
|
|
308
|
+
|
|
309
|
+
class ForkContext(BaseContext):
|
|
310
|
+
_name = 'fork'
|
|
311
|
+
Process = ForkProcess
|
|
312
|
+
|
|
313
|
+
class SpawnContext(BaseContext):
|
|
314
|
+
_name = 'spawn'
|
|
315
|
+
Process = SpawnProcess
|
|
316
|
+
|
|
317
|
+
class ForkServerContext(BaseContext):
|
|
318
|
+
_name = 'forkserver'
|
|
319
|
+
Process = ForkServerProcess
|
|
320
|
+
def _check_available(self):
|
|
321
|
+
if not reduction.HAVE_SEND_HANDLE:
|
|
322
|
+
raise ValueError('forkserver start method not available')
|
|
323
|
+
|
|
324
|
+
_concrete_contexts = {
|
|
325
|
+
'fork': ForkContext(),
|
|
326
|
+
'spawn': SpawnContext(),
|
|
327
|
+
'forkserver': ForkServerContext(),
|
|
328
|
+
}
|
|
329
|
+
if sys.platform == 'darwin':
|
|
330
|
+
# bpo-33725: running arbitrary code after fork() is no longer reliable
|
|
331
|
+
# on macOS since macOS 10.14 (Mojave). Use spawn by default instead.
|
|
332
|
+
_default_context = DefaultContext(_concrete_contexts['spawn'])
|
|
333
|
+
else:
|
|
334
|
+
_default_context = DefaultContext(_concrete_contexts['fork'])
|
|
335
|
+
|
|
336
|
+
else:
|
|
337
|
+
|
|
338
|
+
class SpawnProcess(process.BaseProcess):
|
|
339
|
+
_start_method = 'spawn'
|
|
340
|
+
@staticmethod
|
|
341
|
+
def _Popen(process_obj):
|
|
342
|
+
from .popen_spawn_win32 import Popen
|
|
343
|
+
return Popen(process_obj)
|
|
344
|
+
|
|
345
|
+
@staticmethod
|
|
346
|
+
def _after_fork():
|
|
347
|
+
# process is spawned, nothing to do
|
|
348
|
+
pass
|
|
349
|
+
|
|
350
|
+
class SpawnContext(BaseContext):
|
|
351
|
+
_name = 'spawn'
|
|
352
|
+
Process = SpawnProcess
|
|
353
|
+
|
|
354
|
+
_concrete_contexts = {
|
|
355
|
+
'spawn': SpawnContext(),
|
|
356
|
+
}
|
|
357
|
+
_default_context = DefaultContext(_concrete_contexts['spawn'])
|
|
358
|
+
|
|
359
|
+
#
|
|
360
|
+
# Force the start method
|
|
361
|
+
#
|
|
362
|
+
|
|
363
|
+
def _force_start_method(method):
|
|
364
|
+
_default_context._actual_context = _concrete_contexts[method]
|
|
365
|
+
|
|
366
|
+
#
|
|
367
|
+
# Check that the current thread is spawning a child process
|
|
368
|
+
#
|
|
369
|
+
|
|
370
|
+
_tls = threading.local()
|
|
371
|
+
|
|
372
|
+
def get_spawning_popen():
|
|
373
|
+
return getattr(_tls, 'spawning_popen', None)
|
|
374
|
+
|
|
375
|
+
def set_spawning_popen(popen):
|
|
376
|
+
_tls.spawning_popen = popen
|
|
377
|
+
|
|
378
|
+
def assert_spawning(obj):
|
|
379
|
+
if get_spawning_popen() is None:
|
|
380
|
+
raise RuntimeError(
|
|
381
|
+
'%s objects should only be shared between processes'
|
|
382
|
+
' through inheritance' % type(obj).__name__
|
|
383
|
+
)
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Support for the API of the multiprocessing package using threads
|
|
3
|
+
#
|
|
4
|
+
# multiprocessing/dummy/__init__.py
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2006-2008, R Oudkerk
|
|
7
|
+
# Licensed to PSF under a Contributor Agreement.
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
'Process', 'current_process', 'active_children', 'freeze_support',
|
|
12
|
+
'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Condition',
|
|
13
|
+
'Event', 'Barrier', 'Queue', 'Manager', 'Pipe', 'Pool', 'JoinableQueue'
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
#
|
|
17
|
+
# Imports
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
import threading
|
|
21
|
+
import sys
|
|
22
|
+
import weakref
|
|
23
|
+
import array
|
|
24
|
+
|
|
25
|
+
from .connection import Pipe
|
|
26
|
+
from threading import Lock, RLock, Semaphore, BoundedSemaphore
|
|
27
|
+
from threading import Event, Condition, Barrier
|
|
28
|
+
from queue import Queue
|
|
29
|
+
|
|
30
|
+
#
|
|
31
|
+
#
|
|
32
|
+
#
|
|
33
|
+
|
|
34
|
+
class DummyProcess(threading.Thread):
|
|
35
|
+
|
|
36
|
+
def __init__(self, group=None, target=None, name=None, args=(), kwargs={}):
|
|
37
|
+
threading.Thread.__init__(self, group, target, name, args, kwargs)
|
|
38
|
+
self._pid = None
|
|
39
|
+
self._children = weakref.WeakKeyDictionary()
|
|
40
|
+
self._start_called = False
|
|
41
|
+
self._parent = current_process()
|
|
42
|
+
|
|
43
|
+
def start(self):
|
|
44
|
+
if self._parent is not current_process():
|
|
45
|
+
raise RuntimeError(
|
|
46
|
+
"Parent is {0!r} but current_process is {1!r}".format(
|
|
47
|
+
self._parent, current_process()))
|
|
48
|
+
self._start_called = True
|
|
49
|
+
if hasattr(self._parent, '_children'):
|
|
50
|
+
self._parent._children[self] = None
|
|
51
|
+
threading.Thread.start(self)
|
|
52
|
+
|
|
53
|
+
@property
|
|
54
|
+
def exitcode(self):
|
|
55
|
+
if self._start_called and not self.is_alive():
|
|
56
|
+
return 0
|
|
57
|
+
else:
|
|
58
|
+
return None
|
|
59
|
+
|
|
60
|
+
#
|
|
61
|
+
#
|
|
62
|
+
#
|
|
63
|
+
|
|
64
|
+
Process = DummyProcess
|
|
65
|
+
current_process = threading.current_thread
|
|
66
|
+
current_process()._children = weakref.WeakKeyDictionary()
|
|
67
|
+
|
|
68
|
+
def active_children():
|
|
69
|
+
children = current_process()._children
|
|
70
|
+
for p in list(children):
|
|
71
|
+
if not p.is_alive():
|
|
72
|
+
children.pop(p, None)
|
|
73
|
+
return list(children)
|
|
74
|
+
|
|
75
|
+
def freeze_support():
|
|
76
|
+
pass
|
|
77
|
+
|
|
78
|
+
#
|
|
79
|
+
#
|
|
80
|
+
#
|
|
81
|
+
|
|
82
|
+
class Namespace(object):
|
|
83
|
+
def __init__(self, /, **kwds):
|
|
84
|
+
self.__dict__.update(kwds)
|
|
85
|
+
def __repr__(self):
|
|
86
|
+
items = list(self.__dict__.items())
|
|
87
|
+
temp = []
|
|
88
|
+
for name, value in items:
|
|
89
|
+
if not name.startswith('_'):
|
|
90
|
+
temp.append('%s=%r' % (name, value))
|
|
91
|
+
temp.sort()
|
|
92
|
+
return '%s(%s)' % (self.__class__.__name__, ', '.join(temp))
|
|
93
|
+
|
|
94
|
+
dict = dict
|
|
95
|
+
list = list
|
|
96
|
+
|
|
97
|
+
def Array(typecode, sequence, lock=True):
|
|
98
|
+
return array.array(typecode, sequence)
|
|
99
|
+
|
|
100
|
+
class Value(object):
|
|
101
|
+
def __init__(self, typecode, value, lock=True):
|
|
102
|
+
self._typecode = typecode
|
|
103
|
+
self._value = value
|
|
104
|
+
|
|
105
|
+
@property
|
|
106
|
+
def value(self):
|
|
107
|
+
return self._value
|
|
108
|
+
|
|
109
|
+
@value.setter
|
|
110
|
+
def value(self, value):
|
|
111
|
+
self._value = value
|
|
112
|
+
|
|
113
|
+
def __repr__(self):
|
|
114
|
+
return '<%s(%r, %r)>'%(type(self).__name__,self._typecode,self._value)
|
|
115
|
+
|
|
116
|
+
def Manager():
|
|
117
|
+
return sys.modules[__name__]
|
|
118
|
+
|
|
119
|
+
def shutdown():
|
|
120
|
+
pass
|
|
121
|
+
|
|
122
|
+
def Pool(processes=None, initializer=None, initargs=()):
|
|
123
|
+
from ..pool import ThreadPool
|
|
124
|
+
return ThreadPool(processes, initializer, initargs)
|
|
125
|
+
|
|
126
|
+
JoinableQueue = Queue
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Analogue of `multiprocessing.connection` which uses queues instead of sockets
|
|
3
|
+
#
|
|
4
|
+
# multiprocessing/dummy/connection.py
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2006-2008, R Oudkerk
|
|
7
|
+
# Licensed to PSF under a Contributor Agreement.
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
__all__ = [ 'Client', 'Listener', 'Pipe' ]
|
|
11
|
+
|
|
12
|
+
from queue import Queue
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
families = [None]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Listener(object):
|
|
19
|
+
|
|
20
|
+
def __init__(self, address=None, family=None, backlog=1):
|
|
21
|
+
self._backlog_queue = Queue(backlog)
|
|
22
|
+
|
|
23
|
+
def accept(self):
|
|
24
|
+
return Connection(*self._backlog_queue.get())
|
|
25
|
+
|
|
26
|
+
def close(self):
|
|
27
|
+
self._backlog_queue = None
|
|
28
|
+
|
|
29
|
+
@property
|
|
30
|
+
def address(self):
|
|
31
|
+
return self._backlog_queue
|
|
32
|
+
|
|
33
|
+
def __enter__(self):
|
|
34
|
+
return self
|
|
35
|
+
|
|
36
|
+
def __exit__(self, exc_type, exc_value, exc_tb):
|
|
37
|
+
self.close()
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def Client(address):
|
|
41
|
+
_in, _out = Queue(), Queue()
|
|
42
|
+
address.put((_out, _in))
|
|
43
|
+
return Connection(_in, _out)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def Pipe(duplex=True):
|
|
47
|
+
a, b = Queue(), Queue()
|
|
48
|
+
return Connection(a, b), Connection(b, a)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class Connection(object):
|
|
52
|
+
|
|
53
|
+
def __init__(self, _in, _out):
|
|
54
|
+
self._out = _out
|
|
55
|
+
self._in = _in
|
|
56
|
+
self.send = self.send_bytes = _out.put
|
|
57
|
+
self.recv = self.recv_bytes = _in.get
|
|
58
|
+
|
|
59
|
+
def poll(self, timeout=0.0):
|
|
60
|
+
if self._in.qsize() > 0:
|
|
61
|
+
return True
|
|
62
|
+
if timeout <= 0.0:
|
|
63
|
+
return False
|
|
64
|
+
with self._in.not_empty:
|
|
65
|
+
self._in.not_empty.wait(timeout)
|
|
66
|
+
return self._in.qsize() > 0
|
|
67
|
+
|
|
68
|
+
def close(self):
|
|
69
|
+
pass
|
|
70
|
+
|
|
71
|
+
def __enter__(self):
|
|
72
|
+
return self
|
|
73
|
+
|
|
74
|
+
def __exit__(self, exc_type, exc_value, exc_tb):
|
|
75
|
+
self.close()
|