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

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