@@ -2637,6 +2637,116 @@ private module StdlibPrivate {
2637
2637
nodeTo .( UrllibParseUrlsplitCall ) .getUrl ( ) = nodeFrom
2638
2638
}
2639
2639
}
2640
+
2641
+ // ---------------------------------------------------------------------------
2642
+ // tempfile
2643
+ // ---------------------------------------------------------------------------
2644
+ /**
2645
+ * A call to `tempfile.mkstemp`.
2646
+ *
2647
+ * See https://docs.python.org/3/library/tempfile.html#tempfile.mkstemp
2648
+ */
2649
+ private class TempfileMkstempCall extends FileSystemAccess:: Range , DataFlow:: CallCfgNode {
2650
+ TempfileMkstempCall ( ) { this = API:: moduleImport ( "tempfile" ) .getMember ( "mkstemp" ) .getACall ( ) }
2651
+
2652
+ override DataFlow:: Node getAPathArgument ( ) {
2653
+ result in [
2654
+ this .getArg ( 0 ) , this .getArgByName ( "suffix" ) , this .getArg ( 1 ) , this .getArgByName ( "prefix" ) ,
2655
+ this .getArg ( 2 ) , this .getArgByName ( "dir" )
2656
+ ]
2657
+ }
2658
+ }
2659
+
2660
+ /**
2661
+ * A call to `tempfile.NamedTemporaryFile`.
2662
+ *
2663
+ * See https://docs.python.org/3/library/tempfile.html#tempfile.NamedTemporaryFile
2664
+ */
2665
+ private class TempfileNamedTemporaryFileCall extends FileSystemAccess:: Range ,
2666
+ DataFlow:: CallCfgNode {
2667
+ TempfileNamedTemporaryFileCall ( ) {
2668
+ this = API:: moduleImport ( "tempfile" ) .getMember ( "NamedTemporaryFile" ) .getACall ( )
2669
+ }
2670
+
2671
+ override DataFlow:: Node getAPathArgument ( ) {
2672
+ result in [
2673
+ this .getArg ( 4 ) , this .getArgByName ( "suffix" ) , this .getArg ( 5 ) , this .getArgByName ( "prefix" ) ,
2674
+ this .getArg ( 6 ) , this .getArgByName ( "dir" )
2675
+ ]
2676
+ }
2677
+ }
2678
+
2679
+ /**
2680
+ * A call to `tempfile.TemporaryFile`.
2681
+ *
2682
+ * See https://docs.python.org/3/library/tempfile.html#tempfile.TemporaryFile
2683
+ */
2684
+ private class TempfileTemporaryFileCall extends FileSystemAccess:: Range , DataFlow:: CallCfgNode {
2685
+ TempfileTemporaryFileCall ( ) {
2686
+ this = API:: moduleImport ( "tempfile" ) .getMember ( "TemporaryFile" ) .getACall ( )
2687
+ }
2688
+
2689
+ override DataFlow:: Node getAPathArgument ( ) {
2690
+ result in [
2691
+ this .getArg ( 4 ) , this .getArgByName ( "suffix" ) , this .getArg ( 5 ) , this .getArgByName ( "prefix" ) ,
2692
+ this .getArg ( 6 ) , this .getArgByName ( "dir" )
2693
+ ]
2694
+ }
2695
+ }
2696
+
2697
+ /**
2698
+ * A call to `tempfile.SpooledTemporaryFile`.
2699
+ *
2700
+ * See https://docs.python.org/3/library/tempfile.html#tempfile.SpooledTemporaryFile
2701
+ */
2702
+ private class TempfileSpooledTemporaryFileCall extends FileSystemAccess:: Range ,
2703
+ DataFlow:: CallCfgNode {
2704
+ TempfileSpooledTemporaryFileCall ( ) {
2705
+ this = API:: moduleImport ( "tempfile" ) .getMember ( "SpooledTemporaryFile" ) .getACall ( )
2706
+ }
2707
+
2708
+ override DataFlow:: Node getAPathArgument ( ) {
2709
+ result in [
2710
+ this .getArg ( 5 ) , this .getArgByName ( "suffix" ) , this .getArg ( 6 ) , this .getArgByName ( "prefix" ) ,
2711
+ this .getArg ( 7 ) , this .getArgByName ( "dir" )
2712
+ ]
2713
+ }
2714
+ }
2715
+
2716
+ /**
2717
+ * A call to `tempfile.mkdtemp`.
2718
+ *
2719
+ * See https://docs.python.org/3/library/tempfile.html#tempfile.mkdtemp
2720
+ */
2721
+ private class TempfileMkdtempCall extends FileSystemAccess:: Range , DataFlow:: CallCfgNode {
2722
+ TempfileMkdtempCall ( ) { this = API:: moduleImport ( "tempfile" ) .getMember ( "mkdtemp" ) .getACall ( ) }
2723
+
2724
+ override DataFlow:: Node getAPathArgument ( ) {
2725
+ result in [
2726
+ this .getArg ( 0 ) , this .getArgByName ( "suffix" ) , this .getArg ( 1 ) , this .getArgByName ( "prefix" ) ,
2727
+ this .getArg ( 2 ) , this .getArgByName ( "dir" )
2728
+ ]
2729
+ }
2730
+ }
2731
+
2732
+ /**
2733
+ * A call to `tempfile.TemporaryDirectory`.
2734
+ *
2735
+ * See https://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectory
2736
+ */
2737
+ private class TempfileTemporaryDirectoryCall extends FileSystemAccess:: Range ,
2738
+ DataFlow:: CallCfgNode {
2739
+ TempfileTemporaryDirectoryCall ( ) {
2740
+ this = API:: moduleImport ( "tempfile" ) .getMember ( "TemporaryDirectory" ) .getACall ( )
2741
+ }
2742
+
2743
+ override DataFlow:: Node getAPathArgument ( ) {
2744
+ result in [
2745
+ this .getArg ( 0 ) , this .getArgByName ( "suffix" ) , this .getArg ( 1 ) , this .getArgByName ( "prefix" ) ,
2746
+ this .getArg ( 2 ) , this .getArgByName ( "dir" )
2747
+ ]
2748
+ }
2749
+ }
2640
2750
}
2641
2751
2642
2752
// ---------------------------------------------------------------------------
0 commit comments