py2docfx 0.1.9.dev1861949__py3-none-any.whl → 0.1.9.dev1862202__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- py2docfx/__main__.py +15 -1
- py2docfx/convert_prepare/generate_document.py +4 -18
- py2docfx/convert_prepare/tests/test_generate_document.py +53 -0
- {py2docfx-0.1.9.dev1861949.dist-info → py2docfx-0.1.9.dev1862202.dist-info}/METADATA +1 -1
- {py2docfx-0.1.9.dev1861949.dist-info → py2docfx-0.1.9.dev1862202.dist-info}/RECORD +7 -6
- {py2docfx-0.1.9.dev1861949.dist-info → py2docfx-0.1.9.dev1862202.dist-info}/WHEEL +0 -0
- {py2docfx-0.1.9.dev1861949.dist-info → py2docfx-0.1.9.dev1862202.dist-info}/top_level.txt +0 -0
py2docfx/__main__.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
from __future__ import annotations # Avoid A | B annotation break under <= py3.9
|
2
2
|
import argparse
|
3
3
|
import os
|
4
|
+
import subprocess
|
4
5
|
import sys
|
5
6
|
import time
|
6
7
|
|
@@ -240,8 +241,21 @@ def donwload_package_generate_documents(
|
|
240
241
|
end_time = time.time()
|
241
242
|
print(f"<install_package>{package.name},{end_time-start_time}<install_package/>")
|
242
243
|
|
244
|
+
venv_dir = os.path.join(PACKAGE_ROOT, "venv", "0")
|
245
|
+
subprocess.run([sys.executable, "-m", "venv", venv_dir], check=True)
|
246
|
+
venv_exe = os.path.join(venv_dir, "Scripts", "python.exe")
|
247
|
+
subprocess.run([venv_exe, "-m", "pip", "install", "sphinx==6.1.3"], check=True)
|
248
|
+
subprocess.run([venv_exe, "-m", "pip", "install", "setuptools"], check=True)
|
249
|
+
subprocess.run([venv_exe, "-m", "pip", "install", "pyyaml"], check=True)
|
250
|
+
subprocess.run([venv_exe, "-m", "pip", "install", "jinja2==3.0.3"], check=True)
|
251
|
+
if package.version:
|
252
|
+
pkg_install_str = package.name + "==" + package.version
|
253
|
+
else:
|
254
|
+
pkg_install_str = package.name
|
255
|
+
subprocess.run([venv_exe, "-m", "pip", "install", pkg_install_str], check=True)
|
256
|
+
|
243
257
|
start_time = time.time()
|
244
|
-
generate_document(package, output_root)
|
258
|
+
generate_document(package, output_root, venv_exe)
|
245
259
|
end_time = time.time()
|
246
260
|
print(f"<generate_document>{package.name},{end_time-start_time}<generate_document/>")
|
247
261
|
|
@@ -1,9 +1,8 @@
|
|
1
1
|
from __future__ import annotations # Avoid A | B annotation break under <= py3.9
|
2
2
|
import os
|
3
|
-
import subprocess
|
4
3
|
import sys
|
5
4
|
import time
|
6
|
-
|
5
|
+
|
7
6
|
from py2docfx.convert_prepare.generate_conf import generate_conf
|
8
7
|
from py2docfx.convert_prepare.git import checkout
|
9
8
|
from py2docfx.convert_prepare.package_info import PackageInfo
|
@@ -12,7 +11,7 @@ from py2docfx.convert_prepare.subpackage import merge_subpackage_files
|
|
12
11
|
|
13
12
|
CONF_TEMPLATE_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "conf_templates")
|
14
13
|
|
15
|
-
def generate_document(pkg: PackageInfo, output_root: str | os.PathLike):
|
14
|
+
def generate_document(pkg: PackageInfo, output_root: str | os.PathLike, executable=sys.executable):
|
16
15
|
start_time = time.time()
|
17
16
|
# Copy manual written RST from target doc repo
|
18
17
|
package_paths = pkg.path
|
@@ -47,21 +46,8 @@ def generate_document(pkg: PackageInfo, output_root: str | os.PathLike):
|
|
47
46
|
end_time = time.time()
|
48
47
|
print(f"<generate_conf>{pkg.name},{end_time-start_time}<generate_conf/>")
|
49
48
|
|
50
|
-
venv_dir = os.path.join(PACKAGE_ROOT, "venv", "0")
|
51
|
-
subprocess.run([sys.executable, "-m", "venv", venv_dir], check=True)
|
52
|
-
venv_exe = os.path.join(venv_dir, "Scripts", "python.exe")
|
53
|
-
subprocess.run([venv_exe, "-m", "pip", "install", "sphinx==6.1.3"], check=True)
|
54
|
-
subprocess.run([venv_exe, "-m", "pip", "install", "setuptools"], check=True)
|
55
|
-
subprocess.run([venv_exe, "-m", "pip", "install", "pyyaml"], check=True)
|
56
|
-
subprocess.run([venv_exe, "-m", "pip", "install", "jinja2==3.0.3"], check=True)
|
57
|
-
if pkg.version:
|
58
|
-
pkg_install_str = pkg.name + "==" + pkg.version
|
59
|
-
else:
|
60
|
-
pkg_install_str = pkg.name
|
61
|
-
subprocess.run([venv_exe, "-m", "pip", "install", pkg_install_str], check=True)
|
62
|
-
|
63
49
|
start_time = time.time()
|
64
|
-
run_converter(package_paths.doc_folder, package_paths.yaml_output_folder, executable=
|
50
|
+
run_converter(package_paths.doc_folder, package_paths.yaml_output_folder, executable=executable)
|
65
51
|
end_time = time.time()
|
66
52
|
print(f"<run_converter>{pkg.name},{end_time-start_time}<run_converter/>")
|
67
53
|
subpackages_path_record = {}
|
@@ -71,7 +57,7 @@ def generate_document(pkg: PackageInfo, output_root: str | os.PathLike):
|
|
71
57
|
for (subpackage_name, subpackage_path) in subpackages_rst_record.items():
|
72
58
|
subpackage_yaml_path = os.path.join(subpackages_yaml_path, subpackage_name)
|
73
59
|
subpackages_path_record[subpackage_name] = subpackage_yaml_path
|
74
|
-
run_converter(subpackage_path, subpackage_yaml_path, executable=
|
60
|
+
run_converter(subpackage_path, subpackage_yaml_path, executable=executable)
|
75
61
|
|
76
62
|
merge_subpackage_files(subpackages_path_record, package_paths.yaml_output_folder, pkg.name)
|
77
63
|
end_time = time.time()
|
@@ -0,0 +1,53 @@
|
|
1
|
+
"""
|
2
|
+
Test the generate_document function.
|
3
|
+
"""
|
4
|
+
import os
|
5
|
+
import sys
|
6
|
+
import shutil
|
7
|
+
from py2docfx.convert_prepare.generate_document import generate_document
|
8
|
+
from py2docfx.convert_prepare.package_info import PackageInfo
|
9
|
+
from py2docfx.convert_prepare.source import Source
|
10
|
+
|
11
|
+
def test_generate_document(tmp_path):
|
12
|
+
"""
|
13
|
+
Test the generate_document function.
|
14
|
+
"""
|
15
|
+
# init test case
|
16
|
+
source_code_path = "convert_prepare\\tests\\data\\generate_document"
|
17
|
+
output_root = os.path.join(tmp_path, "output")
|
18
|
+
shutil.copytree(source_code_path, os.path.join(tmp_path, "source\\0"))
|
19
|
+
package = PackageInfo()
|
20
|
+
package.name = "azure-dummy-sourcecode"
|
21
|
+
package.exclude_path = ["test*", "example*", "sample*", "doc*"]
|
22
|
+
package.install_type = PackageInfo.InstallType.PYPI
|
23
|
+
package.version = None
|
24
|
+
package.build_in_subpackage = False
|
25
|
+
package.extra_index_url = None
|
26
|
+
package.prefer_source_distribution = False
|
27
|
+
source_folder = os.path.join(tmp_path, "source\\0\\azure-dummy-sourcecode")
|
28
|
+
yaml_output_folder = os.path.join(tmp_path, "yaml_output")
|
29
|
+
package.path = Source(
|
30
|
+
source_folder=source_folder, yaml_output_folder=yaml_output_folder, package_name=package.name
|
31
|
+
)
|
32
|
+
|
33
|
+
# add dummy code to python sys path to simulate installation
|
34
|
+
os.environ["PYTHONPATH"] = os.path.abspath(source_folder)
|
35
|
+
sys.path.insert(0, os.path.abspath(source_folder))
|
36
|
+
|
37
|
+
# add docfx_yaml to python sys path for sphinx build to import
|
38
|
+
sys.path.insert(1, os.path.abspath("docfx_yaml"))
|
39
|
+
|
40
|
+
# call the function
|
41
|
+
generate_document(package, output_root)
|
42
|
+
|
43
|
+
#assert the result
|
44
|
+
yaml_path = os.path.join(yaml_output_folder, "_build\\docfx_yaml")
|
45
|
+
assert os.path.exists(yaml_path)
|
46
|
+
assert os.path.exists(os.path.join(yaml_path, "azure.dummy.sourcecode.foo.foo.yml"))
|
47
|
+
assert os.path.exists(os.path.join(yaml_path, "azure.dummy.sourcecode.boo.boo.yml"))
|
48
|
+
assert os.path.exists(os.path.join(yaml_path, "azure.dummy.sourcecode.foo.foo.Foo.yml"))
|
49
|
+
assert os.path.exists(os.path.join(yaml_path, "azure.dummy.sourcecode.boo.boo.Boo.yml"))
|
50
|
+
assert os.path.exists(os.path.join(yaml_path, "azure.dummy.sourcecode.yml"))
|
51
|
+
assert not os.path.exists(os.path.join(yaml_path, "azure.dummy.yml"))
|
52
|
+
assert not os.path.exists(os.path.join(yaml_path, "azure.yml"))
|
53
|
+
assert os.path.exists(os.path.join(yaml_path, "toc.yml"))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: py2docfx
|
3
|
-
Version: 0.1.9.
|
3
|
+
Version: 0.1.9.dev1862202
|
4
4
|
Summary: A package built based on Sphinx which download source code package and generate yaml files supported by docfx.
|
5
5
|
Author: Microsoft Corporation
|
6
6
|
License: MIT License
|
@@ -1,9 +1,9 @@
|
|
1
1
|
py2docfx/__init__.py,sha256=kPRhPGPC1JknDotkksG428c1iIgfFr_4_7Jm-llrowY,72
|
2
|
-
py2docfx/__main__.py,sha256=
|
2
|
+
py2docfx/__main__.py,sha256=9S3iXVNDrgX2Avhzh7jRTbcS4Jib5Ht9zH4UGGnBP8k,12911
|
3
3
|
py2docfx/convert_prepare/__init__.py,sha256=XxtxrP0kmW3ZBHIAoxsPDEHzcgeC0WSnole8Lk6CjKs,11
|
4
4
|
py2docfx/convert_prepare/environment.py,sha256=AwS4c4OSwVdxlExBLVo310HrVhFMhWQ2Wh9RJPJKH1c,894
|
5
5
|
py2docfx/convert_prepare/generate_conf.py,sha256=wqs6iyElzJarH-20_qEL9zvZvt5xfBMsGXSXPSZy6wg,2295
|
6
|
-
py2docfx/convert_prepare/generate_document.py,sha256=
|
6
|
+
py2docfx/convert_prepare/generate_document.py,sha256=cLfFr7od0RHADkXyh2gaPreXZGvKNBUlduBosYTuPbk,3118
|
7
7
|
py2docfx/convert_prepare/get_source.py,sha256=eEIbfLkGdBSOIJElMBTiXkKlkujb_hdFu5g6InNroTg,5851
|
8
8
|
py2docfx/convert_prepare/git.py,sha256=xGJp2nDWLfVljrxyPnFKPoLIqmBh6by-QdITogIuxi0,5893
|
9
9
|
py2docfx/convert_prepare/install_package.py,sha256=hATmgazcSX7k2n4jQXh9sQMyNUc1k1YqHv5K5UMALq4,262
|
@@ -23,6 +23,7 @@ py2docfx/convert_prepare/post_process/merge_toc.py,sha256=coyae54OB1nGcCkxz9oAu-
|
|
23
23
|
py2docfx/convert_prepare/subpackage_merge/merge_root_package.py,sha256=uK96qL2asuSfo_3SZaoP8XZaUvjf5mNkr17JNbZR4Lg,1026
|
24
24
|
py2docfx/convert_prepare/subpackage_merge/merge_toc.py,sha256=nkVqe8R0m8D6cyTYV7aIpMDXorvn4-LXfU_vIK_hJBg,1706
|
25
25
|
py2docfx/convert_prepare/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
+
py2docfx/convert_prepare/tests/test_generate_document.py,sha256=FpxwyRQFBfEdYUH16tpcJrqTAC0J5mq-Edn-N7Lz0rY,2413
|
26
27
|
py2docfx/convert_prepare/tests/test_get_source.py,sha256=70EVlIZe71aDYDOXMnhqzZclKL8KuIg4t-X0U-pVyhA,7429
|
27
28
|
py2docfx/convert_prepare/tests/test_pack.py,sha256=46JWMNzknIptDVs7D3CuxcmqBr_OKMmaw1br9H7wqco,4134
|
28
29
|
py2docfx/convert_prepare/tests/test_package_info.py,sha256=hdNpAH9hlLF-cX9sKAu3cmiCtphX4USy9G_gWI_iaHo,3883
|
@@ -5330,7 +5331,7 @@ py2docfx/venv/0/Scripts/rst2s5.py,sha256=qup0-LMkBGLuh6Bj-1n8ucEVc5T8ANpqL0Pscmp
|
|
5330
5331
|
py2docfx/venv/0/Scripts/rst2xetex.py,sha256=FNBX2UuBN3vqJQss_DdqjMBSU5BQmOFGLOZV8DSNAuk,905
|
5331
5332
|
py2docfx/venv/0/Scripts/rst2xml.py,sha256=7uyNsZb5QOV243R-EQqdsyUKX7t5_9sQd6LYtw1ZyPA,634
|
5332
5333
|
py2docfx/venv/0/Scripts/rstpep2html.py,sha256=p-PYRUWuvD1LWAzofxrQu_Go3SMfIS8q0pmy6HT2Y5E,702
|
5333
|
-
py2docfx-0.1.9.
|
5334
|
-
py2docfx-0.1.9.
|
5335
|
-
py2docfx-0.1.9.
|
5336
|
-
py2docfx-0.1.9.
|
5334
|
+
py2docfx-0.1.9.dev1862202.dist-info/METADATA,sha256=PWPfdvmRmSpmGVO9kVCsuzcyT2ublC4JGMRJ6EDsWFY,600
|
5335
|
+
py2docfx-0.1.9.dev1862202.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
5336
|
+
py2docfx-0.1.9.dev1862202.dist-info/top_level.txt,sha256=5dH2uP81dczt_qQJ38wiZ-gzoVWasfiJALWRSjdbnYU,9
|
5337
|
+
py2docfx-0.1.9.dev1862202.dist-info/RECORD,,
|
File without changes
|
File without changes
|