2
2
from pathlib import Path , PosixPath
3
3
import sys
4
4
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
+
5
15
categories = ["file_settings" , "basic" , "statistical" , "scientific" , "maps" , "3d_charts" , "multiple_axes" ]
16
+
6
17
try :
7
18
path = str (sys .argv [1 ])
8
19
except :
18
29
if post .metadata ['jupyter' ]['plotly' ]['display_as' ] == category :
19
30
postFamily .append ({'path' :str (md_path ), 'order' : post .metadata ['jupyter' ]['plotly' ]['order' ]})
20
31
21
- sortedPostFamily = sorted ( postFamily , key = lambda i : i [ 'order' ] )
32
+ postFamily . append ({ 'path' : 'placeholder' , 'order' : 5 } )
22
33
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' ])
29
35
30
- print ( order )
36
+ order = [ p [ 'order' ] for p in sortedPostFamily ]
31
37
32
38
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 ))
34
45
35
- def checkConsecutive (l ):
36
- return sorted (l ) == list (range (min (l ), max (l )+ 1 ))
46
+
37
47
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 ))
42
55
43
56
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 ))
46
63
47
64
print ("Order Checks Passed for {} display_as!" .format (category ))
48
65
order = []
0 commit comments