FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python-docs-es/scripts/complete_index.py at fix_create_issue_script · sofide/python-docs-es · GitHub
sofide
/
python-docs-es
Public
forked from
python/python-docs-es
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
0
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
python-docs-es
/
scripts
/
complete_index.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
78 lines (56 loc) · 2.14 KB
Breadcrumbs
python-docs-es
/
scripts
/
complete_index.py
Copy path
File metadata and controls
78 lines (56 loc) · 2.14 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
"""
Script to identify and complete general index entries with original content.
This script processes .po files, identifies out-of-order entries based on the
source order, and completes them with original content.
Usage:
python script_name.py [list of .po files]
If no list of .po files is provided, the script processes all .po files in the
current directory and its immediate subdirectories.
"""
from
pathlib
import
Path
import
sys
import
polib
def
out_of_order_entries
(
po_file
):
"""
Compare the order of source lines against the order in which they appear in
the file, and return a generator with entries that are out of order.
"""
po_entries
=
[
entry
for
entry
in
po_file
if
not
entry
.
obsolete
]
val_max
=
0
for
entry
in
po_entries
:
source_index
=
int
(
entry
.
occurrences
[
0
][
1
])
if
source_index
<=
val_max
:
yield
entry
val_max
=
max
(
val_max
,
source_index
)
def
complete_index
(
po_files
=
None
):
"""
Identifies general index entries based on source order and completes them
with original content.
args:
po_files: List of .po files to process. If not provided, it processes
all .po files in the current directory and immediate subdirectories.
"""
# Read .po files
if
not
po_files
:
po_files
=
Path
(
"."
).
glob
(
"**/*.po"
)
for
po_file_path
in
po_files
:
try
:
po_file
=
polib
.
pofile
(
po_file_path
,
wrapwidth
=
79
)
# Ask to complete entries out of order with original text
needs_save
=
False
for
entry
in
out_of_order_entries
(
po_file
):
user_input
=
input
(
f"
\n
{
entry
}
\n
Is this a index entry? (y/N):"
)
if
user_input
.
lower
()
==
"y"
:
entry
.
msgstr
=
entry
.
msgid
needs_save
=
True
if
needs_save
:
po_file
.
save
()
except
KeyboardInterrupt
:
break
except
Exception
as
e
:
print
(
f"Error! file
{
po_file_path
}
:
{
e
}
\n
"
)
else
:
print
(
f"
\n
---
\n
{
po_file_path
}
processed!
\n
---"
)
if
__name__
==
"__main__"
:
po_files
=
sys
.
argv
[
1
:]
complete_index
(
po_files
)
Back
|
FazBrowse Home
|
New Git URL