Skip to content

23750

Compare
Choose a tag to compare
@marcward marcward released this 08 May 16:30
· 12 commits to main since this release

XULE-properties

  • Fix the inline-navigation. The properties did not allow unbound or none values.
  • Fix properties .cube and .effective-weight-network. These properties use the resolve_role() method whch was changed support multiple roles for a role short name. resolve_role() now returns a list instead of a string value. These properties were not updated to handle that
  • Added .to-spreadsheet property. Updated file creating to create excel files.
  • Updated .to-spreadsheet to handle qnames.
    This changed how spreadsheets are stored in Xule. They were the shadow dictionary of the dictionary that the .to-spreadsheet is used on. Now, to-spreadsheet runs through the values. It is probably the more types will need explicit conversion.
  • Update .count to work with dictionaries. Really, I made .count and .length the same. .length already counted dictionaries.
  • Added property .repeat()
  • Added property .sid (semantic hash) for fact.
    This involves a fix to the semanticHash pluging. It incorrectly used the fact.elementQname which for inline documents would be ix:nonFraction. Instead using the fact.qname.
  • fix property 'number' to allow strings.
  • fix property 'contains' when the search item is none for a string.
  • Clean up handling empty strings and none values for contains, index-of and last-index-of
  • Fix typo
  • Added property .denone for sets and lists

XuleProcessor

  • Added .to-spreadsheet property. Updated file creating to create excel files.

  • Updated .to-spreadsheet to handle qnames.
    This changed how spreadsheets are stored in Xule. They were the shadow dictionary of the dictionary that the .to-spreadsheet is used on. Now, to-spreadsheet runs through the values. It is probably the more types will need explicit conversion.

  • Added --xule-output-constants.
    This is a work in progress.
    Need to work out how to override the logger so the message format can be controlled.
    Create JSON format for all the xule tupes. For facts use the OIM as a model, but the SQNames make it difficult since there will need to be a place to capture the namespaces.

  • Updates to https://github.com/Dimensions.
    Added https://github.com/Dimensions=none and https://github.com/Dimensions=*

  • Fix issue with using coverd and @@. The processor was not identifiying that in this situation the factset is really not covered. That is there is alignment. Here's an example:
    output pfilt117
    list({covered https://github.com/instance = $INSTANCE1 @@period.days = 91}).count
    rule-suffix if $alignment == none 'FIX' else $alignment['period'].end.year
    This fix encountered 2 issues related to this. First in the factset, the none aligned value was not tripping the aligned_results_only flag, so we were getting an extra result (for the none aligned). When the factset does not have alignment, it should not trip the flag, so in the example, the flag was not being tripped, but because of the @@ it should be treated as algined.
    The second issue was in calculated the cache key. The calculation looks at if the expression has alignment or not. If it has alignment, then the current alignment is used as part of the cache key. In the example, because the expression was not marked as having alignment, it didn't include alignment in the cache key. This caused the processor to use the first calcualted value for the list() instead of recalcing.

  • Fix dictionary handling with in evaluate_comp. I
    It was converting the value to a python dictionary to compare, but when comparing to a set/list of dictionaries, this did not work because the set/list containted the dictionary as a set of tuples (2 items, the first is the key the second is the value). Now dictionaries are converted to a set of tuples for comparison.

  • Fix error handling for a factset when the concept is not found and the factset is using a groupQname (namespace-group).

  • Added https://github.com/Dimensions to factset filtering.

  • Fix to @dimesnions to property overwrite the dimension if an @dimension-name=member is used for a dimension in the https://github.com/Dimensions. If the operator is different, then the overwrite did not work properly.

  • Workiva changes from pull request 29 to improve cache handling and a mnor imporovement for xule value set.
    Instead of using a dictionary for the cache, the cache is now a dictionary like class that allows a maxium byte size. When the cache goes above the max size, it starts deleting items from the cache. This prevents the cache from growing too big.
    XuleValueSet now implements containts. This provides better performance when the "in" operator is used.

  • Restrict navigation to only concept to concept relationships.

XuleValues

  • Added .to-spreadsheet property. Updated file creating to create excel files.
  • Updated .to-spreadsheet to handle qnames.
    This changed how spreadsheets are stored in Xule. They were the shadow dictionary of the dictionary that the .to-spreadsheet is used on. Now, to-spreadsheet runs through the values. It is probably the more types will need explicit conversion.

XuleFunctions

  • Updated excel-data() function to return an empty string for empty cells. It was returning the string 'none'.

_init_py

  • Added --xule-output-constants.
    This is a work in progress.
    Need to work out how to override the logger so the message format can be controlled.
    Create JSON format for all the xule tupes. For facts use the OIM as a model, but the SQNames make it difficult since there will need to be a place to capture the namespaces.
  • Added property .sid (semantic hash) for fact.
    This involves a fix to the semanticHash pluging. It incorrectly used the fact.elementQname which for inline documents would be ix:nonFraction. Instead using the fact.qname.

SemanticHash
-Updated for sid.

XuleInstanceFunctions

  • Changed using the existing modelManager when opening an instance instead of creating a new one. Need to look where else a modelManager is creted.
  • Changed file type to allow keyword expansion.

XuleContext

  • Updates to use the model manager from the controler instead of initializing a new model manager. This is necessary to have the other plugins available (i.e. the transforms/SEC) when loading a new model.

  • Workiva changes from pull request 29 to improve cache handling and a mnor imporovement for xule value set.
    Instead of using a dictionary for the cache, the cache is now a dictionary like class that allows a maxium byte size. When the cache goes above the max size, it starts deleting items from the cache. This prevents the cache from growing too big.
    XuleValueSet now implements containts. This provides better performance when the "in" operator is used.

XuleValidate

  • Updates to use the model manager from the controler instead of initializing a new model manager. This is necessary to have the other plugins available (i.e. the transforms/SEC) when loading a new model.

XuleRuleSetBuilder

  • Fix issue with using coverd and @@. The processor was not identifiying that in this situation the factset is really not covered. That is there is alignment. Here's an example:
    output pfilt117
    list({covered https://github.com/instance = $INSTANCE1 @@period.days = 91}).count
    rule-suffix if $alignment == none 'FIX' else $alignment['period'].end.year
    This fix encountered 2 issues related to this. First in the factset, the none aligned value was not tripping the aligned_results_only flag, so we were getting an extra result (for the none aligned). When the factset does not have alignment, it should not trip the flag, so in the example, the flag was not being tripped, but because of the @@ it should be treated as algined.
    The second issue was in calculated the cache key. The calculation looks at if the expression has alignment or not. If it has alignment, then the current alignment is used as part of the cache key. In the example, because the expression was not marked as having alignment, it didn't include alignment in the cache key. This caused the processor to use the first calcualted value for the list() instead of recalcing.

XuleModelIndexer

  • Added keyword expansion.

XuleValue

  • Workiva changes from pull request 29 to improve cache handling and a mnor imporovement for xule value set.
    Instead of using a dictionary for the cache, the cache is now a dictionary like class that allows a maxium byte size. When the cache goes above the max size, it starts deleting items from the cache. This prevents the cache from growing too big.
    XuleValueSet now implements containts. This provides better performance when the "in" operator is used.

XuleCache

  • Workiva changes from pull request 29 to improve cache handling and a mnor imporovement for xule value set.
    Instead of using a dictionary for the cache, the cache is now a dictionary like class that allows a maxium byte size. When the cache goes above the max size, it starts deleting items from the cache. This prevents the cache from growing too big.
    XuleValueSet now implements containts. This provides better performance when the "in" operator is used.

XULE unit test - added repeat

Try XULE:
Binder
Colab