openrewrite-migrate-python 0.14.0.dev20260902064123__tar.gz → 0.14.0.dev20260902102558__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/PKG-INFO +1 -1
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/pyproject.toml +1 -1
- openrewrite_migrate_python-0.14.0.dev20260902102558/src/openrewrite_code_quality_python/codequality/_reindent.py +93 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/all_branches_identical.py +32 -32
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/collapsible_if_statements.py +71 -46
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python.egg-info/PKG-INFO +1 -1
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python.egg-info/SOURCES.txt +1 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/setup.cfg +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/_semantically_equal.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/boolean_checks_not_inverted.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/find_suspicious_chained_comparison.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/merge_identical_branches.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/remove_duplicate_conditions.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/remove_self_assignment.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/remove_unconditional_value_overwrite.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/simplify_boolean_literal.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_code_quality_python/codequality/simplify_redundant_logical_expression.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/__init__.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/_import_hygiene.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/_markers.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/_typing_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/cgi_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/distutils_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/functools_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/future_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/mailcap_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/nntplib_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/pathlib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/pipes_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/pydantic_fields.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/pydantic_model_fields.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/socket_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/string_formatting.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/telnetlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/tempfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/typing_callable.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/typing_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/typing_union_to_pipe.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain02.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/upgrade_to_langchain1.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/upgrade_to_python310.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/upgrade_to_python311.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/upgrade_to_python312.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/upgrade_to_python313.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/upgrade_to_python314.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/upgrade_to_python38.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/upgrade_to_python39.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/urllib_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/uu_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/xdrlib_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python/migrate/xml_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python.egg-info/dependency_links.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python.egg-info/entry_points.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python.egg-info/requires.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/src/openrewrite_migrate_python.egg-info/top_level.txt +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_aifc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_array_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_ast_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_asyncio_coroutine_to_async.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_asyncio_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_avro_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_calendar_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_cgi_parse_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_change_import_recipes.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_collections_abc_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_configparser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_datetime_utc.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_distutils_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_future_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_gettext_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_html_parser_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_imp_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_langchain_classic_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_langchain_community_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_langchain_provider_imports.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_locale_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_locale_getdefaultlocale_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_macpath_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_os_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_pep594_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_pep594_system_migrations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_pkgutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_platform_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_pydantic_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_pydantic_fields.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_pydantic_model_fields.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_re_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_removed_modules_312.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_shutil_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_ssl_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_string_formatting.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_sys_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_sys_last_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_tarfile_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_threading_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_threading_extended.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_threading_is_alive_deprecation.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_typing_alias_moves.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_typing_callable.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_typing_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_typing_union_to_pipe.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_unittest_deprecations.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_upgrade_recipes.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_upgrade_to_pydantic.py +0 -0
- {openrewrite_migrate_python-0.14.0.dev20260902064123 → openrewrite_migrate_python-0.14.0.dev20260902102558}/tests/test_xml_deprecations.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrewrite-migrate-python
|
|
3
|
-
Version: 0.14.0.
|
|
3
|
+
Version: 0.14.0.dev20260902102558
|
|
4
4
|
Summary: OpenRewrite recipes for migrating Python codebases to newer Python versions.
|
|
5
5
|
Author-email: "Moderne Inc." <support@moderne.io>
|
|
6
6
|
License: Moderne Proprietary
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "openrewrite-migrate-python"
|
|
7
7
|
description = "OpenRewrite recipes for migrating Python codebases to newer Python versions."
|
|
8
|
-
version = "0.14.0.
|
|
8
|
+
version = "0.14.0.dev20260902102558" # 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"
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"""Shared indentation helpers for recipes that lift a block out of its parent.
|
|
2
|
+
|
|
3
|
+
Python indentation lives in the ``Space`` before each token, so moving a block
|
|
4
|
+
to a shallower nesting level means rewriting every line it spans.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Optional, TypeVar
|
|
8
|
+
|
|
9
|
+
from rewrite.java.support_types import Space
|
|
10
|
+
from rewrite.java.tree import Statement
|
|
11
|
+
from rewrite.python.tree import ExpressionStatement, StatementExpression
|
|
12
|
+
from rewrite.python.visitor import PythonVisitor
|
|
13
|
+
|
|
14
|
+
T = TypeVar("T")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def inherited_prefix(dropped: Space, body: Space) -> Space:
|
|
18
|
+
"""Prefix for the statement that takes the place of a dropped enclosing node.
|
|
19
|
+
|
|
20
|
+
It starts where the dropped node started, and the comments the dropped node
|
|
21
|
+
carried stay ahead of the body's own. Those comments' suffixes already
|
|
22
|
+
indent to the level the body now occupies.
|
|
23
|
+
"""
|
|
24
|
+
return Space(
|
|
25
|
+
_comments=[*dropped.comments, *body.comments],
|
|
26
|
+
_whitespace=dropped.whitespace,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def with_prefix(stmt: Statement, prefix: Space) -> Statement:
|
|
31
|
+
"""Set the prefix of *stmt*, threading through the ``Py`` wrappers whose
|
|
32
|
+
own prefix is a read-only view of the node they hold.
|
|
33
|
+
|
|
34
|
+
Drop once openrewrite/rewrite#8742 is the version floor: it gives those
|
|
35
|
+
wrappers a write path, so `stmt.replace(_prefix=...)` suffices alone.
|
|
36
|
+
"""
|
|
37
|
+
if isinstance(stmt, ExpressionStatement):
|
|
38
|
+
return stmt.replace(_expression=with_prefix(stmt.expression, prefix))
|
|
39
|
+
if isinstance(stmt, StatementExpression):
|
|
40
|
+
return stmt.replace(_statement=with_prefix(stmt.statement, prefix))
|
|
41
|
+
return stmt.replace(_prefix=prefix)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def line_indent(space: Space) -> Optional[str]:
|
|
45
|
+
"""Indentation of the line the token following *space* starts on, or
|
|
46
|
+
``None`` when that token shares a line with what precedes it.
|
|
47
|
+
|
|
48
|
+
A trailing comment puts the newline in the comment's suffix rather than in
|
|
49
|
+
``Space.whitespace``; empty whitespace is a file's first token, at column 0.
|
|
50
|
+
"""
|
|
51
|
+
text = space.comments[-1].suffix if space.comments else space.whitespace
|
|
52
|
+
if "\n" in text:
|
|
53
|
+
return text.rsplit("\n", 1)[-1]
|
|
54
|
+
return text if text == "" else None
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def _rebase(text: str, old_base: str, new_base: str) -> str:
|
|
58
|
+
head, sep, indent = text.rpartition("\n")
|
|
59
|
+
if not sep or not indent.startswith(old_base):
|
|
60
|
+
return text
|
|
61
|
+
return head + sep + new_base + indent[len(old_base):]
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class _Reindent(PythonVisitor[None]):
|
|
65
|
+
def __init__(self, old_base: str, new_base: str):
|
|
66
|
+
super().__init__()
|
|
67
|
+
self._old_base = old_base
|
|
68
|
+
self._new_base = new_base
|
|
69
|
+
|
|
70
|
+
def visit_space(self, space: Optional[Space], p: None) -> Space:
|
|
71
|
+
if space is None:
|
|
72
|
+
return Space.EMPTY
|
|
73
|
+
whitespace = _rebase(space.whitespace, self._old_base, self._new_base)
|
|
74
|
+
comments = [
|
|
75
|
+
c.replace(suffix=_rebase(c.suffix, self._old_base, self._new_base))
|
|
76
|
+
for c in space.comments
|
|
77
|
+
]
|
|
78
|
+
if whitespace == space.whitespace and all(
|
|
79
|
+
c.suffix == o.suffix for c, o in zip(comments, space.comments)
|
|
80
|
+
):
|
|
81
|
+
return space
|
|
82
|
+
return Space(_comments=comments, _whitespace=whitespace)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def reindent(tree: T, old_base: str, new_base: str) -> T:
|
|
86
|
+
"""Re-base every line in *tree* that is indented at least to *old_base*.
|
|
87
|
+
|
|
88
|
+
Lines indented less deeply are continuation lines whose alignment is
|
|
89
|
+
independent of the block's nesting, so they are left alone.
|
|
90
|
+
"""
|
|
91
|
+
if old_base == new_base:
|
|
92
|
+
return tree
|
|
93
|
+
return _Reindent(old_base, new_base).visit(tree, None)
|
|
@@ -16,12 +16,17 @@ from rewrite.category import CategoryDescriptor
|
|
|
16
16
|
from rewrite.decorators import categorize
|
|
17
17
|
from rewrite.marketplace import Python
|
|
18
18
|
from rewrite.python.visitor import PythonVisitor
|
|
19
|
-
from rewrite.java.support_types import Space
|
|
20
19
|
from rewrite.java.tree import (
|
|
21
20
|
Block,
|
|
22
21
|
If,
|
|
23
22
|
Statement,
|
|
24
23
|
)
|
|
24
|
+
from openrewrite_code_quality_python.codequality._reindent import (
|
|
25
|
+
inherited_prefix,
|
|
26
|
+
line_indent,
|
|
27
|
+
reindent,
|
|
28
|
+
with_prefix,
|
|
29
|
+
)
|
|
25
30
|
from openrewrite_code_quality_python.codequality._semantically_equal import SemanticallyEqual
|
|
26
31
|
|
|
27
32
|
_CodeQuality = [
|
|
@@ -152,9 +157,6 @@ def _replace_identical_ifs_padded(padded_stmts) -> Optional[list]:
|
|
|
152
157
|
Works on a list of JRightPadded[Statement] and returns a new padded list,
|
|
153
158
|
or None if nothing changed.
|
|
154
159
|
"""
|
|
155
|
-
from rewrite.java.support_types import JRightPadded
|
|
156
|
-
from rewrite.markers import Markers
|
|
157
|
-
|
|
158
160
|
result = []
|
|
159
161
|
changed = False
|
|
160
162
|
for rp in padded_stmts:
|
|
@@ -170,36 +172,34 @@ def _replace_identical_ifs_padded(padded_stmts) -> Optional[list]:
|
|
|
170
172
|
result.append(rp)
|
|
171
173
|
continue
|
|
172
174
|
|
|
173
|
-
# Extract the body statements from the then_part Block.
|
|
174
175
|
body = s.then_part
|
|
175
|
-
if isinstance(body, Block)
|
|
176
|
-
first = True
|
|
177
|
-
for body_rp in body._statements:
|
|
178
|
-
bs = body_rp.element
|
|
179
|
-
if first:
|
|
180
|
-
# First body statement gets the if statement's prefix
|
|
181
|
-
new_elem = bs.replace(_prefix=s.prefix)
|
|
182
|
-
result.append(rp.replace(_element=new_elem))
|
|
183
|
-
first = False
|
|
184
|
-
else:
|
|
185
|
-
# Subsequent body statements keep their whitespace
|
|
186
|
-
# but with one indent level removed
|
|
187
|
-
ws = bs.prefix.whitespace
|
|
188
|
-
if_ws = s.prefix.whitespace
|
|
189
|
-
base = if_ws.split("\n")[-1] if "\n" in if_ws else if_ws
|
|
190
|
-
body_indent = ws.split("\n")[-1] if "\n" in ws else ws
|
|
191
|
-
if len(body_indent) > len(base):
|
|
192
|
-
new_ws = ws.replace(body_indent, base, 1)
|
|
193
|
-
else:
|
|
194
|
-
new_ws = ws
|
|
195
|
-
new_elem = bs.replace(_prefix=Space(
|
|
196
|
-
_comments=bs.prefix.comments,
|
|
197
|
-
_whitespace=new_ws,
|
|
198
|
-
))
|
|
199
|
-
result.append(body_rp.replace(_element=new_elem))
|
|
200
|
-
changed = True
|
|
201
|
-
else:
|
|
176
|
+
if not isinstance(body, Block) or not body._statements:
|
|
202
177
|
result.append(rp)
|
|
178
|
+
continue
|
|
179
|
+
|
|
180
|
+
if_indent = line_indent(s.prefix)
|
|
181
|
+
body_indent = line_indent(body._statements[0].element.prefix)
|
|
182
|
+
if (
|
|
183
|
+
if_indent is None
|
|
184
|
+
or body_indent is None
|
|
185
|
+
or not body_indent.startswith(if_indent)
|
|
186
|
+
):
|
|
187
|
+
result.append(rp)
|
|
188
|
+
continue
|
|
189
|
+
|
|
190
|
+
body = reindent(body, body_indent, if_indent)
|
|
191
|
+
first = body._statements[0]
|
|
192
|
+
# Each lifted statement keeps its own padding, which is where a `;`
|
|
193
|
+
# separating it from the next one is recorded.
|
|
194
|
+
result.append(
|
|
195
|
+
first.replace(
|
|
196
|
+
_element=with_prefix(
|
|
197
|
+
first.element, inherited_prefix(s.prefix, first.element.prefix)
|
|
198
|
+
)
|
|
199
|
+
)
|
|
200
|
+
)
|
|
201
|
+
result.extend(body._statements[1:])
|
|
202
|
+
changed = True
|
|
203
203
|
|
|
204
204
|
if not changed:
|
|
205
205
|
return None
|
|
@@ -16,43 +16,62 @@ from rewrite.category import CategoryDescriptor
|
|
|
16
16
|
from rewrite.decorators import categorize
|
|
17
17
|
from rewrite.marketplace import Python
|
|
18
18
|
from rewrite.markers import Markers
|
|
19
|
+
from rewrite.python.tree import StatementExpression
|
|
19
20
|
from rewrite.python.visitor import PythonVisitor
|
|
20
21
|
from rewrite.java.support_types import JLeftPadded, JRightPadded, Space
|
|
21
22
|
from rewrite.java.tree import (
|
|
23
|
+
Assignment,
|
|
22
24
|
Binary as JBinary,
|
|
23
25
|
Block,
|
|
24
26
|
ControlParentheses,
|
|
25
27
|
Expression,
|
|
26
28
|
If,
|
|
29
|
+
Lambda,
|
|
27
30
|
Parentheses,
|
|
31
|
+
Ternary,
|
|
28
32
|
)
|
|
29
33
|
from rewrite.utils import random_id
|
|
30
34
|
|
|
35
|
+
from openrewrite_code_quality_python.codequality._reindent import (
|
|
36
|
+
inherited_prefix,
|
|
37
|
+
line_indent,
|
|
38
|
+
reindent,
|
|
39
|
+
with_prefix,
|
|
40
|
+
)
|
|
41
|
+
|
|
31
42
|
_CodeQuality = [
|
|
32
43
|
*Python,
|
|
33
44
|
CategoryDescriptor(display_name="Code quality"),
|
|
34
45
|
]
|
|
35
46
|
|
|
36
47
|
|
|
37
|
-
def
|
|
38
|
-
"""Return True
|
|
39
|
-
return isinstance(expr, JBinary) and expr.operator == JBinary.Type.Or
|
|
48
|
+
def _binds_looser_than_and(expr: Expression) -> bool:
|
|
49
|
+
"""Return True for the operand forms that ``and`` would capture.
|
|
40
50
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
Everything below ``and`` in Python's precedence table: ``or``, the
|
|
52
|
+
conditional expression, ``lambda``, ``:=`` (a ``J.Assignment`` here) and
|
|
53
|
+
``yield`` (a ``Py.StatementExpression``).
|
|
54
|
+
"""
|
|
55
|
+
if isinstance(expr, JBinary):
|
|
56
|
+
return expr.operator == JBinary.Type.Or
|
|
57
|
+
return isinstance(expr, (Ternary, Lambda, Assignment, StatementExpression))
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def _operand(expr: Expression, prefix: Space) -> Expression:
|
|
61
|
+
"""Prepare *expr* as an operand of the merged ``and``, parenthesizing it
|
|
62
|
+
when its own operator would otherwise be captured."""
|
|
63
|
+
if _binds_looser_than_and(expr):
|
|
64
|
+
return Parentheses(
|
|
65
|
+
_id=random_id(),
|
|
66
|
+
_prefix=prefix,
|
|
67
|
+
_markers=Markers.EMPTY,
|
|
68
|
+
_tree=JRightPadded(
|
|
69
|
+
_element=expr.replace(_prefix=Space.EMPTY),
|
|
70
|
+
_after=Space.EMPTY,
|
|
71
|
+
_markers=Markers.EMPTY,
|
|
72
|
+
),
|
|
73
|
+
)
|
|
74
|
+
return expr.replace(_prefix=prefix)
|
|
56
75
|
|
|
57
76
|
|
|
58
77
|
@categorize(_CodeQuality)
|
|
@@ -129,36 +148,34 @@ class CollapsibleIfStatements(Recipe):
|
|
|
129
148
|
if inner.else_part is not None:
|
|
130
149
|
return if_
|
|
131
150
|
|
|
132
|
-
|
|
133
|
-
|
|
151
|
+
inner_body = inner.then_part
|
|
152
|
+
if not isinstance(inner_body, Block) or not inner_body.statements:
|
|
153
|
+
return if_
|
|
134
154
|
|
|
135
|
-
#
|
|
136
|
-
#
|
|
137
|
-
if
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
)
|
|
148
|
-
else:
|
|
149
|
-
inner_cond = inner_cond.replace(_prefix=Space.SINGLE_SPACE)
|
|
155
|
+
# The body rises to where the inner `if` header sat, which is
|
|
156
|
+
# always deeper than the surviving header whatever the file's
|
|
157
|
+
# indent unit -- and is a line start even when the outer `if`
|
|
158
|
+
# is an `elif`, whose own prefix holds no newline.
|
|
159
|
+
header_indent = line_indent(inner.prefix)
|
|
160
|
+
body_indent = line_indent(inner_body.statements[0].prefix)
|
|
161
|
+
if (
|
|
162
|
+
header_indent is None
|
|
163
|
+
or body_indent is None
|
|
164
|
+
or not body_indent.startswith(header_indent)
|
|
165
|
+
):
|
|
166
|
+
return if_
|
|
150
167
|
|
|
151
168
|
combined = JBinary(
|
|
152
169
|
_id=random_id(),
|
|
153
|
-
_prefix=
|
|
170
|
+
_prefix=if_.if_condition.tree.prefix,
|
|
154
171
|
_markers=Markers.EMPTY,
|
|
155
|
-
_left=
|
|
172
|
+
_left=_operand(if_.if_condition.tree, Space.EMPTY),
|
|
156
173
|
_operator=JLeftPadded(
|
|
157
174
|
_before=Space.SINGLE_SPACE,
|
|
158
175
|
_element=JBinary.Type.And,
|
|
159
176
|
_markers=Markers.EMPTY,
|
|
160
177
|
),
|
|
161
|
-
_right=
|
|
178
|
+
_right=_operand(inner.if_condition.tree, Space.SINGLE_SPACE),
|
|
162
179
|
_type=None,
|
|
163
180
|
)
|
|
164
181
|
|
|
@@ -173,14 +190,22 @@ class CollapsibleIfStatements(Recipe):
|
|
|
173
190
|
),
|
|
174
191
|
)
|
|
175
192
|
|
|
176
|
-
#
|
|
177
|
-
#
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
193
|
+
# One level per visit: a chain of three or more `if`s merges a
|
|
194
|
+
# level at a time, and each pass rebases the comments the
|
|
195
|
+
# previous one left at the level it dropped.
|
|
196
|
+
inner_body = reindent(inner_body, body_indent, header_indent)
|
|
197
|
+
first = inner_body._statements[0]
|
|
198
|
+
inner_body = inner_body.replace(
|
|
199
|
+
_statements=[
|
|
200
|
+
first.replace(
|
|
201
|
+
_element=with_prefix(
|
|
202
|
+
first.element,
|
|
203
|
+
inherited_prefix(inner.prefix, first.element.prefix),
|
|
204
|
+
)
|
|
205
|
+
),
|
|
206
|
+
*inner_body._statements[1:],
|
|
207
|
+
]
|
|
208
|
+
)
|
|
184
209
|
|
|
185
210
|
return if_.replace(
|
|
186
211
|
_if_condition=new_condition,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrewrite-migrate-python
|
|
3
|
-
Version: 0.14.0.
|
|
3
|
+
Version: 0.14.0.dev20260902102558
|
|
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,6 +1,7 @@
|
|
|
1
1
|
pyproject.toml
|
|
2
2
|
src/openrewrite_code_quality_python/__init__.py
|
|
3
3
|
src/openrewrite_code_quality_python/codequality/__init__.py
|
|
4
|
+
src/openrewrite_code_quality_python/codequality/_reindent.py
|
|
4
5
|
src/openrewrite_code_quality_python/codequality/_semantically_equal.py
|
|
5
6
|
src/openrewrite_code_quality_python/codequality/all_branches_identical.py
|
|
6
7
|
src/openrewrite_code_quality_python/codequality/boolean_checks_not_inverted.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|