]> 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:

3cd0c61984b684b8bdf1ad33efd5516c62f36cf5
[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 Ø = set()
139 authors.łukasz.say_thanks()
140
141 def gen():
142     yield from outside_of_generator
143     a = (yield)
144
145 async def f():
146     await some.complicated[0].call(with_args=(True or (1 is not 1)))
147
148 if (
149     threading.current_thread() != threading.main_thread() and
150     threading.current_thread() != threading.main_thread() or
151     signal.getsignal(signal.SIGINT) != signal.default_int_handler
152 ):
153     return True
154 if (
155     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
156     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
157 ):
158     return True
159 if (
160     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
161     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
162 ):
163     return True
164 if (
165     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
166     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
167 ):
168     return True
169 if (
170     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
171     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
172 ):
173     return True
174 if (
175     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
176     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
177 ):
178     return True
179 if (
180     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
181     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
182 ):
183     return True
184 last_call()
185 # standalone comment at ENDMARKER
186
187
188 # output
189
190
191 ...
192 "some_string"
193 b"\\xa3"
194 Name
195 None
196 True
197 False
198 1
199 1.0
200 1j
201 True or False
202 True or False or None
203 True and False
204 True and False and None
205 (Name1 and Name2) or Name3
206 Name1 and Name2 or Name3
207 Name1 or (Name2 and Name3)
208 Name1 or Name2 and Name3
209 (Name1 and Name2) or (Name3 and Name4)
210 Name1 and Name2 or Name3 and Name4
211 Name1 or (Name2 and Name3) or Name4
212 Name1 or Name2 and Name3 or Name4
213 v1 << 2
214 1 >> v2
215 1 % finished
216 1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
217 ((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
218 not great
219 ~great
220 +value
221 -1
222 ~int and not v1 ^ 123 + v2 | True
223 (~int) and (not ((v1 ^ (123 + v2)) | True))
224 flags & ~select.EPOLLIN and waiters.write_task is not None
225 lambda arg: None
226 lambda a=True: a
227 lambda a, b, c=True: a
228 lambda a, b, c=True, *, d=(1 << v2), e="str": a
229 lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b
230 1 if True else 2
231 str or None if True else str or bytes or None
232 (str or None) if True else (str or bytes or None)
233 str or None if (1 if True else 2) else str or bytes or None
234 (str or None) if (1 if True else 2) else (str or bytes or None)
235 {"2.7": dead, "3.7": (long_live or die_hard)}
236 {"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}}
237 {**a, **b, **c}
238 {"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")}
239 ({"a": "b"}, (True or False), (+value), "string", b"bytes") or None
240 ()
241 (1,)
242 (1, 2)
243 (1, 2, 3)
244 []
245 [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
246 [1, 2, 3]
247 {i for i in (1, 2, 3)}
248 {(i ** 2) for i in (1, 2, 3)}
249 {(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))}
250 {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
251 [i for i in (1, 2, 3)]
252 [(i ** 2) for i in (1, 2, 3)]
253 [(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))]
254 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
255 {i: 0 for i in (1, 2, 3)}
256 {i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))}
257 {a: b * 2 for a, b in dictionary.items()}
258 {a: b * -2 for a, b in dictionary.items()}
259 {
260     k: v
261     for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
262 }
263 Python3 > Python2 > COBOL
264 Life is Life
265 call()
266 call(arg)
267 call(kwarg="hey")
268 call(arg, kwarg="hey")
269 call(arg, another, kwarg="hey", **kwargs)
270 call(
271     this_is_a_very_long_variable_which_will_force_a_delimiter_split,
272     arg,
273     another,
274     kwarg="hey",
275     **kwargs
276 )  # note: no trailing comma pre-3.6
277 call(*gidgets[:2])
278 call(**self.screen_kwargs)
279 lukasz.langa.pl
280 call.me(maybe)
281 1 .real
282 1.0 .real
283 ....__class__
284 list[str]
285 dict[str, int]
286 tuple[str, ...]
287 tuple[str, int, float, dict[str, int]]
288 very_long_variable_name_filters: t.List[
289     t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
290 ]
291 slice[0]
292 slice[0:1]
293 slice[0:1:2]
294 slice[:]
295 slice[:-1]
296 slice[1:]
297 slice[::-1]
298 slice[d::d + 1]
299 slice[:c, c - 1]
300 numpy[:, 0:1]
301 numpy[:, :-1]
302 numpy[0, :]
303 numpy[:, i]
304 numpy[0, :2]
305 numpy[:N, 0]
306 numpy[:2, :4]
307 numpy[2:4, 1:5]
308 numpy[4:, 2:]
309 numpy[:, (0, 1, 2, 5)]
310 numpy[0, [0]]
311 numpy[:, [i]]
312 numpy[1:c + 1, c]
313 numpy[-(c + 1):, d]
314 numpy[:, l[-2]]
315 numpy[:, ::-1]
316 numpy[np.newaxis, :]
317 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
318 {"2.7": dead, "3.7": long_live or die_hard}
319 {"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
320 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
321 (SomeName)
322 SomeName
323 (Good, Bad, Ugly)
324 (i for i in (1, 2, 3))
325 ((i ** 2) for i in (1, 2, 3))
326 ((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
327 (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
328 (*starred)
329 a = (1,)
330 b = 1,
331 c = 1
332 d = (1,) + a + (2,)
333 e = (1,).count(1)
334 what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
335     vars_to_remove
336 )
337 what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
338     vars_to_remove
339 )
340 result = session.query(models.Customer.id).filter(
341     models.Customer.account_id == account_id, models.Customer.email == email_address
342 ).order_by(
343     models.Customer.id.asc()
344 ).all()
345 Ø = set()
346 authors.łukasz.say_thanks()
347
348
349 def gen():
350     yield from outside_of_generator
351
352     a = (yield)
353
354
355 async def f():
356     await some.complicated[0].call(with_args=(True or (1 is not 1)))
357
358
359 if (
360     threading.current_thread() != threading.main_thread()
361     and threading.current_thread() != threading.main_thread()
362     or signal.getsignal(signal.SIGINT) != signal.default_int_handler
363 ):
364     return True
365
366 if (
367     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
368     | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
369 ):
370     return True
371
372 if (
373     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
374     & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
375 ):
376     return True
377
378 if (
379     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
380     + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
381 ):
382     return True
383
384 if (
385     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
386     - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
387 ):
388     return True
389
390 if (
391     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
392     * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
393 ):
394     return True
395
396 if (
397     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
398     / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
399 ):
400     return True
401
402 last_call()
403 # standalone comment at ENDMARKER