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

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