1- #!/usr/bin/env python3
2-
31"""
42Check lesson files and their contents.
53"""
2927# specially. This list must include all the Markdown files listed in the
3028# 'bin/initialize' script.
3129REQUIRED_FILES = {
32- '%/ CODE_OF_CONDUCT.md' : True ,
33- '%/ CONTRIBUTING.md' : False ,
34- '%/ LICENSE.md' : True ,
35- '%/ README.md' : False ,
36- '%/ _extras/ discuss.md' : True ,
37- '%/ _extras/ guide.md' : True ,
38- '%/ index.md' : True ,
39- '%/ reference.md' : True ,
40- '%/ setup.md' : True ,
30+ 'CODE_OF_CONDUCT.md' : True ,
31+ 'CONTRIBUTING.md' : False ,
32+ 'LICENSE.md' : True ,
33+ 'README.md' : False ,
34+ os . path . join ( ' _extras' , ' discuss.md') : True ,
35+ os . path . join ( ' _extras' , ' guide.md') : True ,
36+ 'index.md' : True ,
37+ 'reference.md' : True ,
38+ 'setup.md' : True ,
4139}
4240
4341# Episode filename pattern.
44- P_EPISODE_FILENAME = re .compile (r'/_episodes/ (\d\d)-[-\w]+.md$' )
42+ P_EPISODE_FILENAME = re .compile (r'(\d\d)-[-\w]+.md$' )
4543
4644# Pattern to match lines ending with whitespace.
4745P_TRAILING_WHITESPACE = re .compile (r'\s+$' )
@@ -272,7 +270,7 @@ def check_fileset(source_dir, reporter, filenames_present):
272270 """Are all required files present? Are extraneous files present?"""
273271
274272 # Check files with predictable names.
275- required = [p . replace ( '%' , source_dir ) for p in REQUIRED_FILES ]
273+ required = [os . path . join ( source_dir , p ) for p in REQUIRED_FILES ]
276274 missing = set (required ) - set (filenames_present )
277275 for m in missing :
278276 reporter .add (None , 'Missing required file {0}' , m )
@@ -282,7 +280,10 @@ def check_fileset(source_dir, reporter, filenames_present):
282280 for filename in filenames_present :
283281 if '_episodes' not in filename :
284282 continue
285- m = P_EPISODE_FILENAME .search (filename )
283+
284+ # split path to check episode name
285+ base_name = os .path .basename (filename )
286+ m = P_EPISODE_FILENAME .search (base_name )
286287 if m and m .group (1 ):
287288 seen .append (m .group (1 ))
288289 else :
@@ -556,7 +557,7 @@ def __init__(self, args, filename, metadata, metadata_len, text, lines, doc):
556557 (re .compile (r'README\.md' ), CheckNonJekyll ),
557558 (re .compile (r'index\.md' ), CheckIndex ),
558559 (re .compile (r'reference\.md' ), CheckReference ),
559- (re .compile (r '_episodes/. *\.md' ), CheckEpisode ),
560+ (re .compile (os . path . join ( '_episodes' , ' *\.md') ), CheckEpisode ),
560561 (re .compile (r'.*\.md' ), CheckGeneric )
561562]
562563
0 commit comments