Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc2b1ecb

Browse files
committed
Use Transifex API v3 for getting stats
Base on per string calculations for backwards compatibility -- this gives 55.39 today vs 48.01 on per word calculationsOld Transifex API stopped to work on Feb 13 at 10AM CET
1 parentacdf18a commitc2b1ecb

File tree

1 file changed

+39
-14
lines changed

1 file changed

+39
-14
lines changed

‎manage_translation.py

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@
1515
fromargparseimportArgumentParser
1616
fromcollectionsimportCounter
1717
importos
18-
fromreimportmatch
18+
fromdataclassesimportdataclass
19+
fromreimportmatch,search
1920
fromsubprocessimportcall,run
2021
importsys
22+
fromtypingimportSelf
23+
fromurllib.parseimportunquote
2124

2225
LANGUAGE='pl'
2326

@@ -91,29 +94,51 @@ def recreate_tx_config():
9194
)
9295

9396

97+
@dataclass
98+
classResourceLanguageStatistics:
99+
name:str
100+
total_words:int
101+
translated_words:int
102+
total_strings:int
103+
translated_strings:int
104+
105+
@classmethod
106+
deffrom_api_v3_entry(cls,data:dict)->Self:
107+
returncls(
108+
name=search('r:([^:]*)',data['id']).group(1),
109+
total_words=data['attributes']['total_words'],
110+
translated_words=data['attributes']['translated_words'],
111+
total_strings=data['attributes']['total_strings'],
112+
translated_strings=data['attributes']['translated_strings'],
113+
)
114+
115+
94116
def_get_resources():
95117
fromrequestsimportget
96118

97119
resources= []
98-
offset=0
120+
cursor=None
99121
ifos.path.exists('.tx/api-key'):
100122
withopen('.tx/api-key')asf:
101123
transifex_api_key=f.read()
102124
else:
103125
transifex_api_key=os.getenv('TX_TOKEN')
104126
whileTrue:
105127
response=get(
106-
f'https://api.transifex.com/organizations/python-doc/projects/{PROJECT_SLUG}/resources/',
107-
params={'language_code':LANGUAGE,'offset':offset},
108-
auth=('api',transifex_api_key),
128+
'https://rest.api.transifex.com/resource_language_stats',
129+
params={
130+
'filter[project]':f'o:python-doc:p:{PROJECT_SLUG}','filter[language]':f'l:{LANGUAGE}'
131+
}| ({'page[cursor]':cursor}ifcursorelse {}),
132+
headers={'Authorization':f'Bearer{transifex_api_key}'}
109133
)
110134
response.raise_for_status()
111-
response_list=response.json()
135+
response_json=response.json()
136+
response_list=response_json['data']
112137
resources.extend(response_list)
113-
iflen(response_list)<100:
138+
if'next'notinresponse_json['links']:
114139
break
115-
offset+=len(response_list)
116-
returnresources
140+
cursor=unquote(search('page\[cursor]=([^&]*)',response_json['links']['next']).group(1))
141+
return[ResourceLanguageStatistics.from_api_v3_entry(entry)forentryinresources]
117142

118143

119144
def_get_number_of_translators():
@@ -130,18 +155,18 @@ def _get_number_of_translators():
130155
defrecreate_readme():
131156
deflanguage_switcher(entry):
132157
return (
133-
entry['name'].startswith('bugs')
134-
orentry['name'].startswith('tutorial')
135-
orentry['name'].startswith('library--functions')
158+
entry.name.startswith('bugs')
159+
orentry.name.startswith('tutorial')
160+
orentry.name.startswith('library--functions')
136161
)
137162

138163
defaverage(averages,weights):
139164
returnsum([a*wfora,winzip(averages,weights)])/sum(weights)
140165

141166
resources=_get_resources()
142167
filtered=list(filter(language_switcher,resources))
143-
average_list= [e['stats']['translated']['percentage']foreinfiltered]
144-
weights_list= [e['wordcount']foreinfiltered]
168+
average_list= [e.translated_words/e.total_wordsforeinfiltered]
169+
weights_list= [e.total_wordsforeinfiltered]
145170

146171
language_switcher_status=average(average_list,weights=weights_list)*100
147172
number_of_translators=_get_number_of_translators()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp