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

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