openrewrite-migrate-python 0.17.0.dev20261022214418__tar.gz → 0.17.0.dev20261024133624__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 (232) hide show
  1. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/PKG-INFO +1 -1
  2. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/pyproject.toml +1 -1
  3. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_python313.py +7 -6
  4. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python.egg-info/PKG-INFO +1 -1
  5. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python.egg-info/SOURCES.txt +1 -0
  6. openrewrite_migrate_python-0.17.0.dev20261024133624/tests/test_recipe_reachability.py +125 -0
  7. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_upgrade_recipes.py +3 -4
  8. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/setup.cfg +0 -0
  9. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/__init__.py +0 -0
  10. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/__init__.py +0 -0
  11. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/_literals.py +0 -0
  12. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/_negation.py +0 -0
  13. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/assign_return.py +0 -0
  14. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/attr_access.py +0 -0
  15. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/boolean_simplification.py +0 -0
  16. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/collection_literals.py +0 -0
  17. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/comparison_simplification.py +0 -0
  18. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/complex_transforms.py +0 -0
  19. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/comprehension_cleanup.py +0 -0
  20. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/conditionals.py +0 -0
  21. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/datetime_cleanup.py +0 -0
  22. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/dict_cleanup.py +0 -0
  23. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/exception_cleanup.py +0 -0
  24. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/expression_simplification.py +0 -0
  25. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/logger_warn.py +0 -0
  26. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/loop_cleanup.py +0 -0
  27. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/merge_nested_with.py +0 -0
  28. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/merge_startswith_endswith.py +0 -0
  29. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/naming_conventions.py +0 -0
  30. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/negated_operators.py +0 -0
  31. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/none_and_identity.py +0 -0
  32. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/object_inheritance.py +0 -0
  33. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/pandas_cleanup.py +0 -0
  34. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/python_best_practices.py +0 -0
  35. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/range_cleanup.py +0 -0
  36. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/redundant_code.py +0 -0
  37. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/remove_trailing_return_none.py +0 -0
  38. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/string_cleanup.py +0 -0
  39. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/unreachable_code.py +0 -0
  40. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/use_items.py +0 -0
  41. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/use_list_clear.py +0 -0
  42. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/yoda_conditions.py +0 -0
  43. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/__init__.py +0 -0
  44. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/_reindent.py +0 -0
  45. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/_semantically_equal.py +0 -0
  46. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/_side_effects.py +0 -0
  47. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/_trivia.py +0 -0
  48. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/_truth_value.py +0 -0
  49. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/all_branches_identical.py +0 -0
  50. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/boolean_checks_not_inverted.py +0 -0
  51. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/code_quality.py +0 -0
  52. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/collapsible_if_statements.py +0 -0
  53. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/find_suspicious_chained_comparison.py +0 -0
  54. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/merge_identical_branches.py +0 -0
  55. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/remove_duplicate_conditions.py +0 -0
  56. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/remove_self_assignment.py +0 -0
  57. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/remove_unconditional_value_overwrite.py +0 -0
  58. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/simplify_boolean_literal.py +0 -0
  59. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/simplify_redundant_logical_expression.py +0 -0
  60. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/__init__.py +0 -0
  61. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/__init__.py +0 -0
  62. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_decorators.py +0 -0
  63. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_finders.py +0 -0
  64. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_langchain_tables.py +0 -0
  65. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_markers.py +0 -0
  66. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_method_renames.py +0 -0
  67. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_module_imports.py +0 -0
  68. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_slots.py +0 -0
  69. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/aifc_migrations.py +0 -0
  70. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/array_deprecations.py +0 -0
  71. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/ast_deprecations.py +0 -0
  72. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/asyncio_coroutine_to_async.py +0 -0
  73. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/asyncio_deprecations.py +0 -0
  74. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/avro_migrations.py +0 -0
  75. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/backoff_to_tenacity.py +0 -0
  76. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/builtins_deprecations.py +0 -0
  77. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/calendar_deprecations.py +0 -0
  78. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/cgi_escape_deprecations.py +0 -0
  79. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/cgi_migrations.py +0 -0
  80. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/cgi_parse_deprecations.py +0 -0
  81. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/collections_abc_migrations.py +0 -0
  82. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/configparser_deprecations.py +0 -0
  83. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/ctypes_deprecations.py +0 -0
  84. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/datetime_utc.py +0 -0
  85. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/distutils_deprecations.py +0 -0
  86. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/distutils_migrations.py +0 -0
  87. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/functools_deprecations.py +0 -0
  88. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/future_imports.py +0 -0
  89. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/gettext_deprecations.py +0 -0
  90. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/glob_deprecations.py +0 -0
  91. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/html_parser_deprecations.py +0 -0
  92. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/http_server_deprecations.py +0 -0
  93. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/imp_migrations.py +0 -0
  94. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/importlib_deprecations.py +0 -0
  95. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/importlib_resources_deprecations.py +0 -0
  96. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/inspect_deprecations.py +0 -0
  97. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/langchain_classic_imports.py +0 -0
  98. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/langchain_community_imports.py +0 -0
  99. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/langchain_provider_imports.py +0 -0
  100. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/locale_deprecations.py +0 -0
  101. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/locale_getdefaultlocale_deprecation.py +0 -0
  102. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/macpath_deprecations.py +0 -0
  103. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/mailcap_migrations.py +0 -0
  104. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/module_cached_attribute.py +0 -0
  105. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/nntplib_migrations.py +0 -0
  106. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/os_deprecations.py +0 -0
  107. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pathlib_deprecations.py +0 -0
  108. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pep594_system_migrations.py +0 -0
  109. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pipes_migrations.py +0 -0
  110. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pkgutil_deprecations.py +0 -0
  111. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/platform_deprecations.py +0 -0
  112. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/profile_deprecations.py +0 -0
  113. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pydantic_deprecations.py +0 -0
  114. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pydantic_fields.py +0 -0
  115. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pydantic_model_fields.py +0 -0
  116. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/re_deprecations.py +0 -0
  117. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/removed_modules_312.py +0 -0
  118. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/shutil_deprecations.py +0 -0
  119. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/socket_deprecations.py +0 -0
  120. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/sre_migrations.py +0 -0
  121. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/ssl_deprecations.py +0 -0
  122. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/string_formatting.py +0 -0
  123. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/sys_deprecations.py +0 -0
  124. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/sys_last_deprecations.py +0 -0
  125. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/tarfile_deprecations.py +0 -0
  126. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/telnetlib_migrations.py +0 -0
  127. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/tempfile_deprecations.py +0 -0
  128. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/text_encoding.py +0 -0
  129. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/threading_deprecations.py +0 -0
  130. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/threading_is_alive_deprecation.py +0 -0
  131. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/types_deprecations.py +0 -0
  132. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/typing_callable.py +0 -0
  133. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/typing_deprecations.py +0 -0
  134. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/typing_functional_syntax.py +0 -0
  135. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/typing_union_to_pipe.py +0 -0
  136. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/unittest_deprecations.py +0 -0
  137. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain02.py +0 -0
  138. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain1.py +0 -0
  139. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_pandas.py +0 -0
  140. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_pydantic.py +0 -0
  141. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_python310.py +0 -0
  142. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_python311.py +0 -0
  143. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_python312.py +0 -0
  144. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_python314.py +0 -0
  145. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_python315.py +0 -0
  146. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_python38.py +0 -0
  147. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/upgrade_to_python39.py +0 -0
  148. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/urllib_deprecations.py +0 -0
  149. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/uu_migrations.py +0 -0
  150. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/wave_deprecations.py +0 -0
  151. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/webbrowser_deprecations.py +0 -0
  152. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/xdrlib_migrations.py +0 -0
  153. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/xml_deprecations.py +0 -0
  154. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python.egg-info/dependency_links.txt +0 -0
  155. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python.egg-info/entry_points.txt +0 -0
  156. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python.egg-info/requires.txt +0 -0
  157. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python.egg-info/top_level.txt +0 -0
  158. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_aifc_migrations.py +0 -0
  159. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_array_deprecations.py +0 -0
  160. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_ast_deprecations.py +0 -0
  161. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_asyncio_coroutine_to_async.py +0 -0
  162. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_asyncio_deprecations.py +0 -0
  163. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_avro_migrations.py +0 -0
  164. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_backoff_to_tenacity.py +0 -0
  165. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_builtins_deprecations.py +0 -0
  166. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_calendar_deprecations.py +0 -0
  167. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_cgi_escape_deprecations.py +0 -0
  168. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_cgi_parse_deprecations.py +0 -0
  169. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_change_import_recipes.py +0 -0
  170. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_collections_abc_migrations.py +0 -0
  171. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_configparser_deprecations.py +0 -0
  172. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_ctypes_deprecations.py +0 -0
  173. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_datetime_utc.py +0 -0
  174. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_distutils_deprecations.py +0 -0
  175. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_distutils_migrations.py +0 -0
  176. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_functools_deprecations.py +0 -0
  177. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_future_imports.py +0 -0
  178. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_gettext_deprecations.py +0 -0
  179. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_glob_deprecations.py +0 -0
  180. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_html_parser_deprecations.py +0 -0
  181. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_http_server_deprecations.py +0 -0
  182. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_imp_migrations.py +0 -0
  183. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_importlib_deprecations.py +0 -0
  184. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_importlib_resources_deprecations.py +0 -0
  185. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_inspect_deprecations.py +0 -0
  186. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_langchain_classic_imports.py +0 -0
  187. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_langchain_community_imports.py +0 -0
  188. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_langchain_provider_imports.py +0 -0
  189. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_locale_deprecations.py +0 -0
  190. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_locale_getdefaultlocale_deprecation.py +0 -0
  191. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_macpath_deprecations.py +0 -0
  192. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_mailcap_migrations.py +0 -0
  193. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_markers.py +0 -0
  194. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_module_cached_attribute.py +0 -0
  195. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_os_deprecations.py +0 -0
  196. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pathlib_deprecations.py +0 -0
  197. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pep594_migrations.py +0 -0
  198. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pep594_system_migrations.py +0 -0
  199. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pkgutil_deprecations.py +0 -0
  200. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_platform_deprecations.py +0 -0
  201. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_profile_deprecations.py +0 -0
  202. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pydantic_deprecations.py +0 -0
  203. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pydantic_fields.py +0 -0
  204. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pydantic_model_fields.py +0 -0
  205. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_re_deprecations.py +0 -0
  206. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_removed_modules_312.py +0 -0
  207. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_shutil_deprecations.py +0 -0
  208. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_socket_deprecations.py +0 -0
  209. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_sre_migrations.py +0 -0
  210. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_ssl_deprecations.py +0 -0
  211. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_string_formatting.py +0 -0
  212. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_sys_deprecations.py +0 -0
  213. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_sys_last_deprecations.py +0 -0
  214. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_tarfile_deprecations.py +0 -0
  215. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_tempfile_deprecations.py +0 -0
  216. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_text_encoding.py +0 -0
  217. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_threading_deprecations.py +0 -0
  218. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_threading_extended.py +0 -0
  219. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_threading_is_alive_deprecation.py +0 -0
  220. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_types_deprecations.py +0 -0
  221. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_typing_alias_moves.py +0 -0
  222. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_typing_callable.py +0 -0
  223. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_typing_deprecations.py +0 -0
  224. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_typing_functional_syntax.py +0 -0
  225. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_typing_union_to_pipe.py +0 -0
  226. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_unittest_deprecations.py +0 -0
  227. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_upgrade_to_pydantic.py +0 -0
  228. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_urllib_deprecations.py +0 -0
  229. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_wave_deprecations.py +0 -0
  230. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_webbrowser_deprecations.py +0 -0
  231. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_xdrlib_migrations.py +0 -0
  232. {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/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.17.0.dev20261022214418
3
+ Version: 0.17.0.dev20261024133624
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.17.0.dev20261022214418" # Updated dynamically during release
8
+ version = "0.17.0.dev20261024133624" # 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"
@@ -47,9 +47,9 @@ class UpgradeToPython313(Recipe):
47
47
  return (
48
48
  "Migrate deprecated and removed APIs for Python 3.13 compatibility. "
49
49
  "This includes detecting usage of modules removed in PEP 594 "
50
- "('dead batteries'), other API changes between Python 3.12 and 3.13, and bumping "
51
- "third-party dependencies (`ruff`, `avro-python3`) whose pinned releases do not "
52
- "install cleanly on Python 3.13."
50
+ "('dead batteries'), other API changes between Python 3.12 and 3.13, bumping `ruff` "
51
+ "past the pinned releases that do not install cleanly on Python 3.13, and replacing "
52
+ "the deprecated `avro-python3` with Apache `avro`."
53
53
  )
54
54
 
55
55
  @property
@@ -67,6 +67,7 @@ class UpgradeToPython313(Recipe):
67
67
  FindSndhdrModule,
68
68
  FindSunauModule,
69
69
  )
70
+ from .avro_migrations import MigrateAvroPython3ToAvro
70
71
  from .cgi_migrations import FindCgiModule, FindCgitbModule
71
72
  from .locale_deprecations import ReplaceLocaleResetlocale
72
73
  from .array_deprecations import FindArrayUnicodeTypecode
@@ -112,11 +113,11 @@ class UpgradeToPython313(Recipe):
112
113
  FindXdrlibModule(),
113
114
  # 'u' array typecode deprecated in 3.13, removed in 3.16
114
115
  FindArrayUnicodeTypecode(),
115
- # Bump third-party pins that don't install cleanly on 3.13 (avro-python3 off its fragile 1.8.2 sdist).
116
+ # Bump third-party pins that don't install cleanly on 3.13.
116
117
  RpcRecipe("org.openrewrite.python.UpgradeDependencyVersion",
117
118
  packageName="ruff", newVersion=">=0.15.21"),
118
- RpcRecipe("org.openrewrite.python.UpgradeDependencyVersion",
119
- packageName="avro-python3", newVersion=">=1.10.2"),
119
+ # avro-python3's fragile 1.8.2 sdist doesn't install on 3.13; avro is its maintained successor.
120
+ MigrateAvroPython3ToAvro(),
120
121
  # Target version in project metadata, packaging, Dockerfiles, CI, docs and infrastructure files
121
122
  RpcRecipe("org.openrewrite.python.migrate.UpgradePythonVersionTo313"),
122
123
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openrewrite-migrate-python
3
- Version: 0.17.0.dev20261022214418
3
+ Version: 0.17.0.dev20261024133624
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
@@ -199,6 +199,7 @@ tests/test_pydantic_deprecations.py
199
199
  tests/test_pydantic_fields.py
200
200
  tests/test_pydantic_model_fields.py
201
201
  tests/test_re_deprecations.py
202
+ tests/test_recipe_reachability.py
202
203
  tests/test_removed_modules_312.py
203
204
  tests/test_shutil_deprecations.py
204
205
  tests/test_socket_deprecations.py
@@ -0,0 +1,125 @@
1
+ """Every recipe this repository publishes is run by some composite, unless it is meant to stand alone.
2
+
3
+ The composites live in Python, but their leaves span both languages: the per-version
4
+ ``UpgradePythonVersionTo3XX`` recipes are declared in YAML and reached only through ``RpcRecipe``,
5
+ and they reach the per-file recipes through ``UpgradePythonVersion.getRecipeList()``. So the graph
6
+ is built from the marketplace the entry points install, the declarative recipes, and the Java
7
+ recipe classes together.
8
+ """
9
+
10
+ import re
11
+ from pathlib import Path
12
+
13
+ import openrewrite_code_quality_python
14
+ import openrewrite_migrate_python
15
+ from rewrite import Recipe, RecipeMarketplace
16
+ from rewrite.rpc import RpcRecipe
17
+
18
+ _ROOT = Path(__file__).resolve().parents[2]
19
+ _JAVA_SOURCES = _ROOT / "src" / "main" / "java"
20
+ _DECLARATIVE_SOURCES = _ROOT / "src" / "main" / "resources" / "META-INF" / "rewrite"
21
+ _JVM_PREFIX = "org.openrewrite.python.migrate."
22
+
23
+ _STANDALONE = {
24
+ # Entry points
25
+ "org.openrewrite.python.cleanup.PythonBestPractices",
26
+ "org.openrewrite.python.migrate.UpgradeToPython315",
27
+ "org.openrewrite.python.migrate.MigrateBackoffToTenacity",
28
+ "org.openrewrite.python.migrate.langchain.UpgradeToLangChain1",
29
+ "org.openrewrite.python.migrate.pandas.UpgradeToPandas20",
30
+ "org.openrewrite.python.migrate.pydantic.UpgradeToPydantic214",
31
+ "org.openrewrite.python.migrate.MigrateToPyprojectToml",
32
+ # Search recipes
33
+ "org.openrewrite.python.codequality.FindSuspiciousChainedComparison",
34
+ "org.openrewrite.python.migrate.FindBackoffDecoratorsNotMigrated",
35
+ "org.openrewrite.python.migrate.FindImplicitTextEncoding",
36
+ "org.openrewrite.python.migrate.DependencyInsight",
37
+ "org.openrewrite.python.migrate.FindFutureImports",
38
+ "org.openrewrite.python.migrate.FindMethods",
39
+ "org.openrewrite.python.migrate.FindTypes",
40
+ }
41
+
42
+
43
+ def _python_recipes() -> dict[str, Recipe]:
44
+ marketplace = RecipeMarketplace()
45
+ openrewrite_migrate_python.activate(marketplace)
46
+ openrewrite_code_quality_python.activate(marketplace)
47
+ recipes = {}
48
+ for descriptor in marketplace.all_recipes():
49
+ found = marketplace.find_recipe(descriptor.name)
50
+ assert found is not None and found[1] is not None
51
+ recipes[descriptor.name] = found[1]()
52
+ return recipes
53
+
54
+
55
+ def _declarative_recipes() -> dict[str, set[str]]:
56
+ recipes = {}
57
+ for path in _DECLARATIVE_SOURCES.glob("*.yml"):
58
+ for document in re.split(r"^---$", path.read_text(), flags=re.MULTILINE):
59
+ if not re.search(r"^type: specs\.openrewrite\.org/v1beta/recipe$", document, re.MULTILINE):
60
+ continue
61
+ name = re.search(r"^name: (\S+)$", document, re.MULTILINE)
62
+ assert name is not None, f"a recipe in {path.name} has no name"
63
+ recipes[name.group(1)] = set(re.findall(r"^\s*- (org\.openrewrite\.[\w.]+):?$", document, re.MULTILINE))
64
+ return recipes
65
+
66
+
67
+ def _java_recipes() -> dict[str, set[str]]:
68
+ recipes = {}
69
+ for path in _JAVA_SOURCES.rglob("*.java"):
70
+ source = path.read_text()
71
+ package = re.search(r"^package ([\w.]+);", source, re.MULTILINE)
72
+ imports = {fqn.rsplit(".", 1)[1]: fqn for fqn in re.findall(r"^import ([\w.]+);", source, re.MULTILINE)}
73
+ for cls in re.findall(r"^public (?:final )?class (\w+) extends (?:Scanning)?Recipe\b", source, re.MULTILINE):
74
+ assert package is not None
75
+ recipe_list = re.search(r"getRecipeList\(\) \{(.*?)^ }", source, re.MULTILINE | re.DOTALL)
76
+ children = re.findall(r"\bnew (\w+)\(", recipe_list.group(1)) if recipe_list else []
77
+ recipes[f"{package.group(1)}.{cls}"] = {imports.get(c, f"{package.group(1)}.{c}") for c in children}
78
+ return recipes
79
+
80
+
81
+ def _referenced(recipe: Recipe) -> tuple[set[str], set[str]]:
82
+ """The names a composite runs at any depth, and the subset it reaches over RPC."""
83
+ names, rpc = set(), set()
84
+ for sub in recipe.recipe_list():
85
+ names.add(sub.name)
86
+ if isinstance(sub, RpcRecipe):
87
+ rpc.add(sub.name)
88
+ else:
89
+ nested, nested_rpc = _referenced(sub)
90
+ names |= nested
91
+ rpc |= nested_rpc
92
+ return names, rpc
93
+
94
+
95
+ class TestRecipeReachability:
96
+
97
+ def setup_method(self):
98
+ self.python = _python_recipes()
99
+ self.declarative = _declarative_recipes()
100
+ self.java = _java_recipes()
101
+ self.referenced: set[str] = set()
102
+ self.rpc: set[str] = set()
103
+ for recipe in self.python.values():
104
+ names, rpc = _referenced(recipe)
105
+ self.referenced |= names
106
+ self.rpc |= rpc
107
+ for children in [*self.declarative.values(), *self.java.values()]:
108
+ self.referenced |= children
109
+
110
+ def test_every_recipe_is_reachable_from_a_composite(self):
111
+ published = self.python.keys() | self.declarative.keys() | self.java.keys()
112
+ unreachable = published - self.referenced
113
+ assert unreachable - _STANDALONE == set(), (
114
+ "Add these to a composite, or to _STANDALONE if they are meant to be run on their own"
115
+ )
116
+ assert _STANDALONE - unreachable == set(), (
117
+ "These are now run by a composite; remove them from _STANDALONE"
118
+ )
119
+
120
+ def test_every_jvm_recipe_a_composite_names_exists(self):
121
+ jvm = self.declarative.keys() | self.java.keys()
122
+ named = {n for n in self.rpc if n.startswith(_JVM_PREFIX)}
123
+ for children in [*self.declarative.values(), *self.java.values()]:
124
+ named |= {n for n in children if n.startswith(_JVM_PREFIX)}
125
+ assert named - jvm == set()
@@ -121,16 +121,15 @@ class TestUpgradeRecipeChaining:
121
121
  expected = f"org.openrewrite.python.migrate.{name}"
122
122
  assert expected in recipe_names, f"{recipe_cls.__name__} must run {name}"
123
123
 
124
- def test_upgrade_to_python313_bumps_incompatible_dependencies(self):
125
- """UpgradeToPython313 inlines the 3.13-incompatible dependency bumps over RPC."""
124
+ def test_upgrade_to_python313_replaces_incompatible_dependencies(self):
126
125
  recipe_list = UpgradeToPython313().recipe_list()
127
126
  dep_bumps = {
128
127
  (r.delegates_to_options.get("packageName"), r.delegates_to_options.get("newVersion"))
129
128
  for r in recipe_list
130
129
  if isinstance(r, RpcRecipe) and r.name == "org.openrewrite.python.UpgradeDependencyVersion"
131
130
  }
132
- assert ("ruff", ">=0.15.21") in dep_bumps
133
- assert ("avro-python3", ">=1.10.2") in dep_bumps
131
+ assert dep_bumps == {("ruff", ">=0.15.21")}
132
+ assert "org.openrewrite.python.migrate.MigrateAvroPython3ToAvro" in {r.name for r in recipe_list}
134
133
 
135
134
 
136
135
  class _NativeUpgradeToPython313(Recipe):