Skip to content

Commit 6760c24

Browse files
committed
Refine parse and AST to represent ConstValue
Replicates graphql/graphql-js@513eacc
1 parent 5b9a728 commit 6760c24

File tree

11 files changed

+288
-54
lines changed

11 files changed

+288
-54
lines changed

.mypy.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[mypy]
2-
python_version = 3.8
2+
python_version = 3.9
33
check_untyped_defs = True
44
no_implicit_optional = True
55
strict_optional = True

docs/modules/language.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ Each kind of AST node has its own class:
1717

1818
.. autoclass:: ArgumentNode
1919
.. autoclass:: BooleanValueNode
20+
.. autoclass:: ConstArgumentNode
21+
.. autoclass:: ConstDirectiveNode
22+
.. autoclass:: ConstListValueNode
23+
.. autoclass:: ConstObjectFieldNode
24+
.. autoclass:: ConstObjectValueNode
25+
.. autoclass:: ConstValueNode
2026
.. autoclass:: DefinitionNode
2127
.. autoclass:: DirectiveDefinitionNode
2228
.. autoclass:: DirectiveNode
@@ -79,6 +85,7 @@ You can also check the type of nodes with the following predicates:
7985
.. autofunction:: is_executable_definition_node
8086
.. autofunction:: is_selection_node
8187
.. autofunction:: is_value_node
88+
.. autofunction:: is_const_value_node
8289
.. autofunction:: is_type_node
8390
.. autofunction:: is_type_system_definition_node
8491
.. autofunction:: is_type_definition_node
@@ -105,6 +112,7 @@ Parser
105112
.. autofunction:: parse
106113
.. autofunction:: parse_type
107114
.. autofunction:: parse_value
115+
.. autofunction:: parse_const_value
108116

109117
Printer
110118
-------

src/graphql/__init__.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@
177177
# Parse
178178
parse,
179179
parse_value,
180+
parse_const_value,
180181
parse_type,
181182
# Print
182183
print_ast,
@@ -195,6 +196,7 @@
195196
is_executable_definition_node,
196197
is_selection_node,
197198
is_value_node,
199+
is_const_value_node,
198200
is_type_node,
199201
is_type_system_definition_node,
200202
is_type_definition_node,
@@ -219,20 +221,26 @@
219221
SelectionNode,
220222
FieldNode,
221223
ArgumentNode,
224+
ConstArgumentNode,
222225
FragmentSpreadNode,
223226
InlineFragmentNode,
224227
FragmentDefinitionNode,
225228
ValueNode,
229+
ConstValueNode,
226230
IntValueNode,
227231
FloatValueNode,
228232
StringValueNode,
229233
BooleanValueNode,
230234
NullValueNode,
231235
EnumValueNode,
232236
ListValueNode,
237+
ConstListValueNode,
233238
ObjectValueNode,
239+
ConstObjectValueNode,
234240
ObjectFieldNode,
241+
ConstObjectFieldNode,
235242
DirectiveNode,
243+
ConstDirectiveNode,
236244
TypeNode,
237245
NamedTypeNode,
238246
ListTypeNode,
@@ -535,6 +543,7 @@
535543
"TokenKind",
536544
"parse",
537545
"parse_value",
546+
"parse_const_value",
538547
"parse_type",
539548
"print_ast",
540549
"visit",
@@ -551,6 +560,7 @@
551560
"is_executable_definition_node",
552561
"is_selection_node",
553562
"is_value_node",
563+
"is_const_value_node",
554564
"is_type_node",
555565
"is_type_system_definition_node",
556566
"is_type_definition_node",
@@ -572,20 +582,26 @@
572582
"SelectionNode",
573583
"FieldNode",
574584
"ArgumentNode",
585+
"ConstArgumentNode",
575586
"FragmentSpreadNode",
576587
"InlineFragmentNode",
577588
"FragmentDefinitionNode",
578589
"ValueNode",
590+
"ConstValueNode",
579591
"IntValueNode",
580592
"FloatValueNode",
581593
"StringValueNode",
582594
"BooleanValueNode",
583595
"NullValueNode",
584596
"EnumValueNode",
585597
"ListValueNode",
598+
"ConstListValueNode",
586599
"ObjectValueNode",
600+
"ConstObjectValueNode",
587601
"ObjectFieldNode",
602+
"ConstObjectFieldNode",
588603
"DirectiveNode",
604+
"ConstDirectiveNode",
589605
"TypeNode",
590606
"NamedTypeNode",
591607
"ListTypeNode",

src/graphql/language/__init__.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
from .lexer import Lexer
1616

17-
from .parser import parse, parse_type, parse_value
17+
from .parser import parse, parse_type, parse_value, parse_const_value
1818

1919
from .printer import print_ast
2020

@@ -46,20 +46,26 @@
4646
SelectionNode,
4747
FieldNode,
4848
ArgumentNode,
49+
ConstArgumentNode,
4950
FragmentSpreadNode,
5051
InlineFragmentNode,
5152
FragmentDefinitionNode,
5253
ValueNode,
54+
ConstValueNode,
5355
IntValueNode,
5456
FloatValueNode,
5557
StringValueNode,
5658
BooleanValueNode,
5759
NullValueNode,
5860
EnumValueNode,
5961
ListValueNode,
62+
ConstListValueNode,
6063
ObjectValueNode,
64+
ConstObjectValueNode,
6165
ObjectFieldNode,
66+
ConstObjectFieldNode,
6267
DirectiveNode,
68+
ConstDirectiveNode,
6369
TypeNode,
6470
NamedTypeNode,
6571
ListTypeNode,
@@ -93,6 +99,7 @@
9399
is_executable_definition_node,
94100
is_selection_node,
95101
is_value_node,
102+
is_const_value_node,
96103
is_type_node,
97104
is_type_system_definition_node,
98105
is_type_definition_node,
@@ -110,6 +117,7 @@
110117
"Lexer",
111118
"parse",
112119
"parse_value",
120+
"parse_const_value",
113121
"parse_type",
114122
"print_ast",
115123
"Source",
@@ -137,20 +145,26 @@
137145
"SelectionNode",
138146
"FieldNode",
139147
"ArgumentNode",
148+
"ConstArgumentNode",
140149
"FragmentSpreadNode",
141150
"InlineFragmentNode",
142151
"FragmentDefinitionNode",
143152
"ValueNode",
153+
"ConstValueNode",
144154
"IntValueNode",
145155
"FloatValueNode",
146156
"StringValueNode",
147157
"BooleanValueNode",
148158
"NullValueNode",
149159
"EnumValueNode",
150160
"ListValueNode",
161+
"ConstListValueNode",
151162
"ObjectValueNode",
163+
"ConstObjectValueNode",
152164
"ObjectFieldNode",
165+
"ConstObjectFieldNode",
153166
"DirectiveNode",
167+
"ConstDirectiveNode",
154168
"TypeNode",
155169
"NamedTypeNode",
156170
"ListTypeNode",
@@ -182,6 +196,7 @@
182196
"is_executable_definition_node",
183197
"is_selection_node",
184198
"is_value_node",
199+
"is_const_value_node",
185200
"is_type_node",
186201
"is_type_system_definition_node",
187202
"is_type_definition_node",

0 commit comments

Comments
 (0)