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

Commitdf8186d

Browse files
Update to Python 3.12 (#301)
* Update to Python 3.11* Update python-311.yml* Fix transifex cli position* Fix config generation script* Add 3.11 to workflows* chore: update 3.11 links and badges* chore: Add 3.12 to workflow
1 parent4dac60f commitdf8186d

File tree

11 files changed

+150
-126
lines changed

11 files changed

+150
-126
lines changed
Lines changed: 71 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,83 @@
1-
#!/usr/bin/env python3
1+
"""Please note that this script requires a Transifex API token to run."""
22
importglob
3-
importjson
4-
importos
3+
importsubprocess
4+
fromfunctoolsimportpartial
5+
frompathlibimportPath
56
importre
6-
importsys
7-
importurllib.request
7+
importos
8+
9+
run=partial(subprocess.run,check=True)
10+
811

12+
definit_project():
13+
run(["tx","init"])
914

10-
deflist_resources(token,project):
11-
auth_handler=urllib.request.HTTPBasicAuthHandler()
12-
auth_handler.add_password(
13-
realm="api",uri="https://api.transifex.com/",user="api",passwd=token
15+
16+
defadd_files(project_name:str):
17+
run(
18+
[
19+
"tx",
20+
"add",
21+
"remote",
22+
"--file-filter",
23+
"trans/<lang>/<resource_slug>.<ext>",
24+
f"https://www.transifex.com/python-doc/{project_name}/dashboard/",
25+
]
1426
)
15-
opener=urllib.request.build_opener(auth_handler)
16-
urllib.request.install_opener(opener)
17-
next_= (
18-
"https://api.transifex.com/organizations/python-doc/projects/"
19-
+project
20-
+"/resources/"
27+
28+
29+
FILTER_PATTERN=re.compile(
30+
r"^(?P<prefix>file_filter( *)=( *))(?P<resource>.+)$",re.MULTILINE
31+
)
32+
33+
34+
defname_replacer(match:re.Match[str]):
35+
prefix,resource=match.group("prefix","resource")
36+
override_prefix=prefix.replace("file_filter","trans.zh_CN")
37+
pattern= (
38+
resource.replace("trans/<lang>/","")
39+
.replace("glossary_","glossary")
40+
.replace("--","/")
41+
.replace("_","?")
2142
)
22-
resources= []
23-
whileTrue:
24-
resp=urllib.request.urlopen(next_)
25-
result=json.loads(resp.read().decode("utf-8"))
26-
resources.extend([i["slug"]foriinresult])
27-
link=re.findall('<([^<]*)>; rel="next"',resp.getheader("Link")or"")
28-
ifnotlink:
29-
break
30-
next_=link[0]
31-
returnresources
32-
33-
34-
defrender_config(doc_dir,project,resources):
35-
os.chdir(doc_dir)
36-
tpl="""
37-
38-
[{project}.{resource}]
39-
trans.zh_CN = {filename}
40-
source_lang = en
41-
type = PO"""
42-
conf="""[main]
43-
host = https://www.transifex.com"""
44-
forresourceinsorted(resources):
45-
ifresource=="glossary_":
46-
filename="glossary.po"
47-
elifresource=="sphinx":
48-
filename="sphinx.po"
49-
else:
50-
pattern=resource.replace("--","/").replace("_","?")
51-
matches=glob.glob(pattern+".rst")
52-
iflen(matches)==0:
53-
print("missing",resource,file=sys.stderr)
54-
continue
55-
eliflen(matches)==1:
56-
filename=matches[0].replace(".rst",".po")
57-
else:
58-
print("multi match",resource,pattern,matches,file=sys.stderr)
59-
conf+=tpl.format(project=project,resource=resource,filename=filename)
60-
returnconf
43+
matches=list(glob.glob(pattern.replace(".po",".rst")))
44+
ifnotmatches:
45+
print("missing",pattern)
46+
returnf"{prefix}{resource}\n{override_prefix}{pattern.replace('?','_')}"
47+
eliflen(matches)==1:
48+
filename=matches[0].replace(".rst",".po").replace("\\","/")
49+
else:
50+
raiseValueError("multi match",resource,pattern,matches)
51+
returnf"{prefix}{resource}\n{override_prefix}{filename}"
52+
53+
54+
defpatch_config(path:str):
55+
tx_config_path=Path(".tx","config")
56+
57+
config_content=tx_config_path.read_text("utf-8")
58+
59+
cwd=os.getcwd()
60+
os.chdir(path)
61+
config_content=FILTER_PATTERN.sub(name_replacer,config_content)
62+
os.chdir(cwd)
63+
64+
tx_config_path.write_text(config_content,"utf-8")
6165

6266

6367
if__name__=="__main__":
64-
importargparse
68+
fromargparseimportArgumentParser
69+
70+
parser=ArgumentParser()
71+
72+
parser.add_argument("--token",default="")
73+
parser.add_argument("--project-name",required=True)
74+
parser.add_argument("--doc-path",required=True)
6575

66-
parser=argparse.ArgumentParser()
67-
parser.add_argument("--token")
68-
parser.add_argument("--project")
69-
parser.add_argument("--doc-dir")
70-
args=parser.parse_args()
76+
params=parser.parse_args()
7177

72-
resources=list_resources(args.token,args.project)
73-
conf=render_config(args.doc_dir,args.project,resources)
74-
print(conf)
78+
ifparams.token:
79+
os.environ["TX_TOKEN"]=params.token
7580

76-
# vim: set et ts=4 sw=4 sts=4:
81+
init_project()
82+
add_files(params.project_name)
83+
patch_config(params.doc_path)

‎.github/scripts/prepare.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ git clone --depth=1 --branch="$VERSION" https://github.com/python/cpython cpytho
66
git clone --branch="$VERSION" https://github.com/"$GITHUB_REPOSITORY" docs
77

88
pip3 install --user setuptools
9-
pip3 install --usertransifex-client
9+
curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh| bash
1010
sudo apt-get update
1111
sudo apt-get install -y python3-venv

‎.github/scripts/transifex_pull.py‎

Lines changed: 0 additions & 38 deletions
This file was deleted.

‎.github/scripts/update.sh‎

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,5 @@
11
#!/bin/bash
22

3-
set -ex
4-
5-
script_dir="$(dirname"$(realpath"$0")")"
6-
7-
if [[-n"$TRANSIFEX_APIKEY" ]];then
8-
cat>~/.transifexrc<<EOF
9-
[https://www.transifex.com]
10-
api_hostname = https://api.transifex.com
11-
hostname = https://www.transifex.com
12-
password =$TRANSIFEX_APIKEY
13-
username = api
14-
EOF
15-
fi
16-
3+
tx=$(realpath ./tx)
174
cd docs||exit 1
18-
"$script_dir"/transifex_pull.py
5+
$tx pull --languages"$LOCALE" -t --use-git-timestamps

‎.github/workflows/python-310.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
-name:update
2121
run:.github/scripts/update.sh
2222
env:
23-
TRANSIFEX_APIKEY:${{ secrets.TRANSIFEX_APIKEY }}
23+
TX_TOKEN:${{ secrets.TRANSIFEX_APIKEY }}
2424
-name:build
2525
run:.github/scripts/build.sh
2626
-name:commit

‎.github/workflows/python-311.yml‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name:python-311
2+
3+
on:
4+
push:
5+
branches:
6+
-master
7+
schedule:
8+
-cron:"11 * * * *"
9+
10+
jobs:
11+
sync:
12+
runs-on:ubuntu-latest
13+
env:
14+
LOCALE:zh_CN
15+
VERSION:"3.11"
16+
steps:
17+
-uses:actions/checkout@v2
18+
-name:prepare
19+
run:.github/scripts/prepare.sh
20+
-name:update
21+
run:.github/scripts/update.sh
22+
env:
23+
TX_TOKEN:${{ secrets.TRANSIFEX_APIKEY }}
24+
-name:build
25+
run:.github/scripts/build.sh
26+
-name:commit
27+
run:.github/scripts/commit.sh
28+
env:
29+
GITHUB_TOKEN:${{ secrets.GITHUB_TOKEN }}

‎.github/workflows/python-312.yml‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name:python-312
2+
3+
on:
4+
push:
5+
branches:
6+
-master
7+
schedule:
8+
-cron:"42 * * * *"
9+
10+
jobs:
11+
sync:
12+
runs-on:ubuntu-latest
13+
env:
14+
LOCALE:zh_CN
15+
VERSION:"3.12"
16+
steps:
17+
-uses:actions/checkout@v2
18+
-name:prepare
19+
run:.github/scripts/prepare.sh
20+
-name:update
21+
run:.github/scripts/update.sh
22+
env:
23+
TX_TOKEN:${{ secrets.TRANSIFEX_APIKEY }}
24+
-name:build
25+
run:.github/scripts/build.sh
26+
-name:commit
27+
run:.github/scripts/commit.sh
28+
env:
29+
GITHUB_TOKEN:${{ secrets.GITHUB_TOKEN }}

‎.github/workflows/python-37.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
-name:update
2121
run:.github/scripts/update.sh
2222
env:
23-
TRANSIFEX_APIKEY:${{ secrets.TRANSIFEX_APIKEY }}
23+
TX_TOKEN:${{ secrets.TRANSIFEX_APIKEY }}
2424
-name:build
2525
run:.github/scripts/build.sh
2626
-name:commit

‎.github/workflows/python-38.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
-name:update
2121
run:.github/scripts/update.sh
2222
env:
23-
TRANSIFEX_APIKEY:${{ secrets.TRANSIFEX_APIKEY }}
23+
TX_TOKEN:${{ secrets.TRANSIFEX_APIKEY }}
2424
-name:build
2525
run:.github/scripts/build.sh
2626
-name:commit

‎.github/workflows/python-39.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
-name:update
2121
run:.github/scripts/update.sh
2222
env:
23-
TRANSIFEX_APIKEY:${{ secrets.TRANSIFEX_APIKEY }}
23+
TX_TOKEN:${{ secrets.TRANSIFEX_APIKEY }}
2424
-name:build
2525
run:.github/scripts/build.sh
2626
-name:commit

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp