openrewrite-migrate-python 0.14.0.dev20260909114202__tar.gz → 0.15.0__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.dev20260909114202 → openrewrite_migrate_python-0.15.0}/PKG-INFO +3 -5
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/pyproject.toml +5 -7
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/pydantic_deprecations.py +42 -8
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/pydantic_fields.py +6 -2
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/pydantic_model_fields.py +6 -2
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/typing_deprecations.py +5 -42
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python.egg-info/PKG-INFO +3 -5
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python.egg-info/requires.txt +1 -1
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_typing_deprecations.py +6 -6
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/setup.cfg +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/_reindent.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/_semantically_equal.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/_trivia.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/all_branches_identical.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/boolean_checks_not_inverted.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/collapsible_if_statements.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/find_suspicious_chained_comparison.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/merge_identical_branches.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/remove_duplicate_conditions.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/remove_self_assignment.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/remove_unconditional_value_overwrite.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/simplify_boolean_literal.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_code_quality_python/codequality/simplify_redundant_logical_expression.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/_from_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/_import_hygiene.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/_langchain_tables.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/_markers.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/_slots.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/_typing_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/cgi_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/distutils_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/functools_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/future_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/mailcap_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/nntplib_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/pathlib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/pipes_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/socket_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/string_formatting.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/telnetlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/tempfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/typing_callable.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/typing_union_to_pipe.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain02.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain1.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/upgrade_to_python310.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/upgrade_to_python311.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/upgrade_to_python312.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/upgrade_to_python313.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/upgrade_to_python314.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/upgrade_to_python38.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/upgrade_to_python39.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/urllib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/uu_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/xdrlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python/migrate/xml_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python.egg-info/SOURCES.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python.egg-info/dependency_links.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python.egg-info/entry_points.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/src/openrewrite_migrate_python.egg-info/top_level.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_change_import_recipes.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_distutils_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_functools_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_future_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_mailcap_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_markers.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_pathlib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_pep594_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_pydantic_fields.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_pydantic_model_fields.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_socket_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_string_formatting.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_tempfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_threading_extended.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_typing_alias_moves.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_typing_callable.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_typing_union_to_pipe.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_upgrade_recipes.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_urllib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_xdrlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/tests/test_xml_deprecations.py +0 -0
{openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrewrite-migrate-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.15.0
|
|
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
|
|
@@ -11,17 +11,15 @@ Project-URL: Issues, https://github.com/openrewrite/rewrite-migrate-python/issue
|
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: License :: Other/Proprietary License
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
16
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
18
16
|
Classifier: Topic :: Software Development :: Code Generators
|
|
19
17
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
20
18
|
Classifier: Typing :: Typed
|
|
21
|
-
Requires-Python: >=3.
|
|
19
|
+
Requires-Python: >=3.12
|
|
22
20
|
Description-Content-Type: text/markdown
|
|
23
21
|
Provides-Extra: dev
|
|
24
|
-
Requires-Dist: openrewrite>=8.
|
|
22
|
+
Requires-Dist: openrewrite>=8.92.3; extra == "dev"
|
|
25
23
|
Requires-Dist: pydantic>=2.11; extra == "dev"
|
|
26
24
|
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
27
25
|
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
@@ -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.
|
|
8
|
+
version = "0.15.0" # 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"
|
|
@@ -13,15 +13,13 @@ classifiers = [
|
|
|
13
13
|
"Development Status :: 4 - Beta",
|
|
14
14
|
"Intended Audience :: Developers",
|
|
15
15
|
"License :: Other/Proprietary License",
|
|
16
|
-
"Programming Language :: Python :: 3.10",
|
|
17
|
-
"Programming Language :: Python :: 3.11",
|
|
18
16
|
"Programming Language :: Python :: 3.12",
|
|
19
17
|
"Programming Language :: Python :: 3.13",
|
|
20
18
|
"Topic :: Software Development :: Code Generators",
|
|
21
19
|
"Topic :: Software Development :: Quality Assurance",
|
|
22
20
|
"Typing :: Typed",
|
|
23
21
|
]
|
|
24
|
-
requires-python = ">=3.
|
|
22
|
+
requires-python = ">=3.12"
|
|
25
23
|
# openrewrite is a runtime dependency but is provided by the host
|
|
26
24
|
# environment (like a plugin framework). It is listed under
|
|
27
25
|
# [project.optional-dependencies] dev so it is available during
|
|
@@ -30,7 +28,7 @@ dependencies = []
|
|
|
30
28
|
|
|
31
29
|
[project.optional-dependencies]
|
|
32
30
|
dev = [
|
|
33
|
-
"openrewrite>=8.
|
|
31
|
+
"openrewrite>=8.92.3",
|
|
34
32
|
# Needed so type-attribution tests can resolve `pydantic` types.
|
|
35
33
|
"pydantic>=2.11",
|
|
36
34
|
"pytest>=8.0.0",
|
|
@@ -62,11 +60,11 @@ include = ["openrewrite_migrate_python", "openrewrite_migrate_python.*", "openre
|
|
|
62
60
|
|
|
63
61
|
[tool.black]
|
|
64
62
|
line-length = 120
|
|
65
|
-
target-version = ["
|
|
63
|
+
target-version = ["py312", "py313"]
|
|
66
64
|
|
|
67
65
|
[tool.ruff]
|
|
68
66
|
line-length = 120
|
|
69
|
-
target-version = "
|
|
67
|
+
target-version = "py312"
|
|
70
68
|
|
|
71
69
|
[tool.ruff.lint]
|
|
72
70
|
select = ["E", "F", "I", "UP"]
|
|
@@ -24,7 +24,7 @@ https://github.com/pydantic/pydantic/issues/11119
|
|
|
24
24
|
|
|
25
25
|
from typing import Any, List, Optional, cast
|
|
26
26
|
|
|
27
|
-
from rewrite import ExecutionContext, Recipe, TreeVisitor
|
|
27
|
+
from rewrite import ExecutionContext, Preconditions, Recipe, TreeVisitor
|
|
28
28
|
from rewrite.category import CategoryDescriptor
|
|
29
29
|
from rewrite.decorators import categorize
|
|
30
30
|
from rewrite.java.support_types import JavaType
|
|
@@ -43,6 +43,7 @@ from rewrite.java.tree import (
|
|
|
43
43
|
)
|
|
44
44
|
from rewrite.marketplace import Python
|
|
45
45
|
from rewrite.python.add_import import AddImportOptions, maybe_add_import
|
|
46
|
+
from rewrite.python.preconditions import uses_import
|
|
46
47
|
from rewrite.python.remove_import import RemoveImportOptions, maybe_remove_import
|
|
47
48
|
from rewrite.python.tree import MultiImport, NamedArgument, TypeHint, TypeHintedExpression
|
|
48
49
|
from rewrite.python.type_utils import is_assignable_to
|
|
@@ -321,7 +322,13 @@ class ReplaceFinalFieldWithClassVar(Recipe):
|
|
|
321
322
|
|
|
322
323
|
return a.replace(_variable=new_var)
|
|
323
324
|
|
|
324
|
-
return
|
|
325
|
+
return Preconditions.check(
|
|
326
|
+
Preconditions.or_(
|
|
327
|
+
uses_import("pydantic"),
|
|
328
|
+
uses_import("pydantic_settings"),
|
|
329
|
+
),
|
|
330
|
+
Visitor(),
|
|
331
|
+
)
|
|
325
332
|
|
|
326
333
|
|
|
327
334
|
@categorize(_Pydantic)
|
|
@@ -381,7 +388,13 @@ class ReplacePopulateByNameWithValidateByName(Recipe):
|
|
|
381
388
|
arg = cast(NamedArgument, super().visit_named_argument(named_argument, p))
|
|
382
389
|
return _rename_configdict_option(self, arg, "populate_by_name", "validate_by_name")
|
|
383
390
|
|
|
384
|
-
return
|
|
391
|
+
return Preconditions.check(
|
|
392
|
+
Preconditions.or_(
|
|
393
|
+
uses_import("pydantic"),
|
|
394
|
+
uses_import("pydantic_settings"),
|
|
395
|
+
),
|
|
396
|
+
Visitor(),
|
|
397
|
+
)
|
|
385
398
|
|
|
386
399
|
|
|
387
400
|
@categorize(_Pydantic)
|
|
@@ -435,7 +448,13 @@ class FindDeprecatedSchemaGenerator(Recipe):
|
|
|
435
448
|
arg = cast(NamedArgument, super().visit_named_argument(named_argument, p))
|
|
436
449
|
return _flag_configdict_option(self, arg, "schema_generator", _SCHEMA_GEN_MSG)
|
|
437
450
|
|
|
438
|
-
return
|
|
451
|
+
return Preconditions.check(
|
|
452
|
+
Preconditions.or_(
|
|
453
|
+
uses_import("pydantic"),
|
|
454
|
+
uses_import("pydantic_settings"),
|
|
455
|
+
),
|
|
456
|
+
Visitor(),
|
|
457
|
+
)
|
|
439
458
|
|
|
440
459
|
|
|
441
460
|
@categorize(_Pydantic)
|
|
@@ -492,7 +511,13 @@ class FindDeprecatedJsonEncoders(Recipe):
|
|
|
492
511
|
arg = cast(NamedArgument, super().visit_named_argument(named_argument, p))
|
|
493
512
|
return _flag_configdict_option(self, arg, "json_encoders", _JSON_ENCODERS_MSG)
|
|
494
513
|
|
|
495
|
-
return
|
|
514
|
+
return Preconditions.check(
|
|
515
|
+
Preconditions.or_(
|
|
516
|
+
uses_import("pydantic"),
|
|
517
|
+
uses_import("pydantic_settings"),
|
|
518
|
+
),
|
|
519
|
+
Visitor(),
|
|
520
|
+
)
|
|
496
521
|
|
|
497
522
|
|
|
498
523
|
_MODEL_VALIDATOR_AFTER_MSG = (
|
|
@@ -622,7 +647,10 @@ class FindModelValidatorAfterClassmethod(Recipe):
|
|
|
622
647
|
_leading_annotations=[flagged if a is validator else a for a in annotations]
|
|
623
648
|
)
|
|
624
649
|
|
|
625
|
-
return
|
|
650
|
+
return Preconditions.check(
|
|
651
|
+
uses_import("pydantic"),
|
|
652
|
+
Visitor(),
|
|
653
|
+
)
|
|
626
654
|
|
|
627
655
|
|
|
628
656
|
@categorize(_Pydantic)
|
|
@@ -677,7 +705,10 @@ class FindSerializeAsAnyUsage(Recipe):
|
|
|
677
705
|
arg = cast(NamedArgument, super().visit_named_argument(named_argument, p))
|
|
678
706
|
return _flag_call_option(self, arg, "serialize_as_any", _DUMP_METHODS, _SERIALIZE_AS_ANY_MSG)
|
|
679
707
|
|
|
680
|
-
return
|
|
708
|
+
return Preconditions.check(
|
|
709
|
+
uses_import("pydantic"),
|
|
710
|
+
Visitor(),
|
|
711
|
+
)
|
|
681
712
|
|
|
682
713
|
|
|
683
714
|
@categorize(_Pydantic)
|
|
@@ -749,4 +780,7 @@ class FindEvalTypeBackportUsage(Recipe):
|
|
|
749
780
|
return mark_deprecated(mi, _EVAL_TYPE_BACKPORT_MSG)
|
|
750
781
|
return mi
|
|
751
782
|
|
|
752
|
-
return
|
|
783
|
+
return Preconditions.check(
|
|
784
|
+
uses_import("eval_type_backport"),
|
|
785
|
+
Visitor(),
|
|
786
|
+
)
|
|
@@ -17,13 +17,14 @@ https://docs.pydantic.dev/latest/concepts/fields/
|
|
|
17
17
|
|
|
18
18
|
from typing import Any, List, Optional, cast
|
|
19
19
|
|
|
20
|
-
from rewrite import ExecutionContext, Recipe, TreeVisitor
|
|
20
|
+
from rewrite import ExecutionContext, Preconditions, Recipe, TreeVisitor
|
|
21
21
|
from rewrite.category import CategoryDescriptor
|
|
22
22
|
from rewrite.decorators import categorize
|
|
23
23
|
from rewrite.java.support_types import JavaType, JRightPadded, Space
|
|
24
24
|
from rewrite.java.tree import Empty, J, Literal, MethodInvocation
|
|
25
25
|
from rewrite.markers import Markers
|
|
26
26
|
from rewrite.marketplace import Python
|
|
27
|
+
from rewrite.python.preconditions import uses_method
|
|
27
28
|
from rewrite.python.type_utils import is_of_class_type
|
|
28
29
|
from rewrite.python.visitor import PythonVisitor
|
|
29
30
|
from rewrite.utils import random_id
|
|
@@ -152,4 +153,7 @@ class RemoveEllipsisFromField(Recipe):
|
|
|
152
153
|
]
|
|
153
154
|
return mi.replace(_arguments=container.padding.replace(elements=kept))
|
|
154
155
|
|
|
155
|
-
return
|
|
156
|
+
return Preconditions.check(
|
|
157
|
+
uses_method("pydantic.fields Field(..)"),
|
|
158
|
+
Visitor(),
|
|
159
|
+
)
|
|
@@ -26,10 +26,11 @@ https://github.com/pydantic/pydantic/pull/11169
|
|
|
26
26
|
|
|
27
27
|
from typing import Any, List, Optional, cast
|
|
28
28
|
|
|
29
|
-
from rewrite import ExecutionContext, Recipe, TreeVisitor
|
|
29
|
+
from rewrite import ExecutionContext, Preconditions, Recipe, TreeVisitor
|
|
30
30
|
from rewrite.category import CategoryDescriptor
|
|
31
31
|
from rewrite.decorators import categorize
|
|
32
32
|
from rewrite.marketplace import Python
|
|
33
|
+
from rewrite.python.preconditions import uses_import
|
|
33
34
|
from rewrite.python.visitor import PythonVisitor
|
|
34
35
|
from rewrite.python.template import pattern, template, capture
|
|
35
36
|
from rewrite.python.type_utils import is_assignable_to
|
|
@@ -161,4 +162,7 @@ class ReplaceModelFieldsInstanceAccess(Recipe):
|
|
|
161
162
|
|
|
162
163
|
return fa
|
|
163
164
|
|
|
164
|
-
return
|
|
165
|
+
return Preconditions.check(
|
|
166
|
+
uses_import("pydantic"),
|
|
167
|
+
Visitor(),
|
|
168
|
+
)
|
|
@@ -20,7 +20,6 @@ handled with `ChangeImport` in `upgrade_to_python39`.
|
|
|
20
20
|
See: https://peps.python.org/pep-0585/
|
|
21
21
|
"""
|
|
22
22
|
|
|
23
|
-
import ast
|
|
24
23
|
from typing import Any, ClassVar, Optional, Set, cast
|
|
25
24
|
|
|
26
25
|
from rewrite import ExecutionContext, Recipe, Tree, TreeVisitor
|
|
@@ -148,44 +147,6 @@ def _in_type_position(cursor: Cursor) -> bool:
|
|
|
148
147
|
return False
|
|
149
148
|
|
|
150
149
|
|
|
151
|
-
def _rename_in_quoted_body(body: str, old_name: str, new_name: str) -> Optional[str]:
|
|
152
|
-
"""`body` with each name lookup of `old_name` renamed, or None when it holds none.
|
|
153
|
-
|
|
154
|
-
A quoted annotation carries a whole expression in one identifier, so the
|
|
155
|
-
rename has to land on its `ast.Name` nodes. Only parsing separates those
|
|
156
|
-
from a string constant the body encloses, where the name is a value:
|
|
157
|
-
renaming in `Literal['Text', 'Binary']` would change the type.
|
|
158
|
-
"""
|
|
159
|
-
stripped = body.strip()
|
|
160
|
-
try:
|
|
161
|
-
expression = ast.parse(stripped, mode="eval")
|
|
162
|
-
except (SyntaxError, ValueError):
|
|
163
|
-
return None
|
|
164
|
-
matches = [
|
|
165
|
-
node
|
|
166
|
-
for node in ast.walk(expression)
|
|
167
|
-
if isinstance(node, ast.Name) and node.id == old_name
|
|
168
|
-
]
|
|
169
|
-
if not matches:
|
|
170
|
-
return None
|
|
171
|
-
|
|
172
|
-
# `col_offset` counts UTF-8 bytes, so the splice has to happen in bytes.
|
|
173
|
-
source = stripped.encode()
|
|
174
|
-
line_starts = [0]
|
|
175
|
-
for line in source.split(b"\n"):
|
|
176
|
-
line_starts.append(line_starts[-1] + len(line) + 1)
|
|
177
|
-
for node in sorted(matches, key=lambda n: (n.lineno, n.col_offset), reverse=True):
|
|
178
|
-
line = line_starts[node.lineno - 1]
|
|
179
|
-
source = (
|
|
180
|
-
source[: line + node.col_offset]
|
|
181
|
-
+ new_name.encode()
|
|
182
|
-
+ source[line + cast(int, node.end_col_offset) :]
|
|
183
|
-
)
|
|
184
|
-
|
|
185
|
-
leading = len(body) - len(body.lstrip())
|
|
186
|
-
return body[:leading] + source.decode() + body[leading + len(stripped) :]
|
|
187
|
-
|
|
188
|
-
|
|
189
150
|
def _make_builtin_alias_editor(
|
|
190
151
|
old_name: str, new_name: str, type_positions_only: bool
|
|
191
152
|
) -> "TreeVisitor[Any, ExecutionContext]":
|
|
@@ -278,9 +239,11 @@ def _make_builtin_alias_editor(
|
|
|
278
239
|
if type_positions_only and not _in_type_position(self.cursor):
|
|
279
240
|
return ident
|
|
280
241
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
242
|
+
# A quoted body the parser could not structure arrives whole, where a
|
|
243
|
+
# rename would overwrite the annotation rather than the name in it.
|
|
244
|
+
if (ident.markers.find_first(Quoted) is not None
|
|
245
|
+
and ident.simple_name != self._bare_ref):
|
|
246
|
+
return ident
|
|
284
247
|
return ident.replace(_simple_name=new_name)
|
|
285
248
|
|
|
286
249
|
return BuiltinAliasVisitor()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrewrite-migrate-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.15.0
|
|
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
|
|
@@ -11,17 +11,15 @@ Project-URL: Issues, https://github.com/openrewrite/rewrite-migrate-python/issue
|
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: License :: Other/Proprietary License
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
16
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
18
16
|
Classifier: Topic :: Software Development :: Code Generators
|
|
19
17
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
20
18
|
Classifier: Typing :: Typed
|
|
21
|
-
Requires-Python: >=3.
|
|
19
|
+
Requires-Python: >=3.12
|
|
22
20
|
Description-Content-Type: text/markdown
|
|
23
21
|
Provides-Extra: dev
|
|
24
|
-
Requires-Dist: openrewrite>=8.
|
|
22
|
+
Requires-Dist: openrewrite>=8.92.3; extra == "dev"
|
|
25
23
|
Requires-Dist: pydantic>=2.11; extra == "dev"
|
|
26
24
|
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
27
25
|
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
@@ -450,16 +450,16 @@ class TestPep585CornerCases:
|
|
|
450
450
|
a: "List" = []
|
|
451
451
|
b: "List[int]" = []
|
|
452
452
|
c: "Dict[str, List[int]]" = {}
|
|
453
|
-
d: "
|
|
454
|
-
e: "
|
|
453
|
+
d: "dict[Café, List[int]]" = {}
|
|
454
|
+
e: " List[int]" = []
|
|
455
455
|
""",
|
|
456
456
|
"""
|
|
457
457
|
from typing import Dict
|
|
458
458
|
a: "list" = []
|
|
459
459
|
b: "list[int]" = []
|
|
460
460
|
c: "Dict[str, list[int]]" = {}
|
|
461
|
-
d: "
|
|
462
|
-
e: "
|
|
461
|
+
d: "dict[Café, list[int]]" = {}
|
|
462
|
+
e: " list[int]" = []
|
|
463
463
|
""",
|
|
464
464
|
)
|
|
465
465
|
)
|
|
@@ -482,7 +482,7 @@ class TestPep585CornerCases:
|
|
|
482
482
|
)
|
|
483
483
|
|
|
484
484
|
def test_leaves_quoted_annotated_metadata_alone(self):
|
|
485
|
-
"""
|
|
485
|
+
"""Only the first `Annotated` argument is a type; the metadata string is a value, not a `List` reference."""
|
|
486
486
|
spec = RecipeSpec(recipe=ReplaceTypingListWithList())
|
|
487
487
|
spec.rewrite_run(
|
|
488
488
|
python(
|
|
@@ -491,7 +491,7 @@ class TestPep585CornerCases:
|
|
|
491
491
|
x: Annotated["List[int]", "List"] = []
|
|
492
492
|
""",
|
|
493
493
|
"""
|
|
494
|
-
from typing import Annotated
|
|
494
|
+
from typing import Annotated
|
|
495
495
|
x: Annotated["list[int]", "List"] = []
|
|
496
496
|
""",
|
|
497
497
|
)
|
{openrewrite_migrate_python-0.14.0.dev20260909114202 → openrewrite_migrate_python-0.15.0}/setup.cfg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|