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

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