From ded94bbe118a5d3100efbc004bd2788fbf995540 Mon Sep 17 00:00:00 2001 From: Simone_Pellacani Date: Fri, 25 Apr 2025 17:57:25 +0200 Subject: [PATCH 1/6] repatched --- .cspell.dict/cpython.txt | 59 --- .cspell.dict/python-more.txt | 257 ---------- .cspell.dict/rust-more.txt | 83 --- .cspell.json | 146 ------ .devcontainer/devcontainer.json | 4 - .dockerignore | 19 - .flake8 | 3 - .github/ISSUE_TEMPLATE/empty.md | 16 - .github/ISSUE_TEMPLATE/feature-request.md | 16 - .github/ISSUE_TEMPLATE/report-bug.md | 24 - .../ISSUE_TEMPLATE/report-incompatibility.md | 16 - .github/ISSUE_TEMPLATE/rfc.md | 24 - .github/dependabot.yml | 13 - .github/workflows/ci.yaml | 443 ---------------- .github/workflows/cron-ci.yaml | 154 ------ .github/workflows/release.yml | 173 ------- .gitpod.Dockerfile | 21 - .gitpod.yml | 6 - .mailmap | 8 - .theia/launch.json | 16 - .theia/settings.json | 8 - .vscode/launch.json | 298 ----------- .vscode/tasks.json | 36 -- Dockerfile.bin | 15 - Dockerfile.wasm | 32 -- README_main.md | 29 ++ crawl_sourcecode.py | 83 --- demo_closures.py | 13 - whats_left.py | 482 ------------------ 29 files changed, 29 insertions(+), 2468 deletions(-) delete mode 100644 .cspell.dict/cpython.txt delete mode 100644 .cspell.dict/python-more.txt delete mode 100644 .cspell.dict/rust-more.txt delete mode 100644 .cspell.json delete mode 100644 .devcontainer/devcontainer.json delete mode 100644 .dockerignore delete mode 100644 .flake8 delete mode 100644 .github/ISSUE_TEMPLATE/empty.md delete mode 100644 .github/ISSUE_TEMPLATE/feature-request.md delete mode 100644 .github/ISSUE_TEMPLATE/report-bug.md delete mode 100644 .github/ISSUE_TEMPLATE/report-incompatibility.md delete mode 100644 .github/ISSUE_TEMPLATE/rfc.md delete mode 100644 .github/dependabot.yml delete mode 100644 .github/workflows/ci.yaml delete mode 100644 .github/workflows/cron-ci.yaml delete mode 100644 .github/workflows/release.yml delete mode 100644 .gitpod.Dockerfile delete mode 100644 .gitpod.yml delete mode 100644 .mailmap delete mode 100644 .theia/launch.json delete mode 100644 .theia/settings.json delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/tasks.json delete mode 100644 Dockerfile.bin delete mode 100644 Dockerfile.wasm create mode 100644 README_main.md delete mode 100644 crawl_sourcecode.py delete mode 100644 demo_closures.py delete mode 100755 whats_left.py diff --git a/.cspell.dict/cpython.txt b/.cspell.dict/cpython.txt deleted file mode 100644 index d28a4bb8c5..0000000000 --- a/.cspell.dict/cpython.txt +++ /dev/null @@ -1,59 +0,0 @@ -argtypes -asdl -asname -augassign -badsyntax -basetype -boolop -bxor -cached_tsver -cellarg -cellvar -cellvars -cmpop -denom -dictoffset -elts -excepthandler -fileutils -finalbody -formatfloat -freevar -freevars -fromlist -heaptype -HIGHRES -IMMUTABLETYPE -kwonlyarg -kwonlyargs -lasti -linearise -maxdepth -mult -nkwargs -noraise -numer -orelse -pathconfig -patma -posonlyarg -posonlyargs -prec -preinitialized -PYTHREAD_NAME -SA_ONSTACK -stackdepth -stringlib -structseq -tok_oldval -unaryop -unparse -unparser -VARKEYWORDS -varkwarg -wbits -weakreflist -withitem -withs -xstat -XXPRIME \ No newline at end of file diff --git a/.cspell.dict/python-more.txt b/.cspell.dict/python-more.txt deleted file mode 100644 index 0404428324..0000000000 --- a/.cspell.dict/python-more.txt +++ /dev/null @@ -1,257 +0,0 @@ -abiflags -abstractmethods -aenter -aexit -aiter -anext -appendleft -argcount -arrayiterator -arraytype -asend -asyncgen -athrow -backslashreplace -baserepl -basicsize -bdfl -bigcharset -bignum -breakpointhook -cformat -chunksize -classcell -closefd -closesocket -codepoint -codepoints -codesize -contextvar -cpython -cratio -dealloc -debugbuild -decompressor -defaultaction -descr -dictcomp -dictitems -dictkeys -dictview -digestmod -dllhandle -docstring -docstrings -dunder -endianness -endpos -eventmask -excepthook -exceptiongroup -exitfuncs -extendleft -fastlocals -fdel -fedcba -fget -fileencoding -fillchar -fillvalue -finallyhandler -firstiter -firstlineno -fnctl -frombytes -fromhex -fromunicode -fset -fspath -fstring -fstrings -ftruncate -genexpr -getattro -getcodesize -getdefaultencoding -getfilesystemencodeerrors -getfilesystemencoding -getformat -getframe -getnewargs -getpip -getrandom -getrecursionlimit -getrefcount -getsizeof -getweakrefcount -getweakrefs -getwindowsversion -gmtoff -groupdict -groupindex -hamt -hostnames -idfunc -idiv -idxs -impls -indexgroup -infj -instancecheck -instanceof -irepeat -isabstractmethod -isbytes -iscased -isfinal -istext -itemiterator -itemsize -iternext -keepends -keyfunc -keyiterator -kwarg -kwargs -kwdefaults -kwonlyargcount -lastgroup -lastindex -linearization -linearize -listcomp -longrange -lvalue -mappingproxy -maskpri -maxdigits -MAXGROUPS -MAXREPEAT -maxsplit -maxunicode -memoryview -memoryviewiterator -metaclass -metaclasses -metatype -mformat -mro -mros -multiarch -namereplace -nanj -nbytes -ncallbacks -ndigits -ndim -nldecoder -nlocals -NOARGS -nonbytes -Nonprintable -origname -ospath -pendingcr -phello -platlibdir -popleft -posixsubprocess -posonly -posonlyargcount -prepending -profilefunc -pycache -pycodecs -pycs -pyexpat -PYTHONBREAKPOINT -PYTHONDEBUG -PYTHONHASHSEED -PYTHONHOME -PYTHONINSPECT -PYTHONOPTIMIZE -PYTHONPATH -PYTHONPATH -PYTHONSAFEPATH -PYTHONVERBOSE -PYTHONWARNDEFAULTENCODING -PYTHONWARNINGS -pytraverse -PYVENV -qualname -quotetabs -radd -rdiv -rdivmod -readall -readbuffer -reconstructor -refcnt -releaselevel -reverseitemiterator -reverseiterator -reversekeyiterator -reversevalueiterator -rfloordiv -rlshift -rmod -rpow -rrshift -rsub -rtruediv -rvalue -scproxy -seennl -setattro -setcomp -setrecursionlimit -showwarnmsg -signum -slotnames -STACKLESS -stacklevel -stacksize -startpos -subclassable -subclasscheck -subclasshook -suboffset -suboffsets -SUBPATTERN -sumprod -surrogateescape -surrogatepass -sysconf -sysconfigdata -sysvars -teedata -thisclass -titlecased -tkapp -tobytes -tolist -toreadonly -TPFLAGS -tracefunc -unimportable -unionable -unraisablehook -unsliceable -urandom -valueiterator -vararg -varargs -varnames -warningregistry -warnmsg -warnoptions -warnopts -weaklist -weakproxy -weakrefs -winver -withdata -xmlcharrefreplace -xoptions -xopts -yieldfrom diff --git a/.cspell.dict/rust-more.txt b/.cspell.dict/rust-more.txt deleted file mode 100644 index e5d5ac86c4..0000000000 --- a/.cspell.dict/rust-more.txt +++ /dev/null @@ -1,83 +0,0 @@ -ahash -arrayvec -bidi -biguint -bindgen -bitflags -bitor -bstr -byteorder -byteset -caseless -chrono -consts -cranelift -cstring -datelike -deserializer -fdiv -flamescope -flate2 -fract -getres -hasher -hexf -hexversion -idents -illumos -indexmap -insta -keccak -lalrpop -lexopt -libc -libloading -libz -longlong -Manually -maplit -memmap -memmem -metas -modpow -msvc -muldiv -nanos -nonoverlapping -objclass -peekable -powc -powf -powi -prepended -punct -puruspe -replacen -rmatch -rposition -rsplitn -rustc -rustfmt -rustyline -seedable -seekfrom -siphash -siphasher -splitn -subsec -thiserror -timelike -timsort -trai -ulonglong -unic -unistd -unraw -unsync -wasip1 -wasip2 -wasmbind -wasmtime -widestring -winapi -winsock diff --git a/.cspell.json b/.cspell.json deleted file mode 100644 index 98a03180fe..0000000000 --- a/.cspell.json +++ /dev/null @@ -1,146 +0,0 @@ -// See: https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell -{ - "version": "0.2", - "import": [ - "@cspell/dict-en_us/cspell-ext.json", - // "@cspell/dict-cpp/cspell-ext.json", - "@cspell/dict-python/cspell-ext.json", - "@cspell/dict-rust/cspell-ext.json", - "@cspell/dict-win32/cspell-ext.json", - "@cspell/dict-shell/cspell-ext.json", - ], - // language - current active spelling language - "language": "en", - // dictionaries - list of the names of the dictionaries to use - "dictionaries": [ - "cpython", // Sometimes keeping same terms with cpython is easy - "python-more", // Python API terms not listed in python - "rust-more", // Rust API terms not listed in rust - "en_US", - "softwareTerms", - "c", - "cpp", - "python", - "rust", - "shell", - "win32" - ], - // dictionaryDefinitions - this list defines any custom dictionaries to use - "dictionaryDefinitions": [ - { - "name": "cpython", - "path": "./.cspell.dict/cpython.txt" - }, - { - "name": "python-more", - "path": "./.cspell.dict/python-more.txt" - }, - { - "name": "rust-more", - "path": "./.cspell.dict/rust-more.txt" - } - ], - "ignorePaths": [ - "**/__pycache__/**", - "Lib/**" - ], - // words - list of words to be always considered correct - "words": [ - "RUSTPYTHONPATH", - // RustPython terms - "aiterable", - "alnum", - "baseclass", - "boxvec", - "Bytecode", - "cfgs", - "codegen", - "coro", - "dedentations", - "dedents", - "deduped", - "downcasted", - "dumpable", - "emscripten", - "excs", - "finalizer", - "GetSet", - "groupref", - "internable", - "lossily", - "makeunicodedata", - "miri", - "notrace", - "openat", - "pyarg", - "pyarg", - "pyargs", - "pyast", - "PyAttr", - "pyc", - "PyClass", - "PyClassMethod", - "PyException", - "PyFunction", - "pygetset", - "pyimpl", - "pylib", - "pymember", - "PyMethod", - "PyModule", - "pyname", - "pyobj", - "PyObject", - "pypayload", - "PyProperty", - "pyref", - "PyResult", - "pyslot", - "PyStaticMethod", - "pystone", - "pystr", - "pystruct", - "pystructseq", - "pytrace", - "reducelib", - "richcompare", - "RustPython", - "significand", - "struc", - "summands", // plural of summand - "sysmodule", - "tracebacks", - "typealiases", - "unconstructible", - "unhashable", - "uninit", - "unraisable", - "unresizable", - "wasi", - "zelf", - // unix - "CLOEXEC", - "codeset", - "endgrent", - "gethrvtime", - "getrusage", - "nanosleep", - "sigaction", - "WRLCK", - // win32 - "birthtime", - "IFEXEC", - ], - // flagWords - list of words to be always considered incorrect - "flagWords": [ - ], - "ignoreRegExpList": [ - ], - // languageSettings - allow for per programming language configuration settings. - "languageSettings": [ - { - "languageId": "python", - "locale": "en" - } - ] -} diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index d60eee2130..0000000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "image": "mcr.microsoft.com/devcontainers/base:jammy", - "onCreateCommand": "curl https://sh.rustup.rs -sSf | sh -s -- -y" -} \ No newline at end of file diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index d22dc864b9..0000000000 --- a/.dockerignore +++ /dev/null @@ -1,19 +0,0 @@ -**/target/ -**/*.rs.bk -**/*.bytecode -**/__pycache__/* -**/*.pytest_cache -.*sw* -.repl_history.txt -.vscode -wasm-pack.log -.idea/ -extra_tests/snippets/resources - -flame-graph.html -flame.txt -flamescope.json - -**/node_modules/ -wasm/**/dist/ -wasm/lib/pkg/ diff --git a/.flake8 b/.flake8 deleted file mode 100644 index f848263ced..0000000000 --- a/.flake8 +++ /dev/null @@ -1,3 +0,0 @@ -[flake8] -# black's line length -max-line-length = 88 diff --git a/.github/ISSUE_TEMPLATE/empty.md b/.github/ISSUE_TEMPLATE/empty.md deleted file mode 100644 index 6cdafc6653..0000000000 --- a/.github/ISSUE_TEMPLATE/empty.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: Generic issue template -about: which is not covered by other templates -title: '' -labels: -assignees: '' - ---- - -## Summary - - - -## Details - - diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md deleted file mode 100644 index cb47cb1744..0000000000 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: Feature request -about: Request a feature to use RustPython (as a Rust library) -title: '' -labels: C-enhancement -assignees: 'youknowone' - ---- - -## Summary - - - -## Expected use case - - diff --git a/.github/ISSUE_TEMPLATE/report-bug.md b/.github/ISSUE_TEMPLATE/report-bug.md deleted file mode 100644 index f25b035232..0000000000 --- a/.github/ISSUE_TEMPLATE/report-bug.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: Report bugs -about: Report a bug not related to CPython compatibility -title: '' -labels: C-bug -assignees: '' - ---- - -## Summary - - - -## Expected - - - -## Actual - - - -## Python Documentation - - diff --git a/.github/ISSUE_TEMPLATE/report-incompatibility.md b/.github/ISSUE_TEMPLATE/report-incompatibility.md deleted file mode 100644 index d8e50a75ce..0000000000 --- a/.github/ISSUE_TEMPLATE/report-incompatibility.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: Report incompatibility -about: Report an incompatibility between RustPython and CPython -title: '' -labels: C-compat -assignees: '' - ---- - -## Feature - - - -## Python Documentation or reference to CPython source code - - diff --git a/.github/ISSUE_TEMPLATE/rfc.md b/.github/ISSUE_TEMPLATE/rfc.md deleted file mode 100644 index 84a7b19ce7..0000000000 --- a/.github/ISSUE_TEMPLATE/rfc.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: RFC -about: Make a suggestion in a Request for Comments format to RustPython -title: "[RFC] " -labels: RFC -assignees: '' - ---- - -## Summary - - - -## Detailed Explanation - - - -## Drawbacks, Rationale, and Alternatives - - - -## Unresolved Questions - - diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index be006de9a1..0000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,13 +0,0 @@ -# Keep GitHub Actions up to date with GitHub's Dependabot... -# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot -# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem -version: 2 -updates: - - package-ecosystem: github-actions - directory: / - groups: - github-actions: - patterns: - - "*" # Group all Actions updates into a single larger pull request - schedule: - interval: weekly diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index 4e51d48953..0000000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,443 +0,0 @@ -on: - push: - branches: [main, release] - pull_request: - types: [unlabeled, opened, synchronize, reopened] - merge_group: - workflow_dispatch: - -name: CI - -# Cancel previous workflows if they are the same workflow on same ref (branch/tags) -# with the same event (push/pull_request) even they are in progress. -# This setting will help reduce the number of duplicated workflows. -concurrency: - group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} - cancel-in-progress: true - -env: - CARGO_ARGS: --no-default-features --features stdlib,importlib,stdio,encodings,sqlite,ssl - # Skip additional tests on Windows. They are checked on Linux and MacOS. - # test_glob: many failing tests - # test_io: many failing tests - # test_os: many failing tests - # test_pathlib: support.rmtree() failing - # test_posixpath: OSError: (22, 'The filename, directory name, or volume label syntax is incorrect. (os error 123)') - # test_venv: couple of failing tests - WINDOWS_SKIPS: >- - test_glob - test_io - test_os - test_rlcompleter - test_pathlib - test_posixpath - test_venv - # configparser: https://github.com/RustPython/RustPython/issues/4995#issuecomment-1582397417 - # socketserver: seems related to configparser crash. - MACOS_SKIPS: >- - test_configparser - test_socketserver - # PLATFORM_INDEPENDENT_TESTS are tests that do not depend on the underlying OS. They are currently - # only run on Linux to speed up the CI. - PLATFORM_INDEPENDENT_TESTS: >- - test__colorize - test_array - test_asyncgen - test_binop - test_bisect - test_bool - test_bytes - test_call - test_class - test_cmath - test_collections - test_complex - test_contains - test_copy - test_dataclasses - test_decimal - test_decorators - test_defaultdict - test_deque - test_dict - test_dictcomps - test_dictviews - test_dis - test_enumerate - test_exception_variations - test_float - test_format - test_fractions - test_genericalias - test_genericclass - test_grammar - test_range - test_index - test_int - test_int_literal - test_isinstance - test_iter - test_iterlen - test_itertools - test_json - test_keyword - test_keywordonlyarg - test_list - test_long - test_longexp - test_math - test_operator - test_ordered_dict - test_pow - test_raise - test_richcmp - test_scope - test_set - test_slice - test_sort - test_string - test_string_literals - test_strtod - test_structseq - test_subclassinit - test_super - test_syntax - test_tuple - test_types - test_unary - test_unpack - test_weakref - test_yield_from - # Python version targeted by the CI. - PYTHON_VERSION: "3.13.1" - -jobs: - rust_tests: - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} - env: - RUST_BACKTRACE: full - name: Run rust tests - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [macos-latest, ubuntu-latest, windows-latest] - fail-fast: false - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - components: clippy - - uses: Swatinem/rust-cache@v2 - - - name: Set up the Windows environment - shell: bash - run: | - git config --system core.longpaths true - cargo install --target-dir=target -v cargo-vcpkg - cargo vcpkg -v build - if: runner.os == 'Windows' - - name: Set up the Mac environment - run: brew install autoconf automake libtool - if: runner.os == 'macOS' - - - name: run clippy - run: cargo clippy ${{ env.CARGO_ARGS }} --workspace --all-targets --exclude rustpython_wasm -- -Dwarnings - - - name: run rust tests - run: cargo test --workspace --exclude rustpython_wasm --verbose --features threading ${{ env.CARGO_ARGS }} - if: runner.os != 'macOS' - - name: run rust tests - run: cargo test --workspace --exclude rustpython_wasm --exclude rustpython-jit --verbose --features threading ${{ env.CARGO_ARGS }} - if: runner.os == 'macOS' - - - name: check compilation without threading - run: cargo check ${{ env.CARGO_ARGS }} - - - name: Test example projects - run: - cargo run --manifest-path example_projects/barebone/Cargo.toml - cargo run --manifest-path example_projects/frozen_stdlib/Cargo.toml - if: runner.os == 'Linux' - - - name: prepare AppleSilicon build - uses: dtolnay/rust-toolchain@stable - with: - target: aarch64-apple-darwin - if: runner.os == 'macOS' - - name: Check compilation for Apple Silicon - run: cargo check --target aarch64-apple-darwin - if: runner.os == 'macOS' - - name: prepare iOS build - uses: dtolnay/rust-toolchain@stable - with: - target: aarch64-apple-ios - if: runner.os == 'macOS' - - name: Check compilation for iOS - run: cargo check --target aarch64-apple-ios - if: runner.os == 'macOS' - - exotic_targets: - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} - name: Ensure compilation on various targets - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - target: i686-unknown-linux-gnu - - - name: Install gcc-multilib and musl-tools - run: sudo apt-get update && sudo apt-get install gcc-multilib musl-tools - - name: Check compilation for x86 32bit - run: cargo check --target i686-unknown-linux-gnu - - - uses: dtolnay/rust-toolchain@stable - with: - target: aarch64-linux-android - - - name: Check compilation for android - run: cargo check --target aarch64-linux-android - - - uses: dtolnay/rust-toolchain@stable - with: - target: aarch64-unknown-linux-gnu - - - name: Install gcc-aarch64-linux-gnu - run: sudo apt install gcc-aarch64-linux-gnu - - name: Check compilation for aarch64 linux gnu - run: cargo check --target aarch64-unknown-linux-gnu - - - uses: dtolnay/rust-toolchain@stable - with: - target: i686-unknown-linux-musl - - - name: Check compilation for musl - run: cargo check --target i686-unknown-linux-musl - - - uses: dtolnay/rust-toolchain@stable - with: - target: x86_64-unknown-freebsd - - - name: Check compilation for freebsd - run: cargo check --target x86_64-unknown-freebsd - - - uses: dtolnay/rust-toolchain@stable - with: - target: x86_64-unknown-freebsd - - - name: Check compilation for freeBSD - run: cargo check --target x86_64-unknown-freebsd - - - name: Prepare repository for redox compilation - run: bash scripts/redox/uncomment-cargo.sh - - name: Check compilation for Redox - uses: coolreader18/redoxer-action@v1 - with: - command: check - args: --ignore-rust-version - - snippets_cpython: - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} - env: - RUST_BACKTRACE: full - name: Run snippets and cpython tests - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [macos-latest, ubuntu-latest, windows-latest] - fail-fast: false - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - - uses: actions/setup-python@v5 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Set up the Windows environment - shell: bash - run: | - git config --system core.longpaths true - cargo install cargo-vcpkg - cargo vcpkg build - if: runner.os == 'Windows' - - name: Set up the Mac environment - run: brew install autoconf automake libtool openssl@3 - if: runner.os == 'macOS' - - name: build rustpython - run: cargo build --release --verbose --features=threading ${{ env.CARGO_ARGS }} - if: runner.os == 'macOS' - - name: build rustpython - run: cargo build --release --verbose --features=threading ${{ env.CARGO_ARGS }},jit - if: runner.os != 'macOS' - - uses: actions/setup-python@v5 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: run snippets - run: python -m pip install -r requirements.txt && pytest -v - working-directory: ./extra_tests - - if: runner.os == 'Linux' - name: run cpython platform-independent tests - run: - target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed -v ${{ env.PLATFORM_INDEPENDENT_TESTS }} - - if: runner.os == 'Linux' - name: run cpython platform-dependent tests (Linux) - run: target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed -v -x ${{ env.PLATFORM_INDEPENDENT_TESTS }} - - if: runner.os == 'macOS' - name: run cpython platform-dependent tests (MacOS) - run: target/release/rustpython -m test -j 1 --slowest --fail-env-changed -v -x ${{ env.PLATFORM_INDEPENDENT_TESTS }} ${{ env.MACOS_SKIPS }} - - if: runner.os == 'Windows' - name: run cpython platform-dependent tests (windows partial - fixme) - run: - target/release/rustpython -m test -j 1 --slowest --fail-env-changed -v -x ${{ env.PLATFORM_INDEPENDENT_TESTS }} ${{ env.WINDOWS_SKIPS }} - - if: runner.os != 'Windows' - name: check that --install-pip succeeds - run: | - mkdir site-packages - target/release/rustpython --install-pip ensurepip --user - target/release/rustpython -m pip install six - - if: runner.os != 'Windows' - name: Check that ensurepip succeeds. - run: | - target/release/rustpython -m ensurepip - target/release/rustpython -c "import pip" - - if: runner.os != 'Windows' - name: Check if pip inside venv is functional - run: | - target/release/rustpython -m venv testvenv - testvenv/bin/rustpython -m pip install wheel - - name: Check whats_left is not broken - run: python -I whats_left.py - - lint: - name: Check Rust code with rustfmt and clippy - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - components: rustfmt, clippy - - name: run rustfmt - run: cargo fmt --check - - name: run clippy on wasm - run: cargo clippy --manifest-path=wasm/lib/Cargo.toml -- -Dwarnings - - uses: actions/setup-python@v5 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: install ruff - run: python -m pip install ruff==0.0.291 # astral-sh/ruff#7778 - - name: Ensure docs generate no warnings - run: cargo doc - - name: run python lint - run: ruff extra_tests wasm examples --exclude='./.*',./Lib,./vm/Lib,./benches/ --select=E9,F63,F7,F82 --show-source - - name: install prettier - run: yarn global add prettier && echo "$(yarn global bin)" >>$GITHUB_PATH - - name: check wasm code with prettier - # prettier doesn't handle ignore files very well: https://github.com/prettier/prettier/issues/8506 - run: cd wasm && git ls-files -z | xargs -0 prettier --check -u - # Keep cspell check as the last step. This is optional test. - - name: install extra dictionaries - run: npm install @cspell/dict-en_us @cspell/dict-cpp @cspell/dict-python @cspell/dict-rust @cspell/dict-win32 @cspell/dict-shell - - name: spell checker - uses: streetsidesoftware/cspell-action@v6 - with: - files: '**/*.rs' - incremental_files_only: true - - miri: - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} - name: Run tests under miri - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master - with: - toolchain: nightly - components: miri - - - uses: Swatinem/rust-cache@v2 - - name: Run tests under miri - # miri-ignore-leaks because the type-object circular reference means that there will always be - # a memory leak, at least until we have proper cyclic gc - run: MIRIFLAGS='-Zmiri-ignore-leaks' cargo +nightly miri test -p rustpython-vm -- miri_test - - wasm: - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} - name: Check the WASM package and demo - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - - uses: Swatinem/rust-cache@v2 - - name: install wasm-pack - run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - - name: install geckodriver - run: | - wget https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux64.tar.gz - mkdir geckodriver - tar -xzf geckodriver-v0.36.0-linux64.tar.gz -C geckodriver - - uses: actions/setup-python@v5 - with: - python-version: ${{ env.PYTHON_VERSION }} - - run: python -m pip install -r requirements.txt - working-directory: ./wasm/tests - - uses: actions/setup-node@v4 - with: - cache: "npm" - cache-dependency-path: "wasm/demo/package-lock.json" - - name: run test - run: | - export PATH=$PATH:`pwd`/../../geckodriver - npm install - npm run test - env: - NODE_OPTIONS: "--openssl-legacy-provider" - working-directory: ./wasm/demo - - uses: mwilliamson/setup-wabt-action@v3 - with: { wabt-version: "1.0.36" } - - name: check wasm32-unknown without js - run: | - cd wasm/wasm-unknown-test - cargo build --release --verbose - if wasm-objdump -xj Import target/wasm32-unknown-unknown/release/wasm_unknown_test.wasm; then - echo "ERROR: wasm32-unknown module expects imports from the host environment" >2 - fi - - name: build notebook demo - if: github.ref == 'refs/heads/release' - run: | - npm install - npm run dist - mv dist ../demo/dist/notebook - env: - NODE_OPTIONS: "--openssl-legacy-provider" - working-directory: ./wasm/notebook - - name: Deploy demo to Github Pages - if: success() && github.ref == 'refs/heads/release' - uses: peaceiris/actions-gh-pages@v4 - env: - ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEMO_DEPLOY_KEY }} - PUBLISH_DIR: ./wasm/demo/dist - EXTERNAL_REPOSITORY: RustPython/demo - PUBLISH_BRANCH: master - - wasm-wasi: - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} - name: Run snippets and cpython tests on wasm-wasi - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - target: wasm32-wasip1 - - - uses: Swatinem/rust-cache@v2 - - name: Setup Wasmer - uses: wasmerio/setup-wasmer@v3 - - name: Install clang - run: sudo apt-get update && sudo apt-get install clang -y - - name: build rustpython - run: cargo build --release --target wasm32-wasip1 --features freeze-stdlib,stdlib --verbose - - name: run snippets - run: wasmer run --dir `pwd` target/wasm32-wasip1/release/rustpython.wasm -- `pwd`/extra_tests/snippets/stdlib_random.py - - name: run cpython unittest - run: wasmer run --dir `pwd` target/wasm32-wasip1/release/rustpython.wasm -- `pwd`/Lib/test/test_int.py diff --git a/.github/workflows/cron-ci.yaml b/.github/workflows/cron-ci.yaml deleted file mode 100644 index 4e88d749fb..0000000000 --- a/.github/workflows/cron-ci.yaml +++ /dev/null @@ -1,154 +0,0 @@ -on: - schedule: - - cron: '0 0 * * 6' - workflow_dispatch: - push: - paths: - - .github/workflows/cron-ci.yaml - -name: Periodic checks/tasks - -env: - CARGO_ARGS: --no-default-features --features stdlib,importlib,encodings,ssl,jit - PYTHON_VERSION: "3.13.1" - -jobs: - # codecov collects code coverage data from the rust tests, python snippets and python test suite. - # This is done using cargo-llvm-cov, which is a wrapper around llvm-cov. - codecov: - name: Collect code coverage data - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: taiki-e/install-action@cargo-llvm-cov - - uses: actions/setup-python@v5 - with: - python-version: ${{ env.PYTHON_VERSION }} - - run: sudo apt-get update && sudo apt-get -y install lcov - - name: Run cargo-llvm-cov with Rust tests. - run: cargo llvm-cov --no-report --workspace --exclude rustpython_wasm --verbose --no-default-features --features stdlib,importlib,encodings,ssl,jit - - name: Run cargo-llvm-cov with Python snippets. - run: python scripts/cargo-llvm-cov.py - continue-on-error: true - - name: Run cargo-llvm-cov with Python test suite. - run: cargo llvm-cov --no-report run -- -m test -u all --slowest --fail-env-changed - continue-on-error: true - - name: Prepare code coverage data - run: cargo llvm-cov report --lcov --output-path='codecov.lcov' - - name: Upload to Codecov - uses: codecov/codecov-action@v5 - with: - file: ./codecov.lcov - - testdata: - name: Collect regression test data - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - name: build rustpython - run: cargo build --release --verbose - - name: collect tests data - run: cargo run --release extra_tests/jsontests.py - env: - RUSTPYTHONPATH: ${{ github.workspace }}/Lib - - name: upload tests data to the website - env: - SSHKEY: ${{ secrets.ACTIONS_TESTS_DATA_DEPLOY_KEY }} - GITHUB_ACTOR: ${{ github.actor }} - run: | - echo "$SSHKEY" >~/github_key - chmod 600 ~/github_key - export GIT_SSH_COMMAND="ssh -i ~/github_key" - - git clone git@github.com:RustPython/rustpython.github.io.git website - cd website - cp ../extra_tests/cpython_tests_results.json ./_data/regrtests_results.json - git add ./_data/regrtests_results.json - if git -c user.name="Github Actions" -c user.email="actions@github.com" commit -m "Update regression test results" --author="$GITHUB_ACTOR"; then - git push - fi - - whatsleft: - name: Collect what is left data - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: actions/setup-python@v5 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: build rustpython - run: cargo build --release --verbose - - name: Collect what is left data - run: | - chmod +x ./whats_left.py - ./whats_left.py > whats_left.temp - env: - RUSTPYTHONPATH: ${{ github.workspace }}/Lib - - name: Upload data to the website - env: - SSHKEY: ${{ secrets.ACTIONS_TESTS_DATA_DEPLOY_KEY }} - GITHUB_ACTOR: ${{ github.actor }} - run: | - echo "$SSHKEY" >~/github_key - chmod 600 ~/github_key - export GIT_SSH_COMMAND="ssh -i ~/github_key" - - git clone git@github.com:RustPython/rustpython.github.io.git website - cd website - [ -f ./_data/whats_left.temp ] && cp ./_data/whats_left.temp ./_data/whats_left_lastrun.temp - cp ../whats_left.temp ./_data/whats_left.temp - rm ./_data/whats_left/modules.csv - echo -e "module" > ./_data/whats_left/modules.csv - cat ./_data/whats_left.temp | grep "(entire module)" | cut -d ' ' -f 1 | sort >> ./_data/whats_left/modules.csv - git add -A - if git -c user.name="Github Actions" -c user.email="actions@github.com" commit -m "Update what is left results" --author="$GITHUB_ACTOR"; then - git push - fi - - benchmark: - name: Collect benchmark data - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: actions/setup-python@v5 - with: - python-version: 3.9 - - run: cargo install cargo-criterion - - name: build benchmarks - run: cargo build --release --benches - - name: collect execution benchmark data - run: cargo criterion --bench execution - - name: collect microbenchmarks data - run: cargo criterion --bench microbenchmarks - - name: restructure generated files - run: | - cd ./target/criterion/reports - find -type d -name cpython | xargs rm -rf - find -type d -name rustpython | xargs rm -rf - find -mindepth 2 -maxdepth 2 -name violin.svg | xargs rm -rf - find -type f -not -name violin.svg | xargs rm -rf - for file in $(find -type f -name violin.svg); do mv $file $(echo $file | sed -E "s_\./([^/]+)/([^/]+)/violin\.svg_./\1/\2.svg_"); done - find -mindepth 2 -maxdepth 2 -type d | xargs rm -rf - cd .. - mv reports/* . - rmdir reports - - name: upload benchmark data to the website - env: - SSHKEY: ${{ secrets.ACTIONS_TESTS_DATA_DEPLOY_KEY }} - run: | - echo "$SSHKEY" >~/github_key - chmod 600 ~/github_key - export GIT_SSH_COMMAND="ssh -i ~/github_key" - - git clone git@github.com:RustPython/rustpython.github.io.git website - cd website - rm -rf ./assets/criterion - cp -r ../target/criterion ./assets/criterion - git add ./assets/criterion - if git -c user.name="Github Actions" -c user.email="actions@github.com" commit -m "Update benchmark results"; then - git push - fi diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index f6a1ad3209..0000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,173 +0,0 @@ -name: Release - -on: - schedule: - # 9 AM UTC on every Monday - - cron: "0 9 * * Mon" - workflow_dispatch: - inputs: - pre-release: - type: boolean - description: Mark "Pre-Release" - required: false - default: true - -permissions: - contents: write - -env: - CARGO_ARGS: --no-default-features --features stdlib,importlib,encodings,sqlite,ssl - -jobs: - build: - runs-on: ${{ matrix.platform.runner }} - strategy: - matrix: - platform: - - runner: ubuntu-latest - target: x86_64-unknown-linux-gnu -# - runner: ubuntu-latest -# target: i686-unknown-linux-gnu -# - runner: ubuntu-latest -# target: aarch64-unknown-linux-gnu -# - runner: ubuntu-latest -# target: armv7-unknown-linux-gnueabi -# - runner: ubuntu-latest -# target: s390x-unknown-linux-gnu -# - runner: ubuntu-latest -# target: powerpc64le-unknown-linux-gnu - - runner: macos-latest - target: aarch64-apple-darwin -# - runner: macos-latest -# target: x86_64-apple-darwin - - runner: windows-latest - target: x86_64-pc-windows-msvc -# - runner: windows-latest -# target: i686-pc-windows-msvc -# - runner: windows-latest -# target: aarch64-pc-windows-msvc - fail-fast: false - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: cargo-bins/cargo-binstall@main - - - name: Set up Environment - shell: bash - run: rustup target add ${{ matrix.platform.target }} - - name: Set up Windows Environment - shell: bash - run: | - git config --global core.longpaths true - cargo install --target-dir=target -v cargo-vcpkg - cargo vcpkg -v build - if: runner.os == 'Windows' - - name: Set up MacOS Environment - run: brew install autoconf automake libtool - if: runner.os == 'macOS' - - - name: Build RustPython - run: cargo build --release --target=${{ matrix.platform.target }} --verbose --features=threading ${{ env.CARGO_ARGS }} - if: runner.os == 'macOS' - - name: Build RustPython - run: cargo build --release --target=${{ matrix.platform.target }} --verbose --features=threading ${{ env.CARGO_ARGS }},jit - if: runner.os != 'macOS' - - - name: Rename Binary - run: cp target/${{ matrix.platform.target }}/release/rustpython target/rustpython-release-${{ runner.os }}-${{ matrix.platform.target }} - if: runner.os != 'Windows' - - name: Rename Binary - run: cp target/${{ matrix.platform.target }}/release/rustpython.exe target/rustpython-release-${{ runner.os }}-${{ matrix.platform.target }}.exe - if: runner.os == 'Windows' - - - name: Upload Binary Artifacts - uses: actions/upload-artifact@v4 - with: - name: rustpython-release-${{ runner.os }}-${{ matrix.platform.target }} - path: target/rustpython-release-${{ runner.os }}-${{ matrix.platform.target }}* - - build-wasm: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - targets: wasm32-wasip1 - - - name: Build RustPython - run: cargo build --target wasm32-wasip1 --no-default-features --features freeze-stdlib,stdlib --release - - - name: Rename Binary - run: cp target/wasm32-wasip1/release/rustpython.wasm target/rustpython-release-wasm32-wasip1.wasm - - - name: Upload Binary Artifacts - uses: actions/upload-artifact@v4 - with: - name: rustpython-release-wasm32-wasip1 - path: target/rustpython-release-wasm32-wasip1.wasm - - - name: install wasm-pack - run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - - uses: actions/setup-node@v4 - - uses: mwilliamson/setup-wabt-action@v3 - with: { wabt-version: "1.0.30" } - - name: build demo - run: | - npm install - npm run dist - env: - NODE_OPTIONS: "--openssl-legacy-provider" - working-directory: ./wasm/demo - - name: build notebook demo - run: | - npm install - npm run dist - mv dist ../demo/dist/notebook - env: - NODE_OPTIONS: "--openssl-legacy-provider" - working-directory: ./wasm/notebook - - name: Deploy demo to Github Pages - uses: peaceiris/actions-gh-pages@v4 - with: - deploy_key: ${{ secrets.ACTIONS_DEMO_DEPLOY_KEY }} - publish_dir: ./wasm/demo/dist - external_repository: RustPython/demo - publish_branch: master - - release: - runs-on: ubuntu-latest - needs: [build, build-wasm] - steps: - - name: Download Binary Artifacts - uses: actions/download-artifact@v4 - with: - path: bin - pattern: rustpython-* - merge-multiple: true - - - name: List Binaries - run: | - ls -lah bin/ - file bin/* - - name: Create Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.ref_name }} - run: ${{ github.run_number }} - run: | - if [[ "${{ github.event.inputs.pre-release }}" == "false" ]]; then - RELEASE_TYPE_NAME=Release - PRERELEASE_ARG= - else - RELEASE_TYPE_NAME=Pre-Release - PRERELEASE_ARG=--prerelease - fi - - today=$(date '+%Y-%m-%d') - gh release create "$today-$tag-$run" \ - --repo="$GITHUB_REPOSITORY" \ - --title="RustPython $RELEASE_TYPE_NAME $today-$tag #$run" \ - --target="$tag" \ - --generate-notes \ - $PRERELEASE_ARG \ - bin/rustpython-release-* diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile deleted file mode 100644 index 0a54e9d39a..0000000000 --- a/.gitpod.Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM gitpod/workspace-full - -USER gitpod - -# Update Rust to the latest version -RUN rm -rf ~/.rustup && \ - export PATH=$HOME/.cargo/bin:$PATH && \ - rustup update stable && \ - rustup component add rls && \ - # Set up wasm-pack and wasm32-unknown-unknown for rustpython_wasm - curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh && \ - rustup target add wasm32-unknown-unknown - -RUN sudo apt-get -q update \ - && sudo apt-get install -yq \ - libpython3.6 \ - rust-lldb \ - && sudo rm -rf /var/lib/apt/lists/* -ENV RUST_LLDB=/usr/bin/lldb-8 - -USER root diff --git a/.gitpod.yml b/.gitpod.yml deleted file mode 100644 index 7f2eea913f..0000000000 --- a/.gitpod.yml +++ /dev/null @@ -1,6 +0,0 @@ -image: - file: .gitpod.Dockerfile - -vscode: - extensions: - - vadimcn.vscode-lldb@1.5.3:vTh/rWhvJ5nQpeAVsD20QA== \ No newline at end of file diff --git a/.mailmap b/.mailmap deleted file mode 100644 index b208bf5730..0000000000 --- a/.mailmap +++ /dev/null @@ -1,8 +0,0 @@ -# -# This list is used by git-shortlog to aggregate contributions. It is -# necessary when either the author's full name is not always written -# the same way, and/or the same author contributes from different -# email addresses. -# - -Noa <33094578+coolreader18@users.noreply.github.com> diff --git a/.theia/launch.json b/.theia/launch.json deleted file mode 100644 index 699c72ee9d..0000000000 --- a/.theia/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - "version": "0.2.0", - "configurations": [ - { - "type": "lldb", - "request": "launch", - "name": "Debug Rust Code", - //"preLaunchTask": "cargo", - "program": "${workspaceFolder}/target/debug/rustpython", - "cwd": "${workspaceFolder}", - //"valuesFormatting": "parseText" - } - ] -} diff --git a/.theia/settings.json b/.theia/settings.json deleted file mode 100644 index 83db8fc489..0000000000 --- a/.theia/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "cpp.buildConfigurations": [ - { - "name": "", - "directory": "" - }, - ] -} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index fa6f96c5fd..0000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,298 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "lldb", - "request": "launch", - "name": "Debug executable 'rustpython'", - "preLaunchTask": "Build RustPython Debug", - "program": "target/debug/rustpython", - "args": [], - "env": { - "RUST_BACKTRACE": "1" - }, - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug executable 'rustpython' without SSL", - "preLaunchTask": "Build RustPython Debug without SSL", - "program": "target/debug/rustpython", - "args": [], - "env": { - "RUST_BACKTRACE": "1" - }, - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython" - ], - "filter": { - "name": "rustpython", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug benchmark 'execution'", - "cargo": { - "args": [ - "test", - "--no-run", - "--bench=execution", - "--package=rustpython" - ], - "filter": { - "name": "execution", - "kind": "bench" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug benchmark 'microbenchmarks'", - "cargo": { - "args": [ - "test", - "--no-run", - "--bench=microbenchmarks", - "--package=rustpython" - ], - "filter": { - "name": "microbenchmarks", - "kind": "bench" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython-pylib'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython-pylib" - ], - "filter": { - "name": "rustpython-pylib", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython-bytecode'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython-bytecode" - ], - "filter": { - "name": "rustpython-bytecode", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython-compiler'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython-compiler" - ], - "filter": { - "name": "rustpython-compiler", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython-compiler-core'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython-compiler-core" - ], - "filter": { - "name": "rustpython-compiler-core", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython-ast'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython-ast" - ], - "filter": { - "name": "rustpython-ast", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython-parser'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython-parser" - ], - "filter": { - "name": "rustpython-parser", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython-vm'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython-vm" - ], - "filter": { - "name": "rustpython-vm", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython-common'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython-common" - ], - "filter": { - "name": "rustpython-common", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython-jit'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython-jit" - ], - "filter": { - "name": "rustpython-jit", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug integration test 'integration'", - "cargo": { - "args": [ - "test", - "--no-run", - "--test=integration", - "--package=rustpython-jit" - ], - "filter": { - "name": "integration", - "kind": "test" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'rustpython_wasm'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=rustpython_wasm" - ], - "filter": { - "name": "rustpython_wasm", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - } - ] -} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index 18a3d6010d..0000000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "Build RustPython Debug without SSL", - "type": "shell", - "command": "cargo", - "args": [ - "build", - ], - "problemMatcher": [ - "$rustc", - ], - "group": { - "kind": "build", - "isDefault": true, - }, - }, - { - "label": "Build RustPython Debug", - "type": "shell", - "command": "cargo", - "args": [ - "build", - "--features=ssl" - ], - "problemMatcher": [ - "$rustc", - ], - "group": { - "kind": "build", - "isDefault": true, - }, - }, - ], -} \ No newline at end of file diff --git a/Dockerfile.bin b/Dockerfile.bin deleted file mode 100644 index bf0a8ff464..0000000000 --- a/Dockerfile.bin +++ /dev/null @@ -1,15 +0,0 @@ -FROM rust:latest as rust - -WORKDIR /rustpython - -COPY . . - -RUN cargo build --release - -FROM debian:stable-slim - -COPY --from=rust /rustpython/target/release/rustpython /usr/bin -COPY --from=rust /rustpython/Lib /usr/lib/rustpython -ENV RUSTPYTHONPATH /usr/lib/rustpython - -ENTRYPOINT [ "rustpython" ] diff --git a/Dockerfile.wasm b/Dockerfile.wasm deleted file mode 100644 index a2a1b4c8bc..0000000000 --- a/Dockerfile.wasm +++ /dev/null @@ -1,32 +0,0 @@ -FROM rust:slim AS rust - -WORKDIR /rustpython - -USER root -ENV USER root - - -RUN apt-get update && apt-get install curl libssl-dev pkg-config -y && \ - curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - -COPY . . - -RUN cd wasm/lib/ && wasm-pack build --release - - -FROM node:alpine AS node - -WORKDIR /rustpython-demo - -COPY --from=rust /rustpython/wasm/lib/pkg rustpython_wasm - -COPY wasm/demo . - -RUN npm install && npm run dist -- --env.noWasmPack --env.rustpythonPkg=rustpython_wasm - - -FROM nginx:alpine - -COPY --from=node /rustpython-demo/dist /usr/share/nginx/html -# Add the WASM mime type -RUN echo "types { application/wasm wasm; }" >>/etc/nginx/mime.types diff --git a/README_main.md b/README_main.md new file mode 100644 index 0000000000..ec45ca4923 --- /dev/null +++ b/README_main.md @@ -0,0 +1,29 @@ +# Master folder doc +- [README.md](README.md) +- [DEVELOPMENT.md](DEVELOPMENT.md) +- [code-of-conduct.md](code-of-conduct.md) + + + +# WASM +- [wasm/README.md](wasm/README.md) +- [wasm/lib/README.md](wasm/lib/README.md) +- [wasm/notebook/README.md](wasm/notebook/README.md) + + +# VM +- [vm/Lib/README.md](vm/Lib/README.md) + + +# Benches +- [benches/README.md](benches/README.md) + +# Extra +- [extra_tests/README.md](extra_tests/README.md) +- [Lib/test/ziptestdata/README.md](Lib/test/ziptestdata/README.md) +- [extra_tests/README.md](extra_tests/README.md) +- [Lib/test/ziptestdata/README.md](Lib/test/ziptestdata/README.md) + + +# conduct +- [code-of-conduct.md](code-of-conduct.md) \ No newline at end of file diff --git a/crawl_sourcecode.py b/crawl_sourcecode.py deleted file mode 100644 index 2daad4f682..0000000000 --- a/crawl_sourcecode.py +++ /dev/null @@ -1,83 +0,0 @@ -""" This script can be used to test the equivalence in parsing between -rustpython and cpython. - -Usage example: - -$ python crawl_sourcecode.py crawl_sourcecode.py > cpython.txt -$ cargo run crawl_sourcecode.py crawl_sourcecode.py > rustpython.txt -$ diff cpython.txt rustpython.txt -""" - - -import ast -import sys -import symtable -import dis - -filename = sys.argv[1] -print('Crawling file:', filename) - - -with open(filename, 'r') as f: - source = f.read() - -t = ast.parse(source) -print(t) - -shift = 3 -def print_node(node, indent=0): - indents = ' ' * indent - if isinstance(node, ast.AST): - lineno = 'row={}'.format(node.lineno) if hasattr(node, 'lineno') else '' - print(indents, "NODE", node.__class__.__name__, lineno) - for field in node._fields: - print(indents,'-', field) - f = getattr(node, field) - if isinstance(f, list): - for f2 in f: - print_node(f2, indent=indent+shift) - else: - print_node(f, indent=indent+shift) - else: - print(indents, 'OBJ', node) - -print_node(t) - -# print(ast.dump(t)) -flag_names = [ - 'is_referenced', - 'is_assigned', - 'is_global', - 'is_local', - 'is_parameter', - 'is_free', -] - -def print_table(table, indent=0): - indents = ' ' * indent - print(indents, 'table:', table.get_name()) - print(indents, ' ', 'name:', table.get_name()) - print(indents, ' ', 'type:', table.get_type()) - print(indents, ' ', 'line:', table.get_lineno()) - print(indents, ' ', 'identifiers:', table.get_identifiers()) - print(indents, ' ', 'Syms:') - for sym in table.get_symbols(): - flags = [] - for flag_name in flag_names: - func = getattr(sym, flag_name) - if func(): - flags.append(flag_name) - print(indents, ' sym:', sym.get_name(), 'flags:', ' '.join(flags)) - if table.has_children(): - print(indents, ' ', 'Child tables:') - for child in table.get_children(): - print_table(child, indent=indent+shift) - -table = symtable.symtable(source, 'a', 'exec') -print_table(table) - -print() -print('======== dis.dis ========') -print() -co = compile(source, filename, 'exec') -dis.dis(co) diff --git a/demo_closures.py b/demo_closures.py deleted file mode 100644 index 00242407e6..0000000000 --- a/demo_closures.py +++ /dev/null @@ -1,13 +0,0 @@ - - -def foo(x): - def bar(z): - return z + x - return bar - -f = foo(9) -g = foo(10) - -print(f(2)) -print(g(2)) - diff --git a/whats_left.py b/whats_left.py deleted file mode 100755 index 82df5cabe1..0000000000 --- a/whats_left.py +++ /dev/null @@ -1,482 +0,0 @@ -#!/usr/bin/env -S python3 -I - -# This script generates Lib/snippets/whats_left_data.py with these variables defined: -# expected_methods - a dictionary mapping builtin objects to their methods -# cpymods - a dictionary mapping module names to their contents -# libdir - the location of RustPython's Lib/ directory. - -# -# TODO: include this: -# which finds all modules it has available and -# creates a Python dictionary mapping module names to their contents, which is -# in turn used to generate a second Python script that also finds which modules -# it has available and compares that against the first dictionary we generated. -# We then run this second generated script with RustPython. - -import argparse -import re -import os -import re -import sys -import json -import warnings -import inspect -import subprocess -import platform -from pydoc import ModuleScanner - -if not sys.flags.isolated: - print("running without -I option.") - print("python -I whats_left.py") - exit(1) - -GENERATED_FILE = "extra_tests/not_impl.py" - -implementation = platform.python_implementation() -if implementation != "CPython": - sys.exit(f"whats_left.py must be run under CPython, got {implementation} instead") -if sys.version_info[:2] < (3, 13): - sys.exit(f"whats_left.py must be run under CPython 3.13 or newer, got {implementation} {sys.version} instead") - -def parse_args(): - parser = argparse.ArgumentParser(description="Process some integers.") - parser.add_argument( - "--signature", - action="store_true", - help="print functions whose signatures don't match CPython's", - ) - parser.add_argument( - "--doc", - action="store_true", - help="print elements whose __doc__ don't match CPython's", - ) - parser.add_argument( - "--json", - action="store_true", - help="print output as JSON (instead of line by line)", - ) - parser.add_argument( - "--features", - action="store", - help="which features to enable when building RustPython (default: ssl)", - default="ssl", - ) - - args = parser.parse_args() - return args - - -args = parse_args() - -# CPython specific modules (mostly consisting of templates/tests) -CPYTHON_SPECIFIC_MODS = { - 'xxmodule', 'xxsubtype', 'xxlimited', '_xxtestfuzz', - '_testbuffer', '_testcapi', '_testimportmultiple', '_testinternalcapi', '_testmultiphase', '_testlimitedcapi' -} - -IGNORED_MODULES = {"this", "antigravity"} | CPYTHON_SPECIFIC_MODS - -sys.path = [ - path - for path in sys.path - if ("site-packages" not in path and "dist-packages" not in path) -] - - -def attr_is_not_inherited(type_, attr): - """ - returns True if type_'s attr is not inherited from any of its base classes - """ - bases = type_.__mro__[1:] - return getattr(type_, attr) not in (getattr(base, attr, None) for base in bases) - - -def extra_info(obj): - if callable(obj) and not inspect._signature_is_builtin(obj): - doc = inspect.getdoc(obj) - try: - sig = str(inspect.signature(obj)) - # remove function memory addresses - return { - "sig": re.sub(" at 0x[0-9A-Fa-f]+", " at 0xdeadbeef", sig), - "doc": doc, - } - except Exception as e: - exception = repr(e) - # CPython uses ' RustPython uses " - if exception.replace('"', "'").startswith("ValueError('no signature found"): - return { - "sig": "ValueError('no signature found')", - "doc": doc, - } - - return { - "sig": exception, - "doc": doc, - } - - return { - "sig": None, - "doc": None, - } - - -def name_sort_key(name): - if name == "builtins": - return "" - if name[0] == "_": - return name[1:] + "1" - return name + "2" - - -def gen_methods(): - types = [ - bool, - bytearray, - bytes, - complex, - dict, - enumerate, - filter, - float, - frozenset, - int, - list, - map, - memoryview, - range, - set, - slice, - str, - super, - tuple, - object, - zip, - classmethod, - staticmethod, - property, - Exception, - BaseException, - ] - objects = [t.__name__ for t in types] - objects.append("type(None)") - - iters = [ - "type(bytearray().__iter__())", - "type(bytes().__iter__())", - "type(dict().__iter__())", - "type(dict().values().__iter__())", - "type(dict().items().__iter__())", - "type(dict().values())", - "type(dict().items())", - "type(set().__iter__())", - "type(list().__iter__())", - "type(range(0).__iter__())", - "type(str().__iter__())", - "type(tuple().__iter__())", - "type(memoryview(bytearray(b'0')).__iter__())", - ] - - methods = {} - for typ_code in objects + iters: - typ = eval(typ_code) - attrs = [] - for attr in dir(typ): - if attr_is_not_inherited(typ, attr): - attrs.append((attr, extra_info(getattr(typ, attr)))) - methods[typ.__name__] = (typ_code, extra_info(typ), attrs) - - output = "expected_methods = {\n" - for name in sorted(methods.keys(), key=name_sort_key): - typ_code, extra, attrs = methods[name] - output += f" '{name}': ({typ_code}, {extra!r}, [\n" - for attr, attr_extra in attrs: - output += f" ({attr!r}, {attr_extra!r}),\n" - output += " ]),\n" - if typ_code != objects[-1]: - output += "\n" - output += "}\n\n" - return output - - -def scan_modules(): - """taken from the source code of help('modules') - - https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Lib/pydoc.py#L2178""" - modules = {} - - def callback(path, modname, desc, modules=modules): - if modname and modname[-9:] == ".__init__": - modname = modname[:-9] + " (package)" - if modname.find(".") < 0: - modules[modname] = 1 - - def onerror(modname): - callback(None, modname, None) - - with warnings.catch_warnings(): - # ignore warnings from importing deprecated modules - warnings.simplefilter("ignore") - ModuleScanner().run(callback, onerror=onerror) - return list(modules.keys()) - - -def import_module(module_name): - import io - from contextlib import redirect_stdout - - # Importing modules causes ('Constant String', 2, None, 4) and - # "Hello world!" to be printed to stdout. - f = io.StringIO() - with warnings.catch_warnings(), redirect_stdout(f): - # ignore warnings caused by importing deprecated modules - warnings.filterwarnings("ignore", category=DeprecationWarning) - try: - module = __import__(module_name) - except Exception as e: - return e - return module - - -def is_child(module, item): - import inspect - - item_mod = inspect.getmodule(item) - return item_mod is module - - -def dir_of_mod_or_error(module_name, keep_other=True): - module = import_module(module_name) - item_names = sorted(set(dir(module))) - result = {} - for item_name in item_names: - item = getattr(module, item_name) - # don't repeat items imported from other modules - if keep_other or is_child(module, item) or inspect.getmodule(item) is None: - result[item_name] = extra_info(item) - return result - - -def gen_modules(): - # check name because modules listed have side effects on import, - # e.g. printing something or opening a webpage - modules = {} - for mod_name in sorted(scan_modules(), key=name_sort_key): - if mod_name in IGNORED_MODULES: - continue - # when generating CPython list, ignore items defined by other modules - dir_result = dir_of_mod_or_error(mod_name, keep_other=False) - if isinstance(dir_result, Exception): - print( - f"!!! {mod_name} skipped because {type(dir_result).__name__}: {str(dir_result)}", - file=sys.stderr, - ) - continue - modules[mod_name] = dir_result - return modules - - -output = """\ -# WARNING: THIS IS AN AUTOMATICALLY GENERATED FILE -# EDIT extra_tests/not_impl_gen.sh, NOT THIS FILE. -# RESULTS OF THIS TEST DEPEND ON THE CPYTHON -# VERSION AND PYTHON ENVIRONMENT USED -# TO RUN not_impl_mods_gen.py - -""" - -output += gen_methods() -output += f""" -cpymods = {gen_modules()!r} -libdir = {os.path.abspath("Lib/").encode('utf8')!r} - -""" - -# Copy the source code of functions we will reuse in the generated script -REUSED = [ - attr_is_not_inherited, - extra_info, - dir_of_mod_or_error, - import_module, - is_child, -] -for fn in REUSED: - output += "".join(inspect.getsourcelines(fn)[0]) + "\n\n" - -# Prevent missing variable linter errors from compare() -expected_methods = {} -cpymods = {} -libdir = "" -# This function holds the source code that will be run under RustPython -def compare(): - import inspect - import io - import os - import re - import sys - import warnings - from contextlib import redirect_stdout - import json - import platform - - def method_incompatibility_reason(typ, method_name, real_method_value): - has_method = hasattr(typ, method_name) - if not has_method: - return "" - - is_inherited = not attr_is_not_inherited(typ, method_name) - if is_inherited: - return "(inherited)" - - value = extra_info(getattr(typ, method_name)) - if value != real_method_value: - return f"{value} != {real_method_value}" - - return None - - not_implementeds = {} - for name, (typ, real_value, methods) in expected_methods.items(): - missing_methods = {} - for method, real_method_value in methods: - reason = method_incompatibility_reason(typ, method, real_method_value) - if reason is not None: - missing_methods[method] = reason - if missing_methods: - not_implementeds[name] = missing_methods - - if platform.python_implementation() == "CPython": - if not_implementeds: - sys.exit("ERROR: CPython should have all the methods") - - mod_names = [ - name.decode() - for name, ext in map(os.path.splitext, os.listdir(libdir)) - if ext == b".py" or os.path.isdir(os.path.join(libdir, name)) - ] - mod_names += list(sys.builtin_module_names) - # Remove easter egg modules - mod_names = sorted(set(mod_names) - {"this", "antigravity"}) - - rustpymods = {mod: dir_of_mod_or_error(mod) for mod in mod_names} - - result = { - "cpython_modules": {}, - "implemented": {}, - "not_implemented": {}, - "failed_to_import": {}, - "missing_items": {}, - "mismatched_items": {}, - "mismatched_doc_items": {}, - } - for modname, cpymod in cpymods.items(): - rustpymod = rustpymods.get(modname) - if rustpymod is None: - result["not_implemented"][modname] = None - elif isinstance(rustpymod, Exception): - result["failed_to_import"][modname] = rustpymod.__class__.__name__ + str(rustpymod) - else: - implemented_items = sorted(set(cpymod) & set(rustpymod)) - mod_missing_items = set(cpymod) - set(rustpymod) - mod_missing_items = sorted( - f"{modname}.{item}" for item in mod_missing_items - ) - mod_mismatched_items = [ - (f"{modname}.{item}", rustpymod[item]["sig"], cpymod[item]["sig"]) - for item in implemented_items - if rustpymod[item]["sig"] != cpymod[item]["sig"] - and not isinstance(cpymod[item]["sig"], Exception) - ] - mod_mismatched_doc_items = [ - (f"{modname}.{item}", rustpymod[item]["doc"], cpymod[item]["doc"]) - for item in implemented_items - if rustpymod[item]["doc"] != cpymod[item]["doc"] - ] - if mod_missing_items or mod_mismatched_items: - if mod_missing_items: - result["missing_items"][modname] = mod_missing_items - if mod_mismatched_items: - result["mismatched_items"][modname] = mod_mismatched_items - if mod_mismatched_doc_items: - result["mismatched_doc_items"][modname] = mod_mismatched_doc_items - else: - result["implemented"][modname] = None - - result["cpython_modules"] = cpymods - result["not_implementeds"] = not_implementeds - - print(json.dumps(result)) - - -def remove_one_indent(s): - indent = " " - return s[len(indent) :] if s.startswith(indent) else s - - -compare_src = inspect.getsourcelines(compare)[0][1:] -output += "".join(remove_one_indent(line) for line in compare_src) - -with open(GENERATED_FILE, "w", encoding='utf-8') as f: - f.write(output + "\n") - - -subprocess.run(["cargo", "build", "--release", f"--features={args.features}"], check=True) -result = subprocess.run( - ["cargo", "run", "--release", f"--features={args.features}", "-q", "--", GENERATED_FILE], - env={**os.environ.copy(), "RUSTPYTHONPATH": "Lib"}, - text=True, - capture_output=True, -) -# The last line should be json output, the rest of the lines can contain noise -# because importing certain modules can print stuff to stdout/stderr -result = json.loads(result.stdout.splitlines()[-1]) - -if args.json: - print(json.dumps(result)) - sys.exit() - - -# missing entire modules -print("# modules") -for modname in result["not_implemented"]: - print(modname, "(entire module)") -for modname, exception in result["failed_to_import"].items(): - print(f"{modname} (exists but not importable: {exception})") - -# missing from builtins -print("\n# builtin items") -for module, missing_methods in result["not_implementeds"].items(): - for method, reason in missing_methods.items(): - print(f"{module}.{method}" + (f" {reason}" if reason else "")) - -# missing from modules -print("\n# stdlib items") -for modname, missing in result["missing_items"].items(): - for item in missing: - print(item) - -if args.signature: - print("\n# mismatching signatures (warnings)") - for modname, mismatched in result["mismatched_items"].items(): - for i, (item, rustpy_value, cpython_value) in enumerate(mismatched): - if cpython_value and cpython_value.startswith("ValueError("): - continue # these items will never match - if rustpy_value is None or rustpy_value.startswith("ValueError("): - rustpy_value = f" {rustpy_value}" - print(f"{item}{rustpy_value}") - if cpython_value is None: - cpython_value = f" {cpython_value}" - print(f"{' ' * len(item)}{cpython_value}") - if i < len(mismatched) - 1: - print() - -if args.doc: - print("\n# mismatching `__doc__`s (warnings)") - for modname, mismatched in result["mismatched_doc_items"].items(): - for (item, rustpy_doc, cpython_doc) in mismatched: - print(f"{item} {repr(rustpy_doc)} != {repr(cpython_doc)}") - - -print() -print("# summary") -for error_type, modules in result.items(): - print("# ", error_type, len(modules)) From 14855bd69614671bf15382d6e75f7ef274d178ea Mon Sep 17 00:00:00 2001 From: Simone_Pellacani Date: Fri, 25 Apr 2025 18:04:07 +0200 Subject: [PATCH 2/6] staged removed simlink to dedup code entrypoint --- pylib/Lib | 1 - pylib/build.rs | 4 ++-- vm/build.rs | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) delete mode 120000 pylib/Lib diff --git a/pylib/Lib b/pylib/Lib deleted file mode 120000 index 47f928ff4d..0000000000 --- a/pylib/Lib +++ /dev/null @@ -1 +0,0 @@ -../Lib \ No newline at end of file diff --git a/pylib/build.rs b/pylib/build.rs index 553b97202a..14124bfb9c 100644 --- a/pylib/build.rs +++ b/pylib/build.rs @@ -4,9 +4,9 @@ fn main() { process_python_libs("../vm/Lib/core_modules/*"); #[cfg(feature = "freeze-stdlib")] if cfg!(windows) { - process_python_libs("../Lib/**/*"); + process_python_libs("../pylib/**/*"); } else { - process_python_libs("./Lib/**/*"); + process_python_libs("./pylib/**/*"); } if cfg!(windows) { diff --git a/vm/build.rs b/vm/build.rs index 93d29c3a57..a8cb15726f 100644 --- a/vm/build.rs +++ b/vm/build.rs @@ -11,7 +11,7 @@ fn main() { let display = entry.display(); println!("cargo:rerun-if-changed={display}"); } - println!("cargo:rerun-if-changed=../Lib/importlib/_bootstrap.py"); + println!("cargo:rerun-if-changed=../pylib/importlib/_bootstrap.py"); println!("cargo:rustc-env=RUSTPYTHON_GIT_HASH={}", git_hash()); println!( From 6a5f0236f742c345a6e1bcfc7bb114b7da345fd5 Mon Sep 17 00:00:00 2001 From: Simone_Pellacani Date: Fri, 25 Apr 2025 18:32:38 +0200 Subject: [PATCH 3/6] lite refactor to remove duplicated code and symlink, testing patch --- Lib | 1 + {Lib => pylib/Lib}/PSF-LICENSE | 0 {Lib => pylib/Lib}/README.md | 0 {Lib => pylib/Lib}/__future__.py | 0 {Lib => pylib/Lib}/__hello__.py | 0 {Lib => pylib/Lib}/__phello__/__init__.py | 0 {Lib => pylib/Lib}/__phello__/ham/__init__.py | 0 {Lib => pylib/Lib}/__phello__/ham/eggs.py | 0 {Lib => pylib/Lib}/__phello__/spam.py | 0 {Lib => pylib/Lib}/_aix_support.py | 0 {Lib => pylib/Lib}/_android_support.py | 0 {Lib => pylib/Lib}/_apple_support.py | 0 {Lib => pylib/Lib}/_collections_abc.py | 0 {Lib => pylib/Lib}/_colorize.py | 0 {Lib => pylib/Lib}/_compat_pickle.py | 0 {Lib => pylib/Lib}/_compression.py | 0 {Lib => pylib/Lib}/_dummy_os.py | 0 {Lib => pylib/Lib}/_dummy_thread.py | 0 {Lib => pylib/Lib}/_ios_support.py | 0 {Lib => pylib/Lib}/_markupbase.py | 0 {Lib => pylib/Lib}/_osx_support.py | 0 {Lib => pylib/Lib}/_py_abc.py | 0 {Lib => pylib/Lib}/_pycodecs.py | 0 {Lib => pylib/Lib}/_pydatetime.py | 0 {Lib => pylib/Lib}/_pydecimal.py | 0 {Lib => pylib/Lib}/_pyio.py | 0 {Lib => pylib/Lib}/_pylong.py | 0 {Lib => pylib/Lib}/_pyrepl/__init__.py | 0 {Lib => pylib/Lib}/_pyrepl/__main__.py | 0 {Lib => pylib/Lib}/_pyrepl/_minimal_curses.py | 0 {Lib => pylib/Lib}/_pyrepl/_threading_handler.py | 0 {Lib => pylib/Lib}/_pyrepl/commands.py | 0 {Lib => pylib/Lib}/_pyrepl/completing_reader.py | 0 {Lib => pylib/Lib}/_pyrepl/console.py | 0 {Lib => pylib/Lib}/_pyrepl/curses.py | 0 {Lib => pylib/Lib}/_pyrepl/fancy_termios.py | 0 {Lib => pylib/Lib}/_pyrepl/historical_reader.py | 0 {Lib => pylib/Lib}/_pyrepl/input.py | 0 {Lib => pylib/Lib}/_pyrepl/keymap.py | 0 {Lib => pylib/Lib}/_pyrepl/main.py | 0 {Lib => pylib/Lib}/_pyrepl/mypy.ini | 0 {Lib => pylib/Lib}/_pyrepl/pager.py | 0 {Lib => pylib/Lib}/_pyrepl/reader.py | 0 {Lib => pylib/Lib}/_pyrepl/readline.py | 0 {Lib => pylib/Lib}/_pyrepl/simple_interact.py | 0 {Lib => pylib/Lib}/_pyrepl/trace.py | 0 {Lib => pylib/Lib}/_pyrepl/types.py | 0 {Lib => pylib/Lib}/_pyrepl/unix_console.py | 0 {Lib => pylib/Lib}/_pyrepl/unix_eventqueue.py | 0 {Lib => pylib/Lib}/_pyrepl/utils.py | 0 {Lib => pylib/Lib}/_pyrepl/windows_console.py | 0 {Lib => pylib/Lib}/_sitebuiltins.py | 0 {Lib => pylib/Lib}/_strptime.py | 0 {Lib => pylib/Lib}/_threading_local.py | 0 {Lib => pylib/Lib}/_weakrefset.py | 0 {Lib => pylib/Lib}/abc.py | 0 {Lib => pylib/Lib}/antigravity.py | 0 {Lib => pylib/Lib}/argparse.py | 0 {Lib => pylib/Lib}/ast.py | 0 {Lib => pylib/Lib}/asyncio/__init__.py | 0 {Lib => pylib/Lib}/asyncio/__main__.py | 0 {Lib => pylib/Lib}/asyncio/base_events.py | 0 {Lib => pylib/Lib}/asyncio/base_futures.py | 0 {Lib => pylib/Lib}/asyncio/base_subprocess.py | 0 {Lib => pylib/Lib}/asyncio/base_tasks.py | 0 {Lib => pylib/Lib}/asyncio/constants.py | 0 {Lib => pylib/Lib}/asyncio/coroutines.py | 0 {Lib => pylib/Lib}/asyncio/events.py | 0 {Lib => pylib/Lib}/asyncio/exceptions.py | 0 {Lib => pylib/Lib}/asyncio/format_helpers.py | 0 {Lib => pylib/Lib}/asyncio/futures.py | 0 {Lib => pylib/Lib}/asyncio/locks.py | 0 {Lib => pylib/Lib}/asyncio/log.py | 0 {Lib => pylib/Lib}/asyncio/mixins.py | 0 {Lib => pylib/Lib}/asyncio/proactor_events.py | 0 {Lib => pylib/Lib}/asyncio/protocols.py | 0 {Lib => pylib/Lib}/asyncio/queues.py | 0 {Lib => pylib/Lib}/asyncio/runners.py | 0 {Lib => pylib/Lib}/asyncio/selector_events.py | 0 {Lib => pylib/Lib}/asyncio/sslproto.py | 0 {Lib => pylib/Lib}/asyncio/staggered.py | 0 {Lib => pylib/Lib}/asyncio/streams.py | 0 {Lib => pylib/Lib}/asyncio/subprocess.py | 0 {Lib => pylib/Lib}/asyncio/taskgroups.py | 0 {Lib => pylib/Lib}/asyncio/tasks.py | 0 {Lib => pylib/Lib}/asyncio/threads.py | 0 {Lib => pylib/Lib}/asyncio/timeouts.py | 0 {Lib => pylib/Lib}/asyncio/transports.py | 0 {Lib => pylib/Lib}/asyncio/trsock.py | 0 {Lib => pylib/Lib}/asyncio/unix_events.py | 0 {Lib => pylib/Lib}/asyncio/windows_events.py | 0 {Lib => pylib/Lib}/asyncio/windows_utils.py | 0 {Lib => pylib/Lib}/base64.py | 0 {Lib => pylib/Lib}/bdb.py | 0 {Lib => pylib/Lib}/bisect.py | 0 {Lib => pylib/Lib}/bz2.py | 0 {Lib => pylib/Lib}/calendar.py | 0 {Lib => pylib/Lib}/cmd.py | 0 {Lib => pylib/Lib}/code.py | 0 {Lib => pylib/Lib}/codecs.py | 0 {Lib => pylib/Lib}/codeop.py | 0 {Lib => pylib/Lib}/collections/__init__.py | 0 {Lib => pylib/Lib}/collections/_defaultdict.py | 0 {Lib => pylib/Lib}/collections/abc.py | 0 {Lib => pylib/Lib}/colorsys.py | 0 {Lib => pylib/Lib}/compileall.py | 0 {Lib => pylib/Lib}/concurrent/__init__.py | 0 {Lib => pylib/Lib}/concurrent/futures/__init__.py | 0 {Lib => pylib/Lib}/concurrent/futures/_base.py | 0 {Lib => pylib/Lib}/concurrent/futures/process.py | 0 {Lib => pylib/Lib}/concurrent/futures/thread.py | 0 {Lib => pylib/Lib}/configparser.py | 0 {Lib => pylib/Lib}/contextlib.py | 0 {Lib => pylib/Lib}/contextvars.py | 0 {Lib => pylib/Lib}/copy.py | 0 {Lib => pylib/Lib}/copyreg.py | 0 {Lib => pylib/Lib}/csv.py | 0 {Lib => pylib/Lib}/ctypes/__init__.py | 0 {Lib => pylib/Lib}/ctypes/_aix.py | 0 {Lib => pylib/Lib}/ctypes/_endian.py | 0 {Lib => pylib/Lib}/ctypes/macholib/README.ctypes | 0 {Lib => pylib/Lib}/ctypes/macholib/__init__.py | 0 {Lib => pylib/Lib}/ctypes/macholib/dyld.py | 0 {Lib => pylib/Lib}/ctypes/macholib/dylib.py | 0 {Lib => pylib/Lib}/ctypes/macholib/fetch_macholib | 0 .../Lib}/ctypes/macholib/fetch_macholib.bat | 0 {Lib => pylib/Lib}/ctypes/macholib/framework.py | 0 {Lib => pylib/Lib}/ctypes/test/__init__.py | 0 {Lib => pylib/Lib}/ctypes/test/__main__.py | 0 {Lib => pylib/Lib}/ctypes/test/test_anon.py | 0 .../Lib}/ctypes/test/test_array_in_pointer.py | 0 {Lib => pylib/Lib}/ctypes/test/test_arrays.py | 0 {Lib => pylib/Lib}/ctypes/test/test_as_parameter.py | 0 {Lib => pylib/Lib}/ctypes/test/test_bitfields.py | 0 {Lib => pylib/Lib}/ctypes/test/test_buffers.py | 0 {Lib => pylib/Lib}/ctypes/test/test_bytes.py | 0 {Lib => pylib/Lib}/ctypes/test/test_byteswap.py | 0 {Lib => pylib/Lib}/ctypes/test/test_callbacks.py | 0 {Lib => pylib/Lib}/ctypes/test/test_cast.py | 0 {Lib => pylib/Lib}/ctypes/test/test_cfuncs.py | 0 {Lib => pylib/Lib}/ctypes/test/test_checkretval.py | 0 {Lib => pylib/Lib}/ctypes/test/test_delattr.py | 0 {Lib => pylib/Lib}/ctypes/test/test_errno.py | 0 {Lib => pylib/Lib}/ctypes/test/test_find.py | 0 {Lib => pylib/Lib}/ctypes/test/test_frombuffer.py | 0 {Lib => pylib/Lib}/ctypes/test/test_funcptr.py | 0 {Lib => pylib/Lib}/ctypes/test/test_functions.py | 0 {Lib => pylib/Lib}/ctypes/test/test_incomplete.py | 0 {Lib => pylib/Lib}/ctypes/test/test_init.py | 0 {Lib => pylib/Lib}/ctypes/test/test_internals.py | 0 {Lib => pylib/Lib}/ctypes/test/test_keeprefs.py | 0 {Lib => pylib/Lib}/ctypes/test/test_libc.py | 0 {Lib => pylib/Lib}/ctypes/test/test_loading.py | 0 {Lib => pylib/Lib}/ctypes/test/test_macholib.py | 0 {Lib => pylib/Lib}/ctypes/test/test_memfunctions.py | 0 {Lib => pylib/Lib}/ctypes/test/test_numbers.py | 0 {Lib => pylib/Lib}/ctypes/test/test_objects.py | 0 {Lib => pylib/Lib}/ctypes/test/test_parameters.py | 0 {Lib => pylib/Lib}/ctypes/test/test_pep3118.py | 0 {Lib => pylib/Lib}/ctypes/test/test_pickling.py | 0 {Lib => pylib/Lib}/ctypes/test/test_pointers.py | 0 {Lib => pylib/Lib}/ctypes/test/test_prototypes.py | 0 {Lib => pylib/Lib}/ctypes/test/test_python_api.py | 0 .../Lib}/ctypes/test/test_random_things.py | 0 {Lib => pylib/Lib}/ctypes/test/test_refcounts.py | 0 {Lib => pylib/Lib}/ctypes/test/test_repr.py | 0 .../Lib}/ctypes/test/test_returnfuncptrs.py | 0 .../Lib}/ctypes/test/test_simplesubclasses.py | 0 {Lib => pylib/Lib}/ctypes/test/test_sizes.py | 0 {Lib => pylib/Lib}/ctypes/test/test_slicing.py | 0 {Lib => pylib/Lib}/ctypes/test/test_stringptr.py | 0 {Lib => pylib/Lib}/ctypes/test/test_strings.py | 0 .../Lib}/ctypes/test/test_struct_fields.py | 0 {Lib => pylib/Lib}/ctypes/test/test_structures.py | 0 .../Lib}/ctypes/test/test_unaligned_structures.py | 0 {Lib => pylib/Lib}/ctypes/test/test_unicode.py | 0 {Lib => pylib/Lib}/ctypes/test/test_values.py | 0 .../Lib}/ctypes/test/test_varsize_struct.py | 0 {Lib => pylib/Lib}/ctypes/test/test_win32.py | 0 {Lib => pylib/Lib}/ctypes/test/test_wintypes.py | 0 {Lib => pylib/Lib}/ctypes/util.py | 0 {Lib => pylib/Lib}/ctypes/wintypes.py | 0 {Lib => pylib/Lib}/dataclasses.py | 0 {Lib => pylib/Lib}/datetime.py | 0 {Lib => pylib/Lib}/dbm/__init__.py | 0 {Lib => pylib/Lib}/dbm/dumb.py | 0 {Lib => pylib/Lib}/decimal.py | 0 {Lib => pylib/Lib}/difflib.py | 0 {Lib => pylib/Lib}/dis.py | 0 {Lib => pylib/Lib}/distutils/README | 0 {Lib => pylib/Lib}/distutils/__init__.py | 0 {Lib => pylib/Lib}/distutils/_msvccompiler.py | 0 {Lib => pylib/Lib}/distutils/archive_util.py | 0 {Lib => pylib/Lib}/distutils/bcppcompiler.py | 0 {Lib => pylib/Lib}/distutils/ccompiler.py | 0 {Lib => pylib/Lib}/distutils/cmd.py | 0 {Lib => pylib/Lib}/distutils/command/__init__.py | 0 {Lib => pylib/Lib}/distutils/command/bdist.py | 0 {Lib => pylib/Lib}/distutils/command/bdist_dumb.py | 0 {Lib => pylib/Lib}/distutils/command/bdist_msi.py | 0 {Lib => pylib/Lib}/distutils/command/bdist_rpm.py | 0 .../Lib}/distutils/command/bdist_wininst.py | 0 {Lib => pylib/Lib}/distutils/command/build.py | 0 {Lib => pylib/Lib}/distutils/command/build_clib.py | 0 {Lib => pylib/Lib}/distutils/command/build_ext.py | 0 {Lib => pylib/Lib}/distutils/command/build_py.py | 0 .../Lib}/distutils/command/build_scripts.py | 0 {Lib => pylib/Lib}/distutils/command/check.py | 0 {Lib => pylib/Lib}/distutils/command/clean.py | 0 .../Lib}/distutils/command/command_template | 0 {Lib => pylib/Lib}/distutils/command/config.py | 0 {Lib => pylib/Lib}/distutils/command/install.py | 0 .../Lib}/distutils/command/install_data.py | 0 .../Lib}/distutils/command/install_egg_info.py | 0 .../Lib}/distutils/command/install_headers.py | 0 {Lib => pylib/Lib}/distutils/command/install_lib.py | 0 .../Lib}/distutils/command/install_scripts.py | 0 {Lib => pylib/Lib}/distutils/command/register.py | 0 {Lib => pylib/Lib}/distutils/command/sdist.py | 0 {Lib => pylib/Lib}/distutils/command/upload.py | 0 {Lib => pylib/Lib}/distutils/config.py | 0 {Lib => pylib/Lib}/distutils/core.py | 0 {Lib => pylib/Lib}/distutils/cygwinccompiler.py | 0 {Lib => pylib/Lib}/distutils/debug.py | 0 {Lib => pylib/Lib}/distutils/dep_util.py | 0 {Lib => pylib/Lib}/distutils/dir_util.py | 0 {Lib => pylib/Lib}/distutils/dist.py | 0 {Lib => pylib/Lib}/distutils/errors.py | 0 {Lib => pylib/Lib}/distutils/extension.py | 0 {Lib => pylib/Lib}/distutils/fancy_getopt.py | 0 {Lib => pylib/Lib}/distutils/file_util.py | 0 {Lib => pylib/Lib}/distutils/filelist.py | 0 {Lib => pylib/Lib}/distutils/log.py | 0 {Lib => pylib/Lib}/distutils/msvc9compiler.py | 0 {Lib => pylib/Lib}/distutils/msvccompiler.py | 0 {Lib => pylib/Lib}/distutils/spawn.py | 0 {Lib => pylib/Lib}/distutils/sysconfig.py | 0 {Lib => pylib/Lib}/distutils/text_file.py | 0 {Lib => pylib/Lib}/distutils/unixccompiler.py | 0 {Lib => pylib/Lib}/distutils/util.py | 0 {Lib => pylib/Lib}/distutils/version.py | 0 {Lib => pylib/Lib}/distutils/versionpredicate.py | 0 {Lib => pylib/Lib}/doctest.py | 0 {Lib => pylib/Lib}/dummy_threading.py | 0 {Lib => pylib/Lib}/email/__init__.py | 0 {Lib => pylib/Lib}/email/_encoded_words.py | 0 {Lib => pylib/Lib}/email/_header_value_parser.py | 0 {Lib => pylib/Lib}/email/_parseaddr.py | 0 {Lib => pylib/Lib}/email/_policybase.py | 0 {Lib => pylib/Lib}/email/architecture.rst | 0 {Lib => pylib/Lib}/email/base64mime.py | 0 {Lib => pylib/Lib}/email/charset.py | 0 {Lib => pylib/Lib}/email/contentmanager.py | 0 {Lib => pylib/Lib}/email/encoders.py | 0 {Lib => pylib/Lib}/email/errors.py | 0 {Lib => pylib/Lib}/email/feedparser.py | 0 {Lib => pylib/Lib}/email/generator.py | 0 {Lib => pylib/Lib}/email/header.py | 0 {Lib => pylib/Lib}/email/headerregistry.py | 0 {Lib => pylib/Lib}/email/iterators.py | 0 {Lib => pylib/Lib}/email/message.py | 0 {Lib => pylib/Lib}/email/mime/__init__.py | 0 {Lib => pylib/Lib}/email/mime/application.py | 0 {Lib => pylib/Lib}/email/mime/audio.py | 0 {Lib => pylib/Lib}/email/mime/base.py | 0 {Lib => pylib/Lib}/email/mime/image.py | 0 {Lib => pylib/Lib}/email/mime/message.py | 0 {Lib => pylib/Lib}/email/mime/multipart.py | 0 {Lib => pylib/Lib}/email/mime/nonmultipart.py | 0 {Lib => pylib/Lib}/email/mime/text.py | 0 {Lib => pylib/Lib}/email/parser.py | 0 {Lib => pylib/Lib}/email/policy.py | 0 {Lib => pylib/Lib}/email/quoprimime.py | 0 {Lib => pylib/Lib}/email/utils.py | 0 {Lib => pylib/Lib}/encodings/__init__.py | 0 {Lib => pylib/Lib}/encodings/aliases.py | 0 {Lib => pylib/Lib}/encodings/ascii.py | 0 {Lib => pylib/Lib}/encodings/base64_codec.py | 0 {Lib => pylib/Lib}/encodings/big5.py | 0 {Lib => pylib/Lib}/encodings/big5hkscs.py | 0 {Lib => pylib/Lib}/encodings/bz2_codec.py | 0 {Lib => pylib/Lib}/encodings/charmap.py | 0 {Lib => pylib/Lib}/encodings/cp037.py | 0 {Lib => pylib/Lib}/encodings/cp1006.py | 0 {Lib => pylib/Lib}/encodings/cp1026.py | 0 {Lib => pylib/Lib}/encodings/cp1125.py | 0 {Lib => pylib/Lib}/encodings/cp1140.py | 0 {Lib => pylib/Lib}/encodings/cp1250.py | 0 {Lib => pylib/Lib}/encodings/cp1251.py | 0 {Lib => pylib/Lib}/encodings/cp1252.py | 0 {Lib => pylib/Lib}/encodings/cp1253.py | 0 {Lib => pylib/Lib}/encodings/cp1254.py | 0 {Lib => pylib/Lib}/encodings/cp1255.py | 0 {Lib => pylib/Lib}/encodings/cp1256.py | 0 {Lib => pylib/Lib}/encodings/cp1257.py | 0 {Lib => pylib/Lib}/encodings/cp1258.py | 0 {Lib => pylib/Lib}/encodings/cp273.py | 0 {Lib => pylib/Lib}/encodings/cp424.py | 0 {Lib => pylib/Lib}/encodings/cp437.py | 0 {Lib => pylib/Lib}/encodings/cp500.py | 0 {Lib => pylib/Lib}/encodings/cp720.py | 0 {Lib => pylib/Lib}/encodings/cp737.py | 0 {Lib => pylib/Lib}/encodings/cp775.py | 0 {Lib => pylib/Lib}/encodings/cp850.py | 0 {Lib => pylib/Lib}/encodings/cp852.py | 0 {Lib => pylib/Lib}/encodings/cp855.py | 0 {Lib => pylib/Lib}/encodings/cp856.py | 0 {Lib => pylib/Lib}/encodings/cp857.py | 0 {Lib => pylib/Lib}/encodings/cp858.py | 0 {Lib => pylib/Lib}/encodings/cp860.py | 0 {Lib => pylib/Lib}/encodings/cp861.py | 0 {Lib => pylib/Lib}/encodings/cp862.py | 0 {Lib => pylib/Lib}/encodings/cp863.py | 0 {Lib => pylib/Lib}/encodings/cp864.py | 0 {Lib => pylib/Lib}/encodings/cp865.py | 0 {Lib => pylib/Lib}/encodings/cp866.py | 0 {Lib => pylib/Lib}/encodings/cp869.py | 0 {Lib => pylib/Lib}/encodings/cp874.py | 0 {Lib => pylib/Lib}/encodings/cp875.py | 0 {Lib => pylib/Lib}/encodings/cp932.py | 0 {Lib => pylib/Lib}/encodings/cp949.py | 0 {Lib => pylib/Lib}/encodings/cp950.py | 0 {Lib => pylib/Lib}/encodings/euc_jis_2004.py | 0 {Lib => pylib/Lib}/encodings/euc_jisx0213.py | 0 {Lib => pylib/Lib}/encodings/euc_jp.py | 0 {Lib => pylib/Lib}/encodings/euc_kr.py | 0 {Lib => pylib/Lib}/encodings/gb18030.py | 0 {Lib => pylib/Lib}/encodings/gb2312.py | 0 {Lib => pylib/Lib}/encodings/gbk.py | 0 {Lib => pylib/Lib}/encodings/hex_codec.py | 0 {Lib => pylib/Lib}/encodings/hp_roman8.py | 0 {Lib => pylib/Lib}/encodings/hz.py | 0 {Lib => pylib/Lib}/encodings/idna.py | 0 {Lib => pylib/Lib}/encodings/iso2022_jp.py | 0 {Lib => pylib/Lib}/encodings/iso2022_jp_1.py | 0 {Lib => pylib/Lib}/encodings/iso2022_jp_2.py | 0 {Lib => pylib/Lib}/encodings/iso2022_jp_2004.py | 0 {Lib => pylib/Lib}/encodings/iso2022_jp_3.py | 0 {Lib => pylib/Lib}/encodings/iso2022_jp_ext.py | 0 {Lib => pylib/Lib}/encodings/iso2022_kr.py | 0 {Lib => pylib/Lib}/encodings/iso8859_1.py | 0 {Lib => pylib/Lib}/encodings/iso8859_10.py | 0 {Lib => pylib/Lib}/encodings/iso8859_11.py | 0 {Lib => pylib/Lib}/encodings/iso8859_13.py | 0 {Lib => pylib/Lib}/encodings/iso8859_14.py | 0 {Lib => pylib/Lib}/encodings/iso8859_15.py | 0 {Lib => pylib/Lib}/encodings/iso8859_16.py | 0 {Lib => pylib/Lib}/encodings/iso8859_2.py | 0 {Lib => pylib/Lib}/encodings/iso8859_3.py | 0 {Lib => pylib/Lib}/encodings/iso8859_4.py | 0 {Lib => pylib/Lib}/encodings/iso8859_5.py | 0 {Lib => pylib/Lib}/encodings/iso8859_6.py | 0 {Lib => pylib/Lib}/encodings/iso8859_7.py | 0 {Lib => pylib/Lib}/encodings/iso8859_8.py | 0 {Lib => pylib/Lib}/encodings/iso8859_9.py | 0 {Lib => pylib/Lib}/encodings/johab.py | 0 {Lib => pylib/Lib}/encodings/koi8_r.py | 0 {Lib => pylib/Lib}/encodings/koi8_t.py | 0 {Lib => pylib/Lib}/encodings/koi8_u.py | 0 {Lib => pylib/Lib}/encodings/kz1048.py | 0 {Lib => pylib/Lib}/encodings/latin_1.py | 0 {Lib => pylib/Lib}/encodings/mac_arabic.py | 0 {Lib => pylib/Lib}/encodings/mac_croatian.py | 0 {Lib => pylib/Lib}/encodings/mac_cyrillic.py | 0 {Lib => pylib/Lib}/encodings/mac_farsi.py | 0 {Lib => pylib/Lib}/encodings/mac_greek.py | 0 {Lib => pylib/Lib}/encodings/mac_iceland.py | 0 {Lib => pylib/Lib}/encodings/mac_latin2.py | 0 {Lib => pylib/Lib}/encodings/mac_roman.py | 0 {Lib => pylib/Lib}/encodings/mac_romanian.py | 0 {Lib => pylib/Lib}/encodings/mac_turkish.py | 0 {Lib => pylib/Lib}/encodings/mbcs.py | 0 {Lib => pylib/Lib}/encodings/oem.py | 0 {Lib => pylib/Lib}/encodings/palmos.py | 0 {Lib => pylib/Lib}/encodings/ptcp154.py | 0 {Lib => pylib/Lib}/encodings/punycode.py | 0 {Lib => pylib/Lib}/encodings/quopri_codec.py | 0 {Lib => pylib/Lib}/encodings/raw_unicode_escape.py | 0 {Lib => pylib/Lib}/encodings/rot_13.py | 0 {Lib => pylib/Lib}/encodings/shift_jis.py | 0 {Lib => pylib/Lib}/encodings/shift_jis_2004.py | 0 {Lib => pylib/Lib}/encodings/shift_jisx0213.py | 0 {Lib => pylib/Lib}/encodings/tis_620.py | 0 {Lib => pylib/Lib}/encodings/undefined.py | 0 {Lib => pylib/Lib}/encodings/unicode_escape.py | 0 {Lib => pylib/Lib}/encodings/utf_16.py | 0 {Lib => pylib/Lib}/encodings/utf_16_be.py | 0 {Lib => pylib/Lib}/encodings/utf_16_le.py | 0 {Lib => pylib/Lib}/encodings/utf_32.py | 0 {Lib => pylib/Lib}/encodings/utf_32_be.py | 0 {Lib => pylib/Lib}/encodings/utf_32_le.py | 0 {Lib => pylib/Lib}/encodings/utf_7.py | 0 {Lib => pylib/Lib}/encodings/utf_8.py | 0 {Lib => pylib/Lib}/encodings/utf_8_sig.py | 0 {Lib => pylib/Lib}/encodings/uu_codec.py | 0 {Lib => pylib/Lib}/encodings/zlib_codec.py | 0 {Lib => pylib/Lib}/ensurepip/__init__.py | 0 {Lib => pylib/Lib}/ensurepip/__main__.py | 0 .../ensurepip/_bundled/pip-23.2.1-py3-none-any.whl | Bin {Lib => pylib/Lib}/ensurepip/_uninstall.py | 0 {Lib => pylib/Lib}/enum.py | 0 {Lib => pylib/Lib}/filecmp.py | 0 {Lib => pylib/Lib}/fileinput.py | 0 {Lib => pylib/Lib}/fnmatch.py | 0 {Lib => pylib/Lib}/fractions.py | 0 {Lib => pylib/Lib}/ftplib.py | 0 {Lib => pylib/Lib}/functools.py | 0 {Lib => pylib/Lib}/genericpath.py | 0 {Lib => pylib/Lib}/getopt.py | 0 {Lib => pylib/Lib}/getpass.py | 0 {Lib => pylib/Lib}/gettext.py | 0 {Lib => pylib/Lib}/glob.py | 0 {Lib => pylib/Lib}/graphlib.py | 0 {Lib => pylib/Lib}/gzip.py | 0 {Lib => pylib/Lib}/hashlib.py | 0 {Lib => pylib/Lib}/heapq.py | 0 {Lib => pylib/Lib}/hmac.py | 0 {Lib => pylib/Lib}/html/__init__.py | 0 {Lib => pylib/Lib}/html/entities.py | 0 {Lib => pylib/Lib}/html/parser.py | 0 {Lib => pylib/Lib}/http/__init__.py | 0 {Lib => pylib/Lib}/http/client.py | 0 {Lib => pylib/Lib}/http/cookiejar.py | 0 {Lib => pylib/Lib}/http/cookies.py | 0 {Lib => pylib/Lib}/http/server.py | 0 {Lib => pylib/Lib}/importlib/__init__.py | 0 {Lib => pylib/Lib}/importlib/_abc.py | 0 {Lib => pylib/Lib}/importlib/_bootstrap.py | 0 {Lib => pylib/Lib}/importlib/_bootstrap_external.py | 0 {Lib => pylib/Lib}/importlib/abc.py | 0 {Lib => pylib/Lib}/importlib/machinery.py | 0 {Lib => pylib/Lib}/importlib/metadata/__init__.py | 0 {Lib => pylib/Lib}/importlib/metadata/_adapters.py | 0 .../Lib}/importlib/metadata/_collections.py | 0 {Lib => pylib/Lib}/importlib/metadata/_functools.py | 0 {Lib => pylib/Lib}/importlib/metadata/_itertools.py | 0 {Lib => pylib/Lib}/importlib/metadata/_meta.py | 0 {Lib => pylib/Lib}/importlib/metadata/_text.py | 0 {Lib => pylib/Lib}/importlib/readers.py | 0 {Lib => pylib/Lib}/importlib/resources/__init__.py | 0 {Lib => pylib/Lib}/importlib/resources/_adapters.py | 0 {Lib => pylib/Lib}/importlib/resources/_common.py | 0 .../Lib}/importlib/resources/_itertools.py | 0 {Lib => pylib/Lib}/importlib/resources/_legacy.py | 0 {Lib => pylib/Lib}/importlib/resources/abc.py | 0 {Lib => pylib/Lib}/importlib/resources/readers.py | 0 {Lib => pylib/Lib}/importlib/resources/simple.py | 0 {Lib => pylib/Lib}/importlib/simple.py | 0 {Lib => pylib/Lib}/importlib/util.py | 0 {Lib => pylib/Lib}/inspect.py | 0 {Lib => pylib/Lib}/io.py | 0 {Lib => pylib/Lib}/ipaddress.py | 0 {Lib => pylib/Lib}/json/__init__.py | 0 {Lib => pylib/Lib}/json/decoder.py | 0 {Lib => pylib/Lib}/json/encoder.py | 0 {Lib => pylib/Lib}/json/scanner.py | 0 {Lib => pylib/Lib}/json/tool.py | 0 {Lib => pylib/Lib}/keyword.py | 0 {Lib => pylib/Lib}/linecache.py | 0 {Lib => pylib/Lib}/locale.py | 0 {Lib => pylib/Lib}/logging/__init__.py | 0 {Lib => pylib/Lib}/logging/config.py | 0 {Lib => pylib/Lib}/logging/handlers.py | 0 {Lib => pylib/Lib}/mailbox.py | 0 {Lib => pylib/Lib}/mimetypes.py | 0 {Lib => pylib/Lib}/multiprocessing/__init__.py | 0 {Lib => pylib/Lib}/multiprocessing/connection.py | 0 {Lib => pylib/Lib}/multiprocessing/context.py | 0 .../Lib}/multiprocessing/dummy/__init__.py | 0 .../Lib}/multiprocessing/dummy/connection.py | 0 {Lib => pylib/Lib}/multiprocessing/forkserver.py | 0 {Lib => pylib/Lib}/multiprocessing/heap.py | 0 {Lib => pylib/Lib}/multiprocessing/managers.py | 0 {Lib => pylib/Lib}/multiprocessing/pool.py | 0 {Lib => pylib/Lib}/multiprocessing/popen_fork.py | 0 .../Lib}/multiprocessing/popen_forkserver.py | 0 .../Lib}/multiprocessing/popen_spawn_posix.py | 0 .../Lib}/multiprocessing/popen_spawn_win32.py | 0 {Lib => pylib/Lib}/multiprocessing/process.py | 0 {Lib => pylib/Lib}/multiprocessing/queues.py | 0 {Lib => pylib/Lib}/multiprocessing/reduction.py | 0 .../Lib}/multiprocessing/resource_sharer.py | 0 .../Lib}/multiprocessing/resource_tracker.py | 0 {Lib => pylib/Lib}/multiprocessing/shared_memory.py | 0 {Lib => pylib/Lib}/multiprocessing/sharedctypes.py | 0 {Lib => pylib/Lib}/multiprocessing/spawn.py | 0 {Lib => pylib/Lib}/multiprocessing/synchronize.py | 0 {Lib => pylib/Lib}/multiprocessing/util.py | 0 {Lib => pylib/Lib}/netrc.py | 0 {Lib => pylib/Lib}/ntpath.py | 0 {Lib => pylib/Lib}/nturl2path.py | 0 {Lib => pylib/Lib}/numbers.py | 0 {Lib => pylib/Lib}/opcode.py | 0 {Lib => pylib/Lib}/operator.py | 0 {Lib => pylib/Lib}/optparse.py | 0 {Lib => pylib/Lib}/os.py | 0 {Lib => pylib/Lib}/pathlib.py | 0 {Lib => pylib/Lib}/pdb.py | 0 {Lib => pylib/Lib}/pickle.py | 0 {Lib => pylib/Lib}/pickletools.py | 0 {Lib => pylib/Lib}/pkgutil.py | 0 {Lib => pylib/Lib}/platform.py | 0 {Lib => pylib/Lib}/plistlib.py | 0 {Lib => pylib/Lib}/posixpath.py | 0 {Lib => pylib/Lib}/pprint.py | 0 {Lib => pylib/Lib}/pty.py | 0 {Lib => pylib/Lib}/py_compile.py | 0 {Lib => pylib/Lib}/pydoc.py | 0 {Lib => pylib/Lib}/pydoc_data/__init__.py | 0 {Lib => pylib/Lib}/pydoc_data/_pydoc.css | 0 {Lib => pylib/Lib}/pydoc_data/topics.py | 0 {Lib => pylib/Lib}/queue.py | 0 {Lib => pylib/Lib}/quopri.py | 0 {Lib => pylib/Lib}/random.py | 0 {Lib => pylib/Lib}/re/__init__.py | 0 {Lib => pylib/Lib}/re/_casefix.py | 0 {Lib => pylib/Lib}/re/_compiler.py | 0 {Lib => pylib/Lib}/re/_constants.py | 0 {Lib => pylib/Lib}/re/_parser.py | 0 {Lib => pylib/Lib}/reprlib.py | 0 {Lib => pylib/Lib}/rlcompleter.py | 0 {Lib => pylib/Lib}/runpy.py | 0 {Lib => pylib/Lib}/sched.py | 0 {Lib => pylib/Lib}/secrets.py | 0 {Lib => pylib/Lib}/selectors.py | 0 {Lib => pylib/Lib}/shelve.py | 0 {Lib => pylib/Lib}/shlex.py | 0 {Lib => pylib/Lib}/shutil.py | 0 {Lib => pylib/Lib}/signal.py | 0 {Lib => pylib/Lib}/site.py | 0 {Lib => pylib/Lib}/smtplib.py | 0 {Lib => pylib/Lib}/socket.py | 0 {Lib => pylib/Lib}/socketserver.py | 0 {Lib => pylib/Lib}/sqlite3/__init__.py | 0 {Lib => pylib/Lib}/sqlite3/__main__.py | 0 {Lib => pylib/Lib}/sqlite3/dbapi2.py | 0 {Lib => pylib/Lib}/sqlite3/dump.py | 0 {Lib => pylib/Lib}/sre_compile.py | 0 {Lib => pylib/Lib}/sre_constants.py | 0 {Lib => pylib/Lib}/sre_parse.py | 0 {Lib => pylib/Lib}/ssl.py | 0 {Lib => pylib/Lib}/stat.py | 0 {Lib => pylib/Lib}/statistics.py | 0 {Lib => pylib/Lib}/string.py | 0 {Lib => pylib/Lib}/stringprep.py | 0 {Lib => pylib/Lib}/struct.py | 0 {Lib => pylib/Lib}/subprocess.py | 0 {Lib => pylib/Lib}/sysconfig.py | 0 {Lib => pylib/Lib}/tabnanny.py | 0 {Lib => pylib/Lib}/tarfile.py | 0 {Lib => pylib/Lib}/tempfile.py | 0 {Lib => pylib/Lib}/test/__init__.py | 0 {Lib => pylib/Lib}/test/__main__.py | 0 {Lib => pylib/Lib}/test/_test_atexit.py | 0 {Lib => pylib/Lib}/test/_test_multiprocessing.py | 0 {Lib => pylib/Lib}/test/_typed_dict_helper.py | 0 {Lib => pylib/Lib}/test/ann_module.py | 0 {Lib => pylib/Lib}/test/ann_module2.py | 0 {Lib => pylib/Lib}/test/ann_module3.py | 0 {Lib => pylib/Lib}/test/ann_module4.py | 0 {Lib => pylib/Lib}/test/ann_module5.py | 0 {Lib => pylib/Lib}/test/ann_module6.py | 0 {Lib => pylib/Lib}/test/ann_module7.py | 0 {Lib => pylib/Lib}/test/audiodata/pluck-alaw.aifc | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm16.aiff | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm16.au | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm16.wav | Bin .../Lib}/test/audiodata/pluck-pcm24-ext.wav | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm24.aiff | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm24.au | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm24.wav | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm32.aiff | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm32.au | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm32.wav | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm8.aiff | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm8.au | Bin {Lib => pylib/Lib}/test/audiodata/pluck-pcm8.wav | Bin {Lib => pylib/Lib}/test/audiodata/pluck-ulaw.aifc | Bin {Lib => pylib/Lib}/test/audiodata/pluck-ulaw.au | Bin {Lib => pylib/Lib}/test/audiotest.au | Bin {Lib => pylib/Lib}/test/audiotests.py | 0 {Lib => pylib/Lib}/test/badsyntax_3131.py | 0 {Lib => pylib/Lib}/test/badsyntax_pep3120.py | 0 {Lib => pylib/Lib}/test/cfgparser.1 | 0 {Lib => pylib/Lib}/test/cfgparser.2 | 0 {Lib => pylib/Lib}/test/cfgparser.3 | 0 {Lib => pylib/Lib}/test/dataclass_module_1.py | 0 {Lib => pylib/Lib}/test/dataclass_module_1_str.py | 0 {Lib => pylib/Lib}/test/dataclass_module_2.py | 0 {Lib => pylib/Lib}/test/dataclass_module_2_str.py | 0 {Lib => pylib/Lib}/test/dataclass_textanno.py | 0 {Lib => pylib/Lib}/test/datetimetester.py | 0 {Lib => pylib/Lib}/test/decimaltestdata/abs.decTest | 0 {Lib => pylib/Lib}/test/decimaltestdata/add.decTest | 0 {Lib => pylib/Lib}/test/decimaltestdata/and.decTest | 0 .../Lib}/test/decimaltestdata/base.decTest | 0 .../Lib}/test/decimaltestdata/clamp.decTest | 0 .../Lib}/test/decimaltestdata/class.decTest | 0 .../Lib}/test/decimaltestdata/compare.decTest | 0 .../Lib}/test/decimaltestdata/comparetotal.decTest | 0 .../Lib}/test/decimaltestdata/comparetotmag.decTest | 0 .../Lib}/test/decimaltestdata/copy.decTest | 0 .../Lib}/test/decimaltestdata/copyabs.decTest | 0 .../Lib}/test/decimaltestdata/copynegate.decTest | 0 .../Lib}/test/decimaltestdata/copysign.decTest | 0 .../Lib}/test/decimaltestdata/ddAbs.decTest | 0 .../Lib}/test/decimaltestdata/ddAdd.decTest | 0 .../Lib}/test/decimaltestdata/ddAnd.decTest | 0 .../Lib}/test/decimaltestdata/ddBase.decTest | 0 .../Lib}/test/decimaltestdata/ddCanonical.decTest | 0 .../Lib}/test/decimaltestdata/ddClass.decTest | 0 .../Lib}/test/decimaltestdata/ddCompare.decTest | 0 .../Lib}/test/decimaltestdata/ddCompareSig.decTest | 0 .../test/decimaltestdata/ddCompareTotal.decTest | 0 .../test/decimaltestdata/ddCompareTotalMag.decTest | 0 .../Lib}/test/decimaltestdata/ddCopy.decTest | 0 .../Lib}/test/decimaltestdata/ddCopyAbs.decTest | 0 .../Lib}/test/decimaltestdata/ddCopyNegate.decTest | 0 .../Lib}/test/decimaltestdata/ddCopySign.decTest | 0 .../Lib}/test/decimaltestdata/ddDivide.decTest | 0 .../Lib}/test/decimaltestdata/ddDivideInt.decTest | 0 .../Lib}/test/decimaltestdata/ddEncode.decTest | 0 .../Lib}/test/decimaltestdata/ddFMA.decTest | 0 .../Lib}/test/decimaltestdata/ddInvert.decTest | 0 .../Lib}/test/decimaltestdata/ddLogB.decTest | 0 .../Lib}/test/decimaltestdata/ddMax.decTest | 0 .../Lib}/test/decimaltestdata/ddMaxMag.decTest | 0 .../Lib}/test/decimaltestdata/ddMin.decTest | 0 .../Lib}/test/decimaltestdata/ddMinMag.decTest | 0 .../Lib}/test/decimaltestdata/ddMinus.decTest | 0 .../Lib}/test/decimaltestdata/ddMultiply.decTest | 0 .../Lib}/test/decimaltestdata/ddNextMinus.decTest | 0 .../Lib}/test/decimaltestdata/ddNextPlus.decTest | 0 .../Lib}/test/decimaltestdata/ddNextToward.decTest | 0 .../Lib}/test/decimaltestdata/ddOr.decTest | 0 .../Lib}/test/decimaltestdata/ddPlus.decTest | 0 .../Lib}/test/decimaltestdata/ddQuantize.decTest | 0 .../Lib}/test/decimaltestdata/ddReduce.decTest | 0 .../Lib}/test/decimaltestdata/ddRemainder.decTest | 0 .../test/decimaltestdata/ddRemainderNear.decTest | 0 .../Lib}/test/decimaltestdata/ddRotate.decTest | 0 .../Lib}/test/decimaltestdata/ddSameQuantum.decTest | 0 .../Lib}/test/decimaltestdata/ddScaleB.decTest | 0 .../Lib}/test/decimaltestdata/ddShift.decTest | 0 .../Lib}/test/decimaltestdata/ddSubtract.decTest | 0 .../Lib}/test/decimaltestdata/ddToIntegral.decTest | 0 .../Lib}/test/decimaltestdata/ddXor.decTest | 0 .../Lib}/test/decimaltestdata/decDouble.decTest | 0 .../Lib}/test/decimaltestdata/decQuad.decTest | 0 .../Lib}/test/decimaltestdata/decSingle.decTest | 0 .../Lib}/test/decimaltestdata/divide.decTest | 0 .../Lib}/test/decimaltestdata/divideint.decTest | 0 .../Lib}/test/decimaltestdata/dqAbs.decTest | 0 .../Lib}/test/decimaltestdata/dqAdd.decTest | 0 .../Lib}/test/decimaltestdata/dqAnd.decTest | 0 .../Lib}/test/decimaltestdata/dqBase.decTest | 0 .../Lib}/test/decimaltestdata/dqCanonical.decTest | 0 .../Lib}/test/decimaltestdata/dqClass.decTest | 0 .../Lib}/test/decimaltestdata/dqCompare.decTest | 0 .../Lib}/test/decimaltestdata/dqCompareSig.decTest | 0 .../test/decimaltestdata/dqCompareTotal.decTest | 0 .../test/decimaltestdata/dqCompareTotalMag.decTest | 0 .../Lib}/test/decimaltestdata/dqCopy.decTest | 0 .../Lib}/test/decimaltestdata/dqCopyAbs.decTest | 0 .../Lib}/test/decimaltestdata/dqCopyNegate.decTest | 0 .../Lib}/test/decimaltestdata/dqCopySign.decTest | 0 .../Lib}/test/decimaltestdata/dqDivide.decTest | 0 .../Lib}/test/decimaltestdata/dqDivideInt.decTest | 0 .../Lib}/test/decimaltestdata/dqEncode.decTest | 0 .../Lib}/test/decimaltestdata/dqFMA.decTest | 0 .../Lib}/test/decimaltestdata/dqInvert.decTest | 0 .../Lib}/test/decimaltestdata/dqLogB.decTest | 0 .../Lib}/test/decimaltestdata/dqMax.decTest | 0 .../Lib}/test/decimaltestdata/dqMaxMag.decTest | 0 .../Lib}/test/decimaltestdata/dqMin.decTest | 0 .../Lib}/test/decimaltestdata/dqMinMag.decTest | 0 .../Lib}/test/decimaltestdata/dqMinus.decTest | 0 .../Lib}/test/decimaltestdata/dqMultiply.decTest | 0 .../Lib}/test/decimaltestdata/dqNextMinus.decTest | 0 .../Lib}/test/decimaltestdata/dqNextPlus.decTest | 0 .../Lib}/test/decimaltestdata/dqNextToward.decTest | 0 .../Lib}/test/decimaltestdata/dqOr.decTest | 0 .../Lib}/test/decimaltestdata/dqPlus.decTest | 0 .../Lib}/test/decimaltestdata/dqQuantize.decTest | 0 .../Lib}/test/decimaltestdata/dqReduce.decTest | 0 .../Lib}/test/decimaltestdata/dqRemainder.decTest | 0 .../test/decimaltestdata/dqRemainderNear.decTest | 0 .../Lib}/test/decimaltestdata/dqRotate.decTest | 0 .../Lib}/test/decimaltestdata/dqSameQuantum.decTest | 0 .../Lib}/test/decimaltestdata/dqScaleB.decTest | 0 .../Lib}/test/decimaltestdata/dqShift.decTest | 0 .../Lib}/test/decimaltestdata/dqSubtract.decTest | 0 .../Lib}/test/decimaltestdata/dqToIntegral.decTest | 0 .../Lib}/test/decimaltestdata/dqXor.decTest | 0 .../Lib}/test/decimaltestdata/dsBase.decTest | 0 .../Lib}/test/decimaltestdata/dsEncode.decTest | 0 {Lib => pylib/Lib}/test/decimaltestdata/exp.decTest | 0 .../Lib}/test/decimaltestdata/extra.decTest | 0 {Lib => pylib/Lib}/test/decimaltestdata/fma.decTest | 0 .../Lib}/test/decimaltestdata/inexact.decTest | 0 .../Lib}/test/decimaltestdata/invert.decTest | 0 {Lib => pylib/Lib}/test/decimaltestdata/ln.decTest | 0 .../Lib}/test/decimaltestdata/log10.decTest | 0 .../Lib}/test/decimaltestdata/logb.decTest | 0 {Lib => pylib/Lib}/test/decimaltestdata/max.decTest | 0 .../Lib}/test/decimaltestdata/maxmag.decTest | 0 {Lib => pylib/Lib}/test/decimaltestdata/min.decTest | 0 .../Lib}/test/decimaltestdata/minmag.decTest | 0 .../Lib}/test/decimaltestdata/minus.decTest | 0 .../Lib}/test/decimaltestdata/multiply.decTest | 0 .../Lib}/test/decimaltestdata/nextminus.decTest | 0 .../Lib}/test/decimaltestdata/nextplus.decTest | 0 .../Lib}/test/decimaltestdata/nexttoward.decTest | 0 {Lib => pylib/Lib}/test/decimaltestdata/or.decTest | 0 .../Lib}/test/decimaltestdata/plus.decTest | 0 .../Lib}/test/decimaltestdata/power.decTest | 0 .../Lib}/test/decimaltestdata/powersqrt.decTest | 0 .../Lib}/test/decimaltestdata/quantize.decTest | 0 .../Lib}/test/decimaltestdata/randomBound32.decTest | 0 .../Lib}/test/decimaltestdata/randoms.decTest | 0 .../Lib}/test/decimaltestdata/reduce.decTest | 0 .../Lib}/test/decimaltestdata/remainder.decTest | 0 .../Lib}/test/decimaltestdata/remainderNear.decTest | 0 .../Lib}/test/decimaltestdata/rescale.decTest | 0 .../Lib}/test/decimaltestdata/rotate.decTest | 0 .../Lib}/test/decimaltestdata/rounding.decTest | 0 .../Lib}/test/decimaltestdata/samequantum.decTest | 0 .../Lib}/test/decimaltestdata/scaleb.decTest | 0 .../Lib}/test/decimaltestdata/shift.decTest | 0 .../Lib}/test/decimaltestdata/squareroot.decTest | 0 .../Lib}/test/decimaltestdata/subtract.decTest | 0 .../Lib}/test/decimaltestdata/testall.decTest | 0 .../Lib}/test/decimaltestdata/tointegral.decTest | 0 .../Lib}/test/decimaltestdata/tointegralx.decTest | 0 {Lib => pylib/Lib}/test/decimaltestdata/xor.decTest | 0 {Lib => pylib/Lib}/test/double_const.py | 0 {Lib => pylib/Lib}/test/encoded_modules/__init__.py | 0 .../Lib}/test/encoded_modules/module_iso_8859_1.py | 0 .../Lib}/test/encoded_modules/module_koi8_r.py | 0 {Lib => pylib/Lib}/test/exception_hierarchy.txt | 0 {Lib => pylib/Lib}/test/floating_points.txt | 0 {Lib => pylib/Lib}/test/formatfloat_testcases.txt | 0 {Lib => pylib/Lib}/test/keycert.passwd.pem | 0 {Lib => pylib/Lib}/test/keycert.pem | 0 {Lib => pylib/Lib}/test/keycert2.pem | 0 {Lib => pylib/Lib}/test/keycert3.pem | 0 {Lib => pylib/Lib}/test/keycert4.pem | 0 {Lib => pylib/Lib}/test/keycertecc.pem | 0 {Lib => pylib/Lib}/test/libregrtest/__init__.py | 0 {Lib => pylib/Lib}/test/libregrtest/cmdline.py | 0 {Lib => pylib/Lib}/test/libregrtest/main.py | 0 {Lib => pylib/Lib}/test/libregrtest/refleak.py | 0 {Lib => pylib/Lib}/test/libregrtest/runtest.py | 0 {Lib => pylib/Lib}/test/libregrtest/runtest_mp.py | 0 {Lib => pylib/Lib}/test/libregrtest/save_env.py | 0 {Lib => pylib/Lib}/test/libregrtest/setup.py | 0 {Lib => pylib/Lib}/test/libregrtest/utils.py | 0 {Lib => pylib/Lib}/test/libregrtest/win_utils.py | 0 {Lib => pylib/Lib}/test/list_tests.py | 0 {Lib => pylib/Lib}/test/lock_tests.py | 0 {Lib => pylib/Lib}/test/mapping_tests.py | 0 .../Lib}/test/mathdata/cmath_testcases.txt | 0 {Lib => pylib/Lib}/test/mathdata/ieee754.txt | 0 {Lib => pylib/Lib}/test/mathdata/math_testcases.txt | 0 {Lib => pylib/Lib}/test/mime.types | 0 {Lib => pylib/Lib}/test/mock_socket.py | 0 {Lib => pylib/Lib}/test/mod_generics_cache.py | 0 {Lib => pylib/Lib}/test/pickletester.py | 0 {Lib => pylib/Lib}/test/randv2_32.pck | 0 {Lib => pylib/Lib}/test/randv2_64.pck | 0 {Lib => pylib/Lib}/test/randv3.pck | 0 {Lib => pylib/Lib}/test/re_tests.py | 0 {Lib => pylib/Lib}/test/recursion.tar | Bin {Lib => pylib/Lib}/test/regrtest.py | 0 {Lib => pylib/Lib}/test/relimport.py | 0 {Lib => pylib/Lib}/test/seq_tests.py | 0 {Lib => pylib/Lib}/test/signalinterproctester.py | 0 {Lib => pylib/Lib}/test/ssl_servers.py | 0 {Lib => pylib/Lib}/test/string_tests.py | 0 {Lib => pylib/Lib}/test/subprocessdata/fd_status.py | 0 .../Lib}/test/subprocessdata/input_reader.py | 0 {Lib => pylib/Lib}/test/subprocessdata/qcat.py | 0 {Lib => pylib/Lib}/test/subprocessdata/qgrep.py | 0 .../Lib}/test/subprocessdata/sigchild_ignore.py | 0 {Lib => pylib/Lib}/test/support/__init__.py | 0 .../Lib}/test/support/_hypothesis_stubs/__init__.py | 0 .../Lib}/test/support/_hypothesis_stubs/_helpers.py | 0 .../test/support/_hypothesis_stubs/strategies.py | 0 {Lib => pylib/Lib}/test/support/ast_helper.py | 0 {Lib => pylib/Lib}/test/support/asynchat.py | 0 {Lib => pylib/Lib}/test/support/asyncore.py | 0 {Lib => pylib/Lib}/test/support/bytecode_helper.py | 0 {Lib => pylib/Lib}/test/support/hashlib_helper.py | 0 .../Lib}/test/support/hypothesis_helper.py | 0 {Lib => pylib/Lib}/test/support/import_helper.py | 0 {Lib => pylib/Lib}/test/support/interpreters.py | 0 {Lib => pylib/Lib}/test/support/logging_helper.py | 0 {Lib => pylib/Lib}/test/support/os_helper.py | 0 {Lib => pylib/Lib}/test/support/script_helper.py | 0 {Lib => pylib/Lib}/test/support/smtpd.py | 0 {Lib => pylib/Lib}/test/support/socket_helper.py | 0 {Lib => pylib/Lib}/test/support/testcase.py | 0 {Lib => pylib/Lib}/test/support/testresult.py | 0 {Lib => pylib/Lib}/test/support/threading_helper.py | 0 {Lib => pylib/Lib}/test/support/warnings_helper.py | 0 {Lib => pylib/Lib}/test/test___all__.py | 0 {Lib => pylib/Lib}/test/test__colorize.py | 0 {Lib => pylib/Lib}/test/test__osx_support.py | 0 {Lib => pylib/Lib}/test/test_abc.py | 0 {Lib => pylib/Lib}/test/test_abstract_numbers.py | 0 {Lib => pylib/Lib}/test/test_android.py | 0 {Lib => pylib/Lib}/test/test_argparse.py | 0 {Lib => pylib/Lib}/test/test_array.py | 0 {Lib => pylib/Lib}/test/test_ast.py | 0 {Lib => pylib/Lib}/test/test_asyncgen.py | 0 {Lib => pylib/Lib}/test/test_atexit.py | 0 {Lib => pylib/Lib}/test/test_audit.py | 0 {Lib => pylib/Lib}/test/test_augassign.py | 0 {Lib => pylib/Lib}/test/test_base64.py | 0 {Lib => pylib/Lib}/test/test_baseexception.py | 0 {Lib => pylib/Lib}/test/test_bdb.py | 0 {Lib => pylib/Lib}/test/test_bigaddrspace.py | 0 {Lib => pylib/Lib}/test/test_bigmem.py | 0 {Lib => pylib/Lib}/test/test_binascii.py | 0 {Lib => pylib/Lib}/test/test_binop.py | 0 {Lib => pylib/Lib}/test/test_bisect.py | 0 {Lib => pylib/Lib}/test/test_bool.py | 0 {Lib => pylib/Lib}/test/test_buffer.py | 0 {Lib => pylib/Lib}/test/test_bufio.py | 0 {Lib => pylib/Lib}/test/test_builtin.py | 0 {Lib => pylib/Lib}/test/test_bytes.py | 0 {Lib => pylib/Lib}/test/test_bz2.py | 0 {Lib => pylib/Lib}/test/test_c_locale_coercion.py | 0 {Lib => pylib/Lib}/test/test_calendar.py | 0 {Lib => pylib/Lib}/test/test_call.py | 0 {Lib => pylib/Lib}/test/test_charmapcodec.py | 0 {Lib => pylib/Lib}/test/test_class.py | 0 {Lib => pylib/Lib}/test/test_cmath.py | 0 {Lib => pylib/Lib}/test/test_cmd.py | 0 {Lib => pylib/Lib}/test/test_cmd_line.py | 0 {Lib => pylib/Lib}/test/test_cmd_line_script.py | 0 {Lib => pylib/Lib}/test/test_code.py | 0 {Lib => pylib/Lib}/test/test_code_module.py | 0 {Lib => pylib/Lib}/test/test_codeccallbacks.py | 0 {Lib => pylib/Lib}/test/test_codecs.py | 0 {Lib => pylib/Lib}/test/test_codeop.py | 0 {Lib => pylib/Lib}/test/test_collections.py | 0 {Lib => pylib/Lib}/test/test_colorsys.py | 0 {Lib => pylib/Lib}/test/test_compare.py | 0 {Lib => pylib/Lib}/test/test_compile.py | 0 {Lib => pylib/Lib}/test/test_complex.py | 0 {Lib => pylib/Lib}/test/test_configparser.py | 0 {Lib => pylib/Lib}/test/test_contains.py | 0 {Lib => pylib/Lib}/test/test_context.py | 0 {Lib => pylib/Lib}/test/test_contextlib.py | 0 {Lib => pylib/Lib}/test/test_copy.py | 0 {Lib => pylib/Lib}/test/test_copyreg.py | 0 {Lib => pylib/Lib}/test/test_csv.py | 0 {Lib => pylib/Lib}/test/test_ctypes.py | 0 {Lib => pylib/Lib}/test/test_dataclasses.py | 0 {Lib => pylib/Lib}/test/test_datetime.py | 0 {Lib => pylib/Lib}/test/test_dbm.py | 0 {Lib => pylib/Lib}/test/test_dbm_dumb.py | 0 {Lib => pylib/Lib}/test/test_decimal.py | 0 {Lib => pylib/Lib}/test/test_decorators.py | 0 {Lib => pylib/Lib}/test/test_defaultdict.py | 0 {Lib => pylib/Lib}/test/test_deque.py | 0 {Lib => pylib/Lib}/test/test_descr.py | 0 {Lib => pylib/Lib}/test/test_descrtut.py | 0 {Lib => pylib/Lib}/test/test_devpoll.py | 0 {Lib => pylib/Lib}/test/test_dict.py | 0 {Lib => pylib/Lib}/test/test_dictcomps.py | 0 {Lib => pylib/Lib}/test/test_dictviews.py | 0 {Lib => pylib/Lib}/test/test_difflib.py | 0 {Lib => pylib/Lib}/test/test_difflib_expect.html | 0 {Lib => pylib/Lib}/test/test_dis.py | 0 {Lib => pylib/Lib}/test/test_doctest2.py | 0 {Lib => pylib/Lib}/test/test_docxmlrpc.py | 0 {Lib => pylib/Lib}/test/test_dtrace.py | 0 {Lib => pylib/Lib}/test/test_dummy_thread.py | 0 {Lib => pylib/Lib}/test/test_dummy_threading.py | 0 {Lib => pylib/Lib}/test/test_dynamic.py | 0 .../Lib}/test/test_dynamicclassattribute.py | 0 {Lib => pylib/Lib}/test/test_eintr.py | 0 {Lib => pylib/Lib}/test/test_ensurepip.py | 0 {Lib => pylib/Lib}/test/test_enum.py | 0 {Lib => pylib/Lib}/test/test_enumerate.py | 0 {Lib => pylib/Lib}/test/test_eof.py | 0 {Lib => pylib/Lib}/test/test_epoll.py | 0 {Lib => pylib/Lib}/test/test_errno.py | 0 {Lib => pylib/Lib}/test/test_exception_group.py | 0 {Lib => pylib/Lib}/test/test_exception_hierarchy.py | 0 .../Lib}/test/test_exception_variations.py | 0 {Lib => pylib/Lib}/test/test_exceptions.py | 0 {Lib => pylib/Lib}/test/test_faulthandler.py | 0 {Lib => pylib/Lib}/test/test_fcntl.py | 0 {Lib => pylib/Lib}/test/test_file.py | 0 {Lib => pylib/Lib}/test/test_filecmp.py | 0 {Lib => pylib/Lib}/test/test_fileinput.py | 0 {Lib => pylib/Lib}/test/test_fileio.py | 0 {Lib => pylib/Lib}/test/test_float.py | 0 {Lib => pylib/Lib}/test/test_fnmatch.py | 0 {Lib => pylib/Lib}/test/test_format.py | 0 {Lib => pylib/Lib}/test/test_fractions.py | 0 {Lib => pylib/Lib}/test/test_fstring.py | 0 {Lib => pylib/Lib}/test/test_ftplib.py | 0 {Lib => pylib/Lib}/test/test_funcattrs.py | 0 {Lib => pylib/Lib}/test/test_functools.py | 0 .../Lib}/test/test_future_stmt/__init__.py | 0 .../test/test_future_stmt/badsyntax_future10.py | 0 .../Lib}/test/test_future_stmt/badsyntax_future3.py | 0 .../Lib}/test/test_future_stmt/badsyntax_future4.py | 0 .../Lib}/test/test_future_stmt/badsyntax_future5.py | 0 .../Lib}/test/test_future_stmt/badsyntax_future6.py | 0 .../Lib}/test/test_future_stmt/badsyntax_future7.py | 0 .../Lib}/test/test_future_stmt/badsyntax_future8.py | 0 .../Lib}/test/test_future_stmt/badsyntax_future9.py | 0 .../Lib}/test/test_future_stmt/future_test1.py | 0 .../Lib}/test/test_future_stmt/future_test2.py | 0 .../Lib}/test/test_future_stmt/test_future.py | 0 .../Lib}/test/test_future_stmt/test_future_flags.py | 0 .../test_future_multiple_features.py | 0 .../test_future_multiple_imports.py | 0 .../test_future_stmt/test_future_single_import.py | 0 {Lib => pylib/Lib}/test/test_generators.py | 0 {Lib => pylib/Lib}/test/test_genericalias.py | 0 {Lib => pylib/Lib}/test/test_genericclass.py | 0 {Lib => pylib/Lib}/test/test_genericpath.py | 0 {Lib => pylib/Lib}/test/test_getopt.py | 0 {Lib => pylib/Lib}/test/test_getpass.py | 0 {Lib => pylib/Lib}/test/test_gettext.py | 0 {Lib => pylib/Lib}/test/test_glob.py | 0 {Lib => pylib/Lib}/test/test_global.py | 0 {Lib => pylib/Lib}/test/test_grammar.py | 0 {Lib => pylib/Lib}/test/test_graphlib.py | 0 {Lib => pylib/Lib}/test/test_grp.py | 0 {Lib => pylib/Lib}/test/test_gzip.py | 0 {Lib => pylib/Lib}/test/test_hash.py | 0 {Lib => pylib/Lib}/test/test_hashlib.py | 0 {Lib => pylib/Lib}/test/test_heapq.py | 0 {Lib => pylib/Lib}/test/test_hmac.py | 0 {Lib => pylib/Lib}/test/test_html.py | 0 {Lib => pylib/Lib}/test/test_htmlparser.py | 0 {Lib => pylib/Lib}/test/test_http_cookiejar.py | 0 {Lib => pylib/Lib}/test/test_http_cookies.py | 0 {Lib => pylib/Lib}/test/test_httplib.py | 0 {Lib => pylib/Lib}/test/test_httpservers.py | 0 {Lib => pylib/Lib}/test/test_import/__init__.py | 0 {Lib => pylib/Lib}/test/test_import/__main__.py | 0 .../test/test_import/data/circular_imports/basic.py | 0 .../test_import/data/circular_imports/basic2.py | 0 .../test_import/data/circular_imports/binding.py | 0 .../test_import/data/circular_imports/binding2.py | 0 .../data/circular_imports/from_cycle1.py | 0 .../data/circular_imports/from_cycle2.py | 0 .../test_import/data/circular_imports/indirect.py | 0 .../test_import/data/circular_imports/rebinding.py | 0 .../test_import/data/circular_imports/rebinding2.py | 0 .../test_import/data/circular_imports/source.py | 0 .../test_import/data/circular_imports/subpackage.py | 0 .../data/circular_imports/subpkg/subpackage2.py | 0 .../data/circular_imports/subpkg/util.py | 0 .../data/circular_imports/subpkg2/__init__.py | 0 .../circular_imports/subpkg2/parent/__init__.py | 0 .../data/circular_imports/subpkg2/parent/child.py | 0 .../test/test_import/data/circular_imports/use.py | 0 .../test/test_import/data/circular_imports/util.py | 0 .../Lib}/test/test_import/data/package/__init__.py | 0 .../Lib}/test/test_import/data/package/submodule.py | 0 .../test/test_import/data/package2/submodule1.py | 0 .../test/test_import/data/package2/submodule2.py | 0 .../test/test_import/data/unwritable/__init__.py | 0 .../Lib}/test/test_import/data/unwritable/x.py | 0 {Lib => pylib/Lib}/test/test_importlib/__init__.py | 0 {Lib => pylib/Lib}/test/test_importlib/__main__.py | 0 {Lib => pylib/Lib}/test/test_importlib/_context.py | 0 {Lib => pylib/Lib}/test/test_importlib/_path.py | 0 {Lib => pylib/Lib}/test/test_importlib/abc.py | 0 .../Lib}/test/test_importlib/builtin/__init__.py | 0 .../Lib}/test/test_importlib/builtin/__main__.py | 0 .../Lib}/test/test_importlib/builtin/test_finder.py | 0 .../Lib}/test/test_importlib/builtin/test_loader.py | 0 .../Lib}/test/test_importlib/data/__init__.py | 0 .../data/example-21.12-py3-none-any.whl | Bin .../test_importlib/data/example-21.12-py3.6.egg | Bin .../data/example2-1.0.0-py3-none-any.whl | Bin .../Lib}/test/test_importlib/data01/binary.file | Bin .../test_importlib/data01/subdirectory/binary.file | Bin .../Lib}/test/test_importlib/data01/utf-16.file | Bin .../Lib}/test/test_importlib/extension/__init__.py | 0 .../Lib}/test/test_importlib/extension/__main__.py | 0 .../extension/test_case_sensitivity.py | 0 .../test/test_importlib/extension/test_finder.py | 0 .../test/test_importlib/extension/test_loader.py | 0 .../test/test_importlib/extension/test_path_hook.py | 0 {Lib => pylib/Lib}/test/test_importlib/fixtures.py | 0 .../Lib}/test/test_importlib/frozen/__init__.py | 0 .../Lib}/test/test_importlib/frozen/__main__.py | 0 .../Lib}/test/test_importlib/frozen/test_finder.py | 0 .../Lib}/test/test_importlib/frozen/test_loader.py | 0 .../Lib}/test/test_importlib/import_/__init__.py | 0 .../Lib}/test/test_importlib/import_/__main__.py | 0 .../test/test_importlib/import_/test___loader__.py | 0 .../test/test_importlib/import_/test___package__.py | 0 .../Lib}/test/test_importlib/import_/test_api.py | 0 .../test/test_importlib/import_/test_caching.py | 0 .../test/test_importlib/import_/test_fromlist.py | 0 .../test/test_importlib/import_/test_helpers.py | 0 .../test/test_importlib/import_/test_meta_path.py | 0 .../test/test_importlib/import_/test_packages.py | 0 .../Lib}/test/test_importlib/import_/test_path.py | 0 .../test_importlib/import_/test_relative_imports.py | 0 .../namespace_pkgs/both_portions/foo/one.py | 0 .../namespace_pkgs/both_portions/foo/two.py | 0 .../namespace_pkgs/missing_directory.zip | Bin .../module_and_namespace_package/a_test.py | 0 .../module_and_namespace_package/a_test/empty | 0 .../namespace_pkgs/nested_portion1.zip | Bin .../not_a_namespace_pkg/foo/__init__.py | 0 .../namespace_pkgs/not_a_namespace_pkg/foo/one.py | 0 .../namespace_pkgs/portion1/foo/one.py | 0 .../namespace_pkgs/portion2/foo/two.py | 0 .../namespace_pkgs/project1/parent/child/one.py | 0 .../namespace_pkgs/project2/parent/child/two.py | 0 .../namespace_pkgs/project3/parent/child/three.py | 0 .../namespace_pkgs/top_level_portion1.zip | Bin .../test/test_importlib/namespacedata01/binary.file | Bin .../test/test_importlib/namespacedata01/utf-16.file | Bin .../Lib}/test/test_importlib/partial/cfimport.py | 0 .../test/test_importlib/partial/pool_in_threads.py | 0 .../Lib}/test/test_importlib/resources/__init__.py | 0 .../Lib}/test/test_importlib/resources/_path.py | 0 .../test_importlib/resources/data01/__init__.py | 0 .../test_importlib/resources/data01/binary.file | Bin .../resources/data01/subdirectory/__init__.py | 0 .../resources/data01/subdirectory/binary.file | Bin .../test_importlib/resources/data01/utf-16.file | Bin .../test/test_importlib/resources/data01/utf-8.file | 0 .../test_importlib/resources/data02/__init__.py | 0 .../test_importlib/resources/data02/one/__init__.py | 0 .../resources/data02/one/resource1.txt | 0 .../data02/subdirectory/subsubdir/resource.txt | 0 .../test_importlib/resources/data02/two/__init__.py | 0 .../resources/data02/two/resource2.txt | 0 .../test_importlib/resources/data03/__init__.py | 0 .../resources/data03/namespace/portion1/__init__.py | 0 .../resources/data03/namespace/portion2/__init__.py | 0 .../resources/data03/namespace/resource1.txt | 0 .../resources/namespacedata01/binary.file | Bin .../resources/namespacedata01/utf-16.file | Bin .../resources/namespacedata01/utf-8.file | 0 .../resources/test_compatibilty_files.py | 0 .../test/test_importlib/resources/test_contents.py | 0 .../test/test_importlib/resources/test_custom.py | 0 .../test/test_importlib/resources/test_files.py | 0 .../Lib}/test/test_importlib/resources/test_open.py | 0 .../Lib}/test/test_importlib/resources/test_path.py | 0 .../Lib}/test/test_importlib/resources/test_read.py | 0 .../test/test_importlib/resources/test_reader.py | 0 .../test/test_importlib/resources/test_resource.py | 0 .../test/test_importlib/resources/update-zips.py | 0 .../Lib}/test/test_importlib/resources/util.py | 0 .../test_importlib/resources/zipdata01/__init__.py | 0 .../resources/zipdata01/ziptestdata.zip | Bin .../test_importlib/resources/zipdata02/__init__.py | 0 .../resources/zipdata02/ziptestdata.zip | Bin .../Lib}/test/test_importlib/source/__init__.py | 0 .../Lib}/test/test_importlib/source/__main__.py | 0 .../test_importlib/source/test_case_sensitivity.py | 0 .../test/test_importlib/source/test_file_loader.py | 0 .../Lib}/test/test_importlib/source/test_finder.py | 0 .../test/test_importlib/source/test_path_hook.py | 0 .../test_importlib/source/test_source_encoding.py | 0 {Lib => pylib/Lib}/test/test_importlib/stubs.py | 0 {Lib => pylib/Lib}/test/test_importlib/test_abc.py | 0 {Lib => pylib/Lib}/test/test_importlib/test_api.py | 0 {Lib => pylib/Lib}/test/test_importlib/test_lazy.py | 0 .../Lib}/test/test_importlib/test_locks.py | 0 {Lib => pylib/Lib}/test/test_importlib/test_main.py | 0 .../Lib}/test/test_importlib/test_metadata_api.py | 0 .../Lib}/test/test_importlib/test_namespace_pkgs.py | 0 .../Lib}/test/test_importlib/test_pkg_import.py | 0 {Lib => pylib/Lib}/test/test_importlib/test_spec.py | 0 .../test/test_importlib/test_threaded_import.py | 0 {Lib => pylib/Lib}/test/test_importlib/test_util.py | 0 .../Lib}/test/test_importlib/test_windows.py | 0 {Lib => pylib/Lib}/test/test_importlib/test_zip.py | 0 .../test/test_importlib/threaded_import_hangers.py | 0 {Lib => pylib/Lib}/test/test_importlib/util.py | 0 .../test/test_importlib/zipdata01/ziptestdata.zip | Bin .../test/test_importlib/zipdata02/ziptestdata.zip | Bin {Lib => pylib/Lib}/test/test_index.py | 0 {Lib => pylib/Lib}/test/test_int.py | 0 {Lib => pylib/Lib}/test/test_int_literal.py | 0 {Lib => pylib/Lib}/test/test_io.py | 0 {Lib => pylib/Lib}/test/test_ioctl.py | 0 {Lib => pylib/Lib}/test/test_ipaddress.py | 0 {Lib => pylib/Lib}/test/test_isinstance.py | 0 {Lib => pylib/Lib}/test/test_iter.py | 0 {Lib => pylib/Lib}/test/test_iterlen.py | 0 {Lib => pylib/Lib}/test/test_itertools.py | 0 {Lib => pylib/Lib}/test/test_json/__init__.py | 0 {Lib => pylib/Lib}/test/test_json/__main__.py | 0 {Lib => pylib/Lib}/test/test_json/test_decode.py | 0 {Lib => pylib/Lib}/test/test_json/test_default.py | 0 {Lib => pylib/Lib}/test/test_json/test_dump.py | 0 .../test/test_json/test_encode_basestring_ascii.py | 0 {Lib => pylib/Lib}/test/test_json/test_enum.py | 0 {Lib => pylib/Lib}/test/test_json/test_fail.py | 0 {Lib => pylib/Lib}/test/test_json/test_float.py | 0 {Lib => pylib/Lib}/test/test_json/test_indent.py | 0 {Lib => pylib/Lib}/test/test_json/test_pass1.py | 0 {Lib => pylib/Lib}/test/test_json/test_pass2.py | 0 {Lib => pylib/Lib}/test/test_json/test_pass3.py | 0 {Lib => pylib/Lib}/test/test_json/test_recursion.py | 0 .../Lib}/test/test_json/test_scanstring.py | 0 .../Lib}/test/test_json/test_separators.py | 0 {Lib => pylib/Lib}/test/test_json/test_speedups.py | 0 {Lib => pylib/Lib}/test/test_json/test_tool.py | 0 {Lib => pylib/Lib}/test/test_json/test_unicode.py | 0 {Lib => pylib/Lib}/test/test_keyword.py | 0 {Lib => pylib/Lib}/test/test_keywordonlyarg.py | 0 {Lib => pylib/Lib}/test/test_kqueue.py | 0 {Lib => pylib/Lib}/test/test_largefile.py | 0 {Lib => pylib/Lib}/test/test_linecache.py | 0 {Lib => pylib/Lib}/test/test_list.py | 0 {Lib => pylib/Lib}/test/test_listcomps.py | 0 {Lib => pylib/Lib}/test/test_locale.py | 0 {Lib => pylib/Lib}/test/test_logging.py | 0 {Lib => pylib/Lib}/test/test_long.py | 0 {Lib => pylib/Lib}/test/test_longexp.py | 0 {Lib => pylib/Lib}/test/test_marshal.py | 0 {Lib => pylib/Lib}/test/test_math.py | 0 {Lib => pylib/Lib}/test/test_memoryio.py | 0 {Lib => pylib/Lib}/test/test_memoryview.py | 0 {Lib => pylib/Lib}/test/test_mimetypes.py | 0 {Lib => pylib/Lib}/test/test_mmap.py | 0 {Lib => pylib/Lib}/test/test_module/__init__.py | 0 {Lib => pylib/Lib}/test/test_module/bad_getattr.py | 0 {Lib => pylib/Lib}/test/test_module/bad_getattr2.py | 0 {Lib => pylib/Lib}/test/test_module/bad_getattr3.py | 0 {Lib => pylib/Lib}/test/test_module/good_getattr.py | 0 .../Lib}/test/test_multiprocessing_fork/__init__.py | 0 .../test/test_multiprocessing_fork/test_manager.py | 0 .../test/test_multiprocessing_fork/test_misc.py | 0 .../test_multiprocessing_fork/test_processes.py | 0 .../test/test_multiprocessing_fork/test_threads.py | 0 .../test_multiprocessing_forkserver/__init__.py | 0 .../test_multiprocessing_forkserver/test_manager.py | 0 .../test_multiprocessing_forkserver/test_misc.py | 0 .../test_processes.py | 0 .../test_multiprocessing_forkserver/test_threads.py | 0 .../Lib}/test/test_multiprocessing_main_handling.py | 0 .../test/test_multiprocessing_spawn/__init__.py | 0 .../test/test_multiprocessing_spawn/test_manager.py | 0 .../test/test_multiprocessing_spawn/test_misc.py | 0 .../test_multiprocessing_spawn/test_processes.py | 0 .../test/test_multiprocessing_spawn/test_threads.py | 0 {Lib => pylib/Lib}/test/test_named_expressions.py | 0 {Lib => pylib/Lib}/test/test_netrc.py | 0 {Lib => pylib/Lib}/test/test_ntpath.py | 0 {Lib => pylib/Lib}/test/test_numeric_tower.py | 0 {Lib => pylib/Lib}/test/test_opcache.py | 0 {Lib => pylib/Lib}/test/test_opcodes.py | 0 {Lib => pylib/Lib}/test/test_openpty.py | 0 {Lib => pylib/Lib}/test/test_operator.py | 0 {Lib => pylib/Lib}/test/test_optparse.py | 0 {Lib => pylib/Lib}/test/test_ordered_dict.py | 0 {Lib => pylib/Lib}/test/test_os.py | 0 {Lib => pylib/Lib}/test/test_pathlib.py | 0 {Lib => pylib/Lib}/test/test_pickle.py | 0 {Lib => pylib/Lib}/test/test_pickletools.py | 0 {Lib => pylib/Lib}/test/test_pkg.py | 0 {Lib => pylib/Lib}/test/test_pkgutil.py | 0 {Lib => pylib/Lib}/test/test_platform.py | 0 {Lib => pylib/Lib}/test/test_plistlib.py | 0 {Lib => pylib/Lib}/test/test_poll.py | 0 {Lib => pylib/Lib}/test/test_popen.py | 0 {Lib => pylib/Lib}/test/test_positional_only_arg.py | 0 {Lib => pylib/Lib}/test/test_posix.py | 0 {Lib => pylib/Lib}/test/test_posixpath.py | 0 {Lib => pylib/Lib}/test/test_pow.py | 0 {Lib => pylib/Lib}/test/test_pprint.py | 0 {Lib => pylib/Lib}/test/test_print.py | 0 {Lib => pylib/Lib}/test/test_property.py | 0 {Lib => pylib/Lib}/test/test_pty.py | 0 {Lib => pylib/Lib}/test/test_pulldom.py | 0 {Lib => pylib/Lib}/test/test_pwd.py | 0 {Lib => pylib/Lib}/test/test_py_compile.py | 0 {Lib => pylib/Lib}/test/test_pyexpat.py | 0 {Lib => pylib/Lib}/test/test_queue.py | 0 {Lib => pylib/Lib}/test/test_quopri.py | 0 {Lib => pylib/Lib}/test/test_raise.py | 0 {Lib => pylib/Lib}/test/test_random.py | 0 {Lib => pylib/Lib}/test/test_range.py | 0 {Lib => pylib/Lib}/test/test_re.py | 0 {Lib => pylib/Lib}/test/test_regrtest.py | 0 {Lib => pylib/Lib}/test/test_repl.py | 0 {Lib => pylib/Lib}/test/test_reprlib.py | 0 {Lib => pylib/Lib}/test/test_resource.py | 0 {Lib => pylib/Lib}/test/test_richcmp.py | 0 {Lib => pylib/Lib}/test/test_rlcompleter.py | 0 {Lib => pylib/Lib}/test/test_robotparser.py | 0 {Lib => pylib/Lib}/test/test_runpy.py | 0 {Lib => pylib/Lib}/test/test_sched.py | 0 {Lib => pylib/Lib}/test/test_scope.py | 0 {Lib => pylib/Lib}/test/test_script_helper.py | 0 {Lib => pylib/Lib}/test/test_secrets.py | 0 {Lib => pylib/Lib}/test/test_selectors.py | 0 {Lib => pylib/Lib}/test/test_set.py | 0 {Lib => pylib/Lib}/test/test_setcomps.py | 0 {Lib => pylib/Lib}/test/test_shelve.py | 0 {Lib => pylib/Lib}/test/test_shlex.py | 0 {Lib => pylib/Lib}/test/test_shutil.py | 0 {Lib => pylib/Lib}/test/test_signal.py | 0 {Lib => pylib/Lib}/test/test_site.py | 0 {Lib => pylib/Lib}/test/test_slice.py | 0 {Lib => pylib/Lib}/test/test_smtplib.py | 0 {Lib => pylib/Lib}/test/test_smtpnet.py | 0 {Lib => pylib/Lib}/test/test_socket.py | 0 {Lib => pylib/Lib}/test/test_socketserver.py | 0 {Lib => pylib/Lib}/test/test_sort.py | 0 {Lib => pylib/Lib}/test/test_sqlite3/__init__.py | 0 {Lib => pylib/Lib}/test/test_sqlite3/__main__.py | 0 {Lib => pylib/Lib}/test/test_sqlite3/test_backup.py | 0 {Lib => pylib/Lib}/test/test_sqlite3/test_cli.py | 0 {Lib => pylib/Lib}/test/test_sqlite3/test_dbapi.py | 0 {Lib => pylib/Lib}/test/test_sqlite3/test_dump.py | 0 .../Lib}/test/test_sqlite3/test_factory.py | 0 {Lib => pylib/Lib}/test/test_sqlite3/test_hooks.py | 0 .../Lib}/test/test_sqlite3/test_regression.py | 0 .../Lib}/test/test_sqlite3/test_transactions.py | 0 {Lib => pylib/Lib}/test/test_sqlite3/test_types.py | 0 .../Lib}/test/test_sqlite3/test_userfunctions.py | 0 {Lib => pylib/Lib}/test/test_stat.py | 0 {Lib => pylib/Lib}/test/test_statistics.py | 0 {Lib => pylib/Lib}/test/test_strftime.py | 0 {Lib => pylib/Lib}/test/test_string.py | 0 {Lib => pylib/Lib}/test/test_string_literals.py | 0 {Lib => pylib/Lib}/test/test_stringprep.py | 0 {Lib => pylib/Lib}/test/test_strtod.py | 0 {Lib => pylib/Lib}/test/test_struct.py | 0 {Lib => pylib/Lib}/test/test_structseq.py | 0 {Lib => pylib/Lib}/test/test_subclassinit.py | 0 {Lib => pylib/Lib}/test/test_subprocess.py | 0 {Lib => pylib/Lib}/test/test_sundry.py | 0 {Lib => pylib/Lib}/test/test_super.py | 0 {Lib => pylib/Lib}/test/test_support.py | 0 {Lib => pylib/Lib}/test/test_symtable.py | 0 {Lib => pylib/Lib}/test/test_syntax.py | 0 {Lib => pylib/Lib}/test/test_sys.py | 0 {Lib => pylib/Lib}/test/test_sys_setprofile.py | 0 {Lib => pylib/Lib}/test/test_sys_settrace.py | 0 {Lib => pylib/Lib}/test/test_sysconfig.py | 0 {Lib => pylib/Lib}/test/test_syslog.py | 0 {Lib => pylib/Lib}/test/test_tabnanny.py | 0 {Lib => pylib/Lib}/test/test_tarfile.py | 0 {Lib => pylib/Lib}/test/test_tempfile.py | 0 {Lib => pylib/Lib}/test/test_textwrap.py | 0 {Lib => pylib/Lib}/test/test_thread.py | 0 {Lib => pylib/Lib}/test/test_threadedtempfile.py | 0 {Lib => pylib/Lib}/test/test_threading.py | 0 {Lib => pylib/Lib}/test/test_threading_local.py | 0 {Lib => pylib/Lib}/test/test_time.py | 0 {Lib => pylib/Lib}/test/test_timeit.py | 0 {Lib => pylib/Lib}/test/test_timeout.py | 0 {Lib => pylib/Lib}/test/test_tokenize.py | 0 {Lib => pylib/Lib}/test/test_tomllib/__init__.py | 0 {Lib => pylib/Lib}/test/test_tomllib/__main__.py | 0 {Lib => pylib/Lib}/test/test_tomllib/burntsushi.py | 0 .../data/invalid/array-missing-comma.toml | 0 .../array-of-tables/overwrite-array-in-parent.toml | 0 .../array-of-tables/overwrite-bool-with-aot.toml | 0 .../data/invalid/array/file-end-after-val.toml | 0 .../data/invalid/array/unclosed-after-item.toml | 0 .../data/invalid/array/unclosed-empty.toml | 0 .../data/invalid/basic-str-ends-in-escape.toml | 0 .../data/invalid/boolean/invalid-false-casing.toml | 0 .../data/invalid/boolean/invalid-true-casing.toml | 0 .../data/invalid/dates-and-times/invalid-day.toml | 0 .../data/invalid/dotted-keys/access-non-table.toml | 0 .../invalid/dotted-keys/extend-defined-aot.toml | 0 .../extend-defined-table-with-subtable.toml | 0 .../invalid/dotted-keys/extend-defined-table.toml | 0 .../data/invalid/inline-table-missing-comma.toml | 0 .../inline-table/define-twice-in-subtable.toml | 0 .../data/invalid/inline-table/define-twice.toml | 0 .../inline-table/file-end-after-key-val.toml | 0 .../data/invalid/inline-table/mutate.toml | 0 .../invalid/inline-table/override-val-in-table.toml | 0 .../inline-table/override-val-with-array.toml | 0 .../inline-table/override-val-with-table.toml | 0 .../invalid/inline-table/overwrite-implicitly.toml | 0 .../overwrite-value-in-inner-array.toml | 0 .../overwrite-value-in-inner-table.toml | 0 .../data/invalid/inline-table/unclosed-empty.toml | 0 .../data/invalid/invalid-comment-char.toml | 0 .../data/invalid/invalid-escaped-unicode.toml | 0 .../test/test_tomllib/data/invalid/invalid-hex.toml | 0 .../invalid/keys-and-vals/ends-early-table-def.toml | 0 .../data/invalid/keys-and-vals/ends-early.toml | 0 .../data/invalid/keys-and-vals/no-value.toml | 0 .../invalid/keys-and-vals/only-ws-after-dot.toml | 0 .../keys-and-vals/overwrite-with-deep-table.toml | 0 .../data/invalid/literal-str/unclosed.toml | 0 .../missing-closing-double-square-bracket.toml | 0 .../invalid/missing-closing-square-bracket.toml | 0 .../multiline-basic-str/carriage-return.toml | 0 .../invalid/multiline-basic-str/escape-only.toml | 0 .../file-ends-after-opening.toml | 0 .../multiline-basic-str/last-line-escape.toml | 0 .../unclosed-ends-in-whitespace-escape.toml | 0 .../file-ends-after-opening.toml | 0 .../invalid/multiline-literal-str/unclosed.toml | 0 .../data/invalid/non-scalar-escaped.toml | 0 .../data/invalid/table/eof-after-opening.toml | 0 .../test_tomllib/data/invalid/table/redefine-1.toml | 0 .../test_tomllib/data/invalid/table/redefine-2.toml | 0 .../data/invalid/unclosed-multiline-string.toml | 0 .../test_tomllib/data/invalid/unclosed-string.toml | 0 .../data/valid/apostrophes-in-literal-string.json | 0 .../data/valid/apostrophes-in-literal-string.toml | 0 .../data/valid/array/array-subtables.json | 0 .../data/valid/array/array-subtables.toml | 0 .../data/valid/array/open-parent-table.json | 0 .../data/valid/array/open-parent-table.toml | 0 .../Lib}/test/test_tomllib/data/valid/boolean.json | 0 .../Lib}/test/test_tomllib/data/valid/boolean.toml | 0 .../data/valid/dates-and-times/datetimes.json | 0 .../data/valid/dates-and-times/datetimes.toml | 0 .../data/valid/dates-and-times/localtime.json | 0 .../data/valid/dates-and-times/localtime.toml | 0 .../test_tomllib/data/valid/empty-inline-table.json | 0 .../test_tomllib/data/valid/empty-inline-table.toml | 0 .../test/test_tomllib/data/valid/five-quotes.json | 0 .../test/test_tomllib/data/valid/five-quotes.toml | 0 .../Lib}/test/test_tomllib/data/valid/hex-char.json | 0 .../Lib}/test/test_tomllib/data/valid/hex-char.toml | 0 .../ends-in-whitespace-escape.json | 0 .../ends-in-whitespace-escape.toml | 0 .../test/test_tomllib/data/valid/no-newlines.json | 0 .../test/test_tomllib/data/valid/no-newlines.toml | 0 .../test_tomllib/data/valid/trailing-comma.json | 0 .../test_tomllib/data/valid/trailing-comma.toml | 0 {Lib => pylib/Lib}/test/test_tomllib/test_data.py | 0 {Lib => pylib/Lib}/test/test_tomllib/test_error.py | 0 {Lib => pylib/Lib}/test/test_tomllib/test_misc.py | 0 {Lib => pylib/Lib}/test/test_trace.py | 0 {Lib => pylib/Lib}/test/test_traceback.py | 0 {Lib => pylib/Lib}/test/test_tuple.py | 0 {Lib => pylib/Lib}/test/test_type_comments.py | 0 {Lib => pylib/Lib}/test/test_typechecks.py | 0 {Lib => pylib/Lib}/test/test_types.py | 0 {Lib => pylib/Lib}/test/test_typing.py | 0 {Lib => pylib/Lib}/test/test_ucn.py | 0 {Lib => pylib/Lib}/test/test_unary.py | 0 {Lib => pylib/Lib}/test/test_unicode.py | 0 {Lib => pylib/Lib}/test/test_unicode_file.py | 0 .../Lib}/test/test_unicode_file_functions.py | 0 {Lib => pylib/Lib}/test/test_unicode_identifiers.py | 0 {Lib => pylib/Lib}/test/test_unicodedata.py | 0 {Lib => pylib/Lib}/test/test_unittest.py | 0 {Lib => pylib/Lib}/test/test_univnewlines.py | 0 {Lib => pylib/Lib}/test/test_unpack.py | 0 {Lib => pylib/Lib}/test/test_urllib.py | 0 {Lib => pylib/Lib}/test/test_urllib2.py | 0 {Lib => pylib/Lib}/test/test_urllib2_localnet.py | 0 {Lib => pylib/Lib}/test/test_urllib2net.py | 0 {Lib => pylib/Lib}/test/test_urllib_response.py | 0 {Lib => pylib/Lib}/test/test_urllibnet.py | 0 {Lib => pylib/Lib}/test/test_urlparse.py | 0 {Lib => pylib/Lib}/test/test_userdict.py | 0 {Lib => pylib/Lib}/test/test_userlist.py | 0 {Lib => pylib/Lib}/test/test_userstring.py | 0 {Lib => pylib/Lib}/test/test_utf8_mode.py | 0 {Lib => pylib/Lib}/test/test_utf8source.py | 0 {Lib => pylib/Lib}/test/test_uuid.py | 0 {Lib => pylib/Lib}/test/test_venv.py | 0 {Lib => pylib/Lib}/test/test_wave.py | 0 {Lib => pylib/Lib}/test/test_weakref.py | 0 {Lib => pylib/Lib}/test/test_weakset.py | 0 {Lib => pylib/Lib}/test/test_webbrowser.py | 0 {Lib => pylib/Lib}/test/test_winapi.py | 0 {Lib => pylib/Lib}/test/test_with.py | 0 {Lib => pylib/Lib}/test/test_wsgiref.py | 0 {Lib => pylib/Lib}/test/test_xml_dom_minicompat.py | 0 {Lib => pylib/Lib}/test/test_xml_etree.py | 0 {Lib => pylib/Lib}/test/test_xmlrpc.py | 0 {Lib => pylib/Lib}/test/test_yield_from.py | 0 {Lib => pylib/Lib}/test/test_zipapp.py | 0 {Lib => pylib/Lib}/test/test_zipfile.py | 0 {Lib => pylib/Lib}/test/test_zipfile64.py | 0 {Lib => pylib/Lib}/test/test_zipimport.py | 0 {Lib => pylib/Lib}/test/test_zlib.py | 0 {Lib => pylib/Lib}/test/test_zoneinfo/__init__.py | 0 {Lib => pylib/Lib}/test/test_zoneinfo/__main__.py | 0 {Lib => pylib/Lib}/test/test_zoneinfo/_support.py | 0 .../test/test_zoneinfo/data/update_test_data.py | 0 .../Lib}/test/test_zoneinfo/data/zoneinfo_data.json | 0 .../Lib}/test/test_zoneinfo/test_zoneinfo.py | 0 .../test/test_zoneinfo/test_zoneinfo_property.py | 0 {Lib => pylib/Lib}/test/testcodec.py | 0 {Lib => pylib/Lib}/test/testtar.tar | Bin {Lib => pylib/Lib}/test/tf_inherit_check.py | 0 ..._tests-latin1-coding-cookie-and-utf8-bom-sig.txt | 0 ...tests-no-coding-cookie-and-utf8-bom-sig-only.txt | 0 ...tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt | 0 ...ze_tests-utf8-coding-cookie-and-utf8-bom-sig.txt | 0 {Lib => pylib/Lib}/test/tokenize_tests.txt | 0 {Lib => pylib/Lib}/test/tracedmodules/__init__.py | 0 {Lib => pylib/Lib}/test/tracedmodules/testmod.py | 0 {Lib => pylib/Lib}/test/typinganndata/__init__.py | 0 {Lib => pylib/Lib}/test/typinganndata/ann_module.py | 0 .../Lib}/test/typinganndata/ann_module2.py | 0 .../Lib}/test/typinganndata/ann_module3.py | 0 .../Lib}/test/typinganndata/ann_module4.py | 0 .../Lib}/test/typinganndata/ann_module5.py | 0 .../Lib}/test/typinganndata/ann_module6.py | 0 .../Lib}/test/typinganndata/ann_module7.py | 0 .../Lib}/test/typinganndata/ann_module8.py | 0 .../Lib}/test/typinganndata/ann_module9.py | 0 {Lib => pylib/Lib}/test/xmltestdata/c14n-20/README | 0 .../Lib}/test/xmltestdata/c14n-20/c14nComment.xml | 0 .../Lib}/test/xmltestdata/c14n-20/c14nDefault.xml | 0 .../Lib}/test/xmltestdata/c14n-20/c14nPrefix.xml | 0 .../test/xmltestdata/c14n-20/c14nPrefixQname.xml | 0 .../c14n-20/c14nPrefixQnameXpathElem.xml | 0 .../Lib}/test/xmltestdata/c14n-20/c14nQname.xml | 0 .../Lib}/test/xmltestdata/c14n-20/c14nQnameElem.xml | 0 .../test/xmltestdata/c14n-20/c14nQnameXpathElem.xml | 0 .../Lib}/test/xmltestdata/c14n-20/c14nTrim.xml | 0 {Lib => pylib/Lib}/test/xmltestdata/c14n-20/doc.dtd | 0 {Lib => pylib/Lib}/test/xmltestdata/c14n-20/doc.xsl | 0 .../Lib}/test/xmltestdata/c14n-20/inC14N1.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inC14N2.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inC14N3.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inC14N4.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inC14N5.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inC14N6.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inNsContent.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inNsDefault.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inNsPushdown.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inNsRedecl.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inNsSort.xml | 0 .../test/xmltestdata/c14n-20/inNsSuperfluous.xml | 0 .../Lib}/test/xmltestdata/c14n-20/inNsXml.xml | 0 .../xmltestdata/c14n-20/out_inC14N1_c14nComment.xml | 0 .../xmltestdata/c14n-20/out_inC14N1_c14nDefault.xml | 0 .../xmltestdata/c14n-20/out_inC14N2_c14nDefault.xml | 0 .../xmltestdata/c14n-20/out_inC14N2_c14nTrim.xml | 0 .../xmltestdata/c14n-20/out_inC14N3_c14nDefault.xml | 0 .../xmltestdata/c14n-20/out_inC14N3_c14nPrefix.xml | 0 .../xmltestdata/c14n-20/out_inC14N3_c14nTrim.xml | 0 .../xmltestdata/c14n-20/out_inC14N4_c14nDefault.xml | 0 .../xmltestdata/c14n-20/out_inC14N4_c14nTrim.xml | 0 .../xmltestdata/c14n-20/out_inC14N5_c14nDefault.xml | 0 .../xmltestdata/c14n-20/out_inC14N5_c14nTrim.xml | 0 .../xmltestdata/c14n-20/out_inC14N6_c14nDefault.xml | 0 .../c14n-20/out_inNsContent_c14nDefault.xml | 0 .../out_inNsContent_c14nPrefixQnameXpathElem.xml | 0 .../c14n-20/out_inNsContent_c14nQnameElem.xml | 0 .../c14n-20/out_inNsContent_c14nQnameXpathElem.xml | 0 .../c14n-20/out_inNsDefault_c14nDefault.xml | 0 .../c14n-20/out_inNsDefault_c14nPrefix.xml | 0 .../c14n-20/out_inNsPushdown_c14nDefault.xml | 0 .../c14n-20/out_inNsPushdown_c14nPrefix.xml | 0 .../c14n-20/out_inNsRedecl_c14nDefault.xml | 0 .../c14n-20/out_inNsRedecl_c14nPrefix.xml | 0 .../c14n-20/out_inNsSort_c14nDefault.xml | 0 .../xmltestdata/c14n-20/out_inNsSort_c14nPrefix.xml | 0 .../c14n-20/out_inNsSuperfluous_c14nDefault.xml | 0 .../c14n-20/out_inNsSuperfluous_c14nPrefix.xml | 0 .../xmltestdata/c14n-20/out_inNsXml_c14nDefault.xml | 0 .../xmltestdata/c14n-20/out_inNsXml_c14nPrefix.xml | 0 .../c14n-20/out_inNsXml_c14nPrefixQname.xml | 0 .../xmltestdata/c14n-20/out_inNsXml_c14nQname.xml | 0 .../Lib}/test/xmltestdata/c14n-20/world.txt | 0 .../Lib}/test/xmltestdata/expat224_utf8_bug.xml | 0 {Lib => pylib/Lib}/test/xmltestdata/simple-ns.xml | 0 {Lib => pylib/Lib}/test/xmltestdata/simple.xml | 0 {Lib => pylib/Lib}/test/xmltestdata/test.xml | 0 {Lib => pylib/Lib}/test/xmltestdata/test.xml.out | 0 {Lib => pylib/Lib}/test/xmltests.py | 0 {Lib => pylib/Lib}/test/zip_cp437_header.zip | Bin {Lib => pylib/Lib}/test/zipdir.zip | Bin {Lib => pylib/Lib}/test/ziptestdata/README.md | 0 {Lib => pylib/Lib}/test/ziptestdata/exe_with_z64 | Bin {Lib => pylib/Lib}/test/ziptestdata/exe_with_zip | Bin {Lib => pylib/Lib}/test/ziptestdata/header.sh | 0 .../test/ziptestdata/testdata_module_inside_zip.py | 0 {Lib => pylib/Lib}/textwrap.py | 0 {Lib => pylib/Lib}/this.py | 0 {Lib => pylib/Lib}/threading.py | 0 {Lib => pylib/Lib}/timeit.py | 0 {Lib => pylib/Lib}/tkinter/__init__.py | 0 {Lib => pylib/Lib}/tkinter/__main__.py | 0 {Lib => pylib/Lib}/tkinter/colorchooser.py | 0 {Lib => pylib/Lib}/tkinter/commondialog.py | 0 {Lib => pylib/Lib}/tkinter/constants.py | 0 {Lib => pylib/Lib}/tkinter/dialog.py | 0 {Lib => pylib/Lib}/tkinter/dnd.py | 0 {Lib => pylib/Lib}/tkinter/filedialog.py | 0 {Lib => pylib/Lib}/tkinter/font.py | 0 {Lib => pylib/Lib}/tkinter/messagebox.py | 0 {Lib => pylib/Lib}/tkinter/scrolledtext.py | 0 {Lib => pylib/Lib}/tkinter/simpledialog.py | 0 {Lib => pylib/Lib}/tkinter/ttk.py | 0 {Lib => pylib/Lib}/token.py | 0 {Lib => pylib/Lib}/tokenize.py | 0 {Lib => pylib/Lib}/tomllib/__init__.py | 0 {Lib => pylib/Lib}/tomllib/_parser.py | 0 {Lib => pylib/Lib}/tomllib/_re.py | 0 {Lib => pylib/Lib}/tomllib/_types.py | 0 {Lib => pylib/Lib}/trace.py | 0 {Lib => pylib/Lib}/traceback.py | 0 {Lib => pylib/Lib}/tty.py | 0 {Lib => pylib/Lib}/types.py | 0 {Lib => pylib/Lib}/typing.py | 0 {Lib => pylib/Lib}/unittest/__init__.py | 0 {Lib => pylib/Lib}/unittest/__main__.py | 0 {Lib => pylib/Lib}/unittest/_log.py | 0 {Lib => pylib/Lib}/unittest/async_case.py | 0 {Lib => pylib/Lib}/unittest/case.py | 0 {Lib => pylib/Lib}/unittest/loader.py | 0 {Lib => pylib/Lib}/unittest/main.py | 0 {Lib => pylib/Lib}/unittest/mock.py | 0 {Lib => pylib/Lib}/unittest/result.py | 0 {Lib => pylib/Lib}/unittest/runner.py | 0 {Lib => pylib/Lib}/unittest/signals.py | 0 {Lib => pylib/Lib}/unittest/suite.py | 0 {Lib => pylib/Lib}/unittest/test/__init__.py | 0 {Lib => pylib/Lib}/unittest/test/__main__.py | 0 {Lib => pylib/Lib}/unittest/test/_test_warnings.py | 0 {Lib => pylib/Lib}/unittest/test/dummy.py | 0 {Lib => pylib/Lib}/unittest/test/support.py | 0 {Lib => pylib/Lib}/unittest/test/test_assertions.py | 0 {Lib => pylib/Lib}/unittest/test/test_async_case.py | 0 {Lib => pylib/Lib}/unittest/test/test_break.py | 0 {Lib => pylib/Lib}/unittest/test/test_case.py | 0 {Lib => pylib/Lib}/unittest/test/test_discovery.py | 0 .../Lib}/unittest/test/test_functiontestcase.py | 0 {Lib => pylib/Lib}/unittest/test/test_loader.py | 0 {Lib => pylib/Lib}/unittest/test/test_program.py | 0 {Lib => pylib/Lib}/unittest/test/test_result.py | 0 {Lib => pylib/Lib}/unittest/test/test_runner.py | 0 {Lib => pylib/Lib}/unittest/test/test_setups.py | 0 {Lib => pylib/Lib}/unittest/test/test_skipping.py | 0 {Lib => pylib/Lib}/unittest/test/test_suite.py | 0 .../Lib}/unittest/test/testmock/__init__.py | 0 .../Lib}/unittest/test/testmock/__main__.py | 0 .../Lib}/unittest/test/testmock/support.py | 0 .../Lib}/unittest/test/testmock/testasync.py | 0 .../Lib}/unittest/test/testmock/testcallable.py | 0 .../Lib}/unittest/test/testmock/testhelpers.py | 0 .../Lib}/unittest/test/testmock/testmagicmethods.py | 0 .../Lib}/unittest/test/testmock/testmock.py | 0 .../Lib}/unittest/test/testmock/testpatch.py | 0 .../Lib}/unittest/test/testmock/testsealable.py | 0 .../Lib}/unittest/test/testmock/testsentinel.py | 0 .../Lib}/unittest/test/testmock/testwith.py | 0 {Lib => pylib/Lib}/unittest/util.py | 0 {Lib => pylib/Lib}/urllib/__init__.py | 0 {Lib => pylib/Lib}/urllib/error.py | 0 {Lib => pylib/Lib}/urllib/parse.py | 0 {Lib => pylib/Lib}/urllib/request.py | 0 {Lib => pylib/Lib}/urllib/response.py | 0 {Lib => pylib/Lib}/urllib/robotparser.py | 0 {Lib => pylib/Lib}/uuid.py | 0 {Lib => pylib/Lib}/venv/__init__.py | 0 {Lib => pylib/Lib}/venv/__main__.py | 0 {Lib => pylib/Lib}/venv/scripts/common/Activate.ps1 | 0 {Lib => pylib/Lib}/venv/scripts/common/activate | 0 {Lib => pylib/Lib}/venv/scripts/nt/activate.bat | 0 {Lib => pylib/Lib}/venv/scripts/nt/deactivate.bat | 0 {Lib => pylib/Lib}/venv/scripts/posix/activate.csh | 0 {Lib => pylib/Lib}/venv/scripts/posix/activate.fish | 0 {Lib => pylib/Lib}/warnings.py | 0 {Lib => pylib/Lib}/wave.py | 0 {Lib => pylib/Lib}/weakref.py | 0 {Lib => pylib/Lib}/webbrowser.py | 0 {Lib => pylib/Lib}/wsgiref/__init__.py | 0 {Lib => pylib/Lib}/wsgiref/handlers.py | 0 {Lib => pylib/Lib}/wsgiref/headers.py | 0 {Lib => pylib/Lib}/wsgiref/simple_server.py | 0 {Lib => pylib/Lib}/wsgiref/util.py | 0 {Lib => pylib/Lib}/wsgiref/validate.py | 0 {Lib => pylib/Lib}/xml/__init__.py | 0 {Lib => pylib/Lib}/xml/dom/NodeFilter.py | 0 {Lib => pylib/Lib}/xml/dom/__init__.py | 0 {Lib => pylib/Lib}/xml/dom/domreg.py | 0 {Lib => pylib/Lib}/xml/dom/expatbuilder.py | 0 {Lib => pylib/Lib}/xml/dom/minicompat.py | 0 {Lib => pylib/Lib}/xml/dom/minidom.py | 0 {Lib => pylib/Lib}/xml/dom/pulldom.py | 0 {Lib => pylib/Lib}/xml/dom/xmlbuilder.py | 0 {Lib => pylib/Lib}/xml/etree/ElementInclude.py | 0 {Lib => pylib/Lib}/xml/etree/ElementPath.py | 0 {Lib => pylib/Lib}/xml/etree/ElementTree.py | 0 {Lib => pylib/Lib}/xml/etree/__init__.py | 0 {Lib => pylib/Lib}/xml/etree/cElementTree.py | 0 {Lib => pylib/Lib}/xml/parsers/__init__.py | 0 {Lib => pylib/Lib}/xml/parsers/expat.py | 0 {Lib => pylib/Lib}/xml/sax/__init__.py | 0 {Lib => pylib/Lib}/xml/sax/_exceptions.py | 0 {Lib => pylib/Lib}/xml/sax/expatreader.py | 0 {Lib => pylib/Lib}/xml/sax/handler.py | 0 {Lib => pylib/Lib}/xml/sax/saxutils.py | 0 {Lib => pylib/Lib}/xml/sax/xmlreader.py | 0 {Lib => pylib/Lib}/xmlrpc/__init__.py | 0 {Lib => pylib/Lib}/xmlrpc/client.py | 0 {Lib => pylib/Lib}/xmlrpc/server.py | 0 {Lib => pylib/Lib}/zipapp.py | 0 {Lib => pylib/Lib}/zipfile.py | 0 {Lib => pylib/Lib}/zipimport.py | 0 {Lib => pylib/Lib}/zoneinfo/__init__.py | 0 {Lib => pylib/Lib}/zoneinfo/_common.py | 0 {Lib => pylib/Lib}/zoneinfo/_tzpath.py | 0 {Lib => pylib/Lib}/zoneinfo/_zoneinfo.py | 0 1618 files changed, 1 insertion(+) create mode 120000 Lib rename {Lib => pylib/Lib}/PSF-LICENSE (100%) rename {Lib => pylib/Lib}/README.md (100%) rename {Lib => pylib/Lib}/__future__.py (100%) rename {Lib => pylib/Lib}/__hello__.py (100%) rename {Lib => pylib/Lib}/__phello__/__init__.py (100%) rename {Lib => pylib/Lib}/__phello__/ham/__init__.py (100%) rename {Lib => pylib/Lib}/__phello__/ham/eggs.py (100%) rename {Lib => pylib/Lib}/__phello__/spam.py (100%) rename {Lib => pylib/Lib}/_aix_support.py (100%) rename {Lib => pylib/Lib}/_android_support.py (100%) rename {Lib => pylib/Lib}/_apple_support.py (100%) rename {Lib => pylib/Lib}/_collections_abc.py (100%) rename {Lib => pylib/Lib}/_colorize.py (100%) rename {Lib => pylib/Lib}/_compat_pickle.py (100%) rename {Lib => pylib/Lib}/_compression.py (100%) rename {Lib => pylib/Lib}/_dummy_os.py (100%) rename {Lib => pylib/Lib}/_dummy_thread.py (100%) rename {Lib => pylib/Lib}/_ios_support.py (100%) rename {Lib => pylib/Lib}/_markupbase.py (100%) rename {Lib => pylib/Lib}/_osx_support.py (100%) rename {Lib => pylib/Lib}/_py_abc.py (100%) rename {Lib => pylib/Lib}/_pycodecs.py (100%) rename {Lib => pylib/Lib}/_pydatetime.py (100%) rename {Lib => pylib/Lib}/_pydecimal.py (100%) rename {Lib => pylib/Lib}/_pyio.py (100%) rename {Lib => pylib/Lib}/_pylong.py (100%) rename {Lib => pylib/Lib}/_pyrepl/__init__.py (100%) rename {Lib => pylib/Lib}/_pyrepl/__main__.py (100%) rename {Lib => pylib/Lib}/_pyrepl/_minimal_curses.py (100%) rename {Lib => pylib/Lib}/_pyrepl/_threading_handler.py (100%) rename {Lib => pylib/Lib}/_pyrepl/commands.py (100%) rename {Lib => pylib/Lib}/_pyrepl/completing_reader.py (100%) rename {Lib => pylib/Lib}/_pyrepl/console.py (100%) rename {Lib => pylib/Lib}/_pyrepl/curses.py (100%) rename {Lib => pylib/Lib}/_pyrepl/fancy_termios.py (100%) rename {Lib => pylib/Lib}/_pyrepl/historical_reader.py (100%) rename {Lib => pylib/Lib}/_pyrepl/input.py (100%) rename {Lib => pylib/Lib}/_pyrepl/keymap.py (100%) rename {Lib => pylib/Lib}/_pyrepl/main.py (100%) rename {Lib => pylib/Lib}/_pyrepl/mypy.ini (100%) rename {Lib => pylib/Lib}/_pyrepl/pager.py (100%) rename {Lib => pylib/Lib}/_pyrepl/reader.py (100%) rename {Lib => pylib/Lib}/_pyrepl/readline.py (100%) rename {Lib => pylib/Lib}/_pyrepl/simple_interact.py (100%) rename {Lib => pylib/Lib}/_pyrepl/trace.py (100%) rename {Lib => pylib/Lib}/_pyrepl/types.py (100%) rename {Lib => pylib/Lib}/_pyrepl/unix_console.py (100%) rename {Lib => pylib/Lib}/_pyrepl/unix_eventqueue.py (100%) rename {Lib => pylib/Lib}/_pyrepl/utils.py (100%) rename {Lib => pylib/Lib}/_pyrepl/windows_console.py (100%) rename {Lib => pylib/Lib}/_sitebuiltins.py (100%) rename {Lib => pylib/Lib}/_strptime.py (100%) rename {Lib => pylib/Lib}/_threading_local.py (100%) rename {Lib => pylib/Lib}/_weakrefset.py (100%) rename {Lib => pylib/Lib}/abc.py (100%) rename {Lib => pylib/Lib}/antigravity.py (100%) rename {Lib => pylib/Lib}/argparse.py (100%) rename {Lib => pylib/Lib}/ast.py (100%) rename {Lib => pylib/Lib}/asyncio/__init__.py (100%) rename {Lib => pylib/Lib}/asyncio/__main__.py (100%) rename {Lib => pylib/Lib}/asyncio/base_events.py (100%) rename {Lib => pylib/Lib}/asyncio/base_futures.py (100%) rename {Lib => pylib/Lib}/asyncio/base_subprocess.py (100%) rename {Lib => pylib/Lib}/asyncio/base_tasks.py (100%) rename {Lib => pylib/Lib}/asyncio/constants.py (100%) rename {Lib => pylib/Lib}/asyncio/coroutines.py (100%) rename {Lib => pylib/Lib}/asyncio/events.py (100%) rename {Lib => pylib/Lib}/asyncio/exceptions.py (100%) rename {Lib => pylib/Lib}/asyncio/format_helpers.py (100%) rename {Lib => pylib/Lib}/asyncio/futures.py (100%) rename {Lib => pylib/Lib}/asyncio/locks.py (100%) rename {Lib => pylib/Lib}/asyncio/log.py (100%) rename {Lib => pylib/Lib}/asyncio/mixins.py (100%) rename {Lib => pylib/Lib}/asyncio/proactor_events.py (100%) rename {Lib => pylib/Lib}/asyncio/protocols.py (100%) rename {Lib => pylib/Lib}/asyncio/queues.py (100%) rename {Lib => pylib/Lib}/asyncio/runners.py (100%) rename {Lib => pylib/Lib}/asyncio/selector_events.py (100%) rename {Lib => pylib/Lib}/asyncio/sslproto.py (100%) rename {Lib => pylib/Lib}/asyncio/staggered.py (100%) rename {Lib => pylib/Lib}/asyncio/streams.py (100%) rename {Lib => pylib/Lib}/asyncio/subprocess.py (100%) rename {Lib => pylib/Lib}/asyncio/taskgroups.py (100%) rename {Lib => pylib/Lib}/asyncio/tasks.py (100%) rename {Lib => pylib/Lib}/asyncio/threads.py (100%) rename {Lib => pylib/Lib}/asyncio/timeouts.py (100%) rename {Lib => pylib/Lib}/asyncio/transports.py (100%) rename {Lib => pylib/Lib}/asyncio/trsock.py (100%) rename {Lib => pylib/Lib}/asyncio/unix_events.py (100%) rename {Lib => pylib/Lib}/asyncio/windows_events.py (100%) rename {Lib => pylib/Lib}/asyncio/windows_utils.py (100%) rename {Lib => pylib/Lib}/base64.py (100%) rename {Lib => pylib/Lib}/bdb.py (100%) rename {Lib => pylib/Lib}/bisect.py (100%) rename {Lib => pylib/Lib}/bz2.py (100%) rename {Lib => pylib/Lib}/calendar.py (100%) rename {Lib => pylib/Lib}/cmd.py (100%) rename {Lib => pylib/Lib}/code.py (100%) rename {Lib => pylib/Lib}/codecs.py (100%) rename {Lib => pylib/Lib}/codeop.py (100%) rename {Lib => pylib/Lib}/collections/__init__.py (100%) rename {Lib => pylib/Lib}/collections/_defaultdict.py (100%) rename {Lib => pylib/Lib}/collections/abc.py (100%) rename {Lib => pylib/Lib}/colorsys.py (100%) rename {Lib => pylib/Lib}/compileall.py (100%) rename {Lib => pylib/Lib}/concurrent/__init__.py (100%) rename {Lib => pylib/Lib}/concurrent/futures/__init__.py (100%) rename {Lib => pylib/Lib}/concurrent/futures/_base.py (100%) rename {Lib => pylib/Lib}/concurrent/futures/process.py (100%) rename {Lib => pylib/Lib}/concurrent/futures/thread.py (100%) rename {Lib => pylib/Lib}/configparser.py (100%) rename {Lib => pylib/Lib}/contextlib.py (100%) rename {Lib => pylib/Lib}/contextvars.py (100%) rename {Lib => pylib/Lib}/copy.py (100%) rename {Lib => pylib/Lib}/copyreg.py (100%) rename {Lib => pylib/Lib}/csv.py (100%) rename {Lib => pylib/Lib}/ctypes/__init__.py (100%) rename {Lib => pylib/Lib}/ctypes/_aix.py (100%) rename {Lib => pylib/Lib}/ctypes/_endian.py (100%) rename {Lib => pylib/Lib}/ctypes/macholib/README.ctypes (100%) rename {Lib => pylib/Lib}/ctypes/macholib/__init__.py (100%) rename {Lib => pylib/Lib}/ctypes/macholib/dyld.py (100%) rename {Lib => pylib/Lib}/ctypes/macholib/dylib.py (100%) rename {Lib => pylib/Lib}/ctypes/macholib/fetch_macholib (100%) rename {Lib => pylib/Lib}/ctypes/macholib/fetch_macholib.bat (100%) rename {Lib => pylib/Lib}/ctypes/macholib/framework.py (100%) rename {Lib => pylib/Lib}/ctypes/test/__init__.py (100%) rename {Lib => pylib/Lib}/ctypes/test/__main__.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_anon.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_array_in_pointer.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_arrays.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_as_parameter.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_bitfields.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_buffers.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_bytes.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_byteswap.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_callbacks.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_cast.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_cfuncs.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_checkretval.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_delattr.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_errno.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_find.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_frombuffer.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_funcptr.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_functions.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_incomplete.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_init.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_internals.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_keeprefs.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_libc.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_loading.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_macholib.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_memfunctions.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_numbers.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_objects.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_parameters.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_pep3118.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_pickling.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_pointers.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_prototypes.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_python_api.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_random_things.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_refcounts.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_repr.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_returnfuncptrs.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_simplesubclasses.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_sizes.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_slicing.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_stringptr.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_strings.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_struct_fields.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_structures.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_unaligned_structures.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_unicode.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_values.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_varsize_struct.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_win32.py (100%) rename {Lib => pylib/Lib}/ctypes/test/test_wintypes.py (100%) rename {Lib => pylib/Lib}/ctypes/util.py (100%) rename {Lib => pylib/Lib}/ctypes/wintypes.py (100%) rename {Lib => pylib/Lib}/dataclasses.py (100%) rename {Lib => pylib/Lib}/datetime.py (100%) rename {Lib => pylib/Lib}/dbm/__init__.py (100%) rename {Lib => pylib/Lib}/dbm/dumb.py (100%) rename {Lib => pylib/Lib}/decimal.py (100%) rename {Lib => pylib/Lib}/difflib.py (100%) rename {Lib => pylib/Lib}/dis.py (100%) rename {Lib => pylib/Lib}/distutils/README (100%) rename {Lib => pylib/Lib}/distutils/__init__.py (100%) rename {Lib => pylib/Lib}/distutils/_msvccompiler.py (100%) rename {Lib => pylib/Lib}/distutils/archive_util.py (100%) rename {Lib => pylib/Lib}/distutils/bcppcompiler.py (100%) rename {Lib => pylib/Lib}/distutils/ccompiler.py (100%) rename {Lib => pylib/Lib}/distutils/cmd.py (100%) rename {Lib => pylib/Lib}/distutils/command/__init__.py (100%) rename {Lib => pylib/Lib}/distutils/command/bdist.py (100%) rename {Lib => pylib/Lib}/distutils/command/bdist_dumb.py (100%) rename {Lib => pylib/Lib}/distutils/command/bdist_msi.py (100%) rename {Lib => pylib/Lib}/distutils/command/bdist_rpm.py (100%) rename {Lib => pylib/Lib}/distutils/command/bdist_wininst.py (100%) rename {Lib => pylib/Lib}/distutils/command/build.py (100%) rename {Lib => pylib/Lib}/distutils/command/build_clib.py (100%) rename {Lib => pylib/Lib}/distutils/command/build_ext.py (100%) rename {Lib => pylib/Lib}/distutils/command/build_py.py (100%) rename {Lib => pylib/Lib}/distutils/command/build_scripts.py (100%) rename {Lib => pylib/Lib}/distutils/command/check.py (100%) rename {Lib => pylib/Lib}/distutils/command/clean.py (100%) rename {Lib => pylib/Lib}/distutils/command/command_template (100%) rename {Lib => pylib/Lib}/distutils/command/config.py (100%) rename {Lib => pylib/Lib}/distutils/command/install.py (100%) rename {Lib => pylib/Lib}/distutils/command/install_data.py (100%) rename {Lib => pylib/Lib}/distutils/command/install_egg_info.py (100%) rename {Lib => pylib/Lib}/distutils/command/install_headers.py (100%) rename {Lib => pylib/Lib}/distutils/command/install_lib.py (100%) rename {Lib => pylib/Lib}/distutils/command/install_scripts.py (100%) rename {Lib => pylib/Lib}/distutils/command/register.py (100%) rename {Lib => pylib/Lib}/distutils/command/sdist.py (100%) rename {Lib => pylib/Lib}/distutils/command/upload.py (100%) rename {Lib => pylib/Lib}/distutils/config.py (100%) rename {Lib => pylib/Lib}/distutils/core.py (100%) rename {Lib => pylib/Lib}/distutils/cygwinccompiler.py (100%) rename {Lib => pylib/Lib}/distutils/debug.py (100%) rename {Lib => pylib/Lib}/distutils/dep_util.py (100%) rename {Lib => pylib/Lib}/distutils/dir_util.py (100%) rename {Lib => pylib/Lib}/distutils/dist.py (100%) rename {Lib => pylib/Lib}/distutils/errors.py (100%) rename {Lib => pylib/Lib}/distutils/extension.py (100%) rename {Lib => pylib/Lib}/distutils/fancy_getopt.py (100%) rename {Lib => pylib/Lib}/distutils/file_util.py (100%) rename {Lib => pylib/Lib}/distutils/filelist.py (100%) rename {Lib => pylib/Lib}/distutils/log.py (100%) rename {Lib => pylib/Lib}/distutils/msvc9compiler.py (100%) rename {Lib => pylib/Lib}/distutils/msvccompiler.py (100%) rename {Lib => pylib/Lib}/distutils/spawn.py (100%) rename {Lib => pylib/Lib}/distutils/sysconfig.py (100%) rename {Lib => pylib/Lib}/distutils/text_file.py (100%) rename {Lib => pylib/Lib}/distutils/unixccompiler.py (100%) rename {Lib => pylib/Lib}/distutils/util.py (100%) rename {Lib => pylib/Lib}/distutils/version.py (100%) rename {Lib => pylib/Lib}/distutils/versionpredicate.py (100%) rename {Lib => pylib/Lib}/doctest.py (100%) rename {Lib => pylib/Lib}/dummy_threading.py (100%) rename {Lib => pylib/Lib}/email/__init__.py (100%) rename {Lib => pylib/Lib}/email/_encoded_words.py (100%) rename {Lib => pylib/Lib}/email/_header_value_parser.py (100%) rename {Lib => pylib/Lib}/email/_parseaddr.py (100%) rename {Lib => pylib/Lib}/email/_policybase.py (100%) rename {Lib => pylib/Lib}/email/architecture.rst (100%) rename {Lib => pylib/Lib}/email/base64mime.py (100%) rename {Lib => pylib/Lib}/email/charset.py (100%) rename {Lib => pylib/Lib}/email/contentmanager.py (100%) rename {Lib => pylib/Lib}/email/encoders.py (100%) rename {Lib => pylib/Lib}/email/errors.py (100%) rename {Lib => pylib/Lib}/email/feedparser.py (100%) rename {Lib => pylib/Lib}/email/generator.py (100%) rename {Lib => pylib/Lib}/email/header.py (100%) rename {Lib => pylib/Lib}/email/headerregistry.py (100%) rename {Lib => pylib/Lib}/email/iterators.py (100%) rename {Lib => pylib/Lib}/email/message.py (100%) rename {Lib => pylib/Lib}/email/mime/__init__.py (100%) rename {Lib => pylib/Lib}/email/mime/application.py (100%) rename {Lib => pylib/Lib}/email/mime/audio.py (100%) rename {Lib => pylib/Lib}/email/mime/base.py (100%) rename {Lib => pylib/Lib}/email/mime/image.py (100%) rename {Lib => pylib/Lib}/email/mime/message.py (100%) rename {Lib => pylib/Lib}/email/mime/multipart.py (100%) rename {Lib => pylib/Lib}/email/mime/nonmultipart.py (100%) rename {Lib => pylib/Lib}/email/mime/text.py (100%) rename {Lib => pylib/Lib}/email/parser.py (100%) rename {Lib => pylib/Lib}/email/policy.py (100%) rename {Lib => pylib/Lib}/email/quoprimime.py (100%) rename {Lib => pylib/Lib}/email/utils.py (100%) rename {Lib => pylib/Lib}/encodings/__init__.py (100%) rename {Lib => pylib/Lib}/encodings/aliases.py (100%) rename {Lib => pylib/Lib}/encodings/ascii.py (100%) rename {Lib => pylib/Lib}/encodings/base64_codec.py (100%) rename {Lib => pylib/Lib}/encodings/big5.py (100%) rename {Lib => pylib/Lib}/encodings/big5hkscs.py (100%) rename {Lib => pylib/Lib}/encodings/bz2_codec.py (100%) rename {Lib => pylib/Lib}/encodings/charmap.py (100%) rename {Lib => pylib/Lib}/encodings/cp037.py (100%) rename {Lib => pylib/Lib}/encodings/cp1006.py (100%) rename {Lib => pylib/Lib}/encodings/cp1026.py (100%) rename {Lib => pylib/Lib}/encodings/cp1125.py (100%) rename {Lib => pylib/Lib}/encodings/cp1140.py (100%) rename {Lib => pylib/Lib}/encodings/cp1250.py (100%) rename {Lib => pylib/Lib}/encodings/cp1251.py (100%) rename {Lib => pylib/Lib}/encodings/cp1252.py (100%) rename {Lib => pylib/Lib}/encodings/cp1253.py (100%) rename {Lib => pylib/Lib}/encodings/cp1254.py (100%) rename {Lib => pylib/Lib}/encodings/cp1255.py (100%) rename {Lib => pylib/Lib}/encodings/cp1256.py (100%) rename {Lib => pylib/Lib}/encodings/cp1257.py (100%) rename {Lib => pylib/Lib}/encodings/cp1258.py (100%) rename {Lib => pylib/Lib}/encodings/cp273.py (100%) rename {Lib => pylib/Lib}/encodings/cp424.py (100%) rename {Lib => pylib/Lib}/encodings/cp437.py (100%) rename {Lib => pylib/Lib}/encodings/cp500.py (100%) rename {Lib => pylib/Lib}/encodings/cp720.py (100%) rename {Lib => pylib/Lib}/encodings/cp737.py (100%) rename {Lib => pylib/Lib}/encodings/cp775.py (100%) rename {Lib => pylib/Lib}/encodings/cp850.py (100%) rename {Lib => pylib/Lib}/encodings/cp852.py (100%) rename {Lib => pylib/Lib}/encodings/cp855.py (100%) rename {Lib => pylib/Lib}/encodings/cp856.py (100%) rename {Lib => pylib/Lib}/encodings/cp857.py (100%) rename {Lib => pylib/Lib}/encodings/cp858.py (100%) rename {Lib => pylib/Lib}/encodings/cp860.py (100%) rename {Lib => pylib/Lib}/encodings/cp861.py (100%) rename {Lib => pylib/Lib}/encodings/cp862.py (100%) rename {Lib => pylib/Lib}/encodings/cp863.py (100%) rename {Lib => pylib/Lib}/encodings/cp864.py (100%) rename {Lib => pylib/Lib}/encodings/cp865.py (100%) rename {Lib => pylib/Lib}/encodings/cp866.py (100%) rename {Lib => pylib/Lib}/encodings/cp869.py (100%) rename {Lib => pylib/Lib}/encodings/cp874.py (100%) rename {Lib => pylib/Lib}/encodings/cp875.py (100%) rename {Lib => pylib/Lib}/encodings/cp932.py (100%) rename {Lib => pylib/Lib}/encodings/cp949.py (100%) rename {Lib => pylib/Lib}/encodings/cp950.py (100%) rename {Lib => pylib/Lib}/encodings/euc_jis_2004.py (100%) rename {Lib => pylib/Lib}/encodings/euc_jisx0213.py (100%) rename {Lib => pylib/Lib}/encodings/euc_jp.py (100%) rename {Lib => pylib/Lib}/encodings/euc_kr.py (100%) rename {Lib => pylib/Lib}/encodings/gb18030.py (100%) rename {Lib => pylib/Lib}/encodings/gb2312.py (100%) rename {Lib => pylib/Lib}/encodings/gbk.py (100%) rename {Lib => pylib/Lib}/encodings/hex_codec.py (100%) rename {Lib => pylib/Lib}/encodings/hp_roman8.py (100%) rename {Lib => pylib/Lib}/encodings/hz.py (100%) rename {Lib => pylib/Lib}/encodings/idna.py (100%) rename {Lib => pylib/Lib}/encodings/iso2022_jp.py (100%) rename {Lib => pylib/Lib}/encodings/iso2022_jp_1.py (100%) rename {Lib => pylib/Lib}/encodings/iso2022_jp_2.py (100%) rename {Lib => pylib/Lib}/encodings/iso2022_jp_2004.py (100%) rename {Lib => pylib/Lib}/encodings/iso2022_jp_3.py (100%) rename {Lib => pylib/Lib}/encodings/iso2022_jp_ext.py (100%) rename {Lib => pylib/Lib}/encodings/iso2022_kr.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_1.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_10.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_11.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_13.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_14.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_15.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_16.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_2.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_3.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_4.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_5.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_6.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_7.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_8.py (100%) rename {Lib => pylib/Lib}/encodings/iso8859_9.py (100%) rename {Lib => pylib/Lib}/encodings/johab.py (100%) rename {Lib => pylib/Lib}/encodings/koi8_r.py (100%) rename {Lib => pylib/Lib}/encodings/koi8_t.py (100%) rename {Lib => pylib/Lib}/encodings/koi8_u.py (100%) rename {Lib => pylib/Lib}/encodings/kz1048.py (100%) rename {Lib => pylib/Lib}/encodings/latin_1.py (100%) rename {Lib => pylib/Lib}/encodings/mac_arabic.py (100%) rename {Lib => pylib/Lib}/encodings/mac_croatian.py (100%) rename {Lib => pylib/Lib}/encodings/mac_cyrillic.py (100%) rename {Lib => pylib/Lib}/encodings/mac_farsi.py (100%) rename {Lib => pylib/Lib}/encodings/mac_greek.py (100%) rename {Lib => pylib/Lib}/encodings/mac_iceland.py (100%) rename {Lib => pylib/Lib}/encodings/mac_latin2.py (100%) rename {Lib => pylib/Lib}/encodings/mac_roman.py (100%) rename {Lib => pylib/Lib}/encodings/mac_romanian.py (100%) rename {Lib => pylib/Lib}/encodings/mac_turkish.py (100%) rename {Lib => pylib/Lib}/encodings/mbcs.py (100%) rename {Lib => pylib/Lib}/encodings/oem.py (100%) rename {Lib => pylib/Lib}/encodings/palmos.py (100%) rename {Lib => pylib/Lib}/encodings/ptcp154.py (100%) rename {Lib => pylib/Lib}/encodings/punycode.py (100%) rename {Lib => pylib/Lib}/encodings/quopri_codec.py (100%) rename {Lib => pylib/Lib}/encodings/raw_unicode_escape.py (100%) rename {Lib => pylib/Lib}/encodings/rot_13.py (100%) rename {Lib => pylib/Lib}/encodings/shift_jis.py (100%) rename {Lib => pylib/Lib}/encodings/shift_jis_2004.py (100%) rename {Lib => pylib/Lib}/encodings/shift_jisx0213.py (100%) rename {Lib => pylib/Lib}/encodings/tis_620.py (100%) rename {Lib => pylib/Lib}/encodings/undefined.py (100%) rename {Lib => pylib/Lib}/encodings/unicode_escape.py (100%) rename {Lib => pylib/Lib}/encodings/utf_16.py (100%) rename {Lib => pylib/Lib}/encodings/utf_16_be.py (100%) rename {Lib => pylib/Lib}/encodings/utf_16_le.py (100%) rename {Lib => pylib/Lib}/encodings/utf_32.py (100%) rename {Lib => pylib/Lib}/encodings/utf_32_be.py (100%) rename {Lib => pylib/Lib}/encodings/utf_32_le.py (100%) rename {Lib => pylib/Lib}/encodings/utf_7.py (100%) rename {Lib => pylib/Lib}/encodings/utf_8.py (100%) rename {Lib => pylib/Lib}/encodings/utf_8_sig.py (100%) rename {Lib => pylib/Lib}/encodings/uu_codec.py (100%) rename {Lib => pylib/Lib}/encodings/zlib_codec.py (100%) rename {Lib => pylib/Lib}/ensurepip/__init__.py (100%) rename {Lib => pylib/Lib}/ensurepip/__main__.py (100%) rename {Lib => pylib/Lib}/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl (100%) rename {Lib => pylib/Lib}/ensurepip/_uninstall.py (100%) rename {Lib => pylib/Lib}/enum.py (100%) rename {Lib => pylib/Lib}/filecmp.py (100%) rename {Lib => pylib/Lib}/fileinput.py (100%) rename {Lib => pylib/Lib}/fnmatch.py (100%) rename {Lib => pylib/Lib}/fractions.py (100%) rename {Lib => pylib/Lib}/ftplib.py (100%) rename {Lib => pylib/Lib}/functools.py (100%) rename {Lib => pylib/Lib}/genericpath.py (100%) rename {Lib => pylib/Lib}/getopt.py (100%) rename {Lib => pylib/Lib}/getpass.py (100%) rename {Lib => pylib/Lib}/gettext.py (100%) rename {Lib => pylib/Lib}/glob.py (100%) rename {Lib => pylib/Lib}/graphlib.py (100%) rename {Lib => pylib/Lib}/gzip.py (100%) rename {Lib => pylib/Lib}/hashlib.py (100%) rename {Lib => pylib/Lib}/heapq.py (100%) rename {Lib => pylib/Lib}/hmac.py (100%) rename {Lib => pylib/Lib}/html/__init__.py (100%) rename {Lib => pylib/Lib}/html/entities.py (100%) rename {Lib => pylib/Lib}/html/parser.py (100%) rename {Lib => pylib/Lib}/http/__init__.py (100%) rename {Lib => pylib/Lib}/http/client.py (100%) rename {Lib => pylib/Lib}/http/cookiejar.py (100%) rename {Lib => pylib/Lib}/http/cookies.py (100%) rename {Lib => pylib/Lib}/http/server.py (100%) rename {Lib => pylib/Lib}/importlib/__init__.py (100%) rename {Lib => pylib/Lib}/importlib/_abc.py (100%) rename {Lib => pylib/Lib}/importlib/_bootstrap.py (100%) rename {Lib => pylib/Lib}/importlib/_bootstrap_external.py (100%) rename {Lib => pylib/Lib}/importlib/abc.py (100%) rename {Lib => pylib/Lib}/importlib/machinery.py (100%) rename {Lib => pylib/Lib}/importlib/metadata/__init__.py (100%) rename {Lib => pylib/Lib}/importlib/metadata/_adapters.py (100%) rename {Lib => pylib/Lib}/importlib/metadata/_collections.py (100%) rename {Lib => pylib/Lib}/importlib/metadata/_functools.py (100%) rename {Lib => pylib/Lib}/importlib/metadata/_itertools.py (100%) rename {Lib => pylib/Lib}/importlib/metadata/_meta.py (100%) rename {Lib => pylib/Lib}/importlib/metadata/_text.py (100%) rename {Lib => pylib/Lib}/importlib/readers.py (100%) rename {Lib => pylib/Lib}/importlib/resources/__init__.py (100%) rename {Lib => pylib/Lib}/importlib/resources/_adapters.py (100%) rename {Lib => pylib/Lib}/importlib/resources/_common.py (100%) rename {Lib => pylib/Lib}/importlib/resources/_itertools.py (100%) rename {Lib => pylib/Lib}/importlib/resources/_legacy.py (100%) rename {Lib => pylib/Lib}/importlib/resources/abc.py (100%) rename {Lib => pylib/Lib}/importlib/resources/readers.py (100%) rename {Lib => pylib/Lib}/importlib/resources/simple.py (100%) rename {Lib => pylib/Lib}/importlib/simple.py (100%) rename {Lib => pylib/Lib}/importlib/util.py (100%) rename {Lib => pylib/Lib}/inspect.py (100%) rename {Lib => pylib/Lib}/io.py (100%) rename {Lib => pylib/Lib}/ipaddress.py (100%) rename {Lib => pylib/Lib}/json/__init__.py (100%) rename {Lib => pylib/Lib}/json/decoder.py (100%) rename {Lib => pylib/Lib}/json/encoder.py (100%) rename {Lib => pylib/Lib}/json/scanner.py (100%) rename {Lib => pylib/Lib}/json/tool.py (100%) rename {Lib => pylib/Lib}/keyword.py (100%) rename {Lib => pylib/Lib}/linecache.py (100%) rename {Lib => pylib/Lib}/locale.py (100%) rename {Lib => pylib/Lib}/logging/__init__.py (100%) rename {Lib => pylib/Lib}/logging/config.py (100%) rename {Lib => pylib/Lib}/logging/handlers.py (100%) rename {Lib => pylib/Lib}/mailbox.py (100%) rename {Lib => pylib/Lib}/mimetypes.py (100%) rename {Lib => pylib/Lib}/multiprocessing/__init__.py (100%) rename {Lib => pylib/Lib}/multiprocessing/connection.py (100%) rename {Lib => pylib/Lib}/multiprocessing/context.py (100%) rename {Lib => pylib/Lib}/multiprocessing/dummy/__init__.py (100%) rename {Lib => pylib/Lib}/multiprocessing/dummy/connection.py (100%) rename {Lib => pylib/Lib}/multiprocessing/forkserver.py (100%) rename {Lib => pylib/Lib}/multiprocessing/heap.py (100%) rename {Lib => pylib/Lib}/multiprocessing/managers.py (100%) rename {Lib => pylib/Lib}/multiprocessing/pool.py (100%) rename {Lib => pylib/Lib}/multiprocessing/popen_fork.py (100%) rename {Lib => pylib/Lib}/multiprocessing/popen_forkserver.py (100%) rename {Lib => pylib/Lib}/multiprocessing/popen_spawn_posix.py (100%) rename {Lib => pylib/Lib}/multiprocessing/popen_spawn_win32.py (100%) rename {Lib => pylib/Lib}/multiprocessing/process.py (100%) rename {Lib => pylib/Lib}/multiprocessing/queues.py (100%) rename {Lib => pylib/Lib}/multiprocessing/reduction.py (100%) rename {Lib => pylib/Lib}/multiprocessing/resource_sharer.py (100%) rename {Lib => pylib/Lib}/multiprocessing/resource_tracker.py (100%) rename {Lib => pylib/Lib}/multiprocessing/shared_memory.py (100%) rename {Lib => pylib/Lib}/multiprocessing/sharedctypes.py (100%) rename {Lib => pylib/Lib}/multiprocessing/spawn.py (100%) rename {Lib => pylib/Lib}/multiprocessing/synchronize.py (100%) rename {Lib => pylib/Lib}/multiprocessing/util.py (100%) rename {Lib => pylib/Lib}/netrc.py (100%) rename {Lib => pylib/Lib}/ntpath.py (100%) rename {Lib => pylib/Lib}/nturl2path.py (100%) rename {Lib => pylib/Lib}/numbers.py (100%) rename {Lib => pylib/Lib}/opcode.py (100%) rename {Lib => pylib/Lib}/operator.py (100%) rename {Lib => pylib/Lib}/optparse.py (100%) rename {Lib => pylib/Lib}/os.py (100%) rename {Lib => pylib/Lib}/pathlib.py (100%) rename {Lib => pylib/Lib}/pdb.py (100%) rename {Lib => pylib/Lib}/pickle.py (100%) rename {Lib => pylib/Lib}/pickletools.py (100%) rename {Lib => pylib/Lib}/pkgutil.py (100%) rename {Lib => pylib/Lib}/platform.py (100%) rename {Lib => pylib/Lib}/plistlib.py (100%) rename {Lib => pylib/Lib}/posixpath.py (100%) rename {Lib => pylib/Lib}/pprint.py (100%) rename {Lib => pylib/Lib}/pty.py (100%) rename {Lib => pylib/Lib}/py_compile.py (100%) rename {Lib => pylib/Lib}/pydoc.py (100%) rename {Lib => pylib/Lib}/pydoc_data/__init__.py (100%) rename {Lib => pylib/Lib}/pydoc_data/_pydoc.css (100%) rename {Lib => pylib/Lib}/pydoc_data/topics.py (100%) rename {Lib => pylib/Lib}/queue.py (100%) rename {Lib => pylib/Lib}/quopri.py (100%) rename {Lib => pylib/Lib}/random.py (100%) rename {Lib => pylib/Lib}/re/__init__.py (100%) rename {Lib => pylib/Lib}/re/_casefix.py (100%) rename {Lib => pylib/Lib}/re/_compiler.py (100%) rename {Lib => pylib/Lib}/re/_constants.py (100%) rename {Lib => pylib/Lib}/re/_parser.py (100%) rename {Lib => pylib/Lib}/reprlib.py (100%) rename {Lib => pylib/Lib}/rlcompleter.py (100%) rename {Lib => pylib/Lib}/runpy.py (100%) rename {Lib => pylib/Lib}/sched.py (100%) rename {Lib => pylib/Lib}/secrets.py (100%) rename {Lib => pylib/Lib}/selectors.py (100%) rename {Lib => pylib/Lib}/shelve.py (100%) rename {Lib => pylib/Lib}/shlex.py (100%) rename {Lib => pylib/Lib}/shutil.py (100%) rename {Lib => pylib/Lib}/signal.py (100%) rename {Lib => pylib/Lib}/site.py (100%) rename {Lib => pylib/Lib}/smtplib.py (100%) rename {Lib => pylib/Lib}/socket.py (100%) rename {Lib => pylib/Lib}/socketserver.py (100%) rename {Lib => pylib/Lib}/sqlite3/__init__.py (100%) rename {Lib => pylib/Lib}/sqlite3/__main__.py (100%) rename {Lib => pylib/Lib}/sqlite3/dbapi2.py (100%) rename {Lib => pylib/Lib}/sqlite3/dump.py (100%) rename {Lib => pylib/Lib}/sre_compile.py (100%) rename {Lib => pylib/Lib}/sre_constants.py (100%) rename {Lib => pylib/Lib}/sre_parse.py (100%) rename {Lib => pylib/Lib}/ssl.py (100%) rename {Lib => pylib/Lib}/stat.py (100%) rename {Lib => pylib/Lib}/statistics.py (100%) rename {Lib => pylib/Lib}/string.py (100%) rename {Lib => pylib/Lib}/stringprep.py (100%) rename {Lib => pylib/Lib}/struct.py (100%) rename {Lib => pylib/Lib}/subprocess.py (100%) rename {Lib => pylib/Lib}/sysconfig.py (100%) rename {Lib => pylib/Lib}/tabnanny.py (100%) rename {Lib => pylib/Lib}/tarfile.py (100%) rename {Lib => pylib/Lib}/tempfile.py (100%) rename {Lib => pylib/Lib}/test/__init__.py (100%) rename {Lib => pylib/Lib}/test/__main__.py (100%) rename {Lib => pylib/Lib}/test/_test_atexit.py (100%) rename {Lib => pylib/Lib}/test/_test_multiprocessing.py (100%) rename {Lib => pylib/Lib}/test/_typed_dict_helper.py (100%) rename {Lib => pylib/Lib}/test/ann_module.py (100%) rename {Lib => pylib/Lib}/test/ann_module2.py (100%) rename {Lib => pylib/Lib}/test/ann_module3.py (100%) rename {Lib => pylib/Lib}/test/ann_module4.py (100%) rename {Lib => pylib/Lib}/test/ann_module5.py (100%) rename {Lib => pylib/Lib}/test/ann_module6.py (100%) rename {Lib => pylib/Lib}/test/ann_module7.py (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-alaw.aifc (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm16.aiff (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm16.au (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm16.wav (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm24-ext.wav (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm24.aiff (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm24.au (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm24.wav (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm32.aiff (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm32.au (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm32.wav (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm8.aiff (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm8.au (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-pcm8.wav (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-ulaw.aifc (100%) rename {Lib => pylib/Lib}/test/audiodata/pluck-ulaw.au (100%) rename {Lib => pylib/Lib}/test/audiotest.au (100%) rename {Lib => pylib/Lib}/test/audiotests.py (100%) rename {Lib => pylib/Lib}/test/badsyntax_3131.py (100%) rename {Lib => pylib/Lib}/test/badsyntax_pep3120.py (100%) rename {Lib => pylib/Lib}/test/cfgparser.1 (100%) rename {Lib => pylib/Lib}/test/cfgparser.2 (100%) rename {Lib => pylib/Lib}/test/cfgparser.3 (100%) rename {Lib => pylib/Lib}/test/dataclass_module_1.py (100%) rename {Lib => pylib/Lib}/test/dataclass_module_1_str.py (100%) rename {Lib => pylib/Lib}/test/dataclass_module_2.py (100%) rename {Lib => pylib/Lib}/test/dataclass_module_2_str.py (100%) rename {Lib => pylib/Lib}/test/dataclass_textanno.py (100%) rename {Lib => pylib/Lib}/test/datetimetester.py (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/abs.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/add.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/and.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/base.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/clamp.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/class.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/compare.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/comparetotal.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/comparetotmag.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/copy.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/copyabs.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/copynegate.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/copysign.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddAbs.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddAdd.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddAnd.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddBase.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddCanonical.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddClass.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddCompare.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddCompareSig.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddCompareTotal.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddCompareTotalMag.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddCopy.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddCopyAbs.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddCopyNegate.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddCopySign.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddDivide.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddDivideInt.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddEncode.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddFMA.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddInvert.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddLogB.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddMax.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddMaxMag.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddMin.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddMinMag.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddMinus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddMultiply.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddNextMinus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddNextPlus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddNextToward.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddOr.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddPlus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddQuantize.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddReduce.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddRemainder.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddRemainderNear.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddRotate.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddSameQuantum.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddScaleB.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddShift.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddSubtract.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddToIntegral.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ddXor.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/decDouble.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/decQuad.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/decSingle.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/divide.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/divideint.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqAbs.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqAdd.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqAnd.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqBase.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqCanonical.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqClass.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqCompare.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqCompareSig.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqCompareTotal.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqCompareTotalMag.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqCopy.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqCopyAbs.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqCopyNegate.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqCopySign.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqDivide.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqDivideInt.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqEncode.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqFMA.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqInvert.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqLogB.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqMax.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqMaxMag.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqMin.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqMinMag.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqMinus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqMultiply.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqNextMinus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqNextPlus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqNextToward.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqOr.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqPlus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqQuantize.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqReduce.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqRemainder.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqRemainderNear.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqRotate.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqSameQuantum.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqScaleB.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqShift.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqSubtract.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqToIntegral.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dqXor.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dsBase.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/dsEncode.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/exp.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/extra.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/fma.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/inexact.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/invert.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/ln.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/log10.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/logb.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/max.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/maxmag.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/min.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/minmag.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/minus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/multiply.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/nextminus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/nextplus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/nexttoward.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/or.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/plus.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/power.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/powersqrt.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/quantize.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/randomBound32.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/randoms.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/reduce.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/remainder.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/remainderNear.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/rescale.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/rotate.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/rounding.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/samequantum.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/scaleb.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/shift.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/squareroot.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/subtract.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/testall.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/tointegral.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/tointegralx.decTest (100%) rename {Lib => pylib/Lib}/test/decimaltestdata/xor.decTest (100%) rename {Lib => pylib/Lib}/test/double_const.py (100%) rename {Lib => pylib/Lib}/test/encoded_modules/__init__.py (100%) rename {Lib => pylib/Lib}/test/encoded_modules/module_iso_8859_1.py (100%) rename {Lib => pylib/Lib}/test/encoded_modules/module_koi8_r.py (100%) rename {Lib => pylib/Lib}/test/exception_hierarchy.txt (100%) rename {Lib => pylib/Lib}/test/floating_points.txt (100%) rename {Lib => pylib/Lib}/test/formatfloat_testcases.txt (100%) rename {Lib => pylib/Lib}/test/keycert.passwd.pem (100%) rename {Lib => pylib/Lib}/test/keycert.pem (100%) rename {Lib => pylib/Lib}/test/keycert2.pem (100%) rename {Lib => pylib/Lib}/test/keycert3.pem (100%) rename {Lib => pylib/Lib}/test/keycert4.pem (100%) rename {Lib => pylib/Lib}/test/keycertecc.pem (100%) rename {Lib => pylib/Lib}/test/libregrtest/__init__.py (100%) rename {Lib => pylib/Lib}/test/libregrtest/cmdline.py (100%) rename {Lib => pylib/Lib}/test/libregrtest/main.py (100%) rename {Lib => pylib/Lib}/test/libregrtest/refleak.py (100%) rename {Lib => pylib/Lib}/test/libregrtest/runtest.py (100%) rename {Lib => pylib/Lib}/test/libregrtest/runtest_mp.py (100%) rename {Lib => pylib/Lib}/test/libregrtest/save_env.py (100%) rename {Lib => pylib/Lib}/test/libregrtest/setup.py (100%) rename {Lib => pylib/Lib}/test/libregrtest/utils.py (100%) rename {Lib => pylib/Lib}/test/libregrtest/win_utils.py (100%) rename {Lib => pylib/Lib}/test/list_tests.py (100%) rename {Lib => pylib/Lib}/test/lock_tests.py (100%) rename {Lib => pylib/Lib}/test/mapping_tests.py (100%) rename {Lib => pylib/Lib}/test/mathdata/cmath_testcases.txt (100%) rename {Lib => pylib/Lib}/test/mathdata/ieee754.txt (100%) rename {Lib => pylib/Lib}/test/mathdata/math_testcases.txt (100%) rename {Lib => pylib/Lib}/test/mime.types (100%) rename {Lib => pylib/Lib}/test/mock_socket.py (100%) rename {Lib => pylib/Lib}/test/mod_generics_cache.py (100%) rename {Lib => pylib/Lib}/test/pickletester.py (100%) rename {Lib => pylib/Lib}/test/randv2_32.pck (100%) rename {Lib => pylib/Lib}/test/randv2_64.pck (100%) rename {Lib => pylib/Lib}/test/randv3.pck (100%) rename {Lib => pylib/Lib}/test/re_tests.py (100%) rename {Lib => pylib/Lib}/test/recursion.tar (100%) rename {Lib => pylib/Lib}/test/regrtest.py (100%) rename {Lib => pylib/Lib}/test/relimport.py (100%) rename {Lib => pylib/Lib}/test/seq_tests.py (100%) rename {Lib => pylib/Lib}/test/signalinterproctester.py (100%) rename {Lib => pylib/Lib}/test/ssl_servers.py (100%) rename {Lib => pylib/Lib}/test/string_tests.py (100%) rename {Lib => pylib/Lib}/test/subprocessdata/fd_status.py (100%) rename {Lib => pylib/Lib}/test/subprocessdata/input_reader.py (100%) rename {Lib => pylib/Lib}/test/subprocessdata/qcat.py (100%) rename {Lib => pylib/Lib}/test/subprocessdata/qgrep.py (100%) rename {Lib => pylib/Lib}/test/subprocessdata/sigchild_ignore.py (100%) rename {Lib => pylib/Lib}/test/support/__init__.py (100%) rename {Lib => pylib/Lib}/test/support/_hypothesis_stubs/__init__.py (100%) rename {Lib => pylib/Lib}/test/support/_hypothesis_stubs/_helpers.py (100%) rename {Lib => pylib/Lib}/test/support/_hypothesis_stubs/strategies.py (100%) rename {Lib => pylib/Lib}/test/support/ast_helper.py (100%) rename {Lib => pylib/Lib}/test/support/asynchat.py (100%) rename {Lib => pylib/Lib}/test/support/asyncore.py (100%) rename {Lib => pylib/Lib}/test/support/bytecode_helper.py (100%) rename {Lib => pylib/Lib}/test/support/hashlib_helper.py (100%) rename {Lib => pylib/Lib}/test/support/hypothesis_helper.py (100%) rename {Lib => pylib/Lib}/test/support/import_helper.py (100%) rename {Lib => pylib/Lib}/test/support/interpreters.py (100%) rename {Lib => pylib/Lib}/test/support/logging_helper.py (100%) rename {Lib => pylib/Lib}/test/support/os_helper.py (100%) rename {Lib => pylib/Lib}/test/support/script_helper.py (100%) rename {Lib => pylib/Lib}/test/support/smtpd.py (100%) rename {Lib => pylib/Lib}/test/support/socket_helper.py (100%) rename {Lib => pylib/Lib}/test/support/testcase.py (100%) rename {Lib => pylib/Lib}/test/support/testresult.py (100%) rename {Lib => pylib/Lib}/test/support/threading_helper.py (100%) rename {Lib => pylib/Lib}/test/support/warnings_helper.py (100%) rename {Lib => pylib/Lib}/test/test___all__.py (100%) rename {Lib => pylib/Lib}/test/test__colorize.py (100%) rename {Lib => pylib/Lib}/test/test__osx_support.py (100%) rename {Lib => pylib/Lib}/test/test_abc.py (100%) rename {Lib => pylib/Lib}/test/test_abstract_numbers.py (100%) rename {Lib => pylib/Lib}/test/test_android.py (100%) rename {Lib => pylib/Lib}/test/test_argparse.py (100%) rename {Lib => pylib/Lib}/test/test_array.py (100%) rename {Lib => pylib/Lib}/test/test_ast.py (100%) rename {Lib => pylib/Lib}/test/test_asyncgen.py (100%) rename {Lib => pylib/Lib}/test/test_atexit.py (100%) rename {Lib => pylib/Lib}/test/test_audit.py (100%) rename {Lib => pylib/Lib}/test/test_augassign.py (100%) rename {Lib => pylib/Lib}/test/test_base64.py (100%) rename {Lib => pylib/Lib}/test/test_baseexception.py (100%) rename {Lib => pylib/Lib}/test/test_bdb.py (100%) rename {Lib => pylib/Lib}/test/test_bigaddrspace.py (100%) rename {Lib => pylib/Lib}/test/test_bigmem.py (100%) rename {Lib => pylib/Lib}/test/test_binascii.py (100%) rename {Lib => pylib/Lib}/test/test_binop.py (100%) rename {Lib => pylib/Lib}/test/test_bisect.py (100%) rename {Lib => pylib/Lib}/test/test_bool.py (100%) rename {Lib => pylib/Lib}/test/test_buffer.py (100%) rename {Lib => pylib/Lib}/test/test_bufio.py (100%) rename {Lib => pylib/Lib}/test/test_builtin.py (100%) rename {Lib => pylib/Lib}/test/test_bytes.py (100%) rename {Lib => pylib/Lib}/test/test_bz2.py (100%) rename {Lib => pylib/Lib}/test/test_c_locale_coercion.py (100%) rename {Lib => pylib/Lib}/test/test_calendar.py (100%) rename {Lib => pylib/Lib}/test/test_call.py (100%) rename {Lib => pylib/Lib}/test/test_charmapcodec.py (100%) rename {Lib => pylib/Lib}/test/test_class.py (100%) rename {Lib => pylib/Lib}/test/test_cmath.py (100%) rename {Lib => pylib/Lib}/test/test_cmd.py (100%) rename {Lib => pylib/Lib}/test/test_cmd_line.py (100%) rename {Lib => pylib/Lib}/test/test_cmd_line_script.py (100%) rename {Lib => pylib/Lib}/test/test_code.py (100%) rename {Lib => pylib/Lib}/test/test_code_module.py (100%) rename {Lib => pylib/Lib}/test/test_codeccallbacks.py (100%) rename {Lib => pylib/Lib}/test/test_codecs.py (100%) rename {Lib => pylib/Lib}/test/test_codeop.py (100%) rename {Lib => pylib/Lib}/test/test_collections.py (100%) rename {Lib => pylib/Lib}/test/test_colorsys.py (100%) rename {Lib => pylib/Lib}/test/test_compare.py (100%) rename {Lib => pylib/Lib}/test/test_compile.py (100%) rename {Lib => pylib/Lib}/test/test_complex.py (100%) rename {Lib => pylib/Lib}/test/test_configparser.py (100%) rename {Lib => pylib/Lib}/test/test_contains.py (100%) rename {Lib => pylib/Lib}/test/test_context.py (100%) rename {Lib => pylib/Lib}/test/test_contextlib.py (100%) rename {Lib => pylib/Lib}/test/test_copy.py (100%) rename {Lib => pylib/Lib}/test/test_copyreg.py (100%) rename {Lib => pylib/Lib}/test/test_csv.py (100%) rename {Lib => pylib/Lib}/test/test_ctypes.py (100%) rename {Lib => pylib/Lib}/test/test_dataclasses.py (100%) rename {Lib => pylib/Lib}/test/test_datetime.py (100%) rename {Lib => pylib/Lib}/test/test_dbm.py (100%) rename {Lib => pylib/Lib}/test/test_dbm_dumb.py (100%) rename {Lib => pylib/Lib}/test/test_decimal.py (100%) rename {Lib => pylib/Lib}/test/test_decorators.py (100%) rename {Lib => pylib/Lib}/test/test_defaultdict.py (100%) rename {Lib => pylib/Lib}/test/test_deque.py (100%) rename {Lib => pylib/Lib}/test/test_descr.py (100%) rename {Lib => pylib/Lib}/test/test_descrtut.py (100%) rename {Lib => pylib/Lib}/test/test_devpoll.py (100%) rename {Lib => pylib/Lib}/test/test_dict.py (100%) rename {Lib => pylib/Lib}/test/test_dictcomps.py (100%) rename {Lib => pylib/Lib}/test/test_dictviews.py (100%) rename {Lib => pylib/Lib}/test/test_difflib.py (100%) rename {Lib => pylib/Lib}/test/test_difflib_expect.html (100%) rename {Lib => pylib/Lib}/test/test_dis.py (100%) rename {Lib => pylib/Lib}/test/test_doctest2.py (100%) rename {Lib => pylib/Lib}/test/test_docxmlrpc.py (100%) rename {Lib => pylib/Lib}/test/test_dtrace.py (100%) rename {Lib => pylib/Lib}/test/test_dummy_thread.py (100%) rename {Lib => pylib/Lib}/test/test_dummy_threading.py (100%) rename {Lib => pylib/Lib}/test/test_dynamic.py (100%) rename {Lib => pylib/Lib}/test/test_dynamicclassattribute.py (100%) rename {Lib => pylib/Lib}/test/test_eintr.py (100%) rename {Lib => pylib/Lib}/test/test_ensurepip.py (100%) rename {Lib => pylib/Lib}/test/test_enum.py (100%) rename {Lib => pylib/Lib}/test/test_enumerate.py (100%) rename {Lib => pylib/Lib}/test/test_eof.py (100%) rename {Lib => pylib/Lib}/test/test_epoll.py (100%) rename {Lib => pylib/Lib}/test/test_errno.py (100%) rename {Lib => pylib/Lib}/test/test_exception_group.py (100%) rename {Lib => pylib/Lib}/test/test_exception_hierarchy.py (100%) rename {Lib => pylib/Lib}/test/test_exception_variations.py (100%) rename {Lib => pylib/Lib}/test/test_exceptions.py (100%) rename {Lib => pylib/Lib}/test/test_faulthandler.py (100%) rename {Lib => pylib/Lib}/test/test_fcntl.py (100%) rename {Lib => pylib/Lib}/test/test_file.py (100%) rename {Lib => pylib/Lib}/test/test_filecmp.py (100%) rename {Lib => pylib/Lib}/test/test_fileinput.py (100%) rename {Lib => pylib/Lib}/test/test_fileio.py (100%) rename {Lib => pylib/Lib}/test/test_float.py (100%) rename {Lib => pylib/Lib}/test/test_fnmatch.py (100%) rename {Lib => pylib/Lib}/test/test_format.py (100%) rename {Lib => pylib/Lib}/test/test_fractions.py (100%) rename {Lib => pylib/Lib}/test/test_fstring.py (100%) rename {Lib => pylib/Lib}/test/test_ftplib.py (100%) rename {Lib => pylib/Lib}/test/test_funcattrs.py (100%) rename {Lib => pylib/Lib}/test/test_functools.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/badsyntax_future10.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/badsyntax_future3.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/badsyntax_future4.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/badsyntax_future5.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/badsyntax_future6.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/badsyntax_future7.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/badsyntax_future8.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/badsyntax_future9.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/future_test1.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/future_test2.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/test_future.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/test_future_flags.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/test_future_multiple_features.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/test_future_multiple_imports.py (100%) rename {Lib => pylib/Lib}/test/test_future_stmt/test_future_single_import.py (100%) rename {Lib => pylib/Lib}/test/test_generators.py (100%) rename {Lib => pylib/Lib}/test/test_genericalias.py (100%) rename {Lib => pylib/Lib}/test/test_genericclass.py (100%) rename {Lib => pylib/Lib}/test/test_genericpath.py (100%) rename {Lib => pylib/Lib}/test/test_getopt.py (100%) rename {Lib => pylib/Lib}/test/test_getpass.py (100%) rename {Lib => pylib/Lib}/test/test_gettext.py (100%) rename {Lib => pylib/Lib}/test/test_glob.py (100%) rename {Lib => pylib/Lib}/test/test_global.py (100%) rename {Lib => pylib/Lib}/test/test_grammar.py (100%) rename {Lib => pylib/Lib}/test/test_graphlib.py (100%) rename {Lib => pylib/Lib}/test/test_grp.py (100%) rename {Lib => pylib/Lib}/test/test_gzip.py (100%) rename {Lib => pylib/Lib}/test/test_hash.py (100%) rename {Lib => pylib/Lib}/test/test_hashlib.py (100%) rename {Lib => pylib/Lib}/test/test_heapq.py (100%) rename {Lib => pylib/Lib}/test/test_hmac.py (100%) rename {Lib => pylib/Lib}/test/test_html.py (100%) rename {Lib => pylib/Lib}/test/test_htmlparser.py (100%) rename {Lib => pylib/Lib}/test/test_http_cookiejar.py (100%) rename {Lib => pylib/Lib}/test/test_http_cookies.py (100%) rename {Lib => pylib/Lib}/test/test_httplib.py (100%) rename {Lib => pylib/Lib}/test/test_httpservers.py (100%) rename {Lib => pylib/Lib}/test/test_import/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_import/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/basic.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/basic2.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/binding.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/binding2.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/from_cycle1.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/from_cycle2.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/indirect.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/rebinding.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/rebinding2.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/source.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/subpackage.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/subpkg/subpackage2.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/subpkg/util.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/subpkg2/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/subpkg2/parent/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/subpkg2/parent/child.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/use.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/circular_imports/util.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/package/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/package/submodule.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/package2/submodule1.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/package2/submodule2.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/unwritable/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_import/data/unwritable/x.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/_context.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/_path.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/abc.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/builtin/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/builtin/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/builtin/test_finder.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/builtin/test_loader.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/data/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/data/example-21.12-py3-none-any.whl (100%) rename {Lib => pylib/Lib}/test/test_importlib/data/example-21.12-py3.6.egg (100%) rename {Lib => pylib/Lib}/test/test_importlib/data/example2-1.0.0-py3-none-any.whl (100%) rename {Lib => pylib/Lib}/test/test_importlib/data01/binary.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/data01/subdirectory/binary.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/data01/utf-16.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/extension/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/extension/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/extension/test_case_sensitivity.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/extension/test_finder.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/extension/test_loader.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/extension/test_path_hook.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/fixtures.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/frozen/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/frozen/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/frozen/test_finder.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/frozen/test_loader.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/test___loader__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/test___package__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/test_api.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/test_caching.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/test_fromlist.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/test_helpers.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/test_meta_path.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/test_packages.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/test_path.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/import_/test_relative_imports.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/both_portions/foo/one.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/both_portions/foo/two.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/missing_directory.zip (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test/empty (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/nested_portion1.zip (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/one.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/portion1/foo/one.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/portion2/foo/two.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/project1/parent/child/one.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/project2/parent/child/two.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/project3/parent/child/three.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespace_pkgs/top_level_portion1.zip (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespacedata01/binary.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/namespacedata01/utf-16.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/partial/cfimport.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/partial/pool_in_threads.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/_path.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data01/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data01/binary.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data01/subdirectory/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data01/subdirectory/binary.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data01/utf-16.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data01/utf-8.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data02/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data02/one/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data02/one/resource1.txt (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data02/subdirectory/subsubdir/resource.txt (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data02/two/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data02/two/resource2.txt (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data03/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data03/namespace/portion1/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data03/namespace/portion2/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/data03/namespace/resource1.txt (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/namespacedata01/binary.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/namespacedata01/utf-16.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/namespacedata01/utf-8.file (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/test_compatibilty_files.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/test_contents.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/test_custom.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/test_files.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/test_open.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/test_path.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/test_read.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/test_reader.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/test_resource.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/update-zips.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/util.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/zipdata01/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/zipdata01/ziptestdata.zip (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/zipdata02/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/resources/zipdata02/ziptestdata.zip (100%) rename {Lib => pylib/Lib}/test/test_importlib/source/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/source/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/source/test_case_sensitivity.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/source/test_file_loader.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/source/test_finder.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/source/test_path_hook.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/source/test_source_encoding.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/stubs.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_abc.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_api.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_lazy.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_locks.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_main.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_metadata_api.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_namespace_pkgs.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_pkg_import.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_spec.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_threaded_import.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_util.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_windows.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/test_zip.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/threaded_import_hangers.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/util.py (100%) rename {Lib => pylib/Lib}/test/test_importlib/zipdata01/ziptestdata.zip (100%) rename {Lib => pylib/Lib}/test/test_importlib/zipdata02/ziptestdata.zip (100%) rename {Lib => pylib/Lib}/test/test_index.py (100%) rename {Lib => pylib/Lib}/test/test_int.py (100%) rename {Lib => pylib/Lib}/test/test_int_literal.py (100%) rename {Lib => pylib/Lib}/test/test_io.py (100%) rename {Lib => pylib/Lib}/test/test_ioctl.py (100%) rename {Lib => pylib/Lib}/test/test_ipaddress.py (100%) rename {Lib => pylib/Lib}/test/test_isinstance.py (100%) rename {Lib => pylib/Lib}/test/test_iter.py (100%) rename {Lib => pylib/Lib}/test/test_iterlen.py (100%) rename {Lib => pylib/Lib}/test/test_itertools.py (100%) rename {Lib => pylib/Lib}/test/test_json/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_json/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_decode.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_default.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_dump.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_encode_basestring_ascii.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_enum.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_fail.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_float.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_indent.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_pass1.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_pass2.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_pass3.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_recursion.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_scanstring.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_separators.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_speedups.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_tool.py (100%) rename {Lib => pylib/Lib}/test/test_json/test_unicode.py (100%) rename {Lib => pylib/Lib}/test/test_keyword.py (100%) rename {Lib => pylib/Lib}/test/test_keywordonlyarg.py (100%) rename {Lib => pylib/Lib}/test/test_kqueue.py (100%) rename {Lib => pylib/Lib}/test/test_largefile.py (100%) rename {Lib => pylib/Lib}/test/test_linecache.py (100%) rename {Lib => pylib/Lib}/test/test_list.py (100%) rename {Lib => pylib/Lib}/test/test_listcomps.py (100%) rename {Lib => pylib/Lib}/test/test_locale.py (100%) rename {Lib => pylib/Lib}/test/test_logging.py (100%) rename {Lib => pylib/Lib}/test/test_long.py (100%) rename {Lib => pylib/Lib}/test/test_longexp.py (100%) rename {Lib => pylib/Lib}/test/test_marshal.py (100%) rename {Lib => pylib/Lib}/test/test_math.py (100%) rename {Lib => pylib/Lib}/test/test_memoryio.py (100%) rename {Lib => pylib/Lib}/test/test_memoryview.py (100%) rename {Lib => pylib/Lib}/test/test_mimetypes.py (100%) rename {Lib => pylib/Lib}/test/test_mmap.py (100%) rename {Lib => pylib/Lib}/test/test_module/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_module/bad_getattr.py (100%) rename {Lib => pylib/Lib}/test/test_module/bad_getattr2.py (100%) rename {Lib => pylib/Lib}/test/test_module/bad_getattr3.py (100%) rename {Lib => pylib/Lib}/test/test_module/good_getattr.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_fork/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_fork/test_manager.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_fork/test_misc.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_fork/test_processes.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_fork/test_threads.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_forkserver/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_forkserver/test_manager.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_forkserver/test_misc.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_forkserver/test_processes.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_forkserver/test_threads.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_main_handling.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_spawn/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_spawn/test_manager.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_spawn/test_misc.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_spawn/test_processes.py (100%) rename {Lib => pylib/Lib}/test/test_multiprocessing_spawn/test_threads.py (100%) rename {Lib => pylib/Lib}/test/test_named_expressions.py (100%) rename {Lib => pylib/Lib}/test/test_netrc.py (100%) rename {Lib => pylib/Lib}/test/test_ntpath.py (100%) rename {Lib => pylib/Lib}/test/test_numeric_tower.py (100%) rename {Lib => pylib/Lib}/test/test_opcache.py (100%) rename {Lib => pylib/Lib}/test/test_opcodes.py (100%) rename {Lib => pylib/Lib}/test/test_openpty.py (100%) rename {Lib => pylib/Lib}/test/test_operator.py (100%) rename {Lib => pylib/Lib}/test/test_optparse.py (100%) rename {Lib => pylib/Lib}/test/test_ordered_dict.py (100%) rename {Lib => pylib/Lib}/test/test_os.py (100%) rename {Lib => pylib/Lib}/test/test_pathlib.py (100%) rename {Lib => pylib/Lib}/test/test_pickle.py (100%) rename {Lib => pylib/Lib}/test/test_pickletools.py (100%) rename {Lib => pylib/Lib}/test/test_pkg.py (100%) rename {Lib => pylib/Lib}/test/test_pkgutil.py (100%) rename {Lib => pylib/Lib}/test/test_platform.py (100%) rename {Lib => pylib/Lib}/test/test_plistlib.py (100%) rename {Lib => pylib/Lib}/test/test_poll.py (100%) rename {Lib => pylib/Lib}/test/test_popen.py (100%) rename {Lib => pylib/Lib}/test/test_positional_only_arg.py (100%) rename {Lib => pylib/Lib}/test/test_posix.py (100%) rename {Lib => pylib/Lib}/test/test_posixpath.py (100%) rename {Lib => pylib/Lib}/test/test_pow.py (100%) rename {Lib => pylib/Lib}/test/test_pprint.py (100%) rename {Lib => pylib/Lib}/test/test_print.py (100%) rename {Lib => pylib/Lib}/test/test_property.py (100%) rename {Lib => pylib/Lib}/test/test_pty.py (100%) rename {Lib => pylib/Lib}/test/test_pulldom.py (100%) rename {Lib => pylib/Lib}/test/test_pwd.py (100%) rename {Lib => pylib/Lib}/test/test_py_compile.py (100%) rename {Lib => pylib/Lib}/test/test_pyexpat.py (100%) rename {Lib => pylib/Lib}/test/test_queue.py (100%) rename {Lib => pylib/Lib}/test/test_quopri.py (100%) rename {Lib => pylib/Lib}/test/test_raise.py (100%) rename {Lib => pylib/Lib}/test/test_random.py (100%) rename {Lib => pylib/Lib}/test/test_range.py (100%) rename {Lib => pylib/Lib}/test/test_re.py (100%) rename {Lib => pylib/Lib}/test/test_regrtest.py (100%) rename {Lib => pylib/Lib}/test/test_repl.py (100%) rename {Lib => pylib/Lib}/test/test_reprlib.py (100%) rename {Lib => pylib/Lib}/test/test_resource.py (100%) rename {Lib => pylib/Lib}/test/test_richcmp.py (100%) rename {Lib => pylib/Lib}/test/test_rlcompleter.py (100%) rename {Lib => pylib/Lib}/test/test_robotparser.py (100%) rename {Lib => pylib/Lib}/test/test_runpy.py (100%) rename {Lib => pylib/Lib}/test/test_sched.py (100%) rename {Lib => pylib/Lib}/test/test_scope.py (100%) rename {Lib => pylib/Lib}/test/test_script_helper.py (100%) rename {Lib => pylib/Lib}/test/test_secrets.py (100%) rename {Lib => pylib/Lib}/test/test_selectors.py (100%) rename {Lib => pylib/Lib}/test/test_set.py (100%) rename {Lib => pylib/Lib}/test/test_setcomps.py (100%) rename {Lib => pylib/Lib}/test/test_shelve.py (100%) rename {Lib => pylib/Lib}/test/test_shlex.py (100%) rename {Lib => pylib/Lib}/test/test_shutil.py (100%) rename {Lib => pylib/Lib}/test/test_signal.py (100%) rename {Lib => pylib/Lib}/test/test_site.py (100%) rename {Lib => pylib/Lib}/test/test_slice.py (100%) rename {Lib => pylib/Lib}/test/test_smtplib.py (100%) rename {Lib => pylib/Lib}/test/test_smtpnet.py (100%) rename {Lib => pylib/Lib}/test/test_socket.py (100%) rename {Lib => pylib/Lib}/test/test_socketserver.py (100%) rename {Lib => pylib/Lib}/test/test_sort.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/test_backup.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/test_cli.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/test_dbapi.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/test_dump.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/test_factory.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/test_hooks.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/test_regression.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/test_transactions.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/test_types.py (100%) rename {Lib => pylib/Lib}/test/test_sqlite3/test_userfunctions.py (100%) rename {Lib => pylib/Lib}/test/test_stat.py (100%) rename {Lib => pylib/Lib}/test/test_statistics.py (100%) rename {Lib => pylib/Lib}/test/test_strftime.py (100%) rename {Lib => pylib/Lib}/test/test_string.py (100%) rename {Lib => pylib/Lib}/test/test_string_literals.py (100%) rename {Lib => pylib/Lib}/test/test_stringprep.py (100%) rename {Lib => pylib/Lib}/test/test_strtod.py (100%) rename {Lib => pylib/Lib}/test/test_struct.py (100%) rename {Lib => pylib/Lib}/test/test_structseq.py (100%) rename {Lib => pylib/Lib}/test/test_subclassinit.py (100%) rename {Lib => pylib/Lib}/test/test_subprocess.py (100%) rename {Lib => pylib/Lib}/test/test_sundry.py (100%) rename {Lib => pylib/Lib}/test/test_super.py (100%) rename {Lib => pylib/Lib}/test/test_support.py (100%) rename {Lib => pylib/Lib}/test/test_symtable.py (100%) rename {Lib => pylib/Lib}/test/test_syntax.py (100%) rename {Lib => pylib/Lib}/test/test_sys.py (100%) rename {Lib => pylib/Lib}/test/test_sys_setprofile.py (100%) rename {Lib => pylib/Lib}/test/test_sys_settrace.py (100%) rename {Lib => pylib/Lib}/test/test_sysconfig.py (100%) rename {Lib => pylib/Lib}/test/test_syslog.py (100%) rename {Lib => pylib/Lib}/test/test_tabnanny.py (100%) rename {Lib => pylib/Lib}/test/test_tarfile.py (100%) rename {Lib => pylib/Lib}/test/test_tempfile.py (100%) rename {Lib => pylib/Lib}/test/test_textwrap.py (100%) rename {Lib => pylib/Lib}/test/test_thread.py (100%) rename {Lib => pylib/Lib}/test/test_threadedtempfile.py (100%) rename {Lib => pylib/Lib}/test/test_threading.py (100%) rename {Lib => pylib/Lib}/test/test_threading_local.py (100%) rename {Lib => pylib/Lib}/test/test_time.py (100%) rename {Lib => pylib/Lib}/test/test_timeit.py (100%) rename {Lib => pylib/Lib}/test/test_timeout.py (100%) rename {Lib => pylib/Lib}/test/test_tokenize.py (100%) rename {Lib => pylib/Lib}/test/test_tomllib/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_tomllib/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_tomllib/burntsushi.py (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/array-missing-comma.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/array-of-tables/overwrite-array-in-parent.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/array-of-tables/overwrite-bool-with-aot.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/array/file-end-after-val.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/array/unclosed-after-item.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/array/unclosed-empty.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/basic-str-ends-in-escape.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/boolean/invalid-false-casing.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/boolean/invalid-true-casing.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/dates-and-times/invalid-day.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/dotted-keys/access-non-table.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/dotted-keys/extend-defined-aot.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/dotted-keys/extend-defined-table-with-subtable.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/dotted-keys/extend-defined-table.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table-missing-comma.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/define-twice-in-subtable.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/define-twice.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/file-end-after-key-val.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/mutate.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/override-val-in-table.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/override-val-with-array.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/override-val-with-table.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/overwrite-implicitly.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/overwrite-value-in-inner-array.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/overwrite-value-in-inner-table.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/inline-table/unclosed-empty.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/invalid-comment-char.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/invalid-escaped-unicode.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/invalid-hex.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/keys-and-vals/ends-early-table-def.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/keys-and-vals/ends-early.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/keys-and-vals/no-value.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/keys-and-vals/only-ws-after-dot.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/keys-and-vals/overwrite-with-deep-table.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/literal-str/unclosed.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/missing-closing-double-square-bracket.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/missing-closing-square-bracket.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/multiline-basic-str/carriage-return.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/multiline-basic-str/escape-only.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/multiline-basic-str/file-ends-after-opening.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/multiline-basic-str/last-line-escape.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/multiline-basic-str/unclosed-ends-in-whitespace-escape.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/multiline-literal-str/file-ends-after-opening.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/multiline-literal-str/unclosed.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/non-scalar-escaped.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/table/eof-after-opening.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/table/redefine-1.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/table/redefine-2.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/unclosed-multiline-string.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/invalid/unclosed-string.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/apostrophes-in-literal-string.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/apostrophes-in-literal-string.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/array/array-subtables.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/array/array-subtables.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/array/open-parent-table.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/array/open-parent-table.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/boolean.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/boolean.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/dates-and-times/datetimes.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/dates-and-times/datetimes.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/dates-and-times/localtime.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/dates-and-times/localtime.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/empty-inline-table.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/empty-inline-table.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/five-quotes.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/five-quotes.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/hex-char.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/hex-char.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/multiline-basic-str/ends-in-whitespace-escape.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/multiline-basic-str/ends-in-whitespace-escape.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/no-newlines.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/no-newlines.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/trailing-comma.json (100%) rename {Lib => pylib/Lib}/test/test_tomllib/data/valid/trailing-comma.toml (100%) rename {Lib => pylib/Lib}/test/test_tomllib/test_data.py (100%) rename {Lib => pylib/Lib}/test/test_tomllib/test_error.py (100%) rename {Lib => pylib/Lib}/test/test_tomllib/test_misc.py (100%) rename {Lib => pylib/Lib}/test/test_trace.py (100%) rename {Lib => pylib/Lib}/test/test_traceback.py (100%) rename {Lib => pylib/Lib}/test/test_tuple.py (100%) rename {Lib => pylib/Lib}/test/test_type_comments.py (100%) rename {Lib => pylib/Lib}/test/test_typechecks.py (100%) rename {Lib => pylib/Lib}/test/test_types.py (100%) rename {Lib => pylib/Lib}/test/test_typing.py (100%) rename {Lib => pylib/Lib}/test/test_ucn.py (100%) rename {Lib => pylib/Lib}/test/test_unary.py (100%) rename {Lib => pylib/Lib}/test/test_unicode.py (100%) rename {Lib => pylib/Lib}/test/test_unicode_file.py (100%) rename {Lib => pylib/Lib}/test/test_unicode_file_functions.py (100%) rename {Lib => pylib/Lib}/test/test_unicode_identifiers.py (100%) rename {Lib => pylib/Lib}/test/test_unicodedata.py (100%) rename {Lib => pylib/Lib}/test/test_unittest.py (100%) rename {Lib => pylib/Lib}/test/test_univnewlines.py (100%) rename {Lib => pylib/Lib}/test/test_unpack.py (100%) rename {Lib => pylib/Lib}/test/test_urllib.py (100%) rename {Lib => pylib/Lib}/test/test_urllib2.py (100%) rename {Lib => pylib/Lib}/test/test_urllib2_localnet.py (100%) rename {Lib => pylib/Lib}/test/test_urllib2net.py (100%) rename {Lib => pylib/Lib}/test/test_urllib_response.py (100%) rename {Lib => pylib/Lib}/test/test_urllibnet.py (100%) rename {Lib => pylib/Lib}/test/test_urlparse.py (100%) rename {Lib => pylib/Lib}/test/test_userdict.py (100%) rename {Lib => pylib/Lib}/test/test_userlist.py (100%) rename {Lib => pylib/Lib}/test/test_userstring.py (100%) rename {Lib => pylib/Lib}/test/test_utf8_mode.py (100%) rename {Lib => pylib/Lib}/test/test_utf8source.py (100%) rename {Lib => pylib/Lib}/test/test_uuid.py (100%) rename {Lib => pylib/Lib}/test/test_venv.py (100%) rename {Lib => pylib/Lib}/test/test_wave.py (100%) rename {Lib => pylib/Lib}/test/test_weakref.py (100%) rename {Lib => pylib/Lib}/test/test_weakset.py (100%) rename {Lib => pylib/Lib}/test/test_webbrowser.py (100%) rename {Lib => pylib/Lib}/test/test_winapi.py (100%) rename {Lib => pylib/Lib}/test/test_with.py (100%) rename {Lib => pylib/Lib}/test/test_wsgiref.py (100%) rename {Lib => pylib/Lib}/test/test_xml_dom_minicompat.py (100%) rename {Lib => pylib/Lib}/test/test_xml_etree.py (100%) rename {Lib => pylib/Lib}/test/test_xmlrpc.py (100%) rename {Lib => pylib/Lib}/test/test_yield_from.py (100%) rename {Lib => pylib/Lib}/test/test_zipapp.py (100%) rename {Lib => pylib/Lib}/test/test_zipfile.py (100%) rename {Lib => pylib/Lib}/test/test_zipfile64.py (100%) rename {Lib => pylib/Lib}/test/test_zipimport.py (100%) rename {Lib => pylib/Lib}/test/test_zlib.py (100%) rename {Lib => pylib/Lib}/test/test_zoneinfo/__init__.py (100%) rename {Lib => pylib/Lib}/test/test_zoneinfo/__main__.py (100%) rename {Lib => pylib/Lib}/test/test_zoneinfo/_support.py (100%) rename {Lib => pylib/Lib}/test/test_zoneinfo/data/update_test_data.py (100%) rename {Lib => pylib/Lib}/test/test_zoneinfo/data/zoneinfo_data.json (100%) rename {Lib => pylib/Lib}/test/test_zoneinfo/test_zoneinfo.py (100%) rename {Lib => pylib/Lib}/test/test_zoneinfo/test_zoneinfo_property.py (100%) rename {Lib => pylib/Lib}/test/testcodec.py (100%) rename {Lib => pylib/Lib}/test/testtar.tar (100%) rename {Lib => pylib/Lib}/test/tf_inherit_check.py (100%) rename {Lib => pylib/Lib}/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt (100%) rename {Lib => pylib/Lib}/test/tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt (100%) rename {Lib => pylib/Lib}/test/tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt (100%) rename {Lib => pylib/Lib}/test/tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt (100%) rename {Lib => pylib/Lib}/test/tokenize_tests.txt (100%) rename {Lib => pylib/Lib}/test/tracedmodules/__init__.py (100%) rename {Lib => pylib/Lib}/test/tracedmodules/testmod.py (100%) rename {Lib => pylib/Lib}/test/typinganndata/__init__.py (100%) rename {Lib => pylib/Lib}/test/typinganndata/ann_module.py (100%) rename {Lib => pylib/Lib}/test/typinganndata/ann_module2.py (100%) rename {Lib => pylib/Lib}/test/typinganndata/ann_module3.py (100%) rename {Lib => pylib/Lib}/test/typinganndata/ann_module4.py (100%) rename {Lib => pylib/Lib}/test/typinganndata/ann_module5.py (100%) rename {Lib => pylib/Lib}/test/typinganndata/ann_module6.py (100%) rename {Lib => pylib/Lib}/test/typinganndata/ann_module7.py (100%) rename {Lib => pylib/Lib}/test/typinganndata/ann_module8.py (100%) rename {Lib => pylib/Lib}/test/typinganndata/ann_module9.py (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/README (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/c14nComment.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/c14nPrefix.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/c14nPrefixQname.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/c14nPrefixQnameXpathElem.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/c14nQname.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/c14nQnameElem.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/c14nQnameXpathElem.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/c14nTrim.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/doc.dtd (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/doc.xsl (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inC14N1.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inC14N2.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inC14N3.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inC14N4.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inC14N5.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inC14N6.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inNsContent.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inNsDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inNsPushdown.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inNsRedecl.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inNsSort.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inNsSuperfluous.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/inNsXml.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N1_c14nComment.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N1_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N2_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N2_c14nTrim.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N3_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N3_c14nPrefix.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N3_c14nTrim.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N4_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N4_c14nTrim.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N5_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N5_c14nTrim.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inC14N6_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsContent_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsContent_c14nPrefixQnameXpathElem.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsContent_c14nQnameElem.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsContent_c14nQnameXpathElem.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsDefault_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsDefault_c14nPrefix.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsPushdown_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsPushdown_c14nPrefix.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsRedecl_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsRedecl_c14nPrefix.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsSort_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsSort_c14nPrefix.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsSuperfluous_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsSuperfluous_c14nPrefix.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsXml_c14nDefault.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsXml_c14nPrefix.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsXml_c14nPrefixQname.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/out_inNsXml_c14nQname.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/c14n-20/world.txt (100%) rename {Lib => pylib/Lib}/test/xmltestdata/expat224_utf8_bug.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/simple-ns.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/simple.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/test.xml (100%) rename {Lib => pylib/Lib}/test/xmltestdata/test.xml.out (100%) rename {Lib => pylib/Lib}/test/xmltests.py (100%) rename {Lib => pylib/Lib}/test/zip_cp437_header.zip (100%) rename {Lib => pylib/Lib}/test/zipdir.zip (100%) rename {Lib => pylib/Lib}/test/ziptestdata/README.md (100%) rename {Lib => pylib/Lib}/test/ziptestdata/exe_with_z64 (100%) rename {Lib => pylib/Lib}/test/ziptestdata/exe_with_zip (100%) rename {Lib => pylib/Lib}/test/ziptestdata/header.sh (100%) rename {Lib => pylib/Lib}/test/ziptestdata/testdata_module_inside_zip.py (100%) rename {Lib => pylib/Lib}/textwrap.py (100%) rename {Lib => pylib/Lib}/this.py (100%) rename {Lib => pylib/Lib}/threading.py (100%) rename {Lib => pylib/Lib}/timeit.py (100%) rename {Lib => pylib/Lib}/tkinter/__init__.py (100%) rename {Lib => pylib/Lib}/tkinter/__main__.py (100%) rename {Lib => pylib/Lib}/tkinter/colorchooser.py (100%) rename {Lib => pylib/Lib}/tkinter/commondialog.py (100%) rename {Lib => pylib/Lib}/tkinter/constants.py (100%) rename {Lib => pylib/Lib}/tkinter/dialog.py (100%) rename {Lib => pylib/Lib}/tkinter/dnd.py (100%) rename {Lib => pylib/Lib}/tkinter/filedialog.py (100%) rename {Lib => pylib/Lib}/tkinter/font.py (100%) rename {Lib => pylib/Lib}/tkinter/messagebox.py (100%) rename {Lib => pylib/Lib}/tkinter/scrolledtext.py (100%) rename {Lib => pylib/Lib}/tkinter/simpledialog.py (100%) rename {Lib => pylib/Lib}/tkinter/ttk.py (100%) rename {Lib => pylib/Lib}/token.py (100%) rename {Lib => pylib/Lib}/tokenize.py (100%) rename {Lib => pylib/Lib}/tomllib/__init__.py (100%) rename {Lib => pylib/Lib}/tomllib/_parser.py (100%) rename {Lib => pylib/Lib}/tomllib/_re.py (100%) rename {Lib => pylib/Lib}/tomllib/_types.py (100%) rename {Lib => pylib/Lib}/trace.py (100%) rename {Lib => pylib/Lib}/traceback.py (100%) rename {Lib => pylib/Lib}/tty.py (100%) rename {Lib => pylib/Lib}/types.py (100%) rename {Lib => pylib/Lib}/typing.py (100%) rename {Lib => pylib/Lib}/unittest/__init__.py (100%) rename {Lib => pylib/Lib}/unittest/__main__.py (100%) rename {Lib => pylib/Lib}/unittest/_log.py (100%) rename {Lib => pylib/Lib}/unittest/async_case.py (100%) rename {Lib => pylib/Lib}/unittest/case.py (100%) rename {Lib => pylib/Lib}/unittest/loader.py (100%) rename {Lib => pylib/Lib}/unittest/main.py (100%) rename {Lib => pylib/Lib}/unittest/mock.py (100%) rename {Lib => pylib/Lib}/unittest/result.py (100%) rename {Lib => pylib/Lib}/unittest/runner.py (100%) rename {Lib => pylib/Lib}/unittest/signals.py (100%) rename {Lib => pylib/Lib}/unittest/suite.py (100%) rename {Lib => pylib/Lib}/unittest/test/__init__.py (100%) rename {Lib => pylib/Lib}/unittest/test/__main__.py (100%) rename {Lib => pylib/Lib}/unittest/test/_test_warnings.py (100%) rename {Lib => pylib/Lib}/unittest/test/dummy.py (100%) rename {Lib => pylib/Lib}/unittest/test/support.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_assertions.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_async_case.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_break.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_case.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_discovery.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_functiontestcase.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_loader.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_program.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_result.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_runner.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_setups.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_skipping.py (100%) rename {Lib => pylib/Lib}/unittest/test/test_suite.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/__init__.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/__main__.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/support.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/testasync.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/testcallable.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/testhelpers.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/testmagicmethods.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/testmock.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/testpatch.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/testsealable.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/testsentinel.py (100%) rename {Lib => pylib/Lib}/unittest/test/testmock/testwith.py (100%) rename {Lib => pylib/Lib}/unittest/util.py (100%) rename {Lib => pylib/Lib}/urllib/__init__.py (100%) rename {Lib => pylib/Lib}/urllib/error.py (100%) rename {Lib => pylib/Lib}/urllib/parse.py (100%) rename {Lib => pylib/Lib}/urllib/request.py (100%) rename {Lib => pylib/Lib}/urllib/response.py (100%) rename {Lib => pylib/Lib}/urllib/robotparser.py (100%) rename {Lib => pylib/Lib}/uuid.py (100%) rename {Lib => pylib/Lib}/venv/__init__.py (100%) rename {Lib => pylib/Lib}/venv/__main__.py (100%) rename {Lib => pylib/Lib}/venv/scripts/common/Activate.ps1 (100%) rename {Lib => pylib/Lib}/venv/scripts/common/activate (100%) rename {Lib => pylib/Lib}/venv/scripts/nt/activate.bat (100%) rename {Lib => pylib/Lib}/venv/scripts/nt/deactivate.bat (100%) rename {Lib => pylib/Lib}/venv/scripts/posix/activate.csh (100%) rename {Lib => pylib/Lib}/venv/scripts/posix/activate.fish (100%) rename {Lib => pylib/Lib}/warnings.py (100%) rename {Lib => pylib/Lib}/wave.py (100%) rename {Lib => pylib/Lib}/weakref.py (100%) rename {Lib => pylib/Lib}/webbrowser.py (100%) rename {Lib => pylib/Lib}/wsgiref/__init__.py (100%) rename {Lib => pylib/Lib}/wsgiref/handlers.py (100%) rename {Lib => pylib/Lib}/wsgiref/headers.py (100%) rename {Lib => pylib/Lib}/wsgiref/simple_server.py (100%) rename {Lib => pylib/Lib}/wsgiref/util.py (100%) rename {Lib => pylib/Lib}/wsgiref/validate.py (100%) rename {Lib => pylib/Lib}/xml/__init__.py (100%) rename {Lib => pylib/Lib}/xml/dom/NodeFilter.py (100%) rename {Lib => pylib/Lib}/xml/dom/__init__.py (100%) rename {Lib => pylib/Lib}/xml/dom/domreg.py (100%) rename {Lib => pylib/Lib}/xml/dom/expatbuilder.py (100%) rename {Lib => pylib/Lib}/xml/dom/minicompat.py (100%) rename {Lib => pylib/Lib}/xml/dom/minidom.py (100%) rename {Lib => pylib/Lib}/xml/dom/pulldom.py (100%) rename {Lib => pylib/Lib}/xml/dom/xmlbuilder.py (100%) rename {Lib => pylib/Lib}/xml/etree/ElementInclude.py (100%) rename {Lib => pylib/Lib}/xml/etree/ElementPath.py (100%) rename {Lib => pylib/Lib}/xml/etree/ElementTree.py (100%) rename {Lib => pylib/Lib}/xml/etree/__init__.py (100%) rename {Lib => pylib/Lib}/xml/etree/cElementTree.py (100%) rename {Lib => pylib/Lib}/xml/parsers/__init__.py (100%) rename {Lib => pylib/Lib}/xml/parsers/expat.py (100%) rename {Lib => pylib/Lib}/xml/sax/__init__.py (100%) rename {Lib => pylib/Lib}/xml/sax/_exceptions.py (100%) rename {Lib => pylib/Lib}/xml/sax/expatreader.py (100%) rename {Lib => pylib/Lib}/xml/sax/handler.py (100%) rename {Lib => pylib/Lib}/xml/sax/saxutils.py (100%) rename {Lib => pylib/Lib}/xml/sax/xmlreader.py (100%) rename {Lib => pylib/Lib}/xmlrpc/__init__.py (100%) rename {Lib => pylib/Lib}/xmlrpc/client.py (100%) rename {Lib => pylib/Lib}/xmlrpc/server.py (100%) rename {Lib => pylib/Lib}/zipapp.py (100%) rename {Lib => pylib/Lib}/zipfile.py (100%) rename {Lib => pylib/Lib}/zipimport.py (100%) rename {Lib => pylib/Lib}/zoneinfo/__init__.py (100%) rename {Lib => pylib/Lib}/zoneinfo/_common.py (100%) rename {Lib => pylib/Lib}/zoneinfo/_tzpath.py (100%) rename {Lib => pylib/Lib}/zoneinfo/_zoneinfo.py (100%) diff --git a/Lib b/Lib new file mode 120000 index 0000000000..3b4b5996af --- /dev/null +++ b/Lib @@ -0,0 +1 @@ +pylib/Lib \ No newline at end of file diff --git a/Lib/PSF-LICENSE b/pylib/Lib/PSF-LICENSE similarity index 100% rename from Lib/PSF-LICENSE rename to pylib/Lib/PSF-LICENSE diff --git a/Lib/README.md b/pylib/Lib/README.md similarity index 100% rename from Lib/README.md rename to pylib/Lib/README.md diff --git a/Lib/__future__.py b/pylib/Lib/__future__.py similarity index 100% rename from Lib/__future__.py rename to pylib/Lib/__future__.py diff --git a/Lib/__hello__.py b/pylib/Lib/__hello__.py similarity index 100% rename from Lib/__hello__.py rename to pylib/Lib/__hello__.py diff --git a/Lib/__phello__/__init__.py b/pylib/Lib/__phello__/__init__.py similarity index 100% rename from Lib/__phello__/__init__.py rename to pylib/Lib/__phello__/__init__.py diff --git a/Lib/__phello__/ham/__init__.py b/pylib/Lib/__phello__/ham/__init__.py similarity index 100% rename from Lib/__phello__/ham/__init__.py rename to pylib/Lib/__phello__/ham/__init__.py diff --git a/Lib/__phello__/ham/eggs.py b/pylib/Lib/__phello__/ham/eggs.py similarity index 100% rename from Lib/__phello__/ham/eggs.py rename to pylib/Lib/__phello__/ham/eggs.py diff --git a/Lib/__phello__/spam.py b/pylib/Lib/__phello__/spam.py similarity index 100% rename from Lib/__phello__/spam.py rename to pylib/Lib/__phello__/spam.py diff --git a/Lib/_aix_support.py b/pylib/Lib/_aix_support.py similarity index 100% rename from Lib/_aix_support.py rename to pylib/Lib/_aix_support.py diff --git a/Lib/_android_support.py b/pylib/Lib/_android_support.py similarity index 100% rename from Lib/_android_support.py rename to pylib/Lib/_android_support.py diff --git a/Lib/_apple_support.py b/pylib/Lib/_apple_support.py similarity index 100% rename from Lib/_apple_support.py rename to pylib/Lib/_apple_support.py diff --git a/Lib/_collections_abc.py b/pylib/Lib/_collections_abc.py similarity index 100% rename from Lib/_collections_abc.py rename to pylib/Lib/_collections_abc.py diff --git a/Lib/_colorize.py b/pylib/Lib/_colorize.py similarity index 100% rename from Lib/_colorize.py rename to pylib/Lib/_colorize.py diff --git a/Lib/_compat_pickle.py b/pylib/Lib/_compat_pickle.py similarity index 100% rename from Lib/_compat_pickle.py rename to pylib/Lib/_compat_pickle.py diff --git a/Lib/_compression.py b/pylib/Lib/_compression.py similarity index 100% rename from Lib/_compression.py rename to pylib/Lib/_compression.py diff --git a/Lib/_dummy_os.py b/pylib/Lib/_dummy_os.py similarity index 100% rename from Lib/_dummy_os.py rename to pylib/Lib/_dummy_os.py diff --git a/Lib/_dummy_thread.py b/pylib/Lib/_dummy_thread.py similarity index 100% rename from Lib/_dummy_thread.py rename to pylib/Lib/_dummy_thread.py diff --git a/Lib/_ios_support.py b/pylib/Lib/_ios_support.py similarity index 100% rename from Lib/_ios_support.py rename to pylib/Lib/_ios_support.py diff --git a/Lib/_markupbase.py b/pylib/Lib/_markupbase.py similarity index 100% rename from Lib/_markupbase.py rename to pylib/Lib/_markupbase.py diff --git a/Lib/_osx_support.py b/pylib/Lib/_osx_support.py similarity index 100% rename from Lib/_osx_support.py rename to pylib/Lib/_osx_support.py diff --git a/Lib/_py_abc.py b/pylib/Lib/_py_abc.py similarity index 100% rename from Lib/_py_abc.py rename to pylib/Lib/_py_abc.py diff --git a/Lib/_pycodecs.py b/pylib/Lib/_pycodecs.py similarity index 100% rename from Lib/_pycodecs.py rename to pylib/Lib/_pycodecs.py diff --git a/Lib/_pydatetime.py b/pylib/Lib/_pydatetime.py similarity index 100% rename from Lib/_pydatetime.py rename to pylib/Lib/_pydatetime.py diff --git a/Lib/_pydecimal.py b/pylib/Lib/_pydecimal.py similarity index 100% rename from Lib/_pydecimal.py rename to pylib/Lib/_pydecimal.py diff --git a/Lib/_pyio.py b/pylib/Lib/_pyio.py similarity index 100% rename from Lib/_pyio.py rename to pylib/Lib/_pyio.py diff --git a/Lib/_pylong.py b/pylib/Lib/_pylong.py similarity index 100% rename from Lib/_pylong.py rename to pylib/Lib/_pylong.py diff --git a/Lib/_pyrepl/__init__.py b/pylib/Lib/_pyrepl/__init__.py similarity index 100% rename from Lib/_pyrepl/__init__.py rename to pylib/Lib/_pyrepl/__init__.py diff --git a/Lib/_pyrepl/__main__.py b/pylib/Lib/_pyrepl/__main__.py similarity index 100% rename from Lib/_pyrepl/__main__.py rename to pylib/Lib/_pyrepl/__main__.py diff --git a/Lib/_pyrepl/_minimal_curses.py b/pylib/Lib/_pyrepl/_minimal_curses.py similarity index 100% rename from Lib/_pyrepl/_minimal_curses.py rename to pylib/Lib/_pyrepl/_minimal_curses.py diff --git a/Lib/_pyrepl/_threading_handler.py b/pylib/Lib/_pyrepl/_threading_handler.py similarity index 100% rename from Lib/_pyrepl/_threading_handler.py rename to pylib/Lib/_pyrepl/_threading_handler.py diff --git a/Lib/_pyrepl/commands.py b/pylib/Lib/_pyrepl/commands.py similarity index 100% rename from Lib/_pyrepl/commands.py rename to pylib/Lib/_pyrepl/commands.py diff --git a/Lib/_pyrepl/completing_reader.py b/pylib/Lib/_pyrepl/completing_reader.py similarity index 100% rename from Lib/_pyrepl/completing_reader.py rename to pylib/Lib/_pyrepl/completing_reader.py diff --git a/Lib/_pyrepl/console.py b/pylib/Lib/_pyrepl/console.py similarity index 100% rename from Lib/_pyrepl/console.py rename to pylib/Lib/_pyrepl/console.py diff --git a/Lib/_pyrepl/curses.py b/pylib/Lib/_pyrepl/curses.py similarity index 100% rename from Lib/_pyrepl/curses.py rename to pylib/Lib/_pyrepl/curses.py diff --git a/Lib/_pyrepl/fancy_termios.py b/pylib/Lib/_pyrepl/fancy_termios.py similarity index 100% rename from Lib/_pyrepl/fancy_termios.py rename to pylib/Lib/_pyrepl/fancy_termios.py diff --git a/Lib/_pyrepl/historical_reader.py b/pylib/Lib/_pyrepl/historical_reader.py similarity index 100% rename from Lib/_pyrepl/historical_reader.py rename to pylib/Lib/_pyrepl/historical_reader.py diff --git a/Lib/_pyrepl/input.py b/pylib/Lib/_pyrepl/input.py similarity index 100% rename from Lib/_pyrepl/input.py rename to pylib/Lib/_pyrepl/input.py diff --git a/Lib/_pyrepl/keymap.py b/pylib/Lib/_pyrepl/keymap.py similarity index 100% rename from Lib/_pyrepl/keymap.py rename to pylib/Lib/_pyrepl/keymap.py diff --git a/Lib/_pyrepl/main.py b/pylib/Lib/_pyrepl/main.py similarity index 100% rename from Lib/_pyrepl/main.py rename to pylib/Lib/_pyrepl/main.py diff --git a/Lib/_pyrepl/mypy.ini b/pylib/Lib/_pyrepl/mypy.ini similarity index 100% rename from Lib/_pyrepl/mypy.ini rename to pylib/Lib/_pyrepl/mypy.ini diff --git a/Lib/_pyrepl/pager.py b/pylib/Lib/_pyrepl/pager.py similarity index 100% rename from Lib/_pyrepl/pager.py rename to pylib/Lib/_pyrepl/pager.py diff --git a/Lib/_pyrepl/reader.py b/pylib/Lib/_pyrepl/reader.py similarity index 100% rename from Lib/_pyrepl/reader.py rename to pylib/Lib/_pyrepl/reader.py diff --git a/Lib/_pyrepl/readline.py b/pylib/Lib/_pyrepl/readline.py similarity index 100% rename from Lib/_pyrepl/readline.py rename to pylib/Lib/_pyrepl/readline.py diff --git a/Lib/_pyrepl/simple_interact.py b/pylib/Lib/_pyrepl/simple_interact.py similarity index 100% rename from Lib/_pyrepl/simple_interact.py rename to pylib/Lib/_pyrepl/simple_interact.py diff --git a/Lib/_pyrepl/trace.py b/pylib/Lib/_pyrepl/trace.py similarity index 100% rename from Lib/_pyrepl/trace.py rename to pylib/Lib/_pyrepl/trace.py diff --git a/Lib/_pyrepl/types.py b/pylib/Lib/_pyrepl/types.py similarity index 100% rename from Lib/_pyrepl/types.py rename to pylib/Lib/_pyrepl/types.py diff --git a/Lib/_pyrepl/unix_console.py b/pylib/Lib/_pyrepl/unix_console.py similarity index 100% rename from Lib/_pyrepl/unix_console.py rename to pylib/Lib/_pyrepl/unix_console.py diff --git a/Lib/_pyrepl/unix_eventqueue.py b/pylib/Lib/_pyrepl/unix_eventqueue.py similarity index 100% rename from Lib/_pyrepl/unix_eventqueue.py rename to pylib/Lib/_pyrepl/unix_eventqueue.py diff --git a/Lib/_pyrepl/utils.py b/pylib/Lib/_pyrepl/utils.py similarity index 100% rename from Lib/_pyrepl/utils.py rename to pylib/Lib/_pyrepl/utils.py diff --git a/Lib/_pyrepl/windows_console.py b/pylib/Lib/_pyrepl/windows_console.py similarity index 100% rename from Lib/_pyrepl/windows_console.py rename to pylib/Lib/_pyrepl/windows_console.py diff --git a/Lib/_sitebuiltins.py b/pylib/Lib/_sitebuiltins.py similarity index 100% rename from Lib/_sitebuiltins.py rename to pylib/Lib/_sitebuiltins.py diff --git a/Lib/_strptime.py b/pylib/Lib/_strptime.py similarity index 100% rename from Lib/_strptime.py rename to pylib/Lib/_strptime.py diff --git a/Lib/_threading_local.py b/pylib/Lib/_threading_local.py similarity index 100% rename from Lib/_threading_local.py rename to pylib/Lib/_threading_local.py diff --git a/Lib/_weakrefset.py b/pylib/Lib/_weakrefset.py similarity index 100% rename from Lib/_weakrefset.py rename to pylib/Lib/_weakrefset.py diff --git a/Lib/abc.py b/pylib/Lib/abc.py similarity index 100% rename from Lib/abc.py rename to pylib/Lib/abc.py diff --git a/Lib/antigravity.py b/pylib/Lib/antigravity.py similarity index 100% rename from Lib/antigravity.py rename to pylib/Lib/antigravity.py diff --git a/Lib/argparse.py b/pylib/Lib/argparse.py similarity index 100% rename from Lib/argparse.py rename to pylib/Lib/argparse.py diff --git a/Lib/ast.py b/pylib/Lib/ast.py similarity index 100% rename from Lib/ast.py rename to pylib/Lib/ast.py diff --git a/Lib/asyncio/__init__.py b/pylib/Lib/asyncio/__init__.py similarity index 100% rename from Lib/asyncio/__init__.py rename to pylib/Lib/asyncio/__init__.py diff --git a/Lib/asyncio/__main__.py b/pylib/Lib/asyncio/__main__.py similarity index 100% rename from Lib/asyncio/__main__.py rename to pylib/Lib/asyncio/__main__.py diff --git a/Lib/asyncio/base_events.py b/pylib/Lib/asyncio/base_events.py similarity index 100% rename from Lib/asyncio/base_events.py rename to pylib/Lib/asyncio/base_events.py diff --git a/Lib/asyncio/base_futures.py b/pylib/Lib/asyncio/base_futures.py similarity index 100% rename from Lib/asyncio/base_futures.py rename to pylib/Lib/asyncio/base_futures.py diff --git a/Lib/asyncio/base_subprocess.py b/pylib/Lib/asyncio/base_subprocess.py similarity index 100% rename from Lib/asyncio/base_subprocess.py rename to pylib/Lib/asyncio/base_subprocess.py diff --git a/Lib/asyncio/base_tasks.py b/pylib/Lib/asyncio/base_tasks.py similarity index 100% rename from Lib/asyncio/base_tasks.py rename to pylib/Lib/asyncio/base_tasks.py diff --git a/Lib/asyncio/constants.py b/pylib/Lib/asyncio/constants.py similarity index 100% rename from Lib/asyncio/constants.py rename to pylib/Lib/asyncio/constants.py diff --git a/Lib/asyncio/coroutines.py b/pylib/Lib/asyncio/coroutines.py similarity index 100% rename from Lib/asyncio/coroutines.py rename to pylib/Lib/asyncio/coroutines.py diff --git a/Lib/asyncio/events.py b/pylib/Lib/asyncio/events.py similarity index 100% rename from Lib/asyncio/events.py rename to pylib/Lib/asyncio/events.py diff --git a/Lib/asyncio/exceptions.py b/pylib/Lib/asyncio/exceptions.py similarity index 100% rename from Lib/asyncio/exceptions.py rename to pylib/Lib/asyncio/exceptions.py diff --git a/Lib/asyncio/format_helpers.py b/pylib/Lib/asyncio/format_helpers.py similarity index 100% rename from Lib/asyncio/format_helpers.py rename to pylib/Lib/asyncio/format_helpers.py diff --git a/Lib/asyncio/futures.py b/pylib/Lib/asyncio/futures.py similarity index 100% rename from Lib/asyncio/futures.py rename to pylib/Lib/asyncio/futures.py diff --git a/Lib/asyncio/locks.py b/pylib/Lib/asyncio/locks.py similarity index 100% rename from Lib/asyncio/locks.py rename to pylib/Lib/asyncio/locks.py diff --git a/Lib/asyncio/log.py b/pylib/Lib/asyncio/log.py similarity index 100% rename from Lib/asyncio/log.py rename to pylib/Lib/asyncio/log.py diff --git a/Lib/asyncio/mixins.py b/pylib/Lib/asyncio/mixins.py similarity index 100% rename from Lib/asyncio/mixins.py rename to pylib/Lib/asyncio/mixins.py diff --git a/Lib/asyncio/proactor_events.py b/pylib/Lib/asyncio/proactor_events.py similarity index 100% rename from Lib/asyncio/proactor_events.py rename to pylib/Lib/asyncio/proactor_events.py diff --git a/Lib/asyncio/protocols.py b/pylib/Lib/asyncio/protocols.py similarity index 100% rename from Lib/asyncio/protocols.py rename to pylib/Lib/asyncio/protocols.py diff --git a/Lib/asyncio/queues.py b/pylib/Lib/asyncio/queues.py similarity index 100% rename from Lib/asyncio/queues.py rename to pylib/Lib/asyncio/queues.py diff --git a/Lib/asyncio/runners.py b/pylib/Lib/asyncio/runners.py similarity index 100% rename from Lib/asyncio/runners.py rename to pylib/Lib/asyncio/runners.py diff --git a/Lib/asyncio/selector_events.py b/pylib/Lib/asyncio/selector_events.py similarity index 100% rename from Lib/asyncio/selector_events.py rename to pylib/Lib/asyncio/selector_events.py diff --git a/Lib/asyncio/sslproto.py b/pylib/Lib/asyncio/sslproto.py similarity index 100% rename from Lib/asyncio/sslproto.py rename to pylib/Lib/asyncio/sslproto.py diff --git a/Lib/asyncio/staggered.py b/pylib/Lib/asyncio/staggered.py similarity index 100% rename from Lib/asyncio/staggered.py rename to pylib/Lib/asyncio/staggered.py diff --git a/Lib/asyncio/streams.py b/pylib/Lib/asyncio/streams.py similarity index 100% rename from Lib/asyncio/streams.py rename to pylib/Lib/asyncio/streams.py diff --git a/Lib/asyncio/subprocess.py b/pylib/Lib/asyncio/subprocess.py similarity index 100% rename from Lib/asyncio/subprocess.py rename to pylib/Lib/asyncio/subprocess.py diff --git a/Lib/asyncio/taskgroups.py b/pylib/Lib/asyncio/taskgroups.py similarity index 100% rename from Lib/asyncio/taskgroups.py rename to pylib/Lib/asyncio/taskgroups.py diff --git a/Lib/asyncio/tasks.py b/pylib/Lib/asyncio/tasks.py similarity index 100% rename from Lib/asyncio/tasks.py rename to pylib/Lib/asyncio/tasks.py diff --git a/Lib/asyncio/threads.py b/pylib/Lib/asyncio/threads.py similarity index 100% rename from Lib/asyncio/threads.py rename to pylib/Lib/asyncio/threads.py diff --git a/Lib/asyncio/timeouts.py b/pylib/Lib/asyncio/timeouts.py similarity index 100% rename from Lib/asyncio/timeouts.py rename to pylib/Lib/asyncio/timeouts.py diff --git a/Lib/asyncio/transports.py b/pylib/Lib/asyncio/transports.py similarity index 100% rename from Lib/asyncio/transports.py rename to pylib/Lib/asyncio/transports.py diff --git a/Lib/asyncio/trsock.py b/pylib/Lib/asyncio/trsock.py similarity index 100% rename from Lib/asyncio/trsock.py rename to pylib/Lib/asyncio/trsock.py diff --git a/Lib/asyncio/unix_events.py b/pylib/Lib/asyncio/unix_events.py similarity index 100% rename from Lib/asyncio/unix_events.py rename to pylib/Lib/asyncio/unix_events.py diff --git a/Lib/asyncio/windows_events.py b/pylib/Lib/asyncio/windows_events.py similarity index 100% rename from Lib/asyncio/windows_events.py rename to pylib/Lib/asyncio/windows_events.py diff --git a/Lib/asyncio/windows_utils.py b/pylib/Lib/asyncio/windows_utils.py similarity index 100% rename from Lib/asyncio/windows_utils.py rename to pylib/Lib/asyncio/windows_utils.py diff --git a/Lib/base64.py b/pylib/Lib/base64.py similarity index 100% rename from Lib/base64.py rename to pylib/Lib/base64.py diff --git a/Lib/bdb.py b/pylib/Lib/bdb.py similarity index 100% rename from Lib/bdb.py rename to pylib/Lib/bdb.py diff --git a/Lib/bisect.py b/pylib/Lib/bisect.py similarity index 100% rename from Lib/bisect.py rename to pylib/Lib/bisect.py diff --git a/Lib/bz2.py b/pylib/Lib/bz2.py similarity index 100% rename from Lib/bz2.py rename to pylib/Lib/bz2.py diff --git a/Lib/calendar.py b/pylib/Lib/calendar.py similarity index 100% rename from Lib/calendar.py rename to pylib/Lib/calendar.py diff --git a/Lib/cmd.py b/pylib/Lib/cmd.py similarity index 100% rename from Lib/cmd.py rename to pylib/Lib/cmd.py diff --git a/Lib/code.py b/pylib/Lib/code.py similarity index 100% rename from Lib/code.py rename to pylib/Lib/code.py diff --git a/Lib/codecs.py b/pylib/Lib/codecs.py similarity index 100% rename from Lib/codecs.py rename to pylib/Lib/codecs.py diff --git a/Lib/codeop.py b/pylib/Lib/codeop.py similarity index 100% rename from Lib/codeop.py rename to pylib/Lib/codeop.py diff --git a/Lib/collections/__init__.py b/pylib/Lib/collections/__init__.py similarity index 100% rename from Lib/collections/__init__.py rename to pylib/Lib/collections/__init__.py diff --git a/Lib/collections/_defaultdict.py b/pylib/Lib/collections/_defaultdict.py similarity index 100% rename from Lib/collections/_defaultdict.py rename to pylib/Lib/collections/_defaultdict.py diff --git a/Lib/collections/abc.py b/pylib/Lib/collections/abc.py similarity index 100% rename from Lib/collections/abc.py rename to pylib/Lib/collections/abc.py diff --git a/Lib/colorsys.py b/pylib/Lib/colorsys.py similarity index 100% rename from Lib/colorsys.py rename to pylib/Lib/colorsys.py diff --git a/Lib/compileall.py b/pylib/Lib/compileall.py similarity index 100% rename from Lib/compileall.py rename to pylib/Lib/compileall.py diff --git a/Lib/concurrent/__init__.py b/pylib/Lib/concurrent/__init__.py similarity index 100% rename from Lib/concurrent/__init__.py rename to pylib/Lib/concurrent/__init__.py diff --git a/Lib/concurrent/futures/__init__.py b/pylib/Lib/concurrent/futures/__init__.py similarity index 100% rename from Lib/concurrent/futures/__init__.py rename to pylib/Lib/concurrent/futures/__init__.py diff --git a/Lib/concurrent/futures/_base.py b/pylib/Lib/concurrent/futures/_base.py similarity index 100% rename from Lib/concurrent/futures/_base.py rename to pylib/Lib/concurrent/futures/_base.py diff --git a/Lib/concurrent/futures/process.py b/pylib/Lib/concurrent/futures/process.py similarity index 100% rename from Lib/concurrent/futures/process.py rename to pylib/Lib/concurrent/futures/process.py diff --git a/Lib/concurrent/futures/thread.py b/pylib/Lib/concurrent/futures/thread.py similarity index 100% rename from Lib/concurrent/futures/thread.py rename to pylib/Lib/concurrent/futures/thread.py diff --git a/Lib/configparser.py b/pylib/Lib/configparser.py similarity index 100% rename from Lib/configparser.py rename to pylib/Lib/configparser.py diff --git a/Lib/contextlib.py b/pylib/Lib/contextlib.py similarity index 100% rename from Lib/contextlib.py rename to pylib/Lib/contextlib.py diff --git a/Lib/contextvars.py b/pylib/Lib/contextvars.py similarity index 100% rename from Lib/contextvars.py rename to pylib/Lib/contextvars.py diff --git a/Lib/copy.py b/pylib/Lib/copy.py similarity index 100% rename from Lib/copy.py rename to pylib/Lib/copy.py diff --git a/Lib/copyreg.py b/pylib/Lib/copyreg.py similarity index 100% rename from Lib/copyreg.py rename to pylib/Lib/copyreg.py diff --git a/Lib/csv.py b/pylib/Lib/csv.py similarity index 100% rename from Lib/csv.py rename to pylib/Lib/csv.py diff --git a/Lib/ctypes/__init__.py b/pylib/Lib/ctypes/__init__.py similarity index 100% rename from Lib/ctypes/__init__.py rename to pylib/Lib/ctypes/__init__.py diff --git a/Lib/ctypes/_aix.py b/pylib/Lib/ctypes/_aix.py similarity index 100% rename from Lib/ctypes/_aix.py rename to pylib/Lib/ctypes/_aix.py diff --git a/Lib/ctypes/_endian.py b/pylib/Lib/ctypes/_endian.py similarity index 100% rename from Lib/ctypes/_endian.py rename to pylib/Lib/ctypes/_endian.py diff --git a/Lib/ctypes/macholib/README.ctypes b/pylib/Lib/ctypes/macholib/README.ctypes similarity index 100% rename from Lib/ctypes/macholib/README.ctypes rename to pylib/Lib/ctypes/macholib/README.ctypes diff --git a/Lib/ctypes/macholib/__init__.py b/pylib/Lib/ctypes/macholib/__init__.py similarity index 100% rename from Lib/ctypes/macholib/__init__.py rename to pylib/Lib/ctypes/macholib/__init__.py diff --git a/Lib/ctypes/macholib/dyld.py b/pylib/Lib/ctypes/macholib/dyld.py similarity index 100% rename from Lib/ctypes/macholib/dyld.py rename to pylib/Lib/ctypes/macholib/dyld.py diff --git a/Lib/ctypes/macholib/dylib.py b/pylib/Lib/ctypes/macholib/dylib.py similarity index 100% rename from Lib/ctypes/macholib/dylib.py rename to pylib/Lib/ctypes/macholib/dylib.py diff --git a/Lib/ctypes/macholib/fetch_macholib b/pylib/Lib/ctypes/macholib/fetch_macholib similarity index 100% rename from Lib/ctypes/macholib/fetch_macholib rename to pylib/Lib/ctypes/macholib/fetch_macholib diff --git a/Lib/ctypes/macholib/fetch_macholib.bat b/pylib/Lib/ctypes/macholib/fetch_macholib.bat similarity index 100% rename from Lib/ctypes/macholib/fetch_macholib.bat rename to pylib/Lib/ctypes/macholib/fetch_macholib.bat diff --git a/Lib/ctypes/macholib/framework.py b/pylib/Lib/ctypes/macholib/framework.py similarity index 100% rename from Lib/ctypes/macholib/framework.py rename to pylib/Lib/ctypes/macholib/framework.py diff --git a/Lib/ctypes/test/__init__.py b/pylib/Lib/ctypes/test/__init__.py similarity index 100% rename from Lib/ctypes/test/__init__.py rename to pylib/Lib/ctypes/test/__init__.py diff --git a/Lib/ctypes/test/__main__.py b/pylib/Lib/ctypes/test/__main__.py similarity index 100% rename from Lib/ctypes/test/__main__.py rename to pylib/Lib/ctypes/test/__main__.py diff --git a/Lib/ctypes/test/test_anon.py b/pylib/Lib/ctypes/test/test_anon.py similarity index 100% rename from Lib/ctypes/test/test_anon.py rename to pylib/Lib/ctypes/test/test_anon.py diff --git a/Lib/ctypes/test/test_array_in_pointer.py b/pylib/Lib/ctypes/test/test_array_in_pointer.py similarity index 100% rename from Lib/ctypes/test/test_array_in_pointer.py rename to pylib/Lib/ctypes/test/test_array_in_pointer.py diff --git a/Lib/ctypes/test/test_arrays.py b/pylib/Lib/ctypes/test/test_arrays.py similarity index 100% rename from Lib/ctypes/test/test_arrays.py rename to pylib/Lib/ctypes/test/test_arrays.py diff --git a/Lib/ctypes/test/test_as_parameter.py b/pylib/Lib/ctypes/test/test_as_parameter.py similarity index 100% rename from Lib/ctypes/test/test_as_parameter.py rename to pylib/Lib/ctypes/test/test_as_parameter.py diff --git a/Lib/ctypes/test/test_bitfields.py b/pylib/Lib/ctypes/test/test_bitfields.py similarity index 100% rename from Lib/ctypes/test/test_bitfields.py rename to pylib/Lib/ctypes/test/test_bitfields.py diff --git a/Lib/ctypes/test/test_buffers.py b/pylib/Lib/ctypes/test/test_buffers.py similarity index 100% rename from Lib/ctypes/test/test_buffers.py rename to pylib/Lib/ctypes/test/test_buffers.py diff --git a/Lib/ctypes/test/test_bytes.py b/pylib/Lib/ctypes/test/test_bytes.py similarity index 100% rename from Lib/ctypes/test/test_bytes.py rename to pylib/Lib/ctypes/test/test_bytes.py diff --git a/Lib/ctypes/test/test_byteswap.py b/pylib/Lib/ctypes/test/test_byteswap.py similarity index 100% rename from Lib/ctypes/test/test_byteswap.py rename to pylib/Lib/ctypes/test/test_byteswap.py diff --git a/Lib/ctypes/test/test_callbacks.py b/pylib/Lib/ctypes/test/test_callbacks.py similarity index 100% rename from Lib/ctypes/test/test_callbacks.py rename to pylib/Lib/ctypes/test/test_callbacks.py diff --git a/Lib/ctypes/test/test_cast.py b/pylib/Lib/ctypes/test/test_cast.py similarity index 100% rename from Lib/ctypes/test/test_cast.py rename to pylib/Lib/ctypes/test/test_cast.py diff --git a/Lib/ctypes/test/test_cfuncs.py b/pylib/Lib/ctypes/test/test_cfuncs.py similarity index 100% rename from Lib/ctypes/test/test_cfuncs.py rename to pylib/Lib/ctypes/test/test_cfuncs.py diff --git a/Lib/ctypes/test/test_checkretval.py b/pylib/Lib/ctypes/test/test_checkretval.py similarity index 100% rename from Lib/ctypes/test/test_checkretval.py rename to pylib/Lib/ctypes/test/test_checkretval.py diff --git a/Lib/ctypes/test/test_delattr.py b/pylib/Lib/ctypes/test/test_delattr.py similarity index 100% rename from Lib/ctypes/test/test_delattr.py rename to pylib/Lib/ctypes/test/test_delattr.py diff --git a/Lib/ctypes/test/test_errno.py b/pylib/Lib/ctypes/test/test_errno.py similarity index 100% rename from Lib/ctypes/test/test_errno.py rename to pylib/Lib/ctypes/test/test_errno.py diff --git a/Lib/ctypes/test/test_find.py b/pylib/Lib/ctypes/test/test_find.py similarity index 100% rename from Lib/ctypes/test/test_find.py rename to pylib/Lib/ctypes/test/test_find.py diff --git a/Lib/ctypes/test/test_frombuffer.py b/pylib/Lib/ctypes/test/test_frombuffer.py similarity index 100% rename from Lib/ctypes/test/test_frombuffer.py rename to pylib/Lib/ctypes/test/test_frombuffer.py diff --git a/Lib/ctypes/test/test_funcptr.py b/pylib/Lib/ctypes/test/test_funcptr.py similarity index 100% rename from Lib/ctypes/test/test_funcptr.py rename to pylib/Lib/ctypes/test/test_funcptr.py diff --git a/Lib/ctypes/test/test_functions.py b/pylib/Lib/ctypes/test/test_functions.py similarity index 100% rename from Lib/ctypes/test/test_functions.py rename to pylib/Lib/ctypes/test/test_functions.py diff --git a/Lib/ctypes/test/test_incomplete.py b/pylib/Lib/ctypes/test/test_incomplete.py similarity index 100% rename from Lib/ctypes/test/test_incomplete.py rename to pylib/Lib/ctypes/test/test_incomplete.py diff --git a/Lib/ctypes/test/test_init.py b/pylib/Lib/ctypes/test/test_init.py similarity index 100% rename from Lib/ctypes/test/test_init.py rename to pylib/Lib/ctypes/test/test_init.py diff --git a/Lib/ctypes/test/test_internals.py b/pylib/Lib/ctypes/test/test_internals.py similarity index 100% rename from Lib/ctypes/test/test_internals.py rename to pylib/Lib/ctypes/test/test_internals.py diff --git a/Lib/ctypes/test/test_keeprefs.py b/pylib/Lib/ctypes/test/test_keeprefs.py similarity index 100% rename from Lib/ctypes/test/test_keeprefs.py rename to pylib/Lib/ctypes/test/test_keeprefs.py diff --git a/Lib/ctypes/test/test_libc.py b/pylib/Lib/ctypes/test/test_libc.py similarity index 100% rename from Lib/ctypes/test/test_libc.py rename to pylib/Lib/ctypes/test/test_libc.py diff --git a/Lib/ctypes/test/test_loading.py b/pylib/Lib/ctypes/test/test_loading.py similarity index 100% rename from Lib/ctypes/test/test_loading.py rename to pylib/Lib/ctypes/test/test_loading.py diff --git a/Lib/ctypes/test/test_macholib.py b/pylib/Lib/ctypes/test/test_macholib.py similarity index 100% rename from Lib/ctypes/test/test_macholib.py rename to pylib/Lib/ctypes/test/test_macholib.py diff --git a/Lib/ctypes/test/test_memfunctions.py b/pylib/Lib/ctypes/test/test_memfunctions.py similarity index 100% rename from Lib/ctypes/test/test_memfunctions.py rename to pylib/Lib/ctypes/test/test_memfunctions.py diff --git a/Lib/ctypes/test/test_numbers.py b/pylib/Lib/ctypes/test/test_numbers.py similarity index 100% rename from Lib/ctypes/test/test_numbers.py rename to pylib/Lib/ctypes/test/test_numbers.py diff --git a/Lib/ctypes/test/test_objects.py b/pylib/Lib/ctypes/test/test_objects.py similarity index 100% rename from Lib/ctypes/test/test_objects.py rename to pylib/Lib/ctypes/test/test_objects.py diff --git a/Lib/ctypes/test/test_parameters.py b/pylib/Lib/ctypes/test/test_parameters.py similarity index 100% rename from Lib/ctypes/test/test_parameters.py rename to pylib/Lib/ctypes/test/test_parameters.py diff --git a/Lib/ctypes/test/test_pep3118.py b/pylib/Lib/ctypes/test/test_pep3118.py similarity index 100% rename from Lib/ctypes/test/test_pep3118.py rename to pylib/Lib/ctypes/test/test_pep3118.py diff --git a/Lib/ctypes/test/test_pickling.py b/pylib/Lib/ctypes/test/test_pickling.py similarity index 100% rename from Lib/ctypes/test/test_pickling.py rename to pylib/Lib/ctypes/test/test_pickling.py diff --git a/Lib/ctypes/test/test_pointers.py b/pylib/Lib/ctypes/test/test_pointers.py similarity index 100% rename from Lib/ctypes/test/test_pointers.py rename to pylib/Lib/ctypes/test/test_pointers.py diff --git a/Lib/ctypes/test/test_prototypes.py b/pylib/Lib/ctypes/test/test_prototypes.py similarity index 100% rename from Lib/ctypes/test/test_prototypes.py rename to pylib/Lib/ctypes/test/test_prototypes.py diff --git a/Lib/ctypes/test/test_python_api.py b/pylib/Lib/ctypes/test/test_python_api.py similarity index 100% rename from Lib/ctypes/test/test_python_api.py rename to pylib/Lib/ctypes/test/test_python_api.py diff --git a/Lib/ctypes/test/test_random_things.py b/pylib/Lib/ctypes/test/test_random_things.py similarity index 100% rename from Lib/ctypes/test/test_random_things.py rename to pylib/Lib/ctypes/test/test_random_things.py diff --git a/Lib/ctypes/test/test_refcounts.py b/pylib/Lib/ctypes/test/test_refcounts.py similarity index 100% rename from Lib/ctypes/test/test_refcounts.py rename to pylib/Lib/ctypes/test/test_refcounts.py diff --git a/Lib/ctypes/test/test_repr.py b/pylib/Lib/ctypes/test/test_repr.py similarity index 100% rename from Lib/ctypes/test/test_repr.py rename to pylib/Lib/ctypes/test/test_repr.py diff --git a/Lib/ctypes/test/test_returnfuncptrs.py b/pylib/Lib/ctypes/test/test_returnfuncptrs.py similarity index 100% rename from Lib/ctypes/test/test_returnfuncptrs.py rename to pylib/Lib/ctypes/test/test_returnfuncptrs.py diff --git a/Lib/ctypes/test/test_simplesubclasses.py b/pylib/Lib/ctypes/test/test_simplesubclasses.py similarity index 100% rename from Lib/ctypes/test/test_simplesubclasses.py rename to pylib/Lib/ctypes/test/test_simplesubclasses.py diff --git a/Lib/ctypes/test/test_sizes.py b/pylib/Lib/ctypes/test/test_sizes.py similarity index 100% rename from Lib/ctypes/test/test_sizes.py rename to pylib/Lib/ctypes/test/test_sizes.py diff --git a/Lib/ctypes/test/test_slicing.py b/pylib/Lib/ctypes/test/test_slicing.py similarity index 100% rename from Lib/ctypes/test/test_slicing.py rename to pylib/Lib/ctypes/test/test_slicing.py diff --git a/Lib/ctypes/test/test_stringptr.py b/pylib/Lib/ctypes/test/test_stringptr.py similarity index 100% rename from Lib/ctypes/test/test_stringptr.py rename to pylib/Lib/ctypes/test/test_stringptr.py diff --git a/Lib/ctypes/test/test_strings.py b/pylib/Lib/ctypes/test/test_strings.py similarity index 100% rename from Lib/ctypes/test/test_strings.py rename to pylib/Lib/ctypes/test/test_strings.py diff --git a/Lib/ctypes/test/test_struct_fields.py b/pylib/Lib/ctypes/test/test_struct_fields.py similarity index 100% rename from Lib/ctypes/test/test_struct_fields.py rename to pylib/Lib/ctypes/test/test_struct_fields.py diff --git a/Lib/ctypes/test/test_structures.py b/pylib/Lib/ctypes/test/test_structures.py similarity index 100% rename from Lib/ctypes/test/test_structures.py rename to pylib/Lib/ctypes/test/test_structures.py diff --git a/Lib/ctypes/test/test_unaligned_structures.py b/pylib/Lib/ctypes/test/test_unaligned_structures.py similarity index 100% rename from Lib/ctypes/test/test_unaligned_structures.py rename to pylib/Lib/ctypes/test/test_unaligned_structures.py diff --git a/Lib/ctypes/test/test_unicode.py b/pylib/Lib/ctypes/test/test_unicode.py similarity index 100% rename from Lib/ctypes/test/test_unicode.py rename to pylib/Lib/ctypes/test/test_unicode.py diff --git a/Lib/ctypes/test/test_values.py b/pylib/Lib/ctypes/test/test_values.py similarity index 100% rename from Lib/ctypes/test/test_values.py rename to pylib/Lib/ctypes/test/test_values.py diff --git a/Lib/ctypes/test/test_varsize_struct.py b/pylib/Lib/ctypes/test/test_varsize_struct.py similarity index 100% rename from Lib/ctypes/test/test_varsize_struct.py rename to pylib/Lib/ctypes/test/test_varsize_struct.py diff --git a/Lib/ctypes/test/test_win32.py b/pylib/Lib/ctypes/test/test_win32.py similarity index 100% rename from Lib/ctypes/test/test_win32.py rename to pylib/Lib/ctypes/test/test_win32.py diff --git a/Lib/ctypes/test/test_wintypes.py b/pylib/Lib/ctypes/test/test_wintypes.py similarity index 100% rename from Lib/ctypes/test/test_wintypes.py rename to pylib/Lib/ctypes/test/test_wintypes.py diff --git a/Lib/ctypes/util.py b/pylib/Lib/ctypes/util.py similarity index 100% rename from Lib/ctypes/util.py rename to pylib/Lib/ctypes/util.py diff --git a/Lib/ctypes/wintypes.py b/pylib/Lib/ctypes/wintypes.py similarity index 100% rename from Lib/ctypes/wintypes.py rename to pylib/Lib/ctypes/wintypes.py diff --git a/Lib/dataclasses.py b/pylib/Lib/dataclasses.py similarity index 100% rename from Lib/dataclasses.py rename to pylib/Lib/dataclasses.py diff --git a/Lib/datetime.py b/pylib/Lib/datetime.py similarity index 100% rename from Lib/datetime.py rename to pylib/Lib/datetime.py diff --git a/Lib/dbm/__init__.py b/pylib/Lib/dbm/__init__.py similarity index 100% rename from Lib/dbm/__init__.py rename to pylib/Lib/dbm/__init__.py diff --git a/Lib/dbm/dumb.py b/pylib/Lib/dbm/dumb.py similarity index 100% rename from Lib/dbm/dumb.py rename to pylib/Lib/dbm/dumb.py diff --git a/Lib/decimal.py b/pylib/Lib/decimal.py similarity index 100% rename from Lib/decimal.py rename to pylib/Lib/decimal.py diff --git a/Lib/difflib.py b/pylib/Lib/difflib.py similarity index 100% rename from Lib/difflib.py rename to pylib/Lib/difflib.py diff --git a/Lib/dis.py b/pylib/Lib/dis.py similarity index 100% rename from Lib/dis.py rename to pylib/Lib/dis.py diff --git a/Lib/distutils/README b/pylib/Lib/distutils/README similarity index 100% rename from Lib/distutils/README rename to pylib/Lib/distutils/README diff --git a/Lib/distutils/__init__.py b/pylib/Lib/distutils/__init__.py similarity index 100% rename from Lib/distutils/__init__.py rename to pylib/Lib/distutils/__init__.py diff --git a/Lib/distutils/_msvccompiler.py b/pylib/Lib/distutils/_msvccompiler.py similarity index 100% rename from Lib/distutils/_msvccompiler.py rename to pylib/Lib/distutils/_msvccompiler.py diff --git a/Lib/distutils/archive_util.py b/pylib/Lib/distutils/archive_util.py similarity index 100% rename from Lib/distutils/archive_util.py rename to pylib/Lib/distutils/archive_util.py diff --git a/Lib/distutils/bcppcompiler.py b/pylib/Lib/distutils/bcppcompiler.py similarity index 100% rename from Lib/distutils/bcppcompiler.py rename to pylib/Lib/distutils/bcppcompiler.py diff --git a/Lib/distutils/ccompiler.py b/pylib/Lib/distutils/ccompiler.py similarity index 100% rename from Lib/distutils/ccompiler.py rename to pylib/Lib/distutils/ccompiler.py diff --git a/Lib/distutils/cmd.py b/pylib/Lib/distutils/cmd.py similarity index 100% rename from Lib/distutils/cmd.py rename to pylib/Lib/distutils/cmd.py diff --git a/Lib/distutils/command/__init__.py b/pylib/Lib/distutils/command/__init__.py similarity index 100% rename from Lib/distutils/command/__init__.py rename to pylib/Lib/distutils/command/__init__.py diff --git a/Lib/distutils/command/bdist.py b/pylib/Lib/distutils/command/bdist.py similarity index 100% rename from Lib/distutils/command/bdist.py rename to pylib/Lib/distutils/command/bdist.py diff --git a/Lib/distutils/command/bdist_dumb.py b/pylib/Lib/distutils/command/bdist_dumb.py similarity index 100% rename from Lib/distutils/command/bdist_dumb.py rename to pylib/Lib/distutils/command/bdist_dumb.py diff --git a/Lib/distutils/command/bdist_msi.py b/pylib/Lib/distutils/command/bdist_msi.py similarity index 100% rename from Lib/distutils/command/bdist_msi.py rename to pylib/Lib/distutils/command/bdist_msi.py diff --git a/Lib/distutils/command/bdist_rpm.py b/pylib/Lib/distutils/command/bdist_rpm.py similarity index 100% rename from Lib/distutils/command/bdist_rpm.py rename to pylib/Lib/distutils/command/bdist_rpm.py diff --git a/Lib/distutils/command/bdist_wininst.py b/pylib/Lib/distutils/command/bdist_wininst.py similarity index 100% rename from Lib/distutils/command/bdist_wininst.py rename to pylib/Lib/distutils/command/bdist_wininst.py diff --git a/Lib/distutils/command/build.py b/pylib/Lib/distutils/command/build.py similarity index 100% rename from Lib/distutils/command/build.py rename to pylib/Lib/distutils/command/build.py diff --git a/Lib/distutils/command/build_clib.py b/pylib/Lib/distutils/command/build_clib.py similarity index 100% rename from Lib/distutils/command/build_clib.py rename to pylib/Lib/distutils/command/build_clib.py diff --git a/Lib/distutils/command/build_ext.py b/pylib/Lib/distutils/command/build_ext.py similarity index 100% rename from Lib/distutils/command/build_ext.py rename to pylib/Lib/distutils/command/build_ext.py diff --git a/Lib/distutils/command/build_py.py b/pylib/Lib/distutils/command/build_py.py similarity index 100% rename from Lib/distutils/command/build_py.py rename to pylib/Lib/distutils/command/build_py.py diff --git a/Lib/distutils/command/build_scripts.py b/pylib/Lib/distutils/command/build_scripts.py similarity index 100% rename from Lib/distutils/command/build_scripts.py rename to pylib/Lib/distutils/command/build_scripts.py diff --git a/Lib/distutils/command/check.py b/pylib/Lib/distutils/command/check.py similarity index 100% rename from Lib/distutils/command/check.py rename to pylib/Lib/distutils/command/check.py diff --git a/Lib/distutils/command/clean.py b/pylib/Lib/distutils/command/clean.py similarity index 100% rename from Lib/distutils/command/clean.py rename to pylib/Lib/distutils/command/clean.py diff --git a/Lib/distutils/command/command_template b/pylib/Lib/distutils/command/command_template similarity index 100% rename from Lib/distutils/command/command_template rename to pylib/Lib/distutils/command/command_template diff --git a/Lib/distutils/command/config.py b/pylib/Lib/distutils/command/config.py similarity index 100% rename from Lib/distutils/command/config.py rename to pylib/Lib/distutils/command/config.py diff --git a/Lib/distutils/command/install.py b/pylib/Lib/distutils/command/install.py similarity index 100% rename from Lib/distutils/command/install.py rename to pylib/Lib/distutils/command/install.py diff --git a/Lib/distutils/command/install_data.py b/pylib/Lib/distutils/command/install_data.py similarity index 100% rename from Lib/distutils/command/install_data.py rename to pylib/Lib/distutils/command/install_data.py diff --git a/Lib/distutils/command/install_egg_info.py b/pylib/Lib/distutils/command/install_egg_info.py similarity index 100% rename from Lib/distutils/command/install_egg_info.py rename to pylib/Lib/distutils/command/install_egg_info.py diff --git a/Lib/distutils/command/install_headers.py b/pylib/Lib/distutils/command/install_headers.py similarity index 100% rename from Lib/distutils/command/install_headers.py rename to pylib/Lib/distutils/command/install_headers.py diff --git a/Lib/distutils/command/install_lib.py b/pylib/Lib/distutils/command/install_lib.py similarity index 100% rename from Lib/distutils/command/install_lib.py rename to pylib/Lib/distutils/command/install_lib.py diff --git a/Lib/distutils/command/install_scripts.py b/pylib/Lib/distutils/command/install_scripts.py similarity index 100% rename from Lib/distutils/command/install_scripts.py rename to pylib/Lib/distutils/command/install_scripts.py diff --git a/Lib/distutils/command/register.py b/pylib/Lib/distutils/command/register.py similarity index 100% rename from Lib/distutils/command/register.py rename to pylib/Lib/distutils/command/register.py diff --git a/Lib/distutils/command/sdist.py b/pylib/Lib/distutils/command/sdist.py similarity index 100% rename from Lib/distutils/command/sdist.py rename to pylib/Lib/distutils/command/sdist.py diff --git a/Lib/distutils/command/upload.py b/pylib/Lib/distutils/command/upload.py similarity index 100% rename from Lib/distutils/command/upload.py rename to pylib/Lib/distutils/command/upload.py diff --git a/Lib/distutils/config.py b/pylib/Lib/distutils/config.py similarity index 100% rename from Lib/distutils/config.py rename to pylib/Lib/distutils/config.py diff --git a/Lib/distutils/core.py b/pylib/Lib/distutils/core.py similarity index 100% rename from Lib/distutils/core.py rename to pylib/Lib/distutils/core.py diff --git a/Lib/distutils/cygwinccompiler.py b/pylib/Lib/distutils/cygwinccompiler.py similarity index 100% rename from Lib/distutils/cygwinccompiler.py rename to pylib/Lib/distutils/cygwinccompiler.py diff --git a/Lib/distutils/debug.py b/pylib/Lib/distutils/debug.py similarity index 100% rename from Lib/distutils/debug.py rename to pylib/Lib/distutils/debug.py diff --git a/Lib/distutils/dep_util.py b/pylib/Lib/distutils/dep_util.py similarity index 100% rename from Lib/distutils/dep_util.py rename to pylib/Lib/distutils/dep_util.py diff --git a/Lib/distutils/dir_util.py b/pylib/Lib/distutils/dir_util.py similarity index 100% rename from Lib/distutils/dir_util.py rename to pylib/Lib/distutils/dir_util.py diff --git a/Lib/distutils/dist.py b/pylib/Lib/distutils/dist.py similarity index 100% rename from Lib/distutils/dist.py rename to pylib/Lib/distutils/dist.py diff --git a/Lib/distutils/errors.py b/pylib/Lib/distutils/errors.py similarity index 100% rename from Lib/distutils/errors.py rename to pylib/Lib/distutils/errors.py diff --git a/Lib/distutils/extension.py b/pylib/Lib/distutils/extension.py similarity index 100% rename from Lib/distutils/extension.py rename to pylib/Lib/distutils/extension.py diff --git a/Lib/distutils/fancy_getopt.py b/pylib/Lib/distutils/fancy_getopt.py similarity index 100% rename from Lib/distutils/fancy_getopt.py rename to pylib/Lib/distutils/fancy_getopt.py diff --git a/Lib/distutils/file_util.py b/pylib/Lib/distutils/file_util.py similarity index 100% rename from Lib/distutils/file_util.py rename to pylib/Lib/distutils/file_util.py diff --git a/Lib/distutils/filelist.py b/pylib/Lib/distutils/filelist.py similarity index 100% rename from Lib/distutils/filelist.py rename to pylib/Lib/distutils/filelist.py diff --git a/Lib/distutils/log.py b/pylib/Lib/distutils/log.py similarity index 100% rename from Lib/distutils/log.py rename to pylib/Lib/distutils/log.py diff --git a/Lib/distutils/msvc9compiler.py b/pylib/Lib/distutils/msvc9compiler.py similarity index 100% rename from Lib/distutils/msvc9compiler.py rename to pylib/Lib/distutils/msvc9compiler.py diff --git a/Lib/distutils/msvccompiler.py b/pylib/Lib/distutils/msvccompiler.py similarity index 100% rename from Lib/distutils/msvccompiler.py rename to pylib/Lib/distutils/msvccompiler.py diff --git a/Lib/distutils/spawn.py b/pylib/Lib/distutils/spawn.py similarity index 100% rename from Lib/distutils/spawn.py rename to pylib/Lib/distutils/spawn.py diff --git a/Lib/distutils/sysconfig.py b/pylib/Lib/distutils/sysconfig.py similarity index 100% rename from Lib/distutils/sysconfig.py rename to pylib/Lib/distutils/sysconfig.py diff --git a/Lib/distutils/text_file.py b/pylib/Lib/distutils/text_file.py similarity index 100% rename from Lib/distutils/text_file.py rename to pylib/Lib/distutils/text_file.py diff --git a/Lib/distutils/unixccompiler.py b/pylib/Lib/distutils/unixccompiler.py similarity index 100% rename from Lib/distutils/unixccompiler.py rename to pylib/Lib/distutils/unixccompiler.py diff --git a/Lib/distutils/util.py b/pylib/Lib/distutils/util.py similarity index 100% rename from Lib/distutils/util.py rename to pylib/Lib/distutils/util.py diff --git a/Lib/distutils/version.py b/pylib/Lib/distutils/version.py similarity index 100% rename from Lib/distutils/version.py rename to pylib/Lib/distutils/version.py diff --git a/Lib/distutils/versionpredicate.py b/pylib/Lib/distutils/versionpredicate.py similarity index 100% rename from Lib/distutils/versionpredicate.py rename to pylib/Lib/distutils/versionpredicate.py diff --git a/Lib/doctest.py b/pylib/Lib/doctest.py similarity index 100% rename from Lib/doctest.py rename to pylib/Lib/doctest.py diff --git a/Lib/dummy_threading.py b/pylib/Lib/dummy_threading.py similarity index 100% rename from Lib/dummy_threading.py rename to pylib/Lib/dummy_threading.py diff --git a/Lib/email/__init__.py b/pylib/Lib/email/__init__.py similarity index 100% rename from Lib/email/__init__.py rename to pylib/Lib/email/__init__.py diff --git a/Lib/email/_encoded_words.py b/pylib/Lib/email/_encoded_words.py similarity index 100% rename from Lib/email/_encoded_words.py rename to pylib/Lib/email/_encoded_words.py diff --git a/Lib/email/_header_value_parser.py b/pylib/Lib/email/_header_value_parser.py similarity index 100% rename from Lib/email/_header_value_parser.py rename to pylib/Lib/email/_header_value_parser.py diff --git a/Lib/email/_parseaddr.py b/pylib/Lib/email/_parseaddr.py similarity index 100% rename from Lib/email/_parseaddr.py rename to pylib/Lib/email/_parseaddr.py diff --git a/Lib/email/_policybase.py b/pylib/Lib/email/_policybase.py similarity index 100% rename from Lib/email/_policybase.py rename to pylib/Lib/email/_policybase.py diff --git a/Lib/email/architecture.rst b/pylib/Lib/email/architecture.rst similarity index 100% rename from Lib/email/architecture.rst rename to pylib/Lib/email/architecture.rst diff --git a/Lib/email/base64mime.py b/pylib/Lib/email/base64mime.py similarity index 100% rename from Lib/email/base64mime.py rename to pylib/Lib/email/base64mime.py diff --git a/Lib/email/charset.py b/pylib/Lib/email/charset.py similarity index 100% rename from Lib/email/charset.py rename to pylib/Lib/email/charset.py diff --git a/Lib/email/contentmanager.py b/pylib/Lib/email/contentmanager.py similarity index 100% rename from Lib/email/contentmanager.py rename to pylib/Lib/email/contentmanager.py diff --git a/Lib/email/encoders.py b/pylib/Lib/email/encoders.py similarity index 100% rename from Lib/email/encoders.py rename to pylib/Lib/email/encoders.py diff --git a/Lib/email/errors.py b/pylib/Lib/email/errors.py similarity index 100% rename from Lib/email/errors.py rename to pylib/Lib/email/errors.py diff --git a/Lib/email/feedparser.py b/pylib/Lib/email/feedparser.py similarity index 100% rename from Lib/email/feedparser.py rename to pylib/Lib/email/feedparser.py diff --git a/Lib/email/generator.py b/pylib/Lib/email/generator.py similarity index 100% rename from Lib/email/generator.py rename to pylib/Lib/email/generator.py diff --git a/Lib/email/header.py b/pylib/Lib/email/header.py similarity index 100% rename from Lib/email/header.py rename to pylib/Lib/email/header.py diff --git a/Lib/email/headerregistry.py b/pylib/Lib/email/headerregistry.py similarity index 100% rename from Lib/email/headerregistry.py rename to pylib/Lib/email/headerregistry.py diff --git a/Lib/email/iterators.py b/pylib/Lib/email/iterators.py similarity index 100% rename from Lib/email/iterators.py rename to pylib/Lib/email/iterators.py diff --git a/Lib/email/message.py b/pylib/Lib/email/message.py similarity index 100% rename from Lib/email/message.py rename to pylib/Lib/email/message.py diff --git a/Lib/email/mime/__init__.py b/pylib/Lib/email/mime/__init__.py similarity index 100% rename from Lib/email/mime/__init__.py rename to pylib/Lib/email/mime/__init__.py diff --git a/Lib/email/mime/application.py b/pylib/Lib/email/mime/application.py similarity index 100% rename from Lib/email/mime/application.py rename to pylib/Lib/email/mime/application.py diff --git a/Lib/email/mime/audio.py b/pylib/Lib/email/mime/audio.py similarity index 100% rename from Lib/email/mime/audio.py rename to pylib/Lib/email/mime/audio.py diff --git a/Lib/email/mime/base.py b/pylib/Lib/email/mime/base.py similarity index 100% rename from Lib/email/mime/base.py rename to pylib/Lib/email/mime/base.py diff --git a/Lib/email/mime/image.py b/pylib/Lib/email/mime/image.py similarity index 100% rename from Lib/email/mime/image.py rename to pylib/Lib/email/mime/image.py diff --git a/Lib/email/mime/message.py b/pylib/Lib/email/mime/message.py similarity index 100% rename from Lib/email/mime/message.py rename to pylib/Lib/email/mime/message.py diff --git a/Lib/email/mime/multipart.py b/pylib/Lib/email/mime/multipart.py similarity index 100% rename from Lib/email/mime/multipart.py rename to pylib/Lib/email/mime/multipart.py diff --git a/Lib/email/mime/nonmultipart.py b/pylib/Lib/email/mime/nonmultipart.py similarity index 100% rename from Lib/email/mime/nonmultipart.py rename to pylib/Lib/email/mime/nonmultipart.py diff --git a/Lib/email/mime/text.py b/pylib/Lib/email/mime/text.py similarity index 100% rename from Lib/email/mime/text.py rename to pylib/Lib/email/mime/text.py diff --git a/Lib/email/parser.py b/pylib/Lib/email/parser.py similarity index 100% rename from Lib/email/parser.py rename to pylib/Lib/email/parser.py diff --git a/Lib/email/policy.py b/pylib/Lib/email/policy.py similarity index 100% rename from Lib/email/policy.py rename to pylib/Lib/email/policy.py diff --git a/Lib/email/quoprimime.py b/pylib/Lib/email/quoprimime.py similarity index 100% rename from Lib/email/quoprimime.py rename to pylib/Lib/email/quoprimime.py diff --git a/Lib/email/utils.py b/pylib/Lib/email/utils.py similarity index 100% rename from Lib/email/utils.py rename to pylib/Lib/email/utils.py diff --git a/Lib/encodings/__init__.py b/pylib/Lib/encodings/__init__.py similarity index 100% rename from Lib/encodings/__init__.py rename to pylib/Lib/encodings/__init__.py diff --git a/Lib/encodings/aliases.py b/pylib/Lib/encodings/aliases.py similarity index 100% rename from Lib/encodings/aliases.py rename to pylib/Lib/encodings/aliases.py diff --git a/Lib/encodings/ascii.py b/pylib/Lib/encodings/ascii.py similarity index 100% rename from Lib/encodings/ascii.py rename to pylib/Lib/encodings/ascii.py diff --git a/Lib/encodings/base64_codec.py b/pylib/Lib/encodings/base64_codec.py similarity index 100% rename from Lib/encodings/base64_codec.py rename to pylib/Lib/encodings/base64_codec.py diff --git a/Lib/encodings/big5.py b/pylib/Lib/encodings/big5.py similarity index 100% rename from Lib/encodings/big5.py rename to pylib/Lib/encodings/big5.py diff --git a/Lib/encodings/big5hkscs.py b/pylib/Lib/encodings/big5hkscs.py similarity index 100% rename from Lib/encodings/big5hkscs.py rename to pylib/Lib/encodings/big5hkscs.py diff --git a/Lib/encodings/bz2_codec.py b/pylib/Lib/encodings/bz2_codec.py similarity index 100% rename from Lib/encodings/bz2_codec.py rename to pylib/Lib/encodings/bz2_codec.py diff --git a/Lib/encodings/charmap.py b/pylib/Lib/encodings/charmap.py similarity index 100% rename from Lib/encodings/charmap.py rename to pylib/Lib/encodings/charmap.py diff --git a/Lib/encodings/cp037.py b/pylib/Lib/encodings/cp037.py similarity index 100% rename from Lib/encodings/cp037.py rename to pylib/Lib/encodings/cp037.py diff --git a/Lib/encodings/cp1006.py b/pylib/Lib/encodings/cp1006.py similarity index 100% rename from Lib/encodings/cp1006.py rename to pylib/Lib/encodings/cp1006.py diff --git a/Lib/encodings/cp1026.py b/pylib/Lib/encodings/cp1026.py similarity index 100% rename from Lib/encodings/cp1026.py rename to pylib/Lib/encodings/cp1026.py diff --git a/Lib/encodings/cp1125.py b/pylib/Lib/encodings/cp1125.py similarity index 100% rename from Lib/encodings/cp1125.py rename to pylib/Lib/encodings/cp1125.py diff --git a/Lib/encodings/cp1140.py b/pylib/Lib/encodings/cp1140.py similarity index 100% rename from Lib/encodings/cp1140.py rename to pylib/Lib/encodings/cp1140.py diff --git a/Lib/encodings/cp1250.py b/pylib/Lib/encodings/cp1250.py similarity index 100% rename from Lib/encodings/cp1250.py rename to pylib/Lib/encodings/cp1250.py diff --git a/Lib/encodings/cp1251.py b/pylib/Lib/encodings/cp1251.py similarity index 100% rename from Lib/encodings/cp1251.py rename to pylib/Lib/encodings/cp1251.py diff --git a/Lib/encodings/cp1252.py b/pylib/Lib/encodings/cp1252.py similarity index 100% rename from Lib/encodings/cp1252.py rename to pylib/Lib/encodings/cp1252.py diff --git a/Lib/encodings/cp1253.py b/pylib/Lib/encodings/cp1253.py similarity index 100% rename from Lib/encodings/cp1253.py rename to pylib/Lib/encodings/cp1253.py diff --git a/Lib/encodings/cp1254.py b/pylib/Lib/encodings/cp1254.py similarity index 100% rename from Lib/encodings/cp1254.py rename to pylib/Lib/encodings/cp1254.py diff --git a/Lib/encodings/cp1255.py b/pylib/Lib/encodings/cp1255.py similarity index 100% rename from Lib/encodings/cp1255.py rename to pylib/Lib/encodings/cp1255.py diff --git a/Lib/encodings/cp1256.py b/pylib/Lib/encodings/cp1256.py similarity index 100% rename from Lib/encodings/cp1256.py rename to pylib/Lib/encodings/cp1256.py diff --git a/Lib/encodings/cp1257.py b/pylib/Lib/encodings/cp1257.py similarity index 100% rename from Lib/encodings/cp1257.py rename to pylib/Lib/encodings/cp1257.py diff --git a/Lib/encodings/cp1258.py b/pylib/Lib/encodings/cp1258.py similarity index 100% rename from Lib/encodings/cp1258.py rename to pylib/Lib/encodings/cp1258.py diff --git a/Lib/encodings/cp273.py b/pylib/Lib/encodings/cp273.py similarity index 100% rename from Lib/encodings/cp273.py rename to pylib/Lib/encodings/cp273.py diff --git a/Lib/encodings/cp424.py b/pylib/Lib/encodings/cp424.py similarity index 100% rename from Lib/encodings/cp424.py rename to pylib/Lib/encodings/cp424.py diff --git a/Lib/encodings/cp437.py b/pylib/Lib/encodings/cp437.py similarity index 100% rename from Lib/encodings/cp437.py rename to pylib/Lib/encodings/cp437.py diff --git a/Lib/encodings/cp500.py b/pylib/Lib/encodings/cp500.py similarity index 100% rename from Lib/encodings/cp500.py rename to pylib/Lib/encodings/cp500.py diff --git a/Lib/encodings/cp720.py b/pylib/Lib/encodings/cp720.py similarity index 100% rename from Lib/encodings/cp720.py rename to pylib/Lib/encodings/cp720.py diff --git a/Lib/encodings/cp737.py b/pylib/Lib/encodings/cp737.py similarity index 100% rename from Lib/encodings/cp737.py rename to pylib/Lib/encodings/cp737.py diff --git a/Lib/encodings/cp775.py b/pylib/Lib/encodings/cp775.py similarity index 100% rename from Lib/encodings/cp775.py rename to pylib/Lib/encodings/cp775.py diff --git a/Lib/encodings/cp850.py b/pylib/Lib/encodings/cp850.py similarity index 100% rename from Lib/encodings/cp850.py rename to pylib/Lib/encodings/cp850.py diff --git a/Lib/encodings/cp852.py b/pylib/Lib/encodings/cp852.py similarity index 100% rename from Lib/encodings/cp852.py rename to pylib/Lib/encodings/cp852.py diff --git a/Lib/encodings/cp855.py b/pylib/Lib/encodings/cp855.py similarity index 100% rename from Lib/encodings/cp855.py rename to pylib/Lib/encodings/cp855.py diff --git a/Lib/encodings/cp856.py b/pylib/Lib/encodings/cp856.py similarity index 100% rename from Lib/encodings/cp856.py rename to pylib/Lib/encodings/cp856.py diff --git a/Lib/encodings/cp857.py b/pylib/Lib/encodings/cp857.py similarity index 100% rename from Lib/encodings/cp857.py rename to pylib/Lib/encodings/cp857.py diff --git a/Lib/encodings/cp858.py b/pylib/Lib/encodings/cp858.py similarity index 100% rename from Lib/encodings/cp858.py rename to pylib/Lib/encodings/cp858.py diff --git a/Lib/encodings/cp860.py b/pylib/Lib/encodings/cp860.py similarity index 100% rename from Lib/encodings/cp860.py rename to pylib/Lib/encodings/cp860.py diff --git a/Lib/encodings/cp861.py b/pylib/Lib/encodings/cp861.py similarity index 100% rename from Lib/encodings/cp861.py rename to pylib/Lib/encodings/cp861.py diff --git a/Lib/encodings/cp862.py b/pylib/Lib/encodings/cp862.py similarity index 100% rename from Lib/encodings/cp862.py rename to pylib/Lib/encodings/cp862.py diff --git a/Lib/encodings/cp863.py b/pylib/Lib/encodings/cp863.py similarity index 100% rename from Lib/encodings/cp863.py rename to pylib/Lib/encodings/cp863.py diff --git a/Lib/encodings/cp864.py b/pylib/Lib/encodings/cp864.py similarity index 100% rename from Lib/encodings/cp864.py rename to pylib/Lib/encodings/cp864.py diff --git a/Lib/encodings/cp865.py b/pylib/Lib/encodings/cp865.py similarity index 100% rename from Lib/encodings/cp865.py rename to pylib/Lib/encodings/cp865.py diff --git a/Lib/encodings/cp866.py b/pylib/Lib/encodings/cp866.py similarity index 100% rename from Lib/encodings/cp866.py rename to pylib/Lib/encodings/cp866.py diff --git a/Lib/encodings/cp869.py b/pylib/Lib/encodings/cp869.py similarity index 100% rename from Lib/encodings/cp869.py rename to pylib/Lib/encodings/cp869.py diff --git a/Lib/encodings/cp874.py b/pylib/Lib/encodings/cp874.py similarity index 100% rename from Lib/encodings/cp874.py rename to pylib/Lib/encodings/cp874.py diff --git a/Lib/encodings/cp875.py b/pylib/Lib/encodings/cp875.py similarity index 100% rename from Lib/encodings/cp875.py rename to pylib/Lib/encodings/cp875.py diff --git a/Lib/encodings/cp932.py b/pylib/Lib/encodings/cp932.py similarity index 100% rename from Lib/encodings/cp932.py rename to pylib/Lib/encodings/cp932.py diff --git a/Lib/encodings/cp949.py b/pylib/Lib/encodings/cp949.py similarity index 100% rename from Lib/encodings/cp949.py rename to pylib/Lib/encodings/cp949.py diff --git a/Lib/encodings/cp950.py b/pylib/Lib/encodings/cp950.py similarity index 100% rename from Lib/encodings/cp950.py rename to pylib/Lib/encodings/cp950.py diff --git a/Lib/encodings/euc_jis_2004.py b/pylib/Lib/encodings/euc_jis_2004.py similarity index 100% rename from Lib/encodings/euc_jis_2004.py rename to pylib/Lib/encodings/euc_jis_2004.py diff --git a/Lib/encodings/euc_jisx0213.py b/pylib/Lib/encodings/euc_jisx0213.py similarity index 100% rename from Lib/encodings/euc_jisx0213.py rename to pylib/Lib/encodings/euc_jisx0213.py diff --git a/Lib/encodings/euc_jp.py b/pylib/Lib/encodings/euc_jp.py similarity index 100% rename from Lib/encodings/euc_jp.py rename to pylib/Lib/encodings/euc_jp.py diff --git a/Lib/encodings/euc_kr.py b/pylib/Lib/encodings/euc_kr.py similarity index 100% rename from Lib/encodings/euc_kr.py rename to pylib/Lib/encodings/euc_kr.py diff --git a/Lib/encodings/gb18030.py b/pylib/Lib/encodings/gb18030.py similarity index 100% rename from Lib/encodings/gb18030.py rename to pylib/Lib/encodings/gb18030.py diff --git a/Lib/encodings/gb2312.py b/pylib/Lib/encodings/gb2312.py similarity index 100% rename from Lib/encodings/gb2312.py rename to pylib/Lib/encodings/gb2312.py diff --git a/Lib/encodings/gbk.py b/pylib/Lib/encodings/gbk.py similarity index 100% rename from Lib/encodings/gbk.py rename to pylib/Lib/encodings/gbk.py diff --git a/Lib/encodings/hex_codec.py b/pylib/Lib/encodings/hex_codec.py similarity index 100% rename from Lib/encodings/hex_codec.py rename to pylib/Lib/encodings/hex_codec.py diff --git a/Lib/encodings/hp_roman8.py b/pylib/Lib/encodings/hp_roman8.py similarity index 100% rename from Lib/encodings/hp_roman8.py rename to pylib/Lib/encodings/hp_roman8.py diff --git a/Lib/encodings/hz.py b/pylib/Lib/encodings/hz.py similarity index 100% rename from Lib/encodings/hz.py rename to pylib/Lib/encodings/hz.py diff --git a/Lib/encodings/idna.py b/pylib/Lib/encodings/idna.py similarity index 100% rename from Lib/encodings/idna.py rename to pylib/Lib/encodings/idna.py diff --git a/Lib/encodings/iso2022_jp.py b/pylib/Lib/encodings/iso2022_jp.py similarity index 100% rename from Lib/encodings/iso2022_jp.py rename to pylib/Lib/encodings/iso2022_jp.py diff --git a/Lib/encodings/iso2022_jp_1.py b/pylib/Lib/encodings/iso2022_jp_1.py similarity index 100% rename from Lib/encodings/iso2022_jp_1.py rename to pylib/Lib/encodings/iso2022_jp_1.py diff --git a/Lib/encodings/iso2022_jp_2.py b/pylib/Lib/encodings/iso2022_jp_2.py similarity index 100% rename from Lib/encodings/iso2022_jp_2.py rename to pylib/Lib/encodings/iso2022_jp_2.py diff --git a/Lib/encodings/iso2022_jp_2004.py b/pylib/Lib/encodings/iso2022_jp_2004.py similarity index 100% rename from Lib/encodings/iso2022_jp_2004.py rename to pylib/Lib/encodings/iso2022_jp_2004.py diff --git a/Lib/encodings/iso2022_jp_3.py b/pylib/Lib/encodings/iso2022_jp_3.py similarity index 100% rename from Lib/encodings/iso2022_jp_3.py rename to pylib/Lib/encodings/iso2022_jp_3.py diff --git a/Lib/encodings/iso2022_jp_ext.py b/pylib/Lib/encodings/iso2022_jp_ext.py similarity index 100% rename from Lib/encodings/iso2022_jp_ext.py rename to pylib/Lib/encodings/iso2022_jp_ext.py diff --git a/Lib/encodings/iso2022_kr.py b/pylib/Lib/encodings/iso2022_kr.py similarity index 100% rename from Lib/encodings/iso2022_kr.py rename to pylib/Lib/encodings/iso2022_kr.py diff --git a/Lib/encodings/iso8859_1.py b/pylib/Lib/encodings/iso8859_1.py similarity index 100% rename from Lib/encodings/iso8859_1.py rename to pylib/Lib/encodings/iso8859_1.py diff --git a/Lib/encodings/iso8859_10.py b/pylib/Lib/encodings/iso8859_10.py similarity index 100% rename from Lib/encodings/iso8859_10.py rename to pylib/Lib/encodings/iso8859_10.py diff --git a/Lib/encodings/iso8859_11.py b/pylib/Lib/encodings/iso8859_11.py similarity index 100% rename from Lib/encodings/iso8859_11.py rename to pylib/Lib/encodings/iso8859_11.py diff --git a/Lib/encodings/iso8859_13.py b/pylib/Lib/encodings/iso8859_13.py similarity index 100% rename from Lib/encodings/iso8859_13.py rename to pylib/Lib/encodings/iso8859_13.py diff --git a/Lib/encodings/iso8859_14.py b/pylib/Lib/encodings/iso8859_14.py similarity index 100% rename from Lib/encodings/iso8859_14.py rename to pylib/Lib/encodings/iso8859_14.py diff --git a/Lib/encodings/iso8859_15.py b/pylib/Lib/encodings/iso8859_15.py similarity index 100% rename from Lib/encodings/iso8859_15.py rename to pylib/Lib/encodings/iso8859_15.py diff --git a/Lib/encodings/iso8859_16.py b/pylib/Lib/encodings/iso8859_16.py similarity index 100% rename from Lib/encodings/iso8859_16.py rename to pylib/Lib/encodings/iso8859_16.py diff --git a/Lib/encodings/iso8859_2.py b/pylib/Lib/encodings/iso8859_2.py similarity index 100% rename from Lib/encodings/iso8859_2.py rename to pylib/Lib/encodings/iso8859_2.py diff --git a/Lib/encodings/iso8859_3.py b/pylib/Lib/encodings/iso8859_3.py similarity index 100% rename from Lib/encodings/iso8859_3.py rename to pylib/Lib/encodings/iso8859_3.py diff --git a/Lib/encodings/iso8859_4.py b/pylib/Lib/encodings/iso8859_4.py similarity index 100% rename from Lib/encodings/iso8859_4.py rename to pylib/Lib/encodings/iso8859_4.py diff --git a/Lib/encodings/iso8859_5.py b/pylib/Lib/encodings/iso8859_5.py similarity index 100% rename from Lib/encodings/iso8859_5.py rename to pylib/Lib/encodings/iso8859_5.py diff --git a/Lib/encodings/iso8859_6.py b/pylib/Lib/encodings/iso8859_6.py similarity index 100% rename from Lib/encodings/iso8859_6.py rename to pylib/Lib/encodings/iso8859_6.py diff --git a/Lib/encodings/iso8859_7.py b/pylib/Lib/encodings/iso8859_7.py similarity index 100% rename from Lib/encodings/iso8859_7.py rename to pylib/Lib/encodings/iso8859_7.py diff --git a/Lib/encodings/iso8859_8.py b/pylib/Lib/encodings/iso8859_8.py similarity index 100% rename from Lib/encodings/iso8859_8.py rename to pylib/Lib/encodings/iso8859_8.py diff --git a/Lib/encodings/iso8859_9.py b/pylib/Lib/encodings/iso8859_9.py similarity index 100% rename from Lib/encodings/iso8859_9.py rename to pylib/Lib/encodings/iso8859_9.py diff --git a/Lib/encodings/johab.py b/pylib/Lib/encodings/johab.py similarity index 100% rename from Lib/encodings/johab.py rename to pylib/Lib/encodings/johab.py diff --git a/Lib/encodings/koi8_r.py b/pylib/Lib/encodings/koi8_r.py similarity index 100% rename from Lib/encodings/koi8_r.py rename to pylib/Lib/encodings/koi8_r.py diff --git a/Lib/encodings/koi8_t.py b/pylib/Lib/encodings/koi8_t.py similarity index 100% rename from Lib/encodings/koi8_t.py rename to pylib/Lib/encodings/koi8_t.py diff --git a/Lib/encodings/koi8_u.py b/pylib/Lib/encodings/koi8_u.py similarity index 100% rename from Lib/encodings/koi8_u.py rename to pylib/Lib/encodings/koi8_u.py diff --git a/Lib/encodings/kz1048.py b/pylib/Lib/encodings/kz1048.py similarity index 100% rename from Lib/encodings/kz1048.py rename to pylib/Lib/encodings/kz1048.py diff --git a/Lib/encodings/latin_1.py b/pylib/Lib/encodings/latin_1.py similarity index 100% rename from Lib/encodings/latin_1.py rename to pylib/Lib/encodings/latin_1.py diff --git a/Lib/encodings/mac_arabic.py b/pylib/Lib/encodings/mac_arabic.py similarity index 100% rename from Lib/encodings/mac_arabic.py rename to pylib/Lib/encodings/mac_arabic.py diff --git a/Lib/encodings/mac_croatian.py b/pylib/Lib/encodings/mac_croatian.py similarity index 100% rename from Lib/encodings/mac_croatian.py rename to pylib/Lib/encodings/mac_croatian.py diff --git a/Lib/encodings/mac_cyrillic.py b/pylib/Lib/encodings/mac_cyrillic.py similarity index 100% rename from Lib/encodings/mac_cyrillic.py rename to pylib/Lib/encodings/mac_cyrillic.py diff --git a/Lib/encodings/mac_farsi.py b/pylib/Lib/encodings/mac_farsi.py similarity index 100% rename from Lib/encodings/mac_farsi.py rename to pylib/Lib/encodings/mac_farsi.py diff --git a/Lib/encodings/mac_greek.py b/pylib/Lib/encodings/mac_greek.py similarity index 100% rename from Lib/encodings/mac_greek.py rename to pylib/Lib/encodings/mac_greek.py diff --git a/Lib/encodings/mac_iceland.py b/pylib/Lib/encodings/mac_iceland.py similarity index 100% rename from Lib/encodings/mac_iceland.py rename to pylib/Lib/encodings/mac_iceland.py diff --git a/Lib/encodings/mac_latin2.py b/pylib/Lib/encodings/mac_latin2.py similarity index 100% rename from Lib/encodings/mac_latin2.py rename to pylib/Lib/encodings/mac_latin2.py diff --git a/Lib/encodings/mac_roman.py b/pylib/Lib/encodings/mac_roman.py similarity index 100% rename from Lib/encodings/mac_roman.py rename to pylib/Lib/encodings/mac_roman.py diff --git a/Lib/encodings/mac_romanian.py b/pylib/Lib/encodings/mac_romanian.py similarity index 100% rename from Lib/encodings/mac_romanian.py rename to pylib/Lib/encodings/mac_romanian.py diff --git a/Lib/encodings/mac_turkish.py b/pylib/Lib/encodings/mac_turkish.py similarity index 100% rename from Lib/encodings/mac_turkish.py rename to pylib/Lib/encodings/mac_turkish.py diff --git a/Lib/encodings/mbcs.py b/pylib/Lib/encodings/mbcs.py similarity index 100% rename from Lib/encodings/mbcs.py rename to pylib/Lib/encodings/mbcs.py diff --git a/Lib/encodings/oem.py b/pylib/Lib/encodings/oem.py similarity index 100% rename from Lib/encodings/oem.py rename to pylib/Lib/encodings/oem.py diff --git a/Lib/encodings/palmos.py b/pylib/Lib/encodings/palmos.py similarity index 100% rename from Lib/encodings/palmos.py rename to pylib/Lib/encodings/palmos.py diff --git a/Lib/encodings/ptcp154.py b/pylib/Lib/encodings/ptcp154.py similarity index 100% rename from Lib/encodings/ptcp154.py rename to pylib/Lib/encodings/ptcp154.py diff --git a/Lib/encodings/punycode.py b/pylib/Lib/encodings/punycode.py similarity index 100% rename from Lib/encodings/punycode.py rename to pylib/Lib/encodings/punycode.py diff --git a/Lib/encodings/quopri_codec.py b/pylib/Lib/encodings/quopri_codec.py similarity index 100% rename from Lib/encodings/quopri_codec.py rename to pylib/Lib/encodings/quopri_codec.py diff --git a/Lib/encodings/raw_unicode_escape.py b/pylib/Lib/encodings/raw_unicode_escape.py similarity index 100% rename from Lib/encodings/raw_unicode_escape.py rename to pylib/Lib/encodings/raw_unicode_escape.py diff --git a/Lib/encodings/rot_13.py b/pylib/Lib/encodings/rot_13.py similarity index 100% rename from Lib/encodings/rot_13.py rename to pylib/Lib/encodings/rot_13.py diff --git a/Lib/encodings/shift_jis.py b/pylib/Lib/encodings/shift_jis.py similarity index 100% rename from Lib/encodings/shift_jis.py rename to pylib/Lib/encodings/shift_jis.py diff --git a/Lib/encodings/shift_jis_2004.py b/pylib/Lib/encodings/shift_jis_2004.py similarity index 100% rename from Lib/encodings/shift_jis_2004.py rename to pylib/Lib/encodings/shift_jis_2004.py diff --git a/Lib/encodings/shift_jisx0213.py b/pylib/Lib/encodings/shift_jisx0213.py similarity index 100% rename from Lib/encodings/shift_jisx0213.py rename to pylib/Lib/encodings/shift_jisx0213.py diff --git a/Lib/encodings/tis_620.py b/pylib/Lib/encodings/tis_620.py similarity index 100% rename from Lib/encodings/tis_620.py rename to pylib/Lib/encodings/tis_620.py diff --git a/Lib/encodings/undefined.py b/pylib/Lib/encodings/undefined.py similarity index 100% rename from Lib/encodings/undefined.py rename to pylib/Lib/encodings/undefined.py diff --git a/Lib/encodings/unicode_escape.py b/pylib/Lib/encodings/unicode_escape.py similarity index 100% rename from Lib/encodings/unicode_escape.py rename to pylib/Lib/encodings/unicode_escape.py diff --git a/Lib/encodings/utf_16.py b/pylib/Lib/encodings/utf_16.py similarity index 100% rename from Lib/encodings/utf_16.py rename to pylib/Lib/encodings/utf_16.py diff --git a/Lib/encodings/utf_16_be.py b/pylib/Lib/encodings/utf_16_be.py similarity index 100% rename from Lib/encodings/utf_16_be.py rename to pylib/Lib/encodings/utf_16_be.py diff --git a/Lib/encodings/utf_16_le.py b/pylib/Lib/encodings/utf_16_le.py similarity index 100% rename from Lib/encodings/utf_16_le.py rename to pylib/Lib/encodings/utf_16_le.py diff --git a/Lib/encodings/utf_32.py b/pylib/Lib/encodings/utf_32.py similarity index 100% rename from Lib/encodings/utf_32.py rename to pylib/Lib/encodings/utf_32.py diff --git a/Lib/encodings/utf_32_be.py b/pylib/Lib/encodings/utf_32_be.py similarity index 100% rename from Lib/encodings/utf_32_be.py rename to pylib/Lib/encodings/utf_32_be.py diff --git a/Lib/encodings/utf_32_le.py b/pylib/Lib/encodings/utf_32_le.py similarity index 100% rename from Lib/encodings/utf_32_le.py rename to pylib/Lib/encodings/utf_32_le.py diff --git a/Lib/encodings/utf_7.py b/pylib/Lib/encodings/utf_7.py similarity index 100% rename from Lib/encodings/utf_7.py rename to pylib/Lib/encodings/utf_7.py diff --git a/Lib/encodings/utf_8.py b/pylib/Lib/encodings/utf_8.py similarity index 100% rename from Lib/encodings/utf_8.py rename to pylib/Lib/encodings/utf_8.py diff --git a/Lib/encodings/utf_8_sig.py b/pylib/Lib/encodings/utf_8_sig.py similarity index 100% rename from Lib/encodings/utf_8_sig.py rename to pylib/Lib/encodings/utf_8_sig.py diff --git a/Lib/encodings/uu_codec.py b/pylib/Lib/encodings/uu_codec.py similarity index 100% rename from Lib/encodings/uu_codec.py rename to pylib/Lib/encodings/uu_codec.py diff --git a/Lib/encodings/zlib_codec.py b/pylib/Lib/encodings/zlib_codec.py similarity index 100% rename from Lib/encodings/zlib_codec.py rename to pylib/Lib/encodings/zlib_codec.py diff --git a/Lib/ensurepip/__init__.py b/pylib/Lib/ensurepip/__init__.py similarity index 100% rename from Lib/ensurepip/__init__.py rename to pylib/Lib/ensurepip/__init__.py diff --git a/Lib/ensurepip/__main__.py b/pylib/Lib/ensurepip/__main__.py similarity index 100% rename from Lib/ensurepip/__main__.py rename to pylib/Lib/ensurepip/__main__.py diff --git a/Lib/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl b/pylib/Lib/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl similarity index 100% rename from Lib/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl rename to pylib/Lib/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl diff --git a/Lib/ensurepip/_uninstall.py b/pylib/Lib/ensurepip/_uninstall.py similarity index 100% rename from Lib/ensurepip/_uninstall.py rename to pylib/Lib/ensurepip/_uninstall.py diff --git a/Lib/enum.py b/pylib/Lib/enum.py similarity index 100% rename from Lib/enum.py rename to pylib/Lib/enum.py diff --git a/Lib/filecmp.py b/pylib/Lib/filecmp.py similarity index 100% rename from Lib/filecmp.py rename to pylib/Lib/filecmp.py diff --git a/Lib/fileinput.py b/pylib/Lib/fileinput.py similarity index 100% rename from Lib/fileinput.py rename to pylib/Lib/fileinput.py diff --git a/Lib/fnmatch.py b/pylib/Lib/fnmatch.py similarity index 100% rename from Lib/fnmatch.py rename to pylib/Lib/fnmatch.py diff --git a/Lib/fractions.py b/pylib/Lib/fractions.py similarity index 100% rename from Lib/fractions.py rename to pylib/Lib/fractions.py diff --git a/Lib/ftplib.py b/pylib/Lib/ftplib.py similarity index 100% rename from Lib/ftplib.py rename to pylib/Lib/ftplib.py diff --git a/Lib/functools.py b/pylib/Lib/functools.py similarity index 100% rename from Lib/functools.py rename to pylib/Lib/functools.py diff --git a/Lib/genericpath.py b/pylib/Lib/genericpath.py similarity index 100% rename from Lib/genericpath.py rename to pylib/Lib/genericpath.py diff --git a/Lib/getopt.py b/pylib/Lib/getopt.py similarity index 100% rename from Lib/getopt.py rename to pylib/Lib/getopt.py diff --git a/Lib/getpass.py b/pylib/Lib/getpass.py similarity index 100% rename from Lib/getpass.py rename to pylib/Lib/getpass.py diff --git a/Lib/gettext.py b/pylib/Lib/gettext.py similarity index 100% rename from Lib/gettext.py rename to pylib/Lib/gettext.py diff --git a/Lib/glob.py b/pylib/Lib/glob.py similarity index 100% rename from Lib/glob.py rename to pylib/Lib/glob.py diff --git a/Lib/graphlib.py b/pylib/Lib/graphlib.py similarity index 100% rename from Lib/graphlib.py rename to pylib/Lib/graphlib.py diff --git a/Lib/gzip.py b/pylib/Lib/gzip.py similarity index 100% rename from Lib/gzip.py rename to pylib/Lib/gzip.py diff --git a/Lib/hashlib.py b/pylib/Lib/hashlib.py similarity index 100% rename from Lib/hashlib.py rename to pylib/Lib/hashlib.py diff --git a/Lib/heapq.py b/pylib/Lib/heapq.py similarity index 100% rename from Lib/heapq.py rename to pylib/Lib/heapq.py diff --git a/Lib/hmac.py b/pylib/Lib/hmac.py similarity index 100% rename from Lib/hmac.py rename to pylib/Lib/hmac.py diff --git a/Lib/html/__init__.py b/pylib/Lib/html/__init__.py similarity index 100% rename from Lib/html/__init__.py rename to pylib/Lib/html/__init__.py diff --git a/Lib/html/entities.py b/pylib/Lib/html/entities.py similarity index 100% rename from Lib/html/entities.py rename to pylib/Lib/html/entities.py diff --git a/Lib/html/parser.py b/pylib/Lib/html/parser.py similarity index 100% rename from Lib/html/parser.py rename to pylib/Lib/html/parser.py diff --git a/Lib/http/__init__.py b/pylib/Lib/http/__init__.py similarity index 100% rename from Lib/http/__init__.py rename to pylib/Lib/http/__init__.py diff --git a/Lib/http/client.py b/pylib/Lib/http/client.py similarity index 100% rename from Lib/http/client.py rename to pylib/Lib/http/client.py diff --git a/Lib/http/cookiejar.py b/pylib/Lib/http/cookiejar.py similarity index 100% rename from Lib/http/cookiejar.py rename to pylib/Lib/http/cookiejar.py diff --git a/Lib/http/cookies.py b/pylib/Lib/http/cookies.py similarity index 100% rename from Lib/http/cookies.py rename to pylib/Lib/http/cookies.py diff --git a/Lib/http/server.py b/pylib/Lib/http/server.py similarity index 100% rename from Lib/http/server.py rename to pylib/Lib/http/server.py diff --git a/Lib/importlib/__init__.py b/pylib/Lib/importlib/__init__.py similarity index 100% rename from Lib/importlib/__init__.py rename to pylib/Lib/importlib/__init__.py diff --git a/Lib/importlib/_abc.py b/pylib/Lib/importlib/_abc.py similarity index 100% rename from Lib/importlib/_abc.py rename to pylib/Lib/importlib/_abc.py diff --git a/Lib/importlib/_bootstrap.py b/pylib/Lib/importlib/_bootstrap.py similarity index 100% rename from Lib/importlib/_bootstrap.py rename to pylib/Lib/importlib/_bootstrap.py diff --git a/Lib/importlib/_bootstrap_external.py b/pylib/Lib/importlib/_bootstrap_external.py similarity index 100% rename from Lib/importlib/_bootstrap_external.py rename to pylib/Lib/importlib/_bootstrap_external.py diff --git a/Lib/importlib/abc.py b/pylib/Lib/importlib/abc.py similarity index 100% rename from Lib/importlib/abc.py rename to pylib/Lib/importlib/abc.py diff --git a/Lib/importlib/machinery.py b/pylib/Lib/importlib/machinery.py similarity index 100% rename from Lib/importlib/machinery.py rename to pylib/Lib/importlib/machinery.py diff --git a/Lib/importlib/metadata/__init__.py b/pylib/Lib/importlib/metadata/__init__.py similarity index 100% rename from Lib/importlib/metadata/__init__.py rename to pylib/Lib/importlib/metadata/__init__.py diff --git a/Lib/importlib/metadata/_adapters.py b/pylib/Lib/importlib/metadata/_adapters.py similarity index 100% rename from Lib/importlib/metadata/_adapters.py rename to pylib/Lib/importlib/metadata/_adapters.py diff --git a/Lib/importlib/metadata/_collections.py b/pylib/Lib/importlib/metadata/_collections.py similarity index 100% rename from Lib/importlib/metadata/_collections.py rename to pylib/Lib/importlib/metadata/_collections.py diff --git a/Lib/importlib/metadata/_functools.py b/pylib/Lib/importlib/metadata/_functools.py similarity index 100% rename from Lib/importlib/metadata/_functools.py rename to pylib/Lib/importlib/metadata/_functools.py diff --git a/Lib/importlib/metadata/_itertools.py b/pylib/Lib/importlib/metadata/_itertools.py similarity index 100% rename from Lib/importlib/metadata/_itertools.py rename to pylib/Lib/importlib/metadata/_itertools.py diff --git a/Lib/importlib/metadata/_meta.py b/pylib/Lib/importlib/metadata/_meta.py similarity index 100% rename from Lib/importlib/metadata/_meta.py rename to pylib/Lib/importlib/metadata/_meta.py diff --git a/Lib/importlib/metadata/_text.py b/pylib/Lib/importlib/metadata/_text.py similarity index 100% rename from Lib/importlib/metadata/_text.py rename to pylib/Lib/importlib/metadata/_text.py diff --git a/Lib/importlib/readers.py b/pylib/Lib/importlib/readers.py similarity index 100% rename from Lib/importlib/readers.py rename to pylib/Lib/importlib/readers.py diff --git a/Lib/importlib/resources/__init__.py b/pylib/Lib/importlib/resources/__init__.py similarity index 100% rename from Lib/importlib/resources/__init__.py rename to pylib/Lib/importlib/resources/__init__.py diff --git a/Lib/importlib/resources/_adapters.py b/pylib/Lib/importlib/resources/_adapters.py similarity index 100% rename from Lib/importlib/resources/_adapters.py rename to pylib/Lib/importlib/resources/_adapters.py diff --git a/Lib/importlib/resources/_common.py b/pylib/Lib/importlib/resources/_common.py similarity index 100% rename from Lib/importlib/resources/_common.py rename to pylib/Lib/importlib/resources/_common.py diff --git a/Lib/importlib/resources/_itertools.py b/pylib/Lib/importlib/resources/_itertools.py similarity index 100% rename from Lib/importlib/resources/_itertools.py rename to pylib/Lib/importlib/resources/_itertools.py diff --git a/Lib/importlib/resources/_legacy.py b/pylib/Lib/importlib/resources/_legacy.py similarity index 100% rename from Lib/importlib/resources/_legacy.py rename to pylib/Lib/importlib/resources/_legacy.py diff --git a/Lib/importlib/resources/abc.py b/pylib/Lib/importlib/resources/abc.py similarity index 100% rename from Lib/importlib/resources/abc.py rename to pylib/Lib/importlib/resources/abc.py diff --git a/Lib/importlib/resources/readers.py b/pylib/Lib/importlib/resources/readers.py similarity index 100% rename from Lib/importlib/resources/readers.py rename to pylib/Lib/importlib/resources/readers.py diff --git a/Lib/importlib/resources/simple.py b/pylib/Lib/importlib/resources/simple.py similarity index 100% rename from Lib/importlib/resources/simple.py rename to pylib/Lib/importlib/resources/simple.py diff --git a/Lib/importlib/simple.py b/pylib/Lib/importlib/simple.py similarity index 100% rename from Lib/importlib/simple.py rename to pylib/Lib/importlib/simple.py diff --git a/Lib/importlib/util.py b/pylib/Lib/importlib/util.py similarity index 100% rename from Lib/importlib/util.py rename to pylib/Lib/importlib/util.py diff --git a/Lib/inspect.py b/pylib/Lib/inspect.py similarity index 100% rename from Lib/inspect.py rename to pylib/Lib/inspect.py diff --git a/Lib/io.py b/pylib/Lib/io.py similarity index 100% rename from Lib/io.py rename to pylib/Lib/io.py diff --git a/Lib/ipaddress.py b/pylib/Lib/ipaddress.py similarity index 100% rename from Lib/ipaddress.py rename to pylib/Lib/ipaddress.py diff --git a/Lib/json/__init__.py b/pylib/Lib/json/__init__.py similarity index 100% rename from Lib/json/__init__.py rename to pylib/Lib/json/__init__.py diff --git a/Lib/json/decoder.py b/pylib/Lib/json/decoder.py similarity index 100% rename from Lib/json/decoder.py rename to pylib/Lib/json/decoder.py diff --git a/Lib/json/encoder.py b/pylib/Lib/json/encoder.py similarity index 100% rename from Lib/json/encoder.py rename to pylib/Lib/json/encoder.py diff --git a/Lib/json/scanner.py b/pylib/Lib/json/scanner.py similarity index 100% rename from Lib/json/scanner.py rename to pylib/Lib/json/scanner.py diff --git a/Lib/json/tool.py b/pylib/Lib/json/tool.py similarity index 100% rename from Lib/json/tool.py rename to pylib/Lib/json/tool.py diff --git a/Lib/keyword.py b/pylib/Lib/keyword.py similarity index 100% rename from Lib/keyword.py rename to pylib/Lib/keyword.py diff --git a/Lib/linecache.py b/pylib/Lib/linecache.py similarity index 100% rename from Lib/linecache.py rename to pylib/Lib/linecache.py diff --git a/Lib/locale.py b/pylib/Lib/locale.py similarity index 100% rename from Lib/locale.py rename to pylib/Lib/locale.py diff --git a/Lib/logging/__init__.py b/pylib/Lib/logging/__init__.py similarity index 100% rename from Lib/logging/__init__.py rename to pylib/Lib/logging/__init__.py diff --git a/Lib/logging/config.py b/pylib/Lib/logging/config.py similarity index 100% rename from Lib/logging/config.py rename to pylib/Lib/logging/config.py diff --git a/Lib/logging/handlers.py b/pylib/Lib/logging/handlers.py similarity index 100% rename from Lib/logging/handlers.py rename to pylib/Lib/logging/handlers.py diff --git a/Lib/mailbox.py b/pylib/Lib/mailbox.py similarity index 100% rename from Lib/mailbox.py rename to pylib/Lib/mailbox.py diff --git a/Lib/mimetypes.py b/pylib/Lib/mimetypes.py similarity index 100% rename from Lib/mimetypes.py rename to pylib/Lib/mimetypes.py diff --git a/Lib/multiprocessing/__init__.py b/pylib/Lib/multiprocessing/__init__.py similarity index 100% rename from Lib/multiprocessing/__init__.py rename to pylib/Lib/multiprocessing/__init__.py diff --git a/Lib/multiprocessing/connection.py b/pylib/Lib/multiprocessing/connection.py similarity index 100% rename from Lib/multiprocessing/connection.py rename to pylib/Lib/multiprocessing/connection.py diff --git a/Lib/multiprocessing/context.py b/pylib/Lib/multiprocessing/context.py similarity index 100% rename from Lib/multiprocessing/context.py rename to pylib/Lib/multiprocessing/context.py diff --git a/Lib/multiprocessing/dummy/__init__.py b/pylib/Lib/multiprocessing/dummy/__init__.py similarity index 100% rename from Lib/multiprocessing/dummy/__init__.py rename to pylib/Lib/multiprocessing/dummy/__init__.py diff --git a/Lib/multiprocessing/dummy/connection.py b/pylib/Lib/multiprocessing/dummy/connection.py similarity index 100% rename from Lib/multiprocessing/dummy/connection.py rename to pylib/Lib/multiprocessing/dummy/connection.py diff --git a/Lib/multiprocessing/forkserver.py b/pylib/Lib/multiprocessing/forkserver.py similarity index 100% rename from Lib/multiprocessing/forkserver.py rename to pylib/Lib/multiprocessing/forkserver.py diff --git a/Lib/multiprocessing/heap.py b/pylib/Lib/multiprocessing/heap.py similarity index 100% rename from Lib/multiprocessing/heap.py rename to pylib/Lib/multiprocessing/heap.py diff --git a/Lib/multiprocessing/managers.py b/pylib/Lib/multiprocessing/managers.py similarity index 100% rename from Lib/multiprocessing/managers.py rename to pylib/Lib/multiprocessing/managers.py diff --git a/Lib/multiprocessing/pool.py b/pylib/Lib/multiprocessing/pool.py similarity index 100% rename from Lib/multiprocessing/pool.py rename to pylib/Lib/multiprocessing/pool.py diff --git a/Lib/multiprocessing/popen_fork.py b/pylib/Lib/multiprocessing/popen_fork.py similarity index 100% rename from Lib/multiprocessing/popen_fork.py rename to pylib/Lib/multiprocessing/popen_fork.py diff --git a/Lib/multiprocessing/popen_forkserver.py b/pylib/Lib/multiprocessing/popen_forkserver.py similarity index 100% rename from Lib/multiprocessing/popen_forkserver.py rename to pylib/Lib/multiprocessing/popen_forkserver.py diff --git a/Lib/multiprocessing/popen_spawn_posix.py b/pylib/Lib/multiprocessing/popen_spawn_posix.py similarity index 100% rename from Lib/multiprocessing/popen_spawn_posix.py rename to pylib/Lib/multiprocessing/popen_spawn_posix.py diff --git a/Lib/multiprocessing/popen_spawn_win32.py b/pylib/Lib/multiprocessing/popen_spawn_win32.py similarity index 100% rename from Lib/multiprocessing/popen_spawn_win32.py rename to pylib/Lib/multiprocessing/popen_spawn_win32.py diff --git a/Lib/multiprocessing/process.py b/pylib/Lib/multiprocessing/process.py similarity index 100% rename from Lib/multiprocessing/process.py rename to pylib/Lib/multiprocessing/process.py diff --git a/Lib/multiprocessing/queues.py b/pylib/Lib/multiprocessing/queues.py similarity index 100% rename from Lib/multiprocessing/queues.py rename to pylib/Lib/multiprocessing/queues.py diff --git a/Lib/multiprocessing/reduction.py b/pylib/Lib/multiprocessing/reduction.py similarity index 100% rename from Lib/multiprocessing/reduction.py rename to pylib/Lib/multiprocessing/reduction.py diff --git a/Lib/multiprocessing/resource_sharer.py b/pylib/Lib/multiprocessing/resource_sharer.py similarity index 100% rename from Lib/multiprocessing/resource_sharer.py rename to pylib/Lib/multiprocessing/resource_sharer.py diff --git a/Lib/multiprocessing/resource_tracker.py b/pylib/Lib/multiprocessing/resource_tracker.py similarity index 100% rename from Lib/multiprocessing/resource_tracker.py rename to pylib/Lib/multiprocessing/resource_tracker.py diff --git a/Lib/multiprocessing/shared_memory.py b/pylib/Lib/multiprocessing/shared_memory.py similarity index 100% rename from Lib/multiprocessing/shared_memory.py rename to pylib/Lib/multiprocessing/shared_memory.py diff --git a/Lib/multiprocessing/sharedctypes.py b/pylib/Lib/multiprocessing/sharedctypes.py similarity index 100% rename from Lib/multiprocessing/sharedctypes.py rename to pylib/Lib/multiprocessing/sharedctypes.py diff --git a/Lib/multiprocessing/spawn.py b/pylib/Lib/multiprocessing/spawn.py similarity index 100% rename from Lib/multiprocessing/spawn.py rename to pylib/Lib/multiprocessing/spawn.py diff --git a/Lib/multiprocessing/synchronize.py b/pylib/Lib/multiprocessing/synchronize.py similarity index 100% rename from Lib/multiprocessing/synchronize.py rename to pylib/Lib/multiprocessing/synchronize.py diff --git a/Lib/multiprocessing/util.py b/pylib/Lib/multiprocessing/util.py similarity index 100% rename from Lib/multiprocessing/util.py rename to pylib/Lib/multiprocessing/util.py diff --git a/Lib/netrc.py b/pylib/Lib/netrc.py similarity index 100% rename from Lib/netrc.py rename to pylib/Lib/netrc.py diff --git a/Lib/ntpath.py b/pylib/Lib/ntpath.py similarity index 100% rename from Lib/ntpath.py rename to pylib/Lib/ntpath.py diff --git a/Lib/nturl2path.py b/pylib/Lib/nturl2path.py similarity index 100% rename from Lib/nturl2path.py rename to pylib/Lib/nturl2path.py diff --git a/Lib/numbers.py b/pylib/Lib/numbers.py similarity index 100% rename from Lib/numbers.py rename to pylib/Lib/numbers.py diff --git a/Lib/opcode.py b/pylib/Lib/opcode.py similarity index 100% rename from Lib/opcode.py rename to pylib/Lib/opcode.py diff --git a/Lib/operator.py b/pylib/Lib/operator.py similarity index 100% rename from Lib/operator.py rename to pylib/Lib/operator.py diff --git a/Lib/optparse.py b/pylib/Lib/optparse.py similarity index 100% rename from Lib/optparse.py rename to pylib/Lib/optparse.py diff --git a/Lib/os.py b/pylib/Lib/os.py similarity index 100% rename from Lib/os.py rename to pylib/Lib/os.py diff --git a/Lib/pathlib.py b/pylib/Lib/pathlib.py similarity index 100% rename from Lib/pathlib.py rename to pylib/Lib/pathlib.py diff --git a/Lib/pdb.py b/pylib/Lib/pdb.py similarity index 100% rename from Lib/pdb.py rename to pylib/Lib/pdb.py diff --git a/Lib/pickle.py b/pylib/Lib/pickle.py similarity index 100% rename from Lib/pickle.py rename to pylib/Lib/pickle.py diff --git a/Lib/pickletools.py b/pylib/Lib/pickletools.py similarity index 100% rename from Lib/pickletools.py rename to pylib/Lib/pickletools.py diff --git a/Lib/pkgutil.py b/pylib/Lib/pkgutil.py similarity index 100% rename from Lib/pkgutil.py rename to pylib/Lib/pkgutil.py diff --git a/Lib/platform.py b/pylib/Lib/platform.py similarity index 100% rename from Lib/platform.py rename to pylib/Lib/platform.py diff --git a/Lib/plistlib.py b/pylib/Lib/plistlib.py similarity index 100% rename from Lib/plistlib.py rename to pylib/Lib/plistlib.py diff --git a/Lib/posixpath.py b/pylib/Lib/posixpath.py similarity index 100% rename from Lib/posixpath.py rename to pylib/Lib/posixpath.py diff --git a/Lib/pprint.py b/pylib/Lib/pprint.py similarity index 100% rename from Lib/pprint.py rename to pylib/Lib/pprint.py diff --git a/Lib/pty.py b/pylib/Lib/pty.py similarity index 100% rename from Lib/pty.py rename to pylib/Lib/pty.py diff --git a/Lib/py_compile.py b/pylib/Lib/py_compile.py similarity index 100% rename from Lib/py_compile.py rename to pylib/Lib/py_compile.py diff --git a/Lib/pydoc.py b/pylib/Lib/pydoc.py similarity index 100% rename from Lib/pydoc.py rename to pylib/Lib/pydoc.py diff --git a/Lib/pydoc_data/__init__.py b/pylib/Lib/pydoc_data/__init__.py similarity index 100% rename from Lib/pydoc_data/__init__.py rename to pylib/Lib/pydoc_data/__init__.py diff --git a/Lib/pydoc_data/_pydoc.css b/pylib/Lib/pydoc_data/_pydoc.css similarity index 100% rename from Lib/pydoc_data/_pydoc.css rename to pylib/Lib/pydoc_data/_pydoc.css diff --git a/Lib/pydoc_data/topics.py b/pylib/Lib/pydoc_data/topics.py similarity index 100% rename from Lib/pydoc_data/topics.py rename to pylib/Lib/pydoc_data/topics.py diff --git a/Lib/queue.py b/pylib/Lib/queue.py similarity index 100% rename from Lib/queue.py rename to pylib/Lib/queue.py diff --git a/Lib/quopri.py b/pylib/Lib/quopri.py similarity index 100% rename from Lib/quopri.py rename to pylib/Lib/quopri.py diff --git a/Lib/random.py b/pylib/Lib/random.py similarity index 100% rename from Lib/random.py rename to pylib/Lib/random.py diff --git a/Lib/re/__init__.py b/pylib/Lib/re/__init__.py similarity index 100% rename from Lib/re/__init__.py rename to pylib/Lib/re/__init__.py diff --git a/Lib/re/_casefix.py b/pylib/Lib/re/_casefix.py similarity index 100% rename from Lib/re/_casefix.py rename to pylib/Lib/re/_casefix.py diff --git a/Lib/re/_compiler.py b/pylib/Lib/re/_compiler.py similarity index 100% rename from Lib/re/_compiler.py rename to pylib/Lib/re/_compiler.py diff --git a/Lib/re/_constants.py b/pylib/Lib/re/_constants.py similarity index 100% rename from Lib/re/_constants.py rename to pylib/Lib/re/_constants.py diff --git a/Lib/re/_parser.py b/pylib/Lib/re/_parser.py similarity index 100% rename from Lib/re/_parser.py rename to pylib/Lib/re/_parser.py diff --git a/Lib/reprlib.py b/pylib/Lib/reprlib.py similarity index 100% rename from Lib/reprlib.py rename to pylib/Lib/reprlib.py diff --git a/Lib/rlcompleter.py b/pylib/Lib/rlcompleter.py similarity index 100% rename from Lib/rlcompleter.py rename to pylib/Lib/rlcompleter.py diff --git a/Lib/runpy.py b/pylib/Lib/runpy.py similarity index 100% rename from Lib/runpy.py rename to pylib/Lib/runpy.py diff --git a/Lib/sched.py b/pylib/Lib/sched.py similarity index 100% rename from Lib/sched.py rename to pylib/Lib/sched.py diff --git a/Lib/secrets.py b/pylib/Lib/secrets.py similarity index 100% rename from Lib/secrets.py rename to pylib/Lib/secrets.py diff --git a/Lib/selectors.py b/pylib/Lib/selectors.py similarity index 100% rename from Lib/selectors.py rename to pylib/Lib/selectors.py diff --git a/Lib/shelve.py b/pylib/Lib/shelve.py similarity index 100% rename from Lib/shelve.py rename to pylib/Lib/shelve.py diff --git a/Lib/shlex.py b/pylib/Lib/shlex.py similarity index 100% rename from Lib/shlex.py rename to pylib/Lib/shlex.py diff --git a/Lib/shutil.py b/pylib/Lib/shutil.py similarity index 100% rename from Lib/shutil.py rename to pylib/Lib/shutil.py diff --git a/Lib/signal.py b/pylib/Lib/signal.py similarity index 100% rename from Lib/signal.py rename to pylib/Lib/signal.py diff --git a/Lib/site.py b/pylib/Lib/site.py similarity index 100% rename from Lib/site.py rename to pylib/Lib/site.py diff --git a/Lib/smtplib.py b/pylib/Lib/smtplib.py similarity index 100% rename from Lib/smtplib.py rename to pylib/Lib/smtplib.py diff --git a/Lib/socket.py b/pylib/Lib/socket.py similarity index 100% rename from Lib/socket.py rename to pylib/Lib/socket.py diff --git a/Lib/socketserver.py b/pylib/Lib/socketserver.py similarity index 100% rename from Lib/socketserver.py rename to pylib/Lib/socketserver.py diff --git a/Lib/sqlite3/__init__.py b/pylib/Lib/sqlite3/__init__.py similarity index 100% rename from Lib/sqlite3/__init__.py rename to pylib/Lib/sqlite3/__init__.py diff --git a/Lib/sqlite3/__main__.py b/pylib/Lib/sqlite3/__main__.py similarity index 100% rename from Lib/sqlite3/__main__.py rename to pylib/Lib/sqlite3/__main__.py diff --git a/Lib/sqlite3/dbapi2.py b/pylib/Lib/sqlite3/dbapi2.py similarity index 100% rename from Lib/sqlite3/dbapi2.py rename to pylib/Lib/sqlite3/dbapi2.py diff --git a/Lib/sqlite3/dump.py b/pylib/Lib/sqlite3/dump.py similarity index 100% rename from Lib/sqlite3/dump.py rename to pylib/Lib/sqlite3/dump.py diff --git a/Lib/sre_compile.py b/pylib/Lib/sre_compile.py similarity index 100% rename from Lib/sre_compile.py rename to pylib/Lib/sre_compile.py diff --git a/Lib/sre_constants.py b/pylib/Lib/sre_constants.py similarity index 100% rename from Lib/sre_constants.py rename to pylib/Lib/sre_constants.py diff --git a/Lib/sre_parse.py b/pylib/Lib/sre_parse.py similarity index 100% rename from Lib/sre_parse.py rename to pylib/Lib/sre_parse.py diff --git a/Lib/ssl.py b/pylib/Lib/ssl.py similarity index 100% rename from Lib/ssl.py rename to pylib/Lib/ssl.py diff --git a/Lib/stat.py b/pylib/Lib/stat.py similarity index 100% rename from Lib/stat.py rename to pylib/Lib/stat.py diff --git a/Lib/statistics.py b/pylib/Lib/statistics.py similarity index 100% rename from Lib/statistics.py rename to pylib/Lib/statistics.py diff --git a/Lib/string.py b/pylib/Lib/string.py similarity index 100% rename from Lib/string.py rename to pylib/Lib/string.py diff --git a/Lib/stringprep.py b/pylib/Lib/stringprep.py similarity index 100% rename from Lib/stringprep.py rename to pylib/Lib/stringprep.py diff --git a/Lib/struct.py b/pylib/Lib/struct.py similarity index 100% rename from Lib/struct.py rename to pylib/Lib/struct.py diff --git a/Lib/subprocess.py b/pylib/Lib/subprocess.py similarity index 100% rename from Lib/subprocess.py rename to pylib/Lib/subprocess.py diff --git a/Lib/sysconfig.py b/pylib/Lib/sysconfig.py similarity index 100% rename from Lib/sysconfig.py rename to pylib/Lib/sysconfig.py diff --git a/Lib/tabnanny.py b/pylib/Lib/tabnanny.py similarity index 100% rename from Lib/tabnanny.py rename to pylib/Lib/tabnanny.py diff --git a/Lib/tarfile.py b/pylib/Lib/tarfile.py similarity index 100% rename from Lib/tarfile.py rename to pylib/Lib/tarfile.py diff --git a/Lib/tempfile.py b/pylib/Lib/tempfile.py similarity index 100% rename from Lib/tempfile.py rename to pylib/Lib/tempfile.py diff --git a/Lib/test/__init__.py b/pylib/Lib/test/__init__.py similarity index 100% rename from Lib/test/__init__.py rename to pylib/Lib/test/__init__.py diff --git a/Lib/test/__main__.py b/pylib/Lib/test/__main__.py similarity index 100% rename from Lib/test/__main__.py rename to pylib/Lib/test/__main__.py diff --git a/Lib/test/_test_atexit.py b/pylib/Lib/test/_test_atexit.py similarity index 100% rename from Lib/test/_test_atexit.py rename to pylib/Lib/test/_test_atexit.py diff --git a/Lib/test/_test_multiprocessing.py b/pylib/Lib/test/_test_multiprocessing.py similarity index 100% rename from Lib/test/_test_multiprocessing.py rename to pylib/Lib/test/_test_multiprocessing.py diff --git a/Lib/test/_typed_dict_helper.py b/pylib/Lib/test/_typed_dict_helper.py similarity index 100% rename from Lib/test/_typed_dict_helper.py rename to pylib/Lib/test/_typed_dict_helper.py diff --git a/Lib/test/ann_module.py b/pylib/Lib/test/ann_module.py similarity index 100% rename from Lib/test/ann_module.py rename to pylib/Lib/test/ann_module.py diff --git a/Lib/test/ann_module2.py b/pylib/Lib/test/ann_module2.py similarity index 100% rename from Lib/test/ann_module2.py rename to pylib/Lib/test/ann_module2.py diff --git a/Lib/test/ann_module3.py b/pylib/Lib/test/ann_module3.py similarity index 100% rename from Lib/test/ann_module3.py rename to pylib/Lib/test/ann_module3.py diff --git a/Lib/test/ann_module4.py b/pylib/Lib/test/ann_module4.py similarity index 100% rename from Lib/test/ann_module4.py rename to pylib/Lib/test/ann_module4.py diff --git a/Lib/test/ann_module5.py b/pylib/Lib/test/ann_module5.py similarity index 100% rename from Lib/test/ann_module5.py rename to pylib/Lib/test/ann_module5.py diff --git a/Lib/test/ann_module6.py b/pylib/Lib/test/ann_module6.py similarity index 100% rename from Lib/test/ann_module6.py rename to pylib/Lib/test/ann_module6.py diff --git a/Lib/test/ann_module7.py b/pylib/Lib/test/ann_module7.py similarity index 100% rename from Lib/test/ann_module7.py rename to pylib/Lib/test/ann_module7.py diff --git a/Lib/test/audiodata/pluck-alaw.aifc b/pylib/Lib/test/audiodata/pluck-alaw.aifc similarity index 100% rename from Lib/test/audiodata/pluck-alaw.aifc rename to pylib/Lib/test/audiodata/pluck-alaw.aifc diff --git a/Lib/test/audiodata/pluck-pcm16.aiff b/pylib/Lib/test/audiodata/pluck-pcm16.aiff similarity index 100% rename from Lib/test/audiodata/pluck-pcm16.aiff rename to pylib/Lib/test/audiodata/pluck-pcm16.aiff diff --git a/Lib/test/audiodata/pluck-pcm16.au b/pylib/Lib/test/audiodata/pluck-pcm16.au similarity index 100% rename from Lib/test/audiodata/pluck-pcm16.au rename to pylib/Lib/test/audiodata/pluck-pcm16.au diff --git a/Lib/test/audiodata/pluck-pcm16.wav b/pylib/Lib/test/audiodata/pluck-pcm16.wav similarity index 100% rename from Lib/test/audiodata/pluck-pcm16.wav rename to pylib/Lib/test/audiodata/pluck-pcm16.wav diff --git a/Lib/test/audiodata/pluck-pcm24-ext.wav b/pylib/Lib/test/audiodata/pluck-pcm24-ext.wav similarity index 100% rename from Lib/test/audiodata/pluck-pcm24-ext.wav rename to pylib/Lib/test/audiodata/pluck-pcm24-ext.wav diff --git a/Lib/test/audiodata/pluck-pcm24.aiff b/pylib/Lib/test/audiodata/pluck-pcm24.aiff similarity index 100% rename from Lib/test/audiodata/pluck-pcm24.aiff rename to pylib/Lib/test/audiodata/pluck-pcm24.aiff diff --git a/Lib/test/audiodata/pluck-pcm24.au b/pylib/Lib/test/audiodata/pluck-pcm24.au similarity index 100% rename from Lib/test/audiodata/pluck-pcm24.au rename to pylib/Lib/test/audiodata/pluck-pcm24.au diff --git a/Lib/test/audiodata/pluck-pcm24.wav b/pylib/Lib/test/audiodata/pluck-pcm24.wav similarity index 100% rename from Lib/test/audiodata/pluck-pcm24.wav rename to pylib/Lib/test/audiodata/pluck-pcm24.wav diff --git a/Lib/test/audiodata/pluck-pcm32.aiff b/pylib/Lib/test/audiodata/pluck-pcm32.aiff similarity index 100% rename from Lib/test/audiodata/pluck-pcm32.aiff rename to pylib/Lib/test/audiodata/pluck-pcm32.aiff diff --git a/Lib/test/audiodata/pluck-pcm32.au b/pylib/Lib/test/audiodata/pluck-pcm32.au similarity index 100% rename from Lib/test/audiodata/pluck-pcm32.au rename to pylib/Lib/test/audiodata/pluck-pcm32.au diff --git a/Lib/test/audiodata/pluck-pcm32.wav b/pylib/Lib/test/audiodata/pluck-pcm32.wav similarity index 100% rename from Lib/test/audiodata/pluck-pcm32.wav rename to pylib/Lib/test/audiodata/pluck-pcm32.wav diff --git a/Lib/test/audiodata/pluck-pcm8.aiff b/pylib/Lib/test/audiodata/pluck-pcm8.aiff similarity index 100% rename from Lib/test/audiodata/pluck-pcm8.aiff rename to pylib/Lib/test/audiodata/pluck-pcm8.aiff diff --git a/Lib/test/audiodata/pluck-pcm8.au b/pylib/Lib/test/audiodata/pluck-pcm8.au similarity index 100% rename from Lib/test/audiodata/pluck-pcm8.au rename to pylib/Lib/test/audiodata/pluck-pcm8.au diff --git a/Lib/test/audiodata/pluck-pcm8.wav b/pylib/Lib/test/audiodata/pluck-pcm8.wav similarity index 100% rename from Lib/test/audiodata/pluck-pcm8.wav rename to pylib/Lib/test/audiodata/pluck-pcm8.wav diff --git a/Lib/test/audiodata/pluck-ulaw.aifc b/pylib/Lib/test/audiodata/pluck-ulaw.aifc similarity index 100% rename from Lib/test/audiodata/pluck-ulaw.aifc rename to pylib/Lib/test/audiodata/pluck-ulaw.aifc diff --git a/Lib/test/audiodata/pluck-ulaw.au b/pylib/Lib/test/audiodata/pluck-ulaw.au similarity index 100% rename from Lib/test/audiodata/pluck-ulaw.au rename to pylib/Lib/test/audiodata/pluck-ulaw.au diff --git a/Lib/test/audiotest.au b/pylib/Lib/test/audiotest.au similarity index 100% rename from Lib/test/audiotest.au rename to pylib/Lib/test/audiotest.au diff --git a/Lib/test/audiotests.py b/pylib/Lib/test/audiotests.py similarity index 100% rename from Lib/test/audiotests.py rename to pylib/Lib/test/audiotests.py diff --git a/Lib/test/badsyntax_3131.py b/pylib/Lib/test/badsyntax_3131.py similarity index 100% rename from Lib/test/badsyntax_3131.py rename to pylib/Lib/test/badsyntax_3131.py diff --git a/Lib/test/badsyntax_pep3120.py b/pylib/Lib/test/badsyntax_pep3120.py similarity index 100% rename from Lib/test/badsyntax_pep3120.py rename to pylib/Lib/test/badsyntax_pep3120.py diff --git a/Lib/test/cfgparser.1 b/pylib/Lib/test/cfgparser.1 similarity index 100% rename from Lib/test/cfgparser.1 rename to pylib/Lib/test/cfgparser.1 diff --git a/Lib/test/cfgparser.2 b/pylib/Lib/test/cfgparser.2 similarity index 100% rename from Lib/test/cfgparser.2 rename to pylib/Lib/test/cfgparser.2 diff --git a/Lib/test/cfgparser.3 b/pylib/Lib/test/cfgparser.3 similarity index 100% rename from Lib/test/cfgparser.3 rename to pylib/Lib/test/cfgparser.3 diff --git a/Lib/test/dataclass_module_1.py b/pylib/Lib/test/dataclass_module_1.py similarity index 100% rename from Lib/test/dataclass_module_1.py rename to pylib/Lib/test/dataclass_module_1.py diff --git a/Lib/test/dataclass_module_1_str.py b/pylib/Lib/test/dataclass_module_1_str.py similarity index 100% rename from Lib/test/dataclass_module_1_str.py rename to pylib/Lib/test/dataclass_module_1_str.py diff --git a/Lib/test/dataclass_module_2.py b/pylib/Lib/test/dataclass_module_2.py similarity index 100% rename from Lib/test/dataclass_module_2.py rename to pylib/Lib/test/dataclass_module_2.py diff --git a/Lib/test/dataclass_module_2_str.py b/pylib/Lib/test/dataclass_module_2_str.py similarity index 100% rename from Lib/test/dataclass_module_2_str.py rename to pylib/Lib/test/dataclass_module_2_str.py diff --git a/Lib/test/dataclass_textanno.py b/pylib/Lib/test/dataclass_textanno.py similarity index 100% rename from Lib/test/dataclass_textanno.py rename to pylib/Lib/test/dataclass_textanno.py diff --git a/Lib/test/datetimetester.py b/pylib/Lib/test/datetimetester.py similarity index 100% rename from Lib/test/datetimetester.py rename to pylib/Lib/test/datetimetester.py diff --git a/Lib/test/decimaltestdata/abs.decTest b/pylib/Lib/test/decimaltestdata/abs.decTest similarity index 100% rename from Lib/test/decimaltestdata/abs.decTest rename to pylib/Lib/test/decimaltestdata/abs.decTest diff --git a/Lib/test/decimaltestdata/add.decTest b/pylib/Lib/test/decimaltestdata/add.decTest similarity index 100% rename from Lib/test/decimaltestdata/add.decTest rename to pylib/Lib/test/decimaltestdata/add.decTest diff --git a/Lib/test/decimaltestdata/and.decTest b/pylib/Lib/test/decimaltestdata/and.decTest similarity index 100% rename from Lib/test/decimaltestdata/and.decTest rename to pylib/Lib/test/decimaltestdata/and.decTest diff --git a/Lib/test/decimaltestdata/base.decTest b/pylib/Lib/test/decimaltestdata/base.decTest similarity index 100% rename from Lib/test/decimaltestdata/base.decTest rename to pylib/Lib/test/decimaltestdata/base.decTest diff --git a/Lib/test/decimaltestdata/clamp.decTest b/pylib/Lib/test/decimaltestdata/clamp.decTest similarity index 100% rename from Lib/test/decimaltestdata/clamp.decTest rename to pylib/Lib/test/decimaltestdata/clamp.decTest diff --git a/Lib/test/decimaltestdata/class.decTest b/pylib/Lib/test/decimaltestdata/class.decTest similarity index 100% rename from Lib/test/decimaltestdata/class.decTest rename to pylib/Lib/test/decimaltestdata/class.decTest diff --git a/Lib/test/decimaltestdata/compare.decTest b/pylib/Lib/test/decimaltestdata/compare.decTest similarity index 100% rename from Lib/test/decimaltestdata/compare.decTest rename to pylib/Lib/test/decimaltestdata/compare.decTest diff --git a/Lib/test/decimaltestdata/comparetotal.decTest b/pylib/Lib/test/decimaltestdata/comparetotal.decTest similarity index 100% rename from Lib/test/decimaltestdata/comparetotal.decTest rename to pylib/Lib/test/decimaltestdata/comparetotal.decTest diff --git a/Lib/test/decimaltestdata/comparetotmag.decTest b/pylib/Lib/test/decimaltestdata/comparetotmag.decTest similarity index 100% rename from Lib/test/decimaltestdata/comparetotmag.decTest rename to pylib/Lib/test/decimaltestdata/comparetotmag.decTest diff --git a/Lib/test/decimaltestdata/copy.decTest b/pylib/Lib/test/decimaltestdata/copy.decTest similarity index 100% rename from Lib/test/decimaltestdata/copy.decTest rename to pylib/Lib/test/decimaltestdata/copy.decTest diff --git a/Lib/test/decimaltestdata/copyabs.decTest b/pylib/Lib/test/decimaltestdata/copyabs.decTest similarity index 100% rename from Lib/test/decimaltestdata/copyabs.decTest rename to pylib/Lib/test/decimaltestdata/copyabs.decTest diff --git a/Lib/test/decimaltestdata/copynegate.decTest b/pylib/Lib/test/decimaltestdata/copynegate.decTest similarity index 100% rename from Lib/test/decimaltestdata/copynegate.decTest rename to pylib/Lib/test/decimaltestdata/copynegate.decTest diff --git a/Lib/test/decimaltestdata/copysign.decTest b/pylib/Lib/test/decimaltestdata/copysign.decTest similarity index 100% rename from Lib/test/decimaltestdata/copysign.decTest rename to pylib/Lib/test/decimaltestdata/copysign.decTest diff --git a/Lib/test/decimaltestdata/ddAbs.decTest b/pylib/Lib/test/decimaltestdata/ddAbs.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddAbs.decTest rename to pylib/Lib/test/decimaltestdata/ddAbs.decTest diff --git a/Lib/test/decimaltestdata/ddAdd.decTest b/pylib/Lib/test/decimaltestdata/ddAdd.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddAdd.decTest rename to pylib/Lib/test/decimaltestdata/ddAdd.decTest diff --git a/Lib/test/decimaltestdata/ddAnd.decTest b/pylib/Lib/test/decimaltestdata/ddAnd.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddAnd.decTest rename to pylib/Lib/test/decimaltestdata/ddAnd.decTest diff --git a/Lib/test/decimaltestdata/ddBase.decTest b/pylib/Lib/test/decimaltestdata/ddBase.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddBase.decTest rename to pylib/Lib/test/decimaltestdata/ddBase.decTest diff --git a/Lib/test/decimaltestdata/ddCanonical.decTest b/pylib/Lib/test/decimaltestdata/ddCanonical.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddCanonical.decTest rename to pylib/Lib/test/decimaltestdata/ddCanonical.decTest diff --git a/Lib/test/decimaltestdata/ddClass.decTest b/pylib/Lib/test/decimaltestdata/ddClass.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddClass.decTest rename to pylib/Lib/test/decimaltestdata/ddClass.decTest diff --git a/Lib/test/decimaltestdata/ddCompare.decTest b/pylib/Lib/test/decimaltestdata/ddCompare.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddCompare.decTest rename to pylib/Lib/test/decimaltestdata/ddCompare.decTest diff --git a/Lib/test/decimaltestdata/ddCompareSig.decTest b/pylib/Lib/test/decimaltestdata/ddCompareSig.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddCompareSig.decTest rename to pylib/Lib/test/decimaltestdata/ddCompareSig.decTest diff --git a/Lib/test/decimaltestdata/ddCompareTotal.decTest b/pylib/Lib/test/decimaltestdata/ddCompareTotal.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddCompareTotal.decTest rename to pylib/Lib/test/decimaltestdata/ddCompareTotal.decTest diff --git a/Lib/test/decimaltestdata/ddCompareTotalMag.decTest b/pylib/Lib/test/decimaltestdata/ddCompareTotalMag.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddCompareTotalMag.decTest rename to pylib/Lib/test/decimaltestdata/ddCompareTotalMag.decTest diff --git a/Lib/test/decimaltestdata/ddCopy.decTest b/pylib/Lib/test/decimaltestdata/ddCopy.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddCopy.decTest rename to pylib/Lib/test/decimaltestdata/ddCopy.decTest diff --git a/Lib/test/decimaltestdata/ddCopyAbs.decTest b/pylib/Lib/test/decimaltestdata/ddCopyAbs.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddCopyAbs.decTest rename to pylib/Lib/test/decimaltestdata/ddCopyAbs.decTest diff --git a/Lib/test/decimaltestdata/ddCopyNegate.decTest b/pylib/Lib/test/decimaltestdata/ddCopyNegate.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddCopyNegate.decTest rename to pylib/Lib/test/decimaltestdata/ddCopyNegate.decTest diff --git a/Lib/test/decimaltestdata/ddCopySign.decTest b/pylib/Lib/test/decimaltestdata/ddCopySign.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddCopySign.decTest rename to pylib/Lib/test/decimaltestdata/ddCopySign.decTest diff --git a/Lib/test/decimaltestdata/ddDivide.decTest b/pylib/Lib/test/decimaltestdata/ddDivide.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddDivide.decTest rename to pylib/Lib/test/decimaltestdata/ddDivide.decTest diff --git a/Lib/test/decimaltestdata/ddDivideInt.decTest b/pylib/Lib/test/decimaltestdata/ddDivideInt.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddDivideInt.decTest rename to pylib/Lib/test/decimaltestdata/ddDivideInt.decTest diff --git a/Lib/test/decimaltestdata/ddEncode.decTest b/pylib/Lib/test/decimaltestdata/ddEncode.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddEncode.decTest rename to pylib/Lib/test/decimaltestdata/ddEncode.decTest diff --git a/Lib/test/decimaltestdata/ddFMA.decTest b/pylib/Lib/test/decimaltestdata/ddFMA.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddFMA.decTest rename to pylib/Lib/test/decimaltestdata/ddFMA.decTest diff --git a/Lib/test/decimaltestdata/ddInvert.decTest b/pylib/Lib/test/decimaltestdata/ddInvert.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddInvert.decTest rename to pylib/Lib/test/decimaltestdata/ddInvert.decTest diff --git a/Lib/test/decimaltestdata/ddLogB.decTest b/pylib/Lib/test/decimaltestdata/ddLogB.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddLogB.decTest rename to pylib/Lib/test/decimaltestdata/ddLogB.decTest diff --git a/Lib/test/decimaltestdata/ddMax.decTest b/pylib/Lib/test/decimaltestdata/ddMax.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddMax.decTest rename to pylib/Lib/test/decimaltestdata/ddMax.decTest diff --git a/Lib/test/decimaltestdata/ddMaxMag.decTest b/pylib/Lib/test/decimaltestdata/ddMaxMag.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddMaxMag.decTest rename to pylib/Lib/test/decimaltestdata/ddMaxMag.decTest diff --git a/Lib/test/decimaltestdata/ddMin.decTest b/pylib/Lib/test/decimaltestdata/ddMin.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddMin.decTest rename to pylib/Lib/test/decimaltestdata/ddMin.decTest diff --git a/Lib/test/decimaltestdata/ddMinMag.decTest b/pylib/Lib/test/decimaltestdata/ddMinMag.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddMinMag.decTest rename to pylib/Lib/test/decimaltestdata/ddMinMag.decTest diff --git a/Lib/test/decimaltestdata/ddMinus.decTest b/pylib/Lib/test/decimaltestdata/ddMinus.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddMinus.decTest rename to pylib/Lib/test/decimaltestdata/ddMinus.decTest diff --git a/Lib/test/decimaltestdata/ddMultiply.decTest b/pylib/Lib/test/decimaltestdata/ddMultiply.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddMultiply.decTest rename to pylib/Lib/test/decimaltestdata/ddMultiply.decTest diff --git a/Lib/test/decimaltestdata/ddNextMinus.decTest b/pylib/Lib/test/decimaltestdata/ddNextMinus.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddNextMinus.decTest rename to pylib/Lib/test/decimaltestdata/ddNextMinus.decTest diff --git a/Lib/test/decimaltestdata/ddNextPlus.decTest b/pylib/Lib/test/decimaltestdata/ddNextPlus.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddNextPlus.decTest rename to pylib/Lib/test/decimaltestdata/ddNextPlus.decTest diff --git a/Lib/test/decimaltestdata/ddNextToward.decTest b/pylib/Lib/test/decimaltestdata/ddNextToward.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddNextToward.decTest rename to pylib/Lib/test/decimaltestdata/ddNextToward.decTest diff --git a/Lib/test/decimaltestdata/ddOr.decTest b/pylib/Lib/test/decimaltestdata/ddOr.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddOr.decTest rename to pylib/Lib/test/decimaltestdata/ddOr.decTest diff --git a/Lib/test/decimaltestdata/ddPlus.decTest b/pylib/Lib/test/decimaltestdata/ddPlus.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddPlus.decTest rename to pylib/Lib/test/decimaltestdata/ddPlus.decTest diff --git a/Lib/test/decimaltestdata/ddQuantize.decTest b/pylib/Lib/test/decimaltestdata/ddQuantize.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddQuantize.decTest rename to pylib/Lib/test/decimaltestdata/ddQuantize.decTest diff --git a/Lib/test/decimaltestdata/ddReduce.decTest b/pylib/Lib/test/decimaltestdata/ddReduce.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddReduce.decTest rename to pylib/Lib/test/decimaltestdata/ddReduce.decTest diff --git a/Lib/test/decimaltestdata/ddRemainder.decTest b/pylib/Lib/test/decimaltestdata/ddRemainder.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddRemainder.decTest rename to pylib/Lib/test/decimaltestdata/ddRemainder.decTest diff --git a/Lib/test/decimaltestdata/ddRemainderNear.decTest b/pylib/Lib/test/decimaltestdata/ddRemainderNear.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddRemainderNear.decTest rename to pylib/Lib/test/decimaltestdata/ddRemainderNear.decTest diff --git a/Lib/test/decimaltestdata/ddRotate.decTest b/pylib/Lib/test/decimaltestdata/ddRotate.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddRotate.decTest rename to pylib/Lib/test/decimaltestdata/ddRotate.decTest diff --git a/Lib/test/decimaltestdata/ddSameQuantum.decTest b/pylib/Lib/test/decimaltestdata/ddSameQuantum.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddSameQuantum.decTest rename to pylib/Lib/test/decimaltestdata/ddSameQuantum.decTest diff --git a/Lib/test/decimaltestdata/ddScaleB.decTest b/pylib/Lib/test/decimaltestdata/ddScaleB.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddScaleB.decTest rename to pylib/Lib/test/decimaltestdata/ddScaleB.decTest diff --git a/Lib/test/decimaltestdata/ddShift.decTest b/pylib/Lib/test/decimaltestdata/ddShift.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddShift.decTest rename to pylib/Lib/test/decimaltestdata/ddShift.decTest diff --git a/Lib/test/decimaltestdata/ddSubtract.decTest b/pylib/Lib/test/decimaltestdata/ddSubtract.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddSubtract.decTest rename to pylib/Lib/test/decimaltestdata/ddSubtract.decTest diff --git a/Lib/test/decimaltestdata/ddToIntegral.decTest b/pylib/Lib/test/decimaltestdata/ddToIntegral.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddToIntegral.decTest rename to pylib/Lib/test/decimaltestdata/ddToIntegral.decTest diff --git a/Lib/test/decimaltestdata/ddXor.decTest b/pylib/Lib/test/decimaltestdata/ddXor.decTest similarity index 100% rename from Lib/test/decimaltestdata/ddXor.decTest rename to pylib/Lib/test/decimaltestdata/ddXor.decTest diff --git a/Lib/test/decimaltestdata/decDouble.decTest b/pylib/Lib/test/decimaltestdata/decDouble.decTest similarity index 100% rename from Lib/test/decimaltestdata/decDouble.decTest rename to pylib/Lib/test/decimaltestdata/decDouble.decTest diff --git a/Lib/test/decimaltestdata/decQuad.decTest b/pylib/Lib/test/decimaltestdata/decQuad.decTest similarity index 100% rename from Lib/test/decimaltestdata/decQuad.decTest rename to pylib/Lib/test/decimaltestdata/decQuad.decTest diff --git a/Lib/test/decimaltestdata/decSingle.decTest b/pylib/Lib/test/decimaltestdata/decSingle.decTest similarity index 100% rename from Lib/test/decimaltestdata/decSingle.decTest rename to pylib/Lib/test/decimaltestdata/decSingle.decTest diff --git a/Lib/test/decimaltestdata/divide.decTest b/pylib/Lib/test/decimaltestdata/divide.decTest similarity index 100% rename from Lib/test/decimaltestdata/divide.decTest rename to pylib/Lib/test/decimaltestdata/divide.decTest diff --git a/Lib/test/decimaltestdata/divideint.decTest b/pylib/Lib/test/decimaltestdata/divideint.decTest similarity index 100% rename from Lib/test/decimaltestdata/divideint.decTest rename to pylib/Lib/test/decimaltestdata/divideint.decTest diff --git a/Lib/test/decimaltestdata/dqAbs.decTest b/pylib/Lib/test/decimaltestdata/dqAbs.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqAbs.decTest rename to pylib/Lib/test/decimaltestdata/dqAbs.decTest diff --git a/Lib/test/decimaltestdata/dqAdd.decTest b/pylib/Lib/test/decimaltestdata/dqAdd.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqAdd.decTest rename to pylib/Lib/test/decimaltestdata/dqAdd.decTest diff --git a/Lib/test/decimaltestdata/dqAnd.decTest b/pylib/Lib/test/decimaltestdata/dqAnd.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqAnd.decTest rename to pylib/Lib/test/decimaltestdata/dqAnd.decTest diff --git a/Lib/test/decimaltestdata/dqBase.decTest b/pylib/Lib/test/decimaltestdata/dqBase.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqBase.decTest rename to pylib/Lib/test/decimaltestdata/dqBase.decTest diff --git a/Lib/test/decimaltestdata/dqCanonical.decTest b/pylib/Lib/test/decimaltestdata/dqCanonical.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqCanonical.decTest rename to pylib/Lib/test/decimaltestdata/dqCanonical.decTest diff --git a/Lib/test/decimaltestdata/dqClass.decTest b/pylib/Lib/test/decimaltestdata/dqClass.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqClass.decTest rename to pylib/Lib/test/decimaltestdata/dqClass.decTest diff --git a/Lib/test/decimaltestdata/dqCompare.decTest b/pylib/Lib/test/decimaltestdata/dqCompare.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqCompare.decTest rename to pylib/Lib/test/decimaltestdata/dqCompare.decTest diff --git a/Lib/test/decimaltestdata/dqCompareSig.decTest b/pylib/Lib/test/decimaltestdata/dqCompareSig.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqCompareSig.decTest rename to pylib/Lib/test/decimaltestdata/dqCompareSig.decTest diff --git a/Lib/test/decimaltestdata/dqCompareTotal.decTest b/pylib/Lib/test/decimaltestdata/dqCompareTotal.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqCompareTotal.decTest rename to pylib/Lib/test/decimaltestdata/dqCompareTotal.decTest diff --git a/Lib/test/decimaltestdata/dqCompareTotalMag.decTest b/pylib/Lib/test/decimaltestdata/dqCompareTotalMag.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqCompareTotalMag.decTest rename to pylib/Lib/test/decimaltestdata/dqCompareTotalMag.decTest diff --git a/Lib/test/decimaltestdata/dqCopy.decTest b/pylib/Lib/test/decimaltestdata/dqCopy.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqCopy.decTest rename to pylib/Lib/test/decimaltestdata/dqCopy.decTest diff --git a/Lib/test/decimaltestdata/dqCopyAbs.decTest b/pylib/Lib/test/decimaltestdata/dqCopyAbs.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqCopyAbs.decTest rename to pylib/Lib/test/decimaltestdata/dqCopyAbs.decTest diff --git a/Lib/test/decimaltestdata/dqCopyNegate.decTest b/pylib/Lib/test/decimaltestdata/dqCopyNegate.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqCopyNegate.decTest rename to pylib/Lib/test/decimaltestdata/dqCopyNegate.decTest diff --git a/Lib/test/decimaltestdata/dqCopySign.decTest b/pylib/Lib/test/decimaltestdata/dqCopySign.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqCopySign.decTest rename to pylib/Lib/test/decimaltestdata/dqCopySign.decTest diff --git a/Lib/test/decimaltestdata/dqDivide.decTest b/pylib/Lib/test/decimaltestdata/dqDivide.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqDivide.decTest rename to pylib/Lib/test/decimaltestdata/dqDivide.decTest diff --git a/Lib/test/decimaltestdata/dqDivideInt.decTest b/pylib/Lib/test/decimaltestdata/dqDivideInt.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqDivideInt.decTest rename to pylib/Lib/test/decimaltestdata/dqDivideInt.decTest diff --git a/Lib/test/decimaltestdata/dqEncode.decTest b/pylib/Lib/test/decimaltestdata/dqEncode.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqEncode.decTest rename to pylib/Lib/test/decimaltestdata/dqEncode.decTest diff --git a/Lib/test/decimaltestdata/dqFMA.decTest b/pylib/Lib/test/decimaltestdata/dqFMA.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqFMA.decTest rename to pylib/Lib/test/decimaltestdata/dqFMA.decTest diff --git a/Lib/test/decimaltestdata/dqInvert.decTest b/pylib/Lib/test/decimaltestdata/dqInvert.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqInvert.decTest rename to pylib/Lib/test/decimaltestdata/dqInvert.decTest diff --git a/Lib/test/decimaltestdata/dqLogB.decTest b/pylib/Lib/test/decimaltestdata/dqLogB.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqLogB.decTest rename to pylib/Lib/test/decimaltestdata/dqLogB.decTest diff --git a/Lib/test/decimaltestdata/dqMax.decTest b/pylib/Lib/test/decimaltestdata/dqMax.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqMax.decTest rename to pylib/Lib/test/decimaltestdata/dqMax.decTest diff --git a/Lib/test/decimaltestdata/dqMaxMag.decTest b/pylib/Lib/test/decimaltestdata/dqMaxMag.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqMaxMag.decTest rename to pylib/Lib/test/decimaltestdata/dqMaxMag.decTest diff --git a/Lib/test/decimaltestdata/dqMin.decTest b/pylib/Lib/test/decimaltestdata/dqMin.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqMin.decTest rename to pylib/Lib/test/decimaltestdata/dqMin.decTest diff --git a/Lib/test/decimaltestdata/dqMinMag.decTest b/pylib/Lib/test/decimaltestdata/dqMinMag.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqMinMag.decTest rename to pylib/Lib/test/decimaltestdata/dqMinMag.decTest diff --git a/Lib/test/decimaltestdata/dqMinus.decTest b/pylib/Lib/test/decimaltestdata/dqMinus.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqMinus.decTest rename to pylib/Lib/test/decimaltestdata/dqMinus.decTest diff --git a/Lib/test/decimaltestdata/dqMultiply.decTest b/pylib/Lib/test/decimaltestdata/dqMultiply.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqMultiply.decTest rename to pylib/Lib/test/decimaltestdata/dqMultiply.decTest diff --git a/Lib/test/decimaltestdata/dqNextMinus.decTest b/pylib/Lib/test/decimaltestdata/dqNextMinus.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqNextMinus.decTest rename to pylib/Lib/test/decimaltestdata/dqNextMinus.decTest diff --git a/Lib/test/decimaltestdata/dqNextPlus.decTest b/pylib/Lib/test/decimaltestdata/dqNextPlus.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqNextPlus.decTest rename to pylib/Lib/test/decimaltestdata/dqNextPlus.decTest diff --git a/Lib/test/decimaltestdata/dqNextToward.decTest b/pylib/Lib/test/decimaltestdata/dqNextToward.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqNextToward.decTest rename to pylib/Lib/test/decimaltestdata/dqNextToward.decTest diff --git a/Lib/test/decimaltestdata/dqOr.decTest b/pylib/Lib/test/decimaltestdata/dqOr.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqOr.decTest rename to pylib/Lib/test/decimaltestdata/dqOr.decTest diff --git a/Lib/test/decimaltestdata/dqPlus.decTest b/pylib/Lib/test/decimaltestdata/dqPlus.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqPlus.decTest rename to pylib/Lib/test/decimaltestdata/dqPlus.decTest diff --git a/Lib/test/decimaltestdata/dqQuantize.decTest b/pylib/Lib/test/decimaltestdata/dqQuantize.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqQuantize.decTest rename to pylib/Lib/test/decimaltestdata/dqQuantize.decTest diff --git a/Lib/test/decimaltestdata/dqReduce.decTest b/pylib/Lib/test/decimaltestdata/dqReduce.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqReduce.decTest rename to pylib/Lib/test/decimaltestdata/dqReduce.decTest diff --git a/Lib/test/decimaltestdata/dqRemainder.decTest b/pylib/Lib/test/decimaltestdata/dqRemainder.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqRemainder.decTest rename to pylib/Lib/test/decimaltestdata/dqRemainder.decTest diff --git a/Lib/test/decimaltestdata/dqRemainderNear.decTest b/pylib/Lib/test/decimaltestdata/dqRemainderNear.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqRemainderNear.decTest rename to pylib/Lib/test/decimaltestdata/dqRemainderNear.decTest diff --git a/Lib/test/decimaltestdata/dqRotate.decTest b/pylib/Lib/test/decimaltestdata/dqRotate.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqRotate.decTest rename to pylib/Lib/test/decimaltestdata/dqRotate.decTest diff --git a/Lib/test/decimaltestdata/dqSameQuantum.decTest b/pylib/Lib/test/decimaltestdata/dqSameQuantum.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqSameQuantum.decTest rename to pylib/Lib/test/decimaltestdata/dqSameQuantum.decTest diff --git a/Lib/test/decimaltestdata/dqScaleB.decTest b/pylib/Lib/test/decimaltestdata/dqScaleB.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqScaleB.decTest rename to pylib/Lib/test/decimaltestdata/dqScaleB.decTest diff --git a/Lib/test/decimaltestdata/dqShift.decTest b/pylib/Lib/test/decimaltestdata/dqShift.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqShift.decTest rename to pylib/Lib/test/decimaltestdata/dqShift.decTest diff --git a/Lib/test/decimaltestdata/dqSubtract.decTest b/pylib/Lib/test/decimaltestdata/dqSubtract.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqSubtract.decTest rename to pylib/Lib/test/decimaltestdata/dqSubtract.decTest diff --git a/Lib/test/decimaltestdata/dqToIntegral.decTest b/pylib/Lib/test/decimaltestdata/dqToIntegral.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqToIntegral.decTest rename to pylib/Lib/test/decimaltestdata/dqToIntegral.decTest diff --git a/Lib/test/decimaltestdata/dqXor.decTest b/pylib/Lib/test/decimaltestdata/dqXor.decTest similarity index 100% rename from Lib/test/decimaltestdata/dqXor.decTest rename to pylib/Lib/test/decimaltestdata/dqXor.decTest diff --git a/Lib/test/decimaltestdata/dsBase.decTest b/pylib/Lib/test/decimaltestdata/dsBase.decTest similarity index 100% rename from Lib/test/decimaltestdata/dsBase.decTest rename to pylib/Lib/test/decimaltestdata/dsBase.decTest diff --git a/Lib/test/decimaltestdata/dsEncode.decTest b/pylib/Lib/test/decimaltestdata/dsEncode.decTest similarity index 100% rename from Lib/test/decimaltestdata/dsEncode.decTest rename to pylib/Lib/test/decimaltestdata/dsEncode.decTest diff --git a/Lib/test/decimaltestdata/exp.decTest b/pylib/Lib/test/decimaltestdata/exp.decTest similarity index 100% rename from Lib/test/decimaltestdata/exp.decTest rename to pylib/Lib/test/decimaltestdata/exp.decTest diff --git a/Lib/test/decimaltestdata/extra.decTest b/pylib/Lib/test/decimaltestdata/extra.decTest similarity index 100% rename from Lib/test/decimaltestdata/extra.decTest rename to pylib/Lib/test/decimaltestdata/extra.decTest diff --git a/Lib/test/decimaltestdata/fma.decTest b/pylib/Lib/test/decimaltestdata/fma.decTest similarity index 100% rename from Lib/test/decimaltestdata/fma.decTest rename to pylib/Lib/test/decimaltestdata/fma.decTest diff --git a/Lib/test/decimaltestdata/inexact.decTest b/pylib/Lib/test/decimaltestdata/inexact.decTest similarity index 100% rename from Lib/test/decimaltestdata/inexact.decTest rename to pylib/Lib/test/decimaltestdata/inexact.decTest diff --git a/Lib/test/decimaltestdata/invert.decTest b/pylib/Lib/test/decimaltestdata/invert.decTest similarity index 100% rename from Lib/test/decimaltestdata/invert.decTest rename to pylib/Lib/test/decimaltestdata/invert.decTest diff --git a/Lib/test/decimaltestdata/ln.decTest b/pylib/Lib/test/decimaltestdata/ln.decTest similarity index 100% rename from Lib/test/decimaltestdata/ln.decTest rename to pylib/Lib/test/decimaltestdata/ln.decTest diff --git a/Lib/test/decimaltestdata/log10.decTest b/pylib/Lib/test/decimaltestdata/log10.decTest similarity index 100% rename from Lib/test/decimaltestdata/log10.decTest rename to pylib/Lib/test/decimaltestdata/log10.decTest diff --git a/Lib/test/decimaltestdata/logb.decTest b/pylib/Lib/test/decimaltestdata/logb.decTest similarity index 100% rename from Lib/test/decimaltestdata/logb.decTest rename to pylib/Lib/test/decimaltestdata/logb.decTest diff --git a/Lib/test/decimaltestdata/max.decTest b/pylib/Lib/test/decimaltestdata/max.decTest similarity index 100% rename from Lib/test/decimaltestdata/max.decTest rename to pylib/Lib/test/decimaltestdata/max.decTest diff --git a/Lib/test/decimaltestdata/maxmag.decTest b/pylib/Lib/test/decimaltestdata/maxmag.decTest similarity index 100% rename from Lib/test/decimaltestdata/maxmag.decTest rename to pylib/Lib/test/decimaltestdata/maxmag.decTest diff --git a/Lib/test/decimaltestdata/min.decTest b/pylib/Lib/test/decimaltestdata/min.decTest similarity index 100% rename from Lib/test/decimaltestdata/min.decTest rename to pylib/Lib/test/decimaltestdata/min.decTest diff --git a/Lib/test/decimaltestdata/minmag.decTest b/pylib/Lib/test/decimaltestdata/minmag.decTest similarity index 100% rename from Lib/test/decimaltestdata/minmag.decTest rename to pylib/Lib/test/decimaltestdata/minmag.decTest diff --git a/Lib/test/decimaltestdata/minus.decTest b/pylib/Lib/test/decimaltestdata/minus.decTest similarity index 100% rename from Lib/test/decimaltestdata/minus.decTest rename to pylib/Lib/test/decimaltestdata/minus.decTest diff --git a/Lib/test/decimaltestdata/multiply.decTest b/pylib/Lib/test/decimaltestdata/multiply.decTest similarity index 100% rename from Lib/test/decimaltestdata/multiply.decTest rename to pylib/Lib/test/decimaltestdata/multiply.decTest diff --git a/Lib/test/decimaltestdata/nextminus.decTest b/pylib/Lib/test/decimaltestdata/nextminus.decTest similarity index 100% rename from Lib/test/decimaltestdata/nextminus.decTest rename to pylib/Lib/test/decimaltestdata/nextminus.decTest diff --git a/Lib/test/decimaltestdata/nextplus.decTest b/pylib/Lib/test/decimaltestdata/nextplus.decTest similarity index 100% rename from Lib/test/decimaltestdata/nextplus.decTest rename to pylib/Lib/test/decimaltestdata/nextplus.decTest diff --git a/Lib/test/decimaltestdata/nexttoward.decTest b/pylib/Lib/test/decimaltestdata/nexttoward.decTest similarity index 100% rename from Lib/test/decimaltestdata/nexttoward.decTest rename to pylib/Lib/test/decimaltestdata/nexttoward.decTest diff --git a/Lib/test/decimaltestdata/or.decTest b/pylib/Lib/test/decimaltestdata/or.decTest similarity index 100% rename from Lib/test/decimaltestdata/or.decTest rename to pylib/Lib/test/decimaltestdata/or.decTest diff --git a/Lib/test/decimaltestdata/plus.decTest b/pylib/Lib/test/decimaltestdata/plus.decTest similarity index 100% rename from Lib/test/decimaltestdata/plus.decTest rename to pylib/Lib/test/decimaltestdata/plus.decTest diff --git a/Lib/test/decimaltestdata/power.decTest b/pylib/Lib/test/decimaltestdata/power.decTest similarity index 100% rename from Lib/test/decimaltestdata/power.decTest rename to pylib/Lib/test/decimaltestdata/power.decTest diff --git a/Lib/test/decimaltestdata/powersqrt.decTest b/pylib/Lib/test/decimaltestdata/powersqrt.decTest similarity index 100% rename from Lib/test/decimaltestdata/powersqrt.decTest rename to pylib/Lib/test/decimaltestdata/powersqrt.decTest diff --git a/Lib/test/decimaltestdata/quantize.decTest b/pylib/Lib/test/decimaltestdata/quantize.decTest similarity index 100% rename from Lib/test/decimaltestdata/quantize.decTest rename to pylib/Lib/test/decimaltestdata/quantize.decTest diff --git a/Lib/test/decimaltestdata/randomBound32.decTest b/pylib/Lib/test/decimaltestdata/randomBound32.decTest similarity index 100% rename from Lib/test/decimaltestdata/randomBound32.decTest rename to pylib/Lib/test/decimaltestdata/randomBound32.decTest diff --git a/Lib/test/decimaltestdata/randoms.decTest b/pylib/Lib/test/decimaltestdata/randoms.decTest similarity index 100% rename from Lib/test/decimaltestdata/randoms.decTest rename to pylib/Lib/test/decimaltestdata/randoms.decTest diff --git a/Lib/test/decimaltestdata/reduce.decTest b/pylib/Lib/test/decimaltestdata/reduce.decTest similarity index 100% rename from Lib/test/decimaltestdata/reduce.decTest rename to pylib/Lib/test/decimaltestdata/reduce.decTest diff --git a/Lib/test/decimaltestdata/remainder.decTest b/pylib/Lib/test/decimaltestdata/remainder.decTest similarity index 100% rename from Lib/test/decimaltestdata/remainder.decTest rename to pylib/Lib/test/decimaltestdata/remainder.decTest diff --git a/Lib/test/decimaltestdata/remainderNear.decTest b/pylib/Lib/test/decimaltestdata/remainderNear.decTest similarity index 100% rename from Lib/test/decimaltestdata/remainderNear.decTest rename to pylib/Lib/test/decimaltestdata/remainderNear.decTest diff --git a/Lib/test/decimaltestdata/rescale.decTest b/pylib/Lib/test/decimaltestdata/rescale.decTest similarity index 100% rename from Lib/test/decimaltestdata/rescale.decTest rename to pylib/Lib/test/decimaltestdata/rescale.decTest diff --git a/Lib/test/decimaltestdata/rotate.decTest b/pylib/Lib/test/decimaltestdata/rotate.decTest similarity index 100% rename from Lib/test/decimaltestdata/rotate.decTest rename to pylib/Lib/test/decimaltestdata/rotate.decTest diff --git a/Lib/test/decimaltestdata/rounding.decTest b/pylib/Lib/test/decimaltestdata/rounding.decTest similarity index 100% rename from Lib/test/decimaltestdata/rounding.decTest rename to pylib/Lib/test/decimaltestdata/rounding.decTest diff --git a/Lib/test/decimaltestdata/samequantum.decTest b/pylib/Lib/test/decimaltestdata/samequantum.decTest similarity index 100% rename from Lib/test/decimaltestdata/samequantum.decTest rename to pylib/Lib/test/decimaltestdata/samequantum.decTest diff --git a/Lib/test/decimaltestdata/scaleb.decTest b/pylib/Lib/test/decimaltestdata/scaleb.decTest similarity index 100% rename from Lib/test/decimaltestdata/scaleb.decTest rename to pylib/Lib/test/decimaltestdata/scaleb.decTest diff --git a/Lib/test/decimaltestdata/shift.decTest b/pylib/Lib/test/decimaltestdata/shift.decTest similarity index 100% rename from Lib/test/decimaltestdata/shift.decTest rename to pylib/Lib/test/decimaltestdata/shift.decTest diff --git a/Lib/test/decimaltestdata/squareroot.decTest b/pylib/Lib/test/decimaltestdata/squareroot.decTest similarity index 100% rename from Lib/test/decimaltestdata/squareroot.decTest rename to pylib/Lib/test/decimaltestdata/squareroot.decTest diff --git a/Lib/test/decimaltestdata/subtract.decTest b/pylib/Lib/test/decimaltestdata/subtract.decTest similarity index 100% rename from Lib/test/decimaltestdata/subtract.decTest rename to pylib/Lib/test/decimaltestdata/subtract.decTest diff --git a/Lib/test/decimaltestdata/testall.decTest b/pylib/Lib/test/decimaltestdata/testall.decTest similarity index 100% rename from Lib/test/decimaltestdata/testall.decTest rename to pylib/Lib/test/decimaltestdata/testall.decTest diff --git a/Lib/test/decimaltestdata/tointegral.decTest b/pylib/Lib/test/decimaltestdata/tointegral.decTest similarity index 100% rename from Lib/test/decimaltestdata/tointegral.decTest rename to pylib/Lib/test/decimaltestdata/tointegral.decTest diff --git a/Lib/test/decimaltestdata/tointegralx.decTest b/pylib/Lib/test/decimaltestdata/tointegralx.decTest similarity index 100% rename from Lib/test/decimaltestdata/tointegralx.decTest rename to pylib/Lib/test/decimaltestdata/tointegralx.decTest diff --git a/Lib/test/decimaltestdata/xor.decTest b/pylib/Lib/test/decimaltestdata/xor.decTest similarity index 100% rename from Lib/test/decimaltestdata/xor.decTest rename to pylib/Lib/test/decimaltestdata/xor.decTest diff --git a/Lib/test/double_const.py b/pylib/Lib/test/double_const.py similarity index 100% rename from Lib/test/double_const.py rename to pylib/Lib/test/double_const.py diff --git a/Lib/test/encoded_modules/__init__.py b/pylib/Lib/test/encoded_modules/__init__.py similarity index 100% rename from Lib/test/encoded_modules/__init__.py rename to pylib/Lib/test/encoded_modules/__init__.py diff --git a/Lib/test/encoded_modules/module_iso_8859_1.py b/pylib/Lib/test/encoded_modules/module_iso_8859_1.py similarity index 100% rename from Lib/test/encoded_modules/module_iso_8859_1.py rename to pylib/Lib/test/encoded_modules/module_iso_8859_1.py diff --git a/Lib/test/encoded_modules/module_koi8_r.py b/pylib/Lib/test/encoded_modules/module_koi8_r.py similarity index 100% rename from Lib/test/encoded_modules/module_koi8_r.py rename to pylib/Lib/test/encoded_modules/module_koi8_r.py diff --git a/Lib/test/exception_hierarchy.txt b/pylib/Lib/test/exception_hierarchy.txt similarity index 100% rename from Lib/test/exception_hierarchy.txt rename to pylib/Lib/test/exception_hierarchy.txt diff --git a/Lib/test/floating_points.txt b/pylib/Lib/test/floating_points.txt similarity index 100% rename from Lib/test/floating_points.txt rename to pylib/Lib/test/floating_points.txt diff --git a/Lib/test/formatfloat_testcases.txt b/pylib/Lib/test/formatfloat_testcases.txt similarity index 100% rename from Lib/test/formatfloat_testcases.txt rename to pylib/Lib/test/formatfloat_testcases.txt diff --git a/Lib/test/keycert.passwd.pem b/pylib/Lib/test/keycert.passwd.pem similarity index 100% rename from Lib/test/keycert.passwd.pem rename to pylib/Lib/test/keycert.passwd.pem diff --git a/Lib/test/keycert.pem b/pylib/Lib/test/keycert.pem similarity index 100% rename from Lib/test/keycert.pem rename to pylib/Lib/test/keycert.pem diff --git a/Lib/test/keycert2.pem b/pylib/Lib/test/keycert2.pem similarity index 100% rename from Lib/test/keycert2.pem rename to pylib/Lib/test/keycert2.pem diff --git a/Lib/test/keycert3.pem b/pylib/Lib/test/keycert3.pem similarity index 100% rename from Lib/test/keycert3.pem rename to pylib/Lib/test/keycert3.pem diff --git a/Lib/test/keycert4.pem b/pylib/Lib/test/keycert4.pem similarity index 100% rename from Lib/test/keycert4.pem rename to pylib/Lib/test/keycert4.pem diff --git a/Lib/test/keycertecc.pem b/pylib/Lib/test/keycertecc.pem similarity index 100% rename from Lib/test/keycertecc.pem rename to pylib/Lib/test/keycertecc.pem diff --git a/Lib/test/libregrtest/__init__.py b/pylib/Lib/test/libregrtest/__init__.py similarity index 100% rename from Lib/test/libregrtest/__init__.py rename to pylib/Lib/test/libregrtest/__init__.py diff --git a/Lib/test/libregrtest/cmdline.py b/pylib/Lib/test/libregrtest/cmdline.py similarity index 100% rename from Lib/test/libregrtest/cmdline.py rename to pylib/Lib/test/libregrtest/cmdline.py diff --git a/Lib/test/libregrtest/main.py b/pylib/Lib/test/libregrtest/main.py similarity index 100% rename from Lib/test/libregrtest/main.py rename to pylib/Lib/test/libregrtest/main.py diff --git a/Lib/test/libregrtest/refleak.py b/pylib/Lib/test/libregrtest/refleak.py similarity index 100% rename from Lib/test/libregrtest/refleak.py rename to pylib/Lib/test/libregrtest/refleak.py diff --git a/Lib/test/libregrtest/runtest.py b/pylib/Lib/test/libregrtest/runtest.py similarity index 100% rename from Lib/test/libregrtest/runtest.py rename to pylib/Lib/test/libregrtest/runtest.py diff --git a/Lib/test/libregrtest/runtest_mp.py b/pylib/Lib/test/libregrtest/runtest_mp.py similarity index 100% rename from Lib/test/libregrtest/runtest_mp.py rename to pylib/Lib/test/libregrtest/runtest_mp.py diff --git a/Lib/test/libregrtest/save_env.py b/pylib/Lib/test/libregrtest/save_env.py similarity index 100% rename from Lib/test/libregrtest/save_env.py rename to pylib/Lib/test/libregrtest/save_env.py diff --git a/Lib/test/libregrtest/setup.py b/pylib/Lib/test/libregrtest/setup.py similarity index 100% rename from Lib/test/libregrtest/setup.py rename to pylib/Lib/test/libregrtest/setup.py diff --git a/Lib/test/libregrtest/utils.py b/pylib/Lib/test/libregrtest/utils.py similarity index 100% rename from Lib/test/libregrtest/utils.py rename to pylib/Lib/test/libregrtest/utils.py diff --git a/Lib/test/libregrtest/win_utils.py b/pylib/Lib/test/libregrtest/win_utils.py similarity index 100% rename from Lib/test/libregrtest/win_utils.py rename to pylib/Lib/test/libregrtest/win_utils.py diff --git a/Lib/test/list_tests.py b/pylib/Lib/test/list_tests.py similarity index 100% rename from Lib/test/list_tests.py rename to pylib/Lib/test/list_tests.py diff --git a/Lib/test/lock_tests.py b/pylib/Lib/test/lock_tests.py similarity index 100% rename from Lib/test/lock_tests.py rename to pylib/Lib/test/lock_tests.py diff --git a/Lib/test/mapping_tests.py b/pylib/Lib/test/mapping_tests.py similarity index 100% rename from Lib/test/mapping_tests.py rename to pylib/Lib/test/mapping_tests.py diff --git a/Lib/test/mathdata/cmath_testcases.txt b/pylib/Lib/test/mathdata/cmath_testcases.txt similarity index 100% rename from Lib/test/mathdata/cmath_testcases.txt rename to pylib/Lib/test/mathdata/cmath_testcases.txt diff --git a/Lib/test/mathdata/ieee754.txt b/pylib/Lib/test/mathdata/ieee754.txt similarity index 100% rename from Lib/test/mathdata/ieee754.txt rename to pylib/Lib/test/mathdata/ieee754.txt diff --git a/Lib/test/mathdata/math_testcases.txt b/pylib/Lib/test/mathdata/math_testcases.txt similarity index 100% rename from Lib/test/mathdata/math_testcases.txt rename to pylib/Lib/test/mathdata/math_testcases.txt diff --git a/Lib/test/mime.types b/pylib/Lib/test/mime.types similarity index 100% rename from Lib/test/mime.types rename to pylib/Lib/test/mime.types diff --git a/Lib/test/mock_socket.py b/pylib/Lib/test/mock_socket.py similarity index 100% rename from Lib/test/mock_socket.py rename to pylib/Lib/test/mock_socket.py diff --git a/Lib/test/mod_generics_cache.py b/pylib/Lib/test/mod_generics_cache.py similarity index 100% rename from Lib/test/mod_generics_cache.py rename to pylib/Lib/test/mod_generics_cache.py diff --git a/Lib/test/pickletester.py b/pylib/Lib/test/pickletester.py similarity index 100% rename from Lib/test/pickletester.py rename to pylib/Lib/test/pickletester.py diff --git a/Lib/test/randv2_32.pck b/pylib/Lib/test/randv2_32.pck similarity index 100% rename from Lib/test/randv2_32.pck rename to pylib/Lib/test/randv2_32.pck diff --git a/Lib/test/randv2_64.pck b/pylib/Lib/test/randv2_64.pck similarity index 100% rename from Lib/test/randv2_64.pck rename to pylib/Lib/test/randv2_64.pck diff --git a/Lib/test/randv3.pck b/pylib/Lib/test/randv3.pck similarity index 100% rename from Lib/test/randv3.pck rename to pylib/Lib/test/randv3.pck diff --git a/Lib/test/re_tests.py b/pylib/Lib/test/re_tests.py similarity index 100% rename from Lib/test/re_tests.py rename to pylib/Lib/test/re_tests.py diff --git a/Lib/test/recursion.tar b/pylib/Lib/test/recursion.tar similarity index 100% rename from Lib/test/recursion.tar rename to pylib/Lib/test/recursion.tar diff --git a/Lib/test/regrtest.py b/pylib/Lib/test/regrtest.py similarity index 100% rename from Lib/test/regrtest.py rename to pylib/Lib/test/regrtest.py diff --git a/Lib/test/relimport.py b/pylib/Lib/test/relimport.py similarity index 100% rename from Lib/test/relimport.py rename to pylib/Lib/test/relimport.py diff --git a/Lib/test/seq_tests.py b/pylib/Lib/test/seq_tests.py similarity index 100% rename from Lib/test/seq_tests.py rename to pylib/Lib/test/seq_tests.py diff --git a/Lib/test/signalinterproctester.py b/pylib/Lib/test/signalinterproctester.py similarity index 100% rename from Lib/test/signalinterproctester.py rename to pylib/Lib/test/signalinterproctester.py diff --git a/Lib/test/ssl_servers.py b/pylib/Lib/test/ssl_servers.py similarity index 100% rename from Lib/test/ssl_servers.py rename to pylib/Lib/test/ssl_servers.py diff --git a/Lib/test/string_tests.py b/pylib/Lib/test/string_tests.py similarity index 100% rename from Lib/test/string_tests.py rename to pylib/Lib/test/string_tests.py diff --git a/Lib/test/subprocessdata/fd_status.py b/pylib/Lib/test/subprocessdata/fd_status.py similarity index 100% rename from Lib/test/subprocessdata/fd_status.py rename to pylib/Lib/test/subprocessdata/fd_status.py diff --git a/Lib/test/subprocessdata/input_reader.py b/pylib/Lib/test/subprocessdata/input_reader.py similarity index 100% rename from Lib/test/subprocessdata/input_reader.py rename to pylib/Lib/test/subprocessdata/input_reader.py diff --git a/Lib/test/subprocessdata/qcat.py b/pylib/Lib/test/subprocessdata/qcat.py similarity index 100% rename from Lib/test/subprocessdata/qcat.py rename to pylib/Lib/test/subprocessdata/qcat.py diff --git a/Lib/test/subprocessdata/qgrep.py b/pylib/Lib/test/subprocessdata/qgrep.py similarity index 100% rename from Lib/test/subprocessdata/qgrep.py rename to pylib/Lib/test/subprocessdata/qgrep.py diff --git a/Lib/test/subprocessdata/sigchild_ignore.py b/pylib/Lib/test/subprocessdata/sigchild_ignore.py similarity index 100% rename from Lib/test/subprocessdata/sigchild_ignore.py rename to pylib/Lib/test/subprocessdata/sigchild_ignore.py diff --git a/Lib/test/support/__init__.py b/pylib/Lib/test/support/__init__.py similarity index 100% rename from Lib/test/support/__init__.py rename to pylib/Lib/test/support/__init__.py diff --git a/Lib/test/support/_hypothesis_stubs/__init__.py b/pylib/Lib/test/support/_hypothesis_stubs/__init__.py similarity index 100% rename from Lib/test/support/_hypothesis_stubs/__init__.py rename to pylib/Lib/test/support/_hypothesis_stubs/__init__.py diff --git a/Lib/test/support/_hypothesis_stubs/_helpers.py b/pylib/Lib/test/support/_hypothesis_stubs/_helpers.py similarity index 100% rename from Lib/test/support/_hypothesis_stubs/_helpers.py rename to pylib/Lib/test/support/_hypothesis_stubs/_helpers.py diff --git a/Lib/test/support/_hypothesis_stubs/strategies.py b/pylib/Lib/test/support/_hypothesis_stubs/strategies.py similarity index 100% rename from Lib/test/support/_hypothesis_stubs/strategies.py rename to pylib/Lib/test/support/_hypothesis_stubs/strategies.py diff --git a/Lib/test/support/ast_helper.py b/pylib/Lib/test/support/ast_helper.py similarity index 100% rename from Lib/test/support/ast_helper.py rename to pylib/Lib/test/support/ast_helper.py diff --git a/Lib/test/support/asynchat.py b/pylib/Lib/test/support/asynchat.py similarity index 100% rename from Lib/test/support/asynchat.py rename to pylib/Lib/test/support/asynchat.py diff --git a/Lib/test/support/asyncore.py b/pylib/Lib/test/support/asyncore.py similarity index 100% rename from Lib/test/support/asyncore.py rename to pylib/Lib/test/support/asyncore.py diff --git a/Lib/test/support/bytecode_helper.py b/pylib/Lib/test/support/bytecode_helper.py similarity index 100% rename from Lib/test/support/bytecode_helper.py rename to pylib/Lib/test/support/bytecode_helper.py diff --git a/Lib/test/support/hashlib_helper.py b/pylib/Lib/test/support/hashlib_helper.py similarity index 100% rename from Lib/test/support/hashlib_helper.py rename to pylib/Lib/test/support/hashlib_helper.py diff --git a/Lib/test/support/hypothesis_helper.py b/pylib/Lib/test/support/hypothesis_helper.py similarity index 100% rename from Lib/test/support/hypothesis_helper.py rename to pylib/Lib/test/support/hypothesis_helper.py diff --git a/Lib/test/support/import_helper.py b/pylib/Lib/test/support/import_helper.py similarity index 100% rename from Lib/test/support/import_helper.py rename to pylib/Lib/test/support/import_helper.py diff --git a/Lib/test/support/interpreters.py b/pylib/Lib/test/support/interpreters.py similarity index 100% rename from Lib/test/support/interpreters.py rename to pylib/Lib/test/support/interpreters.py diff --git a/Lib/test/support/logging_helper.py b/pylib/Lib/test/support/logging_helper.py similarity index 100% rename from Lib/test/support/logging_helper.py rename to pylib/Lib/test/support/logging_helper.py diff --git a/Lib/test/support/os_helper.py b/pylib/Lib/test/support/os_helper.py similarity index 100% rename from Lib/test/support/os_helper.py rename to pylib/Lib/test/support/os_helper.py diff --git a/Lib/test/support/script_helper.py b/pylib/Lib/test/support/script_helper.py similarity index 100% rename from Lib/test/support/script_helper.py rename to pylib/Lib/test/support/script_helper.py diff --git a/Lib/test/support/smtpd.py b/pylib/Lib/test/support/smtpd.py similarity index 100% rename from Lib/test/support/smtpd.py rename to pylib/Lib/test/support/smtpd.py diff --git a/Lib/test/support/socket_helper.py b/pylib/Lib/test/support/socket_helper.py similarity index 100% rename from Lib/test/support/socket_helper.py rename to pylib/Lib/test/support/socket_helper.py diff --git a/Lib/test/support/testcase.py b/pylib/Lib/test/support/testcase.py similarity index 100% rename from Lib/test/support/testcase.py rename to pylib/Lib/test/support/testcase.py diff --git a/Lib/test/support/testresult.py b/pylib/Lib/test/support/testresult.py similarity index 100% rename from Lib/test/support/testresult.py rename to pylib/Lib/test/support/testresult.py diff --git a/Lib/test/support/threading_helper.py b/pylib/Lib/test/support/threading_helper.py similarity index 100% rename from Lib/test/support/threading_helper.py rename to pylib/Lib/test/support/threading_helper.py diff --git a/Lib/test/support/warnings_helper.py b/pylib/Lib/test/support/warnings_helper.py similarity index 100% rename from Lib/test/support/warnings_helper.py rename to pylib/Lib/test/support/warnings_helper.py diff --git a/Lib/test/test___all__.py b/pylib/Lib/test/test___all__.py similarity index 100% rename from Lib/test/test___all__.py rename to pylib/Lib/test/test___all__.py diff --git a/Lib/test/test__colorize.py b/pylib/Lib/test/test__colorize.py similarity index 100% rename from Lib/test/test__colorize.py rename to pylib/Lib/test/test__colorize.py diff --git a/Lib/test/test__osx_support.py b/pylib/Lib/test/test__osx_support.py similarity index 100% rename from Lib/test/test__osx_support.py rename to pylib/Lib/test/test__osx_support.py diff --git a/Lib/test/test_abc.py b/pylib/Lib/test/test_abc.py similarity index 100% rename from Lib/test/test_abc.py rename to pylib/Lib/test/test_abc.py diff --git a/Lib/test/test_abstract_numbers.py b/pylib/Lib/test/test_abstract_numbers.py similarity index 100% rename from Lib/test/test_abstract_numbers.py rename to pylib/Lib/test/test_abstract_numbers.py diff --git a/Lib/test/test_android.py b/pylib/Lib/test/test_android.py similarity index 100% rename from Lib/test/test_android.py rename to pylib/Lib/test/test_android.py diff --git a/Lib/test/test_argparse.py b/pylib/Lib/test/test_argparse.py similarity index 100% rename from Lib/test/test_argparse.py rename to pylib/Lib/test/test_argparse.py diff --git a/Lib/test/test_array.py b/pylib/Lib/test/test_array.py similarity index 100% rename from Lib/test/test_array.py rename to pylib/Lib/test/test_array.py diff --git a/Lib/test/test_ast.py b/pylib/Lib/test/test_ast.py similarity index 100% rename from Lib/test/test_ast.py rename to pylib/Lib/test/test_ast.py diff --git a/Lib/test/test_asyncgen.py b/pylib/Lib/test/test_asyncgen.py similarity index 100% rename from Lib/test/test_asyncgen.py rename to pylib/Lib/test/test_asyncgen.py diff --git a/Lib/test/test_atexit.py b/pylib/Lib/test/test_atexit.py similarity index 100% rename from Lib/test/test_atexit.py rename to pylib/Lib/test/test_atexit.py diff --git a/Lib/test/test_audit.py b/pylib/Lib/test/test_audit.py similarity index 100% rename from Lib/test/test_audit.py rename to pylib/Lib/test/test_audit.py diff --git a/Lib/test/test_augassign.py b/pylib/Lib/test/test_augassign.py similarity index 100% rename from Lib/test/test_augassign.py rename to pylib/Lib/test/test_augassign.py diff --git a/Lib/test/test_base64.py b/pylib/Lib/test/test_base64.py similarity index 100% rename from Lib/test/test_base64.py rename to pylib/Lib/test/test_base64.py diff --git a/Lib/test/test_baseexception.py b/pylib/Lib/test/test_baseexception.py similarity index 100% rename from Lib/test/test_baseexception.py rename to pylib/Lib/test/test_baseexception.py diff --git a/Lib/test/test_bdb.py b/pylib/Lib/test/test_bdb.py similarity index 100% rename from Lib/test/test_bdb.py rename to pylib/Lib/test/test_bdb.py diff --git a/Lib/test/test_bigaddrspace.py b/pylib/Lib/test/test_bigaddrspace.py similarity index 100% rename from Lib/test/test_bigaddrspace.py rename to pylib/Lib/test/test_bigaddrspace.py diff --git a/Lib/test/test_bigmem.py b/pylib/Lib/test/test_bigmem.py similarity index 100% rename from Lib/test/test_bigmem.py rename to pylib/Lib/test/test_bigmem.py diff --git a/Lib/test/test_binascii.py b/pylib/Lib/test/test_binascii.py similarity index 100% rename from Lib/test/test_binascii.py rename to pylib/Lib/test/test_binascii.py diff --git a/Lib/test/test_binop.py b/pylib/Lib/test/test_binop.py similarity index 100% rename from Lib/test/test_binop.py rename to pylib/Lib/test/test_binop.py diff --git a/Lib/test/test_bisect.py b/pylib/Lib/test/test_bisect.py similarity index 100% rename from Lib/test/test_bisect.py rename to pylib/Lib/test/test_bisect.py diff --git a/Lib/test/test_bool.py b/pylib/Lib/test/test_bool.py similarity index 100% rename from Lib/test/test_bool.py rename to pylib/Lib/test/test_bool.py diff --git a/Lib/test/test_buffer.py b/pylib/Lib/test/test_buffer.py similarity index 100% rename from Lib/test/test_buffer.py rename to pylib/Lib/test/test_buffer.py diff --git a/Lib/test/test_bufio.py b/pylib/Lib/test/test_bufio.py similarity index 100% rename from Lib/test/test_bufio.py rename to pylib/Lib/test/test_bufio.py diff --git a/Lib/test/test_builtin.py b/pylib/Lib/test/test_builtin.py similarity index 100% rename from Lib/test/test_builtin.py rename to pylib/Lib/test/test_builtin.py diff --git a/Lib/test/test_bytes.py b/pylib/Lib/test/test_bytes.py similarity index 100% rename from Lib/test/test_bytes.py rename to pylib/Lib/test/test_bytes.py diff --git a/Lib/test/test_bz2.py b/pylib/Lib/test/test_bz2.py similarity index 100% rename from Lib/test/test_bz2.py rename to pylib/Lib/test/test_bz2.py diff --git a/Lib/test/test_c_locale_coercion.py b/pylib/Lib/test/test_c_locale_coercion.py similarity index 100% rename from Lib/test/test_c_locale_coercion.py rename to pylib/Lib/test/test_c_locale_coercion.py diff --git a/Lib/test/test_calendar.py b/pylib/Lib/test/test_calendar.py similarity index 100% rename from Lib/test/test_calendar.py rename to pylib/Lib/test/test_calendar.py diff --git a/Lib/test/test_call.py b/pylib/Lib/test/test_call.py similarity index 100% rename from Lib/test/test_call.py rename to pylib/Lib/test/test_call.py diff --git a/Lib/test/test_charmapcodec.py b/pylib/Lib/test/test_charmapcodec.py similarity index 100% rename from Lib/test/test_charmapcodec.py rename to pylib/Lib/test/test_charmapcodec.py diff --git a/Lib/test/test_class.py b/pylib/Lib/test/test_class.py similarity index 100% rename from Lib/test/test_class.py rename to pylib/Lib/test/test_class.py diff --git a/Lib/test/test_cmath.py b/pylib/Lib/test/test_cmath.py similarity index 100% rename from Lib/test/test_cmath.py rename to pylib/Lib/test/test_cmath.py diff --git a/Lib/test/test_cmd.py b/pylib/Lib/test/test_cmd.py similarity index 100% rename from Lib/test/test_cmd.py rename to pylib/Lib/test/test_cmd.py diff --git a/Lib/test/test_cmd_line.py b/pylib/Lib/test/test_cmd_line.py similarity index 100% rename from Lib/test/test_cmd_line.py rename to pylib/Lib/test/test_cmd_line.py diff --git a/Lib/test/test_cmd_line_script.py b/pylib/Lib/test/test_cmd_line_script.py similarity index 100% rename from Lib/test/test_cmd_line_script.py rename to pylib/Lib/test/test_cmd_line_script.py diff --git a/Lib/test/test_code.py b/pylib/Lib/test/test_code.py similarity index 100% rename from Lib/test/test_code.py rename to pylib/Lib/test/test_code.py diff --git a/Lib/test/test_code_module.py b/pylib/Lib/test/test_code_module.py similarity index 100% rename from Lib/test/test_code_module.py rename to pylib/Lib/test/test_code_module.py diff --git a/Lib/test/test_codeccallbacks.py b/pylib/Lib/test/test_codeccallbacks.py similarity index 100% rename from Lib/test/test_codeccallbacks.py rename to pylib/Lib/test/test_codeccallbacks.py diff --git a/Lib/test/test_codecs.py b/pylib/Lib/test/test_codecs.py similarity index 100% rename from Lib/test/test_codecs.py rename to pylib/Lib/test/test_codecs.py diff --git a/Lib/test/test_codeop.py b/pylib/Lib/test/test_codeop.py similarity index 100% rename from Lib/test/test_codeop.py rename to pylib/Lib/test/test_codeop.py diff --git a/Lib/test/test_collections.py b/pylib/Lib/test/test_collections.py similarity index 100% rename from Lib/test/test_collections.py rename to pylib/Lib/test/test_collections.py diff --git a/Lib/test/test_colorsys.py b/pylib/Lib/test/test_colorsys.py similarity index 100% rename from Lib/test/test_colorsys.py rename to pylib/Lib/test/test_colorsys.py diff --git a/Lib/test/test_compare.py b/pylib/Lib/test/test_compare.py similarity index 100% rename from Lib/test/test_compare.py rename to pylib/Lib/test/test_compare.py diff --git a/Lib/test/test_compile.py b/pylib/Lib/test/test_compile.py similarity index 100% rename from Lib/test/test_compile.py rename to pylib/Lib/test/test_compile.py diff --git a/Lib/test/test_complex.py b/pylib/Lib/test/test_complex.py similarity index 100% rename from Lib/test/test_complex.py rename to pylib/Lib/test/test_complex.py diff --git a/Lib/test/test_configparser.py b/pylib/Lib/test/test_configparser.py similarity index 100% rename from Lib/test/test_configparser.py rename to pylib/Lib/test/test_configparser.py diff --git a/Lib/test/test_contains.py b/pylib/Lib/test/test_contains.py similarity index 100% rename from Lib/test/test_contains.py rename to pylib/Lib/test/test_contains.py diff --git a/Lib/test/test_context.py b/pylib/Lib/test/test_context.py similarity index 100% rename from Lib/test/test_context.py rename to pylib/Lib/test/test_context.py diff --git a/Lib/test/test_contextlib.py b/pylib/Lib/test/test_contextlib.py similarity index 100% rename from Lib/test/test_contextlib.py rename to pylib/Lib/test/test_contextlib.py diff --git a/Lib/test/test_copy.py b/pylib/Lib/test/test_copy.py similarity index 100% rename from Lib/test/test_copy.py rename to pylib/Lib/test/test_copy.py diff --git a/Lib/test/test_copyreg.py b/pylib/Lib/test/test_copyreg.py similarity index 100% rename from Lib/test/test_copyreg.py rename to pylib/Lib/test/test_copyreg.py diff --git a/Lib/test/test_csv.py b/pylib/Lib/test/test_csv.py similarity index 100% rename from Lib/test/test_csv.py rename to pylib/Lib/test/test_csv.py diff --git a/Lib/test/test_ctypes.py b/pylib/Lib/test/test_ctypes.py similarity index 100% rename from Lib/test/test_ctypes.py rename to pylib/Lib/test/test_ctypes.py diff --git a/Lib/test/test_dataclasses.py b/pylib/Lib/test/test_dataclasses.py similarity index 100% rename from Lib/test/test_dataclasses.py rename to pylib/Lib/test/test_dataclasses.py diff --git a/Lib/test/test_datetime.py b/pylib/Lib/test/test_datetime.py similarity index 100% rename from Lib/test/test_datetime.py rename to pylib/Lib/test/test_datetime.py diff --git a/Lib/test/test_dbm.py b/pylib/Lib/test/test_dbm.py similarity index 100% rename from Lib/test/test_dbm.py rename to pylib/Lib/test/test_dbm.py diff --git a/Lib/test/test_dbm_dumb.py b/pylib/Lib/test/test_dbm_dumb.py similarity index 100% rename from Lib/test/test_dbm_dumb.py rename to pylib/Lib/test/test_dbm_dumb.py diff --git a/Lib/test/test_decimal.py b/pylib/Lib/test/test_decimal.py similarity index 100% rename from Lib/test/test_decimal.py rename to pylib/Lib/test/test_decimal.py diff --git a/Lib/test/test_decorators.py b/pylib/Lib/test/test_decorators.py similarity index 100% rename from Lib/test/test_decorators.py rename to pylib/Lib/test/test_decorators.py diff --git a/Lib/test/test_defaultdict.py b/pylib/Lib/test/test_defaultdict.py similarity index 100% rename from Lib/test/test_defaultdict.py rename to pylib/Lib/test/test_defaultdict.py diff --git a/Lib/test/test_deque.py b/pylib/Lib/test/test_deque.py similarity index 100% rename from Lib/test/test_deque.py rename to pylib/Lib/test/test_deque.py diff --git a/Lib/test/test_descr.py b/pylib/Lib/test/test_descr.py similarity index 100% rename from Lib/test/test_descr.py rename to pylib/Lib/test/test_descr.py diff --git a/Lib/test/test_descrtut.py b/pylib/Lib/test/test_descrtut.py similarity index 100% rename from Lib/test/test_descrtut.py rename to pylib/Lib/test/test_descrtut.py diff --git a/Lib/test/test_devpoll.py b/pylib/Lib/test/test_devpoll.py similarity index 100% rename from Lib/test/test_devpoll.py rename to pylib/Lib/test/test_devpoll.py diff --git a/Lib/test/test_dict.py b/pylib/Lib/test/test_dict.py similarity index 100% rename from Lib/test/test_dict.py rename to pylib/Lib/test/test_dict.py diff --git a/Lib/test/test_dictcomps.py b/pylib/Lib/test/test_dictcomps.py similarity index 100% rename from Lib/test/test_dictcomps.py rename to pylib/Lib/test/test_dictcomps.py diff --git a/Lib/test/test_dictviews.py b/pylib/Lib/test/test_dictviews.py similarity index 100% rename from Lib/test/test_dictviews.py rename to pylib/Lib/test/test_dictviews.py diff --git a/Lib/test/test_difflib.py b/pylib/Lib/test/test_difflib.py similarity index 100% rename from Lib/test/test_difflib.py rename to pylib/Lib/test/test_difflib.py diff --git a/Lib/test/test_difflib_expect.html b/pylib/Lib/test/test_difflib_expect.html similarity index 100% rename from Lib/test/test_difflib_expect.html rename to pylib/Lib/test/test_difflib_expect.html diff --git a/Lib/test/test_dis.py b/pylib/Lib/test/test_dis.py similarity index 100% rename from Lib/test/test_dis.py rename to pylib/Lib/test/test_dis.py diff --git a/Lib/test/test_doctest2.py b/pylib/Lib/test/test_doctest2.py similarity index 100% rename from Lib/test/test_doctest2.py rename to pylib/Lib/test/test_doctest2.py diff --git a/Lib/test/test_docxmlrpc.py b/pylib/Lib/test/test_docxmlrpc.py similarity index 100% rename from Lib/test/test_docxmlrpc.py rename to pylib/Lib/test/test_docxmlrpc.py diff --git a/Lib/test/test_dtrace.py b/pylib/Lib/test/test_dtrace.py similarity index 100% rename from Lib/test/test_dtrace.py rename to pylib/Lib/test/test_dtrace.py diff --git a/Lib/test/test_dummy_thread.py b/pylib/Lib/test/test_dummy_thread.py similarity index 100% rename from Lib/test/test_dummy_thread.py rename to pylib/Lib/test/test_dummy_thread.py diff --git a/Lib/test/test_dummy_threading.py b/pylib/Lib/test/test_dummy_threading.py similarity index 100% rename from Lib/test/test_dummy_threading.py rename to pylib/Lib/test/test_dummy_threading.py diff --git a/Lib/test/test_dynamic.py b/pylib/Lib/test/test_dynamic.py similarity index 100% rename from Lib/test/test_dynamic.py rename to pylib/Lib/test/test_dynamic.py diff --git a/Lib/test/test_dynamicclassattribute.py b/pylib/Lib/test/test_dynamicclassattribute.py similarity index 100% rename from Lib/test/test_dynamicclassattribute.py rename to pylib/Lib/test/test_dynamicclassattribute.py diff --git a/Lib/test/test_eintr.py b/pylib/Lib/test/test_eintr.py similarity index 100% rename from Lib/test/test_eintr.py rename to pylib/Lib/test/test_eintr.py diff --git a/Lib/test/test_ensurepip.py b/pylib/Lib/test/test_ensurepip.py similarity index 100% rename from Lib/test/test_ensurepip.py rename to pylib/Lib/test/test_ensurepip.py diff --git a/Lib/test/test_enum.py b/pylib/Lib/test/test_enum.py similarity index 100% rename from Lib/test/test_enum.py rename to pylib/Lib/test/test_enum.py diff --git a/Lib/test/test_enumerate.py b/pylib/Lib/test/test_enumerate.py similarity index 100% rename from Lib/test/test_enumerate.py rename to pylib/Lib/test/test_enumerate.py diff --git a/Lib/test/test_eof.py b/pylib/Lib/test/test_eof.py similarity index 100% rename from Lib/test/test_eof.py rename to pylib/Lib/test/test_eof.py diff --git a/Lib/test/test_epoll.py b/pylib/Lib/test/test_epoll.py similarity index 100% rename from Lib/test/test_epoll.py rename to pylib/Lib/test/test_epoll.py diff --git a/Lib/test/test_errno.py b/pylib/Lib/test/test_errno.py similarity index 100% rename from Lib/test/test_errno.py rename to pylib/Lib/test/test_errno.py diff --git a/Lib/test/test_exception_group.py b/pylib/Lib/test/test_exception_group.py similarity index 100% rename from Lib/test/test_exception_group.py rename to pylib/Lib/test/test_exception_group.py diff --git a/Lib/test/test_exception_hierarchy.py b/pylib/Lib/test/test_exception_hierarchy.py similarity index 100% rename from Lib/test/test_exception_hierarchy.py rename to pylib/Lib/test/test_exception_hierarchy.py diff --git a/Lib/test/test_exception_variations.py b/pylib/Lib/test/test_exception_variations.py similarity index 100% rename from Lib/test/test_exception_variations.py rename to pylib/Lib/test/test_exception_variations.py diff --git a/Lib/test/test_exceptions.py b/pylib/Lib/test/test_exceptions.py similarity index 100% rename from Lib/test/test_exceptions.py rename to pylib/Lib/test/test_exceptions.py diff --git a/Lib/test/test_faulthandler.py b/pylib/Lib/test/test_faulthandler.py similarity index 100% rename from Lib/test/test_faulthandler.py rename to pylib/Lib/test/test_faulthandler.py diff --git a/Lib/test/test_fcntl.py b/pylib/Lib/test/test_fcntl.py similarity index 100% rename from Lib/test/test_fcntl.py rename to pylib/Lib/test/test_fcntl.py diff --git a/Lib/test/test_file.py b/pylib/Lib/test/test_file.py similarity index 100% rename from Lib/test/test_file.py rename to pylib/Lib/test/test_file.py diff --git a/Lib/test/test_filecmp.py b/pylib/Lib/test/test_filecmp.py similarity index 100% rename from Lib/test/test_filecmp.py rename to pylib/Lib/test/test_filecmp.py diff --git a/Lib/test/test_fileinput.py b/pylib/Lib/test/test_fileinput.py similarity index 100% rename from Lib/test/test_fileinput.py rename to pylib/Lib/test/test_fileinput.py diff --git a/Lib/test/test_fileio.py b/pylib/Lib/test/test_fileio.py similarity index 100% rename from Lib/test/test_fileio.py rename to pylib/Lib/test/test_fileio.py diff --git a/Lib/test/test_float.py b/pylib/Lib/test/test_float.py similarity index 100% rename from Lib/test/test_float.py rename to pylib/Lib/test/test_float.py diff --git a/Lib/test/test_fnmatch.py b/pylib/Lib/test/test_fnmatch.py similarity index 100% rename from Lib/test/test_fnmatch.py rename to pylib/Lib/test/test_fnmatch.py diff --git a/Lib/test/test_format.py b/pylib/Lib/test/test_format.py similarity index 100% rename from Lib/test/test_format.py rename to pylib/Lib/test/test_format.py diff --git a/Lib/test/test_fractions.py b/pylib/Lib/test/test_fractions.py similarity index 100% rename from Lib/test/test_fractions.py rename to pylib/Lib/test/test_fractions.py diff --git a/Lib/test/test_fstring.py b/pylib/Lib/test/test_fstring.py similarity index 100% rename from Lib/test/test_fstring.py rename to pylib/Lib/test/test_fstring.py diff --git a/Lib/test/test_ftplib.py b/pylib/Lib/test/test_ftplib.py similarity index 100% rename from Lib/test/test_ftplib.py rename to pylib/Lib/test/test_ftplib.py diff --git a/Lib/test/test_funcattrs.py b/pylib/Lib/test/test_funcattrs.py similarity index 100% rename from Lib/test/test_funcattrs.py rename to pylib/Lib/test/test_funcattrs.py diff --git a/Lib/test/test_functools.py b/pylib/Lib/test/test_functools.py similarity index 100% rename from Lib/test/test_functools.py rename to pylib/Lib/test/test_functools.py diff --git a/Lib/test/test_future_stmt/__init__.py b/pylib/Lib/test/test_future_stmt/__init__.py similarity index 100% rename from Lib/test/test_future_stmt/__init__.py rename to pylib/Lib/test/test_future_stmt/__init__.py diff --git a/Lib/test/test_future_stmt/badsyntax_future10.py b/pylib/Lib/test/test_future_stmt/badsyntax_future10.py similarity index 100% rename from Lib/test/test_future_stmt/badsyntax_future10.py rename to pylib/Lib/test/test_future_stmt/badsyntax_future10.py diff --git a/Lib/test/test_future_stmt/badsyntax_future3.py b/pylib/Lib/test/test_future_stmt/badsyntax_future3.py similarity index 100% rename from Lib/test/test_future_stmt/badsyntax_future3.py rename to pylib/Lib/test/test_future_stmt/badsyntax_future3.py diff --git a/Lib/test/test_future_stmt/badsyntax_future4.py b/pylib/Lib/test/test_future_stmt/badsyntax_future4.py similarity index 100% rename from Lib/test/test_future_stmt/badsyntax_future4.py rename to pylib/Lib/test/test_future_stmt/badsyntax_future4.py diff --git a/Lib/test/test_future_stmt/badsyntax_future5.py b/pylib/Lib/test/test_future_stmt/badsyntax_future5.py similarity index 100% rename from Lib/test/test_future_stmt/badsyntax_future5.py rename to pylib/Lib/test/test_future_stmt/badsyntax_future5.py diff --git a/Lib/test/test_future_stmt/badsyntax_future6.py b/pylib/Lib/test/test_future_stmt/badsyntax_future6.py similarity index 100% rename from Lib/test/test_future_stmt/badsyntax_future6.py rename to pylib/Lib/test/test_future_stmt/badsyntax_future6.py diff --git a/Lib/test/test_future_stmt/badsyntax_future7.py b/pylib/Lib/test/test_future_stmt/badsyntax_future7.py similarity index 100% rename from Lib/test/test_future_stmt/badsyntax_future7.py rename to pylib/Lib/test/test_future_stmt/badsyntax_future7.py diff --git a/Lib/test/test_future_stmt/badsyntax_future8.py b/pylib/Lib/test/test_future_stmt/badsyntax_future8.py similarity index 100% rename from Lib/test/test_future_stmt/badsyntax_future8.py rename to pylib/Lib/test/test_future_stmt/badsyntax_future8.py diff --git a/Lib/test/test_future_stmt/badsyntax_future9.py b/pylib/Lib/test/test_future_stmt/badsyntax_future9.py similarity index 100% rename from Lib/test/test_future_stmt/badsyntax_future9.py rename to pylib/Lib/test/test_future_stmt/badsyntax_future9.py diff --git a/Lib/test/test_future_stmt/future_test1.py b/pylib/Lib/test/test_future_stmt/future_test1.py similarity index 100% rename from Lib/test/test_future_stmt/future_test1.py rename to pylib/Lib/test/test_future_stmt/future_test1.py diff --git a/Lib/test/test_future_stmt/future_test2.py b/pylib/Lib/test/test_future_stmt/future_test2.py similarity index 100% rename from Lib/test/test_future_stmt/future_test2.py rename to pylib/Lib/test/test_future_stmt/future_test2.py diff --git a/Lib/test/test_future_stmt/test_future.py b/pylib/Lib/test/test_future_stmt/test_future.py similarity index 100% rename from Lib/test/test_future_stmt/test_future.py rename to pylib/Lib/test/test_future_stmt/test_future.py diff --git a/Lib/test/test_future_stmt/test_future_flags.py b/pylib/Lib/test/test_future_stmt/test_future_flags.py similarity index 100% rename from Lib/test/test_future_stmt/test_future_flags.py rename to pylib/Lib/test/test_future_stmt/test_future_flags.py diff --git a/Lib/test/test_future_stmt/test_future_multiple_features.py b/pylib/Lib/test/test_future_stmt/test_future_multiple_features.py similarity index 100% rename from Lib/test/test_future_stmt/test_future_multiple_features.py rename to pylib/Lib/test/test_future_stmt/test_future_multiple_features.py diff --git a/Lib/test/test_future_stmt/test_future_multiple_imports.py b/pylib/Lib/test/test_future_stmt/test_future_multiple_imports.py similarity index 100% rename from Lib/test/test_future_stmt/test_future_multiple_imports.py rename to pylib/Lib/test/test_future_stmt/test_future_multiple_imports.py diff --git a/Lib/test/test_future_stmt/test_future_single_import.py b/pylib/Lib/test/test_future_stmt/test_future_single_import.py similarity index 100% rename from Lib/test/test_future_stmt/test_future_single_import.py rename to pylib/Lib/test/test_future_stmt/test_future_single_import.py diff --git a/Lib/test/test_generators.py b/pylib/Lib/test/test_generators.py similarity index 100% rename from Lib/test/test_generators.py rename to pylib/Lib/test/test_generators.py diff --git a/Lib/test/test_genericalias.py b/pylib/Lib/test/test_genericalias.py similarity index 100% rename from Lib/test/test_genericalias.py rename to pylib/Lib/test/test_genericalias.py diff --git a/Lib/test/test_genericclass.py b/pylib/Lib/test/test_genericclass.py similarity index 100% rename from Lib/test/test_genericclass.py rename to pylib/Lib/test/test_genericclass.py diff --git a/Lib/test/test_genericpath.py b/pylib/Lib/test/test_genericpath.py similarity index 100% rename from Lib/test/test_genericpath.py rename to pylib/Lib/test/test_genericpath.py diff --git a/Lib/test/test_getopt.py b/pylib/Lib/test/test_getopt.py similarity index 100% rename from Lib/test/test_getopt.py rename to pylib/Lib/test/test_getopt.py diff --git a/Lib/test/test_getpass.py b/pylib/Lib/test/test_getpass.py similarity index 100% rename from Lib/test/test_getpass.py rename to pylib/Lib/test/test_getpass.py diff --git a/Lib/test/test_gettext.py b/pylib/Lib/test/test_gettext.py similarity index 100% rename from Lib/test/test_gettext.py rename to pylib/Lib/test/test_gettext.py diff --git a/Lib/test/test_glob.py b/pylib/Lib/test/test_glob.py similarity index 100% rename from Lib/test/test_glob.py rename to pylib/Lib/test/test_glob.py diff --git a/Lib/test/test_global.py b/pylib/Lib/test/test_global.py similarity index 100% rename from Lib/test/test_global.py rename to pylib/Lib/test/test_global.py diff --git a/Lib/test/test_grammar.py b/pylib/Lib/test/test_grammar.py similarity index 100% rename from Lib/test/test_grammar.py rename to pylib/Lib/test/test_grammar.py diff --git a/Lib/test/test_graphlib.py b/pylib/Lib/test/test_graphlib.py similarity index 100% rename from Lib/test/test_graphlib.py rename to pylib/Lib/test/test_graphlib.py diff --git a/Lib/test/test_grp.py b/pylib/Lib/test/test_grp.py similarity index 100% rename from Lib/test/test_grp.py rename to pylib/Lib/test/test_grp.py diff --git a/Lib/test/test_gzip.py b/pylib/Lib/test/test_gzip.py similarity index 100% rename from Lib/test/test_gzip.py rename to pylib/Lib/test/test_gzip.py diff --git a/Lib/test/test_hash.py b/pylib/Lib/test/test_hash.py similarity index 100% rename from Lib/test/test_hash.py rename to pylib/Lib/test/test_hash.py diff --git a/Lib/test/test_hashlib.py b/pylib/Lib/test/test_hashlib.py similarity index 100% rename from Lib/test/test_hashlib.py rename to pylib/Lib/test/test_hashlib.py diff --git a/Lib/test/test_heapq.py b/pylib/Lib/test/test_heapq.py similarity index 100% rename from Lib/test/test_heapq.py rename to pylib/Lib/test/test_heapq.py diff --git a/Lib/test/test_hmac.py b/pylib/Lib/test/test_hmac.py similarity index 100% rename from Lib/test/test_hmac.py rename to pylib/Lib/test/test_hmac.py diff --git a/Lib/test/test_html.py b/pylib/Lib/test/test_html.py similarity index 100% rename from Lib/test/test_html.py rename to pylib/Lib/test/test_html.py diff --git a/Lib/test/test_htmlparser.py b/pylib/Lib/test/test_htmlparser.py similarity index 100% rename from Lib/test/test_htmlparser.py rename to pylib/Lib/test/test_htmlparser.py diff --git a/Lib/test/test_http_cookiejar.py b/pylib/Lib/test/test_http_cookiejar.py similarity index 100% rename from Lib/test/test_http_cookiejar.py rename to pylib/Lib/test/test_http_cookiejar.py diff --git a/Lib/test/test_http_cookies.py b/pylib/Lib/test/test_http_cookies.py similarity index 100% rename from Lib/test/test_http_cookies.py rename to pylib/Lib/test/test_http_cookies.py diff --git a/Lib/test/test_httplib.py b/pylib/Lib/test/test_httplib.py similarity index 100% rename from Lib/test/test_httplib.py rename to pylib/Lib/test/test_httplib.py diff --git a/Lib/test/test_httpservers.py b/pylib/Lib/test/test_httpservers.py similarity index 100% rename from Lib/test/test_httpservers.py rename to pylib/Lib/test/test_httpservers.py diff --git a/Lib/test/test_import/__init__.py b/pylib/Lib/test/test_import/__init__.py similarity index 100% rename from Lib/test/test_import/__init__.py rename to pylib/Lib/test/test_import/__init__.py diff --git a/Lib/test/test_import/__main__.py b/pylib/Lib/test/test_import/__main__.py similarity index 100% rename from Lib/test/test_import/__main__.py rename to pylib/Lib/test/test_import/__main__.py diff --git a/Lib/test/test_import/data/circular_imports/basic.py b/pylib/Lib/test/test_import/data/circular_imports/basic.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/basic.py rename to pylib/Lib/test/test_import/data/circular_imports/basic.py diff --git a/Lib/test/test_import/data/circular_imports/basic2.py b/pylib/Lib/test/test_import/data/circular_imports/basic2.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/basic2.py rename to pylib/Lib/test/test_import/data/circular_imports/basic2.py diff --git a/Lib/test/test_import/data/circular_imports/binding.py b/pylib/Lib/test/test_import/data/circular_imports/binding.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/binding.py rename to pylib/Lib/test/test_import/data/circular_imports/binding.py diff --git a/Lib/test/test_import/data/circular_imports/binding2.py b/pylib/Lib/test/test_import/data/circular_imports/binding2.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/binding2.py rename to pylib/Lib/test/test_import/data/circular_imports/binding2.py diff --git a/Lib/test/test_import/data/circular_imports/from_cycle1.py b/pylib/Lib/test/test_import/data/circular_imports/from_cycle1.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/from_cycle1.py rename to pylib/Lib/test/test_import/data/circular_imports/from_cycle1.py diff --git a/Lib/test/test_import/data/circular_imports/from_cycle2.py b/pylib/Lib/test/test_import/data/circular_imports/from_cycle2.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/from_cycle2.py rename to pylib/Lib/test/test_import/data/circular_imports/from_cycle2.py diff --git a/Lib/test/test_import/data/circular_imports/indirect.py b/pylib/Lib/test/test_import/data/circular_imports/indirect.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/indirect.py rename to pylib/Lib/test/test_import/data/circular_imports/indirect.py diff --git a/Lib/test/test_import/data/circular_imports/rebinding.py b/pylib/Lib/test/test_import/data/circular_imports/rebinding.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/rebinding.py rename to pylib/Lib/test/test_import/data/circular_imports/rebinding.py diff --git a/Lib/test/test_import/data/circular_imports/rebinding2.py b/pylib/Lib/test/test_import/data/circular_imports/rebinding2.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/rebinding2.py rename to pylib/Lib/test/test_import/data/circular_imports/rebinding2.py diff --git a/Lib/test/test_import/data/circular_imports/source.py b/pylib/Lib/test/test_import/data/circular_imports/source.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/source.py rename to pylib/Lib/test/test_import/data/circular_imports/source.py diff --git a/Lib/test/test_import/data/circular_imports/subpackage.py b/pylib/Lib/test/test_import/data/circular_imports/subpackage.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/subpackage.py rename to pylib/Lib/test/test_import/data/circular_imports/subpackage.py diff --git a/Lib/test/test_import/data/circular_imports/subpkg/subpackage2.py b/pylib/Lib/test/test_import/data/circular_imports/subpkg/subpackage2.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/subpkg/subpackage2.py rename to pylib/Lib/test/test_import/data/circular_imports/subpkg/subpackage2.py diff --git a/Lib/test/test_import/data/circular_imports/subpkg/util.py b/pylib/Lib/test/test_import/data/circular_imports/subpkg/util.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/subpkg/util.py rename to pylib/Lib/test/test_import/data/circular_imports/subpkg/util.py diff --git a/Lib/test/test_import/data/circular_imports/subpkg2/__init__.py b/pylib/Lib/test/test_import/data/circular_imports/subpkg2/__init__.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/subpkg2/__init__.py rename to pylib/Lib/test/test_import/data/circular_imports/subpkg2/__init__.py diff --git a/Lib/test/test_import/data/circular_imports/subpkg2/parent/__init__.py b/pylib/Lib/test/test_import/data/circular_imports/subpkg2/parent/__init__.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/subpkg2/parent/__init__.py rename to pylib/Lib/test/test_import/data/circular_imports/subpkg2/parent/__init__.py diff --git a/Lib/test/test_import/data/circular_imports/subpkg2/parent/child.py b/pylib/Lib/test/test_import/data/circular_imports/subpkg2/parent/child.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/subpkg2/parent/child.py rename to pylib/Lib/test/test_import/data/circular_imports/subpkg2/parent/child.py diff --git a/Lib/test/test_import/data/circular_imports/use.py b/pylib/Lib/test/test_import/data/circular_imports/use.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/use.py rename to pylib/Lib/test/test_import/data/circular_imports/use.py diff --git a/Lib/test/test_import/data/circular_imports/util.py b/pylib/Lib/test/test_import/data/circular_imports/util.py similarity index 100% rename from Lib/test/test_import/data/circular_imports/util.py rename to pylib/Lib/test/test_import/data/circular_imports/util.py diff --git a/Lib/test/test_import/data/package/__init__.py b/pylib/Lib/test/test_import/data/package/__init__.py similarity index 100% rename from Lib/test/test_import/data/package/__init__.py rename to pylib/Lib/test/test_import/data/package/__init__.py diff --git a/Lib/test/test_import/data/package/submodule.py b/pylib/Lib/test/test_import/data/package/submodule.py similarity index 100% rename from Lib/test/test_import/data/package/submodule.py rename to pylib/Lib/test/test_import/data/package/submodule.py diff --git a/Lib/test/test_import/data/package2/submodule1.py b/pylib/Lib/test/test_import/data/package2/submodule1.py similarity index 100% rename from Lib/test/test_import/data/package2/submodule1.py rename to pylib/Lib/test/test_import/data/package2/submodule1.py diff --git a/Lib/test/test_import/data/package2/submodule2.py b/pylib/Lib/test/test_import/data/package2/submodule2.py similarity index 100% rename from Lib/test/test_import/data/package2/submodule2.py rename to pylib/Lib/test/test_import/data/package2/submodule2.py diff --git a/Lib/test/test_import/data/unwritable/__init__.py b/pylib/Lib/test/test_import/data/unwritable/__init__.py similarity index 100% rename from Lib/test/test_import/data/unwritable/__init__.py rename to pylib/Lib/test/test_import/data/unwritable/__init__.py diff --git a/Lib/test/test_import/data/unwritable/x.py b/pylib/Lib/test/test_import/data/unwritable/x.py similarity index 100% rename from Lib/test/test_import/data/unwritable/x.py rename to pylib/Lib/test/test_import/data/unwritable/x.py diff --git a/Lib/test/test_importlib/__init__.py b/pylib/Lib/test/test_importlib/__init__.py similarity index 100% rename from Lib/test/test_importlib/__init__.py rename to pylib/Lib/test/test_importlib/__init__.py diff --git a/Lib/test/test_importlib/__main__.py b/pylib/Lib/test/test_importlib/__main__.py similarity index 100% rename from Lib/test/test_importlib/__main__.py rename to pylib/Lib/test/test_importlib/__main__.py diff --git a/Lib/test/test_importlib/_context.py b/pylib/Lib/test/test_importlib/_context.py similarity index 100% rename from Lib/test/test_importlib/_context.py rename to pylib/Lib/test/test_importlib/_context.py diff --git a/Lib/test/test_importlib/_path.py b/pylib/Lib/test/test_importlib/_path.py similarity index 100% rename from Lib/test/test_importlib/_path.py rename to pylib/Lib/test/test_importlib/_path.py diff --git a/Lib/test/test_importlib/abc.py b/pylib/Lib/test/test_importlib/abc.py similarity index 100% rename from Lib/test/test_importlib/abc.py rename to pylib/Lib/test/test_importlib/abc.py diff --git a/Lib/test/test_importlib/builtin/__init__.py b/pylib/Lib/test/test_importlib/builtin/__init__.py similarity index 100% rename from Lib/test/test_importlib/builtin/__init__.py rename to pylib/Lib/test/test_importlib/builtin/__init__.py diff --git a/Lib/test/test_importlib/builtin/__main__.py b/pylib/Lib/test/test_importlib/builtin/__main__.py similarity index 100% rename from Lib/test/test_importlib/builtin/__main__.py rename to pylib/Lib/test/test_importlib/builtin/__main__.py diff --git a/Lib/test/test_importlib/builtin/test_finder.py b/pylib/Lib/test/test_importlib/builtin/test_finder.py similarity index 100% rename from Lib/test/test_importlib/builtin/test_finder.py rename to pylib/Lib/test/test_importlib/builtin/test_finder.py diff --git a/Lib/test/test_importlib/builtin/test_loader.py b/pylib/Lib/test/test_importlib/builtin/test_loader.py similarity index 100% rename from Lib/test/test_importlib/builtin/test_loader.py rename to pylib/Lib/test/test_importlib/builtin/test_loader.py diff --git a/Lib/test/test_importlib/data/__init__.py b/pylib/Lib/test/test_importlib/data/__init__.py similarity index 100% rename from Lib/test/test_importlib/data/__init__.py rename to pylib/Lib/test/test_importlib/data/__init__.py diff --git a/Lib/test/test_importlib/data/example-21.12-py3-none-any.whl b/pylib/Lib/test/test_importlib/data/example-21.12-py3-none-any.whl similarity index 100% rename from Lib/test/test_importlib/data/example-21.12-py3-none-any.whl rename to pylib/Lib/test/test_importlib/data/example-21.12-py3-none-any.whl diff --git a/Lib/test/test_importlib/data/example-21.12-py3.6.egg b/pylib/Lib/test/test_importlib/data/example-21.12-py3.6.egg similarity index 100% rename from Lib/test/test_importlib/data/example-21.12-py3.6.egg rename to pylib/Lib/test/test_importlib/data/example-21.12-py3.6.egg diff --git a/Lib/test/test_importlib/data/example2-1.0.0-py3-none-any.whl b/pylib/Lib/test/test_importlib/data/example2-1.0.0-py3-none-any.whl similarity index 100% rename from Lib/test/test_importlib/data/example2-1.0.0-py3-none-any.whl rename to pylib/Lib/test/test_importlib/data/example2-1.0.0-py3-none-any.whl diff --git a/Lib/test/test_importlib/data01/binary.file b/pylib/Lib/test/test_importlib/data01/binary.file similarity index 100% rename from Lib/test/test_importlib/data01/binary.file rename to pylib/Lib/test/test_importlib/data01/binary.file diff --git a/Lib/test/test_importlib/data01/subdirectory/binary.file b/pylib/Lib/test/test_importlib/data01/subdirectory/binary.file similarity index 100% rename from Lib/test/test_importlib/data01/subdirectory/binary.file rename to pylib/Lib/test/test_importlib/data01/subdirectory/binary.file diff --git a/Lib/test/test_importlib/data01/utf-16.file b/pylib/Lib/test/test_importlib/data01/utf-16.file similarity index 100% rename from Lib/test/test_importlib/data01/utf-16.file rename to pylib/Lib/test/test_importlib/data01/utf-16.file diff --git a/Lib/test/test_importlib/extension/__init__.py b/pylib/Lib/test/test_importlib/extension/__init__.py similarity index 100% rename from Lib/test/test_importlib/extension/__init__.py rename to pylib/Lib/test/test_importlib/extension/__init__.py diff --git a/Lib/test/test_importlib/extension/__main__.py b/pylib/Lib/test/test_importlib/extension/__main__.py similarity index 100% rename from Lib/test/test_importlib/extension/__main__.py rename to pylib/Lib/test/test_importlib/extension/__main__.py diff --git a/Lib/test/test_importlib/extension/test_case_sensitivity.py b/pylib/Lib/test/test_importlib/extension/test_case_sensitivity.py similarity index 100% rename from Lib/test/test_importlib/extension/test_case_sensitivity.py rename to pylib/Lib/test/test_importlib/extension/test_case_sensitivity.py diff --git a/Lib/test/test_importlib/extension/test_finder.py b/pylib/Lib/test/test_importlib/extension/test_finder.py similarity index 100% rename from Lib/test/test_importlib/extension/test_finder.py rename to pylib/Lib/test/test_importlib/extension/test_finder.py diff --git a/Lib/test/test_importlib/extension/test_loader.py b/pylib/Lib/test/test_importlib/extension/test_loader.py similarity index 100% rename from Lib/test/test_importlib/extension/test_loader.py rename to pylib/Lib/test/test_importlib/extension/test_loader.py diff --git a/Lib/test/test_importlib/extension/test_path_hook.py b/pylib/Lib/test/test_importlib/extension/test_path_hook.py similarity index 100% rename from Lib/test/test_importlib/extension/test_path_hook.py rename to pylib/Lib/test/test_importlib/extension/test_path_hook.py diff --git a/Lib/test/test_importlib/fixtures.py b/pylib/Lib/test/test_importlib/fixtures.py similarity index 100% rename from Lib/test/test_importlib/fixtures.py rename to pylib/Lib/test/test_importlib/fixtures.py diff --git a/Lib/test/test_importlib/frozen/__init__.py b/pylib/Lib/test/test_importlib/frozen/__init__.py similarity index 100% rename from Lib/test/test_importlib/frozen/__init__.py rename to pylib/Lib/test/test_importlib/frozen/__init__.py diff --git a/Lib/test/test_importlib/frozen/__main__.py b/pylib/Lib/test/test_importlib/frozen/__main__.py similarity index 100% rename from Lib/test/test_importlib/frozen/__main__.py rename to pylib/Lib/test/test_importlib/frozen/__main__.py diff --git a/Lib/test/test_importlib/frozen/test_finder.py b/pylib/Lib/test/test_importlib/frozen/test_finder.py similarity index 100% rename from Lib/test/test_importlib/frozen/test_finder.py rename to pylib/Lib/test/test_importlib/frozen/test_finder.py diff --git a/Lib/test/test_importlib/frozen/test_loader.py b/pylib/Lib/test/test_importlib/frozen/test_loader.py similarity index 100% rename from Lib/test/test_importlib/frozen/test_loader.py rename to pylib/Lib/test/test_importlib/frozen/test_loader.py diff --git a/Lib/test/test_importlib/import_/__init__.py b/pylib/Lib/test/test_importlib/import_/__init__.py similarity index 100% rename from Lib/test/test_importlib/import_/__init__.py rename to pylib/Lib/test/test_importlib/import_/__init__.py diff --git a/Lib/test/test_importlib/import_/__main__.py b/pylib/Lib/test/test_importlib/import_/__main__.py similarity index 100% rename from Lib/test/test_importlib/import_/__main__.py rename to pylib/Lib/test/test_importlib/import_/__main__.py diff --git a/Lib/test/test_importlib/import_/test___loader__.py b/pylib/Lib/test/test_importlib/import_/test___loader__.py similarity index 100% rename from Lib/test/test_importlib/import_/test___loader__.py rename to pylib/Lib/test/test_importlib/import_/test___loader__.py diff --git a/Lib/test/test_importlib/import_/test___package__.py b/pylib/Lib/test/test_importlib/import_/test___package__.py similarity index 100% rename from Lib/test/test_importlib/import_/test___package__.py rename to pylib/Lib/test/test_importlib/import_/test___package__.py diff --git a/Lib/test/test_importlib/import_/test_api.py b/pylib/Lib/test/test_importlib/import_/test_api.py similarity index 100% rename from Lib/test/test_importlib/import_/test_api.py rename to pylib/Lib/test/test_importlib/import_/test_api.py diff --git a/Lib/test/test_importlib/import_/test_caching.py b/pylib/Lib/test/test_importlib/import_/test_caching.py similarity index 100% rename from Lib/test/test_importlib/import_/test_caching.py rename to pylib/Lib/test/test_importlib/import_/test_caching.py diff --git a/Lib/test/test_importlib/import_/test_fromlist.py b/pylib/Lib/test/test_importlib/import_/test_fromlist.py similarity index 100% rename from Lib/test/test_importlib/import_/test_fromlist.py rename to pylib/Lib/test/test_importlib/import_/test_fromlist.py diff --git a/Lib/test/test_importlib/import_/test_helpers.py b/pylib/Lib/test/test_importlib/import_/test_helpers.py similarity index 100% rename from Lib/test/test_importlib/import_/test_helpers.py rename to pylib/Lib/test/test_importlib/import_/test_helpers.py diff --git a/Lib/test/test_importlib/import_/test_meta_path.py b/pylib/Lib/test/test_importlib/import_/test_meta_path.py similarity index 100% rename from Lib/test/test_importlib/import_/test_meta_path.py rename to pylib/Lib/test/test_importlib/import_/test_meta_path.py diff --git a/Lib/test/test_importlib/import_/test_packages.py b/pylib/Lib/test/test_importlib/import_/test_packages.py similarity index 100% rename from Lib/test/test_importlib/import_/test_packages.py rename to pylib/Lib/test/test_importlib/import_/test_packages.py diff --git a/Lib/test/test_importlib/import_/test_path.py b/pylib/Lib/test/test_importlib/import_/test_path.py similarity index 100% rename from Lib/test/test_importlib/import_/test_path.py rename to pylib/Lib/test/test_importlib/import_/test_path.py diff --git a/Lib/test/test_importlib/import_/test_relative_imports.py b/pylib/Lib/test/test_importlib/import_/test_relative_imports.py similarity index 100% rename from Lib/test/test_importlib/import_/test_relative_imports.py rename to pylib/Lib/test/test_importlib/import_/test_relative_imports.py diff --git a/Lib/test/test_importlib/namespace_pkgs/both_portions/foo/one.py b/pylib/Lib/test/test_importlib/namespace_pkgs/both_portions/foo/one.py similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/both_portions/foo/one.py rename to pylib/Lib/test/test_importlib/namespace_pkgs/both_portions/foo/one.py diff --git a/Lib/test/test_importlib/namespace_pkgs/both_portions/foo/two.py b/pylib/Lib/test/test_importlib/namespace_pkgs/both_portions/foo/two.py similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/both_portions/foo/two.py rename to pylib/Lib/test/test_importlib/namespace_pkgs/both_portions/foo/two.py diff --git a/Lib/test/test_importlib/namespace_pkgs/missing_directory.zip b/pylib/Lib/test/test_importlib/namespace_pkgs/missing_directory.zip similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/missing_directory.zip rename to pylib/Lib/test/test_importlib/namespace_pkgs/missing_directory.zip diff --git a/Lib/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test.py b/pylib/Lib/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test.py similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test.py rename to pylib/Lib/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test.py diff --git a/Lib/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test/empty b/pylib/Lib/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test/empty similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test/empty rename to pylib/Lib/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test/empty diff --git a/Lib/test/test_importlib/namespace_pkgs/nested_portion1.zip b/pylib/Lib/test/test_importlib/namespace_pkgs/nested_portion1.zip similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/nested_portion1.zip rename to pylib/Lib/test/test_importlib/namespace_pkgs/nested_portion1.zip diff --git a/Lib/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/__init__.py b/pylib/Lib/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/__init__.py similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/__init__.py rename to pylib/Lib/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/__init__.py diff --git a/Lib/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/one.py b/pylib/Lib/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/one.py similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/one.py rename to pylib/Lib/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/one.py diff --git a/Lib/test/test_importlib/namespace_pkgs/portion1/foo/one.py b/pylib/Lib/test/test_importlib/namespace_pkgs/portion1/foo/one.py similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/portion1/foo/one.py rename to pylib/Lib/test/test_importlib/namespace_pkgs/portion1/foo/one.py diff --git a/Lib/test/test_importlib/namespace_pkgs/portion2/foo/two.py b/pylib/Lib/test/test_importlib/namespace_pkgs/portion2/foo/two.py similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/portion2/foo/two.py rename to pylib/Lib/test/test_importlib/namespace_pkgs/portion2/foo/two.py diff --git a/Lib/test/test_importlib/namespace_pkgs/project1/parent/child/one.py b/pylib/Lib/test/test_importlib/namespace_pkgs/project1/parent/child/one.py similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/project1/parent/child/one.py rename to pylib/Lib/test/test_importlib/namespace_pkgs/project1/parent/child/one.py diff --git a/Lib/test/test_importlib/namespace_pkgs/project2/parent/child/two.py b/pylib/Lib/test/test_importlib/namespace_pkgs/project2/parent/child/two.py similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/project2/parent/child/two.py rename to pylib/Lib/test/test_importlib/namespace_pkgs/project2/parent/child/two.py diff --git a/Lib/test/test_importlib/namespace_pkgs/project3/parent/child/three.py b/pylib/Lib/test/test_importlib/namespace_pkgs/project3/parent/child/three.py similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/project3/parent/child/three.py rename to pylib/Lib/test/test_importlib/namespace_pkgs/project3/parent/child/three.py diff --git a/Lib/test/test_importlib/namespace_pkgs/top_level_portion1.zip b/pylib/Lib/test/test_importlib/namespace_pkgs/top_level_portion1.zip similarity index 100% rename from Lib/test/test_importlib/namespace_pkgs/top_level_portion1.zip rename to pylib/Lib/test/test_importlib/namespace_pkgs/top_level_portion1.zip diff --git a/Lib/test/test_importlib/namespacedata01/binary.file b/pylib/Lib/test/test_importlib/namespacedata01/binary.file similarity index 100% rename from Lib/test/test_importlib/namespacedata01/binary.file rename to pylib/Lib/test/test_importlib/namespacedata01/binary.file diff --git a/Lib/test/test_importlib/namespacedata01/utf-16.file b/pylib/Lib/test/test_importlib/namespacedata01/utf-16.file similarity index 100% rename from Lib/test/test_importlib/namespacedata01/utf-16.file rename to pylib/Lib/test/test_importlib/namespacedata01/utf-16.file diff --git a/Lib/test/test_importlib/partial/cfimport.py b/pylib/Lib/test/test_importlib/partial/cfimport.py similarity index 100% rename from Lib/test/test_importlib/partial/cfimport.py rename to pylib/Lib/test/test_importlib/partial/cfimport.py diff --git a/Lib/test/test_importlib/partial/pool_in_threads.py b/pylib/Lib/test/test_importlib/partial/pool_in_threads.py similarity index 100% rename from Lib/test/test_importlib/partial/pool_in_threads.py rename to pylib/Lib/test/test_importlib/partial/pool_in_threads.py diff --git a/Lib/test/test_importlib/resources/__init__.py b/pylib/Lib/test/test_importlib/resources/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/__init__.py rename to pylib/Lib/test/test_importlib/resources/__init__.py diff --git a/Lib/test/test_importlib/resources/_path.py b/pylib/Lib/test/test_importlib/resources/_path.py similarity index 100% rename from Lib/test/test_importlib/resources/_path.py rename to pylib/Lib/test/test_importlib/resources/_path.py diff --git a/Lib/test/test_importlib/resources/data01/__init__.py b/pylib/Lib/test/test_importlib/resources/data01/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data01/__init__.py rename to pylib/Lib/test/test_importlib/resources/data01/__init__.py diff --git a/Lib/test/test_importlib/resources/data01/binary.file b/pylib/Lib/test/test_importlib/resources/data01/binary.file similarity index 100% rename from Lib/test/test_importlib/resources/data01/binary.file rename to pylib/Lib/test/test_importlib/resources/data01/binary.file diff --git a/Lib/test/test_importlib/resources/data01/subdirectory/__init__.py b/pylib/Lib/test/test_importlib/resources/data01/subdirectory/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data01/subdirectory/__init__.py rename to pylib/Lib/test/test_importlib/resources/data01/subdirectory/__init__.py diff --git a/Lib/test/test_importlib/resources/data01/subdirectory/binary.file b/pylib/Lib/test/test_importlib/resources/data01/subdirectory/binary.file similarity index 100% rename from Lib/test/test_importlib/resources/data01/subdirectory/binary.file rename to pylib/Lib/test/test_importlib/resources/data01/subdirectory/binary.file diff --git a/Lib/test/test_importlib/resources/data01/utf-16.file b/pylib/Lib/test/test_importlib/resources/data01/utf-16.file similarity index 100% rename from Lib/test/test_importlib/resources/data01/utf-16.file rename to pylib/Lib/test/test_importlib/resources/data01/utf-16.file diff --git a/Lib/test/test_importlib/resources/data01/utf-8.file b/pylib/Lib/test/test_importlib/resources/data01/utf-8.file similarity index 100% rename from Lib/test/test_importlib/resources/data01/utf-8.file rename to pylib/Lib/test/test_importlib/resources/data01/utf-8.file diff --git a/Lib/test/test_importlib/resources/data02/__init__.py b/pylib/Lib/test/test_importlib/resources/data02/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data02/__init__.py rename to pylib/Lib/test/test_importlib/resources/data02/__init__.py diff --git a/Lib/test/test_importlib/resources/data02/one/__init__.py b/pylib/Lib/test/test_importlib/resources/data02/one/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data02/one/__init__.py rename to pylib/Lib/test/test_importlib/resources/data02/one/__init__.py diff --git a/Lib/test/test_importlib/resources/data02/one/resource1.txt b/pylib/Lib/test/test_importlib/resources/data02/one/resource1.txt similarity index 100% rename from Lib/test/test_importlib/resources/data02/one/resource1.txt rename to pylib/Lib/test/test_importlib/resources/data02/one/resource1.txt diff --git a/Lib/test/test_importlib/resources/data02/subdirectory/subsubdir/resource.txt b/pylib/Lib/test/test_importlib/resources/data02/subdirectory/subsubdir/resource.txt similarity index 100% rename from Lib/test/test_importlib/resources/data02/subdirectory/subsubdir/resource.txt rename to pylib/Lib/test/test_importlib/resources/data02/subdirectory/subsubdir/resource.txt diff --git a/Lib/test/test_importlib/resources/data02/two/__init__.py b/pylib/Lib/test/test_importlib/resources/data02/two/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data02/two/__init__.py rename to pylib/Lib/test/test_importlib/resources/data02/two/__init__.py diff --git a/Lib/test/test_importlib/resources/data02/two/resource2.txt b/pylib/Lib/test/test_importlib/resources/data02/two/resource2.txt similarity index 100% rename from Lib/test/test_importlib/resources/data02/two/resource2.txt rename to pylib/Lib/test/test_importlib/resources/data02/two/resource2.txt diff --git a/Lib/test/test_importlib/resources/data03/__init__.py b/pylib/Lib/test/test_importlib/resources/data03/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data03/__init__.py rename to pylib/Lib/test/test_importlib/resources/data03/__init__.py diff --git a/Lib/test/test_importlib/resources/data03/namespace/portion1/__init__.py b/pylib/Lib/test/test_importlib/resources/data03/namespace/portion1/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data03/namespace/portion1/__init__.py rename to pylib/Lib/test/test_importlib/resources/data03/namespace/portion1/__init__.py diff --git a/Lib/test/test_importlib/resources/data03/namespace/portion2/__init__.py b/pylib/Lib/test/test_importlib/resources/data03/namespace/portion2/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/data03/namespace/portion2/__init__.py rename to pylib/Lib/test/test_importlib/resources/data03/namespace/portion2/__init__.py diff --git a/Lib/test/test_importlib/resources/data03/namespace/resource1.txt b/pylib/Lib/test/test_importlib/resources/data03/namespace/resource1.txt similarity index 100% rename from Lib/test/test_importlib/resources/data03/namespace/resource1.txt rename to pylib/Lib/test/test_importlib/resources/data03/namespace/resource1.txt diff --git a/Lib/test/test_importlib/resources/namespacedata01/binary.file b/pylib/Lib/test/test_importlib/resources/namespacedata01/binary.file similarity index 100% rename from Lib/test/test_importlib/resources/namespacedata01/binary.file rename to pylib/Lib/test/test_importlib/resources/namespacedata01/binary.file diff --git a/Lib/test/test_importlib/resources/namespacedata01/utf-16.file b/pylib/Lib/test/test_importlib/resources/namespacedata01/utf-16.file similarity index 100% rename from Lib/test/test_importlib/resources/namespacedata01/utf-16.file rename to pylib/Lib/test/test_importlib/resources/namespacedata01/utf-16.file diff --git a/Lib/test/test_importlib/resources/namespacedata01/utf-8.file b/pylib/Lib/test/test_importlib/resources/namespacedata01/utf-8.file similarity index 100% rename from Lib/test/test_importlib/resources/namespacedata01/utf-8.file rename to pylib/Lib/test/test_importlib/resources/namespacedata01/utf-8.file diff --git a/Lib/test/test_importlib/resources/test_compatibilty_files.py b/pylib/Lib/test/test_importlib/resources/test_compatibilty_files.py similarity index 100% rename from Lib/test/test_importlib/resources/test_compatibilty_files.py rename to pylib/Lib/test/test_importlib/resources/test_compatibilty_files.py diff --git a/Lib/test/test_importlib/resources/test_contents.py b/pylib/Lib/test/test_importlib/resources/test_contents.py similarity index 100% rename from Lib/test/test_importlib/resources/test_contents.py rename to pylib/Lib/test/test_importlib/resources/test_contents.py diff --git a/Lib/test/test_importlib/resources/test_custom.py b/pylib/Lib/test/test_importlib/resources/test_custom.py similarity index 100% rename from Lib/test/test_importlib/resources/test_custom.py rename to pylib/Lib/test/test_importlib/resources/test_custom.py diff --git a/Lib/test/test_importlib/resources/test_files.py b/pylib/Lib/test/test_importlib/resources/test_files.py similarity index 100% rename from Lib/test/test_importlib/resources/test_files.py rename to pylib/Lib/test/test_importlib/resources/test_files.py diff --git a/Lib/test/test_importlib/resources/test_open.py b/pylib/Lib/test/test_importlib/resources/test_open.py similarity index 100% rename from Lib/test/test_importlib/resources/test_open.py rename to pylib/Lib/test/test_importlib/resources/test_open.py diff --git a/Lib/test/test_importlib/resources/test_path.py b/pylib/Lib/test/test_importlib/resources/test_path.py similarity index 100% rename from Lib/test/test_importlib/resources/test_path.py rename to pylib/Lib/test/test_importlib/resources/test_path.py diff --git a/Lib/test/test_importlib/resources/test_read.py b/pylib/Lib/test/test_importlib/resources/test_read.py similarity index 100% rename from Lib/test/test_importlib/resources/test_read.py rename to pylib/Lib/test/test_importlib/resources/test_read.py diff --git a/Lib/test/test_importlib/resources/test_reader.py b/pylib/Lib/test/test_importlib/resources/test_reader.py similarity index 100% rename from Lib/test/test_importlib/resources/test_reader.py rename to pylib/Lib/test/test_importlib/resources/test_reader.py diff --git a/Lib/test/test_importlib/resources/test_resource.py b/pylib/Lib/test/test_importlib/resources/test_resource.py similarity index 100% rename from Lib/test/test_importlib/resources/test_resource.py rename to pylib/Lib/test/test_importlib/resources/test_resource.py diff --git a/Lib/test/test_importlib/resources/update-zips.py b/pylib/Lib/test/test_importlib/resources/update-zips.py similarity index 100% rename from Lib/test/test_importlib/resources/update-zips.py rename to pylib/Lib/test/test_importlib/resources/update-zips.py diff --git a/Lib/test/test_importlib/resources/util.py b/pylib/Lib/test/test_importlib/resources/util.py similarity index 100% rename from Lib/test/test_importlib/resources/util.py rename to pylib/Lib/test/test_importlib/resources/util.py diff --git a/Lib/test/test_importlib/resources/zipdata01/__init__.py b/pylib/Lib/test/test_importlib/resources/zipdata01/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/zipdata01/__init__.py rename to pylib/Lib/test/test_importlib/resources/zipdata01/__init__.py diff --git a/Lib/test/test_importlib/resources/zipdata01/ziptestdata.zip b/pylib/Lib/test/test_importlib/resources/zipdata01/ziptestdata.zip similarity index 100% rename from Lib/test/test_importlib/resources/zipdata01/ziptestdata.zip rename to pylib/Lib/test/test_importlib/resources/zipdata01/ziptestdata.zip diff --git a/Lib/test/test_importlib/resources/zipdata02/__init__.py b/pylib/Lib/test/test_importlib/resources/zipdata02/__init__.py similarity index 100% rename from Lib/test/test_importlib/resources/zipdata02/__init__.py rename to pylib/Lib/test/test_importlib/resources/zipdata02/__init__.py diff --git a/Lib/test/test_importlib/resources/zipdata02/ziptestdata.zip b/pylib/Lib/test/test_importlib/resources/zipdata02/ziptestdata.zip similarity index 100% rename from Lib/test/test_importlib/resources/zipdata02/ziptestdata.zip rename to pylib/Lib/test/test_importlib/resources/zipdata02/ziptestdata.zip diff --git a/Lib/test/test_importlib/source/__init__.py b/pylib/Lib/test/test_importlib/source/__init__.py similarity index 100% rename from Lib/test/test_importlib/source/__init__.py rename to pylib/Lib/test/test_importlib/source/__init__.py diff --git a/Lib/test/test_importlib/source/__main__.py b/pylib/Lib/test/test_importlib/source/__main__.py similarity index 100% rename from Lib/test/test_importlib/source/__main__.py rename to pylib/Lib/test/test_importlib/source/__main__.py diff --git a/Lib/test/test_importlib/source/test_case_sensitivity.py b/pylib/Lib/test/test_importlib/source/test_case_sensitivity.py similarity index 100% rename from Lib/test/test_importlib/source/test_case_sensitivity.py rename to pylib/Lib/test/test_importlib/source/test_case_sensitivity.py diff --git a/Lib/test/test_importlib/source/test_file_loader.py b/pylib/Lib/test/test_importlib/source/test_file_loader.py similarity index 100% rename from Lib/test/test_importlib/source/test_file_loader.py rename to pylib/Lib/test/test_importlib/source/test_file_loader.py diff --git a/Lib/test/test_importlib/source/test_finder.py b/pylib/Lib/test/test_importlib/source/test_finder.py similarity index 100% rename from Lib/test/test_importlib/source/test_finder.py rename to pylib/Lib/test/test_importlib/source/test_finder.py diff --git a/Lib/test/test_importlib/source/test_path_hook.py b/pylib/Lib/test/test_importlib/source/test_path_hook.py similarity index 100% rename from Lib/test/test_importlib/source/test_path_hook.py rename to pylib/Lib/test/test_importlib/source/test_path_hook.py diff --git a/Lib/test/test_importlib/source/test_source_encoding.py b/pylib/Lib/test/test_importlib/source/test_source_encoding.py similarity index 100% rename from Lib/test/test_importlib/source/test_source_encoding.py rename to pylib/Lib/test/test_importlib/source/test_source_encoding.py diff --git a/Lib/test/test_importlib/stubs.py b/pylib/Lib/test/test_importlib/stubs.py similarity index 100% rename from Lib/test/test_importlib/stubs.py rename to pylib/Lib/test/test_importlib/stubs.py diff --git a/Lib/test/test_importlib/test_abc.py b/pylib/Lib/test/test_importlib/test_abc.py similarity index 100% rename from Lib/test/test_importlib/test_abc.py rename to pylib/Lib/test/test_importlib/test_abc.py diff --git a/Lib/test/test_importlib/test_api.py b/pylib/Lib/test/test_importlib/test_api.py similarity index 100% rename from Lib/test/test_importlib/test_api.py rename to pylib/Lib/test/test_importlib/test_api.py diff --git a/Lib/test/test_importlib/test_lazy.py b/pylib/Lib/test/test_importlib/test_lazy.py similarity index 100% rename from Lib/test/test_importlib/test_lazy.py rename to pylib/Lib/test/test_importlib/test_lazy.py diff --git a/Lib/test/test_importlib/test_locks.py b/pylib/Lib/test/test_importlib/test_locks.py similarity index 100% rename from Lib/test/test_importlib/test_locks.py rename to pylib/Lib/test/test_importlib/test_locks.py diff --git a/Lib/test/test_importlib/test_main.py b/pylib/Lib/test/test_importlib/test_main.py similarity index 100% rename from Lib/test/test_importlib/test_main.py rename to pylib/Lib/test/test_importlib/test_main.py diff --git a/Lib/test/test_importlib/test_metadata_api.py b/pylib/Lib/test/test_importlib/test_metadata_api.py similarity index 100% rename from Lib/test/test_importlib/test_metadata_api.py rename to pylib/Lib/test/test_importlib/test_metadata_api.py diff --git a/Lib/test/test_importlib/test_namespace_pkgs.py b/pylib/Lib/test/test_importlib/test_namespace_pkgs.py similarity index 100% rename from Lib/test/test_importlib/test_namespace_pkgs.py rename to pylib/Lib/test/test_importlib/test_namespace_pkgs.py diff --git a/Lib/test/test_importlib/test_pkg_import.py b/pylib/Lib/test/test_importlib/test_pkg_import.py similarity index 100% rename from Lib/test/test_importlib/test_pkg_import.py rename to pylib/Lib/test/test_importlib/test_pkg_import.py diff --git a/Lib/test/test_importlib/test_spec.py b/pylib/Lib/test/test_importlib/test_spec.py similarity index 100% rename from Lib/test/test_importlib/test_spec.py rename to pylib/Lib/test/test_importlib/test_spec.py diff --git a/Lib/test/test_importlib/test_threaded_import.py b/pylib/Lib/test/test_importlib/test_threaded_import.py similarity index 100% rename from Lib/test/test_importlib/test_threaded_import.py rename to pylib/Lib/test/test_importlib/test_threaded_import.py diff --git a/Lib/test/test_importlib/test_util.py b/pylib/Lib/test/test_importlib/test_util.py similarity index 100% rename from Lib/test/test_importlib/test_util.py rename to pylib/Lib/test/test_importlib/test_util.py diff --git a/Lib/test/test_importlib/test_windows.py b/pylib/Lib/test/test_importlib/test_windows.py similarity index 100% rename from Lib/test/test_importlib/test_windows.py rename to pylib/Lib/test/test_importlib/test_windows.py diff --git a/Lib/test/test_importlib/test_zip.py b/pylib/Lib/test/test_importlib/test_zip.py similarity index 100% rename from Lib/test/test_importlib/test_zip.py rename to pylib/Lib/test/test_importlib/test_zip.py diff --git a/Lib/test/test_importlib/threaded_import_hangers.py b/pylib/Lib/test/test_importlib/threaded_import_hangers.py similarity index 100% rename from Lib/test/test_importlib/threaded_import_hangers.py rename to pylib/Lib/test/test_importlib/threaded_import_hangers.py diff --git a/Lib/test/test_importlib/util.py b/pylib/Lib/test/test_importlib/util.py similarity index 100% rename from Lib/test/test_importlib/util.py rename to pylib/Lib/test/test_importlib/util.py diff --git a/Lib/test/test_importlib/zipdata01/ziptestdata.zip b/pylib/Lib/test/test_importlib/zipdata01/ziptestdata.zip similarity index 100% rename from Lib/test/test_importlib/zipdata01/ziptestdata.zip rename to pylib/Lib/test/test_importlib/zipdata01/ziptestdata.zip diff --git a/Lib/test/test_importlib/zipdata02/ziptestdata.zip b/pylib/Lib/test/test_importlib/zipdata02/ziptestdata.zip similarity index 100% rename from Lib/test/test_importlib/zipdata02/ziptestdata.zip rename to pylib/Lib/test/test_importlib/zipdata02/ziptestdata.zip diff --git a/Lib/test/test_index.py b/pylib/Lib/test/test_index.py similarity index 100% rename from Lib/test/test_index.py rename to pylib/Lib/test/test_index.py diff --git a/Lib/test/test_int.py b/pylib/Lib/test/test_int.py similarity index 100% rename from Lib/test/test_int.py rename to pylib/Lib/test/test_int.py diff --git a/Lib/test/test_int_literal.py b/pylib/Lib/test/test_int_literal.py similarity index 100% rename from Lib/test/test_int_literal.py rename to pylib/Lib/test/test_int_literal.py diff --git a/Lib/test/test_io.py b/pylib/Lib/test/test_io.py similarity index 100% rename from Lib/test/test_io.py rename to pylib/Lib/test/test_io.py diff --git a/Lib/test/test_ioctl.py b/pylib/Lib/test/test_ioctl.py similarity index 100% rename from Lib/test/test_ioctl.py rename to pylib/Lib/test/test_ioctl.py diff --git a/Lib/test/test_ipaddress.py b/pylib/Lib/test/test_ipaddress.py similarity index 100% rename from Lib/test/test_ipaddress.py rename to pylib/Lib/test/test_ipaddress.py diff --git a/Lib/test/test_isinstance.py b/pylib/Lib/test/test_isinstance.py similarity index 100% rename from Lib/test/test_isinstance.py rename to pylib/Lib/test/test_isinstance.py diff --git a/Lib/test/test_iter.py b/pylib/Lib/test/test_iter.py similarity index 100% rename from Lib/test/test_iter.py rename to pylib/Lib/test/test_iter.py diff --git a/Lib/test/test_iterlen.py b/pylib/Lib/test/test_iterlen.py similarity index 100% rename from Lib/test/test_iterlen.py rename to pylib/Lib/test/test_iterlen.py diff --git a/Lib/test/test_itertools.py b/pylib/Lib/test/test_itertools.py similarity index 100% rename from Lib/test/test_itertools.py rename to pylib/Lib/test/test_itertools.py diff --git a/Lib/test/test_json/__init__.py b/pylib/Lib/test/test_json/__init__.py similarity index 100% rename from Lib/test/test_json/__init__.py rename to pylib/Lib/test/test_json/__init__.py diff --git a/Lib/test/test_json/__main__.py b/pylib/Lib/test/test_json/__main__.py similarity index 100% rename from Lib/test/test_json/__main__.py rename to pylib/Lib/test/test_json/__main__.py diff --git a/Lib/test/test_json/test_decode.py b/pylib/Lib/test/test_json/test_decode.py similarity index 100% rename from Lib/test/test_json/test_decode.py rename to pylib/Lib/test/test_json/test_decode.py diff --git a/Lib/test/test_json/test_default.py b/pylib/Lib/test/test_json/test_default.py similarity index 100% rename from Lib/test/test_json/test_default.py rename to pylib/Lib/test/test_json/test_default.py diff --git a/Lib/test/test_json/test_dump.py b/pylib/Lib/test/test_json/test_dump.py similarity index 100% rename from Lib/test/test_json/test_dump.py rename to pylib/Lib/test/test_json/test_dump.py diff --git a/Lib/test/test_json/test_encode_basestring_ascii.py b/pylib/Lib/test/test_json/test_encode_basestring_ascii.py similarity index 100% rename from Lib/test/test_json/test_encode_basestring_ascii.py rename to pylib/Lib/test/test_json/test_encode_basestring_ascii.py diff --git a/Lib/test/test_json/test_enum.py b/pylib/Lib/test/test_json/test_enum.py similarity index 100% rename from Lib/test/test_json/test_enum.py rename to pylib/Lib/test/test_json/test_enum.py diff --git a/Lib/test/test_json/test_fail.py b/pylib/Lib/test/test_json/test_fail.py similarity index 100% rename from Lib/test/test_json/test_fail.py rename to pylib/Lib/test/test_json/test_fail.py diff --git a/Lib/test/test_json/test_float.py b/pylib/Lib/test/test_json/test_float.py similarity index 100% rename from Lib/test/test_json/test_float.py rename to pylib/Lib/test/test_json/test_float.py diff --git a/Lib/test/test_json/test_indent.py b/pylib/Lib/test/test_json/test_indent.py similarity index 100% rename from Lib/test/test_json/test_indent.py rename to pylib/Lib/test/test_json/test_indent.py diff --git a/Lib/test/test_json/test_pass1.py b/pylib/Lib/test/test_json/test_pass1.py similarity index 100% rename from Lib/test/test_json/test_pass1.py rename to pylib/Lib/test/test_json/test_pass1.py diff --git a/Lib/test/test_json/test_pass2.py b/pylib/Lib/test/test_json/test_pass2.py similarity index 100% rename from Lib/test/test_json/test_pass2.py rename to pylib/Lib/test/test_json/test_pass2.py diff --git a/Lib/test/test_json/test_pass3.py b/pylib/Lib/test/test_json/test_pass3.py similarity index 100% rename from Lib/test/test_json/test_pass3.py rename to pylib/Lib/test/test_json/test_pass3.py diff --git a/Lib/test/test_json/test_recursion.py b/pylib/Lib/test/test_json/test_recursion.py similarity index 100% rename from Lib/test/test_json/test_recursion.py rename to pylib/Lib/test/test_json/test_recursion.py diff --git a/Lib/test/test_json/test_scanstring.py b/pylib/Lib/test/test_json/test_scanstring.py similarity index 100% rename from Lib/test/test_json/test_scanstring.py rename to pylib/Lib/test/test_json/test_scanstring.py diff --git a/Lib/test/test_json/test_separators.py b/pylib/Lib/test/test_json/test_separators.py similarity index 100% rename from Lib/test/test_json/test_separators.py rename to pylib/Lib/test/test_json/test_separators.py diff --git a/Lib/test/test_json/test_speedups.py b/pylib/Lib/test/test_json/test_speedups.py similarity index 100% rename from Lib/test/test_json/test_speedups.py rename to pylib/Lib/test/test_json/test_speedups.py diff --git a/Lib/test/test_json/test_tool.py b/pylib/Lib/test/test_json/test_tool.py similarity index 100% rename from Lib/test/test_json/test_tool.py rename to pylib/Lib/test/test_json/test_tool.py diff --git a/Lib/test/test_json/test_unicode.py b/pylib/Lib/test/test_json/test_unicode.py similarity index 100% rename from Lib/test/test_json/test_unicode.py rename to pylib/Lib/test/test_json/test_unicode.py diff --git a/Lib/test/test_keyword.py b/pylib/Lib/test/test_keyword.py similarity index 100% rename from Lib/test/test_keyword.py rename to pylib/Lib/test/test_keyword.py diff --git a/Lib/test/test_keywordonlyarg.py b/pylib/Lib/test/test_keywordonlyarg.py similarity index 100% rename from Lib/test/test_keywordonlyarg.py rename to pylib/Lib/test/test_keywordonlyarg.py diff --git a/Lib/test/test_kqueue.py b/pylib/Lib/test/test_kqueue.py similarity index 100% rename from Lib/test/test_kqueue.py rename to pylib/Lib/test/test_kqueue.py diff --git a/Lib/test/test_largefile.py b/pylib/Lib/test/test_largefile.py similarity index 100% rename from Lib/test/test_largefile.py rename to pylib/Lib/test/test_largefile.py diff --git a/Lib/test/test_linecache.py b/pylib/Lib/test/test_linecache.py similarity index 100% rename from Lib/test/test_linecache.py rename to pylib/Lib/test/test_linecache.py diff --git a/Lib/test/test_list.py b/pylib/Lib/test/test_list.py similarity index 100% rename from Lib/test/test_list.py rename to pylib/Lib/test/test_list.py diff --git a/Lib/test/test_listcomps.py b/pylib/Lib/test/test_listcomps.py similarity index 100% rename from Lib/test/test_listcomps.py rename to pylib/Lib/test/test_listcomps.py diff --git a/Lib/test/test_locale.py b/pylib/Lib/test/test_locale.py similarity index 100% rename from Lib/test/test_locale.py rename to pylib/Lib/test/test_locale.py diff --git a/Lib/test/test_logging.py b/pylib/Lib/test/test_logging.py similarity index 100% rename from Lib/test/test_logging.py rename to pylib/Lib/test/test_logging.py diff --git a/Lib/test/test_long.py b/pylib/Lib/test/test_long.py similarity index 100% rename from Lib/test/test_long.py rename to pylib/Lib/test/test_long.py diff --git a/Lib/test/test_longexp.py b/pylib/Lib/test/test_longexp.py similarity index 100% rename from Lib/test/test_longexp.py rename to pylib/Lib/test/test_longexp.py diff --git a/Lib/test/test_marshal.py b/pylib/Lib/test/test_marshal.py similarity index 100% rename from Lib/test/test_marshal.py rename to pylib/Lib/test/test_marshal.py diff --git a/Lib/test/test_math.py b/pylib/Lib/test/test_math.py similarity index 100% rename from Lib/test/test_math.py rename to pylib/Lib/test/test_math.py diff --git a/Lib/test/test_memoryio.py b/pylib/Lib/test/test_memoryio.py similarity index 100% rename from Lib/test/test_memoryio.py rename to pylib/Lib/test/test_memoryio.py diff --git a/Lib/test/test_memoryview.py b/pylib/Lib/test/test_memoryview.py similarity index 100% rename from Lib/test/test_memoryview.py rename to pylib/Lib/test/test_memoryview.py diff --git a/Lib/test/test_mimetypes.py b/pylib/Lib/test/test_mimetypes.py similarity index 100% rename from Lib/test/test_mimetypes.py rename to pylib/Lib/test/test_mimetypes.py diff --git a/Lib/test/test_mmap.py b/pylib/Lib/test/test_mmap.py similarity index 100% rename from Lib/test/test_mmap.py rename to pylib/Lib/test/test_mmap.py diff --git a/Lib/test/test_module/__init__.py b/pylib/Lib/test/test_module/__init__.py similarity index 100% rename from Lib/test/test_module/__init__.py rename to pylib/Lib/test/test_module/__init__.py diff --git a/Lib/test/test_module/bad_getattr.py b/pylib/Lib/test/test_module/bad_getattr.py similarity index 100% rename from Lib/test/test_module/bad_getattr.py rename to pylib/Lib/test/test_module/bad_getattr.py diff --git a/Lib/test/test_module/bad_getattr2.py b/pylib/Lib/test/test_module/bad_getattr2.py similarity index 100% rename from Lib/test/test_module/bad_getattr2.py rename to pylib/Lib/test/test_module/bad_getattr2.py diff --git a/Lib/test/test_module/bad_getattr3.py b/pylib/Lib/test/test_module/bad_getattr3.py similarity index 100% rename from Lib/test/test_module/bad_getattr3.py rename to pylib/Lib/test/test_module/bad_getattr3.py diff --git a/Lib/test/test_module/good_getattr.py b/pylib/Lib/test/test_module/good_getattr.py similarity index 100% rename from Lib/test/test_module/good_getattr.py rename to pylib/Lib/test/test_module/good_getattr.py diff --git a/Lib/test/test_multiprocessing_fork/__init__.py b/pylib/Lib/test/test_multiprocessing_fork/__init__.py similarity index 100% rename from Lib/test/test_multiprocessing_fork/__init__.py rename to pylib/Lib/test/test_multiprocessing_fork/__init__.py diff --git a/Lib/test/test_multiprocessing_fork/test_manager.py b/pylib/Lib/test/test_multiprocessing_fork/test_manager.py similarity index 100% rename from Lib/test/test_multiprocessing_fork/test_manager.py rename to pylib/Lib/test/test_multiprocessing_fork/test_manager.py diff --git a/Lib/test/test_multiprocessing_fork/test_misc.py b/pylib/Lib/test/test_multiprocessing_fork/test_misc.py similarity index 100% rename from Lib/test/test_multiprocessing_fork/test_misc.py rename to pylib/Lib/test/test_multiprocessing_fork/test_misc.py diff --git a/Lib/test/test_multiprocessing_fork/test_processes.py b/pylib/Lib/test/test_multiprocessing_fork/test_processes.py similarity index 100% rename from Lib/test/test_multiprocessing_fork/test_processes.py rename to pylib/Lib/test/test_multiprocessing_fork/test_processes.py diff --git a/Lib/test/test_multiprocessing_fork/test_threads.py b/pylib/Lib/test/test_multiprocessing_fork/test_threads.py similarity index 100% rename from Lib/test/test_multiprocessing_fork/test_threads.py rename to pylib/Lib/test/test_multiprocessing_fork/test_threads.py diff --git a/Lib/test/test_multiprocessing_forkserver/__init__.py b/pylib/Lib/test/test_multiprocessing_forkserver/__init__.py similarity index 100% rename from Lib/test/test_multiprocessing_forkserver/__init__.py rename to pylib/Lib/test/test_multiprocessing_forkserver/__init__.py diff --git a/Lib/test/test_multiprocessing_forkserver/test_manager.py b/pylib/Lib/test/test_multiprocessing_forkserver/test_manager.py similarity index 100% rename from Lib/test/test_multiprocessing_forkserver/test_manager.py rename to pylib/Lib/test/test_multiprocessing_forkserver/test_manager.py diff --git a/Lib/test/test_multiprocessing_forkserver/test_misc.py b/pylib/Lib/test/test_multiprocessing_forkserver/test_misc.py similarity index 100% rename from Lib/test/test_multiprocessing_forkserver/test_misc.py rename to pylib/Lib/test/test_multiprocessing_forkserver/test_misc.py diff --git a/Lib/test/test_multiprocessing_forkserver/test_processes.py b/pylib/Lib/test/test_multiprocessing_forkserver/test_processes.py similarity index 100% rename from Lib/test/test_multiprocessing_forkserver/test_processes.py rename to pylib/Lib/test/test_multiprocessing_forkserver/test_processes.py diff --git a/Lib/test/test_multiprocessing_forkserver/test_threads.py b/pylib/Lib/test/test_multiprocessing_forkserver/test_threads.py similarity index 100% rename from Lib/test/test_multiprocessing_forkserver/test_threads.py rename to pylib/Lib/test/test_multiprocessing_forkserver/test_threads.py diff --git a/Lib/test/test_multiprocessing_main_handling.py b/pylib/Lib/test/test_multiprocessing_main_handling.py similarity index 100% rename from Lib/test/test_multiprocessing_main_handling.py rename to pylib/Lib/test/test_multiprocessing_main_handling.py diff --git a/Lib/test/test_multiprocessing_spawn/__init__.py b/pylib/Lib/test/test_multiprocessing_spawn/__init__.py similarity index 100% rename from Lib/test/test_multiprocessing_spawn/__init__.py rename to pylib/Lib/test/test_multiprocessing_spawn/__init__.py diff --git a/Lib/test/test_multiprocessing_spawn/test_manager.py b/pylib/Lib/test/test_multiprocessing_spawn/test_manager.py similarity index 100% rename from Lib/test/test_multiprocessing_spawn/test_manager.py rename to pylib/Lib/test/test_multiprocessing_spawn/test_manager.py diff --git a/Lib/test/test_multiprocessing_spawn/test_misc.py b/pylib/Lib/test/test_multiprocessing_spawn/test_misc.py similarity index 100% rename from Lib/test/test_multiprocessing_spawn/test_misc.py rename to pylib/Lib/test/test_multiprocessing_spawn/test_misc.py diff --git a/Lib/test/test_multiprocessing_spawn/test_processes.py b/pylib/Lib/test/test_multiprocessing_spawn/test_processes.py similarity index 100% rename from Lib/test/test_multiprocessing_spawn/test_processes.py rename to pylib/Lib/test/test_multiprocessing_spawn/test_processes.py diff --git a/Lib/test/test_multiprocessing_spawn/test_threads.py b/pylib/Lib/test/test_multiprocessing_spawn/test_threads.py similarity index 100% rename from Lib/test/test_multiprocessing_spawn/test_threads.py rename to pylib/Lib/test/test_multiprocessing_spawn/test_threads.py diff --git a/Lib/test/test_named_expressions.py b/pylib/Lib/test/test_named_expressions.py similarity index 100% rename from Lib/test/test_named_expressions.py rename to pylib/Lib/test/test_named_expressions.py diff --git a/Lib/test/test_netrc.py b/pylib/Lib/test/test_netrc.py similarity index 100% rename from Lib/test/test_netrc.py rename to pylib/Lib/test/test_netrc.py diff --git a/Lib/test/test_ntpath.py b/pylib/Lib/test/test_ntpath.py similarity index 100% rename from Lib/test/test_ntpath.py rename to pylib/Lib/test/test_ntpath.py diff --git a/Lib/test/test_numeric_tower.py b/pylib/Lib/test/test_numeric_tower.py similarity index 100% rename from Lib/test/test_numeric_tower.py rename to pylib/Lib/test/test_numeric_tower.py diff --git a/Lib/test/test_opcache.py b/pylib/Lib/test/test_opcache.py similarity index 100% rename from Lib/test/test_opcache.py rename to pylib/Lib/test/test_opcache.py diff --git a/Lib/test/test_opcodes.py b/pylib/Lib/test/test_opcodes.py similarity index 100% rename from Lib/test/test_opcodes.py rename to pylib/Lib/test/test_opcodes.py diff --git a/Lib/test/test_openpty.py b/pylib/Lib/test/test_openpty.py similarity index 100% rename from Lib/test/test_openpty.py rename to pylib/Lib/test/test_openpty.py diff --git a/Lib/test/test_operator.py b/pylib/Lib/test/test_operator.py similarity index 100% rename from Lib/test/test_operator.py rename to pylib/Lib/test/test_operator.py diff --git a/Lib/test/test_optparse.py b/pylib/Lib/test/test_optparse.py similarity index 100% rename from Lib/test/test_optparse.py rename to pylib/Lib/test/test_optparse.py diff --git a/Lib/test/test_ordered_dict.py b/pylib/Lib/test/test_ordered_dict.py similarity index 100% rename from Lib/test/test_ordered_dict.py rename to pylib/Lib/test/test_ordered_dict.py diff --git a/Lib/test/test_os.py b/pylib/Lib/test/test_os.py similarity index 100% rename from Lib/test/test_os.py rename to pylib/Lib/test/test_os.py diff --git a/Lib/test/test_pathlib.py b/pylib/Lib/test/test_pathlib.py similarity index 100% rename from Lib/test/test_pathlib.py rename to pylib/Lib/test/test_pathlib.py diff --git a/Lib/test/test_pickle.py b/pylib/Lib/test/test_pickle.py similarity index 100% rename from Lib/test/test_pickle.py rename to pylib/Lib/test/test_pickle.py diff --git a/Lib/test/test_pickletools.py b/pylib/Lib/test/test_pickletools.py similarity index 100% rename from Lib/test/test_pickletools.py rename to pylib/Lib/test/test_pickletools.py diff --git a/Lib/test/test_pkg.py b/pylib/Lib/test/test_pkg.py similarity index 100% rename from Lib/test/test_pkg.py rename to pylib/Lib/test/test_pkg.py diff --git a/Lib/test/test_pkgutil.py b/pylib/Lib/test/test_pkgutil.py similarity index 100% rename from Lib/test/test_pkgutil.py rename to pylib/Lib/test/test_pkgutil.py diff --git a/Lib/test/test_platform.py b/pylib/Lib/test/test_platform.py similarity index 100% rename from Lib/test/test_platform.py rename to pylib/Lib/test/test_platform.py diff --git a/Lib/test/test_plistlib.py b/pylib/Lib/test/test_plistlib.py similarity index 100% rename from Lib/test/test_plistlib.py rename to pylib/Lib/test/test_plistlib.py diff --git a/Lib/test/test_poll.py b/pylib/Lib/test/test_poll.py similarity index 100% rename from Lib/test/test_poll.py rename to pylib/Lib/test/test_poll.py diff --git a/Lib/test/test_popen.py b/pylib/Lib/test/test_popen.py similarity index 100% rename from Lib/test/test_popen.py rename to pylib/Lib/test/test_popen.py diff --git a/Lib/test/test_positional_only_arg.py b/pylib/Lib/test/test_positional_only_arg.py similarity index 100% rename from Lib/test/test_positional_only_arg.py rename to pylib/Lib/test/test_positional_only_arg.py diff --git a/Lib/test/test_posix.py b/pylib/Lib/test/test_posix.py similarity index 100% rename from Lib/test/test_posix.py rename to pylib/Lib/test/test_posix.py diff --git a/Lib/test/test_posixpath.py b/pylib/Lib/test/test_posixpath.py similarity index 100% rename from Lib/test/test_posixpath.py rename to pylib/Lib/test/test_posixpath.py diff --git a/Lib/test/test_pow.py b/pylib/Lib/test/test_pow.py similarity index 100% rename from Lib/test/test_pow.py rename to pylib/Lib/test/test_pow.py diff --git a/Lib/test/test_pprint.py b/pylib/Lib/test/test_pprint.py similarity index 100% rename from Lib/test/test_pprint.py rename to pylib/Lib/test/test_pprint.py diff --git a/Lib/test/test_print.py b/pylib/Lib/test/test_print.py similarity index 100% rename from Lib/test/test_print.py rename to pylib/Lib/test/test_print.py diff --git a/Lib/test/test_property.py b/pylib/Lib/test/test_property.py similarity index 100% rename from Lib/test/test_property.py rename to pylib/Lib/test/test_property.py diff --git a/Lib/test/test_pty.py b/pylib/Lib/test/test_pty.py similarity index 100% rename from Lib/test/test_pty.py rename to pylib/Lib/test/test_pty.py diff --git a/Lib/test/test_pulldom.py b/pylib/Lib/test/test_pulldom.py similarity index 100% rename from Lib/test/test_pulldom.py rename to pylib/Lib/test/test_pulldom.py diff --git a/Lib/test/test_pwd.py b/pylib/Lib/test/test_pwd.py similarity index 100% rename from Lib/test/test_pwd.py rename to pylib/Lib/test/test_pwd.py diff --git a/Lib/test/test_py_compile.py b/pylib/Lib/test/test_py_compile.py similarity index 100% rename from Lib/test/test_py_compile.py rename to pylib/Lib/test/test_py_compile.py diff --git a/Lib/test/test_pyexpat.py b/pylib/Lib/test/test_pyexpat.py similarity index 100% rename from Lib/test/test_pyexpat.py rename to pylib/Lib/test/test_pyexpat.py diff --git a/Lib/test/test_queue.py b/pylib/Lib/test/test_queue.py similarity index 100% rename from Lib/test/test_queue.py rename to pylib/Lib/test/test_queue.py diff --git a/Lib/test/test_quopri.py b/pylib/Lib/test/test_quopri.py similarity index 100% rename from Lib/test/test_quopri.py rename to pylib/Lib/test/test_quopri.py diff --git a/Lib/test/test_raise.py b/pylib/Lib/test/test_raise.py similarity index 100% rename from Lib/test/test_raise.py rename to pylib/Lib/test/test_raise.py diff --git a/Lib/test/test_random.py b/pylib/Lib/test/test_random.py similarity index 100% rename from Lib/test/test_random.py rename to pylib/Lib/test/test_random.py diff --git a/Lib/test/test_range.py b/pylib/Lib/test/test_range.py similarity index 100% rename from Lib/test/test_range.py rename to pylib/Lib/test/test_range.py diff --git a/Lib/test/test_re.py b/pylib/Lib/test/test_re.py similarity index 100% rename from Lib/test/test_re.py rename to pylib/Lib/test/test_re.py diff --git a/Lib/test/test_regrtest.py b/pylib/Lib/test/test_regrtest.py similarity index 100% rename from Lib/test/test_regrtest.py rename to pylib/Lib/test/test_regrtest.py diff --git a/Lib/test/test_repl.py b/pylib/Lib/test/test_repl.py similarity index 100% rename from Lib/test/test_repl.py rename to pylib/Lib/test/test_repl.py diff --git a/Lib/test/test_reprlib.py b/pylib/Lib/test/test_reprlib.py similarity index 100% rename from Lib/test/test_reprlib.py rename to pylib/Lib/test/test_reprlib.py diff --git a/Lib/test/test_resource.py b/pylib/Lib/test/test_resource.py similarity index 100% rename from Lib/test/test_resource.py rename to pylib/Lib/test/test_resource.py diff --git a/Lib/test/test_richcmp.py b/pylib/Lib/test/test_richcmp.py similarity index 100% rename from Lib/test/test_richcmp.py rename to pylib/Lib/test/test_richcmp.py diff --git a/Lib/test/test_rlcompleter.py b/pylib/Lib/test/test_rlcompleter.py similarity index 100% rename from Lib/test/test_rlcompleter.py rename to pylib/Lib/test/test_rlcompleter.py diff --git a/Lib/test/test_robotparser.py b/pylib/Lib/test/test_robotparser.py similarity index 100% rename from Lib/test/test_robotparser.py rename to pylib/Lib/test/test_robotparser.py diff --git a/Lib/test/test_runpy.py b/pylib/Lib/test/test_runpy.py similarity index 100% rename from Lib/test/test_runpy.py rename to pylib/Lib/test/test_runpy.py diff --git a/Lib/test/test_sched.py b/pylib/Lib/test/test_sched.py similarity index 100% rename from Lib/test/test_sched.py rename to pylib/Lib/test/test_sched.py diff --git a/Lib/test/test_scope.py b/pylib/Lib/test/test_scope.py similarity index 100% rename from Lib/test/test_scope.py rename to pylib/Lib/test/test_scope.py diff --git a/Lib/test/test_script_helper.py b/pylib/Lib/test/test_script_helper.py similarity index 100% rename from Lib/test/test_script_helper.py rename to pylib/Lib/test/test_script_helper.py diff --git a/Lib/test/test_secrets.py b/pylib/Lib/test/test_secrets.py similarity index 100% rename from Lib/test/test_secrets.py rename to pylib/Lib/test/test_secrets.py diff --git a/Lib/test/test_selectors.py b/pylib/Lib/test/test_selectors.py similarity index 100% rename from Lib/test/test_selectors.py rename to pylib/Lib/test/test_selectors.py diff --git a/Lib/test/test_set.py b/pylib/Lib/test/test_set.py similarity index 100% rename from Lib/test/test_set.py rename to pylib/Lib/test/test_set.py diff --git a/Lib/test/test_setcomps.py b/pylib/Lib/test/test_setcomps.py similarity index 100% rename from Lib/test/test_setcomps.py rename to pylib/Lib/test/test_setcomps.py diff --git a/Lib/test/test_shelve.py b/pylib/Lib/test/test_shelve.py similarity index 100% rename from Lib/test/test_shelve.py rename to pylib/Lib/test/test_shelve.py diff --git a/Lib/test/test_shlex.py b/pylib/Lib/test/test_shlex.py similarity index 100% rename from Lib/test/test_shlex.py rename to pylib/Lib/test/test_shlex.py diff --git a/Lib/test/test_shutil.py b/pylib/Lib/test/test_shutil.py similarity index 100% rename from Lib/test/test_shutil.py rename to pylib/Lib/test/test_shutil.py diff --git a/Lib/test/test_signal.py b/pylib/Lib/test/test_signal.py similarity index 100% rename from Lib/test/test_signal.py rename to pylib/Lib/test/test_signal.py diff --git a/Lib/test/test_site.py b/pylib/Lib/test/test_site.py similarity index 100% rename from Lib/test/test_site.py rename to pylib/Lib/test/test_site.py diff --git a/Lib/test/test_slice.py b/pylib/Lib/test/test_slice.py similarity index 100% rename from Lib/test/test_slice.py rename to pylib/Lib/test/test_slice.py diff --git a/Lib/test/test_smtplib.py b/pylib/Lib/test/test_smtplib.py similarity index 100% rename from Lib/test/test_smtplib.py rename to pylib/Lib/test/test_smtplib.py diff --git a/Lib/test/test_smtpnet.py b/pylib/Lib/test/test_smtpnet.py similarity index 100% rename from Lib/test/test_smtpnet.py rename to pylib/Lib/test/test_smtpnet.py diff --git a/Lib/test/test_socket.py b/pylib/Lib/test/test_socket.py similarity index 100% rename from Lib/test/test_socket.py rename to pylib/Lib/test/test_socket.py diff --git a/Lib/test/test_socketserver.py b/pylib/Lib/test/test_socketserver.py similarity index 100% rename from Lib/test/test_socketserver.py rename to pylib/Lib/test/test_socketserver.py diff --git a/Lib/test/test_sort.py b/pylib/Lib/test/test_sort.py similarity index 100% rename from Lib/test/test_sort.py rename to pylib/Lib/test/test_sort.py diff --git a/Lib/test/test_sqlite3/__init__.py b/pylib/Lib/test/test_sqlite3/__init__.py similarity index 100% rename from Lib/test/test_sqlite3/__init__.py rename to pylib/Lib/test/test_sqlite3/__init__.py diff --git a/Lib/test/test_sqlite3/__main__.py b/pylib/Lib/test/test_sqlite3/__main__.py similarity index 100% rename from Lib/test/test_sqlite3/__main__.py rename to pylib/Lib/test/test_sqlite3/__main__.py diff --git a/Lib/test/test_sqlite3/test_backup.py b/pylib/Lib/test/test_sqlite3/test_backup.py similarity index 100% rename from Lib/test/test_sqlite3/test_backup.py rename to pylib/Lib/test/test_sqlite3/test_backup.py diff --git a/Lib/test/test_sqlite3/test_cli.py b/pylib/Lib/test/test_sqlite3/test_cli.py similarity index 100% rename from Lib/test/test_sqlite3/test_cli.py rename to pylib/Lib/test/test_sqlite3/test_cli.py diff --git a/Lib/test/test_sqlite3/test_dbapi.py b/pylib/Lib/test/test_sqlite3/test_dbapi.py similarity index 100% rename from Lib/test/test_sqlite3/test_dbapi.py rename to pylib/Lib/test/test_sqlite3/test_dbapi.py diff --git a/Lib/test/test_sqlite3/test_dump.py b/pylib/Lib/test/test_sqlite3/test_dump.py similarity index 100% rename from Lib/test/test_sqlite3/test_dump.py rename to pylib/Lib/test/test_sqlite3/test_dump.py diff --git a/Lib/test/test_sqlite3/test_factory.py b/pylib/Lib/test/test_sqlite3/test_factory.py similarity index 100% rename from Lib/test/test_sqlite3/test_factory.py rename to pylib/Lib/test/test_sqlite3/test_factory.py diff --git a/Lib/test/test_sqlite3/test_hooks.py b/pylib/Lib/test/test_sqlite3/test_hooks.py similarity index 100% rename from Lib/test/test_sqlite3/test_hooks.py rename to pylib/Lib/test/test_sqlite3/test_hooks.py diff --git a/Lib/test/test_sqlite3/test_regression.py b/pylib/Lib/test/test_sqlite3/test_regression.py similarity index 100% rename from Lib/test/test_sqlite3/test_regression.py rename to pylib/Lib/test/test_sqlite3/test_regression.py diff --git a/Lib/test/test_sqlite3/test_transactions.py b/pylib/Lib/test/test_sqlite3/test_transactions.py similarity index 100% rename from Lib/test/test_sqlite3/test_transactions.py rename to pylib/Lib/test/test_sqlite3/test_transactions.py diff --git a/Lib/test/test_sqlite3/test_types.py b/pylib/Lib/test/test_sqlite3/test_types.py similarity index 100% rename from Lib/test/test_sqlite3/test_types.py rename to pylib/Lib/test/test_sqlite3/test_types.py diff --git a/Lib/test/test_sqlite3/test_userfunctions.py b/pylib/Lib/test/test_sqlite3/test_userfunctions.py similarity index 100% rename from Lib/test/test_sqlite3/test_userfunctions.py rename to pylib/Lib/test/test_sqlite3/test_userfunctions.py diff --git a/Lib/test/test_stat.py b/pylib/Lib/test/test_stat.py similarity index 100% rename from Lib/test/test_stat.py rename to pylib/Lib/test/test_stat.py diff --git a/Lib/test/test_statistics.py b/pylib/Lib/test/test_statistics.py similarity index 100% rename from Lib/test/test_statistics.py rename to pylib/Lib/test/test_statistics.py diff --git a/Lib/test/test_strftime.py b/pylib/Lib/test/test_strftime.py similarity index 100% rename from Lib/test/test_strftime.py rename to pylib/Lib/test/test_strftime.py diff --git a/Lib/test/test_string.py b/pylib/Lib/test/test_string.py similarity index 100% rename from Lib/test/test_string.py rename to pylib/Lib/test/test_string.py diff --git a/Lib/test/test_string_literals.py b/pylib/Lib/test/test_string_literals.py similarity index 100% rename from Lib/test/test_string_literals.py rename to pylib/Lib/test/test_string_literals.py diff --git a/Lib/test/test_stringprep.py b/pylib/Lib/test/test_stringprep.py similarity index 100% rename from Lib/test/test_stringprep.py rename to pylib/Lib/test/test_stringprep.py diff --git a/Lib/test/test_strtod.py b/pylib/Lib/test/test_strtod.py similarity index 100% rename from Lib/test/test_strtod.py rename to pylib/Lib/test/test_strtod.py diff --git a/Lib/test/test_struct.py b/pylib/Lib/test/test_struct.py similarity index 100% rename from Lib/test/test_struct.py rename to pylib/Lib/test/test_struct.py diff --git a/Lib/test/test_structseq.py b/pylib/Lib/test/test_structseq.py similarity index 100% rename from Lib/test/test_structseq.py rename to pylib/Lib/test/test_structseq.py diff --git a/Lib/test/test_subclassinit.py b/pylib/Lib/test/test_subclassinit.py similarity index 100% rename from Lib/test/test_subclassinit.py rename to pylib/Lib/test/test_subclassinit.py diff --git a/Lib/test/test_subprocess.py b/pylib/Lib/test/test_subprocess.py similarity index 100% rename from Lib/test/test_subprocess.py rename to pylib/Lib/test/test_subprocess.py diff --git a/Lib/test/test_sundry.py b/pylib/Lib/test/test_sundry.py similarity index 100% rename from Lib/test/test_sundry.py rename to pylib/Lib/test/test_sundry.py diff --git a/Lib/test/test_super.py b/pylib/Lib/test/test_super.py similarity index 100% rename from Lib/test/test_super.py rename to pylib/Lib/test/test_super.py diff --git a/Lib/test/test_support.py b/pylib/Lib/test/test_support.py similarity index 100% rename from Lib/test/test_support.py rename to pylib/Lib/test/test_support.py diff --git a/Lib/test/test_symtable.py b/pylib/Lib/test/test_symtable.py similarity index 100% rename from Lib/test/test_symtable.py rename to pylib/Lib/test/test_symtable.py diff --git a/Lib/test/test_syntax.py b/pylib/Lib/test/test_syntax.py similarity index 100% rename from Lib/test/test_syntax.py rename to pylib/Lib/test/test_syntax.py diff --git a/Lib/test/test_sys.py b/pylib/Lib/test/test_sys.py similarity index 100% rename from Lib/test/test_sys.py rename to pylib/Lib/test/test_sys.py diff --git a/Lib/test/test_sys_setprofile.py b/pylib/Lib/test/test_sys_setprofile.py similarity index 100% rename from Lib/test/test_sys_setprofile.py rename to pylib/Lib/test/test_sys_setprofile.py diff --git a/Lib/test/test_sys_settrace.py b/pylib/Lib/test/test_sys_settrace.py similarity index 100% rename from Lib/test/test_sys_settrace.py rename to pylib/Lib/test/test_sys_settrace.py diff --git a/Lib/test/test_sysconfig.py b/pylib/Lib/test/test_sysconfig.py similarity index 100% rename from Lib/test/test_sysconfig.py rename to pylib/Lib/test/test_sysconfig.py diff --git a/Lib/test/test_syslog.py b/pylib/Lib/test/test_syslog.py similarity index 100% rename from Lib/test/test_syslog.py rename to pylib/Lib/test/test_syslog.py diff --git a/Lib/test/test_tabnanny.py b/pylib/Lib/test/test_tabnanny.py similarity index 100% rename from Lib/test/test_tabnanny.py rename to pylib/Lib/test/test_tabnanny.py diff --git a/Lib/test/test_tarfile.py b/pylib/Lib/test/test_tarfile.py similarity index 100% rename from Lib/test/test_tarfile.py rename to pylib/Lib/test/test_tarfile.py diff --git a/Lib/test/test_tempfile.py b/pylib/Lib/test/test_tempfile.py similarity index 100% rename from Lib/test/test_tempfile.py rename to pylib/Lib/test/test_tempfile.py diff --git a/Lib/test/test_textwrap.py b/pylib/Lib/test/test_textwrap.py similarity index 100% rename from Lib/test/test_textwrap.py rename to pylib/Lib/test/test_textwrap.py diff --git a/Lib/test/test_thread.py b/pylib/Lib/test/test_thread.py similarity index 100% rename from Lib/test/test_thread.py rename to pylib/Lib/test/test_thread.py diff --git a/Lib/test/test_threadedtempfile.py b/pylib/Lib/test/test_threadedtempfile.py similarity index 100% rename from Lib/test/test_threadedtempfile.py rename to pylib/Lib/test/test_threadedtempfile.py diff --git a/Lib/test/test_threading.py b/pylib/Lib/test/test_threading.py similarity index 100% rename from Lib/test/test_threading.py rename to pylib/Lib/test/test_threading.py diff --git a/Lib/test/test_threading_local.py b/pylib/Lib/test/test_threading_local.py similarity index 100% rename from Lib/test/test_threading_local.py rename to pylib/Lib/test/test_threading_local.py diff --git a/Lib/test/test_time.py b/pylib/Lib/test/test_time.py similarity index 100% rename from Lib/test/test_time.py rename to pylib/Lib/test/test_time.py diff --git a/Lib/test/test_timeit.py b/pylib/Lib/test/test_timeit.py similarity index 100% rename from Lib/test/test_timeit.py rename to pylib/Lib/test/test_timeit.py diff --git a/Lib/test/test_timeout.py b/pylib/Lib/test/test_timeout.py similarity index 100% rename from Lib/test/test_timeout.py rename to pylib/Lib/test/test_timeout.py diff --git a/Lib/test/test_tokenize.py b/pylib/Lib/test/test_tokenize.py similarity index 100% rename from Lib/test/test_tokenize.py rename to pylib/Lib/test/test_tokenize.py diff --git a/Lib/test/test_tomllib/__init__.py b/pylib/Lib/test/test_tomllib/__init__.py similarity index 100% rename from Lib/test/test_tomllib/__init__.py rename to pylib/Lib/test/test_tomllib/__init__.py diff --git a/Lib/test/test_tomllib/__main__.py b/pylib/Lib/test/test_tomllib/__main__.py similarity index 100% rename from Lib/test/test_tomllib/__main__.py rename to pylib/Lib/test/test_tomllib/__main__.py diff --git a/Lib/test/test_tomllib/burntsushi.py b/pylib/Lib/test/test_tomllib/burntsushi.py similarity index 100% rename from Lib/test/test_tomllib/burntsushi.py rename to pylib/Lib/test/test_tomllib/burntsushi.py diff --git a/Lib/test/test_tomllib/data/invalid/array-missing-comma.toml b/pylib/Lib/test/test_tomllib/data/invalid/array-missing-comma.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/array-missing-comma.toml rename to pylib/Lib/test/test_tomllib/data/invalid/array-missing-comma.toml diff --git a/Lib/test/test_tomllib/data/invalid/array-of-tables/overwrite-array-in-parent.toml b/pylib/Lib/test/test_tomllib/data/invalid/array-of-tables/overwrite-array-in-parent.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/array-of-tables/overwrite-array-in-parent.toml rename to pylib/Lib/test/test_tomllib/data/invalid/array-of-tables/overwrite-array-in-parent.toml diff --git a/Lib/test/test_tomllib/data/invalid/array-of-tables/overwrite-bool-with-aot.toml b/pylib/Lib/test/test_tomllib/data/invalid/array-of-tables/overwrite-bool-with-aot.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/array-of-tables/overwrite-bool-with-aot.toml rename to pylib/Lib/test/test_tomllib/data/invalid/array-of-tables/overwrite-bool-with-aot.toml diff --git a/Lib/test/test_tomllib/data/invalid/array/file-end-after-val.toml b/pylib/Lib/test/test_tomllib/data/invalid/array/file-end-after-val.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/array/file-end-after-val.toml rename to pylib/Lib/test/test_tomllib/data/invalid/array/file-end-after-val.toml diff --git a/Lib/test/test_tomllib/data/invalid/array/unclosed-after-item.toml b/pylib/Lib/test/test_tomllib/data/invalid/array/unclosed-after-item.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/array/unclosed-after-item.toml rename to pylib/Lib/test/test_tomllib/data/invalid/array/unclosed-after-item.toml diff --git a/Lib/test/test_tomllib/data/invalid/array/unclosed-empty.toml b/pylib/Lib/test/test_tomllib/data/invalid/array/unclosed-empty.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/array/unclosed-empty.toml rename to pylib/Lib/test/test_tomllib/data/invalid/array/unclosed-empty.toml diff --git a/Lib/test/test_tomllib/data/invalid/basic-str-ends-in-escape.toml b/pylib/Lib/test/test_tomllib/data/invalid/basic-str-ends-in-escape.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/basic-str-ends-in-escape.toml rename to pylib/Lib/test/test_tomllib/data/invalid/basic-str-ends-in-escape.toml diff --git a/Lib/test/test_tomllib/data/invalid/boolean/invalid-false-casing.toml b/pylib/Lib/test/test_tomllib/data/invalid/boolean/invalid-false-casing.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/boolean/invalid-false-casing.toml rename to pylib/Lib/test/test_tomllib/data/invalid/boolean/invalid-false-casing.toml diff --git a/Lib/test/test_tomllib/data/invalid/boolean/invalid-true-casing.toml b/pylib/Lib/test/test_tomllib/data/invalid/boolean/invalid-true-casing.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/boolean/invalid-true-casing.toml rename to pylib/Lib/test/test_tomllib/data/invalid/boolean/invalid-true-casing.toml diff --git a/Lib/test/test_tomllib/data/invalid/dates-and-times/invalid-day.toml b/pylib/Lib/test/test_tomllib/data/invalid/dates-and-times/invalid-day.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/dates-and-times/invalid-day.toml rename to pylib/Lib/test/test_tomllib/data/invalid/dates-and-times/invalid-day.toml diff --git a/Lib/test/test_tomllib/data/invalid/dotted-keys/access-non-table.toml b/pylib/Lib/test/test_tomllib/data/invalid/dotted-keys/access-non-table.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/dotted-keys/access-non-table.toml rename to pylib/Lib/test/test_tomllib/data/invalid/dotted-keys/access-non-table.toml diff --git a/Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-aot.toml b/pylib/Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-aot.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-aot.toml rename to pylib/Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-aot.toml diff --git a/Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-table-with-subtable.toml b/pylib/Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-table-with-subtable.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-table-with-subtable.toml rename to pylib/Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-table-with-subtable.toml diff --git a/Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-table.toml b/pylib/Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-table.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-table.toml rename to pylib/Lib/test/test_tomllib/data/invalid/dotted-keys/extend-defined-table.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table-missing-comma.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table-missing-comma.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table-missing-comma.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table-missing-comma.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/define-twice-in-subtable.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/define-twice-in-subtable.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/define-twice-in-subtable.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/define-twice-in-subtable.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/define-twice.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/define-twice.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/define-twice.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/define-twice.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/file-end-after-key-val.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/file-end-after-key-val.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/file-end-after-key-val.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/file-end-after-key-val.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/mutate.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/mutate.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/mutate.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/mutate.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/override-val-in-table.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/override-val-in-table.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/override-val-in-table.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/override-val-in-table.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/override-val-with-array.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/override-val-with-array.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/override-val-with-array.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/override-val-with-array.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/override-val-with-table.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/override-val-with-table.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/override-val-with-table.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/override-val-with-table.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/overwrite-implicitly.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/overwrite-implicitly.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/overwrite-implicitly.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/overwrite-implicitly.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/overwrite-value-in-inner-array.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/overwrite-value-in-inner-array.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/overwrite-value-in-inner-array.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/overwrite-value-in-inner-array.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/overwrite-value-in-inner-table.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/overwrite-value-in-inner-table.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/overwrite-value-in-inner-table.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/overwrite-value-in-inner-table.toml diff --git a/Lib/test/test_tomllib/data/invalid/inline-table/unclosed-empty.toml b/pylib/Lib/test/test_tomllib/data/invalid/inline-table/unclosed-empty.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/inline-table/unclosed-empty.toml rename to pylib/Lib/test/test_tomllib/data/invalid/inline-table/unclosed-empty.toml diff --git a/Lib/test/test_tomllib/data/invalid/invalid-comment-char.toml b/pylib/Lib/test/test_tomllib/data/invalid/invalid-comment-char.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/invalid-comment-char.toml rename to pylib/Lib/test/test_tomllib/data/invalid/invalid-comment-char.toml diff --git a/Lib/test/test_tomllib/data/invalid/invalid-escaped-unicode.toml b/pylib/Lib/test/test_tomllib/data/invalid/invalid-escaped-unicode.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/invalid-escaped-unicode.toml rename to pylib/Lib/test/test_tomllib/data/invalid/invalid-escaped-unicode.toml diff --git a/Lib/test/test_tomllib/data/invalid/invalid-hex.toml b/pylib/Lib/test/test_tomllib/data/invalid/invalid-hex.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/invalid-hex.toml rename to pylib/Lib/test/test_tomllib/data/invalid/invalid-hex.toml diff --git a/Lib/test/test_tomllib/data/invalid/keys-and-vals/ends-early-table-def.toml b/pylib/Lib/test/test_tomllib/data/invalid/keys-and-vals/ends-early-table-def.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/keys-and-vals/ends-early-table-def.toml rename to pylib/Lib/test/test_tomllib/data/invalid/keys-and-vals/ends-early-table-def.toml diff --git a/Lib/test/test_tomllib/data/invalid/keys-and-vals/ends-early.toml b/pylib/Lib/test/test_tomllib/data/invalid/keys-and-vals/ends-early.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/keys-and-vals/ends-early.toml rename to pylib/Lib/test/test_tomllib/data/invalid/keys-and-vals/ends-early.toml diff --git a/Lib/test/test_tomllib/data/invalid/keys-and-vals/no-value.toml b/pylib/Lib/test/test_tomllib/data/invalid/keys-and-vals/no-value.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/keys-and-vals/no-value.toml rename to pylib/Lib/test/test_tomllib/data/invalid/keys-and-vals/no-value.toml diff --git a/Lib/test/test_tomllib/data/invalid/keys-and-vals/only-ws-after-dot.toml b/pylib/Lib/test/test_tomllib/data/invalid/keys-and-vals/only-ws-after-dot.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/keys-and-vals/only-ws-after-dot.toml rename to pylib/Lib/test/test_tomllib/data/invalid/keys-and-vals/only-ws-after-dot.toml diff --git a/Lib/test/test_tomllib/data/invalid/keys-and-vals/overwrite-with-deep-table.toml b/pylib/Lib/test/test_tomllib/data/invalid/keys-and-vals/overwrite-with-deep-table.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/keys-and-vals/overwrite-with-deep-table.toml rename to pylib/Lib/test/test_tomllib/data/invalid/keys-and-vals/overwrite-with-deep-table.toml diff --git a/Lib/test/test_tomllib/data/invalid/literal-str/unclosed.toml b/pylib/Lib/test/test_tomllib/data/invalid/literal-str/unclosed.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/literal-str/unclosed.toml rename to pylib/Lib/test/test_tomllib/data/invalid/literal-str/unclosed.toml diff --git a/Lib/test/test_tomllib/data/invalid/missing-closing-double-square-bracket.toml b/pylib/Lib/test/test_tomllib/data/invalid/missing-closing-double-square-bracket.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/missing-closing-double-square-bracket.toml rename to pylib/Lib/test/test_tomllib/data/invalid/missing-closing-double-square-bracket.toml diff --git a/Lib/test/test_tomllib/data/invalid/missing-closing-square-bracket.toml b/pylib/Lib/test/test_tomllib/data/invalid/missing-closing-square-bracket.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/missing-closing-square-bracket.toml rename to pylib/Lib/test/test_tomllib/data/invalid/missing-closing-square-bracket.toml diff --git a/Lib/test/test_tomllib/data/invalid/multiline-basic-str/carriage-return.toml b/pylib/Lib/test/test_tomllib/data/invalid/multiline-basic-str/carriage-return.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/multiline-basic-str/carriage-return.toml rename to pylib/Lib/test/test_tomllib/data/invalid/multiline-basic-str/carriage-return.toml diff --git a/Lib/test/test_tomllib/data/invalid/multiline-basic-str/escape-only.toml b/pylib/Lib/test/test_tomllib/data/invalid/multiline-basic-str/escape-only.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/multiline-basic-str/escape-only.toml rename to pylib/Lib/test/test_tomllib/data/invalid/multiline-basic-str/escape-only.toml diff --git a/Lib/test/test_tomllib/data/invalid/multiline-basic-str/file-ends-after-opening.toml b/pylib/Lib/test/test_tomllib/data/invalid/multiline-basic-str/file-ends-after-opening.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/multiline-basic-str/file-ends-after-opening.toml rename to pylib/Lib/test/test_tomllib/data/invalid/multiline-basic-str/file-ends-after-opening.toml diff --git a/Lib/test/test_tomllib/data/invalid/multiline-basic-str/last-line-escape.toml b/pylib/Lib/test/test_tomllib/data/invalid/multiline-basic-str/last-line-escape.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/multiline-basic-str/last-line-escape.toml rename to pylib/Lib/test/test_tomllib/data/invalid/multiline-basic-str/last-line-escape.toml diff --git a/Lib/test/test_tomllib/data/invalid/multiline-basic-str/unclosed-ends-in-whitespace-escape.toml b/pylib/Lib/test/test_tomllib/data/invalid/multiline-basic-str/unclosed-ends-in-whitespace-escape.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/multiline-basic-str/unclosed-ends-in-whitespace-escape.toml rename to pylib/Lib/test/test_tomllib/data/invalid/multiline-basic-str/unclosed-ends-in-whitespace-escape.toml diff --git a/Lib/test/test_tomllib/data/invalid/multiline-literal-str/file-ends-after-opening.toml b/pylib/Lib/test/test_tomllib/data/invalid/multiline-literal-str/file-ends-after-opening.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/multiline-literal-str/file-ends-after-opening.toml rename to pylib/Lib/test/test_tomllib/data/invalid/multiline-literal-str/file-ends-after-opening.toml diff --git a/Lib/test/test_tomllib/data/invalid/multiline-literal-str/unclosed.toml b/pylib/Lib/test/test_tomllib/data/invalid/multiline-literal-str/unclosed.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/multiline-literal-str/unclosed.toml rename to pylib/Lib/test/test_tomllib/data/invalid/multiline-literal-str/unclosed.toml diff --git a/Lib/test/test_tomllib/data/invalid/non-scalar-escaped.toml b/pylib/Lib/test/test_tomllib/data/invalid/non-scalar-escaped.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/non-scalar-escaped.toml rename to pylib/Lib/test/test_tomllib/data/invalid/non-scalar-escaped.toml diff --git a/Lib/test/test_tomllib/data/invalid/table/eof-after-opening.toml b/pylib/Lib/test/test_tomllib/data/invalid/table/eof-after-opening.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/table/eof-after-opening.toml rename to pylib/Lib/test/test_tomllib/data/invalid/table/eof-after-opening.toml diff --git a/Lib/test/test_tomllib/data/invalid/table/redefine-1.toml b/pylib/Lib/test/test_tomllib/data/invalid/table/redefine-1.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/table/redefine-1.toml rename to pylib/Lib/test/test_tomllib/data/invalid/table/redefine-1.toml diff --git a/Lib/test/test_tomllib/data/invalid/table/redefine-2.toml b/pylib/Lib/test/test_tomllib/data/invalid/table/redefine-2.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/table/redefine-2.toml rename to pylib/Lib/test/test_tomllib/data/invalid/table/redefine-2.toml diff --git a/Lib/test/test_tomllib/data/invalid/unclosed-multiline-string.toml b/pylib/Lib/test/test_tomllib/data/invalid/unclosed-multiline-string.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/unclosed-multiline-string.toml rename to pylib/Lib/test/test_tomllib/data/invalid/unclosed-multiline-string.toml diff --git a/Lib/test/test_tomllib/data/invalid/unclosed-string.toml b/pylib/Lib/test/test_tomllib/data/invalid/unclosed-string.toml similarity index 100% rename from Lib/test/test_tomllib/data/invalid/unclosed-string.toml rename to pylib/Lib/test/test_tomllib/data/invalid/unclosed-string.toml diff --git a/Lib/test/test_tomllib/data/valid/apostrophes-in-literal-string.json b/pylib/Lib/test/test_tomllib/data/valid/apostrophes-in-literal-string.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/apostrophes-in-literal-string.json rename to pylib/Lib/test/test_tomllib/data/valid/apostrophes-in-literal-string.json diff --git a/Lib/test/test_tomllib/data/valid/apostrophes-in-literal-string.toml b/pylib/Lib/test/test_tomllib/data/valid/apostrophes-in-literal-string.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/apostrophes-in-literal-string.toml rename to pylib/Lib/test/test_tomllib/data/valid/apostrophes-in-literal-string.toml diff --git a/Lib/test/test_tomllib/data/valid/array/array-subtables.json b/pylib/Lib/test/test_tomllib/data/valid/array/array-subtables.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/array/array-subtables.json rename to pylib/Lib/test/test_tomllib/data/valid/array/array-subtables.json diff --git a/Lib/test/test_tomllib/data/valid/array/array-subtables.toml b/pylib/Lib/test/test_tomllib/data/valid/array/array-subtables.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/array/array-subtables.toml rename to pylib/Lib/test/test_tomllib/data/valid/array/array-subtables.toml diff --git a/Lib/test/test_tomllib/data/valid/array/open-parent-table.json b/pylib/Lib/test/test_tomllib/data/valid/array/open-parent-table.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/array/open-parent-table.json rename to pylib/Lib/test/test_tomllib/data/valid/array/open-parent-table.json diff --git a/Lib/test/test_tomllib/data/valid/array/open-parent-table.toml b/pylib/Lib/test/test_tomllib/data/valid/array/open-parent-table.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/array/open-parent-table.toml rename to pylib/Lib/test/test_tomllib/data/valid/array/open-parent-table.toml diff --git a/Lib/test/test_tomllib/data/valid/boolean.json b/pylib/Lib/test/test_tomllib/data/valid/boolean.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/boolean.json rename to pylib/Lib/test/test_tomllib/data/valid/boolean.json diff --git a/Lib/test/test_tomllib/data/valid/boolean.toml b/pylib/Lib/test/test_tomllib/data/valid/boolean.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/boolean.toml rename to pylib/Lib/test/test_tomllib/data/valid/boolean.toml diff --git a/Lib/test/test_tomllib/data/valid/dates-and-times/datetimes.json b/pylib/Lib/test/test_tomllib/data/valid/dates-and-times/datetimes.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/dates-and-times/datetimes.json rename to pylib/Lib/test/test_tomllib/data/valid/dates-and-times/datetimes.json diff --git a/Lib/test/test_tomllib/data/valid/dates-and-times/datetimes.toml b/pylib/Lib/test/test_tomllib/data/valid/dates-and-times/datetimes.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/dates-and-times/datetimes.toml rename to pylib/Lib/test/test_tomllib/data/valid/dates-and-times/datetimes.toml diff --git a/Lib/test/test_tomllib/data/valid/dates-and-times/localtime.json b/pylib/Lib/test/test_tomllib/data/valid/dates-and-times/localtime.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/dates-and-times/localtime.json rename to pylib/Lib/test/test_tomllib/data/valid/dates-and-times/localtime.json diff --git a/Lib/test/test_tomllib/data/valid/dates-and-times/localtime.toml b/pylib/Lib/test/test_tomllib/data/valid/dates-and-times/localtime.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/dates-and-times/localtime.toml rename to pylib/Lib/test/test_tomllib/data/valid/dates-and-times/localtime.toml diff --git a/Lib/test/test_tomllib/data/valid/empty-inline-table.json b/pylib/Lib/test/test_tomllib/data/valid/empty-inline-table.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/empty-inline-table.json rename to pylib/Lib/test/test_tomllib/data/valid/empty-inline-table.json diff --git a/Lib/test/test_tomllib/data/valid/empty-inline-table.toml b/pylib/Lib/test/test_tomllib/data/valid/empty-inline-table.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/empty-inline-table.toml rename to pylib/Lib/test/test_tomllib/data/valid/empty-inline-table.toml diff --git a/Lib/test/test_tomllib/data/valid/five-quotes.json b/pylib/Lib/test/test_tomllib/data/valid/five-quotes.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/five-quotes.json rename to pylib/Lib/test/test_tomllib/data/valid/five-quotes.json diff --git a/Lib/test/test_tomllib/data/valid/five-quotes.toml b/pylib/Lib/test/test_tomllib/data/valid/five-quotes.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/five-quotes.toml rename to pylib/Lib/test/test_tomllib/data/valid/five-quotes.toml diff --git a/Lib/test/test_tomllib/data/valid/hex-char.json b/pylib/Lib/test/test_tomllib/data/valid/hex-char.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/hex-char.json rename to pylib/Lib/test/test_tomllib/data/valid/hex-char.json diff --git a/Lib/test/test_tomllib/data/valid/hex-char.toml b/pylib/Lib/test/test_tomllib/data/valid/hex-char.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/hex-char.toml rename to pylib/Lib/test/test_tomllib/data/valid/hex-char.toml diff --git a/Lib/test/test_tomllib/data/valid/multiline-basic-str/ends-in-whitespace-escape.json b/pylib/Lib/test/test_tomllib/data/valid/multiline-basic-str/ends-in-whitespace-escape.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/multiline-basic-str/ends-in-whitespace-escape.json rename to pylib/Lib/test/test_tomllib/data/valid/multiline-basic-str/ends-in-whitespace-escape.json diff --git a/Lib/test/test_tomllib/data/valid/multiline-basic-str/ends-in-whitespace-escape.toml b/pylib/Lib/test/test_tomllib/data/valid/multiline-basic-str/ends-in-whitespace-escape.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/multiline-basic-str/ends-in-whitespace-escape.toml rename to pylib/Lib/test/test_tomllib/data/valid/multiline-basic-str/ends-in-whitespace-escape.toml diff --git a/Lib/test/test_tomllib/data/valid/no-newlines.json b/pylib/Lib/test/test_tomllib/data/valid/no-newlines.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/no-newlines.json rename to pylib/Lib/test/test_tomllib/data/valid/no-newlines.json diff --git a/Lib/test/test_tomllib/data/valid/no-newlines.toml b/pylib/Lib/test/test_tomllib/data/valid/no-newlines.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/no-newlines.toml rename to pylib/Lib/test/test_tomllib/data/valid/no-newlines.toml diff --git a/Lib/test/test_tomllib/data/valid/trailing-comma.json b/pylib/Lib/test/test_tomllib/data/valid/trailing-comma.json similarity index 100% rename from Lib/test/test_tomllib/data/valid/trailing-comma.json rename to pylib/Lib/test/test_tomllib/data/valid/trailing-comma.json diff --git a/Lib/test/test_tomllib/data/valid/trailing-comma.toml b/pylib/Lib/test/test_tomllib/data/valid/trailing-comma.toml similarity index 100% rename from Lib/test/test_tomllib/data/valid/trailing-comma.toml rename to pylib/Lib/test/test_tomllib/data/valid/trailing-comma.toml diff --git a/Lib/test/test_tomllib/test_data.py b/pylib/Lib/test/test_tomllib/test_data.py similarity index 100% rename from Lib/test/test_tomllib/test_data.py rename to pylib/Lib/test/test_tomllib/test_data.py diff --git a/Lib/test/test_tomllib/test_error.py b/pylib/Lib/test/test_tomllib/test_error.py similarity index 100% rename from Lib/test/test_tomllib/test_error.py rename to pylib/Lib/test/test_tomllib/test_error.py diff --git a/Lib/test/test_tomllib/test_misc.py b/pylib/Lib/test/test_tomllib/test_misc.py similarity index 100% rename from Lib/test/test_tomllib/test_misc.py rename to pylib/Lib/test/test_tomllib/test_misc.py diff --git a/Lib/test/test_trace.py b/pylib/Lib/test/test_trace.py similarity index 100% rename from Lib/test/test_trace.py rename to pylib/Lib/test/test_trace.py diff --git a/Lib/test/test_traceback.py b/pylib/Lib/test/test_traceback.py similarity index 100% rename from Lib/test/test_traceback.py rename to pylib/Lib/test/test_traceback.py diff --git a/Lib/test/test_tuple.py b/pylib/Lib/test/test_tuple.py similarity index 100% rename from Lib/test/test_tuple.py rename to pylib/Lib/test/test_tuple.py diff --git a/Lib/test/test_type_comments.py b/pylib/Lib/test/test_type_comments.py similarity index 100% rename from Lib/test/test_type_comments.py rename to pylib/Lib/test/test_type_comments.py diff --git a/Lib/test/test_typechecks.py b/pylib/Lib/test/test_typechecks.py similarity index 100% rename from Lib/test/test_typechecks.py rename to pylib/Lib/test/test_typechecks.py diff --git a/Lib/test/test_types.py b/pylib/Lib/test/test_types.py similarity index 100% rename from Lib/test/test_types.py rename to pylib/Lib/test/test_types.py diff --git a/Lib/test/test_typing.py b/pylib/Lib/test/test_typing.py similarity index 100% rename from Lib/test/test_typing.py rename to pylib/Lib/test/test_typing.py diff --git a/Lib/test/test_ucn.py b/pylib/Lib/test/test_ucn.py similarity index 100% rename from Lib/test/test_ucn.py rename to pylib/Lib/test/test_ucn.py diff --git a/Lib/test/test_unary.py b/pylib/Lib/test/test_unary.py similarity index 100% rename from Lib/test/test_unary.py rename to pylib/Lib/test/test_unary.py diff --git a/Lib/test/test_unicode.py b/pylib/Lib/test/test_unicode.py similarity index 100% rename from Lib/test/test_unicode.py rename to pylib/Lib/test/test_unicode.py diff --git a/Lib/test/test_unicode_file.py b/pylib/Lib/test/test_unicode_file.py similarity index 100% rename from Lib/test/test_unicode_file.py rename to pylib/Lib/test/test_unicode_file.py diff --git a/Lib/test/test_unicode_file_functions.py b/pylib/Lib/test/test_unicode_file_functions.py similarity index 100% rename from Lib/test/test_unicode_file_functions.py rename to pylib/Lib/test/test_unicode_file_functions.py diff --git a/Lib/test/test_unicode_identifiers.py b/pylib/Lib/test/test_unicode_identifiers.py similarity index 100% rename from Lib/test/test_unicode_identifiers.py rename to pylib/Lib/test/test_unicode_identifiers.py diff --git a/Lib/test/test_unicodedata.py b/pylib/Lib/test/test_unicodedata.py similarity index 100% rename from Lib/test/test_unicodedata.py rename to pylib/Lib/test/test_unicodedata.py diff --git a/Lib/test/test_unittest.py b/pylib/Lib/test/test_unittest.py similarity index 100% rename from Lib/test/test_unittest.py rename to pylib/Lib/test/test_unittest.py diff --git a/Lib/test/test_univnewlines.py b/pylib/Lib/test/test_univnewlines.py similarity index 100% rename from Lib/test/test_univnewlines.py rename to pylib/Lib/test/test_univnewlines.py diff --git a/Lib/test/test_unpack.py b/pylib/Lib/test/test_unpack.py similarity index 100% rename from Lib/test/test_unpack.py rename to pylib/Lib/test/test_unpack.py diff --git a/Lib/test/test_urllib.py b/pylib/Lib/test/test_urllib.py similarity index 100% rename from Lib/test/test_urllib.py rename to pylib/Lib/test/test_urllib.py diff --git a/Lib/test/test_urllib2.py b/pylib/Lib/test/test_urllib2.py similarity index 100% rename from Lib/test/test_urllib2.py rename to pylib/Lib/test/test_urllib2.py diff --git a/Lib/test/test_urllib2_localnet.py b/pylib/Lib/test/test_urllib2_localnet.py similarity index 100% rename from Lib/test/test_urllib2_localnet.py rename to pylib/Lib/test/test_urllib2_localnet.py diff --git a/Lib/test/test_urllib2net.py b/pylib/Lib/test/test_urllib2net.py similarity index 100% rename from Lib/test/test_urllib2net.py rename to pylib/Lib/test/test_urllib2net.py diff --git a/Lib/test/test_urllib_response.py b/pylib/Lib/test/test_urllib_response.py similarity index 100% rename from Lib/test/test_urllib_response.py rename to pylib/Lib/test/test_urllib_response.py diff --git a/Lib/test/test_urllibnet.py b/pylib/Lib/test/test_urllibnet.py similarity index 100% rename from Lib/test/test_urllibnet.py rename to pylib/Lib/test/test_urllibnet.py diff --git a/Lib/test/test_urlparse.py b/pylib/Lib/test/test_urlparse.py similarity index 100% rename from Lib/test/test_urlparse.py rename to pylib/Lib/test/test_urlparse.py diff --git a/Lib/test/test_userdict.py b/pylib/Lib/test/test_userdict.py similarity index 100% rename from Lib/test/test_userdict.py rename to pylib/Lib/test/test_userdict.py diff --git a/Lib/test/test_userlist.py b/pylib/Lib/test/test_userlist.py similarity index 100% rename from Lib/test/test_userlist.py rename to pylib/Lib/test/test_userlist.py diff --git a/Lib/test/test_userstring.py b/pylib/Lib/test/test_userstring.py similarity index 100% rename from Lib/test/test_userstring.py rename to pylib/Lib/test/test_userstring.py diff --git a/Lib/test/test_utf8_mode.py b/pylib/Lib/test/test_utf8_mode.py similarity index 100% rename from Lib/test/test_utf8_mode.py rename to pylib/Lib/test/test_utf8_mode.py diff --git a/Lib/test/test_utf8source.py b/pylib/Lib/test/test_utf8source.py similarity index 100% rename from Lib/test/test_utf8source.py rename to pylib/Lib/test/test_utf8source.py diff --git a/Lib/test/test_uuid.py b/pylib/Lib/test/test_uuid.py similarity index 100% rename from Lib/test/test_uuid.py rename to pylib/Lib/test/test_uuid.py diff --git a/Lib/test/test_venv.py b/pylib/Lib/test/test_venv.py similarity index 100% rename from Lib/test/test_venv.py rename to pylib/Lib/test/test_venv.py diff --git a/Lib/test/test_wave.py b/pylib/Lib/test/test_wave.py similarity index 100% rename from Lib/test/test_wave.py rename to pylib/Lib/test/test_wave.py diff --git a/Lib/test/test_weakref.py b/pylib/Lib/test/test_weakref.py similarity index 100% rename from Lib/test/test_weakref.py rename to pylib/Lib/test/test_weakref.py diff --git a/Lib/test/test_weakset.py b/pylib/Lib/test/test_weakset.py similarity index 100% rename from Lib/test/test_weakset.py rename to pylib/Lib/test/test_weakset.py diff --git a/Lib/test/test_webbrowser.py b/pylib/Lib/test/test_webbrowser.py similarity index 100% rename from Lib/test/test_webbrowser.py rename to pylib/Lib/test/test_webbrowser.py diff --git a/Lib/test/test_winapi.py b/pylib/Lib/test/test_winapi.py similarity index 100% rename from Lib/test/test_winapi.py rename to pylib/Lib/test/test_winapi.py diff --git a/Lib/test/test_with.py b/pylib/Lib/test/test_with.py similarity index 100% rename from Lib/test/test_with.py rename to pylib/Lib/test/test_with.py diff --git a/Lib/test/test_wsgiref.py b/pylib/Lib/test/test_wsgiref.py similarity index 100% rename from Lib/test/test_wsgiref.py rename to pylib/Lib/test/test_wsgiref.py diff --git a/Lib/test/test_xml_dom_minicompat.py b/pylib/Lib/test/test_xml_dom_minicompat.py similarity index 100% rename from Lib/test/test_xml_dom_minicompat.py rename to pylib/Lib/test/test_xml_dom_minicompat.py diff --git a/Lib/test/test_xml_etree.py b/pylib/Lib/test/test_xml_etree.py similarity index 100% rename from Lib/test/test_xml_etree.py rename to pylib/Lib/test/test_xml_etree.py diff --git a/Lib/test/test_xmlrpc.py b/pylib/Lib/test/test_xmlrpc.py similarity index 100% rename from Lib/test/test_xmlrpc.py rename to pylib/Lib/test/test_xmlrpc.py diff --git a/Lib/test/test_yield_from.py b/pylib/Lib/test/test_yield_from.py similarity index 100% rename from Lib/test/test_yield_from.py rename to pylib/Lib/test/test_yield_from.py diff --git a/Lib/test/test_zipapp.py b/pylib/Lib/test/test_zipapp.py similarity index 100% rename from Lib/test/test_zipapp.py rename to pylib/Lib/test/test_zipapp.py diff --git a/Lib/test/test_zipfile.py b/pylib/Lib/test/test_zipfile.py similarity index 100% rename from Lib/test/test_zipfile.py rename to pylib/Lib/test/test_zipfile.py diff --git a/Lib/test/test_zipfile64.py b/pylib/Lib/test/test_zipfile64.py similarity index 100% rename from Lib/test/test_zipfile64.py rename to pylib/Lib/test/test_zipfile64.py diff --git a/Lib/test/test_zipimport.py b/pylib/Lib/test/test_zipimport.py similarity index 100% rename from Lib/test/test_zipimport.py rename to pylib/Lib/test/test_zipimport.py diff --git a/Lib/test/test_zlib.py b/pylib/Lib/test/test_zlib.py similarity index 100% rename from Lib/test/test_zlib.py rename to pylib/Lib/test/test_zlib.py diff --git a/Lib/test/test_zoneinfo/__init__.py b/pylib/Lib/test/test_zoneinfo/__init__.py similarity index 100% rename from Lib/test/test_zoneinfo/__init__.py rename to pylib/Lib/test/test_zoneinfo/__init__.py diff --git a/Lib/test/test_zoneinfo/__main__.py b/pylib/Lib/test/test_zoneinfo/__main__.py similarity index 100% rename from Lib/test/test_zoneinfo/__main__.py rename to pylib/Lib/test/test_zoneinfo/__main__.py diff --git a/Lib/test/test_zoneinfo/_support.py b/pylib/Lib/test/test_zoneinfo/_support.py similarity index 100% rename from Lib/test/test_zoneinfo/_support.py rename to pylib/Lib/test/test_zoneinfo/_support.py diff --git a/Lib/test/test_zoneinfo/data/update_test_data.py b/pylib/Lib/test/test_zoneinfo/data/update_test_data.py similarity index 100% rename from Lib/test/test_zoneinfo/data/update_test_data.py rename to pylib/Lib/test/test_zoneinfo/data/update_test_data.py diff --git a/Lib/test/test_zoneinfo/data/zoneinfo_data.json b/pylib/Lib/test/test_zoneinfo/data/zoneinfo_data.json similarity index 100% rename from Lib/test/test_zoneinfo/data/zoneinfo_data.json rename to pylib/Lib/test/test_zoneinfo/data/zoneinfo_data.json diff --git a/Lib/test/test_zoneinfo/test_zoneinfo.py b/pylib/Lib/test/test_zoneinfo/test_zoneinfo.py similarity index 100% rename from Lib/test/test_zoneinfo/test_zoneinfo.py rename to pylib/Lib/test/test_zoneinfo/test_zoneinfo.py diff --git a/Lib/test/test_zoneinfo/test_zoneinfo_property.py b/pylib/Lib/test/test_zoneinfo/test_zoneinfo_property.py similarity index 100% rename from Lib/test/test_zoneinfo/test_zoneinfo_property.py rename to pylib/Lib/test/test_zoneinfo/test_zoneinfo_property.py diff --git a/Lib/test/testcodec.py b/pylib/Lib/test/testcodec.py similarity index 100% rename from Lib/test/testcodec.py rename to pylib/Lib/test/testcodec.py diff --git a/Lib/test/testtar.tar b/pylib/Lib/test/testtar.tar similarity index 100% rename from Lib/test/testtar.tar rename to pylib/Lib/test/testtar.tar diff --git a/Lib/test/tf_inherit_check.py b/pylib/Lib/test/tf_inherit_check.py similarity index 100% rename from Lib/test/tf_inherit_check.py rename to pylib/Lib/test/tf_inherit_check.py diff --git a/Lib/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt b/pylib/Lib/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt similarity index 100% rename from Lib/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt rename to pylib/Lib/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt diff --git a/Lib/test/tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt b/pylib/Lib/test/tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt similarity index 100% rename from Lib/test/tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt rename to pylib/Lib/test/tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt diff --git a/Lib/test/tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt b/pylib/Lib/test/tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt similarity index 100% rename from Lib/test/tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt rename to pylib/Lib/test/tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt diff --git a/Lib/test/tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt b/pylib/Lib/test/tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt similarity index 100% rename from Lib/test/tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt rename to pylib/Lib/test/tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt diff --git a/Lib/test/tokenize_tests.txt b/pylib/Lib/test/tokenize_tests.txt similarity index 100% rename from Lib/test/tokenize_tests.txt rename to pylib/Lib/test/tokenize_tests.txt diff --git a/Lib/test/tracedmodules/__init__.py b/pylib/Lib/test/tracedmodules/__init__.py similarity index 100% rename from Lib/test/tracedmodules/__init__.py rename to pylib/Lib/test/tracedmodules/__init__.py diff --git a/Lib/test/tracedmodules/testmod.py b/pylib/Lib/test/tracedmodules/testmod.py similarity index 100% rename from Lib/test/tracedmodules/testmod.py rename to pylib/Lib/test/tracedmodules/testmod.py diff --git a/Lib/test/typinganndata/__init__.py b/pylib/Lib/test/typinganndata/__init__.py similarity index 100% rename from Lib/test/typinganndata/__init__.py rename to pylib/Lib/test/typinganndata/__init__.py diff --git a/Lib/test/typinganndata/ann_module.py b/pylib/Lib/test/typinganndata/ann_module.py similarity index 100% rename from Lib/test/typinganndata/ann_module.py rename to pylib/Lib/test/typinganndata/ann_module.py diff --git a/Lib/test/typinganndata/ann_module2.py b/pylib/Lib/test/typinganndata/ann_module2.py similarity index 100% rename from Lib/test/typinganndata/ann_module2.py rename to pylib/Lib/test/typinganndata/ann_module2.py diff --git a/Lib/test/typinganndata/ann_module3.py b/pylib/Lib/test/typinganndata/ann_module3.py similarity index 100% rename from Lib/test/typinganndata/ann_module3.py rename to pylib/Lib/test/typinganndata/ann_module3.py diff --git a/Lib/test/typinganndata/ann_module4.py b/pylib/Lib/test/typinganndata/ann_module4.py similarity index 100% rename from Lib/test/typinganndata/ann_module4.py rename to pylib/Lib/test/typinganndata/ann_module4.py diff --git a/Lib/test/typinganndata/ann_module5.py b/pylib/Lib/test/typinganndata/ann_module5.py similarity index 100% rename from Lib/test/typinganndata/ann_module5.py rename to pylib/Lib/test/typinganndata/ann_module5.py diff --git a/Lib/test/typinganndata/ann_module6.py b/pylib/Lib/test/typinganndata/ann_module6.py similarity index 100% rename from Lib/test/typinganndata/ann_module6.py rename to pylib/Lib/test/typinganndata/ann_module6.py diff --git a/Lib/test/typinganndata/ann_module7.py b/pylib/Lib/test/typinganndata/ann_module7.py similarity index 100% rename from Lib/test/typinganndata/ann_module7.py rename to pylib/Lib/test/typinganndata/ann_module7.py diff --git a/Lib/test/typinganndata/ann_module8.py b/pylib/Lib/test/typinganndata/ann_module8.py similarity index 100% rename from Lib/test/typinganndata/ann_module8.py rename to pylib/Lib/test/typinganndata/ann_module8.py diff --git a/Lib/test/typinganndata/ann_module9.py b/pylib/Lib/test/typinganndata/ann_module9.py similarity index 100% rename from Lib/test/typinganndata/ann_module9.py rename to pylib/Lib/test/typinganndata/ann_module9.py diff --git a/Lib/test/xmltestdata/c14n-20/README b/pylib/Lib/test/xmltestdata/c14n-20/README similarity index 100% rename from Lib/test/xmltestdata/c14n-20/README rename to pylib/Lib/test/xmltestdata/c14n-20/README diff --git a/Lib/test/xmltestdata/c14n-20/c14nComment.xml b/pylib/Lib/test/xmltestdata/c14n-20/c14nComment.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/c14nComment.xml rename to pylib/Lib/test/xmltestdata/c14n-20/c14nComment.xml diff --git a/Lib/test/xmltestdata/c14n-20/c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/c14nPrefix.xml b/pylib/Lib/test/xmltestdata/c14n-20/c14nPrefix.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/c14nPrefix.xml rename to pylib/Lib/test/xmltestdata/c14n-20/c14nPrefix.xml diff --git a/Lib/test/xmltestdata/c14n-20/c14nPrefixQname.xml b/pylib/Lib/test/xmltestdata/c14n-20/c14nPrefixQname.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/c14nPrefixQname.xml rename to pylib/Lib/test/xmltestdata/c14n-20/c14nPrefixQname.xml diff --git a/Lib/test/xmltestdata/c14n-20/c14nPrefixQnameXpathElem.xml b/pylib/Lib/test/xmltestdata/c14n-20/c14nPrefixQnameXpathElem.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/c14nPrefixQnameXpathElem.xml rename to pylib/Lib/test/xmltestdata/c14n-20/c14nPrefixQnameXpathElem.xml diff --git a/Lib/test/xmltestdata/c14n-20/c14nQname.xml b/pylib/Lib/test/xmltestdata/c14n-20/c14nQname.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/c14nQname.xml rename to pylib/Lib/test/xmltestdata/c14n-20/c14nQname.xml diff --git a/Lib/test/xmltestdata/c14n-20/c14nQnameElem.xml b/pylib/Lib/test/xmltestdata/c14n-20/c14nQnameElem.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/c14nQnameElem.xml rename to pylib/Lib/test/xmltestdata/c14n-20/c14nQnameElem.xml diff --git a/Lib/test/xmltestdata/c14n-20/c14nQnameXpathElem.xml b/pylib/Lib/test/xmltestdata/c14n-20/c14nQnameXpathElem.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/c14nQnameXpathElem.xml rename to pylib/Lib/test/xmltestdata/c14n-20/c14nQnameXpathElem.xml diff --git a/Lib/test/xmltestdata/c14n-20/c14nTrim.xml b/pylib/Lib/test/xmltestdata/c14n-20/c14nTrim.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/c14nTrim.xml rename to pylib/Lib/test/xmltestdata/c14n-20/c14nTrim.xml diff --git a/Lib/test/xmltestdata/c14n-20/doc.dtd b/pylib/Lib/test/xmltestdata/c14n-20/doc.dtd similarity index 100% rename from Lib/test/xmltestdata/c14n-20/doc.dtd rename to pylib/Lib/test/xmltestdata/c14n-20/doc.dtd diff --git a/Lib/test/xmltestdata/c14n-20/doc.xsl b/pylib/Lib/test/xmltestdata/c14n-20/doc.xsl similarity index 100% rename from Lib/test/xmltestdata/c14n-20/doc.xsl rename to pylib/Lib/test/xmltestdata/c14n-20/doc.xsl diff --git a/Lib/test/xmltestdata/c14n-20/inC14N1.xml b/pylib/Lib/test/xmltestdata/c14n-20/inC14N1.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inC14N1.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inC14N1.xml diff --git a/Lib/test/xmltestdata/c14n-20/inC14N2.xml b/pylib/Lib/test/xmltestdata/c14n-20/inC14N2.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inC14N2.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inC14N2.xml diff --git a/Lib/test/xmltestdata/c14n-20/inC14N3.xml b/pylib/Lib/test/xmltestdata/c14n-20/inC14N3.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inC14N3.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inC14N3.xml diff --git a/Lib/test/xmltestdata/c14n-20/inC14N4.xml b/pylib/Lib/test/xmltestdata/c14n-20/inC14N4.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inC14N4.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inC14N4.xml diff --git a/Lib/test/xmltestdata/c14n-20/inC14N5.xml b/pylib/Lib/test/xmltestdata/c14n-20/inC14N5.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inC14N5.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inC14N5.xml diff --git a/Lib/test/xmltestdata/c14n-20/inC14N6.xml b/pylib/Lib/test/xmltestdata/c14n-20/inC14N6.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inC14N6.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inC14N6.xml diff --git a/Lib/test/xmltestdata/c14n-20/inNsContent.xml b/pylib/Lib/test/xmltestdata/c14n-20/inNsContent.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inNsContent.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inNsContent.xml diff --git a/Lib/test/xmltestdata/c14n-20/inNsDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/inNsDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inNsDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inNsDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/inNsPushdown.xml b/pylib/Lib/test/xmltestdata/c14n-20/inNsPushdown.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inNsPushdown.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inNsPushdown.xml diff --git a/Lib/test/xmltestdata/c14n-20/inNsRedecl.xml b/pylib/Lib/test/xmltestdata/c14n-20/inNsRedecl.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inNsRedecl.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inNsRedecl.xml diff --git a/Lib/test/xmltestdata/c14n-20/inNsSort.xml b/pylib/Lib/test/xmltestdata/c14n-20/inNsSort.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inNsSort.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inNsSort.xml diff --git a/Lib/test/xmltestdata/c14n-20/inNsSuperfluous.xml b/pylib/Lib/test/xmltestdata/c14n-20/inNsSuperfluous.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inNsSuperfluous.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inNsSuperfluous.xml diff --git a/Lib/test/xmltestdata/c14n-20/inNsXml.xml b/pylib/Lib/test/xmltestdata/c14n-20/inNsXml.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/inNsXml.xml rename to pylib/Lib/test/xmltestdata/c14n-20/inNsXml.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N1_c14nComment.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N1_c14nComment.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N1_c14nComment.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N1_c14nComment.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N1_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N1_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N1_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N1_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N2_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N2_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N2_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N2_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N2_c14nTrim.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N2_c14nTrim.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N2_c14nTrim.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N2_c14nTrim.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nPrefix.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nPrefix.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nPrefix.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nPrefix.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nTrim.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nTrim.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nTrim.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N3_c14nTrim.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N4_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N4_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N4_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N4_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N4_c14nTrim.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N4_c14nTrim.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N4_c14nTrim.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N4_c14nTrim.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N5_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N5_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N5_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N5_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N5_c14nTrim.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N5_c14nTrim.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N5_c14nTrim.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N5_c14nTrim.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inC14N6_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inC14N6_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inC14N6_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inC14N6_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nPrefixQnameXpathElem.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nPrefixQnameXpathElem.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nPrefixQnameXpathElem.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nPrefixQnameXpathElem.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nQnameElem.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nQnameElem.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nQnameElem.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nQnameElem.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nQnameXpathElem.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nQnameXpathElem.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nQnameXpathElem.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsContent_c14nQnameXpathElem.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsDefault_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsDefault_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsDefault_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsDefault_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsDefault_c14nPrefix.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsDefault_c14nPrefix.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsDefault_c14nPrefix.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsDefault_c14nPrefix.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsPushdown_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsPushdown_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsPushdown_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsPushdown_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsPushdown_c14nPrefix.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsPushdown_c14nPrefix.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsPushdown_c14nPrefix.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsPushdown_c14nPrefix.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsRedecl_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsRedecl_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsRedecl_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsRedecl_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsRedecl_c14nPrefix.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsRedecl_c14nPrefix.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsRedecl_c14nPrefix.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsRedecl_c14nPrefix.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsSort_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsSort_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsSort_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsSort_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsSort_c14nPrefix.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsSort_c14nPrefix.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsSort_c14nPrefix.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsSort_c14nPrefix.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsSuperfluous_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsSuperfluous_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsSuperfluous_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsSuperfluous_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsSuperfluous_c14nPrefix.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsSuperfluous_c14nPrefix.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsSuperfluous_c14nPrefix.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsSuperfluous_c14nPrefix.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nDefault.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nDefault.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nDefault.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nDefault.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nPrefix.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nPrefix.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nPrefix.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nPrefix.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nPrefixQname.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nPrefixQname.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nPrefixQname.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nPrefixQname.xml diff --git a/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nQname.xml b/pylib/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nQname.xml similarity index 100% rename from Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nQname.xml rename to pylib/Lib/test/xmltestdata/c14n-20/out_inNsXml_c14nQname.xml diff --git a/Lib/test/xmltestdata/c14n-20/world.txt b/pylib/Lib/test/xmltestdata/c14n-20/world.txt similarity index 100% rename from Lib/test/xmltestdata/c14n-20/world.txt rename to pylib/Lib/test/xmltestdata/c14n-20/world.txt diff --git a/Lib/test/xmltestdata/expat224_utf8_bug.xml b/pylib/Lib/test/xmltestdata/expat224_utf8_bug.xml similarity index 100% rename from Lib/test/xmltestdata/expat224_utf8_bug.xml rename to pylib/Lib/test/xmltestdata/expat224_utf8_bug.xml diff --git a/Lib/test/xmltestdata/simple-ns.xml b/pylib/Lib/test/xmltestdata/simple-ns.xml similarity index 100% rename from Lib/test/xmltestdata/simple-ns.xml rename to pylib/Lib/test/xmltestdata/simple-ns.xml diff --git a/Lib/test/xmltestdata/simple.xml b/pylib/Lib/test/xmltestdata/simple.xml similarity index 100% rename from Lib/test/xmltestdata/simple.xml rename to pylib/Lib/test/xmltestdata/simple.xml diff --git a/Lib/test/xmltestdata/test.xml b/pylib/Lib/test/xmltestdata/test.xml similarity index 100% rename from Lib/test/xmltestdata/test.xml rename to pylib/Lib/test/xmltestdata/test.xml diff --git a/Lib/test/xmltestdata/test.xml.out b/pylib/Lib/test/xmltestdata/test.xml.out similarity index 100% rename from Lib/test/xmltestdata/test.xml.out rename to pylib/Lib/test/xmltestdata/test.xml.out diff --git a/Lib/test/xmltests.py b/pylib/Lib/test/xmltests.py similarity index 100% rename from Lib/test/xmltests.py rename to pylib/Lib/test/xmltests.py diff --git a/Lib/test/zip_cp437_header.zip b/pylib/Lib/test/zip_cp437_header.zip similarity index 100% rename from Lib/test/zip_cp437_header.zip rename to pylib/Lib/test/zip_cp437_header.zip diff --git a/Lib/test/zipdir.zip b/pylib/Lib/test/zipdir.zip similarity index 100% rename from Lib/test/zipdir.zip rename to pylib/Lib/test/zipdir.zip diff --git a/Lib/test/ziptestdata/README.md b/pylib/Lib/test/ziptestdata/README.md similarity index 100% rename from Lib/test/ziptestdata/README.md rename to pylib/Lib/test/ziptestdata/README.md diff --git a/Lib/test/ziptestdata/exe_with_z64 b/pylib/Lib/test/ziptestdata/exe_with_z64 similarity index 100% rename from Lib/test/ziptestdata/exe_with_z64 rename to pylib/Lib/test/ziptestdata/exe_with_z64 diff --git a/Lib/test/ziptestdata/exe_with_zip b/pylib/Lib/test/ziptestdata/exe_with_zip similarity index 100% rename from Lib/test/ziptestdata/exe_with_zip rename to pylib/Lib/test/ziptestdata/exe_with_zip diff --git a/Lib/test/ziptestdata/header.sh b/pylib/Lib/test/ziptestdata/header.sh similarity index 100% rename from Lib/test/ziptestdata/header.sh rename to pylib/Lib/test/ziptestdata/header.sh diff --git a/Lib/test/ziptestdata/testdata_module_inside_zip.py b/pylib/Lib/test/ziptestdata/testdata_module_inside_zip.py similarity index 100% rename from Lib/test/ziptestdata/testdata_module_inside_zip.py rename to pylib/Lib/test/ziptestdata/testdata_module_inside_zip.py diff --git a/Lib/textwrap.py b/pylib/Lib/textwrap.py similarity index 100% rename from Lib/textwrap.py rename to pylib/Lib/textwrap.py diff --git a/Lib/this.py b/pylib/Lib/this.py similarity index 100% rename from Lib/this.py rename to pylib/Lib/this.py diff --git a/Lib/threading.py b/pylib/Lib/threading.py similarity index 100% rename from Lib/threading.py rename to pylib/Lib/threading.py diff --git a/Lib/timeit.py b/pylib/Lib/timeit.py similarity index 100% rename from Lib/timeit.py rename to pylib/Lib/timeit.py diff --git a/Lib/tkinter/__init__.py b/pylib/Lib/tkinter/__init__.py similarity index 100% rename from Lib/tkinter/__init__.py rename to pylib/Lib/tkinter/__init__.py diff --git a/Lib/tkinter/__main__.py b/pylib/Lib/tkinter/__main__.py similarity index 100% rename from Lib/tkinter/__main__.py rename to pylib/Lib/tkinter/__main__.py diff --git a/Lib/tkinter/colorchooser.py b/pylib/Lib/tkinter/colorchooser.py similarity index 100% rename from Lib/tkinter/colorchooser.py rename to pylib/Lib/tkinter/colorchooser.py diff --git a/Lib/tkinter/commondialog.py b/pylib/Lib/tkinter/commondialog.py similarity index 100% rename from Lib/tkinter/commondialog.py rename to pylib/Lib/tkinter/commondialog.py diff --git a/Lib/tkinter/constants.py b/pylib/Lib/tkinter/constants.py similarity index 100% rename from Lib/tkinter/constants.py rename to pylib/Lib/tkinter/constants.py diff --git a/Lib/tkinter/dialog.py b/pylib/Lib/tkinter/dialog.py similarity index 100% rename from Lib/tkinter/dialog.py rename to pylib/Lib/tkinter/dialog.py diff --git a/Lib/tkinter/dnd.py b/pylib/Lib/tkinter/dnd.py similarity index 100% rename from Lib/tkinter/dnd.py rename to pylib/Lib/tkinter/dnd.py diff --git a/Lib/tkinter/filedialog.py b/pylib/Lib/tkinter/filedialog.py similarity index 100% rename from Lib/tkinter/filedialog.py rename to pylib/Lib/tkinter/filedialog.py diff --git a/Lib/tkinter/font.py b/pylib/Lib/tkinter/font.py similarity index 100% rename from Lib/tkinter/font.py rename to pylib/Lib/tkinter/font.py diff --git a/Lib/tkinter/messagebox.py b/pylib/Lib/tkinter/messagebox.py similarity index 100% rename from Lib/tkinter/messagebox.py rename to pylib/Lib/tkinter/messagebox.py diff --git a/Lib/tkinter/scrolledtext.py b/pylib/Lib/tkinter/scrolledtext.py similarity index 100% rename from Lib/tkinter/scrolledtext.py rename to pylib/Lib/tkinter/scrolledtext.py diff --git a/Lib/tkinter/simpledialog.py b/pylib/Lib/tkinter/simpledialog.py similarity index 100% rename from Lib/tkinter/simpledialog.py rename to pylib/Lib/tkinter/simpledialog.py diff --git a/Lib/tkinter/ttk.py b/pylib/Lib/tkinter/ttk.py similarity index 100% rename from Lib/tkinter/ttk.py rename to pylib/Lib/tkinter/ttk.py diff --git a/Lib/token.py b/pylib/Lib/token.py similarity index 100% rename from Lib/token.py rename to pylib/Lib/token.py diff --git a/Lib/tokenize.py b/pylib/Lib/tokenize.py similarity index 100% rename from Lib/tokenize.py rename to pylib/Lib/tokenize.py diff --git a/Lib/tomllib/__init__.py b/pylib/Lib/tomllib/__init__.py similarity index 100% rename from Lib/tomllib/__init__.py rename to pylib/Lib/tomllib/__init__.py diff --git a/Lib/tomllib/_parser.py b/pylib/Lib/tomllib/_parser.py similarity index 100% rename from Lib/tomllib/_parser.py rename to pylib/Lib/tomllib/_parser.py diff --git a/Lib/tomllib/_re.py b/pylib/Lib/tomllib/_re.py similarity index 100% rename from Lib/tomllib/_re.py rename to pylib/Lib/tomllib/_re.py diff --git a/Lib/tomllib/_types.py b/pylib/Lib/tomllib/_types.py similarity index 100% rename from Lib/tomllib/_types.py rename to pylib/Lib/tomllib/_types.py diff --git a/Lib/trace.py b/pylib/Lib/trace.py similarity index 100% rename from Lib/trace.py rename to pylib/Lib/trace.py diff --git a/Lib/traceback.py b/pylib/Lib/traceback.py similarity index 100% rename from Lib/traceback.py rename to pylib/Lib/traceback.py diff --git a/Lib/tty.py b/pylib/Lib/tty.py similarity index 100% rename from Lib/tty.py rename to pylib/Lib/tty.py diff --git a/Lib/types.py b/pylib/Lib/types.py similarity index 100% rename from Lib/types.py rename to pylib/Lib/types.py diff --git a/Lib/typing.py b/pylib/Lib/typing.py similarity index 100% rename from Lib/typing.py rename to pylib/Lib/typing.py diff --git a/Lib/unittest/__init__.py b/pylib/Lib/unittest/__init__.py similarity index 100% rename from Lib/unittest/__init__.py rename to pylib/Lib/unittest/__init__.py diff --git a/Lib/unittest/__main__.py b/pylib/Lib/unittest/__main__.py similarity index 100% rename from Lib/unittest/__main__.py rename to pylib/Lib/unittest/__main__.py diff --git a/Lib/unittest/_log.py b/pylib/Lib/unittest/_log.py similarity index 100% rename from Lib/unittest/_log.py rename to pylib/Lib/unittest/_log.py diff --git a/Lib/unittest/async_case.py b/pylib/Lib/unittest/async_case.py similarity index 100% rename from Lib/unittest/async_case.py rename to pylib/Lib/unittest/async_case.py diff --git a/Lib/unittest/case.py b/pylib/Lib/unittest/case.py similarity index 100% rename from Lib/unittest/case.py rename to pylib/Lib/unittest/case.py diff --git a/Lib/unittest/loader.py b/pylib/Lib/unittest/loader.py similarity index 100% rename from Lib/unittest/loader.py rename to pylib/Lib/unittest/loader.py diff --git a/Lib/unittest/main.py b/pylib/Lib/unittest/main.py similarity index 100% rename from Lib/unittest/main.py rename to pylib/Lib/unittest/main.py diff --git a/Lib/unittest/mock.py b/pylib/Lib/unittest/mock.py similarity index 100% rename from Lib/unittest/mock.py rename to pylib/Lib/unittest/mock.py diff --git a/Lib/unittest/result.py b/pylib/Lib/unittest/result.py similarity index 100% rename from Lib/unittest/result.py rename to pylib/Lib/unittest/result.py diff --git a/Lib/unittest/runner.py b/pylib/Lib/unittest/runner.py similarity index 100% rename from Lib/unittest/runner.py rename to pylib/Lib/unittest/runner.py diff --git a/Lib/unittest/signals.py b/pylib/Lib/unittest/signals.py similarity index 100% rename from Lib/unittest/signals.py rename to pylib/Lib/unittest/signals.py diff --git a/Lib/unittest/suite.py b/pylib/Lib/unittest/suite.py similarity index 100% rename from Lib/unittest/suite.py rename to pylib/Lib/unittest/suite.py diff --git a/Lib/unittest/test/__init__.py b/pylib/Lib/unittest/test/__init__.py similarity index 100% rename from Lib/unittest/test/__init__.py rename to pylib/Lib/unittest/test/__init__.py diff --git a/Lib/unittest/test/__main__.py b/pylib/Lib/unittest/test/__main__.py similarity index 100% rename from Lib/unittest/test/__main__.py rename to pylib/Lib/unittest/test/__main__.py diff --git a/Lib/unittest/test/_test_warnings.py b/pylib/Lib/unittest/test/_test_warnings.py similarity index 100% rename from Lib/unittest/test/_test_warnings.py rename to pylib/Lib/unittest/test/_test_warnings.py diff --git a/Lib/unittest/test/dummy.py b/pylib/Lib/unittest/test/dummy.py similarity index 100% rename from Lib/unittest/test/dummy.py rename to pylib/Lib/unittest/test/dummy.py diff --git a/Lib/unittest/test/support.py b/pylib/Lib/unittest/test/support.py similarity index 100% rename from Lib/unittest/test/support.py rename to pylib/Lib/unittest/test/support.py diff --git a/Lib/unittest/test/test_assertions.py b/pylib/Lib/unittest/test/test_assertions.py similarity index 100% rename from Lib/unittest/test/test_assertions.py rename to pylib/Lib/unittest/test/test_assertions.py diff --git a/Lib/unittest/test/test_async_case.py b/pylib/Lib/unittest/test/test_async_case.py similarity index 100% rename from Lib/unittest/test/test_async_case.py rename to pylib/Lib/unittest/test/test_async_case.py diff --git a/Lib/unittest/test/test_break.py b/pylib/Lib/unittest/test/test_break.py similarity index 100% rename from Lib/unittest/test/test_break.py rename to pylib/Lib/unittest/test/test_break.py diff --git a/Lib/unittest/test/test_case.py b/pylib/Lib/unittest/test/test_case.py similarity index 100% rename from Lib/unittest/test/test_case.py rename to pylib/Lib/unittest/test/test_case.py diff --git a/Lib/unittest/test/test_discovery.py b/pylib/Lib/unittest/test/test_discovery.py similarity index 100% rename from Lib/unittest/test/test_discovery.py rename to pylib/Lib/unittest/test/test_discovery.py diff --git a/Lib/unittest/test/test_functiontestcase.py b/pylib/Lib/unittest/test/test_functiontestcase.py similarity index 100% rename from Lib/unittest/test/test_functiontestcase.py rename to pylib/Lib/unittest/test/test_functiontestcase.py diff --git a/Lib/unittest/test/test_loader.py b/pylib/Lib/unittest/test/test_loader.py similarity index 100% rename from Lib/unittest/test/test_loader.py rename to pylib/Lib/unittest/test/test_loader.py diff --git a/Lib/unittest/test/test_program.py b/pylib/Lib/unittest/test/test_program.py similarity index 100% rename from Lib/unittest/test/test_program.py rename to pylib/Lib/unittest/test/test_program.py diff --git a/Lib/unittest/test/test_result.py b/pylib/Lib/unittest/test/test_result.py similarity index 100% rename from Lib/unittest/test/test_result.py rename to pylib/Lib/unittest/test/test_result.py diff --git a/Lib/unittest/test/test_runner.py b/pylib/Lib/unittest/test/test_runner.py similarity index 100% rename from Lib/unittest/test/test_runner.py rename to pylib/Lib/unittest/test/test_runner.py diff --git a/Lib/unittest/test/test_setups.py b/pylib/Lib/unittest/test/test_setups.py similarity index 100% rename from Lib/unittest/test/test_setups.py rename to pylib/Lib/unittest/test/test_setups.py diff --git a/Lib/unittest/test/test_skipping.py b/pylib/Lib/unittest/test/test_skipping.py similarity index 100% rename from Lib/unittest/test/test_skipping.py rename to pylib/Lib/unittest/test/test_skipping.py diff --git a/Lib/unittest/test/test_suite.py b/pylib/Lib/unittest/test/test_suite.py similarity index 100% rename from Lib/unittest/test/test_suite.py rename to pylib/Lib/unittest/test/test_suite.py diff --git a/Lib/unittest/test/testmock/__init__.py b/pylib/Lib/unittest/test/testmock/__init__.py similarity index 100% rename from Lib/unittest/test/testmock/__init__.py rename to pylib/Lib/unittest/test/testmock/__init__.py diff --git a/Lib/unittest/test/testmock/__main__.py b/pylib/Lib/unittest/test/testmock/__main__.py similarity index 100% rename from Lib/unittest/test/testmock/__main__.py rename to pylib/Lib/unittest/test/testmock/__main__.py diff --git a/Lib/unittest/test/testmock/support.py b/pylib/Lib/unittest/test/testmock/support.py similarity index 100% rename from Lib/unittest/test/testmock/support.py rename to pylib/Lib/unittest/test/testmock/support.py diff --git a/Lib/unittest/test/testmock/testasync.py b/pylib/Lib/unittest/test/testmock/testasync.py similarity index 100% rename from Lib/unittest/test/testmock/testasync.py rename to pylib/Lib/unittest/test/testmock/testasync.py diff --git a/Lib/unittest/test/testmock/testcallable.py b/pylib/Lib/unittest/test/testmock/testcallable.py similarity index 100% rename from Lib/unittest/test/testmock/testcallable.py rename to pylib/Lib/unittest/test/testmock/testcallable.py diff --git a/Lib/unittest/test/testmock/testhelpers.py b/pylib/Lib/unittest/test/testmock/testhelpers.py similarity index 100% rename from Lib/unittest/test/testmock/testhelpers.py rename to pylib/Lib/unittest/test/testmock/testhelpers.py diff --git a/Lib/unittest/test/testmock/testmagicmethods.py b/pylib/Lib/unittest/test/testmock/testmagicmethods.py similarity index 100% rename from Lib/unittest/test/testmock/testmagicmethods.py rename to pylib/Lib/unittest/test/testmock/testmagicmethods.py diff --git a/Lib/unittest/test/testmock/testmock.py b/pylib/Lib/unittest/test/testmock/testmock.py similarity index 100% rename from Lib/unittest/test/testmock/testmock.py rename to pylib/Lib/unittest/test/testmock/testmock.py diff --git a/Lib/unittest/test/testmock/testpatch.py b/pylib/Lib/unittest/test/testmock/testpatch.py similarity index 100% rename from Lib/unittest/test/testmock/testpatch.py rename to pylib/Lib/unittest/test/testmock/testpatch.py diff --git a/Lib/unittest/test/testmock/testsealable.py b/pylib/Lib/unittest/test/testmock/testsealable.py similarity index 100% rename from Lib/unittest/test/testmock/testsealable.py rename to pylib/Lib/unittest/test/testmock/testsealable.py diff --git a/Lib/unittest/test/testmock/testsentinel.py b/pylib/Lib/unittest/test/testmock/testsentinel.py similarity index 100% rename from Lib/unittest/test/testmock/testsentinel.py rename to pylib/Lib/unittest/test/testmock/testsentinel.py diff --git a/Lib/unittest/test/testmock/testwith.py b/pylib/Lib/unittest/test/testmock/testwith.py similarity index 100% rename from Lib/unittest/test/testmock/testwith.py rename to pylib/Lib/unittest/test/testmock/testwith.py diff --git a/Lib/unittest/util.py b/pylib/Lib/unittest/util.py similarity index 100% rename from Lib/unittest/util.py rename to pylib/Lib/unittest/util.py diff --git a/Lib/urllib/__init__.py b/pylib/Lib/urllib/__init__.py similarity index 100% rename from Lib/urllib/__init__.py rename to pylib/Lib/urllib/__init__.py diff --git a/Lib/urllib/error.py b/pylib/Lib/urllib/error.py similarity index 100% rename from Lib/urllib/error.py rename to pylib/Lib/urllib/error.py diff --git a/Lib/urllib/parse.py b/pylib/Lib/urllib/parse.py similarity index 100% rename from Lib/urllib/parse.py rename to pylib/Lib/urllib/parse.py diff --git a/Lib/urllib/request.py b/pylib/Lib/urllib/request.py similarity index 100% rename from Lib/urllib/request.py rename to pylib/Lib/urllib/request.py diff --git a/Lib/urllib/response.py b/pylib/Lib/urllib/response.py similarity index 100% rename from Lib/urllib/response.py rename to pylib/Lib/urllib/response.py diff --git a/Lib/urllib/robotparser.py b/pylib/Lib/urllib/robotparser.py similarity index 100% rename from Lib/urllib/robotparser.py rename to pylib/Lib/urllib/robotparser.py diff --git a/Lib/uuid.py b/pylib/Lib/uuid.py similarity index 100% rename from Lib/uuid.py rename to pylib/Lib/uuid.py diff --git a/Lib/venv/__init__.py b/pylib/Lib/venv/__init__.py similarity index 100% rename from Lib/venv/__init__.py rename to pylib/Lib/venv/__init__.py diff --git a/Lib/venv/__main__.py b/pylib/Lib/venv/__main__.py similarity index 100% rename from Lib/venv/__main__.py rename to pylib/Lib/venv/__main__.py diff --git a/Lib/venv/scripts/common/Activate.ps1 b/pylib/Lib/venv/scripts/common/Activate.ps1 similarity index 100% rename from Lib/venv/scripts/common/Activate.ps1 rename to pylib/Lib/venv/scripts/common/Activate.ps1 diff --git a/Lib/venv/scripts/common/activate b/pylib/Lib/venv/scripts/common/activate similarity index 100% rename from Lib/venv/scripts/common/activate rename to pylib/Lib/venv/scripts/common/activate diff --git a/Lib/venv/scripts/nt/activate.bat b/pylib/Lib/venv/scripts/nt/activate.bat similarity index 100% rename from Lib/venv/scripts/nt/activate.bat rename to pylib/Lib/venv/scripts/nt/activate.bat diff --git a/Lib/venv/scripts/nt/deactivate.bat b/pylib/Lib/venv/scripts/nt/deactivate.bat similarity index 100% rename from Lib/venv/scripts/nt/deactivate.bat rename to pylib/Lib/venv/scripts/nt/deactivate.bat diff --git a/Lib/venv/scripts/posix/activate.csh b/pylib/Lib/venv/scripts/posix/activate.csh similarity index 100% rename from Lib/venv/scripts/posix/activate.csh rename to pylib/Lib/venv/scripts/posix/activate.csh diff --git a/Lib/venv/scripts/posix/activate.fish b/pylib/Lib/venv/scripts/posix/activate.fish similarity index 100% rename from Lib/venv/scripts/posix/activate.fish rename to pylib/Lib/venv/scripts/posix/activate.fish diff --git a/Lib/warnings.py b/pylib/Lib/warnings.py similarity index 100% rename from Lib/warnings.py rename to pylib/Lib/warnings.py diff --git a/Lib/wave.py b/pylib/Lib/wave.py similarity index 100% rename from Lib/wave.py rename to pylib/Lib/wave.py diff --git a/Lib/weakref.py b/pylib/Lib/weakref.py similarity index 100% rename from Lib/weakref.py rename to pylib/Lib/weakref.py diff --git a/Lib/webbrowser.py b/pylib/Lib/webbrowser.py similarity index 100% rename from Lib/webbrowser.py rename to pylib/Lib/webbrowser.py diff --git a/Lib/wsgiref/__init__.py b/pylib/Lib/wsgiref/__init__.py similarity index 100% rename from Lib/wsgiref/__init__.py rename to pylib/Lib/wsgiref/__init__.py diff --git a/Lib/wsgiref/handlers.py b/pylib/Lib/wsgiref/handlers.py similarity index 100% rename from Lib/wsgiref/handlers.py rename to pylib/Lib/wsgiref/handlers.py diff --git a/Lib/wsgiref/headers.py b/pylib/Lib/wsgiref/headers.py similarity index 100% rename from Lib/wsgiref/headers.py rename to pylib/Lib/wsgiref/headers.py diff --git a/Lib/wsgiref/simple_server.py b/pylib/Lib/wsgiref/simple_server.py similarity index 100% rename from Lib/wsgiref/simple_server.py rename to pylib/Lib/wsgiref/simple_server.py diff --git a/Lib/wsgiref/util.py b/pylib/Lib/wsgiref/util.py similarity index 100% rename from Lib/wsgiref/util.py rename to pylib/Lib/wsgiref/util.py diff --git a/Lib/wsgiref/validate.py b/pylib/Lib/wsgiref/validate.py similarity index 100% rename from Lib/wsgiref/validate.py rename to pylib/Lib/wsgiref/validate.py diff --git a/Lib/xml/__init__.py b/pylib/Lib/xml/__init__.py similarity index 100% rename from Lib/xml/__init__.py rename to pylib/Lib/xml/__init__.py diff --git a/Lib/xml/dom/NodeFilter.py b/pylib/Lib/xml/dom/NodeFilter.py similarity index 100% rename from Lib/xml/dom/NodeFilter.py rename to pylib/Lib/xml/dom/NodeFilter.py diff --git a/Lib/xml/dom/__init__.py b/pylib/Lib/xml/dom/__init__.py similarity index 100% rename from Lib/xml/dom/__init__.py rename to pylib/Lib/xml/dom/__init__.py diff --git a/Lib/xml/dom/domreg.py b/pylib/Lib/xml/dom/domreg.py similarity index 100% rename from Lib/xml/dom/domreg.py rename to pylib/Lib/xml/dom/domreg.py diff --git a/Lib/xml/dom/expatbuilder.py b/pylib/Lib/xml/dom/expatbuilder.py similarity index 100% rename from Lib/xml/dom/expatbuilder.py rename to pylib/Lib/xml/dom/expatbuilder.py diff --git a/Lib/xml/dom/minicompat.py b/pylib/Lib/xml/dom/minicompat.py similarity index 100% rename from Lib/xml/dom/minicompat.py rename to pylib/Lib/xml/dom/minicompat.py diff --git a/Lib/xml/dom/minidom.py b/pylib/Lib/xml/dom/minidom.py similarity index 100% rename from Lib/xml/dom/minidom.py rename to pylib/Lib/xml/dom/minidom.py diff --git a/Lib/xml/dom/pulldom.py b/pylib/Lib/xml/dom/pulldom.py similarity index 100% rename from Lib/xml/dom/pulldom.py rename to pylib/Lib/xml/dom/pulldom.py diff --git a/Lib/xml/dom/xmlbuilder.py b/pylib/Lib/xml/dom/xmlbuilder.py similarity index 100% rename from Lib/xml/dom/xmlbuilder.py rename to pylib/Lib/xml/dom/xmlbuilder.py diff --git a/Lib/xml/etree/ElementInclude.py b/pylib/Lib/xml/etree/ElementInclude.py similarity index 100% rename from Lib/xml/etree/ElementInclude.py rename to pylib/Lib/xml/etree/ElementInclude.py diff --git a/Lib/xml/etree/ElementPath.py b/pylib/Lib/xml/etree/ElementPath.py similarity index 100% rename from Lib/xml/etree/ElementPath.py rename to pylib/Lib/xml/etree/ElementPath.py diff --git a/Lib/xml/etree/ElementTree.py b/pylib/Lib/xml/etree/ElementTree.py similarity index 100% rename from Lib/xml/etree/ElementTree.py rename to pylib/Lib/xml/etree/ElementTree.py diff --git a/Lib/xml/etree/__init__.py b/pylib/Lib/xml/etree/__init__.py similarity index 100% rename from Lib/xml/etree/__init__.py rename to pylib/Lib/xml/etree/__init__.py diff --git a/Lib/xml/etree/cElementTree.py b/pylib/Lib/xml/etree/cElementTree.py similarity index 100% rename from Lib/xml/etree/cElementTree.py rename to pylib/Lib/xml/etree/cElementTree.py diff --git a/Lib/xml/parsers/__init__.py b/pylib/Lib/xml/parsers/__init__.py similarity index 100% rename from Lib/xml/parsers/__init__.py rename to pylib/Lib/xml/parsers/__init__.py diff --git a/Lib/xml/parsers/expat.py b/pylib/Lib/xml/parsers/expat.py similarity index 100% rename from Lib/xml/parsers/expat.py rename to pylib/Lib/xml/parsers/expat.py diff --git a/Lib/xml/sax/__init__.py b/pylib/Lib/xml/sax/__init__.py similarity index 100% rename from Lib/xml/sax/__init__.py rename to pylib/Lib/xml/sax/__init__.py diff --git a/Lib/xml/sax/_exceptions.py b/pylib/Lib/xml/sax/_exceptions.py similarity index 100% rename from Lib/xml/sax/_exceptions.py rename to pylib/Lib/xml/sax/_exceptions.py diff --git a/Lib/xml/sax/expatreader.py b/pylib/Lib/xml/sax/expatreader.py similarity index 100% rename from Lib/xml/sax/expatreader.py rename to pylib/Lib/xml/sax/expatreader.py diff --git a/Lib/xml/sax/handler.py b/pylib/Lib/xml/sax/handler.py similarity index 100% rename from Lib/xml/sax/handler.py rename to pylib/Lib/xml/sax/handler.py diff --git a/Lib/xml/sax/saxutils.py b/pylib/Lib/xml/sax/saxutils.py similarity index 100% rename from Lib/xml/sax/saxutils.py rename to pylib/Lib/xml/sax/saxutils.py diff --git a/Lib/xml/sax/xmlreader.py b/pylib/Lib/xml/sax/xmlreader.py similarity index 100% rename from Lib/xml/sax/xmlreader.py rename to pylib/Lib/xml/sax/xmlreader.py diff --git a/Lib/xmlrpc/__init__.py b/pylib/Lib/xmlrpc/__init__.py similarity index 100% rename from Lib/xmlrpc/__init__.py rename to pylib/Lib/xmlrpc/__init__.py diff --git a/Lib/xmlrpc/client.py b/pylib/Lib/xmlrpc/client.py similarity index 100% rename from Lib/xmlrpc/client.py rename to pylib/Lib/xmlrpc/client.py diff --git a/Lib/xmlrpc/server.py b/pylib/Lib/xmlrpc/server.py similarity index 100% rename from Lib/xmlrpc/server.py rename to pylib/Lib/xmlrpc/server.py diff --git a/Lib/zipapp.py b/pylib/Lib/zipapp.py similarity index 100% rename from Lib/zipapp.py rename to pylib/Lib/zipapp.py diff --git a/Lib/zipfile.py b/pylib/Lib/zipfile.py similarity index 100% rename from Lib/zipfile.py rename to pylib/Lib/zipfile.py diff --git a/Lib/zipimport.py b/pylib/Lib/zipimport.py similarity index 100% rename from Lib/zipimport.py rename to pylib/Lib/zipimport.py diff --git a/Lib/zoneinfo/__init__.py b/pylib/Lib/zoneinfo/__init__.py similarity index 100% rename from Lib/zoneinfo/__init__.py rename to pylib/Lib/zoneinfo/__init__.py diff --git a/Lib/zoneinfo/_common.py b/pylib/Lib/zoneinfo/_common.py similarity index 100% rename from Lib/zoneinfo/_common.py rename to pylib/Lib/zoneinfo/_common.py diff --git a/Lib/zoneinfo/_tzpath.py b/pylib/Lib/zoneinfo/_tzpath.py similarity index 100% rename from Lib/zoneinfo/_tzpath.py rename to pylib/Lib/zoneinfo/_tzpath.py diff --git a/Lib/zoneinfo/_zoneinfo.py b/pylib/Lib/zoneinfo/_zoneinfo.py similarity index 100% rename from Lib/zoneinfo/_zoneinfo.py rename to pylib/Lib/zoneinfo/_zoneinfo.py From 6f351db6ffb170e00b6e7dc6b838aaabee9ce213 Mon Sep 17 00:00:00 2001 From: Simone_Pellacani Date: Fri, 25 Apr 2025 21:01:56 +0200 Subject: [PATCH 4/6] add gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 485272adfb..6a8f3f3795 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ /*/target **/*.rs.bk **/*.bytecode -__pycache__ +__pycache__/ **/*.pytest_cache .*sw* .repl_history.txt @@ -21,3 +21,5 @@ flamescope.json extra_tests/snippets/resources extra_tests/not_impl.py + +.venv/ \ No newline at end of file From 0a5b2a4cf094dce5ea08488879dd16c11b3e2edd Mon Sep 17 00:00:00 2001 From: Simone_Pellacani Date: Sat, 26 Apr 2025 00:41:03 +0200 Subject: [PATCH 5/6] mod readme --- README_main.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/README_main.md b/README_main.md index ec45ca4923..197b8a239c 100644 --- a/README_main.md +++ b/README_main.md @@ -1,28 +1,30 @@ # Master folder doc -- [README.md](README.md) -- [DEVELOPMENT.md](DEVELOPMENT.md) -- [code-of-conduct.md](code-of-conduct.md) +- [README](README.md) +- [DEVELOPMENT](DEVELOPMENT.md) +- [code-of-conduct](code-of-conduct.md) +- [architecture](architecture/architecture.md) # WASM -- [wasm/README.md](wasm/README.md) -- [wasm/lib/README.md](wasm/lib/README.md) -- [wasm/notebook/README.md](wasm/notebook/README.md) +- [wasm](wasm/README.md) +- [wasm/lib](wasm/lib/README.md) +- [wasm/notebook](wasm/notebook/README.md) # VM -- [vm/Lib/README.md](vm/Lib/README.md) +- [vm/Lib](vm/Lib/README.md) + # Benches -- [benches/README.md](benches/README.md) +- [benches](benches/README.md) # Extra -- [extra_tests/README.md](extra_tests/README.md) -- [Lib/test/ziptestdata/README.md](Lib/test/ziptestdata/README.md) -- [extra_tests/README.md](extra_tests/README.md) -- [Lib/test/ziptestdata/README.md](Lib/test/ziptestdata/README.md) +- [extra_tests](extra_tests/README.md) +- [Lib/test/ziptestdata](Lib/test/ziptestdata/README.md) +- [extra_tests](extra_tests/README.md) +- [Lib/test/ziptestdata](Lib/test/ziptestdata/README.md) # conduct From 81a2520f9126c537427fabb536b15be248021108 Mon Sep 17 00:00:00 2001 From: Simone_Pellacani Date: Sat, 26 Apr 2025 00:53:18 +0200 Subject: [PATCH 6/6] restore unused during refactor --- .cspell.dict/cpython.txt | 59 +++ .cspell.dict/python-more.txt | 257 ++++++++++ .cspell.dict/rust-more.txt | 83 +++ .cspell.json | 146 ++++++ .devcontainer/devcontainer.json | 4 + .dockerignore | 19 + .flake8 | 3 + .github/ISSUE_TEMPLATE/empty.md | 16 + .github/ISSUE_TEMPLATE/feature-request.md | 16 + .github/ISSUE_TEMPLATE/report-bug.md | 24 + .../ISSUE_TEMPLATE/report-incompatibility.md | 16 + .github/ISSUE_TEMPLATE/rfc.md | 24 + .github/dependabot.yml | 13 + .github/workflows/ci.yaml | 443 ++++++++++++++++ .github/workflows/cron-ci.yaml | 154 ++++++ .github/workflows/release.yml | 173 +++++++ .gitpod.Dockerfile | 21 + .gitpod.yml | 6 + .mailmap | 8 + .theia/launch.json | 16 + .theia/settings.json | 8 + Dockerfile.bin | 15 + Dockerfile.wasm | 32 ++ crawl_sourcecode.py | 83 +++ demo_closures.py | 13 + whats_left.py | 482 ++++++++++++++++++ 26 files changed, 2134 insertions(+) create mode 100644 .cspell.dict/cpython.txt create mode 100644 .cspell.dict/python-more.txt create mode 100644 .cspell.dict/rust-more.txt create mode 100644 .cspell.json create mode 100644 .devcontainer/devcontainer.json create mode 100644 .dockerignore create mode 100644 .flake8 create mode 100644 .github/ISSUE_TEMPLATE/empty.md create mode 100644 .github/ISSUE_TEMPLATE/feature-request.md create mode 100644 .github/ISSUE_TEMPLATE/report-bug.md create mode 100644 .github/ISSUE_TEMPLATE/report-incompatibility.md create mode 100644 .github/ISSUE_TEMPLATE/rfc.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/cron-ci.yaml create mode 100644 .github/workflows/release.yml create mode 100644 .gitpod.Dockerfile create mode 100644 .gitpod.yml create mode 100644 .mailmap create mode 100644 .theia/launch.json create mode 100644 .theia/settings.json create mode 100644 Dockerfile.bin create mode 100644 Dockerfile.wasm create mode 100644 crawl_sourcecode.py create mode 100644 demo_closures.py create mode 100755 whats_left.py diff --git a/.cspell.dict/cpython.txt b/.cspell.dict/cpython.txt new file mode 100644 index 0000000000..d28a4bb8c5 --- /dev/null +++ b/.cspell.dict/cpython.txt @@ -0,0 +1,59 @@ +argtypes +asdl +asname +augassign +badsyntax +basetype +boolop +bxor +cached_tsver +cellarg +cellvar +cellvars +cmpop +denom +dictoffset +elts +excepthandler +fileutils +finalbody +formatfloat +freevar +freevars +fromlist +heaptype +HIGHRES +IMMUTABLETYPE +kwonlyarg +kwonlyargs +lasti +linearise +maxdepth +mult +nkwargs +noraise +numer +orelse +pathconfig +patma +posonlyarg +posonlyargs +prec +preinitialized +PYTHREAD_NAME +SA_ONSTACK +stackdepth +stringlib +structseq +tok_oldval +unaryop +unparse +unparser +VARKEYWORDS +varkwarg +wbits +weakreflist +withitem +withs +xstat +XXPRIME \ No newline at end of file diff --git a/.cspell.dict/python-more.txt b/.cspell.dict/python-more.txt new file mode 100644 index 0000000000..0404428324 --- /dev/null +++ b/.cspell.dict/python-more.txt @@ -0,0 +1,257 @@ +abiflags +abstractmethods +aenter +aexit +aiter +anext +appendleft +argcount +arrayiterator +arraytype +asend +asyncgen +athrow +backslashreplace +baserepl +basicsize +bdfl +bigcharset +bignum +breakpointhook +cformat +chunksize +classcell +closefd +closesocket +codepoint +codepoints +codesize +contextvar +cpython +cratio +dealloc +debugbuild +decompressor +defaultaction +descr +dictcomp +dictitems +dictkeys +dictview +digestmod +dllhandle +docstring +docstrings +dunder +endianness +endpos +eventmask +excepthook +exceptiongroup +exitfuncs +extendleft +fastlocals +fdel +fedcba +fget +fileencoding +fillchar +fillvalue +finallyhandler +firstiter +firstlineno +fnctl +frombytes +fromhex +fromunicode +fset +fspath +fstring +fstrings +ftruncate +genexpr +getattro +getcodesize +getdefaultencoding +getfilesystemencodeerrors +getfilesystemencoding +getformat +getframe +getnewargs +getpip +getrandom +getrecursionlimit +getrefcount +getsizeof +getweakrefcount +getweakrefs +getwindowsversion +gmtoff +groupdict +groupindex +hamt +hostnames +idfunc +idiv +idxs +impls +indexgroup +infj +instancecheck +instanceof +irepeat +isabstractmethod +isbytes +iscased +isfinal +istext +itemiterator +itemsize +iternext +keepends +keyfunc +keyiterator +kwarg +kwargs +kwdefaults +kwonlyargcount +lastgroup +lastindex +linearization +linearize +listcomp +longrange +lvalue +mappingproxy +maskpri +maxdigits +MAXGROUPS +MAXREPEAT +maxsplit +maxunicode +memoryview +memoryviewiterator +metaclass +metaclasses +metatype +mformat +mro +mros +multiarch +namereplace +nanj +nbytes +ncallbacks +ndigits +ndim +nldecoder +nlocals +NOARGS +nonbytes +Nonprintable +origname +ospath +pendingcr +phello +platlibdir +popleft +posixsubprocess +posonly +posonlyargcount +prepending +profilefunc +pycache +pycodecs +pycs +pyexpat +PYTHONBREAKPOINT +PYTHONDEBUG +PYTHONHASHSEED +PYTHONHOME +PYTHONINSPECT +PYTHONOPTIMIZE +PYTHONPATH +PYTHONPATH +PYTHONSAFEPATH +PYTHONVERBOSE +PYTHONWARNDEFAULTENCODING +PYTHONWARNINGS +pytraverse +PYVENV +qualname +quotetabs +radd +rdiv +rdivmod +readall +readbuffer +reconstructor +refcnt +releaselevel +reverseitemiterator +reverseiterator +reversekeyiterator +reversevalueiterator +rfloordiv +rlshift +rmod +rpow +rrshift +rsub +rtruediv +rvalue +scproxy +seennl +setattro +setcomp +setrecursionlimit +showwarnmsg +signum +slotnames +STACKLESS +stacklevel +stacksize +startpos +subclassable +subclasscheck +subclasshook +suboffset +suboffsets +SUBPATTERN +sumprod +surrogateescape +surrogatepass +sysconf +sysconfigdata +sysvars +teedata +thisclass +titlecased +tkapp +tobytes +tolist +toreadonly +TPFLAGS +tracefunc +unimportable +unionable +unraisablehook +unsliceable +urandom +valueiterator +vararg +varargs +varnames +warningregistry +warnmsg +warnoptions +warnopts +weaklist +weakproxy +weakrefs +winver +withdata +xmlcharrefreplace +xoptions +xopts +yieldfrom diff --git a/.cspell.dict/rust-more.txt b/.cspell.dict/rust-more.txt new file mode 100644 index 0000000000..e5d5ac86c4 --- /dev/null +++ b/.cspell.dict/rust-more.txt @@ -0,0 +1,83 @@ +ahash +arrayvec +bidi +biguint +bindgen +bitflags +bitor +bstr +byteorder +byteset +caseless +chrono +consts +cranelift +cstring +datelike +deserializer +fdiv +flamescope +flate2 +fract +getres +hasher +hexf +hexversion +idents +illumos +indexmap +insta +keccak +lalrpop +lexopt +libc +libloading +libz +longlong +Manually +maplit +memmap +memmem +metas +modpow +msvc +muldiv +nanos +nonoverlapping +objclass +peekable +powc +powf +powi +prepended +punct +puruspe +replacen +rmatch +rposition +rsplitn +rustc +rustfmt +rustyline +seedable +seekfrom +siphash +siphasher +splitn +subsec +thiserror +timelike +timsort +trai +ulonglong +unic +unistd +unraw +unsync +wasip1 +wasip2 +wasmbind +wasmtime +widestring +winapi +winsock diff --git a/.cspell.json b/.cspell.json new file mode 100644 index 0000000000..98a03180fe --- /dev/null +++ b/.cspell.json @@ -0,0 +1,146 @@ +// See: https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell +{ + "version": "0.2", + "import": [ + "@cspell/dict-en_us/cspell-ext.json", + // "@cspell/dict-cpp/cspell-ext.json", + "@cspell/dict-python/cspell-ext.json", + "@cspell/dict-rust/cspell-ext.json", + "@cspell/dict-win32/cspell-ext.json", + "@cspell/dict-shell/cspell-ext.json", + ], + // language - current active spelling language + "language": "en", + // dictionaries - list of the names of the dictionaries to use + "dictionaries": [ + "cpython", // Sometimes keeping same terms with cpython is easy + "python-more", // Python API terms not listed in python + "rust-more", // Rust API terms not listed in rust + "en_US", + "softwareTerms", + "c", + "cpp", + "python", + "rust", + "shell", + "win32" + ], + // dictionaryDefinitions - this list defines any custom dictionaries to use + "dictionaryDefinitions": [ + { + "name": "cpython", + "path": "./.cspell.dict/cpython.txt" + }, + { + "name": "python-more", + "path": "./.cspell.dict/python-more.txt" + }, + { + "name": "rust-more", + "path": "./.cspell.dict/rust-more.txt" + } + ], + "ignorePaths": [ + "**/__pycache__/**", + "Lib/**" + ], + // words - list of words to be always considered correct + "words": [ + "RUSTPYTHONPATH", + // RustPython terms + "aiterable", + "alnum", + "baseclass", + "boxvec", + "Bytecode", + "cfgs", + "codegen", + "coro", + "dedentations", + "dedents", + "deduped", + "downcasted", + "dumpable", + "emscripten", + "excs", + "finalizer", + "GetSet", + "groupref", + "internable", + "lossily", + "makeunicodedata", + "miri", + "notrace", + "openat", + "pyarg", + "pyarg", + "pyargs", + "pyast", + "PyAttr", + "pyc", + "PyClass", + "PyClassMethod", + "PyException", + "PyFunction", + "pygetset", + "pyimpl", + "pylib", + "pymember", + "PyMethod", + "PyModule", + "pyname", + "pyobj", + "PyObject", + "pypayload", + "PyProperty", + "pyref", + "PyResult", + "pyslot", + "PyStaticMethod", + "pystone", + "pystr", + "pystruct", + "pystructseq", + "pytrace", + "reducelib", + "richcompare", + "RustPython", + "significand", + "struc", + "summands", // plural of summand + "sysmodule", + "tracebacks", + "typealiases", + "unconstructible", + "unhashable", + "uninit", + "unraisable", + "unresizable", + "wasi", + "zelf", + // unix + "CLOEXEC", + "codeset", + "endgrent", + "gethrvtime", + "getrusage", + "nanosleep", + "sigaction", + "WRLCK", + // win32 + "birthtime", + "IFEXEC", + ], + // flagWords - list of words to be always considered incorrect + "flagWords": [ + ], + "ignoreRegExpList": [ + ], + // languageSettings - allow for per programming language configuration settings. + "languageSettings": [ + { + "languageId": "python", + "locale": "en" + } + ] +} diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..d60eee2130 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,4 @@ +{ + "image": "mcr.microsoft.com/devcontainers/base:jammy", + "onCreateCommand": "curl https://sh.rustup.rs -sSf | sh -s -- -y" +} \ No newline at end of file diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..d22dc864b9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,19 @@ +**/target/ +**/*.rs.bk +**/*.bytecode +**/__pycache__/* +**/*.pytest_cache +.*sw* +.repl_history.txt +.vscode +wasm-pack.log +.idea/ +extra_tests/snippets/resources + +flame-graph.html +flame.txt +flamescope.json + +**/node_modules/ +wasm/**/dist/ +wasm/lib/pkg/ diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000000..f848263ced --- /dev/null +++ b/.flake8 @@ -0,0 +1,3 @@ +[flake8] +# black's line length +max-line-length = 88 diff --git a/.github/ISSUE_TEMPLATE/empty.md b/.github/ISSUE_TEMPLATE/empty.md new file mode 100644 index 0000000000..6cdafc6653 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/empty.md @@ -0,0 +1,16 @@ +--- +name: Generic issue template +about: which is not covered by other templates +title: '' +labels: +assignees: '' + +--- + +## Summary + + + +## Details + + diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 0000000000..cb47cb1744 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,16 @@ +--- +name: Feature request +about: Request a feature to use RustPython (as a Rust library) +title: '' +labels: C-enhancement +assignees: 'youknowone' + +--- + +## Summary + + + +## Expected use case + + diff --git a/.github/ISSUE_TEMPLATE/report-bug.md b/.github/ISSUE_TEMPLATE/report-bug.md new file mode 100644 index 0000000000..f25b035232 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/report-bug.md @@ -0,0 +1,24 @@ +--- +name: Report bugs +about: Report a bug not related to CPython compatibility +title: '' +labels: C-bug +assignees: '' + +--- + +## Summary + + + +## Expected + + + +## Actual + + + +## Python Documentation + + diff --git a/.github/ISSUE_TEMPLATE/report-incompatibility.md b/.github/ISSUE_TEMPLATE/report-incompatibility.md new file mode 100644 index 0000000000..d8e50a75ce --- /dev/null +++ b/.github/ISSUE_TEMPLATE/report-incompatibility.md @@ -0,0 +1,16 @@ +--- +name: Report incompatibility +about: Report an incompatibility between RustPython and CPython +title: '' +labels: C-compat +assignees: '' + +--- + +## Feature + + + +## Python Documentation or reference to CPython source code + + diff --git a/.github/ISSUE_TEMPLATE/rfc.md b/.github/ISSUE_TEMPLATE/rfc.md new file mode 100644 index 0000000000..84a7b19ce7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/rfc.md @@ -0,0 +1,24 @@ +--- +name: RFC +about: Make a suggestion in a Request for Comments format to RustPython +title: "[RFC] " +labels: RFC +assignees: '' + +--- + +## Summary + + + +## Detailed Explanation + + + +## Drawbacks, Rationale, and Alternatives + + + +## Unresolved Questions + + diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..be006de9a1 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +# Keep GitHub Actions up to date with GitHub's Dependabot... +# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot +# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + groups: + github-actions: + patterns: + - "*" # Group all Actions updates into a single larger pull request + schedule: + interval: weekly diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000000..4e51d48953 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,443 @@ +on: + push: + branches: [main, release] + pull_request: + types: [unlabeled, opened, synchronize, reopened] + merge_group: + workflow_dispatch: + +name: CI + +# Cancel previous workflows if they are the same workflow on same ref (branch/tags) +# with the same event (push/pull_request) even they are in progress. +# This setting will help reduce the number of duplicated workflows. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} + cancel-in-progress: true + +env: + CARGO_ARGS: --no-default-features --features stdlib,importlib,stdio,encodings,sqlite,ssl + # Skip additional tests on Windows. They are checked on Linux and MacOS. + # test_glob: many failing tests + # test_io: many failing tests + # test_os: many failing tests + # test_pathlib: support.rmtree() failing + # test_posixpath: OSError: (22, 'The filename, directory name, or volume label syntax is incorrect. (os error 123)') + # test_venv: couple of failing tests + WINDOWS_SKIPS: >- + test_glob + test_io + test_os + test_rlcompleter + test_pathlib + test_posixpath + test_venv + # configparser: https://github.com/RustPython/RustPython/issues/4995#issuecomment-1582397417 + # socketserver: seems related to configparser crash. + MACOS_SKIPS: >- + test_configparser + test_socketserver + # PLATFORM_INDEPENDENT_TESTS are tests that do not depend on the underlying OS. They are currently + # only run on Linux to speed up the CI. + PLATFORM_INDEPENDENT_TESTS: >- + test__colorize + test_array + test_asyncgen + test_binop + test_bisect + test_bool + test_bytes + test_call + test_class + test_cmath + test_collections + test_complex + test_contains + test_copy + test_dataclasses + test_decimal + test_decorators + test_defaultdict + test_deque + test_dict + test_dictcomps + test_dictviews + test_dis + test_enumerate + test_exception_variations + test_float + test_format + test_fractions + test_genericalias + test_genericclass + test_grammar + test_range + test_index + test_int + test_int_literal + test_isinstance + test_iter + test_iterlen + test_itertools + test_json + test_keyword + test_keywordonlyarg + test_list + test_long + test_longexp + test_math + test_operator + test_ordered_dict + test_pow + test_raise + test_richcmp + test_scope + test_set + test_slice + test_sort + test_string + test_string_literals + test_strtod + test_structseq + test_subclassinit + test_super + test_syntax + test_tuple + test_types + test_unary + test_unpack + test_weakref + test_yield_from + # Python version targeted by the CI. + PYTHON_VERSION: "3.13.1" + +jobs: + rust_tests: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} + env: + RUST_BACKTRACE: full + name: Run rust tests + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, ubuntu-latest, windows-latest] + fail-fast: false + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + components: clippy + - uses: Swatinem/rust-cache@v2 + + - name: Set up the Windows environment + shell: bash + run: | + git config --system core.longpaths true + cargo install --target-dir=target -v cargo-vcpkg + cargo vcpkg -v build + if: runner.os == 'Windows' + - name: Set up the Mac environment + run: brew install autoconf automake libtool + if: runner.os == 'macOS' + + - name: run clippy + run: cargo clippy ${{ env.CARGO_ARGS }} --workspace --all-targets --exclude rustpython_wasm -- -Dwarnings + + - name: run rust tests + run: cargo test --workspace --exclude rustpython_wasm --verbose --features threading ${{ env.CARGO_ARGS }} + if: runner.os != 'macOS' + - name: run rust tests + run: cargo test --workspace --exclude rustpython_wasm --exclude rustpython-jit --verbose --features threading ${{ env.CARGO_ARGS }} + if: runner.os == 'macOS' + + - name: check compilation without threading + run: cargo check ${{ env.CARGO_ARGS }} + + - name: Test example projects + run: + cargo run --manifest-path example_projects/barebone/Cargo.toml + cargo run --manifest-path example_projects/frozen_stdlib/Cargo.toml + if: runner.os == 'Linux' + + - name: prepare AppleSilicon build + uses: dtolnay/rust-toolchain@stable + with: + target: aarch64-apple-darwin + if: runner.os == 'macOS' + - name: Check compilation for Apple Silicon + run: cargo check --target aarch64-apple-darwin + if: runner.os == 'macOS' + - name: prepare iOS build + uses: dtolnay/rust-toolchain@stable + with: + target: aarch64-apple-ios + if: runner.os == 'macOS' + - name: Check compilation for iOS + run: cargo check --target aarch64-apple-ios + if: runner.os == 'macOS' + + exotic_targets: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} + name: Ensure compilation on various targets + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + target: i686-unknown-linux-gnu + + - name: Install gcc-multilib and musl-tools + run: sudo apt-get update && sudo apt-get install gcc-multilib musl-tools + - name: Check compilation for x86 32bit + run: cargo check --target i686-unknown-linux-gnu + + - uses: dtolnay/rust-toolchain@stable + with: + target: aarch64-linux-android + + - name: Check compilation for android + run: cargo check --target aarch64-linux-android + + - uses: dtolnay/rust-toolchain@stable + with: + target: aarch64-unknown-linux-gnu + + - name: Install gcc-aarch64-linux-gnu + run: sudo apt install gcc-aarch64-linux-gnu + - name: Check compilation for aarch64 linux gnu + run: cargo check --target aarch64-unknown-linux-gnu + + - uses: dtolnay/rust-toolchain@stable + with: + target: i686-unknown-linux-musl + + - name: Check compilation for musl + run: cargo check --target i686-unknown-linux-musl + + - uses: dtolnay/rust-toolchain@stable + with: + target: x86_64-unknown-freebsd + + - name: Check compilation for freebsd + run: cargo check --target x86_64-unknown-freebsd + + - uses: dtolnay/rust-toolchain@stable + with: + target: x86_64-unknown-freebsd + + - name: Check compilation for freeBSD + run: cargo check --target x86_64-unknown-freebsd + + - name: Prepare repository for redox compilation + run: bash scripts/redox/uncomment-cargo.sh + - name: Check compilation for Redox + uses: coolreader18/redoxer-action@v1 + with: + command: check + args: --ignore-rust-version + + snippets_cpython: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} + env: + RUST_BACKTRACE: full + name: Run snippets and cpython tests + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, ubuntu-latest, windows-latest] + fail-fast: false + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: Set up the Windows environment + shell: bash + run: | + git config --system core.longpaths true + cargo install cargo-vcpkg + cargo vcpkg build + if: runner.os == 'Windows' + - name: Set up the Mac environment + run: brew install autoconf automake libtool openssl@3 + if: runner.os == 'macOS' + - name: build rustpython + run: cargo build --release --verbose --features=threading ${{ env.CARGO_ARGS }} + if: runner.os == 'macOS' + - name: build rustpython + run: cargo build --release --verbose --features=threading ${{ env.CARGO_ARGS }},jit + if: runner.os != 'macOS' + - uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: run snippets + run: python -m pip install -r requirements.txt && pytest -v + working-directory: ./extra_tests + - if: runner.os == 'Linux' + name: run cpython platform-independent tests + run: + target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed -v ${{ env.PLATFORM_INDEPENDENT_TESTS }} + - if: runner.os == 'Linux' + name: run cpython platform-dependent tests (Linux) + run: target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed -v -x ${{ env.PLATFORM_INDEPENDENT_TESTS }} + - if: runner.os == 'macOS' + name: run cpython platform-dependent tests (MacOS) + run: target/release/rustpython -m test -j 1 --slowest --fail-env-changed -v -x ${{ env.PLATFORM_INDEPENDENT_TESTS }} ${{ env.MACOS_SKIPS }} + - if: runner.os == 'Windows' + name: run cpython platform-dependent tests (windows partial - fixme) + run: + target/release/rustpython -m test -j 1 --slowest --fail-env-changed -v -x ${{ env.PLATFORM_INDEPENDENT_TESTS }} ${{ env.WINDOWS_SKIPS }} + - if: runner.os != 'Windows' + name: check that --install-pip succeeds + run: | + mkdir site-packages + target/release/rustpython --install-pip ensurepip --user + target/release/rustpython -m pip install six + - if: runner.os != 'Windows' + name: Check that ensurepip succeeds. + run: | + target/release/rustpython -m ensurepip + target/release/rustpython -c "import pip" + - if: runner.os != 'Windows' + name: Check if pip inside venv is functional + run: | + target/release/rustpython -m venv testvenv + testvenv/bin/rustpython -m pip install wheel + - name: Check whats_left is not broken + run: python -I whats_left.py + + lint: + name: Check Rust code with rustfmt and clippy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt, clippy + - name: run rustfmt + run: cargo fmt --check + - name: run clippy on wasm + run: cargo clippy --manifest-path=wasm/lib/Cargo.toml -- -Dwarnings + - uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: install ruff + run: python -m pip install ruff==0.0.291 # astral-sh/ruff#7778 + - name: Ensure docs generate no warnings + run: cargo doc + - name: run python lint + run: ruff extra_tests wasm examples --exclude='./.*',./Lib,./vm/Lib,./benches/ --select=E9,F63,F7,F82 --show-source + - name: install prettier + run: yarn global add prettier && echo "$(yarn global bin)" >>$GITHUB_PATH + - name: check wasm code with prettier + # prettier doesn't handle ignore files very well: https://github.com/prettier/prettier/issues/8506 + run: cd wasm && git ls-files -z | xargs -0 prettier --check -u + # Keep cspell check as the last step. This is optional test. + - name: install extra dictionaries + run: npm install @cspell/dict-en_us @cspell/dict-cpp @cspell/dict-python @cspell/dict-rust @cspell/dict-win32 @cspell/dict-shell + - name: spell checker + uses: streetsidesoftware/cspell-action@v6 + with: + files: '**/*.rs' + incremental_files_only: true + + miri: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} + name: Run tests under miri + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: nightly + components: miri + + - uses: Swatinem/rust-cache@v2 + - name: Run tests under miri + # miri-ignore-leaks because the type-object circular reference means that there will always be + # a memory leak, at least until we have proper cyclic gc + run: MIRIFLAGS='-Zmiri-ignore-leaks' cargo +nightly miri test -p rustpython-vm -- miri_test + + wasm: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} + name: Check the WASM package and demo + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + + - uses: Swatinem/rust-cache@v2 + - name: install wasm-pack + run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh + - name: install geckodriver + run: | + wget https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux64.tar.gz + mkdir geckodriver + tar -xzf geckodriver-v0.36.0-linux64.tar.gz -C geckodriver + - uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHON_VERSION }} + - run: python -m pip install -r requirements.txt + working-directory: ./wasm/tests + - uses: actions/setup-node@v4 + with: + cache: "npm" + cache-dependency-path: "wasm/demo/package-lock.json" + - name: run test + run: | + export PATH=$PATH:`pwd`/../../geckodriver + npm install + npm run test + env: + NODE_OPTIONS: "--openssl-legacy-provider" + working-directory: ./wasm/demo + - uses: mwilliamson/setup-wabt-action@v3 + with: { wabt-version: "1.0.36" } + - name: check wasm32-unknown without js + run: | + cd wasm/wasm-unknown-test + cargo build --release --verbose + if wasm-objdump -xj Import target/wasm32-unknown-unknown/release/wasm_unknown_test.wasm; then + echo "ERROR: wasm32-unknown module expects imports from the host environment" >2 + fi + - name: build notebook demo + if: github.ref == 'refs/heads/release' + run: | + npm install + npm run dist + mv dist ../demo/dist/notebook + env: + NODE_OPTIONS: "--openssl-legacy-provider" + working-directory: ./wasm/notebook + - name: Deploy demo to Github Pages + if: success() && github.ref == 'refs/heads/release' + uses: peaceiris/actions-gh-pages@v4 + env: + ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEMO_DEPLOY_KEY }} + PUBLISH_DIR: ./wasm/demo/dist + EXTERNAL_REPOSITORY: RustPython/demo + PUBLISH_BRANCH: master + + wasm-wasi: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }} + name: Run snippets and cpython tests on wasm-wasi + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + target: wasm32-wasip1 + + - uses: Swatinem/rust-cache@v2 + - name: Setup Wasmer + uses: wasmerio/setup-wasmer@v3 + - name: Install clang + run: sudo apt-get update && sudo apt-get install clang -y + - name: build rustpython + run: cargo build --release --target wasm32-wasip1 --features freeze-stdlib,stdlib --verbose + - name: run snippets + run: wasmer run --dir `pwd` target/wasm32-wasip1/release/rustpython.wasm -- `pwd`/extra_tests/snippets/stdlib_random.py + - name: run cpython unittest + run: wasmer run --dir `pwd` target/wasm32-wasip1/release/rustpython.wasm -- `pwd`/Lib/test/test_int.py diff --git a/.github/workflows/cron-ci.yaml b/.github/workflows/cron-ci.yaml new file mode 100644 index 0000000000..4e88d749fb --- /dev/null +++ b/.github/workflows/cron-ci.yaml @@ -0,0 +1,154 @@ +on: + schedule: + - cron: '0 0 * * 6' + workflow_dispatch: + push: + paths: + - .github/workflows/cron-ci.yaml + +name: Periodic checks/tasks + +env: + CARGO_ARGS: --no-default-features --features stdlib,importlib,encodings,ssl,jit + PYTHON_VERSION: "3.13.1" + +jobs: + # codecov collects code coverage data from the rust tests, python snippets and python test suite. + # This is done using cargo-llvm-cov, which is a wrapper around llvm-cov. + codecov: + name: Collect code coverage data + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: taiki-e/install-action@cargo-llvm-cov + - uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHON_VERSION }} + - run: sudo apt-get update && sudo apt-get -y install lcov + - name: Run cargo-llvm-cov with Rust tests. + run: cargo llvm-cov --no-report --workspace --exclude rustpython_wasm --verbose --no-default-features --features stdlib,importlib,encodings,ssl,jit + - name: Run cargo-llvm-cov with Python snippets. + run: python scripts/cargo-llvm-cov.py + continue-on-error: true + - name: Run cargo-llvm-cov with Python test suite. + run: cargo llvm-cov --no-report run -- -m test -u all --slowest --fail-env-changed + continue-on-error: true + - name: Prepare code coverage data + run: cargo llvm-cov report --lcov --output-path='codecov.lcov' + - name: Upload to Codecov + uses: codecov/codecov-action@v5 + with: + file: ./codecov.lcov + + testdata: + name: Collect regression test data + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: build rustpython + run: cargo build --release --verbose + - name: collect tests data + run: cargo run --release extra_tests/jsontests.py + env: + RUSTPYTHONPATH: ${{ github.workspace }}/Lib + - name: upload tests data to the website + env: + SSHKEY: ${{ secrets.ACTIONS_TESTS_DATA_DEPLOY_KEY }} + GITHUB_ACTOR: ${{ github.actor }} + run: | + echo "$SSHKEY" >~/github_key + chmod 600 ~/github_key + export GIT_SSH_COMMAND="ssh -i ~/github_key" + + git clone git@github.com:RustPython/rustpython.github.io.git website + cd website + cp ../extra_tests/cpython_tests_results.json ./_data/regrtests_results.json + git add ./_data/regrtests_results.json + if git -c user.name="Github Actions" -c user.email="actions@github.com" commit -m "Update regression test results" --author="$GITHUB_ACTOR"; then + git push + fi + + whatsleft: + name: Collect what is left data + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: build rustpython + run: cargo build --release --verbose + - name: Collect what is left data + run: | + chmod +x ./whats_left.py + ./whats_left.py > whats_left.temp + env: + RUSTPYTHONPATH: ${{ github.workspace }}/Lib + - name: Upload data to the website + env: + SSHKEY: ${{ secrets.ACTIONS_TESTS_DATA_DEPLOY_KEY }} + GITHUB_ACTOR: ${{ github.actor }} + run: | + echo "$SSHKEY" >~/github_key + chmod 600 ~/github_key + export GIT_SSH_COMMAND="ssh -i ~/github_key" + + git clone git@github.com:RustPython/rustpython.github.io.git website + cd website + [ -f ./_data/whats_left.temp ] && cp ./_data/whats_left.temp ./_data/whats_left_lastrun.temp + cp ../whats_left.temp ./_data/whats_left.temp + rm ./_data/whats_left/modules.csv + echo -e "module" > ./_data/whats_left/modules.csv + cat ./_data/whats_left.temp | grep "(entire module)" | cut -d ' ' -f 1 | sort >> ./_data/whats_left/modules.csv + git add -A + if git -c user.name="Github Actions" -c user.email="actions@github.com" commit -m "Update what is left results" --author="$GITHUB_ACTOR"; then + git push + fi + + benchmark: + name: Collect benchmark data + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: actions/setup-python@v5 + with: + python-version: 3.9 + - run: cargo install cargo-criterion + - name: build benchmarks + run: cargo build --release --benches + - name: collect execution benchmark data + run: cargo criterion --bench execution + - name: collect microbenchmarks data + run: cargo criterion --bench microbenchmarks + - name: restructure generated files + run: | + cd ./target/criterion/reports + find -type d -name cpython | xargs rm -rf + find -type d -name rustpython | xargs rm -rf + find -mindepth 2 -maxdepth 2 -name violin.svg | xargs rm -rf + find -type f -not -name violin.svg | xargs rm -rf + for file in $(find -type f -name violin.svg); do mv $file $(echo $file | sed -E "s_\./([^/]+)/([^/]+)/violin\.svg_./\1/\2.svg_"); done + find -mindepth 2 -maxdepth 2 -type d | xargs rm -rf + cd .. + mv reports/* . + rmdir reports + - name: upload benchmark data to the website + env: + SSHKEY: ${{ secrets.ACTIONS_TESTS_DATA_DEPLOY_KEY }} + run: | + echo "$SSHKEY" >~/github_key + chmod 600 ~/github_key + export GIT_SSH_COMMAND="ssh -i ~/github_key" + + git clone git@github.com:RustPython/rustpython.github.io.git website + cd website + rm -rf ./assets/criterion + cp -r ../target/criterion ./assets/criterion + git add ./assets/criterion + if git -c user.name="Github Actions" -c user.email="actions@github.com" commit -m "Update benchmark results"; then + git push + fi diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000000..f6a1ad3209 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,173 @@ +name: Release + +on: + schedule: + # 9 AM UTC on every Monday + - cron: "0 9 * * Mon" + workflow_dispatch: + inputs: + pre-release: + type: boolean + description: Mark "Pre-Release" + required: false + default: true + +permissions: + contents: write + +env: + CARGO_ARGS: --no-default-features --features stdlib,importlib,encodings,sqlite,ssl + +jobs: + build: + runs-on: ${{ matrix.platform.runner }} + strategy: + matrix: + platform: + - runner: ubuntu-latest + target: x86_64-unknown-linux-gnu +# - runner: ubuntu-latest +# target: i686-unknown-linux-gnu +# - runner: ubuntu-latest +# target: aarch64-unknown-linux-gnu +# - runner: ubuntu-latest +# target: armv7-unknown-linux-gnueabi +# - runner: ubuntu-latest +# target: s390x-unknown-linux-gnu +# - runner: ubuntu-latest +# target: powerpc64le-unknown-linux-gnu + - runner: macos-latest + target: aarch64-apple-darwin +# - runner: macos-latest +# target: x86_64-apple-darwin + - runner: windows-latest + target: x86_64-pc-windows-msvc +# - runner: windows-latest +# target: i686-pc-windows-msvc +# - runner: windows-latest +# target: aarch64-pc-windows-msvc + fail-fast: false + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: cargo-bins/cargo-binstall@main + + - name: Set up Environment + shell: bash + run: rustup target add ${{ matrix.platform.target }} + - name: Set up Windows Environment + shell: bash + run: | + git config --global core.longpaths true + cargo install --target-dir=target -v cargo-vcpkg + cargo vcpkg -v build + if: runner.os == 'Windows' + - name: Set up MacOS Environment + run: brew install autoconf automake libtool + if: runner.os == 'macOS' + + - name: Build RustPython + run: cargo build --release --target=${{ matrix.platform.target }} --verbose --features=threading ${{ env.CARGO_ARGS }} + if: runner.os == 'macOS' + - name: Build RustPython + run: cargo build --release --target=${{ matrix.platform.target }} --verbose --features=threading ${{ env.CARGO_ARGS }},jit + if: runner.os != 'macOS' + + - name: Rename Binary + run: cp target/${{ matrix.platform.target }}/release/rustpython target/rustpython-release-${{ runner.os }}-${{ matrix.platform.target }} + if: runner.os != 'Windows' + - name: Rename Binary + run: cp target/${{ matrix.platform.target }}/release/rustpython.exe target/rustpython-release-${{ runner.os }}-${{ matrix.platform.target }}.exe + if: runner.os == 'Windows' + + - name: Upload Binary Artifacts + uses: actions/upload-artifact@v4 + with: + name: rustpython-release-${{ runner.os }}-${{ matrix.platform.target }} + path: target/rustpython-release-${{ runner.os }}-${{ matrix.platform.target }}* + + build-wasm: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + targets: wasm32-wasip1 + + - name: Build RustPython + run: cargo build --target wasm32-wasip1 --no-default-features --features freeze-stdlib,stdlib --release + + - name: Rename Binary + run: cp target/wasm32-wasip1/release/rustpython.wasm target/rustpython-release-wasm32-wasip1.wasm + + - name: Upload Binary Artifacts + uses: actions/upload-artifact@v4 + with: + name: rustpython-release-wasm32-wasip1 + path: target/rustpython-release-wasm32-wasip1.wasm + + - name: install wasm-pack + run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh + - uses: actions/setup-node@v4 + - uses: mwilliamson/setup-wabt-action@v3 + with: { wabt-version: "1.0.30" } + - name: build demo + run: | + npm install + npm run dist + env: + NODE_OPTIONS: "--openssl-legacy-provider" + working-directory: ./wasm/demo + - name: build notebook demo + run: | + npm install + npm run dist + mv dist ../demo/dist/notebook + env: + NODE_OPTIONS: "--openssl-legacy-provider" + working-directory: ./wasm/notebook + - name: Deploy demo to Github Pages + uses: peaceiris/actions-gh-pages@v4 + with: + deploy_key: ${{ secrets.ACTIONS_DEMO_DEPLOY_KEY }} + publish_dir: ./wasm/demo/dist + external_repository: RustPython/demo + publish_branch: master + + release: + runs-on: ubuntu-latest + needs: [build, build-wasm] + steps: + - name: Download Binary Artifacts + uses: actions/download-artifact@v4 + with: + path: bin + pattern: rustpython-* + merge-multiple: true + + - name: List Binaries + run: | + ls -lah bin/ + file bin/* + - name: Create Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ github.ref_name }} + run: ${{ github.run_number }} + run: | + if [[ "${{ github.event.inputs.pre-release }}" == "false" ]]; then + RELEASE_TYPE_NAME=Release + PRERELEASE_ARG= + else + RELEASE_TYPE_NAME=Pre-Release + PRERELEASE_ARG=--prerelease + fi + + today=$(date '+%Y-%m-%d') + gh release create "$today-$tag-$run" \ + --repo="$GITHUB_REPOSITORY" \ + --title="RustPython $RELEASE_TYPE_NAME $today-$tag #$run" \ + --target="$tag" \ + --generate-notes \ + $PRERELEASE_ARG \ + bin/rustpython-release-* diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile new file mode 100644 index 0000000000..0a54e9d39a --- /dev/null +++ b/.gitpod.Dockerfile @@ -0,0 +1,21 @@ +FROM gitpod/workspace-full + +USER gitpod + +# Update Rust to the latest version +RUN rm -rf ~/.rustup && \ + export PATH=$HOME/.cargo/bin:$PATH && \ + rustup update stable && \ + rustup component add rls && \ + # Set up wasm-pack and wasm32-unknown-unknown for rustpython_wasm + curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh && \ + rustup target add wasm32-unknown-unknown + +RUN sudo apt-get -q update \ + && sudo apt-get install -yq \ + libpython3.6 \ + rust-lldb \ + && sudo rm -rf /var/lib/apt/lists/* +ENV RUST_LLDB=/usr/bin/lldb-8 + +USER root diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 0000000000..7f2eea913f --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,6 @@ +image: + file: .gitpod.Dockerfile + +vscode: + extensions: + - vadimcn.vscode-lldb@1.5.3:vTh/rWhvJ5nQpeAVsD20QA== \ No newline at end of file diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000000..b208bf5730 --- /dev/null +++ b/.mailmap @@ -0,0 +1,8 @@ +# +# This list is used by git-shortlog to aggregate contributions. It is +# necessary when either the author's full name is not always written +# the same way, and/or the same author contributes from different +# email addresses. +# + +Noa <33094578+coolreader18@users.noreply.github.com> diff --git a/.theia/launch.json b/.theia/launch.json new file mode 100644 index 0000000000..699c72ee9d --- /dev/null +++ b/.theia/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + "version": "0.2.0", + "configurations": [ + { + "type": "lldb", + "request": "launch", + "name": "Debug Rust Code", + //"preLaunchTask": "cargo", + "program": "${workspaceFolder}/target/debug/rustpython", + "cwd": "${workspaceFolder}", + //"valuesFormatting": "parseText" + } + ] +} diff --git a/.theia/settings.json b/.theia/settings.json new file mode 100644 index 0000000000..83db8fc489 --- /dev/null +++ b/.theia/settings.json @@ -0,0 +1,8 @@ +{ + "cpp.buildConfigurations": [ + { + "name": "", + "directory": "" + }, + ] +} \ No newline at end of file diff --git a/Dockerfile.bin b/Dockerfile.bin new file mode 100644 index 0000000000..bf0a8ff464 --- /dev/null +++ b/Dockerfile.bin @@ -0,0 +1,15 @@ +FROM rust:latest as rust + +WORKDIR /rustpython + +COPY . . + +RUN cargo build --release + +FROM debian:stable-slim + +COPY --from=rust /rustpython/target/release/rustpython /usr/bin +COPY --from=rust /rustpython/Lib /usr/lib/rustpython +ENV RUSTPYTHONPATH /usr/lib/rustpython + +ENTRYPOINT [ "rustpython" ] diff --git a/Dockerfile.wasm b/Dockerfile.wasm new file mode 100644 index 0000000000..a2a1b4c8bc --- /dev/null +++ b/Dockerfile.wasm @@ -0,0 +1,32 @@ +FROM rust:slim AS rust + +WORKDIR /rustpython + +USER root +ENV USER root + + +RUN apt-get update && apt-get install curl libssl-dev pkg-config -y && \ + curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh + +COPY . . + +RUN cd wasm/lib/ && wasm-pack build --release + + +FROM node:alpine AS node + +WORKDIR /rustpython-demo + +COPY --from=rust /rustpython/wasm/lib/pkg rustpython_wasm + +COPY wasm/demo . + +RUN npm install && npm run dist -- --env.noWasmPack --env.rustpythonPkg=rustpython_wasm + + +FROM nginx:alpine + +COPY --from=node /rustpython-demo/dist /usr/share/nginx/html +# Add the WASM mime type +RUN echo "types { application/wasm wasm; }" >>/etc/nginx/mime.types diff --git a/crawl_sourcecode.py b/crawl_sourcecode.py new file mode 100644 index 0000000000..2daad4f682 --- /dev/null +++ b/crawl_sourcecode.py @@ -0,0 +1,83 @@ +""" This script can be used to test the equivalence in parsing between +rustpython and cpython. + +Usage example: + +$ python crawl_sourcecode.py crawl_sourcecode.py > cpython.txt +$ cargo run crawl_sourcecode.py crawl_sourcecode.py > rustpython.txt +$ diff cpython.txt rustpython.txt +""" + + +import ast +import sys +import symtable +import dis + +filename = sys.argv[1] +print('Crawling file:', filename) + + +with open(filename, 'r') as f: + source = f.read() + +t = ast.parse(source) +print(t) + +shift = 3 +def print_node(node, indent=0): + indents = ' ' * indent + if isinstance(node, ast.AST): + lineno = 'row={}'.format(node.lineno) if hasattr(node, 'lineno') else '' + print(indents, "NODE", node.__class__.__name__, lineno) + for field in node._fields: + print(indents,'-', field) + f = getattr(node, field) + if isinstance(f, list): + for f2 in f: + print_node(f2, indent=indent+shift) + else: + print_node(f, indent=indent+shift) + else: + print(indents, 'OBJ', node) + +print_node(t) + +# print(ast.dump(t)) +flag_names = [ + 'is_referenced', + 'is_assigned', + 'is_global', + 'is_local', + 'is_parameter', + 'is_free', +] + +def print_table(table, indent=0): + indents = ' ' * indent + print(indents, 'table:', table.get_name()) + print(indents, ' ', 'name:', table.get_name()) + print(indents, ' ', 'type:', table.get_type()) + print(indents, ' ', 'line:', table.get_lineno()) + print(indents, ' ', 'identifiers:', table.get_identifiers()) + print(indents, ' ', 'Syms:') + for sym in table.get_symbols(): + flags = [] + for flag_name in flag_names: + func = getattr(sym, flag_name) + if func(): + flags.append(flag_name) + print(indents, ' sym:', sym.get_name(), 'flags:', ' '.join(flags)) + if table.has_children(): + print(indents, ' ', 'Child tables:') + for child in table.get_children(): + print_table(child, indent=indent+shift) + +table = symtable.symtable(source, 'a', 'exec') +print_table(table) + +print() +print('======== dis.dis ========') +print() +co = compile(source, filename, 'exec') +dis.dis(co) diff --git a/demo_closures.py b/demo_closures.py new file mode 100644 index 0000000000..00242407e6 --- /dev/null +++ b/demo_closures.py @@ -0,0 +1,13 @@ + + +def foo(x): + def bar(z): + return z + x + return bar + +f = foo(9) +g = foo(10) + +print(f(2)) +print(g(2)) + diff --git a/whats_left.py b/whats_left.py new file mode 100755 index 0000000000..82df5cabe1 --- /dev/null +++ b/whats_left.py @@ -0,0 +1,482 @@ +#!/usr/bin/env -S python3 -I + +# This script generates Lib/snippets/whats_left_data.py with these variables defined: +# expected_methods - a dictionary mapping builtin objects to their methods +# cpymods - a dictionary mapping module names to their contents +# libdir - the location of RustPython's Lib/ directory. + +# +# TODO: include this: +# which finds all modules it has available and +# creates a Python dictionary mapping module names to their contents, which is +# in turn used to generate a second Python script that also finds which modules +# it has available and compares that against the first dictionary we generated. +# We then run this second generated script with RustPython. + +import argparse +import re +import os +import re +import sys +import json +import warnings +import inspect +import subprocess +import platform +from pydoc import ModuleScanner + +if not sys.flags.isolated: + print("running without -I option.") + print("python -I whats_left.py") + exit(1) + +GENERATED_FILE = "extra_tests/not_impl.py" + +implementation = platform.python_implementation() +if implementation != "CPython": + sys.exit(f"whats_left.py must be run under CPython, got {implementation} instead") +if sys.version_info[:2] < (3, 13): + sys.exit(f"whats_left.py must be run under CPython 3.13 or newer, got {implementation} {sys.version} instead") + +def parse_args(): + parser = argparse.ArgumentParser(description="Process some integers.") + parser.add_argument( + "--signature", + action="store_true", + help="print functions whose signatures don't match CPython's", + ) + parser.add_argument( + "--doc", + action="store_true", + help="print elements whose __doc__ don't match CPython's", + ) + parser.add_argument( + "--json", + action="store_true", + help="print output as JSON (instead of line by line)", + ) + parser.add_argument( + "--features", + action="store", + help="which features to enable when building RustPython (default: ssl)", + default="ssl", + ) + + args = parser.parse_args() + return args + + +args = parse_args() + +# CPython specific modules (mostly consisting of templates/tests) +CPYTHON_SPECIFIC_MODS = { + 'xxmodule', 'xxsubtype', 'xxlimited', '_xxtestfuzz', + '_testbuffer', '_testcapi', '_testimportmultiple', '_testinternalcapi', '_testmultiphase', '_testlimitedcapi' +} + +IGNORED_MODULES = {"this", "antigravity"} | CPYTHON_SPECIFIC_MODS + +sys.path = [ + path + for path in sys.path + if ("site-packages" not in path and "dist-packages" not in path) +] + + +def attr_is_not_inherited(type_, attr): + """ + returns True if type_'s attr is not inherited from any of its base classes + """ + bases = type_.__mro__[1:] + return getattr(type_, attr) not in (getattr(base, attr, None) for base in bases) + + +def extra_info(obj): + if callable(obj) and not inspect._signature_is_builtin(obj): + doc = inspect.getdoc(obj) + try: + sig = str(inspect.signature(obj)) + # remove function memory addresses + return { + "sig": re.sub(" at 0x[0-9A-Fa-f]+", " at 0xdeadbeef", sig), + "doc": doc, + } + except Exception as e: + exception = repr(e) + # CPython uses ' RustPython uses " + if exception.replace('"', "'").startswith("ValueError('no signature found"): + return { + "sig": "ValueError('no signature found')", + "doc": doc, + } + + return { + "sig": exception, + "doc": doc, + } + + return { + "sig": None, + "doc": None, + } + + +def name_sort_key(name): + if name == "builtins": + return "" + if name[0] == "_": + return name[1:] + "1" + return name + "2" + + +def gen_methods(): + types = [ + bool, + bytearray, + bytes, + complex, + dict, + enumerate, + filter, + float, + frozenset, + int, + list, + map, + memoryview, + range, + set, + slice, + str, + super, + tuple, + object, + zip, + classmethod, + staticmethod, + property, + Exception, + BaseException, + ] + objects = [t.__name__ for t in types] + objects.append("type(None)") + + iters = [ + "type(bytearray().__iter__())", + "type(bytes().__iter__())", + "type(dict().__iter__())", + "type(dict().values().__iter__())", + "type(dict().items().__iter__())", + "type(dict().values())", + "type(dict().items())", + "type(set().__iter__())", + "type(list().__iter__())", + "type(range(0).__iter__())", + "type(str().__iter__())", + "type(tuple().__iter__())", + "type(memoryview(bytearray(b'0')).__iter__())", + ] + + methods = {} + for typ_code in objects + iters: + typ = eval(typ_code) + attrs = [] + for attr in dir(typ): + if attr_is_not_inherited(typ, attr): + attrs.append((attr, extra_info(getattr(typ, attr)))) + methods[typ.__name__] = (typ_code, extra_info(typ), attrs) + + output = "expected_methods = {\n" + for name in sorted(methods.keys(), key=name_sort_key): + typ_code, extra, attrs = methods[name] + output += f" '{name}': ({typ_code}, {extra!r}, [\n" + for attr, attr_extra in attrs: + output += f" ({attr!r}, {attr_extra!r}),\n" + output += " ]),\n" + if typ_code != objects[-1]: + output += "\n" + output += "}\n\n" + return output + + +def scan_modules(): + """taken from the source code of help('modules') + + https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Lib/pydoc.py#L2178""" + modules = {} + + def callback(path, modname, desc, modules=modules): + if modname and modname[-9:] == ".__init__": + modname = modname[:-9] + " (package)" + if modname.find(".") < 0: + modules[modname] = 1 + + def onerror(modname): + callback(None, modname, None) + + with warnings.catch_warnings(): + # ignore warnings from importing deprecated modules + warnings.simplefilter("ignore") + ModuleScanner().run(callback, onerror=onerror) + return list(modules.keys()) + + +def import_module(module_name): + import io + from contextlib import redirect_stdout + + # Importing modules causes ('Constant String', 2, None, 4) and + # "Hello world!" to be printed to stdout. + f = io.StringIO() + with warnings.catch_warnings(), redirect_stdout(f): + # ignore warnings caused by importing deprecated modules + warnings.filterwarnings("ignore", category=DeprecationWarning) + try: + module = __import__(module_name) + except Exception as e: + return e + return module + + +def is_child(module, item): + import inspect + + item_mod = inspect.getmodule(item) + return item_mod is module + + +def dir_of_mod_or_error(module_name, keep_other=True): + module = import_module(module_name) + item_names = sorted(set(dir(module))) + result = {} + for item_name in item_names: + item = getattr(module, item_name) + # don't repeat items imported from other modules + if keep_other or is_child(module, item) or inspect.getmodule(item) is None: + result[item_name] = extra_info(item) + return result + + +def gen_modules(): + # check name because modules listed have side effects on import, + # e.g. printing something or opening a webpage + modules = {} + for mod_name in sorted(scan_modules(), key=name_sort_key): + if mod_name in IGNORED_MODULES: + continue + # when generating CPython list, ignore items defined by other modules + dir_result = dir_of_mod_or_error(mod_name, keep_other=False) + if isinstance(dir_result, Exception): + print( + f"!!! {mod_name} skipped because {type(dir_result).__name__}: {str(dir_result)}", + file=sys.stderr, + ) + continue + modules[mod_name] = dir_result + return modules + + +output = """\ +# WARNING: THIS IS AN AUTOMATICALLY GENERATED FILE +# EDIT extra_tests/not_impl_gen.sh, NOT THIS FILE. +# RESULTS OF THIS TEST DEPEND ON THE CPYTHON +# VERSION AND PYTHON ENVIRONMENT USED +# TO RUN not_impl_mods_gen.py + +""" + +output += gen_methods() +output += f""" +cpymods = {gen_modules()!r} +libdir = {os.path.abspath("Lib/").encode('utf8')!r} + +""" + +# Copy the source code of functions we will reuse in the generated script +REUSED = [ + attr_is_not_inherited, + extra_info, + dir_of_mod_or_error, + import_module, + is_child, +] +for fn in REUSED: + output += "".join(inspect.getsourcelines(fn)[0]) + "\n\n" + +# Prevent missing variable linter errors from compare() +expected_methods = {} +cpymods = {} +libdir = "" +# This function holds the source code that will be run under RustPython +def compare(): + import inspect + import io + import os + import re + import sys + import warnings + from contextlib import redirect_stdout + import json + import platform + + def method_incompatibility_reason(typ, method_name, real_method_value): + has_method = hasattr(typ, method_name) + if not has_method: + return "" + + is_inherited = not attr_is_not_inherited(typ, method_name) + if is_inherited: + return "(inherited)" + + value = extra_info(getattr(typ, method_name)) + if value != real_method_value: + return f"{value} != {real_method_value}" + + return None + + not_implementeds = {} + for name, (typ, real_value, methods) in expected_methods.items(): + missing_methods = {} + for method, real_method_value in methods: + reason = method_incompatibility_reason(typ, method, real_method_value) + if reason is not None: + missing_methods[method] = reason + if missing_methods: + not_implementeds[name] = missing_methods + + if platform.python_implementation() == "CPython": + if not_implementeds: + sys.exit("ERROR: CPython should have all the methods") + + mod_names = [ + name.decode() + for name, ext in map(os.path.splitext, os.listdir(libdir)) + if ext == b".py" or os.path.isdir(os.path.join(libdir, name)) + ] + mod_names += list(sys.builtin_module_names) + # Remove easter egg modules + mod_names = sorted(set(mod_names) - {"this", "antigravity"}) + + rustpymods = {mod: dir_of_mod_or_error(mod) for mod in mod_names} + + result = { + "cpython_modules": {}, + "implemented": {}, + "not_implemented": {}, + "failed_to_import": {}, + "missing_items": {}, + "mismatched_items": {}, + "mismatched_doc_items": {}, + } + for modname, cpymod in cpymods.items(): + rustpymod = rustpymods.get(modname) + if rustpymod is None: + result["not_implemented"][modname] = None + elif isinstance(rustpymod, Exception): + result["failed_to_import"][modname] = rustpymod.__class__.__name__ + str(rustpymod) + else: + implemented_items = sorted(set(cpymod) & set(rustpymod)) + mod_missing_items = set(cpymod) - set(rustpymod) + mod_missing_items = sorted( + f"{modname}.{item}" for item in mod_missing_items + ) + mod_mismatched_items = [ + (f"{modname}.{item}", rustpymod[item]["sig"], cpymod[item]["sig"]) + for item in implemented_items + if rustpymod[item]["sig"] != cpymod[item]["sig"] + and not isinstance(cpymod[item]["sig"], Exception) + ] + mod_mismatched_doc_items = [ + (f"{modname}.{item}", rustpymod[item]["doc"], cpymod[item]["doc"]) + for item in implemented_items + if rustpymod[item]["doc"] != cpymod[item]["doc"] + ] + if mod_missing_items or mod_mismatched_items: + if mod_missing_items: + result["missing_items"][modname] = mod_missing_items + if mod_mismatched_items: + result["mismatched_items"][modname] = mod_mismatched_items + if mod_mismatched_doc_items: + result["mismatched_doc_items"][modname] = mod_mismatched_doc_items + else: + result["implemented"][modname] = None + + result["cpython_modules"] = cpymods + result["not_implementeds"] = not_implementeds + + print(json.dumps(result)) + + +def remove_one_indent(s): + indent = " " + return s[len(indent) :] if s.startswith(indent) else s + + +compare_src = inspect.getsourcelines(compare)[0][1:] +output += "".join(remove_one_indent(line) for line in compare_src) + +with open(GENERATED_FILE, "w", encoding='utf-8') as f: + f.write(output + "\n") + + +subprocess.run(["cargo", "build", "--release", f"--features={args.features}"], check=True) +result = subprocess.run( + ["cargo", "run", "--release", f"--features={args.features}", "-q", "--", GENERATED_FILE], + env={**os.environ.copy(), "RUSTPYTHONPATH": "Lib"}, + text=True, + capture_output=True, +) +# The last line should be json output, the rest of the lines can contain noise +# because importing certain modules can print stuff to stdout/stderr +result = json.loads(result.stdout.splitlines()[-1]) + +if args.json: + print(json.dumps(result)) + sys.exit() + + +# missing entire modules +print("# modules") +for modname in result["not_implemented"]: + print(modname, "(entire module)") +for modname, exception in result["failed_to_import"].items(): + print(f"{modname} (exists but not importable: {exception})") + +# missing from builtins +print("\n# builtin items") +for module, missing_methods in result["not_implementeds"].items(): + for method, reason in missing_methods.items(): + print(f"{module}.{method}" + (f" {reason}" if reason else "")) + +# missing from modules +print("\n# stdlib items") +for modname, missing in result["missing_items"].items(): + for item in missing: + print(item) + +if args.signature: + print("\n# mismatching signatures (warnings)") + for modname, mismatched in result["mismatched_items"].items(): + for i, (item, rustpy_value, cpython_value) in enumerate(mismatched): + if cpython_value and cpython_value.startswith("ValueError("): + continue # these items will never match + if rustpy_value is None or rustpy_value.startswith("ValueError("): + rustpy_value = f" {rustpy_value}" + print(f"{item}{rustpy_value}") + if cpython_value is None: + cpython_value = f" {cpython_value}" + print(f"{' ' * len(item)}{cpython_value}") + if i < len(mismatched) - 1: + print() + +if args.doc: + print("\n# mismatching `__doc__`s (warnings)") + for modname, mismatched in result["mismatched_doc_items"].items(): + for (item, rustpy_doc, cpython_doc) in mismatched: + print(f"{item} {repr(rustpy_doc)} != {repr(cpython_doc)}") + + +print() +print("# summary") +for error_type, modules in result.items(): + print("# ", error_type, len(modules))