Skip to content

Commit 8eaaf8e

Browse files
committed
Python: Ignore trace.py in ModuleExport.ql test
I guess we could have done this at the very start of introducing this test in this PR, but I think the last commit was mostly inspired from looking at all the things that evidently was re-exported from the trace import, even when I knew they were not available because of the `__all__` definition.
1 parent c8a7624 commit 8eaaf8e

File tree

2 files changed

+2
-87
lines changed

2 files changed

+2
-87
lines changed
Lines changed: 0 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,51 @@
11
| attr_clash.__init__ | __file__ | attr_clash/__init__.py:2:7:2:14 | ControlFlowNode for __file__ |
22
| attr_clash.__init__ | __file__ | attr_clash/__init__.py:6:6:6:13 | ControlFlowNode for __file__ |
3-
| attr_clash.__init__ | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
43
| attr_clash.__init__ | clashing_attr | attr_clash/__init__.py:4:17:4:31 | ControlFlowNode for Str |
5-
| attr_clash.__init__ | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
6-
| attr_clash.__init__ | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
7-
| attr_clash.__init__ | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
84
| attr_clash.clashing_attr | __file__ | attr_clash/clashing_attr.py:2:7:2:14 | ControlFlowNode for __file__ |
95
| attr_clash.clashing_attr | __file__ | attr_clash/clashing_attr.py:4:6:4:13 | ControlFlowNode for __file__ |
10-
| attr_clash.clashing_attr | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
11-
| attr_clash.clashing_attr | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
12-
| attr_clash.clashing_attr | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
13-
| attr_clash.clashing_attr | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
146
| attr_clash.non_clashing_submodule | __file__ | attr_clash/non_clashing_submodule.py:2:7:2:14 | ControlFlowNode for __file__ |
157
| attr_clash.non_clashing_submodule | __file__ | attr_clash/non_clashing_submodule.py:4:6:4:13 | ControlFlowNode for __file__ |
16-
| attr_clash.non_clashing_submodule | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
17-
| attr_clash.non_clashing_submodule | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
18-
| attr_clash.non_clashing_submodule | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
19-
| attr_clash.non_clashing_submodule | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
208
| bar | __file__ | bar.py:2:7:2:14 | ControlFlowNode for __file__ |
219
| bar | __file__ | bar.py:6:6:6:13 | ControlFlowNode for __file__ |
2210
| bar | bar_attr | bar.py:4:12:4:21 | ControlFlowNode for Str |
23-
| bar | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
24-
| bar | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
25-
| bar | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
26-
| bar | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
2711
| baz | __file__ | baz.py:2:7:2:14 | ControlFlowNode for __file__ |
2812
| baz | __file__ | baz.py:6:6:6:13 | ControlFlowNode for __file__ |
2913
| baz | baz_attr | baz.py:4:12:4:21 | ControlFlowNode for Str |
30-
| baz | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
31-
| baz | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
32-
| baz | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
33-
| baz | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
3414
| foo | __file__ | foo.py:2:7:2:14 | ControlFlowNode for __file__ |
3515
| foo | __file__ | foo.py:14:6:14:13 | ControlFlowNode for __file__ |
3616
| foo | __private_foo_attr | foo.py:8:22:8:41 | ControlFlowNode for Str |
3717
| foo | bar_reexported | foo.py:11:8:11:10 | ControlFlowNode for ImportExpr |
38-
| foo | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
39-
| foo | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
40-
| foo | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
4118
| foo | foo_attr | foo.py:5:12:5:21 | ControlFlowNode for Str |
42-
| foo | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
4319
| has_defined_all | __all__ | has_defined_all.py:7:11:7:29 | ControlFlowNode for List |
4420
| has_defined_all | __file__ | has_defined_all.py:2:7:2:14 | ControlFlowNode for __file__ |
4521
| has_defined_all | __file__ | has_defined_all.py:9:6:9:13 | ControlFlowNode for __file__ |
4622
| has_defined_all | all_defined_bar | has_defined_all.py:5:19:5:35 | ControlFlowNode for Str |
4723
| has_defined_all | all_defined_foo | has_defined_all.py:4:19:4:35 | ControlFlowNode for Str |
48-
| has_defined_all | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
49-
| has_defined_all | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
50-
| has_defined_all | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
51-
| has_defined_all | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
5224
| has_defined_all_copy | __all__ | has_defined_all_copy.py:9:11:9:34 | ControlFlowNode for List |
5325
| has_defined_all_copy | __file__ | has_defined_all_copy.py:4:7:4:14 | ControlFlowNode for __file__ |
5426
| has_defined_all_copy | __file__ | has_defined_all_copy.py:11:6:11:13 | ControlFlowNode for __file__ |
5527
| has_defined_all_copy | all_defined_bar_copy | has_defined_all_copy.py:7:24:7:45 | ControlFlowNode for Str |
5628
| has_defined_all_copy | all_defined_foo_copy | has_defined_all_copy.py:6:24:6:45 | ControlFlowNode for Str |
57-
| has_defined_all_copy | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
58-
| has_defined_all_copy | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
59-
| has_defined_all_copy | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
60-
| has_defined_all_copy | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
6129
| has_defined_all_indirection | __file__ | has_defined_all_indirection.py:2:7:2:14 | ControlFlowNode for __file__ |
6230
| has_defined_all_indirection | __file__ | has_defined_all_indirection.py:6:6:6:13 | ControlFlowNode for __file__ |
6331
| has_defined_all_indirection | all_defined_foo_copy | has_defined_all_copy.py:6:24:6:45 | ControlFlowNode for Str |
64-
| has_defined_all_indirection | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
65-
| has_defined_all_indirection | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
66-
| has_defined_all_indirection | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
67-
| has_defined_all_indirection | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
6832
| if_then_else | __file__ | if_then_else.py:2:7:2:14 | ControlFlowNode for __file__ |
6933
| if_then_else | __file__ | if_then_else.py:16:6:16:13 | ControlFlowNode for __file__ |
70-
| if_then_else | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
71-
| if_then_else | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
72-
| if_then_else | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
7334
| if_then_else | if_then_else_defined | if_then_else.py:7:28:7:39 | ControlFlowNode for Str |
7435
| if_then_else | if_then_else_defined | if_then_else.py:12:32:12:47 | ControlFlowNode for Str |
7536
| if_then_else | if_then_else_defined | if_then_else.py:14:32:14:47 | ControlFlowNode for Str |
76-
| if_then_else | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
7737
| if_then_else_refined | SOURCE | if_then_else_refined.py:6:1:6:15 | ControlFlowNode for ClassExpr |
7838
| if_then_else_refined | __file__ | if_then_else_refined.py:4:7:4:14 | ControlFlowNode for __file__ |
7939
| if_then_else_refined | __file__ | if_then_else_refined.py:19:6:19:13 | ControlFlowNode for __file__ |
80-
| if_then_else_refined | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
81-
| if_then_else_refined | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
82-
| if_then_else_refined | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
8340
| if_then_else_refined | src | if_then_else_refined.py:11:11:11:16 | ControlFlowNode for SOURCE |
8441
| if_then_else_refined | src | if_then_else_refined.py:13:11:13:16 | ControlFlowNode for SOURCE |
85-
| if_then_else_refined | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
8642
| main | __file__ | main.py:24:7:24:14 | ControlFlowNode for __file__ |
8743
| main | __file__ | main.py:149:6:149:13 | ControlFlowNode for __file__ |
8844
| main | aliased_subpackage | main.py:54:21:54:52 | ControlFlowNode for ImportMember |
8945
| main | aliased_subpackage | main.py:65:8:65:25 | ControlFlowNode for ImportExpr |
9046
| main | all_defined_foo | has_defined_all.py:4:19:4:35 | ControlFlowNode for Str |
9147
| main | bar_attr | main.py:42:17:42:24 | ControlFlowNode for ImportMember |
92-
| main | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
9348
| main | clashing_attr | main.py:83:24:83:36 | ControlFlowNode for ImportMember |
94-
| main | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
95-
| main | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
9649
| main | foo | main.py:27:8:27:10 | ControlFlowNode for ImportExpr |
9750
| main | foo_alias | main.py:34:8:34:10 | ControlFlowNode for ImportExpr |
9851
| main | has_defined_all | main.py:100:8:100:22 | ControlFlowNode for ImportExpr |
@@ -108,73 +61,34 @@
10861
| main | print_function | main.py:21:24:21:37 | ControlFlowNode for ImportMember |
10962
| main | refined | main.py:139:8:139:14 | ControlFlowNode for ImportExpr |
11063
| main | simplistic_reexport | main.py:145:8:145:26 | ControlFlowNode for ImportExpr |
111-
| main | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
11264
| main | subpackage2_attr | package/subpackage2/__init__.py:4:20:4:37 | ControlFlowNode for Str |
11365
| main | subpackage_attr | main.py:46:32:46:46 | ControlFlowNode for ImportMember |
11466
| main | sys | main.py:22:8:22:10 | ControlFlowNode for ImportExpr |
11567
| namespace_package.namespace_module | __file__ | namespace_package/namespace_module.py:2:7:2:14 | ControlFlowNode for __file__ |
11668
| namespace_package.namespace_module | __file__ | namespace_package/namespace_module.py:6:6:6:13 | ControlFlowNode for __file__ |
117-
| namespace_package.namespace_module | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
118-
| namespace_package.namespace_module | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
119-
| namespace_package.namespace_module | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
12069
| namespace_package.namespace_module | namespace_module_attr | namespace_package/namespace_module.py:4:25:4:47 | ControlFlowNode for Str |
121-
| namespace_package.namespace_module | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
12270
| package.__init__ | __file__ | package/__init__.py:2:7:2:14 | ControlFlowNode for __file__ |
12371
| package.__init__ | __file__ | package/__init__.py:7:6:7:13 | ControlFlowNode for __file__ |
12472
| package.__init__ | attr_used_in_subpackage | package/__init__.py:4:27:4:51 | ControlFlowNode for Str |
125-
| package.__init__ | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
126-
| package.__init__ | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
127-
| package.__init__ | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
12873
| package.__init__ | package_attr | package/__init__.py:5:16:5:29 | ControlFlowNode for Str |
129-
| package.__init__ | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
13074
| package.subpackage2.__init__ | __file__ | package/subpackage2/__init__.py:2:7:2:14 | ControlFlowNode for __file__ |
13175
| package.subpackage2.__init__ | __file__ | package/subpackage2/__init__.py:6:6:6:13 | ControlFlowNode for __file__ |
132-
| package.subpackage2.__init__ | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
133-
| package.subpackage2.__init__ | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
134-
| package.subpackage2.__init__ | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
135-
| package.subpackage2.__init__ | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
13676
| package.subpackage2.__init__ | subpackage2_attr | package/subpackage2/__init__.py:4:20:4:37 | ControlFlowNode for Str |
13777
| package.subpackage.__init__ | __file__ | package/subpackage/__init__.py:2:7:2:14 | ControlFlowNode for __file__ |
13878
| package.subpackage.__init__ | __file__ | package/subpackage/__init__.py:14:6:14:13 | ControlFlowNode for __file__ |
139-
| package.subpackage.__init__ | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
140-
| package.subpackage.__init__ | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
141-
| package.subpackage.__init__ | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
14279
| package.subpackage.__init__ | imported_attr | package/subpackage/__init__.py:7:16:7:55 | ControlFlowNode for ImportMember |
14380
| package.subpackage.__init__ | irrelevant_attr | package/subpackage/__init__.py:11:24:11:38 | ControlFlowNode for ImportMember |
144-
| package.subpackage.__init__ | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
14581
| package.subpackage.__init__ | subpackage_attr | package/subpackage/__init__.py:4:19:4:35 | ControlFlowNode for Str |
14682
| package.subpackage.submodule | __file__ | package/subpackage/submodule.py:2:7:2:14 | ControlFlowNode for __file__ |
14783
| package.subpackage.submodule | __file__ | package/subpackage/submodule.py:7:6:7:13 | ControlFlowNode for __file__ |
148-
| package.subpackage.submodule | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
149-
| package.subpackage.submodule | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
150-
| package.subpackage.submodule | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
15184
| package.subpackage.submodule | irrelevant_attr | package/subpackage/submodule.py:5:19:5:35 | ControlFlowNode for Str |
152-
| package.subpackage.submodule | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
15385
| package.subpackage.submodule | submodule_attr | package/subpackage/submodule.py:4:18:4:33 | ControlFlowNode for Str |
15486
| refined | SOURCE | refined.py:4:1:4:21 | ControlFlowNode for ClassExpr |
15587
| refined | __file__ | refined.py:2:7:2:14 | ControlFlowNode for __file__ |
15688
| refined | __file__ | refined.py:14:6:14:13 | ControlFlowNode for __file__ |
157-
| refined | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
158-
| refined | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
159-
| refined | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
160-
| refined | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
16189
| simplistic_reexport | __file__ | simplistic_reexport.py:4:7:4:14 | ControlFlowNode for __file__ |
16290
| simplistic_reexport | __file__ | simplistic_reexport.py:19:6:19:13 | ControlFlowNode for __file__ |
16391
| simplistic_reexport | bar_attr | simplistic_reexport.py:6:17:6:24 | ControlFlowNode for ImportMember |
16492
| simplistic_reexport | bar_attr | simplistic_reexport.py:9:12:9:24 | ControlFlowNode for Str |
16593
| simplistic_reexport | baz_attr | baz.py:4:12:4:21 | ControlFlowNode for Str |
16694
| simplistic_reexport | baz_attr | simplistic_reexport.py:16:12:16:24 | ControlFlowNode for Str |
167-
| simplistic_reexport | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
168-
| simplistic_reexport | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
169-
| simplistic_reexport | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
170-
| simplistic_reexport | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
171-
| trace | __all__ | trace.py:52:11:52:46 | ControlFlowNode for List |
172-
| trace | _indent_level | trace.py:3:17:3:17 | ControlFlowNode for IntegerLiteral |
173-
| trace | _print | trace.py:5:10:5:14 | ControlFlowNode for print |
174-
| trace | _status | trace.py:21:11:21:11 | ControlFlowNode for IntegerLiteral |
175-
| trace | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
176-
| trace | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
177-
| trace | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
178-
| trace | print | trace.py:7:1:7:27 | ControlFlowNode for FunctionExpr |
179-
| trace | print_function | trace.py:1:24:1:37 | ControlFlowNode for ImportMember |
180-
| trace | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |

python/ql/test/experimental/import-resolution/ModuleExport.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ import semmle.python.dataflow.new.internal.ImportResolution
55
from Module m, string name, DataFlow::Node defn
66
where
77
ImportResolution::module_export(m, name, defn) and
8-
exists(m.getLocation().getFile().getRelativePath())
8+
exists(m.getLocation().getFile().getRelativePath()) and
9+
not defn.getScope() = any(Module trace | trace.getName() = "trace")
910
select m.getName(), name, defn

0 commit comments

Comments
 (0)