Skip to content

Conversation

@pedroigorjs
Copy link
Contributor

@pedroigorjs pedroigorjs commented Sep 11, 2025

What is new?

This pull request introduces new nodes to the library, enhancing its functionality for handling various operations. The following nodes have been added:

  1. Now Node: Provides the current time.
  2. DifferenceBetweenDates Node: Calculates the number of days between two dates.
  3. ToISOFormat Node: Parses an inputed format to ISO 8601.

These additions aim to expand the library's capabilities, making it more versatile for use cases involving string manipulation and date/time calculations.

What's Changed

  • Updated the retrack/nodes/__init__.py file to include the new nodes in the registry.
  • Registered the new nodes (DifferenceBetweenDates, Now and ToISOFormat) for use in the library.

@pedroigorjs pedroigorjs self-assigned this Sep 11, 2025
@pedroigorjs pedroigorjs added the enhancement New feature or request label Sep 11, 2025
@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   datetime.py70790%130–151
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py56886%35, 46, 59, 61, 63, 74, 79, 81
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py3167%10
   node_exists.py14286%35, 37
TOTAL13708094% 

Tests Skipped Failures Errors Time
85 0 💤 0 ❌ 0 🔥 3.946s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   datetime.py70790%130–151
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py56886%35, 46, 59, 61, 63, 74, 79, 81
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py3167%10
   node_exists.py14286%35, 37
TOTAL13708294% 

Tests Skipped Failures Errors Time
85 0 💤 0 ❌ 0 🔥 4.559s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14057595% 

Tests Skipped Failures Errors Time
91 0 💤 0 ❌ 0 🔥 4.005s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14057795% 

Tests Skipped Failures Errors Time
91 0 💤 0 ❌ 0 🔥 5.056s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   datetime.py77297%167–168
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14227795% 

Tests Skipped Failures Errors Time
92 0 💤 0 ❌ 0 🔥 3.809s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   datetime.py77297%167–168
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14227994% 

Tests Skipped Failures Errors Time
92 0 💤 0 ❌ 0 🔥 5.349s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14027795% 

Tests Skipped Failures Errors Time
90 0 💤 0 ❌ 0 🔥 5.037s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14027595% 

Tests Skipped Failures Errors Time
90 0 💤 0 ❌ 0 🔥 3.848s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14027595% 

Tests Skipped Failures Errors Time
90 0 💤 0 ❌ 0 🔥 3.909s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14027795% 

Tests Skipped Failures Errors Time
90 0 💤 0 ❌ 0 🔥 4.909s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14027795% 

Tests Skipped Failures Errors Time
90 0 💤 0 ❌ 0 🔥 5.096s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14027595% 

Tests Skipped Failures Errors Time
90 0 💤 0 ❌ 0 🔥 3.946s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14027795% 

Tests Skipped Failures Errors Time
90 0 💤 0 ❌ 0 🔥 4.887s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14027595% 

Tests Skipped Failures Errors Time
90 0 💤 0 ❌ 0 🔥 3.798s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14027795% 

Tests Skipped Failures Errors Time
90 0 💤 0 ❌ 0 🔥 5.078s ⏱️

@github-actions
Copy link

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py50492%35, 97, 104, 107
   executor.py1221092%62, 74–75, 144, 208, 252, 267, 271, 283, 291
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14027595% 

Tests Skipped Failures Errors Time
90 0 💤 0 ❌ 0 🔥 3.871s ⏱️

@pedroigorjs pedroigorjs merged commit 01a9a58 into main Sep 29, 2025
3 checks passed
@pedroigorjs pedroigorjs deleted the f/add-new-datetime-nodes branch September 29, 2025 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants