feat: integrate SimpleCADAPI 2.0.2 CAD workflows

This commit is contained in:
Jerry
2026-08-03 11:17:05 +08:00
parent b5738e9109
commit c3a0f269b7
481 changed files with 110229 additions and 12826 deletions
+41 -1
View File
@@ -101,6 +101,10 @@ class TestAutoDocsGenPathResolution(unittest.TestCase):
with tempfile.TemporaryDirectory() as tmp_dir:
package_root = Path(tmp_dir) / "src/simplecadapi"
package_root.mkdir(parents=True, exist_ok=True)
backend_root = package_root / "translator/freecad_translator"
backend_root.mkdir(parents=True)
(backend_root / "api.py").write_text("", encoding="utf-8")
(backend_root / "translator.py").write_text("", encoding="utf-8")
resolved = auto_docs_gen._default_source_files(package_root)
@@ -108,11 +112,12 @@ class TestAutoDocsGenPathResolution(unittest.TestCase):
self.assertIn("serializer.py", resolved_names)
self.assertIn("graph.py", resolved_names)
self.assertIn("expr.py", resolved_names)
self.assertIn("tolerance.py", resolved_names)
self.assertIn("sketch.py", resolved_names)
self.assertIn("math.py", resolved_names)
self.assertIn("translator/freecad_translator/api.py", resolved_names)
self.assertIn(
"translator/freecad_translator/script_translator.py",
"translator/freecad_translator/translator.py",
resolved_names,
)
@@ -295,6 +300,41 @@ def fit_cubic_bspline_control_points(sample_points, *, tolerance=1e-3):
readme,
)
def test_generate_markdown_includes_physical_units_category(self):
with tempfile.TemporaryDirectory() as tmp_dir:
tmp_path = Path(tmp_dir)
init_file = tmp_path / "__init__.py"
init_file.write_text(
"__all__ = ['Dimension', 'convert_value']\n", encoding="utf-8"
)
source_file = tmp_path / "units.py"
source_file.write_text(
'''
class Dimension:
"""Physical dimension."""
def convert_value(value, from_unit, to_unit):
"""Convert compatible units."""
return value
'''.strip()
+ "\n",
encoding="utf-8",
)
output_dir = tmp_path / "docs/api"
generator = auto_docs_gen.APIDocumentGenerator(
source_files=[source_file], output_dirs=[output_dir], quiet=True
)
generator.extract_apis()
generator.generate_markdown_docs()
readme = (output_dir / "README.md").read_text(encoding="utf-8")
self.assertIn("## Physical Units", readme)
self.assertIn("[Dimension](Dimension.md)", readme)
self.assertIn("[convert_value](convert_value.md)", readme)
def test_generate_stdlib_markdown_uses_stdlib_index_and_import_surface(self):
with tempfile.TemporaryDirectory() as tmp_dir:
tmp_path = Path(tmp_dir)