openrewrite-migrate-python 0.17.0.dev20261015170646__tar.gz → 0.17.0.dev20261016170653__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.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/PKG-INFO +1 -1
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/pyproject.toml +1 -1
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/typing_union_to_pipe.py +12 -14
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python.egg-info/PKG-INFO +1 -1
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_typing_union_to_pipe.py +68 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/setup.cfg +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/__init__.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/_literals.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/assign_return.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/attr_access.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/boolean_simplification.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/collection_literals.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/comparison_simplification.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/complex_transforms.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/comprehension_cleanup.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/conditionals.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/datetime_cleanup.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/dict_cleanup.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/exception_cleanup.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/expression_simplification.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/logger_warn.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/loop_cleanup.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/merge_nested_with.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/merge_startswith_endswith.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/naming_conventions.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/negated_operators.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/none_and_identity.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/object_inheritance.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/pandas_cleanup.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/python_best_practices.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/range_cleanup.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/redundant_code.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/remove_trailing_return_none.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/string_cleanup.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/unreachable_code.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/use_items.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/use_list_clear.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/cleanup/yoda_conditions.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/__init__.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/_reindent.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/_semantically_equal.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/_side_effects.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/_trivia.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/_truth_value.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/all_branches_identical.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/boolean_checks_not_inverted.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/code_quality.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/collapsible_if_statements.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/find_suspicious_chained_comparison.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/merge_identical_branches.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/remove_duplicate_conditions.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/remove_self_assignment.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/remove_unconditional_value_overwrite.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/simplify_boolean_literal.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_code_quality_python/codequality/simplify_redundant_logical_expression.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/__init__.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/_decorators.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/_langchain_tables.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/_markers.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/_method_renames.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/_module_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/_slots.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/backoff_to_tenacity.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/cgi_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/distutils_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/functools_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/future_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/mailcap_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/nntplib_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/pathlib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/pipes_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/pydantic_fields.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/pydantic_model_fields.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/socket_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/string_formatting.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/telnetlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/tempfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/typing_callable.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/typing_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain02.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain1.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_pandas.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_python310.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_python311.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_python312.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_python313.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_python314.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_python38.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/upgrade_to_python39.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/urllib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/uu_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/xdrlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python/migrate/xml_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python.egg-info/SOURCES.txt +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python.egg-info/dependency_links.txt +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python.egg-info/entry_points.txt +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python.egg-info/requires.txt +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/src/openrewrite_migrate_python.egg-info/top_level.txt +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_backoff_to_tenacity.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_change_import_recipes.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_distutils_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_functools_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_future_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_mailcap_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_markers.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_pathlib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_pep594_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_pydantic_fields.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_pydantic_model_fields.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_socket_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_string_formatting.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_tempfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_threading_extended.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_typing_alias_moves.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_typing_callable.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_typing_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_upgrade_recipes.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_urllib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/tests/test_xdrlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.17.0.dev20261015170646 → openrewrite_migrate_python-0.17.0.dev20261016170653}/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.dev20261016170653
|
|
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.dev20261016170653" # 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"
|
|
@@ -10,7 +10,7 @@ PEP 604 (Python 3.10+) introduced the `X | Y` syntax for union types:
|
|
|
10
10
|
See: https://peps.python.org/pep-0604/
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
|
-
from typing import Any, List,
|
|
13
|
+
from typing import Any, List, Sequence, Set
|
|
14
14
|
|
|
15
15
|
from rewrite import Cursor, ExecutionContext, Preconditions, Recipe, TreeVisitor
|
|
16
16
|
from rewrite.category import CategoryDescriptor
|
|
@@ -105,13 +105,11 @@ def _create_none_literal(prefix: Space) -> Literal:
|
|
|
105
105
|
)
|
|
106
106
|
|
|
107
107
|
|
|
108
|
-
def _create_union_type(
|
|
109
|
-
|
|
110
|
-
) -> UnionType:
|
|
111
|
-
"""Create a UnionType node (X | Y | Z).
|
|
108
|
+
def _create_union_type(types: List[Expression], replaced: Expression) -> UnionType:
|
|
109
|
+
"""A UnionType (X | Y | Z) in place of the subscript `replaced`.
|
|
112
110
|
|
|
113
|
-
|
|
114
|
-
|
|
111
|
+
It takes over the subscript's prefix, type and markers, so a `Quoted`
|
|
112
|
+
subscript keeps its quotes.
|
|
115
113
|
"""
|
|
116
114
|
# Create JRightPadded list with ' | ' after each type except the last
|
|
117
115
|
padded_types = []
|
|
@@ -137,10 +135,10 @@ def _create_union_type(
|
|
|
137
135
|
|
|
138
136
|
return UnionType(
|
|
139
137
|
_id=random_id(),
|
|
140
|
-
_prefix=prefix,
|
|
141
|
-
_markers=
|
|
138
|
+
_prefix=replaced.prefix,
|
|
139
|
+
_markers=replaced.markers,
|
|
142
140
|
_types=padded_types,
|
|
143
|
-
_type=
|
|
141
|
+
_type=replaced.type,
|
|
144
142
|
)
|
|
145
143
|
|
|
146
144
|
|
|
@@ -211,7 +209,7 @@ class ReplaceTypingOptionalWithUnion(Recipe):
|
|
|
211
209
|
|
|
212
210
|
# Create X | None using UnionType
|
|
213
211
|
none_literal = _create_none_literal(Space.EMPTY)
|
|
214
|
-
return _create_union_type([type_arg, none_literal], param_type
|
|
212
|
+
return _create_union_type([type_arg, none_literal], param_type)
|
|
215
213
|
|
|
216
214
|
def visit_array_access(
|
|
217
215
|
self, array_access: ArrayAccess, p: ExecutionContext
|
|
@@ -238,7 +236,7 @@ class ReplaceTypingOptionalWithUnion(Recipe):
|
|
|
238
236
|
|
|
239
237
|
# Create X | None using UnionType
|
|
240
238
|
none_literal = _create_none_literal(Space.EMPTY)
|
|
241
|
-
return _create_union_type([index, none_literal], array_access
|
|
239
|
+
return _create_union_type([index, none_literal], array_access)
|
|
242
240
|
|
|
243
241
|
return Preconditions.check(uses_import("typing"), Visitor())
|
|
244
242
|
|
|
@@ -308,7 +306,7 @@ class ReplaceTypingUnionWithPipe(Recipe):
|
|
|
308
306
|
self._remove_source_import(param_type.clazz, "Union")
|
|
309
307
|
|
|
310
308
|
# Create union type with all type parameters
|
|
311
|
-
return _create_union_type(list(type_params), param_type
|
|
309
|
+
return _create_union_type(list(type_params), param_type)
|
|
312
310
|
|
|
313
311
|
def visit_array_access(
|
|
314
312
|
self, array_access: ArrayAccess, p: ExecutionContext
|
|
@@ -340,6 +338,6 @@ class ReplaceTypingUnionWithPipe(Recipe):
|
|
|
340
338
|
self._remove_source_import(array_access.indexed, "Union")
|
|
341
339
|
|
|
342
340
|
# Create union type with all elements
|
|
343
|
-
return _create_union_type(elements, array_access
|
|
341
|
+
return _create_union_type(elements, array_access)
|
|
344
342
|
|
|
345
343
|
return Preconditions.check(uses_import("typing"), Visitor())
|
|
@@ -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.dev20261016170653
|
|
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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""Tests for typing.Optional and typing.Union to PEP 604 migration recipes."""
|
|
2
2
|
|
|
3
|
+
from rewrite import InMemoryExecutionContext, InMemoryLargeSourceSet, Recipe
|
|
3
4
|
from rewrite.python.visitor import PythonVisitor
|
|
4
5
|
from rewrite.test import RecipeSpec, python
|
|
5
6
|
from openrewrite_migrate_python.migrate.typing_union_to_pipe import (
|
|
@@ -8,6 +9,18 @@ from openrewrite_migrate_python.migrate.typing_union_to_pipe import (
|
|
|
8
9
|
)
|
|
9
10
|
|
|
10
11
|
|
|
12
|
+
def _assert_idempotent(recipe: Recipe):
|
|
13
|
+
"""Return an after_recipe callback that asserts running the recipe again produces no change."""
|
|
14
|
+
def check(source_file):
|
|
15
|
+
for r in recipe.run(InMemoryLargeSourceSet([source_file]), InMemoryExecutionContext()):
|
|
16
|
+
if r._after is not None and r._after is not r._before:
|
|
17
|
+
assert False, (
|
|
18
|
+
f"Recipe is not idempotent. A second run changed\n"
|
|
19
|
+
f"{source_file.print_all()!r}\ninto\n{r._after.print_all()!r}"
|
|
20
|
+
)
|
|
21
|
+
return check
|
|
22
|
+
|
|
23
|
+
|
|
11
24
|
def _assert_built_nodes_typed(source_file):
|
|
12
25
|
"""``after_recipe`` hook: fail on a node the recipe left untyped, which a parse types."""
|
|
13
26
|
untyped = []
|
|
@@ -450,3 +463,58 @@ class TestTypeCheckingBlocks:
|
|
|
450
463
|
""",
|
|
451
464
|
)
|
|
452
465
|
)
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
class TestQuotedAnnotations:
|
|
469
|
+
"""A quoted annotation parses to type nodes marked `Quoted`, which print the quotes back."""
|
|
470
|
+
|
|
471
|
+
def test_rewrites_quoted_optional(self):
|
|
472
|
+
recipe = ReplaceTypingOptionalWithUnion()
|
|
473
|
+
spec = RecipeSpec(recipe=recipe)
|
|
474
|
+
spec.rewrite_run(
|
|
475
|
+
python(
|
|
476
|
+
"""
|
|
477
|
+
import typing
|
|
478
|
+
from typing import Dict, Optional
|
|
479
|
+
a: "Optional[int]" = None
|
|
480
|
+
b: "Dict[str, Optional[int]]" = {}
|
|
481
|
+
c: "typing.Optional[int]" = None
|
|
482
|
+
""",
|
|
483
|
+
"""
|
|
484
|
+
from typing import Dict
|
|
485
|
+
a: "int | None" = None
|
|
486
|
+
b: "Dict[str, int | None]" = {}
|
|
487
|
+
c: "int | None" = None
|
|
488
|
+
""",
|
|
489
|
+
after_recipe=_assert_idempotent(recipe),
|
|
490
|
+
)
|
|
491
|
+
)
|
|
492
|
+
|
|
493
|
+
def test_rewrites_quoted_union(self):
|
|
494
|
+
spec = RecipeSpec(recipe=ReplaceTypingUnionWithPipe())
|
|
495
|
+
spec.rewrite_run(
|
|
496
|
+
python(
|
|
497
|
+
"""
|
|
498
|
+
from typing import Union
|
|
499
|
+
a: "Union[int, str, bytes]" = 1
|
|
500
|
+
""",
|
|
501
|
+
"""
|
|
502
|
+
a: "int | str | bytes" = 1
|
|
503
|
+
""",
|
|
504
|
+
)
|
|
505
|
+
)
|
|
506
|
+
|
|
507
|
+
def test_treats_quoted_annotated_metadata_as_data_not_a_type(self):
|
|
508
|
+
spec = RecipeSpec(recipe=ReplaceTypingOptionalWithUnion())
|
|
509
|
+
spec.rewrite_run(
|
|
510
|
+
python(
|
|
511
|
+
"""
|
|
512
|
+
from typing import Annotated, Optional
|
|
513
|
+
x: Annotated["Optional[int]", "Optional[str]"] = None
|
|
514
|
+
""",
|
|
515
|
+
"""
|
|
516
|
+
from typing import Annotated
|
|
517
|
+
x: Annotated["int | None", "Optional[str]"] = None
|
|
518
|
+
""",
|
|
519
|
+
)
|
|
520
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|