FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python-docs-pt-br/scripts/tx_stats.py at main · python/python-docs-pt-br · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
python
/
python-docs-pt-br
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
41
Star
162
Code
Issues
13
Pull requests
4
Actions
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
python-docs-pt-br
/
scripts
/
tx_stats.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
executable file
·
87 lines (70 loc) · 2.56 KB
Breadcrumbs
python-docs-pt-br
/
scripts
/
tx_stats.py
Copy path
File metadata and controls
executable file
·
87 lines (70 loc) · 2.56 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
79
80
81
82
83
84
85
86
87
#!/usr/bin/python
"""Print translation percentage to update statistics."""
import
json
import
os
import
configparser
import
urllib
.
request
from
datetime
import
datetime
,
timezone
# Get language and project from environment variables
language
=
os
.
environ
.
get
(
"PYDOC_LANGUAGE"
)
project
=
os
.
environ
.
get
(
"PYDOC_TX_PROJECT"
)
if
language
is
None
:
raise
ValueError
(
"The PYDOC_LANGUAGE environment variable must be set."
)
if
project
is
None
:
raise
ValueError
(
"The PYDOC_TX_PROJECT environment variable must be set."
)
# Try to read API token from TX_TOKEN env and then from ~/.transifexrc
def
get_transifex_token
():
key
=
os
.
environ
.
get
(
"TX_TOKEN"
)
if
key
is
None
:
config
=
configparser
.
ConfigParser
()
config
.
read
(
os
.
path
.
expanduser
(
"~/.transifexrc"
))
try
:
key
=
config
[
"https://www.transifex.com"
][
"token"
]
except
KeyError
:
raise
ValueError
(
"Unable to retrieve Transifex API token."
)
return
key
# API URL setup
url_template
=
(
"https://rest.api.transifex.com/resource_language_stats"
"?filter[project]=o%3Apython-doc%3Ap%3A{project}"
"&filter[language]=l%3A{language}"
)
# Get the authorization key
key
=
get_transifex_token
()
url
=
url_template
.
format
(
project
=
project
,
language
=
language
)
headers
=
{
"accept"
:
"application/vnd.api+json"
,
"authorization"
:
f"Bearer
{
key
}
"
}
# Initialize counters
total_strings
=
0
translated_strings
=
0
# Function to make an API request and handle potential errors
def
fetch_data
(
url
):
request
=
urllib
.
request
.
Request
(
url
=
url
,
headers
=
headers
)
try
:
with
urllib
.
request
.
urlopen
(
request
)
as
response
:
return
json
.
loads
(
response
.
read
().
decode
(
"utf-8"
))
except
urllib
.
error
.
URLError
as
e
:
raise
ConnectionError
(
f"Error fetching data:
{
e
}
"
)
except
json
.
JSONDecodeError
as
e
:
raise
ValueError
(
f"Error decoding JSON response:
{
e
}
"
)
# Fetch and process translation stats
while
url
:
data
=
fetch_data
(
url
)
url
=
data
[
"links"
].
get
(
"next"
)
for
resource
in
data
[
"data"
]:
translated_strings
+=
resource
[
"attributes"
][
"translated_strings"
]
total_strings
+=
resource
[
"attributes"
][
"total_strings"
]
# Calculate translation percentage
if
total_strings
==
0
:
raise
ValueError
(
"Total strings cannot be zero."
)
percentage
=
f"
{
(
translated_strings
/
total_strings
):.2%
}
"
# Print the result as JSON
print
(
json
.
dumps
(
{
"translation"
:
percentage
,
"total"
:
total_strings
,
"updated_at"
:
datetime
.
now
(
timezone
.
utc
).
isoformat
(
timespec
=
"seconds"
)
+
"Z"
,
}
)
)
Back
|
FazBrowse Home
|
New Git URL