Commit Graph

153 Commits

Author SHA1 Message Date
Dion Moult 19a1d88970 Fix all ty diagnostics on ifcviewer-wgpu (ci-lint ty-ios + ty-bonsai)
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>
2026-07-27 19:14:39 +10:00
Andrej730 136ae52c8e file.get_inverse: document with_attribute_indices overload
(cherry picked from commit 1b1da821f1)
2026-07-25 23:15:23 +10:00
Andrej730 018695a2a9 file.ctor: use swig shadowing 2026-07-24 21:50:49 +05:00
Andrej730 3efb2c2d5f Fix ruff complaints 2026-07-22 19:01:49 +05:00
Thomas Krijnen 98ff457fd6 Continue work on plug-in and tests 2026-05-06 21:17:57 +02:00
Thomas Krijnen 89c66f62bf Python import fixes: import from wrapper now which inherits from mixins 2026-04-21 21:59:02 +02:00
Thomas Krijnen 91ae631c7d Merge remote-tracking branch 'origin/v0.8.0' into datamodel-v1.0 2026-04-18 20:15:28 +02:00
Thomas Krijnen 742bfac144 _remove, schema_identifier and test_file 2026-01-15 14:13:29 +01:00
Thomas Krijnen cf3393b6a0 black 2026-01-14 14:09:40 +01:00
Thomas Krijnen 9e165319e6 Fix schema passing to file creation 2026-01-14 14:02:48 +01:00
Thomas Krijnen 136befde86 Fix write() call 2026-01-14 14:01:39 +01:00
Thomas Krijnen 1a4d750ecd Consistency of get_inverse calls 2026-01-14 14:00:50 +01:00
Thomas Krijnen 0a5dd78774 Fix add entity with id 2026-01-14 14:00:00 +01:00
Thomas Krijnen 94427ebcb3 Allow setting of history and future 2026-01-14 13:59:26 +01:00
Thomas Krijnen 0a9e29ce45 black 2026-01-10 11:52:08 +01:00
Thomas Krijnen b66b04b001 Remove usage of .wrapped_item and some other fixes 2026-01-10 11:01:18 +01:00
Thomas Krijnen 5c9213426f Hacks and fixes to get python code back in reasonable state 2026-01-10 10:21:09 +01:00
Thomas Krijnen ae79996eb6 Fix running of test/tests.py 2026-01-08 11:49:29 +01:00
Thomas Krijnen 7098beb819 Work towards v1.0 data model with encapsulated weak_ptr as basis for instances 2026-01-05 21:42:01 +01:00
Andrej730 13be6ccd45 Sort imports 2025-12-19 18:53:14 +05:00
Andrej730 aeed371888 ifcopenshell.file - add todo notes for temp workarounds, make workaround more explicit 2025-11-04 19:24:22 +05:00
Thomas Krijnen 459aad54aa Black 2025-10-26 10:17:49 +01:00
Dion Moult e5ae19fd34 See #7291. Temporary workaround whilst segfaults are sorted. 2025-10-26 19:36:41 +11:00
Thomas Krijnen 806aa14bd0 Compatibility for older builds 2025-10-25 21:55:06 +02:00
Thomas Krijnen 80066ba9e7 Different hack for allowing f.header.file_description.file.header.file_description.file 2025-10-25 21:54:42 +02:00
Thomas Krijnen 0494bd9677 Option to bypass storing types when opening model 2025-10-24 12:06:59 +02:00
Thomas Krijnen 92f9d5f506 Writing .ifcxml is not supported #7181 2025-10-02 20:28:17 +02:00
Dion Moult ceac85ca02 Temporarily revert to old build behaviour since new builds are failing. 2025-09-29 11:00:59 +10:00
Thomas Krijnen c661bb62ca Rework header access in exception handling 2025-09-15 12:01:13 +02:00
Thomas Krijnen 6ec12fe7c7 :Revert "Temporary Python 3.9 compatibility"
This reverts commit 0aae57620f.
2025-09-11 18:38:07 +02:00
Thomas Krijnen 62295beab2 Run black 2025-09-09 13:26:01 +02:00
Thomas Krijnen a0b93265c2 Rocksdb storage -- ifcopenshell.file compatibility 2025-09-09 13:25:32 +02:00
Thomas Krijnen 6ac95e1ed3 Access to underlying storage model in python 2025-09-04 16:47:56 +02:00
Thomas Krijnen f43ddf2cd5 Defer execution of error details 2025-08-31 15:51:34 +02:00
Thomas Krijnen dfaa8d510c authorisation -> authorization in header schema for compatibility 2025-08-29 16:08:42 +02:00
Andrej730 53e9837858 fix file_dict typing (126accd6a) 2025-08-18 19:46:59 +05:00
Thomas Krijnen 0088f3933f Keep ruff happy 2025-08-16 14:07:11 +02:00
Thomas Krijnen 126accd6a2 Track ifcopenshell.file creation time for unique iden 2025-08-16 13:33:10 +02:00
Andrej730 176c5cc0fb typing 2025-06-13 19:33:29 +05:00
Andrej 02d359d0e6 Fix Ruff UP035 (also deprecated annotation symbols) 2025-06-09 18:03:19 +05:00
Andrej 5a211c67eb black . 2025-06-04 19:04:30 +05:00
Thomas Krijnen 0aae57620f Temporary Python 3.9 compatibility 2025-06-02 08:42:47 +02:00
Andrej a42a95adcb Fix Ruff UP037 (quoted-annotation)
https://docs.astral.sh/ruff/rules/quoted-annotation/
2025-05-28 18:24:11 +05:00
Martin15135215 697b034c22 Add annotation for file.header 2025-05-26 13:52:29 +10:00
Andrej730 5a7a368169 ifcopenshell.file.Transaction - add static typing 2025-05-08 15:41:34 +05:00
Andrej730 64df82a76b ifcopenshell.file - save last failed transaction for introspection 2025-05-07 18:54:57 +05:00
Andrej730 b0f2785e99 black . 2025-05-06 11:11:07 +05:00
Geert Hesselink d401e4c948 set set/get_description, add view_definitions & tests 2025-05-05 16:18:09 +02:00
Geert Hesselink cbe8fc1ebd mvd info to module, add testing, setattr & getattr 2025-05-05 16:18:09 +02:00
Geert Hesselink 9f11568aff Allow for dots in mvd value 2025-05-05 16:18:09 +02:00