Skip to content

Commit 40b47fc

Browse files
joke1196sonartech
authored andcommitted
SONARPY-3326 Rule S7713: Tensor operations should rely on automatic broadcasting instead of manual expansion (#527)
GitOrigin-RevId: 8b5329ecaa75e53bc192280bd0a71cc166573506
1 parent b72a122 commit 40b47fc

13 files changed

Lines changed: 147 additions & 125 deletions

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torch.protobuf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ torch.Size@
2525
indexD
2626
Union[builtins.int,None]
2727
builtins.int" builtins.int
28-
None ��
28+
None ��
2929
Tensor torch.Tensor"*SonarPythonAnalyzerFakeStub.CustomStubBase*t
3030
shapetorch.Tensor.shape"
3131

@@ -209,7 +209,17 @@ torch.Size
209209
start_dim
210210
UnboundType[int] *#
211211
end_dim
212-
UnboundType[int] *p
212+
UnboundType[int] *�
213+
expandtorch.Tensor.expand"
214+
torch.Tensor" torch.Tensor*&
215+
self
216+
torch.Tensor" torch.Tensor*a
217+
sizesV
218+
"Union[torch.Size,UnboundType[int]]
219+
220+
torch.Size"
221+
torch.Size
222+
UnboundType[int] *p
213223
__getitem__torch.Tensor.__getitem__"
214224
torch.Tensor" torch.Tensor*
215225
torch.Tensor" torch.Tensor* 
@@ -940,15 +950,7 @@ new_tensortorch.Tensor.new_tensor"
940950
None *'
941951

942952
pin_memory
943-
UnboundType[bool] *�
944-
flattentorch.Tensor.flatten"
945-
torch.Tensor" torch.Tensor*&
946-
self
947-
torch.Tensor" torch.Tensor*%
948-
start_dim
949-
UnboundType[int] *#
950-
end_dim
951-
UnboundType[int] 2�
953+
UnboundType[bool] 2�
952954
requires_gradtorch.Tensor.requires_grad�
953955
requires_gradtorch.Tensor.requires_grad"
954956
builtins.bool"builtins.bool*&

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torchvision.models.detection._utils.protobuf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
#torchvision.models.detection._utils��
2+
#torchvision.models.detection._utils��
33
Tensor torch.Tensor"*SonarPythonAnalyzerFakeStub.CustomStubBase*t
44
shapetorch.Tensor.shape"
55

@@ -183,7 +183,17 @@ torch.Size
183183
start_dim
184184
UnboundType[int] *#
185185
end_dim
186-
UnboundType[int] *p
186+
UnboundType[int] *�
187+
expandtorch.Tensor.expand"
188+
torch.Tensor" torch.Tensor*&
189+
self
190+
torch.Tensor" torch.Tensor*a
191+
sizesV
192+
"Union[torch.Size,UnboundType[int]]
193+
194+
torch.Size"
195+
torch.Size
196+
UnboundType[int] *p
187197
__getitem__torch.Tensor.__getitem__"
188198
torch.Tensor" torch.Tensor*
189199
torch.Tensor" torch.Tensor* 
@@ -914,15 +924,7 @@ new_tensortorch.Tensor.new_tensor"
914924
None *'
915925

916926
pin_memory
917-
UnboundType[bool] *�
918-
flattentorch.Tensor.flatten"
919-
torch.Tensor" torch.Tensor*&
920-
self
921-
torch.Tensor" torch.Tensor*%
922-
start_dim
923-
UnboundType[int] *#
924-
end_dim
925-
UnboundType[int] 2�
927+
UnboundType[bool] 2�
926928
requires_gradtorch.Tensor.requires_grad�
927929
requires_gradtorch.Tensor.requires_grad"
928930
builtins.bool"builtins.bool*&

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torchvision.models.detection.anchor_utils.protobuf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
tensors9torchvision.models.detection.image_list.ImageList.tensors
2222
AnyrU
2323
image_sizes=torchvision.models.detection.image_list.ImageList.image_sizes
24-
Any��
24+
Any��
2525
Tensor torch.Tensor"*SonarPythonAnalyzerFakeStub.CustomStubBase*t
2626
shapetorch.Tensor.shape"
2727

@@ -205,7 +205,17 @@ torch.Size
205205
start_dim
206206
UnboundType[int] *#
207207
end_dim
208-
UnboundType[int] *p
208+
UnboundType[int] *�
209+
expandtorch.Tensor.expand"
210+
torch.Tensor" torch.Tensor*&
211+
self
212+
torch.Tensor" torch.Tensor*a
213+
sizesV
214+
"Union[torch.Size,UnboundType[int]]
215+
216+
torch.Size"
217+
torch.Size
218+
UnboundType[int] *p
209219
__getitem__torch.Tensor.__getitem__"
210220
torch.Tensor" torch.Tensor*
211221
torch.Tensor" torch.Tensor* 
@@ -936,15 +946,7 @@ new_tensortorch.Tensor.new_tensor"
936946
None *'
937947

938948
pin_memory
939-
UnboundType[bool] *�
940-
flattentorch.Tensor.flatten"
941-
torch.Tensor" torch.Tensor*&
942-
self
943-
torch.Tensor" torch.Tensor*%
944-
start_dim
945-
UnboundType[int] *#
946-
end_dim
947-
UnboundType[int] 2�
949+
UnboundType[bool] 2�
948950
requires_gradtorch.Tensor.requires_grad�
949951
requires_gradtorch.Tensor.requires_grad"
950952
builtins.bool"builtins.bool*&

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torchvision.models.detection.backbone_utils.protobuf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ transforms.torchvision.models._api.WeightsEnum.transforms*
4242
__annotations__Atorchvision.models._utils.IntermediateLayerGetter.__annotations__
4343
AnyrY
4444
return_layers?torchvision.models._utils.IntermediateLayerGetter.return_layers
45-
Any��
45+
Any��
4646
Tensor torch.Tensor"*SonarPythonAnalyzerFakeStub.CustomStubBase*t
4747
shapetorch.Tensor.shape"
4848

@@ -226,7 +226,17 @@ torch.Size
226226
start_dim
227227
UnboundType[int] *#
228228
end_dim
229-
UnboundType[int] *p
229+
UnboundType[int] *�
230+
expandtorch.Tensor.expand"
231+
torch.Tensor" torch.Tensor*&
232+
self
233+
torch.Tensor" torch.Tensor*a
234+
sizesV
235+
"Union[torch.Size,UnboundType[int]]
236+
237+
torch.Size"
238+
torch.Size
239+
UnboundType[int] *p
230240
__getitem__torch.Tensor.__getitem__"
231241
torch.Tensor" torch.Tensor*
232242
torch.Tensor" torch.Tensor* 
@@ -957,15 +967,7 @@ new_tensortorch.Tensor.new_tensor"
957967
None *'
958968

959969
pin_memory
960-
UnboundType[bool] *�
961-
flattentorch.Tensor.flatten"
962-
torch.Tensor" torch.Tensor*&
963-
self
964-
torch.Tensor" torch.Tensor*%
965-
start_dim
966-
UnboundType[int] *#
967-
end_dim
968-
UnboundType[int] 2�
970+
UnboundType[bool] 2�
969971
requires_gradtorch.Tensor.requires_grad�
970972
requires_gradtorch.Tensor.requires_grad"
971973
builtins.bool"builtins.bool*&

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torchvision.models.detection.generalized_rcnn.protobuf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
-torchvision.models.detection.generalized_rcnn��
2+
-torchvision.models.detection.generalized_rcnn��
33
Tensor torch.Tensor"*SonarPythonAnalyzerFakeStub.CustomStubBase*t
44
shapetorch.Tensor.shape"
55

@@ -183,7 +183,17 @@ torch.Size
183183
start_dim
184184
UnboundType[int] *#
185185
end_dim
186-
UnboundType[int] *p
186+
UnboundType[int] *�
187+
expandtorch.Tensor.expand"
188+
torch.Tensor" torch.Tensor*&
189+
self
190+
torch.Tensor" torch.Tensor*a
191+
sizesV
192+
"Union[torch.Size,UnboundType[int]]
193+
194+
torch.Size"
195+
torch.Size
196+
UnboundType[int] *p
187197
__getitem__torch.Tensor.__getitem__"
188198
torch.Tensor" torch.Tensor*
189199
torch.Tensor" torch.Tensor* 
@@ -914,15 +924,7 @@ new_tensortorch.Tensor.new_tensor"
914924
None *'
915925

916926
pin_memory
917-
UnboundType[bool] *�
918-
flattentorch.Tensor.flatten"
919-
torch.Tensor" torch.Tensor*&
920-
self
921-
torch.Tensor" torch.Tensor*%
922-
start_dim
923-
UnboundType[int] *#
924-
end_dim
925-
UnboundType[int] 2�
927+
UnboundType[bool] 2�
926928
requires_gradtorch.Tensor.requires_grad�
927929
requires_gradtorch.Tensor.requires_grad"
928930
builtins.bool"builtins.bool*&

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torchvision.models.detection.image_list.protobuf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
'torchvision.models.detection.image_list��
2+
'torchvision.models.detection.image_list��
33
Tensor torch.Tensor"*SonarPythonAnalyzerFakeStub.CustomStubBase*t
44
shapetorch.Tensor.shape"
55

@@ -183,7 +183,17 @@ torch.Size
183183
start_dim
184184
UnboundType[int] *#
185185
end_dim
186-
UnboundType[int] *p
186+
UnboundType[int] *�
187+
expandtorch.Tensor.expand"
188+
torch.Tensor" torch.Tensor*&
189+
self
190+
torch.Tensor" torch.Tensor*a
191+
sizesV
192+
"Union[torch.Size,UnboundType[int]]
193+
194+
torch.Size"
195+
torch.Size
196+
UnboundType[int] *p
187197
__getitem__torch.Tensor.__getitem__"
188198
torch.Tensor" torch.Tensor*
189199
torch.Tensor" torch.Tensor* 
@@ -914,15 +924,7 @@ new_tensortorch.Tensor.new_tensor"
914924
None *'
915925

916926
pin_memory
917-
UnboundType[bool] *�
918-
flattentorch.Tensor.flatten"
919-
torch.Tensor" torch.Tensor*&
920-
self
921-
torch.Tensor" torch.Tensor*%
922-
start_dim
923-
UnboundType[int] *#
924-
end_dim
925-
UnboundType[int] 2�
927+
UnboundType[bool] 2�
926928
requires_gradtorch.Tensor.requires_grad�
927929
requires_gradtorch.Tensor.requires_grad"
928930
builtins.bool"builtins.bool*&

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torchvision.models.detection.roi_heads.protobuf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
&torchvision.models.detection.roi_heads��
2+
&torchvision.models.detection.roi_heads��
33
Tensor torch.Tensor"*SonarPythonAnalyzerFakeStub.CustomStubBase*t
44
shapetorch.Tensor.shape"
55

@@ -183,7 +183,17 @@ torch.Size
183183
start_dim
184184
UnboundType[int] *#
185185
end_dim
186-
UnboundType[int] *p
186+
UnboundType[int] *�
187+
expandtorch.Tensor.expand"
188+
torch.Tensor" torch.Tensor*&
189+
self
190+
torch.Tensor" torch.Tensor*a
191+
sizesV
192+
"Union[torch.Size,UnboundType[int]]
193+
194+
torch.Size"
195+
torch.Size
196+
UnboundType[int] *p
187197
__getitem__torch.Tensor.__getitem__"
188198
torch.Tensor" torch.Tensor*
189199
torch.Tensor" torch.Tensor* 
@@ -914,15 +924,7 @@ new_tensortorch.Tensor.new_tensor"
914924
None *'
915925

916926
pin_memory
917-
UnboundType[bool] *�
918-
flattentorch.Tensor.flatten"
919-
torch.Tensor" torch.Tensor*&
920-
self
921-
torch.Tensor" torch.Tensor*%
922-
start_dim
923-
UnboundType[int] *#
924-
end_dim
925-
UnboundType[int] 2�
927+
UnboundType[bool] 2�
926928
requires_gradtorch.Tensor.requires_grad�
927929
requires_gradtorch.Tensor.requires_grad"
928930
builtins.bool"builtins.bool*&

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torchvision.models.detection.rpn.protobuf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ image_listf
9090
tensors9torchvision.models.detection.image_list.ImageList.tensors
9191
AnyrU
9292
image_sizes=torchvision.models.detection.image_list.ImageList.image_sizes
93-
Any��
93+
Any��
9494
Tensor torch.Tensor"*SonarPythonAnalyzerFakeStub.CustomStubBase*t
9595
shapetorch.Tensor.shape"
9696

@@ -274,7 +274,17 @@ torch.Size
274274
start_dim
275275
UnboundType[int] *#
276276
end_dim
277-
UnboundType[int] *p
277+
UnboundType[int] *�
278+
expandtorch.Tensor.expand"
279+
torch.Tensor" torch.Tensor*&
280+
self
281+
torch.Tensor" torch.Tensor*a
282+
sizesV
283+
"Union[torch.Size,UnboundType[int]]
284+
285+
torch.Size"
286+
torch.Size
287+
UnboundType[int] *p
278288
__getitem__torch.Tensor.__getitem__"
279289
torch.Tensor" torch.Tensor*
280290
torch.Tensor" torch.Tensor* 
@@ -1005,15 +1015,7 @@ new_tensortorch.Tensor.new_tensor"
10051015
None *'
10061016

10071017
pin_memory
1008-
UnboundType[bool] *�
1009-
flattentorch.Tensor.flatten"
1010-
torch.Tensor" torch.Tensor*&
1011-
self
1012-
torch.Tensor" torch.Tensor*%
1013-
start_dim
1014-
UnboundType[int] *#
1015-
end_dim
1016-
UnboundType[int] 2�
1018+
UnboundType[bool] 2�
10171019
requires_gradtorch.Tensor.requires_grad�
10181020
requires_gradtorch.Tensor.requires_grad"
10191021
builtins.bool"builtins.bool*&

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torchvision.models.detection.transform.protobuf

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
tensors9torchvision.models.detection.image_list.ImageList.tensors
2222
AnyrU
2323
image_sizes=torchvision.models.detection.image_list.ImageList.image_sizes
24-
Any��
24+
Any��
2525
Tensor torch.Tensor"*SonarPythonAnalyzerFakeStub.CustomStubBase*t
2626
shapetorch.Tensor.shape"
2727

@@ -205,7 +205,17 @@ torch.Size
205205
start_dim
206206
UnboundType[int] *#
207207
end_dim
208-
UnboundType[int] *p
208+
UnboundType[int] *�
209+
expandtorch.Tensor.expand"
210+
torch.Tensor" torch.Tensor*&
211+
self
212+
torch.Tensor" torch.Tensor*a
213+
sizesV
214+
"Union[torch.Size,UnboundType[int]]
215+
216+
torch.Size"
217+
torch.Size
218+
UnboundType[int] *p
209219
__getitem__torch.Tensor.__getitem__"
210220
torch.Tensor" torch.Tensor*
211221
torch.Tensor" torch.Tensor* 
@@ -936,15 +946,7 @@ new_tensortorch.Tensor.new_tensor"
936946
None *'
937947

938948
pin_memory
939-
UnboundType[bool] *�
940-
flattentorch.Tensor.flatten"
941-
torch.Tensor" torch.Tensor*&
942-
self
943-
torch.Tensor" torch.Tensor*%
944-
start_dim
945-
UnboundType[int] *#
946-
end_dim
947-
UnboundType[int] 2�
949+
UnboundType[bool] 2�
948950
requires_gradtorch.Tensor.requires_grad�
949951
requires_gradtorch.Tensor.requires_grad"
950952
builtins.bool"builtins.bool*&

0 commit comments

Comments
 (0)