File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -940,6 +940,11 @@ impl Rules {
940940
941941 Py :: new ( py, rules_iter)
942942 }
943+
944+ /// Returns a list of modules imported by the rules.
945+ fn imports ( & self ) -> PyResult < Vec < & str > > {
946+ Ok ( self . inner . rules . imports ( ) . collect ( ) )
947+ }
943948}
944949
945950fn scan_results_to_py (
Original file line number Diff line number Diff line change @@ -375,3 +375,15 @@ def test_rules_iterator():
375375 assert len (rules_list ) == 2
376376 assert rules_list [0 ].identifier == 'foo'
377377 assert rules_list [1 ].identifier == 'bar'
378+
379+
380+ def test_rules_imports ():
381+ rules = yara_x .compile ('''
382+ import "pe"
383+ import "elf"
384+ rule test {
385+ condition:
386+ true
387+ }
388+ ''' )
389+ assert rules .imports () == ["pe" , "elf" ]
Original file line number Diff line number Diff line change @@ -383,6 +383,12 @@ class Rules:
383383 """
384384 ...
385385
386+ def imports (self ) -> list [str ]:
387+ r"""
388+ Returns a list of modules imported by the rules.
389+ """
390+ ...
391+
386392 def serialize_into (self , file : BinaryIO ) -> None :
387393 r"""
388394 Serializes the rules into a file-like object.
You can’t perform that action at this time.
0 commit comments