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

Update to Python 3.12#301

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
Dumeng merged 7 commits intopython:masterfromBlueGlassBlock:master
Aug 3, 2023
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 71 additions & 64 deletions.github/scripts/generate_tx_config.py
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,83 @@
#!/usr/bin/env python3
"""Please note that this script requires a Transifex API token to run."""
import glob
import json
import os
import subprocess
from functools import partial
from pathlib import Path
import re
import sys
import urllib.request
import os

run = partial(subprocess.run, check=True)


def init_project():
run(["tx", "init"])

def list_resources(token, project):
auth_handler = urllib.request.HTTPBasicAuthHandler()
auth_handler.add_password(
realm="api", uri="https://api.transifex.com/", user="api", passwd=token

def add_files(project_name: str):
run(
[
"tx",
"add",
"remote",
"--file-filter",
"trans/<lang>/<resource_slug>.<ext>",
f"https://www.transifex.com/python-doc/{project_name}/dashboard/",
]
)
opener = urllib.request.build_opener(auth_handler)
urllib.request.install_opener(opener)
next_ = (
"https://api.transifex.com/organizations/python-doc/projects/"
+ project
+ "/resources/"


FILTER_PATTERN = re.compile(
r"^(?P<prefix>file_filter( *)=( *))(?P<resource>.+)$", re.MULTILINE
)


def name_replacer(match: re.Match[str]):
prefix, resource = match.group("prefix", "resource")
override_prefix = prefix.replace("file_filter", "trans.zh_CN")
pattern = (
resource.replace("trans/<lang>/", "")
.replace("glossary_", "glossary")
.replace("--", "/")
.replace("_", "?")
)
resources = []
while True:
resp = urllib.request.urlopen(next_)
result = json.loads(resp.read().decode("utf-8"))
resources.extend([i["slug"] for i in result])
link = re.findall('<([^<]*)>; rel="next"', resp.getheader("Link") or "")
if not link:
break
next_ = link[0]
return resources


def render_config(doc_dir, project, resources):
os.chdir(doc_dir)
tpl = """

[{project}.{resource}]
trans.zh_CN = {filename}
source_lang = en
type = PO"""
conf = """[main]
host = https://www.transifex.com"""
for resource in sorted(resources):
if resource == "glossary_":
filename = "glossary.po"
elif resource == "sphinx":
filename = "sphinx.po"
else:
pattern = resource.replace("--", "/").replace("_", "?")
matches = glob.glob(pattern + ".rst")
if len(matches) == 0:
print("missing", resource, file=sys.stderr)
continue
elif len(matches) == 1:
filename = matches[0].replace(".rst", ".po")
else:
print("multi match", resource, pattern, matches, file=sys.stderr)
conf += tpl.format(project=project, resource=resource, filename=filename)
return conf
matches = list(glob.glob(pattern.replace(".po", ".rst")))
if not matches:
print("missing", pattern)
return f"{prefix}{resource}\n{override_prefix}{pattern.replace('?', '_')}"
elif len(matches) == 1:
filename = matches[0].replace(".rst", ".po").replace("\\", "/")
else:
raise ValueError("multi match", resource, pattern, matches)
return f"{prefix}{resource}\n{override_prefix}{filename}"


def patch_config(path: str):
tx_config_path = Path(".tx", "config")

config_content = tx_config_path.read_text("utf-8")

cwd = os.getcwd()
os.chdir(path)
config_content = FILTER_PATTERN.sub(name_replacer, config_content)
os.chdir(cwd)

tx_config_path.write_text(config_content, "utf-8")


if __name__ == "__main__":
import argparse
from argparse import ArgumentParser

parser = ArgumentParser()

parser.add_argument("--token", default="")
parser.add_argument("--project-name", required=True)
parser.add_argument("--doc-path", required=True)

parser = argparse.ArgumentParser()
parser.add_argument("--token")
parser.add_argument("--project")
parser.add_argument("--doc-dir")
args = parser.parse_args()
params = parser.parse_args()

resources = list_resources(args.token, args.project)
conf = render_config(args.doc_dir, args.project, resources)
print(conf)
if params.token:
os.environ["TX_TOKEN"] = params.token

# vim: set et ts=4 sw=4 sts=4:
init_project()
add_files(params.project_name)
patch_config(params.doc_path)
2 changes: 1 addition & 1 deletion.github/scripts/prepare.sh
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,6 @@ git clone --depth=1 --branch="$VERSION" https://github.com/python/cpython cpytho
git clone --branch="$VERSION" https://github.com/"$GITHUB_REPOSITORY" docs

pip3 install --user setuptools
pip3 install --usertransifex-client
curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash
sudo apt-get update
sudo apt-get install -y python3-venv
38 changes: 0 additions & 38 deletions.github/scripts/transifex_pull.py
View file
Open in desktop

This file was deleted.

17 changes: 2 additions & 15 deletions.github/scripts/update.sh
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,5 @@
#!/bin/bash

set -ex

script_dir="$(dirname "$(realpath "$0")")"

if [[ -n "$TRANSIFEX_APIKEY" ]]; then
cat > ~/.transifexrc << EOF
[https://www.transifex.com]
api_hostname = https://api.transifex.com
hostname = https://www.transifex.com
password = $TRANSIFEX_APIKEY
username = api
EOF
fi

tx=$(realpath ./tx)
cd docs || exit 1
"$script_dir"/transifex_pull.py
$tx pull --languages "$LOCALE" -t --use-git-timestamps
2 changes: 1 addition & 1 deletion.github/workflows/python-310.yml
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ jobs:
- name: update
run: .github/scripts/update.sh
env:
TRANSIFEX_APIKEY: ${{ secrets.TRANSIFEX_APIKEY }}
TX_TOKEN: ${{ secrets.TRANSIFEX_APIKEY }}
- name: build
run: .github/scripts/build.sh
- name: commit
Expand Down
29 changes: 29 additions & 0 deletions.github/workflows/python-311.yml
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
name: python-311

on:
push:
branches:
- master
schedule:
- cron: "11 * * * *"

jobs:
sync:
runs-on: ubuntu-latest
env:
LOCALE: zh_CN
VERSION: "3.11"
steps:
- uses: actions/checkout@v2
- name: prepare
run: .github/scripts/prepare.sh
- name: update
run: .github/scripts/update.sh
env:
TX_TOKEN: ${{ secrets.TRANSIFEX_APIKEY }}
- name: build
run: .github/scripts/build.sh
- name: commit
run: .github/scripts/commit.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29 changes: 29 additions & 0 deletions.github/workflows/python-312.yml
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
name: python-312

on:
push:
branches:
- master
schedule:
- cron: "42 * * * *"

jobs:
sync:
runs-on: ubuntu-latest
env:
LOCALE: zh_CN
VERSION: "3.12"
steps:
- uses: actions/checkout@v2
- name: prepare
run: .github/scripts/prepare.sh
- name: update
run: .github/scripts/update.sh
env:
TX_TOKEN: ${{ secrets.TRANSIFEX_APIKEY }}
- name: build
run: .github/scripts/build.sh
- name: commit
run: .github/scripts/commit.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion.github/workflows/python-37.yml
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ jobs:
- name: update
run: .github/scripts/update.sh
env:
TRANSIFEX_APIKEY: ${{ secrets.TRANSIFEX_APIKEY }}
TX_TOKEN: ${{ secrets.TRANSIFEX_APIKEY }}
- name: build
run: .github/scripts/build.sh
- name: commit
Expand Down
2 changes: 1 addition & 1 deletion.github/workflows/python-38.yml
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ jobs:
- name: update
run: .github/scripts/update.sh
env:
TRANSIFEX_APIKEY: ${{ secrets.TRANSIFEX_APIKEY }}
TX_TOKEN: ${{ secrets.TRANSIFEX_APIKEY }}
- name: build
run: .github/scripts/build.sh
- name: commit
Expand Down
2 changes: 1 addition & 1 deletion.github/workflows/python-39.yml
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ jobs:
- name: update
run: .github/scripts/update.sh
env:
TRANSIFEX_APIKEY: ${{ secrets.TRANSIFEX_APIKEY }}
TX_TOKEN: ${{ secrets.TRANSIFEX_APIKEY }}
- name: build
run: .github/scripts/build.sh
- name: commit
Expand Down
18 changes: 14 additions & 4 deletionsREADME.rst
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -12,26 +12,36 @@ Maintained versions:
* - Version
- Sync status
- Translation progress
* - `3.12 <https://github.com/python/python-docs-zh-cn/tree/3.12>`_
- .. image:: https://github.com/python/python-docs-zh-cn/workflows/python-312/badge.svg
:target: https://github.com/python/python-docs-zh-cn/actions?workflow=python-312
- .. image:: https://img.shields.io/badge/dynamic/json.svg?label=zh_CN&query=%24.zh_CN&url=http://gce.zhsj.me/python/312
:target: https://app.transifex.com/python-doc/python-newest/
* - `3.11 <https://github.com/python/python-docs-zh-cn/tree/3.11>`_
- .. image:: https://github.com/python/python-docs-zh-cn/workflows/python-311/badge.svg
:target: https://github.com/python/python-docs-zh-cn/actions?workflow=python-311
- .. image:: https://img.shields.io/badge/dynamic/json.svg?label=zh_CN&query=%24.zh_CN&url=http://gce.zhsj.me/python/311
:target: https://app.transifex.com/python-doc/python-311/
* - `3.10 <https://github.com/python/python-docs-zh-cn/tree/3.10>`_
- .. image:: https://github.com/python/python-docs-zh-cn/workflows/python-310/badge.svg
:target: https://github.com/python/python-docs-zh-cn/actions?workflow=python-310
- .. image:: https://img.shields.io/badge/dynamic/json.svg?label=zh_CN&query=%24.zh_CN&url=http://gce.zhsj.me/python/310
:target: https://www.transifex.com/python-doc/python-39/
:target: https://app.transifex.com/python-doc/python-310/
* - `3.9 <https://github.com/python/python-docs-zh-cn/tree/3.9>`_
- .. image:: https://github.com/python/python-docs-zh-cn/workflows/python-39/badge.svg
:target: https://github.com/python/python-docs-zh-cn/actions?workflow=python-39
- .. image:: https://img.shields.io/badge/dynamic/json.svg?label=zh_CN&query=%24.zh_CN&url=http://gce.zhsj.me/python/39
:target: https://www.transifex.com/python-doc/python-39/
:target: https://app.transifex.com/python-doc/python-39/
* - `3.8 <https://github.com/python/python-docs-zh-cn/tree/3.8>`_
- .. image:: https://github.com/python/python-docs-zh-cn/workflows/python-38/badge.svg
:target: https://github.com/python/python-docs-zh-cn/actions?workflow=python-38
- .. image:: https://img.shields.io/badge/dynamic/json.svg?label=zh_CN&query=%24.zh_CN&url=http://gce.zhsj.me/python/38
:target: https://www.transifex.com/python-doc/python-38/
:target: https://app.transifex.com/python-doc/python-38/
* - `3.7 <https://github.com/python/python-docs-zh-cn/tree/3.7>`_
- .. image:: https://github.com/python/python-docs-zh-cn/workflows/python-37/badge.svg
:target: https://github.com/python/python-docs-zh-cn/actions?workflow=python-37
- .. image:: https://img.shields.io/badge/dynamic/json.svg?label=zh_CN&query=%24.zh_CN&url=http://gce.zhsj.me/python/37
:target: https://www.transifex.com/python-doc/python-37/
:target: https://app.transifex.com/python-doc/python-37/

Documentation Contribution Agreement
------------------------------------
Expand Down

[8]ページ先頭

©2009-2025 Movatter.jp