--- source: crates/ruff_python_formatter/tests/fixtures.rs input_file: crates/ruff_python_formatter/resources/test/fixtures/black/simple_cases/comments4.py --- ## Input ```py from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( MyLovelyCompanyTeamProjectComponent, # NOT DRY ) from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( MyLovelyCompanyTeamProjectComponent as component, # DRY ) class C: @pytest.mark.parametrize( ("post_data", "message"), [ # metadata_version errors. ( {}, "None is an invalid value for Metadata-Version. Error: This field is" " required. see" " https://packaging.python.org/specifications/core-metadata", ), ( {"metadata_version": "-1"}, "'-1' is an invalid value for Metadata-Version. Error: Unknown Metadata" " Version see" " https://packaging.python.org/specifications/core-metadata", ), # name errors. ( {"metadata_version": "1.2"}, "'' is an invalid value for Name. Error: This field is required. see" " https://packaging.python.org/specifications/core-metadata", ), ( {"metadata_version": "1.2", "name": "foo-"}, "'foo-' is an invalid value for Name. Error: Must start and end with a" " letter or numeral and contain only ascii numeric and '.', '_' and" " '-'. see https://packaging.python.org/specifications/core-metadata", ), # version errors. ( {"metadata_version": "1.2", "name": "example"}, "'' is an invalid value for Version. Error: This field is required. see" " https://packaging.python.org/specifications/core-metadata", ), ( {"metadata_version": "1.2", "name": "example", "version": "dog"}, "'dog' is an invalid value for Version. Error: Must start and end with" " a letter or numeral and contain only ascii numeric and '.', '_' and" " '-'. see https://packaging.python.org/specifications/core-metadata", ), ], ) def test_fails_invalid_post_data( self, pyramid_config, db_request, post_data, message ): pyramid_config.testing_securitypolicy(userid=1) db_request.POST = MultiDict(post_data) def foo(list_a, list_b): results = ( User.query.filter(User.foo == "bar") .filter( # Because foo. db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) ) .filter(User.xyz.is_(None)) # Another comment about the filtering on is_quux goes here. .filter(db.not_(User.is_pending.astext.cast(db.Boolean).is_(True))) .order_by(User.created_at.desc()) .with_for_update(key_share=True) .all() ) return results def foo2(list_a, list_b): # Standalone comment reasonably placed. return ( User.query.filter(User.foo == "bar") .filter( db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) ) .filter(User.xyz.is_(None)) ) def foo3(list_a, list_b): return ( # Standalone comment but weirdly placed. User.query.filter(User.foo == "bar") .filter( db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) ) .filter(User.xyz.is_(None)) ) ``` ## Black Differences ```diff --- Black +++ Ruff @@ -1,9 +1,5 @@ -from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( - MyLovelyCompanyTeamProjectComponent, # NOT DRY -) -from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( - MyLovelyCompanyTeamProjectComponent as component, # DRY -) +NOT_YET_IMPLEMENTED_StmtImportFrom +NOT_YET_IMPLEMENTED_StmtImportFrom class C: @@ -58,37 +54,28 @@ def foo(list_a, list_b): results = ( - User.query.filter(User.foo == "bar") - .filter( # Because foo. + User.query.filter(User.foo == "bar").filter( # Because foo. db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) - ) - .filter(User.xyz.is_(None)) + ).filter(User.xyz.is_(None)). # Another comment about the filtering on is_quux goes here. - .filter(db.not_(User.is_pending.astext.cast(db.Boolean).is_(True))) - .order_by(User.created_at.desc()) - .with_for_update(key_share=True) - .all() - ) + filter + )(db.not_(User.is_pending.astext.cast(db.Boolean).is_(True))).order_by( + User.created_at.desc() + ).with_for_update(key_share=True).all() return results def foo2(list_a, list_b): # Standalone comment reasonably placed. - return ( - User.query.filter(User.foo == "bar") - .filter( - db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) - ) - .filter(User.xyz.is_(None)) - ) + return User.query.filter(User.foo == "bar").filter( + db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) + ).filter(User.xyz.is_(None)) def foo3(list_a, list_b): return ( # Standalone comment but weirdly placed. - User.query.filter(User.foo == "bar") - .filter( + User.query.filter(User.foo == "bar").filter( db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) - ) - .filter(User.xyz.is_(None)) + ).filter(User.xyz.is_(None)) ) ``` ## Ruff Output ```py NOT_YET_IMPLEMENTED_StmtImportFrom NOT_YET_IMPLEMENTED_StmtImportFrom class C: @pytest.mark.parametrize( ("post_data", "message"), [ # metadata_version errors. ( {}, "None is an invalid value for Metadata-Version. Error: This field is" " required. see" " https://packaging.python.org/specifications/core-metadata", ), ( {"metadata_version": "-1"}, "'-1' is an invalid value for Metadata-Version. Error: Unknown Metadata" " Version see" " https://packaging.python.org/specifications/core-metadata", ), # name errors. ( {"metadata_version": "1.2"}, "'' is an invalid value for Name. Error: This field is required. see" " https://packaging.python.org/specifications/core-metadata", ), ( {"metadata_version": "1.2", "name": "foo-"}, "'foo-' is an invalid value for Name. Error: Must start and end with a" " letter or numeral and contain only ascii numeric and '.', '_' and" " '-'. see https://packaging.python.org/specifications/core-metadata", ), # version errors. ( {"metadata_version": "1.2", "name": "example"}, "'' is an invalid value for Version. Error: This field is required. see" " https://packaging.python.org/specifications/core-metadata", ), ( {"metadata_version": "1.2", "name": "example", "version": "dog"}, "'dog' is an invalid value for Version. Error: Must start and end with" " a letter or numeral and contain only ascii numeric and '.', '_' and" " '-'. see https://packaging.python.org/specifications/core-metadata", ), ], ) def test_fails_invalid_post_data( self, pyramid_config, db_request, post_data, message ): pyramid_config.testing_securitypolicy(userid=1) db_request.POST = MultiDict(post_data) def foo(list_a, list_b): results = ( User.query.filter(User.foo == "bar").filter( # Because foo. db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) ).filter(User.xyz.is_(None)). # Another comment about the filtering on is_quux goes here. filter )(db.not_(User.is_pending.astext.cast(db.Boolean).is_(True))).order_by( User.created_at.desc() ).with_for_update(key_share=True).all() return results def foo2(list_a, list_b): # Standalone comment reasonably placed. return User.query.filter(User.foo == "bar").filter( db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) ).filter(User.xyz.is_(None)) def foo3(list_a, list_b): return ( # Standalone comment but weirdly placed. User.query.filter(User.foo == "bar").filter( db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) ).filter(User.xyz.is_(None)) ) ``` ## Black Output ```py from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( MyLovelyCompanyTeamProjectComponent, # NOT DRY ) from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( MyLovelyCompanyTeamProjectComponent as component, # DRY ) class C: @pytest.mark.parametrize( ("post_data", "message"), [ # metadata_version errors. ( {}, "None is an invalid value for Metadata-Version. Error: This field is" " required. see" " https://packaging.python.org/specifications/core-metadata", ), ( {"metadata_version": "-1"}, "'-1' is an invalid value for Metadata-Version. Error: Unknown Metadata" " Version see" " https://packaging.python.org/specifications/core-metadata", ), # name errors. ( {"metadata_version": "1.2"}, "'' is an invalid value for Name. Error: This field is required. see" " https://packaging.python.org/specifications/core-metadata", ), ( {"metadata_version": "1.2", "name": "foo-"}, "'foo-' is an invalid value for Name. Error: Must start and end with a" " letter or numeral and contain only ascii numeric and '.', '_' and" " '-'. see https://packaging.python.org/specifications/core-metadata", ), # version errors. ( {"metadata_version": "1.2", "name": "example"}, "'' is an invalid value for Version. Error: This field is required. see" " https://packaging.python.org/specifications/core-metadata", ), ( {"metadata_version": "1.2", "name": "example", "version": "dog"}, "'dog' is an invalid value for Version. Error: Must start and end with" " a letter or numeral and contain only ascii numeric and '.', '_' and" " '-'. see https://packaging.python.org/specifications/core-metadata", ), ], ) def test_fails_invalid_post_data( self, pyramid_config, db_request, post_data, message ): pyramid_config.testing_securitypolicy(userid=1) db_request.POST = MultiDict(post_data) def foo(list_a, list_b): results = ( User.query.filter(User.foo == "bar") .filter( # Because foo. db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) ) .filter(User.xyz.is_(None)) # Another comment about the filtering on is_quux goes here. .filter(db.not_(User.is_pending.astext.cast(db.Boolean).is_(True))) .order_by(User.created_at.desc()) .with_for_update(key_share=True) .all() ) return results def foo2(list_a, list_b): # Standalone comment reasonably placed. return ( User.query.filter(User.foo == "bar") .filter( db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) ) .filter(User.xyz.is_(None)) ) def foo3(list_a, list_b): return ( # Standalone comment but weirdly placed. User.query.filter(User.foo == "bar") .filter( db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) ) .filter(User.xyz.is_(None)) ) ```