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

Commit3434f0a

Browse files
committed
Use Transifex API v3 for generating .tx/config
Base on per string calculations for stats in README 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 parente8fee97 commit3434f0a

File tree

1 file changed

+31
-9
lines changed

1 file changed

+31
-9
lines changed

‎manage_translation.py

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def recreate_tx_config():
6161
'host = https://www.transifex.com\n',
6262
))
6363
forresourceinresources:
64-
slug=resource['slug']
64+
slug=resource.slug
6565
name=RESOURCE_NAME_MAP.get(slug,slug)
6666
ifslug=='0':
6767
continue
@@ -86,6 +86,15 @@ def recreate_tx_config():
8686
))
8787

8888

89+
@dataclass
90+
classResource:
91+
slug:str
92+
93+
@classmethod
94+
deffrom_api_v3_entry(cls,data:dict)->Self:
95+
returncls(slug=data['attributes']['slug'])
96+
97+
8998
@dataclass
9099
classResourceLanguageStatistics:
91100
name:str
@@ -105,7 +114,7 @@ def from_api_v3_entry(cls, data: dict) -> Self:
105114
)
106115

107116

108-
def_get_resources():
117+
def_get_from_api_v3_with_cursor(url:str,params:dict):
109118
fromrequestsimportget
110119
resources= []
111120
cursor=None
@@ -116,19 +125,32 @@ def _get_resources():
116125
transifex_api_key=os.getenv('TX_TOKEN')
117126
whileTrue:
118127
response=get(
119-
'https://rest.api.transifex.com/resource_language_stats',
120-
params={
121-
'filter[project]':f'o:python-doc:p:{PROJECT_SLUG}','filter[language]':f'l:{LANGUAGE}'
122-
}| ({'page[cursor]':cursor}ifcursorelse {}),
128+
url,
129+
params=params| ({'page[cursor]':cursor}ifcursorelse {}),
123130
headers={'Authorization':f'Bearer{transifex_api_key}'}
124131
)
125132
response.raise_for_status()
126133
response_json=response.json()
127134
response_list=response_json['data']
128135
resources.extend(response_list)
129-
if'next'notinresponse_json['links']:
136+
ifnotresponse_json['links'].get('next'):# for stats no key, for list resources null
130137
break
131138
cursor=unquote(search('page\[cursor]=([^&]*)',response_json['links']['next']).group(1))
139+
returnresources
140+
141+
142+
def_get_resources():
143+
resources=_get_from_api_v3_with_cursor(
144+
'https://rest.api.transifex.com/resources', {'filter[project]':f'o:python-doc:p:{PROJECT_SLUG}'}
145+
)
146+
return [Resource.from_api_v3_entry(entry)forentryinresources]
147+
148+
149+
def_get_resource_language_stats():
150+
resources=_get_from_api_v3_with_cursor(
151+
'https://rest.api.transifex.com/resource_language_stats',
152+
{'filter[project]':f'o:python-doc:p:{PROJECT_SLUG}','filter[language]':f'l:{LANGUAGE}'}
153+
)
132154
return [ResourceLanguageStatistics.from_api_v3_entry(entry)forentryinresources]
133155

134156

@@ -154,9 +176,9 @@ def language_switcher(entry):
154176
defaverage(averages,weights):
155177
returnsum([a*wfora,winzip(averages,weights)])/sum(weights)
156178

157-
resources=_get_resources()
179+
resources=_get_resource_language_stats()
158180
filtered=list(filter(language_switcher,resources))
159-
average_list= [e.translated_words/e.total_wordsforeinfiltered]
181+
average_list= [e.translated_strings/e.total_stringsforeinfiltered]
160182
weights_list= [e.total_wordsforeinfiltered]
161183

162184
language_switcher_status=average(average_list,weights=weights_list)*100

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp