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)) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy