mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-19 01:51:30 +00:00
Format raise
statement (#5595)
## Summary This PR implements the formatting of `raise` statements. I haven't looked at the black implementation, this is inspired from from the `return` statements formatting. ## Test Plan The black differences with insta. I also compared manually some edge cases with very long string and call chaining and it seems to do the same formatting as black. There is one issue: ```python # input raise OsError( "aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa" ) from a.aaaaa(aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa).a(aaaa) # black raise OsError( "aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa" ) from a.aaaaa( aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa ).a( aaaa ) # ruff raise OsError( "aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa" ) from a.aaaaa( aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa ).a(aaaa) ``` But I'm not sure this diff is the raise formatting implementation. --------- Co-authored-by: Louis Dispa <ldispa@deezer.com>
This commit is contained in:
parent
93bfa239b7
commit
e7e2f44440
11 changed files with 409 additions and 130 deletions
|
@ -35,9 +35,16 @@ e4 = (
|
||||||
|
|
||||||
# Empty tuples and comments
|
# Empty tuples and comments
|
||||||
f1 = (
|
f1 = (
|
||||||
# empty
|
# empty
|
||||||
)
|
)
|
||||||
f2 = ()
|
f2 = ()
|
||||||
|
f3 = ( # end-of-line
|
||||||
|
# own-line
|
||||||
|
) # trailing
|
||||||
|
f4 = ( # end-of-line
|
||||||
|
# own-line
|
||||||
|
# own-line 2
|
||||||
|
) # trailing
|
||||||
|
|
||||||
# Comments in other tuples
|
# Comments in other tuples
|
||||||
g1 = ( # a
|
g1 = ( # a
|
||||||
|
|
85
crates/ruff_python_formatter/resources/test/fixtures/ruff/statement/raise.py
vendored
Normal file
85
crates/ruff_python_formatter/resources/test/fixtures/ruff/statement/raise.py
vendored
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
raise a from aksjdhflsakhdflkjsadlfajkslhf
|
||||||
|
raise a from (aksjdhflsakhdflkjsadlfajkslhf,)
|
||||||
|
raise (aaaaa.aaa(a).a) from (aksjdhflsakhdflkjsadlfajkslhf)
|
||||||
|
|
||||||
|
raise a from (aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa,)
|
||||||
|
raise a from OsError("aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa")
|
||||||
|
|
||||||
|
# some comment
|
||||||
|
raise a from aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa # some comment
|
||||||
|
# some comment
|
||||||
|
|
||||||
|
raise OsError("aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa") from e
|
||||||
|
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
# should i stay
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa" # mhhh very long
|
||||||
|
# or should i go
|
||||||
|
) from e # here is e
|
||||||
|
|
||||||
|
raise OsError("aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa") from OsError("aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa")
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa"
|
||||||
|
) from a.aaaaa(
|
||||||
|
aaa
|
||||||
|
).a(aaaa)
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa"
|
||||||
|
) from a.aaaaa(aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa).a(aaaa)
|
||||||
|
|
||||||
|
raise aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccccccccc + ddddddddddddddddddddddddd
|
||||||
|
raise aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbb + (cccccccccccccccccccccc + ddddddddddddddddddddddddd)
|
||||||
|
raise (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccccccccc + ddddddddddddddddddddddddd)
|
||||||
|
|
||||||
|
|
||||||
|
raise ( # hey
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
# Holala
|
||||||
|
+ bbbbbbbbbbbbbbbbbbbbbbbbbb # stay
|
||||||
|
+ cccccccccccccccccccccc + ddddddddddddddddddddddddd # where I'm going
|
||||||
|
# I don't know
|
||||||
|
) # whaaaaat
|
||||||
|
# the end
|
||||||
|
|
||||||
|
raise ( # hey 2
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||||
|
# Holala
|
||||||
|
"bbbbbbbbbbbbbbbbbbbbbbbb" # stay
|
||||||
|
"ccccccccccccccccccccccc" "dddddddddddddddddddddddd" # where I'm going
|
||||||
|
# I don't know
|
||||||
|
) # whaaaaat
|
||||||
|
|
||||||
|
# some comment
|
||||||
|
raise aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbb]
|
||||||
|
|
||||||
|
raise aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa < aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa <aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa
|
||||||
|
|
||||||
|
raise aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfk < (aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajl < aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashd) # the other end
|
||||||
|
# sneaky comment
|
||||||
|
|
||||||
|
raise ( # another comment
|
||||||
|
)
|
||||||
|
|
||||||
|
raise (
|
||||||
|
) # what now
|
||||||
|
|
||||||
|
raise ( # sould I stay here
|
||||||
|
# just a comment here
|
||||||
|
) # trailing comment
|
||||||
|
|
||||||
|
raise hello( # sould I stay here
|
||||||
|
# just a comment here
|
||||||
|
) # trailing comment
|
||||||
|
|
||||||
|
raise ( # sould I stay here
|
||||||
|
test,
|
||||||
|
# just a comment here
|
||||||
|
) # trailing comment
|
||||||
|
|
||||||
|
raise hello( # sould I stay here
|
||||||
|
# just a comment here
|
||||||
|
"hey"
|
||||||
|
) # trailing comment
|
|
@ -211,7 +211,7 @@ type CommentsMap<'a> = MultiMap<NodeRefEqualityKey<'a>, SourceComment>;
|
||||||
/// The comments of a syntax tree stored by node.
|
/// The comments of a syntax tree stored by node.
|
||||||
///
|
///
|
||||||
/// Cloning `comments` is cheap as it only involves bumping a reference counter.
|
/// Cloning `comments` is cheap as it only involves bumping a reference counter.
|
||||||
#[derive(Clone, Default)]
|
#[derive(Debug, Clone, Default)]
|
||||||
pub(crate) struct Comments<'a> {
|
pub(crate) struct Comments<'a> {
|
||||||
/// The implementation uses an [Rc] so that [Comments] has a lifetime independent from the [crate::Formatter].
|
/// The implementation uses an [Rc] so that [Comments] has a lifetime independent from the [crate::Formatter].
|
||||||
/// Independent lifetimes are necessary to support the use case where a (formattable object)[crate::Format]
|
/// Independent lifetimes are necessary to support the use case where a (formattable object)[crate::Format]
|
||||||
|
@ -400,7 +400,7 @@ impl<'a> Comments<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Debug, Default)]
|
||||||
struct CommentsData<'a> {
|
struct CommentsData<'a> {
|
||||||
comments: CommentsMap<'a>,
|
comments: CommentsMap<'a>,
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use crate::builders::optional_parentheses;
|
use crate::builders::optional_parentheses;
|
||||||
use crate::comments::{dangling_node_comments, Comments};
|
use crate::comments::{dangling_comments, CommentLinePosition, Comments};
|
||||||
use crate::expression::parentheses::{
|
use crate::expression::parentheses::{
|
||||||
default_expression_needs_parentheses, parenthesized, NeedsParentheses, Parentheses,
|
default_expression_needs_parentheses, parenthesized, NeedsParentheses, Parentheses,
|
||||||
Parenthesize,
|
Parenthesize,
|
||||||
|
@ -57,16 +57,33 @@ impl FormatNodeRule<ExprTuple> for FormatExprTuple {
|
||||||
} = item;
|
} = item;
|
||||||
|
|
||||||
// Handle the edge cases of an empty tuple and a tuple with one element
|
// Handle the edge cases of an empty tuple and a tuple with one element
|
||||||
|
//
|
||||||
|
// there can be dangling comments, and they can be in two
|
||||||
|
// positions:
|
||||||
|
// ```python
|
||||||
|
// a3 = ( # end-of-line
|
||||||
|
// # own line
|
||||||
|
// )
|
||||||
|
// ```
|
||||||
|
// In all other cases comments get assigned to a list element
|
||||||
match elts.as_slice() {
|
match elts.as_slice() {
|
||||||
[] => {
|
[] => {
|
||||||
|
let comments = f.context().comments().clone();
|
||||||
|
let dangling = comments.dangling_comments(item);
|
||||||
|
let end_of_line_split = dangling.partition_point(|comment| {
|
||||||
|
comment.line_position() == CommentLinePosition::EndOfLine
|
||||||
|
});
|
||||||
|
debug_assert!(dangling[end_of_line_split..]
|
||||||
|
.iter()
|
||||||
|
.all(|comment| comment.line_position() == CommentLinePosition::OwnLine));
|
||||||
write!(
|
write!(
|
||||||
f,
|
f,
|
||||||
[
|
[group(&format_args![
|
||||||
// An empty tuple always needs parentheses, but does not have a comma
|
text("("),
|
||||||
&text("("),
|
dangling_comments(&dangling[..end_of_line_split]),
|
||||||
block_indent(&dangling_node_comments(item)),
|
soft_block_indent(&dangling_comments(&dangling[end_of_line_split..])),
|
||||||
&text(")"),
|
text(")")
|
||||||
]
|
])]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
[single] => {
|
[single] => {
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
use crate::{not_yet_implemented, FormatNodeRule, PyFormatter};
|
use crate::expression::parentheses::Parenthesize;
|
||||||
use ruff_formatter::{write, Buffer, FormatResult};
|
use crate::{AsFormat, FormatNodeRule, PyFormatter};
|
||||||
|
use ruff_formatter::prelude::{space, text};
|
||||||
|
use ruff_formatter::{write, Buffer, Format, FormatResult};
|
||||||
|
|
||||||
use rustpython_parser::ast::StmtRaise;
|
use rustpython_parser::ast::StmtRaise;
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
|
@ -7,6 +10,32 @@ pub struct FormatStmtRaise;
|
||||||
|
|
||||||
impl FormatNodeRule<StmtRaise> for FormatStmtRaise {
|
impl FormatNodeRule<StmtRaise> for FormatStmtRaise {
|
||||||
fn fmt_fields(&self, item: &StmtRaise, f: &mut PyFormatter) -> FormatResult<()> {
|
fn fmt_fields(&self, item: &StmtRaise, f: &mut PyFormatter) -> FormatResult<()> {
|
||||||
write!(f, [not_yet_implemented(item)])
|
let StmtRaise {
|
||||||
|
range: _,
|
||||||
|
exc,
|
||||||
|
cause,
|
||||||
|
} = item;
|
||||||
|
|
||||||
|
text("raise").fmt(f)?;
|
||||||
|
|
||||||
|
if let Some(value) = exc {
|
||||||
|
write!(
|
||||||
|
f,
|
||||||
|
[space(), value.format().with_options(Parenthesize::Optional)]
|
||||||
|
)?;
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(value) = cause {
|
||||||
|
write!(
|
||||||
|
f,
|
||||||
|
[
|
||||||
|
space(),
|
||||||
|
text("from"),
|
||||||
|
space(),
|
||||||
|
value.format().with_options(Parenthesize::Optional)
|
||||||
|
]
|
||||||
|
)?;
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,68 +67,22 @@ except ExceptionGroup as e:
|
||||||
```diff
|
```diff
|
||||||
--- Black
|
--- Black
|
||||||
+++ Ruff
|
+++ Ruff
|
||||||
@@ -1,5 +1,5 @@
|
@@ -39,7 +39,7 @@
|
||||||
try:
|
|
||||||
- raise OSError("blah")
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
except* ExceptionGroup as e:
|
|
||||||
pass
|
|
||||||
|
|
||||||
@@ -14,10 +14,10 @@
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
- raise ValueError(42)
|
raise orig
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
except:
|
|
||||||
try:
|
|
||||||
- raise TypeError(int)
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
except* Exception:
|
|
||||||
pass
|
|
||||||
1 / 0
|
|
||||||
@@ -26,10 +26,10 @@
|
|
||||||
|
|
||||||
try:
|
|
||||||
try:
|
|
||||||
- raise FalsyEG("eg", [TypeError(1), ValueError(2)])
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
except* TypeError as e:
|
|
||||||
tes = e
|
|
||||||
- raise
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
except* ValueError as e:
|
|
||||||
ves = e
|
|
||||||
pass
|
|
||||||
@@ -38,16 +38,16 @@
|
|
||||||
|
|
||||||
try:
|
|
||||||
try:
|
|
||||||
- raise orig
|
|
||||||
- except* (TypeError, ValueError, *OTHER_EXCEPTIONS) as e:
|
- except* (TypeError, ValueError, *OTHER_EXCEPTIONS) as e:
|
||||||
- raise SyntaxError(3) from e
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
+ except* (TypeError, ValueError, *NOT_YET_IMPLEMENTED_ExprStarred) as e:
|
+ except* (TypeError, ValueError, *NOT_YET_IMPLEMENTED_ExprStarred) as e:
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
raise SyntaxError(3) from e
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
exc = e
|
exc = e
|
||||||
|
|
||||||
try:
|
|
||||||
try:
|
|
||||||
- raise orig
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
except* OSError as e:
|
|
||||||
- raise TypeError(3) from e
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
except ExceptionGroup as e:
|
|
||||||
exc = e
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Ruff Output
|
## Ruff Output
|
||||||
|
|
||||||
```py
|
```py
|
||||||
try:
|
try:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise OSError("blah")
|
||||||
except* ExceptionGroup as e:
|
except* ExceptionGroup as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -143,10 +97,10 @@ except* ValueError:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise ValueError(42)
|
||||||
except:
|
except:
|
||||||
try:
|
try:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise TypeError(int)
|
||||||
except* Exception:
|
except* Exception:
|
||||||
pass
|
pass
|
||||||
1 / 0
|
1 / 0
|
||||||
|
@ -155,10 +109,10 @@ except Exception as e:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise FalsyEG("eg", [TypeError(1), ValueError(2)])
|
||||||
except* TypeError as e:
|
except* TypeError as e:
|
||||||
tes = e
|
tes = e
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise
|
||||||
except* ValueError as e:
|
except* ValueError as e:
|
||||||
ves = e
|
ves = e
|
||||||
pass
|
pass
|
||||||
|
@ -167,17 +121,17 @@ except Exception as e:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise orig
|
||||||
except* (TypeError, ValueError, *NOT_YET_IMPLEMENTED_ExprStarred) as e:
|
except* (TypeError, ValueError, *NOT_YET_IMPLEMENTED_ExprStarred) as e:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise SyntaxError(3) from e
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
exc = e
|
exc = e
|
||||||
|
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise orig
|
||||||
except* OSError as e:
|
except* OSError as e:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise TypeError(3) from e
|
||||||
except ExceptionGroup as e:
|
except ExceptionGroup as e:
|
||||||
exc = e
|
exc = e
|
||||||
```
|
```
|
||||||
|
|
|
@ -227,7 +227,7 @@ d={'a':1,
|
||||||
+ b
|
+ b
|
||||||
+ c
|
+ c
|
||||||
+ if True:
|
+ if True:
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
+ raise RuntimeError
|
||||||
+ if False:
|
+ if False:
|
||||||
+ ...
|
+ ...
|
||||||
+ for i in range(10):
|
+ for i in range(10):
|
||||||
|
@ -425,7 +425,7 @@ def func_no_args():
|
||||||
b
|
b
|
||||||
c
|
c
|
||||||
if True:
|
if True:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise RuntimeError
|
||||||
if False:
|
if False:
|
||||||
...
|
...
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
|
|
|
@ -117,15 +117,6 @@ def __await__(): return (yield)
|
||||||
|
|
||||||
|
|
||||||
def func_no_args():
|
def func_no_args():
|
||||||
@@ -14,7 +13,7 @@
|
|
||||||
b
|
|
||||||
c
|
|
||||||
if True:
|
|
||||||
- raise RuntimeError
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
if False:
|
|
||||||
...
|
|
||||||
for i in range(10):
|
|
||||||
@@ -41,12 +40,12 @@
|
@@ -41,12 +40,12 @@
|
||||||
debug: bool = False,
|
debug: bool = False,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
|
@ -207,7 +198,7 @@ def func_no_args():
|
||||||
b
|
b
|
||||||
c
|
c
|
||||||
if True:
|
if True:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise RuntimeError
|
||||||
if False:
|
if False:
|
||||||
...
|
...
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
|
|
|
@ -47,55 +47,17 @@ except (some.really.really.really.looooooooooooooooooooooooooooooooong.module.ov
|
||||||
```diff
|
```diff
|
||||||
--- Black
|
--- Black
|
||||||
+++ Ruff
|
+++ Ruff
|
||||||
@@ -2,7 +2,7 @@
|
@@ -21,9 +21,7 @@
|
||||||
try:
|
|
||||||
a.something
|
|
||||||
except AttributeError as err:
|
|
||||||
- raise err
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
|
|
||||||
# This is tuple of exceptions.
|
|
||||||
# Although this could be replaced with just the exception,
|
|
||||||
@@ -10,28 +10,26 @@
|
|
||||||
try:
|
|
||||||
a.something
|
|
||||||
except (AttributeError,) as err:
|
|
||||||
- raise err
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
|
|
||||||
# This is a tuple of exceptions. Do not remove brackets.
|
|
||||||
try:
|
|
||||||
a.something
|
|
||||||
except (AttributeError, ValueError) as err:
|
|
||||||
- raise err
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
|
|
||||||
# Test long variants.
|
# Test long variants.
|
||||||
try:
|
try:
|
||||||
a.something
|
a.something
|
||||||
-except (
|
-except (
|
||||||
- some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error
|
- some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error
|
||||||
-) as err:
|
-) as err:
|
||||||
- raise err
|
|
||||||
+except some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error as err:
|
+except some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error as err:
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
raise err
|
||||||
|
|
||||||
try:
|
try:
|
||||||
a.something
|
|
||||||
except (
|
|
||||||
some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error,
|
|
||||||
) as err:
|
|
||||||
- raise err
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
|
|
||||||
try:
|
|
||||||
a.something
|
|
||||||
@@ -39,4 +37,4 @@
|
|
||||||
some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error,
|
|
||||||
some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error,
|
|
||||||
) as err:
|
|
||||||
- raise err
|
|
||||||
+ NOT_YET_IMPLEMENTED_StmtRaise
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Ruff Output
|
## Ruff Output
|
||||||
|
@ -105,7 +67,7 @@ except (some.really.really.really.looooooooooooooooooooooooooooooooong.module.ov
|
||||||
try:
|
try:
|
||||||
a.something
|
a.something
|
||||||
except AttributeError as err:
|
except AttributeError as err:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise err
|
||||||
|
|
||||||
# This is tuple of exceptions.
|
# This is tuple of exceptions.
|
||||||
# Although this could be replaced with just the exception,
|
# Although this could be replaced with just the exception,
|
||||||
|
@ -113,26 +75,26 @@ except AttributeError as err:
|
||||||
try:
|
try:
|
||||||
a.something
|
a.something
|
||||||
except (AttributeError,) as err:
|
except (AttributeError,) as err:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise err
|
||||||
|
|
||||||
# This is a tuple of exceptions. Do not remove brackets.
|
# This is a tuple of exceptions. Do not remove brackets.
|
||||||
try:
|
try:
|
||||||
a.something
|
a.something
|
||||||
except (AttributeError, ValueError) as err:
|
except (AttributeError, ValueError) as err:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise err
|
||||||
|
|
||||||
# Test long variants.
|
# Test long variants.
|
||||||
try:
|
try:
|
||||||
a.something
|
a.something
|
||||||
except some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error as err:
|
except some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error as err:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise err
|
||||||
|
|
||||||
try:
|
try:
|
||||||
a.something
|
a.something
|
||||||
except (
|
except (
|
||||||
some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error,
|
some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error,
|
||||||
) as err:
|
) as err:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise err
|
||||||
|
|
||||||
try:
|
try:
|
||||||
a.something
|
a.something
|
||||||
|
@ -140,7 +102,7 @@ except (
|
||||||
some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error,
|
some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error,
|
||||||
some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error,
|
some.really.really.really.looooooooooooooooooooooooooooooooong.module.over89.chars.Error,
|
||||||
) as err:
|
) as err:
|
||||||
NOT_YET_IMPLEMENTED_StmtRaise
|
raise err
|
||||||
```
|
```
|
||||||
|
|
||||||
## Black Output
|
## Black Output
|
||||||
|
|
|
@ -41,9 +41,16 @@ e4 = (
|
||||||
|
|
||||||
# Empty tuples and comments
|
# Empty tuples and comments
|
||||||
f1 = (
|
f1 = (
|
||||||
# empty
|
# empty
|
||||||
)
|
)
|
||||||
f2 = ()
|
f2 = ()
|
||||||
|
f3 = ( # end-of-line
|
||||||
|
# own-line
|
||||||
|
) # trailing
|
||||||
|
f4 = ( # end-of-line
|
||||||
|
# own-line
|
||||||
|
# own-line 2
|
||||||
|
) # trailing
|
||||||
|
|
||||||
# Comments in other tuples
|
# Comments in other tuples
|
||||||
g1 = ( # a
|
g1 = ( # a
|
||||||
|
@ -232,6 +239,13 @@ f1 = (
|
||||||
# empty
|
# empty
|
||||||
)
|
)
|
||||||
f2 = ()
|
f2 = ()
|
||||||
|
f3 = ( # end-of-line
|
||||||
|
# own-line
|
||||||
|
) # trailing
|
||||||
|
f4 = ( # end-of-line
|
||||||
|
# own-line
|
||||||
|
# own-line 2
|
||||||
|
) # trailing
|
||||||
|
|
||||||
# Comments in other tuples
|
# Comments in other tuples
|
||||||
g1 = (
|
g1 = (
|
||||||
|
|
|
@ -0,0 +1,220 @@
|
||||||
|
---
|
||||||
|
source: crates/ruff_python_formatter/tests/fixtures.rs
|
||||||
|
input_file: crates/ruff_python_formatter/resources/test/fixtures/ruff/statement/raise.py
|
||||||
|
---
|
||||||
|
## Input
|
||||||
|
```py
|
||||||
|
raise a from aksjdhflsakhdflkjsadlfajkslhf
|
||||||
|
raise a from (aksjdhflsakhdflkjsadlfajkslhf,)
|
||||||
|
raise (aaaaa.aaa(a).a) from (aksjdhflsakhdflkjsadlfajkslhf)
|
||||||
|
|
||||||
|
raise a from (aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa,)
|
||||||
|
raise a from OsError("aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa")
|
||||||
|
|
||||||
|
# some comment
|
||||||
|
raise a from aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa # some comment
|
||||||
|
# some comment
|
||||||
|
|
||||||
|
raise OsError("aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa") from e
|
||||||
|
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
# should i stay
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa" # mhhh very long
|
||||||
|
# or should i go
|
||||||
|
) from e # here is e
|
||||||
|
|
||||||
|
raise OsError("aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa") from OsError("aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa")
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa"
|
||||||
|
) from a.aaaaa(
|
||||||
|
aaa
|
||||||
|
).a(aaaa)
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa"
|
||||||
|
) from a.aaaaa(aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa).a(aaaa)
|
||||||
|
|
||||||
|
raise aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccccccccc + ddddddddddddddddddddddddd
|
||||||
|
raise aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbb + (cccccccccccccccccccccc + ddddddddddddddddddddddddd)
|
||||||
|
raise (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbb + cccccccccccccccccccccc + ddddddddddddddddddddddddd)
|
||||||
|
|
||||||
|
|
||||||
|
raise ( # hey
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
# Holala
|
||||||
|
+ bbbbbbbbbbbbbbbbbbbbbbbbbb # stay
|
||||||
|
+ cccccccccccccccccccccc + ddddddddddddddddddddddddd # where I'm going
|
||||||
|
# I don't know
|
||||||
|
) # whaaaaat
|
||||||
|
# the end
|
||||||
|
|
||||||
|
raise ( # hey 2
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||||
|
# Holala
|
||||||
|
"bbbbbbbbbbbbbbbbbbbbbbbb" # stay
|
||||||
|
"ccccccccccccccccccccccc" "dddddddddddddddddddddddd" # where I'm going
|
||||||
|
# I don't know
|
||||||
|
) # whaaaaat
|
||||||
|
|
||||||
|
# some comment
|
||||||
|
raise aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbb]
|
||||||
|
|
||||||
|
raise aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa < aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa <aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa
|
||||||
|
|
||||||
|
raise aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfk < (aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajl < aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashd) # the other end
|
||||||
|
# sneaky comment
|
||||||
|
|
||||||
|
raise ( # another comment
|
||||||
|
)
|
||||||
|
|
||||||
|
raise (
|
||||||
|
) # what now
|
||||||
|
|
||||||
|
raise ( # sould I stay here
|
||||||
|
# just a comment here
|
||||||
|
) # trailing comment
|
||||||
|
|
||||||
|
raise hello( # sould I stay here
|
||||||
|
# just a comment here
|
||||||
|
) # trailing comment
|
||||||
|
|
||||||
|
raise ( # sould I stay here
|
||||||
|
test,
|
||||||
|
# just a comment here
|
||||||
|
) # trailing comment
|
||||||
|
|
||||||
|
raise hello( # sould I stay here
|
||||||
|
# just a comment here
|
||||||
|
"hey"
|
||||||
|
) # trailing comment
|
||||||
|
```
|
||||||
|
|
||||||
|
## Output
|
||||||
|
```py
|
||||||
|
raise a from aksjdhflsakhdflkjsadlfajkslhf
|
||||||
|
raise a from (aksjdhflsakhdflkjsadlfajkslhf,)
|
||||||
|
raise (aaaaa.aaa(a).a) from (aksjdhflsakhdflkjsadlfajkslhf)
|
||||||
|
|
||||||
|
raise a from (
|
||||||
|
aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa,
|
||||||
|
)
|
||||||
|
raise a from OsError(
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa"
|
||||||
|
)
|
||||||
|
|
||||||
|
# some comment
|
||||||
|
raise a from (
|
||||||
|
aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa
|
||||||
|
) # some comment
|
||||||
|
# some comment
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa"
|
||||||
|
) from e
|
||||||
|
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
# should i stay
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa" # mhhh very long
|
||||||
|
# or should i go
|
||||||
|
) from e # here is e
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa"
|
||||||
|
) from OsError(
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa"
|
||||||
|
)
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa"
|
||||||
|
) from a.aaaaa(aaa).a(aaaa)
|
||||||
|
|
||||||
|
raise OsError(
|
||||||
|
"aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa"
|
||||||
|
) from a.aaaaa(
|
||||||
|
aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa
|
||||||
|
).a(aaaa)
|
||||||
|
|
||||||
|
raise (
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
+ bbbbbbbbbbbbbbbbbbbbbbbbbb
|
||||||
|
+ cccccccccccccccccccccc
|
||||||
|
+ ddddddddddddddddddddddddd
|
||||||
|
)
|
||||||
|
raise aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbb + (
|
||||||
|
cccccccccccccccccccccc + ddddddddddddddddddddddddd
|
||||||
|
)
|
||||||
|
raise (
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
+ bbbbbbbbbbbbbbbbbbbbbbbbbb
|
||||||
|
+ cccccccccccccccccccccc
|
||||||
|
+ ddddddddddddddddddddddddd
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
raise (
|
||||||
|
# hey
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
# Holala
|
||||||
|
+ bbbbbbbbbbbbbbbbbbbbbbbbbb # stay
|
||||||
|
+ cccccccccccccccccccccc
|
||||||
|
+ ddddddddddddddddddddddddd # where I'm going
|
||||||
|
# I don't know
|
||||||
|
) # whaaaaat
|
||||||
|
# the end
|
||||||
|
|
||||||
|
raise (
|
||||||
|
# hey 2
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||||
|
# Holala
|
||||||
|
"bbbbbbbbbbbbbbbbbbbbbbbb" # stay
|
||||||
|
"ccccccccccccccccccccccc"
|
||||||
|
"dddddddddddddddddddddddd" # where I'm going
|
||||||
|
# I don't know
|
||||||
|
) # whaaaaat
|
||||||
|
|
||||||
|
# some comment
|
||||||
|
raise aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa[
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbb
|
||||||
|
]
|
||||||
|
|
||||||
|
raise (
|
||||||
|
aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa
|
||||||
|
< aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa
|
||||||
|
< aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa
|
||||||
|
)
|
||||||
|
|
||||||
|
raise aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfk < (
|
||||||
|
aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajl
|
||||||
|
< aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashd
|
||||||
|
) # the other end
|
||||||
|
# sneaky comment
|
||||||
|
|
||||||
|
raise ( # another comment
|
||||||
|
)
|
||||||
|
|
||||||
|
raise () # what now
|
||||||
|
|
||||||
|
raise ( # sould I stay here
|
||||||
|
# just a comment here
|
||||||
|
) # trailing comment
|
||||||
|
|
||||||
|
raise hello() # sould I stay here
|
||||||
|
# just a comment here # trailing comment
|
||||||
|
|
||||||
|
raise (
|
||||||
|
# sould I stay here
|
||||||
|
test,
|
||||||
|
# just a comment here
|
||||||
|
) # trailing comment
|
||||||
|
|
||||||
|
raise hello( # sould I stay here
|
||||||
|
# just a comment here
|
||||||
|
"hey"
|
||||||
|
) # trailing comment
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue