openrewrite-migrate-python 0.14.0.dev20260830170445__tar.gz → 0.14.0.dev20260901133827__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.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/PKG-INFO +1 -1
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/pyproject.toml +1 -1
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/string_formatting.py +16 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python.egg-info/PKG-INFO +1 -1
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_string_formatting.py +29 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/setup.cfg +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/_semantically_equal.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/all_branches_identical.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/boolean_checks_not_inverted.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/collapsible_if_statements.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/find_suspicious_chained_comparison.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/merge_identical_branches.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/remove_duplicate_conditions.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/remove_self_assignment.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/remove_unconditional_value_overwrite.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/simplify_boolean_literal.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_code_quality_python/codequality/simplify_redundant_logical_expression.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/_import_hygiene.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/_markers.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/_typing_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/cgi_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/distutils_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/functools_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/future_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/mailcap_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/nntplib_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/pathlib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/pipes_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/pydantic_fields.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/pydantic_model_fields.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/socket_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/telnetlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/tempfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/typing_callable.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/typing_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/typing_union_to_pipe.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain02.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain1.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/upgrade_to_python310.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/upgrade_to_python311.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/upgrade_to_python312.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/upgrade_to_python313.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/upgrade_to_python314.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/upgrade_to_python38.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/upgrade_to_python39.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/urllib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/uu_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/xdrlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python/migrate/xml_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python.egg-info/SOURCES.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python.egg-info/dependency_links.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python.egg-info/entry_points.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python.egg-info/requires.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/src/openrewrite_migrate_python.egg-info/top_level.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_change_import_recipes.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_future_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_pep594_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_pydantic_fields.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_pydantic_model_fields.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_threading_extended.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_typing_alias_moves.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_typing_callable.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_typing_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_typing_union_to_pipe.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_upgrade_recipes.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/tests/test_upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260830170445 → openrewrite_migrate_python-0.14.0.dev20260901133827}/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.14.0.
|
|
3
|
+
Version: 0.14.0.dev20260901133827
|
|
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.14.0.
|
|
8
|
+
version = "0.14.0.dev20260901133827" # 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"
|
|
@@ -72,6 +72,16 @@ def _get_fstring_delimiter(value_source: str) -> Optional[str]:
|
|
|
72
72
|
return None
|
|
73
73
|
|
|
74
74
|
|
|
75
|
+
def _interpolates_string_literal(expr: Any) -> bool:
|
|
76
|
+
"""Whether substituting ``expr`` would nest a string literal inside the f-string.
|
|
77
|
+
|
|
78
|
+
Reusing the outer quote inside a replacement field is PEP 701, so the result needs
|
|
79
|
+
3.12 -- newer than the 3.8 target these recipes first run for.
|
|
80
|
+
"""
|
|
81
|
+
value = expr.value if isinstance(expr, NamedArgument) else expr
|
|
82
|
+
return _is_string_literal(value)
|
|
83
|
+
|
|
84
|
+
|
|
75
85
|
def _is_side_effect_free(expr: Any) -> bool:
|
|
76
86
|
"""Check if an expression is safe to duplicate (no side effects)."""
|
|
77
87
|
return isinstance(expr, (Identifier, Literal, FieldAccess))
|
|
@@ -124,6 +134,9 @@ def _convert_format_to_fstring(method: MethodInvocation) -> Optional[FormattedSt
|
|
|
124
134
|
if isinstance(arg, Star):
|
|
125
135
|
return None
|
|
126
136
|
|
|
137
|
+
if any(_interpolates_string_literal(arg) for arg in raw_args):
|
|
138
|
+
return None
|
|
139
|
+
|
|
127
140
|
# Parse format string
|
|
128
141
|
try:
|
|
129
142
|
parsed = list(_string_module.Formatter().parse(format_string))
|
|
@@ -410,6 +423,9 @@ def _convert_percent_to_fstring(binary: Binary) -> Optional[FormattedString]:
|
|
|
410
423
|
if len(args) != spec_count:
|
|
411
424
|
return None
|
|
412
425
|
|
|
426
|
+
if any(_interpolates_string_literal(arg) for arg in args):
|
|
427
|
+
return None
|
|
428
|
+
|
|
413
429
|
# Build f-string parts
|
|
414
430
|
parts: List[Expression] = []
|
|
415
431
|
arg_index = 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrewrite-migrate-python
|
|
3
|
-
Version: 0.14.0.
|
|
3
|
+
Version: 0.14.0.dev20260901133827
|
|
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
|
|
@@ -185,6 +185,24 @@ class TestReplaceStrFormatWithFString:
|
|
|
185
185
|
)
|
|
186
186
|
)
|
|
187
187
|
|
|
188
|
+
def test_no_change_string_literal_argument(self):
|
|
189
|
+
"""'{}'.format("a") — a literal argument would nest quotes, no change."""
|
|
190
|
+
spec = RecipeSpec(recipe=ReplaceStrFormatWithFString())
|
|
191
|
+
spec.rewrite_run(
|
|
192
|
+
python(
|
|
193
|
+
"""
|
|
194
|
+
url = "http://{}:{}".format("host", "80")
|
|
195
|
+
"""
|
|
196
|
+
)
|
|
197
|
+
)
|
|
198
|
+
spec.rewrite_run(
|
|
199
|
+
python(
|
|
200
|
+
"""
|
|
201
|
+
label = "{} = {}".format(name, "literal")
|
|
202
|
+
"""
|
|
203
|
+
)
|
|
204
|
+
)
|
|
205
|
+
|
|
188
206
|
def test_no_change_repeated_side_effect(self):
|
|
189
207
|
"""'{0} {0}'.format(func()) — repeated + side effect, no change."""
|
|
190
208
|
spec = RecipeSpec(recipe=ReplaceStrFormatWithFString())
|
|
@@ -322,6 +340,17 @@ class TestReplacePercentFormatWithFString:
|
|
|
322
340
|
)
|
|
323
341
|
)
|
|
324
342
|
|
|
343
|
+
def test_no_change_string_literal_argument(self):
|
|
344
|
+
"""'%s' % ("a",) — a literal argument would nest quotes, no change."""
|
|
345
|
+
spec = RecipeSpec(recipe=ReplacePercentFormatWithFString())
|
|
346
|
+
spec.rewrite_run(
|
|
347
|
+
python(
|
|
348
|
+
"""
|
|
349
|
+
pair = "%s=%s" % ("key", "value")
|
|
350
|
+
"""
|
|
351
|
+
)
|
|
352
|
+
)
|
|
353
|
+
|
|
325
354
|
def test_no_change_unsupported_specifier(self):
|
|
326
355
|
"""'%d' % x — unsupported specifier, no change."""
|
|
327
356
|
spec = RecipeSpec(recipe=ReplacePercentFormatWithFString())
|
|
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
|