-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Standalone comments inside nested bracketed expressions block the expression from wrapping #22
Comments
I believe I am also experiencing this, which ends up with a 3000+ length line for me: @@ -749,183 +667,19 @@ class TestFileUpload:
@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",
- ),
-
- # filetype/pyversion errors.
- (
- {
- "metadata_version": "1.2",
- "name": "example",
- "version": "1.0",
- "md5_digest": "bad",
- },
- "filetype: This field is required.",
- ),
- (
- {
- "metadata_version": "1.2",
- "name": "example",
- "version": "1.0",
- "filetype": "bdist_wat",
- },
- "Error: Python version is required for binary distribution "
- "uploads."
- ),
- (
- {
- "metadata_version": "1.2",
- "name": "example",
- "version": "1.0",
- "filetype": "bdist_wat",
- "pyversion": "1.0",
- "md5_digest": "bad",
- },
- "filetype: Unknown type of file.",
- ),
- (
- {
- "metadata_version": "1.2",
- "name": "example",
- "version": "1.0",
- "filetype": "sdist",
- "pyversion": "1.0",
- },
- "Error: The only valid Python version for a sdist is "
- "'source'."
- ),
-
- # digest errors.
- (
- {
- "metadata_version": "1.2",
- "name": "example",
- "version": "1.0",
- "filetype": "sdist",
- },
- "Error: Must include at least one message digest."
- ),
- (
- {
- "metadata_version": "1.2",
- "name": "example",
- "version": "1.0",
- "filetype": "sdist",
- "sha256_digest": "an invalid sha256 digest",
- },
- "sha256_digest: "
- "Must be a valid, hex encoded, SHA256 message digest."
- ),
-
- # summary errors
- (
- {
- "metadata_version": "1.2",
- "name": "example",
- "version": "1.0",
- "filetype": "sdist",
- "md5_digest": "a fake md5 digest",
- "summary": "A" * 513,
- },
- "'" + "A" * 513 + "' is an invalid value for Summary. "
- "Error: Field cannot be longer than 512 characters. "
- "see "
- "https://packaging.python.org/specifications/core-metadata",
- ),
- (
- {
- "metadata_version": "1.2",
- "name": "example",
- "version": "1.0",
- "filetype": "sdist",
- "md5_digest": "a fake md5 digest",
- "summary": "A\nB",
- },
- ("{!r} is an invalid value for Summary. ".format('A\nB') +
- "Error: Multiple lines are not allowed. "
- "see "
- "https://packaging.python.org/specifications/core-metadata"),
- ),
-
- # classifiers are a FieldStorage
- (
- {
- "metadata_version": "1.2",
- "name": "example",
- "version": "1.0",
- "filetype": "sdist",
- "classifiers": FieldStorage(),
- },
- "classifiers: Should not be a tuple.",
- ),
-
- # keywords are a FieldStorage
- (
- {
- "metadata_version": "1.2",
- "name": "example",
- "version": "1.0",
- "filetype": "sdist",
- "keywords": FieldStorage(),
- },
- "keywords: Should not be a tuple.",
- ),
- ],
+ [({}, "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"), ({"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"), ({"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"), ({"metadata_version": "1.2", "name": "example", "version": "1.0", "md5_digest": "bad"}, "filetype: This field is required."), ({"metadata_version": "1.2", "name": "example", "version": "1.0", "filetype": "bdist_wat"}, "Error: Python version is required for binary distribution " "uploads."), ({"metadata_version": "1.2", "name": "example", "version": "1.0", "filetype": "bdist_wat", "pyversion": "1.0", "md5_digest": "bad"}, "filetype: Unknown type of file."), ({"metadata_version": "1.2", "name": "example", "version": "1.0", "filetype": "sdist", "pyversion": "1.0"}, "Error: The only valid Python version for a sdist is " "'source'."), ({"metadata_version": "1.2", "name": "example", "version": "1.0", "filetype": "sdist"}, "Error: Must include at least one message digest."), ({"metadata_version": "1.2", "name": "example", "version": "1.0", "filetype": "sdist", "sha256_digest": "an invalid sha256 digest"}, "sha256_digest: " "Must be a valid, hex encoded, SHA256 message digest."), ({"metadata_version": "1.2", "name": "example", "version": "1.0", "filetype": "sdist", "md5_digest": "a fake md5 digest", "summary": "A" * 513}, "'" + "A" * 513 + "' is an invalid value for Summary. " "Error: Field cannot be longer than 512 characters. " "see " "https://packaging.python.org/specifications/core-metadata"), ({"metadata_version": "1.2", "name": "example", "version": "1.0", "filetype": "sdist", "md5_digest": "a fake md5 digest", "summary": "A\nB"}, ("{!r} is an invalid value for Summary. ".format('A\nB') + "Error: Multiple lines are not allowed. " "see " "https://packaging.python.org/specifications/core-metadata")), ({"metadata_version": "1.2", "name": "example", "version": "1.0", "filetype": "sdist", "classifiers": FieldStorage()}, "classifiers: Should not be a tuple."), ({"metadata_version": "1.2", "name": "example", "version": "1.0", "filetype": "sdist", "keywords": FieldStorage()}, "keywords: Should not be a tuple.")],
+ # metadata_version errors.
+ # name errors.
+ # version errors.
+ # filetype/pyversion errors.
+ # digest errors.
+ # summary errors
+ # classifiers are a FieldStorage
+ # keywords are a FieldStorage
)
- def test_fails_invalid_post_data(self, pyramid_config, db_request,
- post_data, message):
+ 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) |
Another example of this with long SQLAlchemy queries containing some inline comments in long chained calls like def foo(list_a, list_b):
results = (
User.query
.filter(User.foo == 'bar') # Because foo.
.filter(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 becomes def foo(list_a, list_b):
results = (
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(db.not_(User.is_pending.astext.cast(db.Boolean).is_(True))).order_by(User.created_at.desc()).with_for_update(key_share=True).all() # Because foo.
# Another comment about the filtering on is_quux goes here.
)
return results This produces extremely long lines, and moves the comments around to the wrong places. |
@wbolster, Black will not support the "fluent interfaces" indentation style that you're employing in your SQLAlchemy queries. Your example is reformatted like this:
See #67 for more reference. |
Damn, I find the fluent interfaces way nicer for SQLAlchemy queries :) ah well. |
This is... not what I expected black to do :-)
The text was updated successfully, but these errors were encountered: