Commit Graph

38 Commits

Author SHA1 Message Date
Andrej730 f03afb20f3 validate.py - black format 2024-04-02 15:45:42 +05:00
Thomas Krijnen 81b4e42ca2 Use schema_identifier for schema and express rule validation. See #3126 2023-10-12 10:37:44 +02:00
Thomas Krijnen a2bb015c79 Update validate.py - catch some runtime errors 2023-08-30 13:48:31 +02:00
Thomas Krijnen f0bb19d48d Fixes to validation of selected simple type / enum 2023-04-13 13:16:48 +02:00
Thomas Krijnen 352d6b5ef9 Attempt load schema from cwd (IS THIS DANGEROUS?) 2023-04-10 20:31:56 +02:00
Thomas Krijnen 33415fa1af #2685 Fix AttributeError 2023-04-07 16:02:11 +02:00
Thomas Krijnen 5fcfbac4a3 Update validate.py 2023-03-19 13:24:27 +01:00
Thomas Krijnen 00b18f67cf #2685 indeterminate upper bound formatting 2023-03-19 12:46:15 +01:00
Dion Moult 147602e107 Fix bug where ifcopenshell express rule validator required a logger with set_state. 2023-02-20 11:26:09 +11:00
Thomas Krijnen 31cf1127a6 Validation output enhancements 2023-02-14 20:55:14 +01:00
Thomas Krijnen 0b4b45b7c8 Validate bounds of non-aggregate inverses 2023-02-12 15:28:14 +01:00
Thomas Krijnen 791076df2d invalid escape sequence 2023-01-11 13:20:44 +01:00
Dion Moult 839a00c2a8 Run black on validation, lazy-load _pytest.assertion so that it isn't a hard dependency for non-express rule validation. 2023-01-05 20:54:17 +11:00
Thomas Krijnen 0f9c84c1ce Feature: express rules (#2662)
* temp reasonable state, missing rule_head contents

* better state, with init() and rule_id, but some missing parameters

* performance; embed root in dict; fix lookup

* Add ast_utils

* Fixes related to listnode and typo

* First steps with code gen

* Finalize first steps towards working code generation

* Backwards compat

* Rule execution, error formatting, test cases

* Where rule: support indexing, more expressions, test plane angle measure

* positive length measure test cases

* Venture into entity rules, test actor role

* Fixed for not unary op and address test cases

* Test group qualifier and air terminal type

* typeof() implementation and test annotation curve occ

* Flexible handling of expression, type set intersection, IfcAnnotationSurface test cases

* Functions, derived attrs, fix branch order, allow to terminate branches, apply -1 to index

* Implement express query(), test cases for 2x3 bspline curve

* Function args, if-else, repeat, entity instance construction, cshape test cases

* Multiple function call arguments and other small but influential changes. IfcDotProject() almost working except for variable case

* Make lowercase and fix assignment to qualified lhs

* Entity instance schema without file, aggregate assignment workaround, range fix, lowercase instance locals, extruded area direction test cases

* Enumeration item handling, query() robustness, arbitrary profile test cases

* Empty aggregate_initializer, xor and instance equality, nested expression fix in IfcCrossProduct, axis2-3d test cases

* Numeric stable sort with indices greater then 10, get ast node parent, redeclared derived support, nested expression robustness, define entity functions, case statements, xor, mod, bool literals, nvl, unknown, conversion based unit test cases

* Safeguard for schema name case norm, case norm query variable_id

* free instance comparison, supertype serialization fix, include inherited attributes in locals, proper elif-else in case stmt, loindex, shape rep test cases

* Union operator on set, retain general_aggr_types in parse tree, test cases for property set

* Escape stmt, rule locals and statements

* Return calculated values for redeclared derived attributes

* fix for rules without stmt, add derived and inverse attributes to locals, filter unused locals, wrap exists() arg with lambda to catch indexerror, support repeated aggr init element, typeof() none check, enum namespace uppercase

* Regen 2x3 rules

* Rule test filter only on basename

* Update fixtures for compliance with full body of rules

* Add rule support to ifcopenshell.validate

* Implement usedin() function, test cases for IfcWallSC MLS

* blength

* Run code generation on all schemas

* Try to eliminate runtime pyparsing dep

* Try to eliminate runtime pyparsing dep
2022-12-26 11:29:32 +01:00
Thomas Krijnen ff2b79a41f Distinguish between nil and derived in validate.py 2022-11-23 13:45:44 +01:00
Thomas Krijnen 0446fca56a --json --spf option in validate.py 2022-10-10 14:25:45 +02:00
Thomas Krijnen fa6bbf2d4a A bunch of not so pretty validate.py performance improvements 2022-10-04 15:16:34 +02:00
Thomas Krijnen c57e5e2100 Capture lower level errors in validate.py reported in C++ 2022-10-03 14:19:29 +02:00
Thomas Krijnen 8f2b32532c validate.py text result formatting improvements 2022-05-09 11:00:04 +02:00
Dion Moult f0a00cbc94 #2185 Set up auto generated API reference documentation via sphinx-autoapi 2022-05-09 15:35:52 +10:00
Dion Moult 810c71dfa2 IfcOpenShell-python licensing and black. See #1082. 2022-01-19 12:18:33 +11:00
Roch Bertucat bc430b80f6 Fix Python validate to handle Logical (see #1787) 2021-10-30 13:12:45 +02:00
Dion Moult 865c0f4895 Run black, and add black to a "qa" target to make it a standardised process. 2021-09-09 21:27:31 +10:00
Thomas Krijnen 83d2548978 Validate instance attribute values by catching exceptions 2021-08-12 13:10:16 +02:00
Dion Moult fe3ffb7771 Openings are now placed in their own collection in case they accidentally get placed in the spatial tree 2021-07-24 21:35:27 +10:00
Thomas Krijnen 3eacd809b0 validate() docstring 2021-02-24 14:06:48 +01:00
Thomas Krijnen 4fb65199b8 Validate: better handling of boxed enum 2021-02-14 17:32:08 +01:00
Thomas Krijnen 08576e28d6 fixed boxed enum validation 2021-02-14 17:23:16 +01:00
Thomas Krijnen 500467b3a8 Fix json logger on validator for arg formatting 2021-01-30 21:58:27 +01:00
htlcnn 286c77e3b0 black ifcopenshell-python 2020-11-02 08:28:02 +11:00
htlcnn 5e844682ea unformat log messages 2020-10-29 09:15:07 +11:00
Thomas Krijnen aa49db07d3 Validate entity is_abstract in ifcopenshell.geom.validate 2020-10-27 11:41:39 +01:00
Thomas Krijnen 1e3dc6ba16 Update validate.py 2020-08-30 15:21:21 +02:00
Thomas Krijnen b31caf3310 --json option for validate command line usage 2020-08-30 13:01:16 +02:00
Dion Moult d5d36f85be Change exception to error log 2020-03-30 10:20:15 +02:00
Dion Moult f921b6a7e7 Make validate module write to logger 2020-03-30 10:20:15 +02:00
Thomas Krijnen 60073da049 Update validate.py 2019-10-22 10:49:07 +02:00
Thomas Krijnen 91d10a1465 Provide basic validation utility in Python 2019-04-03 14:41:25 +02:00