22from pathlib import Path , PosixPath
33import sys
44
5+ def enforceOrder (listToBeOrdered ):
6+ for index , post in enumerate (listToBeOrdered ):
7+ if index + 1 != post ['order' ]:
8+ postToBeAltered = frontmatter .load (post ['path' ])
9+ postToBeAltered .metadata ['jupyter' ]['plotly' ]['order' ] = index + 1
10+ frontmatter .dump (postToBeAltered , post ['path' ])
11+
12+ def checkConsecutive (l ):
13+ return sorted (l ) == list (range (1 , len (l )+ 1 ))
14+
515categories = ["file_settings" , "basic" , "statistical" , "scientific" , "maps" , "3d_charts" , "multiple_axes" ]
16+
617try :
718 path = str (sys .argv [1 ])
819except :
1829 if post .metadata ['jupyter' ]['plotly' ]['display_as' ] == category :
1930 postFamily .append ({'path' :str (md_path ), 'order' : post .metadata ['jupyter' ]['plotly' ]['order' ]})
2031
21- sortedPostFamily = sorted ( postFamily , key = lambda i : i [ 'order' ] )
32+ postFamily . append ({ 'path' : 'placeholder' , 'order' : 5 } )
2233
23- order = []
24-
25- for post in sortedPostFamily :
26- if post ['order' ] == 5 :
27- raise Exception ("Order Check Failed! Post {} cannot have order 5!" .format (post ['path' ]))
28- order .append (post ['order' ])
34+ sortedPostFamily = sorted (postFamily , key = lambda i : i ['order' ])
2935
30- print ( order )
36+ order = [ p [ 'order' ] for p in sortedPostFamily ]
3137
3238 if order [0 ] != 1 :
33- raise Exception ("Order Check Failed! First post in {} display_as does not have order 1!" .format (category ))
39+ if len (sys .argv ) == 3 :
40+ if sys .argv [2 ] == 'enforce' :
41+ print ('Order Check Did Not Pass! ENFORCING CORRECT ORDER for {}' .format (category ))
42+ enforceOrder (sortedPostFamily )
43+ else :
44+ raise Exception ("Order Check Failed! First post in {} display_as does not have order 1!" .format (category ))
3445
35- def checkConsecutive (l ):
36- return sorted (l ) == list (range (min (l ), max (l )+ 1 ))
46+
3747
38- try :
39- checkConsecutive (order )
40- except :
41- raise Exception ("Order Check Failed! Orders in {} display_as are not consecutive integers!!" .format (category ))
48+ if not checkConsecutive (order ):
49+ if len (sys .argv ) == 3 :
50+ if sys .argv [2 ] == 'enforce' :
51+ print ('Order Check Did Not Pass! ENFORCING CORRECT ORDER for {}' .format (category ))
52+ enforceOrder (sortedPostFamily )
53+ else :
54+ raise Exception ("Order Check Failed! Order front-matter in '{}' display_as are not consecutive integers!!" .format (category ))
4255
4356 if len (order ) != len (set (order )):
44- raise Exception ("Order Check Failed! {} display_as has duplicate order frontmatter!!" .format (category ))
45-
57+ if len (sys .argv ) == 3 :
58+ if sys .argv [2 ] == 'enforce' :
59+ print ('Order Check Did Not Pass! ENFORCING CORRECT ORDER for {}' .format (category ))
60+ enforceOrder (sortedPostFamily )
61+ else :
62+ raise Exception ("Order Check Failed! {} display_as has duplicate order frontmatter!!" .format (category ))
4663
4764 print ("Order Checks Passed for {} display_as!" .format (category ))
4865 order = []
0 commit comments