1414@nox .session (name = "dependencies-check" , python = False )
1515def dependency_check (session : Session ) -> None :
1616 content = Path (PROJECT_CONFIG .root , "pyproject.toml" ).read_text ()
17- dependencies = DependenciesCheck (content ).parse ()
17+ dependencies = Dependencies (content ).parse ()
1818 console = rich .console .Console ()
19- if dependencies .illegal ():
20- dependencies .report_illegal (console )
19+ illegal = dependencies .illegal ()
20+ report_illegal (illegal , console )
21+ if illegal :
2122 sys .exit (1 )
22- dependencies .report_illegal (console )
23- sys .exit (0 )
2423
2524
26- class DependenciesCheck :
25+ class Dependencies :
2726 ILLEGAL_DEPENDENCIES = ['url' , 'git' , 'path' ]
2827
2928 def __init__ (self , pyproject_toml : str ):
3029 self .illegal_dict : Dict [str , List [str ]] = {}
3130 self .content = pyproject_toml
3231
33- def parse (self ) -> "DependenciesCheck " :
34- def source_filter (version , filters ) -> bool :
35- for f in filters :
32+ def parse (self ) -> "Dependencies " :
33+ def source_filter (version ) -> bool :
34+ for f in self . ILLEGAL_DEPENDENCIES :
3635 if f in version :
3736 return True
3837 return False
3938
40- def extract_dependencies (section , filters ) -> List [str ]:
39+ def extract_dependencies (section ) -> List [str ]:
4140 dependencies = []
4241 for name , version in section .items ():
43- if source_filter (version , filters ):
42+ if source_filter (version ):
4443 dependencies .append (f"{ name } = { version } " )
4544 return dependencies
4645
@@ -49,36 +48,37 @@ def extract_dependencies(section, filters) -> List[str]:
4948 poetry = toml .get ("tool" , {}).get ("poetry" , {})
5049
5150 part = poetry .get ("dependencies" , {})
52- dependencies_list = extract_dependencies (part , self . ILLEGAL_DEPENDENCIES )
51+ dependencies_list = extract_dependencies (part )
5352 if dependencies_list :
5453 illegal ["tool.poetry.dependencies" ] = dependencies_list
5554
5655 part = poetry .get ("dev" , {}).get ("dependencies" , {})
57- dependencies_list = extract_dependencies (part , self . ILLEGAL_DEPENDENCIES )
56+ dependencies_list = extract_dependencies (part )
5857 if dependencies_list :
5958 illegal ["tool.poetry.dev.dependencies" ] = dependencies_list
6059
6160 part = poetry .get ("group" , {})
6261 for group , content in part .items ():
63- dependencies_list = extract_dependencies (content .get ("dependencies" , {}), self . ILLEGAL_DEPENDENCIES )
62+ dependencies_list = extract_dependencies (content .get ("dependencies" , {}))
6463 if dependencies_list :
6564 illegal [f"tool.poetry.group.{ group } .dependencies" ] = dependencies_list
6665
6766 self .illegal_dict = illegal
6867 return self
6968
70- def report_illegal (self , console : rich .console .Console ):
71- if self .illegal_dict :
72- count = sum (len (deps ) for deps in self .illegal_dict .values ())
73- suffix = "y" if count == 1 else "ies"
74- console .print (f"{ count } illegal dependenc{ suffix } \n " , style = "red" )
75- for section , dependencies in self .illegal_dict .items ():
76- console .print (f"\\ [{ section } ]" , style = "red" )
77- for dependency in dependencies :
78- console .print (dependency , style = "red" )
79- console .print ("" )
80- else :
81- console .print ("Success: All dependencies refer to explicit pipy releases." , style = "green" )
82-
8369 def illegal (self ) -> Dict [str , List [str ]]:
8470 return self .illegal_dict
71+
72+
73+ def report_illegal (illegal : Dict [str , List [str ]], console : rich .console .Console ):
74+ if illegal :
75+ count = sum (len (deps ) for deps in illegal .values ())
76+ suffix = "y" if count == 1 else "ies"
77+ console .print (f"{ count } illegal dependenc{ suffix } \n " , style = "red" )
78+ for section , dependencies in illegal .items ():
79+ console .print (f"\\ [{ section } ]" , style = "red" )
80+ for dependency in dependencies :
81+ console .print (dependency , style = "red" )
82+ console .print ("" )
83+ else :
84+ console .print ("Success: All dependencies refer to explicit pipy releases." , style = "green" )
0 commit comments