diff --git a/docs/api/scene.md b/docs/api/scene.md new file mode 100644 index 00000000..8003c5ba --- /dev/null +++ b/docs/api/scene.md @@ -0,0 +1,14 @@ +# Scene + +Resolving a model's geometry into one frame, without changing the model. + +`get_scene(doc)` returns every surface it could place, in world coordinates with +the building rotation applied, alongside what it could not place and what it did +not attempt. It reads; it does not author, validate or mutate. Writing the +document before and after yields the same bytes. + +The resolution it applies was measured against EnergyPlus's own surface vertex +report rather than reasoned from the input reference, which is why +[`translate_to_world`][idfkit.geometry.translate_to_world] now agrees with it. + +::: idfkit.scene diff --git a/mkdocs.yml b/mkdocs.yml index 68a41db8..ced3b6d0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -115,6 +115,7 @@ nav: - Schema: api/schema.md - Validation: api/validation.md - Geometry: api/geometry.md + - Scene: api/scene.md - Geometry Builders: api/geometry_builders.md - Surface Matching: api/surface_matching.md - Zoning: api/zoning.md diff --git a/pyproject.toml b/pyproject.toml index 615987c2..1983affe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ version = "0.0.0" description = "The unified idfkit documentation site" requires-python = ">=3.12" dependencies = [ - "idfkit==1.0.0-rc.4", + "idfkit==1.0.0-rc.6", ] [tool.uv] @@ -88,7 +88,7 @@ level = "docs-2026.5" # four weather-browser files out of the same one. Pinning it is what keeps the reference and the # assets on a page describing the same version of the library. [tool.idfkit.library] -level = "1.0.0-rc.4" +level = "1.0.0-rc.6" [tool.pyright] pythonVersion = "3.12" diff --git a/scripts/check_engine_assets.py b/scripts/check_engine_assets.py index 382220a7..3af0d2d0 100644 --- a/scripts/check_engine_assets.py +++ b/scripts/check_engine_assets.py @@ -56,7 +56,13 @@ ("static import", re.compile(r"^\s*import\s[^;\n]*['\"][^'\"]*@idfkit/engine", re.M)), ) -TEXT_SUFFIXES = frozenset({".html", ".js", ".css", ".mjs"}) +#: Text the site generates, exempt from the size rule above because their size is a fact about how +#: much documentation there is rather than evidence of a stray binary. `.json` is here for the +#: search index, which mkdocs writes from every page's text and which crossed LARGE_BINARY_BYTES +#: when the scene module gained a reference page: 8.4 MB of prose, reported as a stray binary in +#: the same output that reported zero WebAssembly files. Engine bytes cannot hide here, because +#: BINARY_SUFFIXES catches `.wasm` and `.wat` at any size and the size rule is only a backstop. +TEXT_SUFFIXES = frozenset({".html", ".js", ".css", ".mjs", ".json"}) def hosted_binaries(site: Path) -> list[str]: diff --git a/uv.lock b/uv.lock index 2b911436..f8f6146f 100644 --- a/uv.lock +++ b/uv.lock @@ -610,11 +610,11 @@ wheels = [ [[package]] name = "idfkit" -version = "1.0.0rc4" +version = "1.0.0rc6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/86/66/2659c1064e2c51febb84cbac9b0b597906deea0482dda32fccd0f80d670d/idfkit-1.0.0rc4.tar.gz", hash = "sha256:b3c01f579a4603731fda638c71aef87c95c905c758d3f5ce59a44f96fe06d6a4", size = 14875799, upload-time = "2026-09-08T12:17:31.834Z" } +sdist = { url = "https://files.pythonhosted.org/packages/30/8f/9dcf9a6913b80ba4b86b27ef8b2e9d0bc862f519c22161e5e4cb11408d88/idfkit-1.0.0rc6.tar.gz", hash = "sha256:d3f0f8fa790280864030ed7c664d5a3fdcae1895925a894837c56c1aad38be4d", size = 14907866, upload-time = "2026-09-23T21:53:23.31Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/16/c1d91b84bbc1a53ec629489cca7c272421fcd763260f37198c090347cbfc/idfkit-1.0.0rc4-py3-none-any.whl", hash = "sha256:b71a7cc3ae258026c053c7ff62927971e5d8eb5812c00f7b99be0290ce545e24", size = 14156113, upload-time = "2026-09-08T12:17:34.181Z" }, + { url = "https://files.pythonhosted.org/packages/30/3f/d60f4465f3000029e844d75f005cfbfc133a48313fd552bc2fb9a3f98935/idfkit-1.0.0rc6-py3-none-any.whl", hash = "sha256:b64fd3dd0014f5d0001a0f9173948b3616d41e28f587794ce747a47d2db6ae82", size = 14168160, upload-time = "2026-09-23T21:53:20.698Z" }, ] [[package]] @@ -642,7 +642,7 @@ dev = [ ] [package.metadata] -requires-dist = [{ name = "idfkit", specifier = "==1.0.0rc4" }] +requires-dist = [{ name = "idfkit", specifier = "==1.0.0rc6" }] [package.metadata.requires-dev] dev = [