mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-17 02:49:12 +00:00
19a1d88970
This branch carried v0.8.0's strict `[tool.ty.rules] all = "error"` config but not the source fixes that were made upstream to satisfy it, so both ci-lint ty gates were failing: `poe ty-ios` reported 256 diagnostics and `poe ty-bonsai` 258. Both are now clean. Most fixes are ported from v0.8.0 and follow two idioms: initialise a name before a conditional that may not bind it (plus an `assert` where the invariant is real but not provable), and close an exhaustive `if`/`elif` chain with `else: assert False, <discriminant>`. The branch's own newer accessors are preserved throughout - `.file`, `.declaration`, `file.types()`, `get_max_id()` are kept rather than reverted to `wrapped_data.*`, and non-ty upstream changes (notably the in-progress geometry cache removal) are deliberately not pulled in. Notable fixes that are not straight ports: * ifcopenshell_wrapper.pyi: `entity_instance.file` was declared as `def file(self) -> file`, where the property name shadows the `class file` below it, so the annotation resolved to `Unknown`. Every `element.file` in the codebase was therefore unchecked. Qualifying it to `ifcopenshell.file` restores `.schema` to its Literal union and surfaces no new diagnostics. * model/wall.py: a duplicated merge fragment in the void-straddle path ran an always-true `if void_straddles:` that read `new_opening` from the mutually exclusive branch (stale value, or NameError on the first iteration), followed by an unreachable duplicate `elif`. Removing it makes the file match v0.8.0. * light/operator.py: upstream's own fix unpacks three targets from two values and raises ValueError unconditionally; corrected to `None, None, None`. * assign_system.py, validate.py, geom/main.py: walrus-in-genexp is valid at runtime (PEP 572 binds in the containing scope) but ty does not model it; rewritten as explicit loops, matching upstream. Verified: poe ty-ios, poe ty-bonsai, ruff check src/ nix/, black --check ., and compileall -W error at py3.10 (ifcopenshell-python) and py3.11 (bonsai). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
49 lines
1.0 KiB
TOML
49 lines
1.0 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61.0"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "ifc5d"
|
|
version = "0.0.0"
|
|
authors = [
|
|
{ name="Dion Moult", email="dion@thinkmoult.com" },
|
|
]
|
|
description = "IFC 5D costing library for quantity take-off and schedule production"
|
|
readme = "README.md"
|
|
keywords = ["IFC", "5D", "BIM"]
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
|
|
]
|
|
dependencies = [
|
|
"ifcopenshell",
|
|
"typing_extensions",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
advanced = [
|
|
"typst",
|
|
]
|
|
spreadsheet = [
|
|
"odfpy",
|
|
"openpyxl",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "http://ifcopenshell.org"
|
|
Documentation = "https://docs.ifcopenshell.org"
|
|
Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["ifc5d*"]
|
|
exclude = ["test*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
"*" = ["*.*"]
|
|
|
|
[tool.ruff]
|
|
extend = "../../pyproject.toml"
|
|
lint.select = [
|
|
"F401", # unused imports
|
|
]
|