Skip to content

Commit 42ae009

Browse files
committed
fix: cosmetic fix to classes; fix ann assign & type aliases
1 parent c435587 commit 42ae009

File tree

4 files changed

+29
-6
lines changed

4 files changed

+29
-6
lines changed

src/unparser.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -295,10 +295,12 @@ impl Unparser {
295295
self.write_str("]");
296296
}
297297

298-
self.write_str("(");
299-
300298
let mut bases_iter = node.bases.iter().peekable();
301299
let mut keywords_iter = node.keywords.iter().peekable();
300+
let has_parens = bases_iter.peek().is_some() || keywords_iter.peek().is_some();
301+
if has_parens {
302+
self.write_str("(");
303+
}
302304

303305
while let Some(base) = bases_iter.next() {
304306
self.unparse_expr(base);
@@ -312,7 +314,10 @@ impl Unparser {
312314
self.write_str(", ");
313315
}
314316
}
315-
self.write_str("):");
317+
if has_parens {
318+
self.write_str(")");
319+
}
320+
self.write_str(":");
316321

317322
self.block(|block_self| {
318323
for value in &node.body {
@@ -359,7 +364,7 @@ impl Unparser {
359364
}
360365

361366
fn unparse_stmt_type_alias(&mut self, node: &StmtTypeAlias<TextRange>) {
362-
self.fill("");
367+
self.fill("type ");
363368
self.unparse_expr(&node.name);
364369
if node.type_params.len() > 0 {
365370
self.write_str("[");
@@ -372,7 +377,7 @@ impl Unparser {
372377
}
373378
self.write_str("]");
374379
}
375-
self.write_str(": ");
380+
self.write_str(" = ");
376381
self.unparse_expr(&node.value);
377382
}
378383

@@ -390,8 +395,8 @@ impl Unparser {
390395
self.unparse_expr(&node.target);
391396
self.write_str(": ");
392397
self.unparse_expr(&node.annotation);
393-
self.write_str(" = ");
394398
if let Some(value) = &node.value {
399+
self.write_str(" = ");
395400
self.unparse_expr(value);
396401
}
397402
}

test_files/ann_assign.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
name_0: str
2+
3+
with_value: str | None = None

test_files/class.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Empty:
2+
pass
3+
4+
5+
class Empty2:
6+
pass
7+
8+
9+
class Inheriting(Empty):
10+
pass
11+
12+
13+
class Meta(Empty2, Inheriting, metaclass=type):
14+
pass

test_files/type_alias.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
type name_1 = str # type: ignore

0 commit comments

Comments
 (0)