openrewrite-migrate-python 0.14.0.dev20260909084854__tar.gz → 0.14.0.dev20260909100643__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.
Files changed (158) hide show
  1. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/PKG-INFO +1 -1
  2. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/pyproject.toml +1 -1
  3. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/typing_deprecations.py +45 -1
  4. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python.egg-info/PKG-INFO +1 -1
  5. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_typing_deprecations.py +37 -33
  6. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/setup.cfg +0 -0
  7. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/__init__.py +0 -0
  8. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/__init__.py +0 -0
  9. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/_reindent.py +0 -0
  10. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/_semantically_equal.py +0 -0
  11. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/_trivia.py +0 -0
  12. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/all_branches_identical.py +0 -0
  13. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/boolean_checks_not_inverted.py +0 -0
  14. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/collapsible_if_statements.py +0 -0
  15. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/find_suspicious_chained_comparison.py +0 -0
  16. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/merge_identical_branches.py +0 -0
  17. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/remove_duplicate_conditions.py +0 -0
  18. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/remove_self_assignment.py +0 -0
  19. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/remove_unconditional_value_overwrite.py +0 -0
  20. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/simplify_boolean_literal.py +0 -0
  21. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_code_quality_python/codequality/simplify_redundant_logical_expression.py +0 -0
  22. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/__init__.py +0 -0
  23. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/__init__.py +0 -0
  24. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/_from_imports.py +0 -0
  25. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/_import_hygiene.py +0 -0
  26. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/_langchain_tables.py +0 -0
  27. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/_markers.py +0 -0
  28. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/_slots.py +0 -0
  29. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/_typing_imports.py +0 -0
  30. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/aifc_migrations.py +0 -0
  31. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/array_deprecations.py +0 -0
  32. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/ast_deprecations.py +0 -0
  33. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/asyncio_coroutine_to_async.py +0 -0
  34. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/asyncio_deprecations.py +0 -0
  35. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/avro_migrations.py +0 -0
  36. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/calendar_deprecations.py +0 -0
  37. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/cgi_migrations.py +0 -0
  38. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/cgi_parse_deprecations.py +0 -0
  39. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/collections_abc_migrations.py +0 -0
  40. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/configparser_deprecations.py +0 -0
  41. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/datetime_utc.py +0 -0
  42. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/distutils_deprecations.py +0 -0
  43. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/distutils_migrations.py +0 -0
  44. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/functools_deprecations.py +0 -0
  45. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/future_imports.py +0 -0
  46. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/gettext_deprecations.py +0 -0
  47. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/html_parser_deprecations.py +0 -0
  48. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/imp_migrations.py +0 -0
  49. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/langchain_classic_imports.py +0 -0
  50. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/langchain_community_imports.py +0 -0
  51. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/langchain_provider_imports.py +0 -0
  52. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/locale_deprecations.py +0 -0
  53. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/locale_getdefaultlocale_deprecation.py +0 -0
  54. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/macpath_deprecations.py +0 -0
  55. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/mailcap_migrations.py +0 -0
  56. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/nntplib_migrations.py +0 -0
  57. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/os_deprecations.py +0 -0
  58. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/pathlib_deprecations.py +0 -0
  59. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/pep594_system_migrations.py +0 -0
  60. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/pipes_migrations.py +0 -0
  61. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/pkgutil_deprecations.py +0 -0
  62. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/platform_deprecations.py +0 -0
  63. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/pydantic_deprecations.py +0 -0
  64. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/pydantic_fields.py +0 -0
  65. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/pydantic_model_fields.py +0 -0
  66. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/re_deprecations.py +0 -0
  67. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/removed_modules_312.py +0 -0
  68. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/shutil_deprecations.py +0 -0
  69. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/socket_deprecations.py +0 -0
  70. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/ssl_deprecations.py +0 -0
  71. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/string_formatting.py +0 -0
  72. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/sys_deprecations.py +0 -0
  73. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/sys_last_deprecations.py +0 -0
  74. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/tarfile_deprecations.py +0 -0
  75. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/telnetlib_migrations.py +0 -0
  76. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/tempfile_deprecations.py +0 -0
  77. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/threading_deprecations.py +0 -0
  78. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/threading_is_alive_deprecation.py +0 -0
  79. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/typing_callable.py +0 -0
  80. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/typing_union_to_pipe.py +0 -0
  81. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/unittest_deprecations.py +0 -0
  82. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain02.py +0 -0
  83. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain1.py +0 -0
  84. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/upgrade_to_pydantic.py +0 -0
  85. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/upgrade_to_python310.py +0 -0
  86. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/upgrade_to_python311.py +0 -0
  87. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/upgrade_to_python312.py +0 -0
  88. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/upgrade_to_python313.py +0 -0
  89. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/upgrade_to_python314.py +0 -0
  90. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/upgrade_to_python38.py +0 -0
  91. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/upgrade_to_python39.py +0 -0
  92. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/urllib_deprecations.py +0 -0
  93. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/uu_migrations.py +0 -0
  94. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/xdrlib_migrations.py +0 -0
  95. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python/migrate/xml_deprecations.py +0 -0
  96. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python.egg-info/SOURCES.txt +0 -0
  97. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python.egg-info/dependency_links.txt +0 -0
  98. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python.egg-info/entry_points.txt +0 -0
  99. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python.egg-info/requires.txt +0 -0
  100. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/src/openrewrite_migrate_python.egg-info/top_level.txt +0 -0
  101. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_aifc_migrations.py +0 -0
  102. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_array_deprecations.py +0 -0
  103. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_ast_deprecations.py +0 -0
  104. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_asyncio_coroutine_to_async.py +0 -0
  105. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_asyncio_deprecations.py +0 -0
  106. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_avro_migrations.py +0 -0
  107. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_calendar_deprecations.py +0 -0
  108. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_cgi_parse_deprecations.py +0 -0
  109. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_change_import_recipes.py +0 -0
  110. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_collections_abc_migrations.py +0 -0
  111. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_configparser_deprecations.py +0 -0
  112. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_datetime_utc.py +0 -0
  113. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_distutils_deprecations.py +0 -0
  114. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_distutils_migrations.py +0 -0
  115. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_functools_deprecations.py +0 -0
  116. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_future_imports.py +0 -0
  117. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_gettext_deprecations.py +0 -0
  118. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_html_parser_deprecations.py +0 -0
  119. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_imp_migrations.py +0 -0
  120. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_langchain_classic_imports.py +0 -0
  121. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_langchain_community_imports.py +0 -0
  122. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_langchain_provider_imports.py +0 -0
  123. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_locale_deprecations.py +0 -0
  124. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_locale_getdefaultlocale_deprecation.py +0 -0
  125. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_macpath_deprecations.py +0 -0
  126. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_mailcap_migrations.py +0 -0
  127. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_markers.py +0 -0
  128. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_os_deprecations.py +0 -0
  129. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_pathlib_deprecations.py +0 -0
  130. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_pep594_migrations.py +0 -0
  131. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_pep594_system_migrations.py +0 -0
  132. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_pkgutil_deprecations.py +0 -0
  133. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_platform_deprecations.py +0 -0
  134. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_pydantic_deprecations.py +0 -0
  135. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_pydantic_fields.py +0 -0
  136. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_pydantic_model_fields.py +0 -0
  137. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_re_deprecations.py +0 -0
  138. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_removed_modules_312.py +0 -0
  139. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_shutil_deprecations.py +0 -0
  140. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_socket_deprecations.py +0 -0
  141. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_ssl_deprecations.py +0 -0
  142. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_string_formatting.py +0 -0
  143. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_sys_deprecations.py +0 -0
  144. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_sys_last_deprecations.py +0 -0
  145. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_tarfile_deprecations.py +0 -0
  146. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_tempfile_deprecations.py +0 -0
  147. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_threading_deprecations.py +0 -0
  148. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_threading_extended.py +0 -0
  149. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_threading_is_alive_deprecation.py +0 -0
  150. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_typing_alias_moves.py +0 -0
  151. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_typing_callable.py +0 -0
  152. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_typing_union_to_pipe.py +0 -0
  153. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_unittest_deprecations.py +0 -0
  154. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_upgrade_recipes.py +0 -0
  155. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_upgrade_to_pydantic.py +0 -0
  156. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_urllib_deprecations.py +0 -0
  157. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/tests/test_xdrlib_migrations.py +0 -0
  158. {openrewrite_migrate_python-0.14.0.dev20260909084854 → openrewrite_migrate_python-0.14.0.dev20260909100643}/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.dev20260909084854
3
+ Version: 0.14.0.dev20260909100643
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.dev20260909084854" # Updated dynamically during release
8
+ version = "0.14.0.dev20260909100643" # 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"
@@ -20,12 +20,15 @@ handled with `ChangeImport` in `upgrade_to_python39`.
20
20
  See: https://peps.python.org/pep-0585/
21
21
  """
22
22
 
23
+ import ast
23
24
  from typing import Any, ClassVar, Optional, Set, cast
24
25
 
25
26
  from rewrite import ExecutionContext, Recipe, Tree, TreeVisitor
26
27
  from rewrite.category import CategoryDescriptor
27
28
  from rewrite.decorators import categorize
28
29
  from rewrite.marketplace import Python
30
+ from rewrite.python.import_utils import referenced_names
31
+ from rewrite.python.markers import Quoted
29
32
  from rewrite.python.scope_utils import LocalBindings
30
33
  from rewrite.visitor import Cursor
31
34
 
@@ -132,6 +135,44 @@ def _in_annotation(cursor: Cursor) -> bool:
132
135
  return False
133
136
 
134
137
 
138
+ def _rename_in_quoted_body(body: str, old_name: str, new_name: str) -> Optional[str]:
139
+ """`body` with each name lookup of `old_name` renamed, or None when it holds none.
140
+
141
+ A quoted annotation carries a whole expression in one identifier, so the
142
+ rename has to land on its `ast.Name` nodes. Only parsing separates those
143
+ from a string constant the body encloses, where the name is a value:
144
+ renaming in `Literal['Text', 'Binary']` would change the type.
145
+ """
146
+ stripped = body.strip()
147
+ try:
148
+ expression = ast.parse(stripped, mode="eval")
149
+ except (SyntaxError, ValueError):
150
+ return None
151
+ matches = [
152
+ node
153
+ for node in ast.walk(expression)
154
+ if isinstance(node, ast.Name) and node.id == old_name
155
+ ]
156
+ if not matches:
157
+ return None
158
+
159
+ # `col_offset` counts UTF-8 bytes, so the splice has to happen in bytes.
160
+ source = stripped.encode()
161
+ line_starts = [0]
162
+ for line in source.split(b"\n"):
163
+ line_starts.append(line_starts[-1] + len(line) + 1)
164
+ for node in sorted(matches, key=lambda n: (n.lineno, n.col_offset), reverse=True):
165
+ line = line_starts[node.lineno - 1]
166
+ source = (
167
+ source[: line + node.col_offset]
168
+ + new_name.encode()
169
+ + source[line + cast(int, node.end_col_offset) :]
170
+ )
171
+
172
+ leading = len(body) - len(body.lstrip())
173
+ return body[:leading] + source.decode() + body[leading + len(stripped) :]
174
+
175
+
135
176
  def _make_builtin_alias_editor(
136
177
  old_name: str, new_name: str, annotations_only: bool
137
178
  ) -> "TreeVisitor[Any, ExecutionContext]":
@@ -200,7 +241,7 @@ def _make_builtin_alias_editor(
200
241
 
201
242
  def visit_identifier(self, ident: Identifier, p: ExecutionContext) -> J:
202
243
  ident = cast(Identifier, super().visit_identifier(ident, p))
203
- if self._bare_ref is None or ident.simple_name != self._bare_ref:
244
+ if self._bare_ref is None or self._bare_ref not in referenced_names(ident):
204
245
  return ident
205
246
 
206
247
  # Skip identifiers that are part of import statements
@@ -224,6 +265,9 @@ def _make_builtin_alias_editor(
224
265
  if annotations_only and not _in_annotation(self.cursor):
225
266
  return ident
226
267
 
268
+ if ident.markers.find_first(Quoted) is not None:
269
+ renamed = _rename_in_quoted_body(ident.simple_name, self._bare_ref, new_name)
270
+ return ident if renamed is None else ident.replace(_simple_name=renamed)
227
271
  return ident.replace(_simple_name=new_name)
228
272
 
229
273
  return BuiltinAliasVisitor()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openrewrite-migrate-python
3
- Version: 0.14.0.dev20260909084854
3
+ Version: 0.14.0.dev20260909100643
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
@@ -410,26 +410,6 @@ class TestPep585CornerCases:
410
410
  )
411
411
  )
412
412
 
413
- def test_keeps_import_used_by_string_annotation(self):
414
- """The import stays while a string annotation still references it."""
415
- spec = RecipeSpec(recipe=ReplaceTypingListWithList())
416
- spec.rewrite_run(
417
- python(
418
- """
419
- from typing import List
420
- x: List[int] = []
421
- def f() -> "List[int]":
422
- return x
423
- """,
424
- """
425
- from typing import List
426
- x: list[int] = []
427
- def f() -> "List[int]":
428
- return x
429
- """,
430
- )
431
- )
432
-
433
413
  def test_removes_import_when_only_a_docstring_mentions_the_name(self):
434
414
  """Prose that happens to spell the name is not a reference to it."""
435
415
  spec = RecipeSpec(recipe=ReplaceTypingListWithList())
@@ -457,35 +437,59 @@ class TestPep585CornerCases:
457
437
  )
458
438
  )
459
439
 
460
- def test_keeps_import_used_by_quoted_annotation(self):
461
- """A quoted annotation the rename leaves alone still needs the import."""
440
+ def test_renames_inside_quoted_annotations(self):
441
+ """A quoted annotation holds an expression; every lookup of the alias in it is renamed."""
462
442
  spec = RecipeSpec(recipe=ReplaceTypingListWithList())
463
443
  spec.rewrite_run(
464
444
  python(
465
445
  """
466
- from typing import List
467
- x: List[int] = []
468
- y: "List[int]" = []
446
+ from typing import Dict, List
447
+ a: "List" = []
448
+ b: "List[int]" = []
449
+ c: "Dict[str, List[int]]" = {}
450
+ d: " List[int] " = []
451
+ e: "dict[Café, List[int]]" = {}
469
452
  """,
470
453
  """
471
- from typing import List
472
- x: list[int] = []
473
- y: "List[int]" = []
454
+ from typing import Dict
455
+ a: "list" = []
456
+ b: "list[int]" = []
457
+ c: "Dict[str, list[int]]" = {}
458
+ d: " list[int] " = []
459
+ e: "dict[Café, list[int]]" = {}
474
460
  """,
475
461
  )
476
462
  )
477
463
 
478
- def test_removes_import_when_the_quoted_annotation_is_renamed(self):
479
- """The rename reaches inside a bare quoted annotation, freeing the import."""
464
+ def test_leaves_quoted_names_that_are_not_a_lookup_alone(self):
465
+ """In a quoted body only an `ast.Name` is a lookup of the alias."""
480
466
  spec = RecipeSpec(recipe=ReplaceTypingListWithList())
481
467
  spec.rewrite_run(
482
468
  python(
483
469
  """
484
- from typing import List
485
- x: "List" = []
470
+ from typing import List, Literal
471
+
472
+ alias = List
473
+ a: "MyList" = []
474
+ b: "ListLike[int]" = []
475
+ c: "mod.List[int]" = []
476
+ d: "Literal['List', 'Tuple']" = "List"
477
+ """
478
+ )
479
+ )
480
+
481
+ def test_leaves_quoted_annotated_metadata_alone(self):
482
+ """The parser quotes `Annotated` metadata like a type; only its first argument is one."""
483
+ spec = RecipeSpec(recipe=ReplaceTypingListWithList())
484
+ spec.rewrite_run(
485
+ python(
486
+ """
487
+ from typing import Annotated, List
488
+ x: Annotated["List[int]", "List"] = []
486
489
  """,
487
490
  """
488
- x: "list" = []
491
+ from typing import Annotated, List
492
+ x: Annotated["list[int]", "List"] = []
489
493
  """,
490
494
  )
491
495
  )