Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
a0ca525
Handle Applicability correctly and add support for Skipped Entities i…
mike-finopsorg Dec 24, 2025
1260420
bumpversion
mike-finopsorg Dec 24, 2025
4cbf473
update model rules from FOCUS
mike-finopsorg Dec 24, 2025
6fbc7ba
Handle issues in web report correctly,
mike-finopsorg Jan 22, 2026
864570b
Bump version in pyproiject.toml
mike-finopsorg Jan 22, 2026
df3e6e9
Tidy up tests to pass
mike-finopsorg Jan 22, 2026
96951c8
be a little more flexible with performance test
mike-finopsorg Jan 22, 2026
629feb9
fix Incompatible types in assignment
mike-finopsorg Jan 22, 2026
64e72b8
fix Incompatible types in assignment
mike-finopsorg Jan 22, 2026
3d14e7d
Correct handling of parent conditions in the CheckDistinctCountGenerator
mike-finopsorg Jan 28, 2026
0c4974d
Tidy up typing for DependencyRef object
mike-finopsorg Feb 5, 2026
97b1972
Tidy up linting
mike-finopsorg Feb 5, 2026
20807db
Patched the version management to handle the newer method FOCUS is us…
mike-finopsorg Feb 25, 2026
18ba94c
Clean up for lint checks
mike-finopsorg Feb 25, 2026
53a0453
Update json loader to return extra data need to avoid duplicate JSON …
mike-finopsorg Feb 26, 2026
d9051e1
Fix so newest match wins
mike-finopsorg Feb 26, 2026
45d1f28
Updated model file is needed for github unittests to run
mike-finopsorg Feb 26, 2026
9bf159f
fix tests to work with locally available 1.2 version of the model
mike-finopsorg Feb 26, 2026
03b5a8d
Merge main into dev - keep dev version 2.0.2
mike-finopsorg Feb 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 2.0.1
current_version = 2.0.2
commit = True
tag = True
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\-(?P<release>(rc|dev))(?P<build>\d+))?
Expand Down
6 changes: 3 additions & 3 deletions focus_validator/config_objects/json_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,14 +129,14 @@ def load_json_rules_with_dependencies_and_types(
focus_dataset: Optional[str] = "",
filter_rules: Optional[str] = None,
applicability_criteria_list: Optional[List[str]] = None,
) -> Tuple[ValidationPlan, Dict[str, str]]:
) -> Tuple[ValidationPlan, Dict[str, str], Dict[str, Any]]:
"""
Load CR JSON, build the dependency graph with RuleDependencyResolver,
select relevant rules, and return both an execution-ready ValidationPlan
(parents preserved, topo-ordered nodes + layers) and a column type mapping.

Returns:
Tuple of (ValidationPlan, Dict[column_name, pandas_dtype])
Tuple of (ValidationPlan, Dict[column_name, pandas_dtype], Dict[model_data])
"""
model_data = JsonLoader.load_json_rules(json_rule_file)

Expand Down Expand Up @@ -227,4 +227,4 @@ def load_json_rules_with_dependencies_and_types(
exec_ctx=None, # supply a runtime context later if you want gated edges
)

return val_plan, column_types
return val_plan, column_types, model_data
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"Details": {
"ModelVersion": "1.2",
"ModelVersion": "1.2.0.1",
"FOCUSVersion": "1.2"
},
"ApplicabilityCriteria": {
Expand Down Expand Up @@ -9713,7 +9713,7 @@
},
"Condition": {
"CheckFunction": "CheckNotValue",
"CheckCondition": "ResourceId",
"ColumnName": "ResourceId",
"Value": null
},
"Dependencies": [
Expand Down Expand Up @@ -12674,7 +12674,7 @@
"MustSatisfy": "CommitmentDiscountStatus MUST be null when CommitmentDiscountId is null.",
"Keyword": "MUST",
"Requirement": {
"CheckFunction": "CheckNotValue",
"CheckFunction": "CheckValue",
"ColumnName": "CommitmentDiscountStatus",
"Value": null
},
Expand Down
Loading