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

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