Skip to content

Commit

Permalink
Merge pull request #27 from pier-digital/f/unify-connector-types
Browse files Browse the repository at this point in the history
F/unify-connector-types
  • Loading branch information
gabrielguarisa authored Apr 1, 2024
2 parents 2f25258 + c1eb250 commit 38bae96
Show file tree
Hide file tree
Showing 7 changed files with 12 additions and 23 deletions.
2 changes: 1 addition & 1 deletion examples/cpf_digit.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@

input_df = pd.DataFrame({"cpf": ["53154432770", "22222224122"]})

print(rule.execute(input_df))
print(rule.execute(input_df))
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "retrack"
version = "2.3.2"
version = "2.4.0"
description = "A business rules engine"
authors = ["Gabriel Guarisa <gabriel.guarisa@pier.digital>", "Nathalia Trotte <nathaliatrotte@gmail.com>"]
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion retrack/engine/request_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def inputs(self, inputs: typing.List[BaseNode]):
for i in range(len(inputs)):
if not isinstance(inputs[i], BaseNode):
raise TypeError(
f"inputs[{i}] must be a dict or an InputModel, not {type(inputs[i])}"
f"inputs[{i}] must be an InputModel, not {type(inputs[i])}"
)

if inputs[i].kind() != NodeKind.INPUT:
Expand Down
8 changes: 3 additions & 5 deletions retrack/nodes/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from retrack.nodes.base import BaseNode
from retrack.nodes.check import Check
from retrack.nodes.connectors import BaseConnector, VirtualConnector
from retrack.nodes.connectors import BaseConnector
from retrack.nodes.constants import Bool, Constant, IntervalCatV0, List
from retrack.nodes.contains import Contains
from retrack.nodes.datetime import CurrentYear
Expand All @@ -27,11 +27,9 @@ def registry() -> Registry:
_registry = Registry()

_registry.register("Input", Input)
_registry.register("Connector", BaseConnector) # By default, Connector is an Input
_registry.register(
"Connector", VirtualConnector
) # By default, Connector is an Input
_registry.register(
"ConnectorV0", VirtualConnector
"ConnectorV0", BaseConnector
) # By default, Connector is an Input
_registry.register("Start", Start)
_registry.register("Constant", Constant)
Expand Down
14 changes: 3 additions & 11 deletions retrack/nodes/connectors.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,11 @@ class ConnectorMetadataModel(InputMetadataModel):
identifier: str


class VirtualConnector(Input):
class BaseConnector(Input):
data: ConnectorMetadataModel

def kind(self) -> NodeKind:
return NodeKind.CONNECTOR

def generate_input_nodes(self) -> typing.List[Input]:
return [Input(**self.model_dump(by_alias=True))]


class BaseConnector(VirtualConnector):
data: ConnectorMetadataModel

def generate_input_nodes(self) -> typing.List[Input]:
raise NotImplementedError()

def run(self, **kwargs): # Keep the kwargs in the signature
raise NotImplementedError()
4 changes: 3 additions & 1 deletion retrack/nodes/getchar.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,6 @@ def run(
self,
input_value: pd.Series,
) -> typing.Dict[str, pd.Series]:
return {"output_value": input_value.apply(lambda x: str(x)[self.data.index - 1])}
return {
"output_value": input_value.apply(lambda x: str(x)[self.data.index - 1])
}
3 changes: 0 additions & 3 deletions tests/test_nodes/test_connectors.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,3 @@ def test_create_base_connector(connector_dict):
assert connector.data.default == "Hello World"
assert connector.data.service == "example_service"
assert connector.data.identifier == "example_identifier"

with pytest.raises(NotImplementedError):
_ = connector.generate_input_nodes()

0 comments on commit 38bae96

Please sign in to comment.