]> git.madduck.net Git - etc/vim.git/blob - tests/expression.py

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Add DebugVisitor.show() to documentation under utility functions
[etc/vim.git] / tests / expression.py
1 ...
2 'some_string'
3 b'\\xa3'
4 Name
5 None
6 True
7 False
8 1
9 1.0
10 1j
11 True or False
12 True or False or None
13 True and False
14 True and False and None
15 (Name1 and Name2) or Name3
16 Name1 and Name2 or Name3
17 Name1 or (Name2 and Name3)
18 Name1 or Name2 and Name3
19 (Name1 and Name2) or (Name3 and Name4)
20 Name1 and Name2 or Name3 and Name4
21 Name1 or (Name2 and Name3) or Name4
22 Name1 or Name2 and Name3 or Name4
23 v1 << 2
24 1 >> v2
25 1 % finished
26 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
27 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
28 not great
29 ~great
30 +value
31 -1
32 ~int and not v1 ^ 123 + v2 | True
33 (~int) and (not ((v1 ^ (123 + v2)) | True))
34 flags & ~ select.EPOLLIN and waiters.write_task is not None
35 lambda arg: None
36 lambda a=True: a
37 lambda a, b, c=True: a
38 lambda a, b, c=True, *, d=(1 << v2), e='str': a
39 lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b
40 1 if True else 2
41 str or None if True else str or bytes or None
42 (str or None) if True else (str or bytes or None)
43 str or None if (1 if True else 2) else str or bytes or None
44 (str or None) if (1 if True else 2) else (str or bytes or None)
45 {'2.7': dead, '3.7': (long_live or die_hard)}
46 {'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}}
47 {**a, **b, **c}
48 {'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')}
49 ({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None
50 ()
51 (1,)
52 (1, 2)
53 (1, 2, 3)
54 []
55 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
56 [1, 2, 3,]
57 {i for i in (1, 2, 3)}
58 {(i ** 2) for i in (1, 2, 3)}
59 {(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
60 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
61 [i for i in (1, 2, 3)]
62 [(i ** 2) for i in (1, 2, 3)]
63 [(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
64 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
65 {i: 0 for i in (1, 2, 3)}
66 {i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
67 {a: b * 2 for a, b in dictionary.items()}
68 {a: b * -2 for a, b in dictionary.items()}
69 {k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension}
70 Python3 > Python2 > COBOL
71 Life is Life
72 call()
73 call(arg)
74 call(kwarg='hey')
75 call(arg, kwarg='hey')
76 call(arg, another, kwarg='hey', **kwargs)
77 call(this_is_a_very_long_variable_which_will_force_a_delimiter_split, arg, another, kwarg='hey', **kwargs)  # note: no trailing comma pre-3.6
78 call(*gidgets[:2])
79 call(**self.screen_kwargs)
80 lukasz.langa.pl
81 call.me(maybe)
82 1 .real
83 1.0 .real
84 ....__class__
85 list[str]
86 dict[str, int]
87 tuple[str, ...]
88 tuple[str, int, float, dict[str, int],]
89 very_long_variable_name_filters: t.List[
90     t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
91 ]
92 slice[0]
93 slice[0:1]
94 slice[0:1:2]
95 slice[:]
96 slice[:-1]
97 slice[1:]
98 slice[::-1]
99 slice[d::d + 1]
100 slice[:c, c - 1]
101 numpy[:, 0:1]
102 numpy[:, :-1]
103 numpy[0, :]
104 numpy[:, i]
105 numpy[0, :2]
106 numpy[:N, 0]
107 numpy[:2, :4]
108 numpy[2:4, 1:5]
109 numpy[4:, 2:]
110 numpy[:, (0, 1, 2, 5)]
111 numpy[0, [0]]
112 numpy[:, [i]]
113 numpy[1:c + 1, c]
114 numpy[-(c + 1):, d]
115 numpy[:, l[-2]]
116 numpy[:, ::-1]
117 numpy[np.newaxis, :]
118 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
119 {'2.7': dead, '3.7': long_live or die_hard}
120 {'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
121 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
122 (SomeName)
123 SomeName
124 (Good, Bad, Ugly)
125 (i for i in (1, 2, 3))
126 ((i ** 2) for i in (1, 2, 3))
127 ((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
128 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
129 (*starred)
130 a = (1,)
131 b = 1,
132 c = 1
133 d = (1,) + a + (2,)
134 e = (1,).count(1)
135 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove)
136 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove)
137 result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc(),).all()
138
139 def gen():
140     yield from outside_of_generator
141     a = (yield)
142
143 async def f():
144     await some.complicated[0].call(with_args=(True or (1 is not 1)))
145
146 if (
147     threading.current_thread() != threading.main_thread() and
148     threading.current_thread() != threading.main_thread() or
149     signal.getsignal(signal.SIGINT) != signal.default_int_handler
150 ):
151     return True
152 last_call()
153 # standalone comment at ENDMARKER
154
155
156 # output
157
158
159 ...
160 'some_string'
161 b'\\xa3'
162 Name
163 None
164 True
165 False
166 1
167 1.0
168 1j
169 True or False
170 True or False or None
171 True and False
172 True and False and None
173 (Name1 and Name2) or Name3
174 Name1 and Name2 or Name3
175 Name1 or (Name2 and Name3)
176 Name1 or Name2 and Name3
177 (Name1 and Name2) or (Name3 and Name4)
178 Name1 and Name2 or Name3 and Name4
179 Name1 or (Name2 and Name3) or Name4
180 Name1 or Name2 and Name3 or Name4
181 v1 << 2
182 1 >> v2
183 1 % finished
184 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
185 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
186 not great
187 ~great
188 +value
189 -1
190 ~int and not v1 ^ 123 + v2 | True
191 (~int) and (not ((v1 ^ (123 + v2)) | True))
192 flags & ~select.EPOLLIN and waiters.write_task is not None
193 lambda arg: None
194 lambda a=True: a
195 lambda a, b, c=True: a
196 lambda a, b, c=True, *, d=(1 << v2), e='str': a
197 lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b
198 1 if True else 2
199 str or None if True else str or bytes or None
200 (str or None) if True else (str or bytes or None)
201 str or None if (1 if True else 2) else str or bytes or None
202 (str or None) if (1 if True else 2) else (str or bytes or None)
203 {'2.7': dead, '3.7': (long_live or die_hard)}
204 {'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}}
205 {**a, **b, **c}
206 {'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')}
207 ({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None
208 ()
209 (1,)
210 (1, 2)
211 (1, 2, 3)
212 []
213 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
214 [1, 2, 3]
215 {i for i in (1, 2, 3)}
216 {(i ** 2) for i in (1, 2, 3)}
217 {(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
218 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
219 [i for i in (1, 2, 3)]
220 [(i ** 2) for i in (1, 2, 3)]
221 [(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
222 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
223 {i: 0 for i in (1, 2, 3)}
224 {i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
225 {a: b * 2 for a, b in dictionary.items()}
226 {a: b * -2 for a, b in dictionary.items()}
227 {
228     k: v
229     for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
230 }
231 Python3 > Python2 > COBOL
232 Life is Life
233 call()
234 call(arg)
235 call(kwarg='hey')
236 call(arg, kwarg='hey')
237 call(arg, another, kwarg='hey', **kwargs)
238 call(
239     this_is_a_very_long_variable_which_will_force_a_delimiter_split,
240     arg,
241     another,
242     kwarg='hey',
243     **kwargs
244 )  # note: no trailing comma pre-3.6
245 call(*gidgets[:2])
246 call(**self.screen_kwargs)
247 lukasz.langa.pl
248 call.me(maybe)
249 1 .real
250 1.0 .real
251 ....__class__
252 list[str]
253 dict[str, int]
254 tuple[str, ...]
255 tuple[str, int, float, dict[str, int]]
256 very_long_variable_name_filters: t.List[
257     t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
258 ]
259 slice[0]
260 slice[0:1]
261 slice[0:1:2]
262 slice[:]
263 slice[:-1]
264 slice[1:]
265 slice[::-1]
266 slice[d::d + 1]
267 slice[:c, c - 1]
268 numpy[:, 0:1]
269 numpy[:, :-1]
270 numpy[0, :]
271 numpy[:, i]
272 numpy[0, :2]
273 numpy[:N, 0]
274 numpy[:2, :4]
275 numpy[2:4, 1:5]
276 numpy[4:, 2:]
277 numpy[:, (0, 1, 2, 5)]
278 numpy[0, [0]]
279 numpy[:, [i]]
280 numpy[1:c + 1, c]
281 numpy[-(c + 1):, d]
282 numpy[:, l[-2]]
283 numpy[:, ::-1]
284 numpy[np.newaxis, :]
285 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
286 {'2.7': dead, '3.7': long_live or die_hard}
287 {'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
288 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
289 (SomeName)
290 SomeName
291 (Good, Bad, Ugly)
292 (i for i in (1, 2, 3))
293 ((i ** 2) for i in (1, 2, 3))
294 ((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
295 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
296 (*starred)
297 a = (1,)
298 b = 1,
299 c = 1
300 d = (1,) + a + (2,)
301 e = (1,).count(1)
302 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
303     vars_to_remove
304 )
305 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
306     vars_to_remove
307 )
308 result = session.query(models.Customer.id).filter(
309     models.Customer.account_id == account_id, models.Customer.email == email_address
310 ).order_by(
311     models.Customer.id.asc()
312 ).all()
313
314
315 def gen():
316     yield from outside_of_generator
317
318     a = (yield)
319
320
321 async def f():
322     await some.complicated[0].call(with_args=(True or (1 is not 1)))
323
324
325 if (
326     threading.current_thread() != threading.main_thread()
327     and threading.current_thread() != threading.main_thread()
328     or signal.getsignal(signal.SIGINT) != signal.default_int_handler
329 ):
330     return True
331
332 last_call()
333 # standalone comment at ENDMARKER