Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/libcst/_parser/types/partials.py: 100%
101 statements
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-25 06:43 +0000
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-25 06:43 +0000
1# Copyright (c) Meta Platforms, Inc. and affiliates.
2#
3# This source code is licensed under the MIT license found in the
4# LICENSE file in the root directory of this source tree.
7from dataclasses import dataclass
8from typing import Generic, Optional, Sequence, TypeVar, Union
10from libcst._add_slots import add_slots
11from libcst._nodes.expression import (
12 Annotation,
13 Arg,
14 Attribute,
15 BaseExpression,
16 BaseFormattedStringContent,
17 Index,
18 LeftParen,
19 LeftSquareBracket,
20 Name,
21 Parameters,
22 RightParen,
23 RightSquareBracket,
24 Slice,
25 SubscriptElement,
26)
27from libcst._nodes.op import AssignEqual, BaseAugOp, Colon, Dot
28from libcst._nodes.statement import AsName, BaseSmallStatement, Decorator, ImportAlias
29from libcst._nodes.whitespace import EmptyLine, SimpleWhitespace, TrailingWhitespace
30from libcst._parser.types.whitespace_state import WhitespaceState
32_T = TypeVar("_T")
35@add_slots
36@dataclass(frozen=True)
37class WithLeadingWhitespace(Generic[_T]):
38 value: _T
39 whitespace_before: WhitespaceState
42@add_slots
43@dataclass(frozen=True)
44class SimpleStatementPartial:
45 body: Sequence[BaseSmallStatement]
46 whitespace_before: WhitespaceState
47 trailing_whitespace: TrailingWhitespace
50@add_slots
51@dataclass(frozen=True)
52class SlicePartial:
53 second_colon: Colon
54 step: Optional[BaseExpression]
57@add_slots
58@dataclass(frozen=True)
59class AttributePartial:
60 dot: Dot
61 attr: Name
64@add_slots
65@dataclass(frozen=True)
66class ArglistPartial:
67 args: Sequence[Arg]
70@add_slots
71@dataclass(frozen=True)
72class CallPartial:
73 lpar: WithLeadingWhitespace[LeftParen]
74 args: Sequence[Arg]
75 rpar: RightParen
78@add_slots
79@dataclass(frozen=True)
80class SubscriptPartial:
81 slice: Union[Index, Slice, Sequence[SubscriptElement]]
82 lbracket: LeftSquareBracket
83 rbracket: RightSquareBracket
84 whitespace_before: WhitespaceState
87@add_slots
88@dataclass(frozen=True)
89class AnnAssignPartial:
90 annotation: Annotation
91 equal: Optional[AssignEqual]
92 value: Optional[BaseExpression]
95@add_slots
96@dataclass(frozen=True)
97class AugAssignPartial:
98 operator: BaseAugOp
99 value: BaseExpression
102@add_slots
103@dataclass(frozen=True)
104class AssignPartial:
105 equal: AssignEqual
106 value: BaseExpression
109class ParamStarPartial:
110 pass
113@add_slots
114@dataclass(frozen=True)
115class FuncdefPartial:
116 lpar: LeftParen
117 params: Parameters
118 rpar: RightParen
121@add_slots
122@dataclass(frozen=True)
123class DecoratorPartial:
124 decorators: Sequence[Decorator]
127@add_slots
128@dataclass(frozen=True)
129class ImportPartial:
130 names: Sequence[ImportAlias]
133@add_slots
134@dataclass(frozen=True)
135class ImportRelativePartial:
136 relative: Sequence[Dot]
137 module: Optional[Union[Attribute, Name]]
140@add_slots
141@dataclass(frozen=True)
142class FormattedStringConversionPartial:
143 value: str
144 whitespace_before: WhitespaceState
147@add_slots
148@dataclass(frozen=True)
149class FormattedStringFormatSpecPartial:
150 values: Sequence[BaseFormattedStringContent]
151 whitespace_before: WhitespaceState
154@add_slots
155@dataclass(frozen=True)
156class ExceptClausePartial:
157 leading_lines: Sequence[EmptyLine]
158 whitespace_after_except: SimpleWhitespace
159 type: Optional[BaseExpression] = None
160 name: Optional[AsName] = None