Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
wwwanlingxiao
public-apis
Commits
57e288b5
Unverified
Commit
57e288b5
authored
Jan 16, 2022
by
Matheus Felipe
Browse files
Refactor check_alphabetical_order and check_file_format to exist return
parent
d578ba7a
Changes
1
Hide whitespace changes
Inline
Side-by-side
scripts/validate/format.py
View file @
57e288b5
...
...
@@ -19,7 +19,6 @@ index_cors = 4
index_link
=
5
num_segments
=
5
errors
=
[]
title_links
=
[]
anchor_re
=
re
.
compile
(
anchor
+
'\s(.+)'
)
category_title_in_index_re
=
re
.
compile
(
'\*\s\[(.*)\]'
)
...
...
@@ -64,17 +63,21 @@ def get_categories_content(contents: List[str]) -> Tuple[Categories, CategoriesL
return
(
categories
,
category_line_num
)
def
check_alphabetical_order
(
lines
:
List
[
str
])
->
None
:
def
check_alphabetical_order
(
lines
:
List
[
str
])
->
List
[
str
]:
err_msgs
=
[]
categories
,
category_line_num
=
get_categories_content
(
contents
=
lines
)
for
category
,
api_list
in
categories
.
items
():
if
sorted
(
api_list
)
!=
api_list
:
message
=
error_message
(
err_msg
=
error_message
(
category_line_num
[
category
],
f
'
{
category
}
category is not alphabetical order'
)
errors
.
append
(
message
)
err_msgs
.
append
(
err_msg
)
return
err_msgs
def
check_title
(
line_num
:
int
,
raw_title
:
str
)
->
List
[
str
]:
...
...
@@ -182,12 +185,15 @@ def check_entry(line_num: int, segments: List[str]) -> List[str]:
return
err_msgs
def
check_file_format
(
filename
:
str
)
->
None
:
def
check_file_format
(
filename
:
str
)
->
List
[
str
]:
err_msgs
=
[]
with
open
(
filename
,
mode
=
'r'
,
encoding
=
'utf-8'
)
as
file
:
lines
=
list
(
line
.
rstrip
()
for
line
in
file
)
check_alphabetical_order
(
lines
)
alphabetical_err_msgs
=
check_alphabetical_order
(
lines
)
err_msgs
.
extend
(
alphabetical_err_msgs
)
num_in_category
=
min_entries_per_section
+
1
category
=
''
...
...
@@ -204,15 +210,15 @@ def check_file_format(filename: str) -> None:
category_match
=
anchor_re
.
match
(
line_content
)
if
category_match
:
if
category_match
.
group
(
1
)
not
in
title_links
:
message
=
error_message
(
line_num
,
f
'category header (
{
category_match
.
group
(
1
)
}
) not added to Index section'
)
err
or
s
.
append
(
message
)
err_msg
=
error_message
(
line_num
,
f
'category header (
{
category_match
.
group
(
1
)
}
) not added to Index section'
)
err
_msg
s
.
append
(
err_msg
)
else
:
message
=
error_message
(
line_num
,
'category header is not formatted correctly'
)
err
or
s
.
append
(
message
)
err_msg
=
error_message
(
line_num
,
'category header is not formatted correctly'
)
err
_msg
s
.
append
(
err_msg
)
if
num_in_category
<
min_entries_per_section
:
message
=
error_message
(
category_line
,
f
'
{
category
}
category does not have the minimum
{
min_entries_per_section
}
entries (only has
{
num_in_category
}
)'
)
err
or
s
.
append
(
message
)
err_msg
=
error_message
(
category_line
,
f
'
{
category
}
category does not have the minimum
{
min_entries_per_section
}
entries (only has
{
num_in_category
}
)'
)
err
_msg
s
.
append
(
err_msg
)
category
=
line_content
.
split
(
' '
)[
1
]
category_line
=
line_num
...
...
@@ -226,16 +232,18 @@ def check_file_format(filename: str) -> None:
num_in_category
+=
1
segments
=
line_content
.
split
(
'|'
)[
1
:
-
1
]
if
len
(
segments
)
<
num_segments
:
message
=
error_message
(
line_num
,
f
'entry does not have all the required sections (have
{
len
(
segments
)
}
, need
{
num_segments
}
)'
)
err
or
s
.
append
(
message
)
err_msg
=
error_message
(
line_num
,
f
'entry does not have all the required sections (have
{
len
(
segments
)
}
, need
{
num_segments
}
)'
)
err
_msg
s
.
append
(
err_msg
)
continue
for
segment
in
segments
:
# every line segment should start and end with exactly 1 space
if
len
(
segment
)
-
len
(
segment
.
lstrip
())
!=
1
or
len
(
segment
)
-
len
(
segment
.
rstrip
())
!=
1
:
message
=
error_message
(
line_num
,
'each segment must start and end with exactly 1 space'
)
err
or
s
.
append
(
message
)
err_msg
=
error_message
(
line_num
,
'each segment must start and end with exactly 1 space'
)
err
_msg
s
.
append
(
err_msg
)
segments
=
[
segment
.
strip
()
for
segment
in
segments
]
entry_err_msgs
=
check_entry
(
line_num
,
segments
)
errors
.
extend
(
entry_err_msgs
)
err_msgs
.
extend
(
entry_err_msgs
)
return
err_msgs
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment