2424import textwrap
2525from typing import List
2626import warnings
27+ from pathlib import Path
2728
2829from inflect import engine
2930from lxml .etree import tostring
@@ -2113,8 +2114,9 @@ class ProductName(Element):
21132114
21142115
21152116class ArgumentList :
2116- def __init__ (self , list_entry : VarlistEntry , args : List ) -> None :
2117+ def __init__ (self , py_name : str , list_entry : VarlistEntry , args : List ) -> None :
21172118
2119+ self ._py_name = py_name
21182120 self ._list_entry = list_entry
21192121 self ._arguments = []
21202122 self ._initial_args = args
@@ -2137,7 +2139,7 @@ def _parse_list_entry(self):
21372139 def __iadd__ (self , argument_list ):
21382140 for arg in argument_list .arguments :
21392141 arg_name = arg .py_arg_name
2140- if ("," not in arg_name or arg_name == "" ) or (arg_name not in self .py_arg_names ):
2142+ if ("," in arg_name or arg_name == "" ) or (arg_name not in self .py_arg_names ):
21412143 self ._arguments .append (arg )
21422144 return self
21432145
@@ -2148,6 +2150,10 @@ def arguments(self):
21482150 @arguments .setter
21492151 def arguments (self , argument ):
21502152 self ._arguments .append (argument )
2153+
2154+ @property
2155+ def py_name (self ):
2156+ return self ._py_name
21512157
21522158 @property
21532159 def initial_args (self ):
@@ -2449,33 +2455,39 @@ def arg_desc(self) -> List[Argument]:
24492455 for child in elem :
24502456 if isinstance (child , Variablelist ):
24512457 if arguments is None :
2452- arguments = ArgumentList (child , self .args )
2458+ arguments = ArgumentList (self . py_name , child , self .args )
24532459 else :
2454- arguments += ArgumentList (child , self .args )
2455- if self .py_name == "secmodif" :
2456- print (arguments .py_arg_names )
2460+ arguments += ArgumentList (self .py_name , child , self .args )
24572461
24582462 else :
24592463 for elem in refsyn :
24602464 if isinstance (elem , Variablelist ):
24612465 if arguments is None :
2462- arguments = ArgumentList (elem , self .args )
2466+ arguments = ArgumentList (self . py_name , elem , self .args )
24632467 else :
2464- arguments += ArgumentList (elem , self .args )
2465- if self .py_name == "secmodif" :
2466- print ("HERE" )
2467- print (arguments .py_arg_names )
2468-
2469-
2470- # if self.py_name in ["secmodif", "dmat"]:
2471- # print(arguments.initial_args)
2472- # print(arguments.py_arg_names)
2468+ arguments += ArgumentList (self .py_name , elem , self .args )
2469+
24732470 if arguments is not None :
2474- if len (arguments .py_arg_names ) < len (arguments .initial_args ):
2475- for arg in arguments .initial_args :
2476- if arg not in arguments .py_arg_names :
2477- new_arg = Argument (arg , arguments .initial_args , "" )
2478- arguments .arguments .append (new_arg )
2471+ if len (arguments .py_arg_names ) != len (arguments .initial_args ):
2472+ # This function needs a special treatment
2473+ if Path ("args.txt" ).exists ():
2474+ with open ("args.txt" , "r" ) as f :
2475+ for line in f :
2476+ pass
2477+ last_line = line
2478+ else :
2479+ last_line = ""
2480+ with open ("args.txt" , "a" ) as f :
2481+ if last_line != f"{ arguments .py_arg_names } \n " :
2482+ f .write ("--------------------------------------------------\n " )
2483+ f .write (f"{ self .py_name } : { self .group } \n " )
2484+ f .write (f"{ arguments .initial_args } \n " )
2485+ f .write (f"{ arguments .py_arg_names } \n " )
2486+
2487+ # for arg in arguments.initial_args:
2488+ # if arg not in arguments.py_arg_names:
2489+ # new_arg = Argument(arg, arguments.initial_args, "")
2490+ # arguments.arguments.append(new_arg)
24792491
24802492 return arguments .arguments
24812493
0 commit comments