Skip to content

Releases: xbrlus/xule

30024

11 Aug 11:04
Compare
Choose a tag to compare
  • order sets and dictionaries
  • ordered iterations
  • allow linkbase in schema
  • fix effective weight
  • add --xender-inline-css-type for block or element use
  • nav x networks
  • fix handling of preferred label
  • xendr showIf consistency

Try XULE:
Binder
Colab

30013.1

09 Aug 16:09
Compare
Choose a tag to compare
  • Update FERC eforms validate to use XULE 3000+ versions and relocate 'latest' map to XULE directory
  • Update ESEF validate to use DQC rulesetMap
  • Update rulesetMap for v24 DQC
  • use a new ModelManager when loading instances and taxonomies to prevent Arelle from using the loaded models when validating.
  • support for trait properties

Try XULE:
Binder
Colab

30013

09 Jul 20:32
Compare
Choose a tag to compare
  • use a new ModelManager when loading instances and taxonomies to prevent Arelle from using the loaded models when validating.
  • support for trait properties

Try XULE:
Binder
Colab

30003.1

08 Jul 11:52
Compare
Choose a tag to compare
  • Update rulesetMap.json files for V24 (DQC)
  • Update for issue where DQC rulesets were not processing in graphic user interface
  • Update conversion clark notation qname to SXMQName

Try XULE:
Binder
Colab

30003

10 Jun 16:41
Compare
Choose a tag to compare
  • Update for issue where DQC rulesets were not processing in graphic user interface
  • Update conversion clark notation qname to SXMQName

Try XULE:
Binder
Colab

30001

28 May 18:18
Compare
Choose a tag to compare
  • add check for aspectFilters existence

Try XULE:
Binder
Colab

23759

24 May 20:16
Compare
Choose a tag to compare

update xule to version 23759

  • Fix validation issue when using --xule-filing-list
  • Update semanticHashObject to handle none objects.
  • Added across networks to grammar
  • Updated properties .effective-weight and .effective-weight-network to work with calc 1.1 summation item

Try XULE:
Binder
Colab

23750.1

10 May 15:01
Compare
Choose a tag to compare

Xule-properties

  • Fix to effective-weight property

Try XULE:
Binder
Colab

23750

08 May 16:30
Compare
Choose a tag to compare

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

23722

18 Feb 14:03
Compare
Choose a tag to compare

Changelogs:

Since prior XULE release: 23694.1...23722

XULE updates:

  • Fix for finding the cntlr in the xuleValidate function when running as a service with multi processing.
  • Fix for typo in qNameLocalName in grammer
  • Change handling of short names for roles and arcroles. This now allows multiple uris to match. Previously, it would only allow one and if there was more than one it would raise an error.
    This affects the following:
    navigate for roles and arcroles
    drs-role in factset (this will still only allow one)
    taxonomy().networks(arcrole, role). This currently only allows one role to resolve, but should allow multiple
    taxonomy().cube.drs-role(role). This only allows one role to resolve.
  • Fix properties .entry-point and .entry-point-namespace.
    There is a problem in the recent version of Arelle that the .referencesDocument property of the inline document is not being filled in when processing an inline document set. The entry-point properties use .referenceDocument to find the schema. So have alternative code to find the schema.
  • Fix resolve_role. It was returning a string instead of a list/tuple in one situation. in XUleUtility
  • Update taxonomy().networks() to handle multiple roles when using the short name.
  • Reapply fix for property .entry-point() and .entry-point-namespace(). This fix handles finding the schema for an inline document set inline doucment which relied on arelle providing the .referencesDocument property on the ModelDocument of the inline document. But changes to Arelle caused this property to be left empty (empty list).
  • allow property .networks() to take a short name that resolves to multiple roles or arcroles.
  • 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 which 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.

Try XULE:
Binder
Colab