openrewrite-migrate-python 0.16.0.dev20261005084151__tar.gz → 0.16.0.dev20261005095013__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/PKG-INFO +1 -1
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/pyproject.toml +1 -1
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/_reindent.py +16 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/collapsible_if_statements.py +56 -4
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python.egg-info/PKG-INFO +1 -1
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/setup.cfg +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/__init__.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/_semantically_equal.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/_trivia.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/all_branches_identical.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/boolean_checks_not_inverted.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/code_quality.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/find_suspicious_chained_comparison.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/merge_identical_branches.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/remove_duplicate_conditions.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/remove_self_assignment.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/remove_unconditional_value_overwrite.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/simplify_boolean_literal.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_code_quality_python/codequality/simplify_redundant_logical_expression.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/__init__.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/_from_imports.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/_import_hygiene.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/_langchain_tables.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/_markers.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/_slots.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/_typing_imports.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/cgi_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/distutils_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/functools_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/future_imports.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/mailcap_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/nntplib_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/pathlib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/pipes_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/pydantic_fields.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/pydantic_model_fields.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/socket_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/string_formatting.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/telnetlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/tempfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/typing_callable.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/typing_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/typing_union_to_pipe.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain02.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain1.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/upgrade_to_python310.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/upgrade_to_python311.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/upgrade_to_python312.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/upgrade_to_python313.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/upgrade_to_python314.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/upgrade_to_python38.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/upgrade_to_python39.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/urllib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/uu_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/xdrlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python/migrate/xml_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python.egg-info/SOURCES.txt +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python.egg-info/dependency_links.txt +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python.egg-info/entry_points.txt +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python.egg-info/requires.txt +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/src/openrewrite_migrate_python.egg-info/top_level.txt +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_change_import_recipes.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_distutils_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_functools_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_future_imports.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_mailcap_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_markers.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_pathlib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_pep594_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_pydantic_fields.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_pydantic_model_fields.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_socket_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_string_formatting.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_tempfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_threading_extended.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_typing_alias_moves.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_typing_callable.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_typing_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_typing_union_to_pipe.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_upgrade_recipes.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_urllib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_xdrlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.16.0.dev20261005084151 → openrewrite_migrate_python-0.16.0.dev20261005095013}/tests/test_xml_deprecations.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrewrite-migrate-python
|
|
3
|
-
Version: 0.16.0.
|
|
3
|
+
Version: 0.16.0.dev20261005095013
|
|
4
4
|
Summary: OpenRewrite recipes for migrating Python codebases to newer Python versions.
|
|
5
5
|
Author-email: "Moderne Inc." <support@moderne.io>
|
|
6
6
|
License: Moderne Proprietary
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "openrewrite-migrate-python"
|
|
7
7
|
description = "OpenRewrite recipes for migrating Python codebases to newer Python versions."
|
|
8
|
-
version = "0.16.0.
|
|
8
|
+
version = "0.16.0.dev20261005095013" # Updated dynamically during release
|
|
9
9
|
authors = [{ name = "Moderne Inc.", email = "support@moderne.io" }]
|
|
10
10
|
license = { text = "Moderne Proprietary" }
|
|
11
11
|
readme = "README.md"
|
|
@@ -6,7 +6,9 @@ to a shallower nesting level means rewriting every line it spans.
|
|
|
6
6
|
|
|
7
7
|
from typing import Optional, TypeVar
|
|
8
8
|
|
|
9
|
+
from rewrite.java.markers import TrailingComma
|
|
9
10
|
from rewrite.java.support_types import Space
|
|
11
|
+
from rewrite.markers import Marker
|
|
10
12
|
from rewrite.python.visitor import PythonVisitor
|
|
11
13
|
|
|
12
14
|
T = TypeVar("T")
|
|
@@ -65,6 +67,20 @@ class _Reindent(PythonVisitor[None]):
|
|
|
65
67
|
return space
|
|
66
68
|
return Space(_comments=comments, _whitespace=whitespace)
|
|
67
69
|
|
|
70
|
+
def visit_marker(self, marker: Marker, p: None) -> Marker:
|
|
71
|
+
# The line break before the bracket closing a trailing-comma list
|
|
72
|
+
# lives on the comma.
|
|
73
|
+
if isinstance(marker, TrailingComma):
|
|
74
|
+
suffix = self.visit_space(marker.suffix, p)
|
|
75
|
+
if suffix is not marker.suffix:
|
|
76
|
+
return marker.replace(_suffix=suffix)
|
|
77
|
+
return marker
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def reindent_space(space: Space, old_base: str, new_base: str) -> Space:
|
|
81
|
+
""":func:`reindent` for trivia that has no tree to travel with."""
|
|
82
|
+
return _Reindent(old_base, new_base).visit_space(space, None)
|
|
83
|
+
|
|
68
84
|
|
|
69
85
|
def reindent(tree: T, old_base: str, new_base: str) -> T:
|
|
70
86
|
"""Re-base every line in *tree* that is indented at least to *old_base*.
|
|
@@ -18,7 +18,7 @@ from rewrite.marketplace import Python
|
|
|
18
18
|
from rewrite.markers import Markers
|
|
19
19
|
from rewrite.python.tree import StatementExpression
|
|
20
20
|
from rewrite.python.visitor import PythonVisitor
|
|
21
|
-
from rewrite.java.support_types import JLeftPadded, JRightPadded, Space
|
|
21
|
+
from rewrite.java.support_types import Comment, JLeftPadded, JRightPadded, Space
|
|
22
22
|
from rewrite.java.tree import (
|
|
23
23
|
Assignment,
|
|
24
24
|
Binary as JBinary,
|
|
@@ -26,6 +26,7 @@ from rewrite.java.tree import (
|
|
|
26
26
|
ControlParentheses,
|
|
27
27
|
Expression,
|
|
28
28
|
If,
|
|
29
|
+
J,
|
|
29
30
|
Lambda,
|
|
30
31
|
Parentheses,
|
|
31
32
|
Ternary,
|
|
@@ -33,10 +34,13 @@ from rewrite.java.tree import (
|
|
|
33
34
|
from rewrite.utils import random_id
|
|
34
35
|
|
|
35
36
|
from openrewrite_code_quality_python.codequality._reindent import (
|
|
36
|
-
inherited_prefix,
|
|
37
37
|
line_indent,
|
|
38
38
|
reindent,
|
|
39
|
+
reindent_space,
|
|
39
40
|
)
|
|
41
|
+
from openrewrite_code_quality_python.codequality._trivia import concat, split_line
|
|
42
|
+
|
|
43
|
+
_HOISTED_COMMENTS = "collapsible_if_statements.hoisted_comments"
|
|
40
44
|
|
|
41
45
|
_CodeQuality = [
|
|
42
46
|
*Python,
|
|
@@ -56,6 +60,14 @@ def _binds_looser_than_and(expr: Expression) -> bool:
|
|
|
56
60
|
return isinstance(expr, (Ternary, Lambda, Assignment, StatementExpression))
|
|
57
61
|
|
|
58
62
|
|
|
63
|
+
def _with_comments_above(prefix: Space, comments: List[Comment]) -> Space:
|
|
64
|
+
"""*prefix* with *comments* on their own lines just before the token it
|
|
65
|
+
leads into. Each comment's suffix must already end at that token's indent."""
|
|
66
|
+
if not comments:
|
|
67
|
+
return prefix
|
|
68
|
+
return Space(_comments=[*prefix.comments, *comments], _whitespace=prefix.whitespace)
|
|
69
|
+
|
|
70
|
+
|
|
59
71
|
def _operand(expr: Expression, prefix: Space) -> Expression:
|
|
60
72
|
"""Prepare *expr* as an operand of the merged ``and``, parenthesizing it
|
|
61
73
|
when its own operator would otherwise be captured."""
|
|
@@ -119,6 +131,13 @@ class CollapsibleIfStatements(Recipe):
|
|
|
119
131
|
|
|
120
132
|
def editor(self) -> TreeVisitor[Any, ExecutionContext]:
|
|
121
133
|
class Visitor(PythonVisitor[ExecutionContext]):
|
|
134
|
+
def visit_else(self, else_: If.Else, p: ExecutionContext) -> J:
|
|
135
|
+
visited = super().visit_else(else_, p)
|
|
136
|
+
hoisted = self.cursor.get_message(_HOISTED_COMMENTS, [])
|
|
137
|
+
if not isinstance(visited, If.Else) or not hoisted:
|
|
138
|
+
return visited
|
|
139
|
+
return visited.replace(_prefix=_with_comments_above(visited.prefix, hoisted))
|
|
140
|
+
|
|
122
141
|
def visit_if(
|
|
123
142
|
self, if_: If, p: ExecutionContext
|
|
124
143
|
) -> Optional[If]:
|
|
@@ -164,6 +183,31 @@ class CollapsibleIfStatements(Recipe):
|
|
|
164
183
|
):
|
|
165
184
|
return if_
|
|
166
185
|
|
|
186
|
+
# An `elif` starts its line at the `elif` keyword, which the
|
|
187
|
+
# enclosing `Else` holds.
|
|
188
|
+
parent = self.cursor.parent_tree_cursor()
|
|
189
|
+
under_elif = isinstance(parent.value, If.Else)
|
|
190
|
+
outer_indent = line_indent(
|
|
191
|
+
parent.value.prefix if isinstance(parent.value, If.Else) else if_.prefix
|
|
192
|
+
)
|
|
193
|
+
split = split_line(inner.prefix)
|
|
194
|
+
if (
|
|
195
|
+
outer_indent is None
|
|
196
|
+
or not header_indent.startswith(outer_indent)
|
|
197
|
+
or split is None
|
|
198
|
+
):
|
|
199
|
+
return if_
|
|
200
|
+
# The outer header's trailing comment stays on the merged
|
|
201
|
+
# header. Comments on their own line before the inner `if`
|
|
202
|
+
# describe its condition, so they go above the merged header
|
|
203
|
+
# without the blank lines around them.
|
|
204
|
+
header_trailer, inner_leader = split
|
|
205
|
+
hoisted = reindent_space(
|
|
206
|
+
Space(_comments=inner_leader.comments, _whitespace=""),
|
|
207
|
+
header_indent,
|
|
208
|
+
outer_indent,
|
|
209
|
+
).comments
|
|
210
|
+
|
|
167
211
|
combined = JBinary(
|
|
168
212
|
_id=random_id(),
|
|
169
213
|
_prefix=if_.if_condition.tree.prefix,
|
|
@@ -174,7 +218,10 @@ class CollapsibleIfStatements(Recipe):
|
|
|
174
218
|
_element=JBinary.Type.And,
|
|
175
219
|
_markers=Markers.EMPTY,
|
|
176
220
|
),
|
|
177
|
-
_right=_operand(
|
|
221
|
+
_right=_operand(
|
|
222
|
+
reindent(inner.if_condition.tree, header_indent, outer_indent),
|
|
223
|
+
Space.SINGLE_SPACE,
|
|
224
|
+
),
|
|
178
225
|
_type=None,
|
|
179
226
|
)
|
|
180
227
|
|
|
@@ -198,13 +245,18 @@ class CollapsibleIfStatements(Recipe):
|
|
|
198
245
|
_statements=[
|
|
199
246
|
first.replace(
|
|
200
247
|
_element=first.element.replace(
|
|
201
|
-
_prefix=
|
|
248
|
+
_prefix=concat(header_trailer, first.element.prefix)
|
|
202
249
|
)
|
|
203
250
|
),
|
|
204
251
|
*inner_body._statements[1:],
|
|
205
252
|
]
|
|
206
253
|
)
|
|
207
254
|
|
|
255
|
+
if under_elif:
|
|
256
|
+
parent.put_message(_HOISTED_COMMENTS, hoisted)
|
|
257
|
+
else:
|
|
258
|
+
if_ = if_.replace(_prefix=_with_comments_above(if_.prefix, hoisted))
|
|
259
|
+
|
|
208
260
|
return if_.replace(
|
|
209
261
|
_if_condition=new_condition,
|
|
210
262
|
).padding.replace(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrewrite-migrate-python
|
|
3
|
-
Version: 0.16.0.
|
|
3
|
+
Version: 0.16.0.dev20261005095013
|
|
4
4
|
Summary: OpenRewrite recipes for migrating Python codebases to newer Python versions.
|
|
5
5
|
Author-email: "Moderne Inc." <support@moderne.io>
|
|
6
6
|
License: Moderne Proprietary
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|