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

Commitd98acac

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 parentc2b1ecb commitd98acac

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
@@ -65,7 +65,7 @@ def recreate_tx_config():
6565
)
6666
)
6767
forresourceinresources:
68-
slug=resource['slug']
68+
slug=resource.slug
6969
name=RESOURCE_NAME_MAP.get(slug,slug)
7070
ifslug=='0':
7171
continue
@@ -94,6 +94,15 @@ def recreate_tx_config():
9494
)
9595

9696

97+
@dataclass
98+
classResource:
99+
slug:str
100+
101+
@classmethod
102+
deffrom_api_v3_entry(cls,data:dict)->Self:
103+
returncls(slug=data['attributes']['slug'])
104+
105+
97106
@dataclass
98107
classResourceLanguageStatistics:
99108
name:str
@@ -113,7 +122,7 @@ def from_api_v3_entry(cls, data: dict) -> Self:
113122
)
114123

115124

116-
def_get_resources():
125+
def_get_from_api_v3_with_cursor(url:str,params:dict):
117126
fromrequestsimportget
118127

119128
resources= []
@@ -125,19 +134,32 @@ def _get_resources():
125134
transifex_api_key=os.getenv('TX_TOKEN')
126135
whileTrue:
127136
response=get(
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 {}),
137+
url,
138+
params=params| ({'page[cursor]':cursor}ifcursorelse {}),
132139
headers={'Authorization':f'Bearer{transifex_api_key}'}
133140
)
134141
response.raise_for_status()
135142
response_json=response.json()
136143
response_list=response_json['data']
137144
resources.extend(response_list)
138-
if'next'notinresponse_json['links']:
145+
ifnotresponse_json['links'].get('next'):# for stats no key, for list resources null
139146
break
140147
cursor=unquote(search('page\[cursor]=([^&]*)',response_json['links']['next']).group(1))
148+
returnresources
149+
150+
151+
def_get_resources():
152+
resources=_get_from_api_v3_with_cursor(
153+
'https://rest.api.transifex.com/resources', {'filter[project]':f'o:python-doc:p:{PROJECT_SLUG}'}
154+
)
155+
return [Resource.from_api_v3_entry(entry)forentryinresources]
156+
157+
158+
def_get_resource_language_stats():
159+
resources=_get_from_api_v3_with_cursor(
160+
'https://rest.api.transifex.com/resource_language_stats',
161+
{'filter[project]':f'o:python-doc:p:{PROJECT_SLUG}','filter[language]':f'l:{LANGUAGE}'}
162+
)
141163
return [ResourceLanguageStatistics.from_api_v3_entry(entry)forentryinresources]
142164

143165

@@ -163,9 +185,9 @@ def language_switcher(entry):
163185
defaverage(averages,weights):
164186
returnsum([a*wfora,winzip(averages,weights)])/sum(weights)
165187

166-
resources=_get_resources()
188+
resources=_get_resource_language_stats()
167189
filtered=list(filter(language_switcher,resources))
168-
average_list= [e.translated_words/e.total_wordsforeinfiltered]
190+
average_list= [e.translated_strings/e.total_stringsforeinfiltered]
169191
weights_list= [e.total_wordsforeinfiltered]
170192

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

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp