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.
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/PKG-INFO +1 -1
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/pyproject.toml +1 -1
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python.egg-info/PKG-INFO +1 -1
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python.egg-info/SOURCES.txt +1 -0
- openrewrite_migrate_python-0.17.0.dev20261024133624/tests/test_recipe_reachability.py +125 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_upgrade_recipes.py +3 -4
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/setup.cfg +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/__init__.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/_literals.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/_negation.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/cleanup/conditionals.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/__init__.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/_reindent.py +0 -0
- {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
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_code_quality_python/codequality/_trivia.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/__init__.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_decorators.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_finders.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_langchain_tables.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_markers.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_method_renames.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_module_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/_slots.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/ast_deprecations.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/avro_migrations.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/builtins_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/calendar_deprecations.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/cgi_migrations.py +0 -0
- {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
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/ctypes_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/distutils_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/functools_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/future_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/glob_deprecations.py +0 -0
- {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
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/importlib_deprecations.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/inspect_deprecations.py +0 -0
- {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
- {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
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/locale_deprecations.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/mailcap_migrations.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/nntplib_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pathlib_deprecations.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pipes_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/profile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/pydantic_fields.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/re_deprecations.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/socket_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/sre_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/string_formatting.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/sys_deprecations.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/telnetlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/tempfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/text_encoding.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/threading_deprecations.py +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/types_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/typing_callable.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/typing_deprecations.py +0 -0
- {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
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/unittest_deprecations.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/urllib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/uu_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/wave_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/webbrowser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/xdrlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python/migrate/xml_deprecations.py +0 -0
- {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
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/src/openrewrite_migrate_python.egg-info/requires.txt +0 -0
- {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
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_backoff_to_tenacity.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_builtins_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_cgi_escape_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_change_import_recipes.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_ctypes_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_distutils_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_functools_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_future_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_glob_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_http_server_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_importlib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_importlib_resources_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_inspect_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_mailcap_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_markers.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_module_cached_attribute.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pathlib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pep594_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_profile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pydantic_fields.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_pydantic_model_fields.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_socket_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_sre_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_string_formatting.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_tempfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_text_encoding.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_threading_extended.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_types_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_typing_alias_moves.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_typing_callable.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_typing_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_typing_functional_syntax.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_typing_union_to_pipe.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_urllib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_wave_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_webbrowser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261022214418 → openrewrite_migrate_python-0.17.0.dev20261024133624}/tests/test_xdrlib_migrations.py +0 -0
- {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.
|
|
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.
|
|
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,
|
|
51
|
-
"
|
|
52
|
-
"
|
|
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
|
|
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
|
-
|
|
119
|
-
|
|
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.
|
|
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
|
|
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")
|
|
133
|
-
assert
|
|
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):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|