@@ -10,25 +10,24 @@ def get_docstring_args(fd, file_name, func_name, class_name=None):
1010 Extract docstring parameters from function definition
1111 """
1212 docstring = ast .get_docstring (fd )
13- if len (re .findall (r"Parameters" , docstring )) != 1 :
13+ if docstring is None or len (re .findall (r"Parameters" , docstring )) != 1 :
1414 msg = "Missing required 'Parameters' section in docstring in \n "
1515 msg += f"file: { file_name } \n "
1616 if class_name is not None :
1717 msg += f"class: { class_name } \n "
1818 msg += f"function/method: { func_name } \n "
1919 raise RuntimeError (msg )
20- if class_name is None and len (re .findall (r"Returns" , docstring )) != 1 :
20+ if len (re .findall (r"Returns" , docstring )) != 1 :
2121 msg = "Missing required 'Returns' section in docstring in \n "
2222 msg += f"file: { file_name } \n "
23+ if class_name is not None :
24+ msg += f"class: { class_name } \n "
2325 msg += f"function/method: { func_name } \n "
2426 raise RuntimeError (msg )
2527
26- if class_name is None :
27- params_section = re .findall (
28- r"(?<=Parameters)(.*)(?=Returns)" , docstring , re .DOTALL
29- )[0 ]
30- else :
31- params_section = re .findall (r"(?<=Parameters)(.*)" , docstring , re .DOTALL )[0 ]
28+ params_section = re .findall (
29+ r"(?<=Parameters)(.*)(?=Returns)" , docstring , re .DOTALL
30+ )[0 ]
3231
3332 args = re .findall (r"(\w+)\s+\:" , params_section )
3433 args = set ([a for a in args if a != "i" ]) # `i` should never be a parameter
@@ -47,7 +46,7 @@ def check_args(doc_args, sig_args, file_name, func_name, class_name=None):
4746 """
4847 Compare docstring arguments and signature argments
4948 """
50- diff_args = signature_args .difference (docstring_args )
49+ diff_args = sig_args .difference (doc_args )
5150 if len (diff_args ) > 0 :
5251 msg = "Found one or more arguments/parameters with missing docstring in \n "
5352 msg += f"file: { file_name } \n "
@@ -57,7 +56,7 @@ def check_args(doc_args, sig_args, file_name, func_name, class_name=None):
5756 msg += f"parameter(s): { diff_args } \n "
5857 raise RuntimeError (msg )
5958
60- diff_args = docstring_args .difference (signature_args )
59+ diff_args = doc_args .difference (sig_args )
6160 if len (diff_args ) > 0 :
6261 msg = "Found one or more unsupported arguments/parameters with docstring in \n "
6362 msg += f"file: { file_name } \n "
0 commit comments