Skip to content

Commit e53766b

Browse files
committed
feat: add logger integration
1 parent 218b8ed commit e53766b

17 files changed

+195
-34
lines changed

scrapegraphai/nodes/fetch_node.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""
1+
""""
22
FetchNode Module
33
"""
44

@@ -13,7 +13,7 @@
1313
from ..docloaders import ChromiumLoader
1414
from .base_node import BaseNode
1515
from ..utils.cleanup_html import cleanup_html
16-
16+
from ..utils.logging import get_logger
1717

1818
class FetchNode(BaseNode):
1919
"""
@@ -74,7 +74,8 @@ def execute(self, state):
7474
necessary information to perform the operation is missing.
7575
"""
7676
if self.verbose:
77-
print(f"--- Executing {self.node_name} Node ---")
77+
logger = get_logger("fetch node")
78+
logger.info(f"--- Executing {self.node_name} Node ---")
7879

7980
# Interpret input keys based on the provided input expression
8081
input_keys = self.get_input_keys(state)
@@ -128,7 +129,7 @@ def execute(self, state):
128129
cleanedup_html = cleanup_html(response.text, source)
129130
compressed_document = [Document(page_content=cleanedup_html)]
130131
else:
131-
print(f"Failed to retrieve contents from the webpage at url: {source}")
132+
logger.warning(f"Failed to retrieve contents from the webpage at url: {source}")
132133

133134
else:
134135
loader_kwargs = {}
@@ -144,4 +145,4 @@ def execute(self, state):
144145
]
145146

146147
state.update({self.output[0]: compressed_document})
147-
return state
148+
return state

scrapegraphai/nodes/generate_answer_csv_node.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from langchain.prompts import PromptTemplate
1010
from langchain_core.output_parsers import JsonOutputParser
1111
from langchain_core.runnables import RunnableParallel
12+
from ..utils.logging import get_logger
1213

1314
# Imports from the library
1415
from .base_node import BaseNode
@@ -72,7 +73,8 @@ def execute(self, state):
7273
"""
7374

7475
if self.verbose:
75-
print(f"--- Executing {self.node_name} Node ---")
76+
logger = get_logger("generate_answer csv node")
77+
logger.info(f"--- Executing {self.node_name} Node ---")
7678

7779
# Interpret input keys based on the provided input expression
7880
input_keys = self.get_input_keys(state)

scrapegraphai/nodes/generate_answer_node.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from langchain.prompts import PromptTemplate
1111
from langchain_core.output_parsers import JsonOutputParser
1212
from langchain_core.runnables import RunnableParallel
13+
from ..utils.logging import get_logger
1314

1415
# Imports from the library
1516
from .base_node import BaseNode
@@ -59,7 +60,8 @@ def execute(self, state: dict) -> dict:
5960
"""
6061

6162
if self.verbose:
62-
print(f"--- Executing {self.node_name} Node ---")
63+
logger = get_logger("generate answer node")
64+
logger.info(f"--- Executing {self.node_name} Node ---")
6365

6466
# Interpret input keys based on the provided input expression
6567
input_keys = self.get_input_keys(state)

scrapegraphai/nodes/generate_answer_pdf_node.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from langchain.prompts import PromptTemplate
1010
from langchain_core.output_parsers import JsonOutputParser
1111
from langchain_core.runnables import RunnableParallel
12+
from ..utils.logging import get_logger
1213

1314
# Imports from the library
1415
from .base_node import BaseNode
@@ -72,7 +73,8 @@ def execute(self, state):
7273
"""
7374

7475
if self.verbose:
75-
print(f"--- Executing {self.node_name} Node ---")
76+
logger = get_logger("generate answer pdf node")
77+
logger.info(f"--- Executing {self.node_name} Node ---")
7678

7779
# Interpret input keys based on the provided input expression
7880
input_keys = self.get_input_keys(state)

scrapegraphai/nodes/generate_scraper_node.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from langchain.prompts import PromptTemplate
1111
from langchain_core.output_parsers import StrOutputParser
1212
from langchain_core.runnables import RunnableParallel
13+
from ..utils.logging import get_logger
1314

1415
# Imports from the library
1516
from .base_node import BaseNode
@@ -63,7 +64,8 @@ def execute(self, state: dict) -> dict:
6364
"""
6465

6566
if self.verbose:
66-
print(f"--- Executing {self.node_name} Node ---")
67+
logger = get_logger("generate scraper node")
68+
logger.info(f"--- Executing {self.node_name} Node ---")
6769

6870
# Interpret input keys based on the provided input expression
6971
input_keys = self.get_input_keys(state)

scrapegraphai/nodes/get_probable_tags_node.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from langchain.output_parsers import CommaSeparatedListOutputParser
77
from langchain.prompts import PromptTemplate
88
from .base_node import BaseNode
9-
9+
from ..utils.logging import get_logger
1010

1111
class GetProbableTagsNode(BaseNode):
1212
"""
@@ -25,11 +25,12 @@ class GetProbableTagsNode(BaseNode):
2525
node_name (str): The unique identifier name for the node, defaulting to "GetProbableTags".
2626
"""
2727

28-
def __init__(self, input: str, output: List[str], model_config: dict,
28+
def __init__(self, input: str, output: List[str], node_config: dict,
2929
node_name: str = "GetProbableTags"):
30-
super().__init__(node_name, "node", input, output, 2, model_config)
30+
super().__init__(node_name, "node", input, output, 2, node_config)
3131

32-
self.llm_model = model_config["llm_model"]
32+
self.llm_model = node_config["llm_model"]
33+
self.verbose = False if node_config is None else node_config.get("verbose", False)
3334

3435
def execute(self, state: dict) -> dict:
3536
"""
@@ -49,7 +50,9 @@ def execute(self, state: dict) -> dict:
4950
necessary information for generating tag predictions is missing.
5051
"""
5152

52-
print(f"--- Executing {self.node_name} Node ---")
53+
if self.verbose:
54+
logger = get_logger("get probable tags node")
55+
logger.info(f"--- Executing {self.node_name} Node ---")
5356

5457
# Interpret input keys based on the provided input expression
5558
input_keys = self.get_input_keys(state)

scrapegraphai/nodes/graph_iterator_node.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import asyncio
66
import copy
77
from typing import List, Optional
8-
8+
from ..utils.logging import get_logger
99
from tqdm.asyncio import tqdm
1010

1111
from .base_node import BaseNode

scrapegraphai/nodes/image_to_text_node.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from typing import List, Optional
66
from .base_node import BaseNode
7+
from ..utils.logging import get_logger
78

89

910
class ImageToTextNode(BaseNode):
@@ -42,7 +43,8 @@ def execute(self, state: dict) -> dict:
4243
"""
4344

4445
if self.verbose:
45-
print("---GENERATING TEXT FROM IMAGE---")
46+
logger = get_logger("image to text node")
47+
logger.info(f"--- Executing {self.node_name} Node ---")
4648

4749
input_keys = self.get_input_keys(state)
4850
input_data = [state[key] for key in input_keys]

scrapegraphai/nodes/merge_answers_node.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Imports from standard library
66
from typing import List, Optional
77
from tqdm import tqdm
8-
8+
from ..utils.logging import get_logger
99
# Imports from Langchain
1010
from langchain.prompts import PromptTemplate
1111
from langchain_core.output_parsers import JsonOutputParser
@@ -54,7 +54,8 @@ def execute(self, state: dict) -> dict:
5454
"""
5555

5656
if self.verbose:
57-
print(f"--- Executing {self.node_name} Node ---")
57+
logger = get_logger("fetch node")
58+
logger.info(f"--- Executing {self.node_name} Node ---")
5859

5960
# Interpret input keys based on the provided input expression
6061
input_keys = self.get_input_keys(state)

scrapegraphai/nodes/parse_node.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from langchain.text_splitter import RecursiveCharacterTextSplitter
77
from langchain_community.document_transformers import Html2TextTransformer
88
from .base_node import BaseNode
9-
9+
from ..utils.logging import get_logger
1010

1111
class ParseNode(BaseNode):
1212
"""
@@ -49,7 +49,8 @@ def execute(self, state: dict) -> dict:
4949
"""
5050

5151
if self.verbose:
52-
print(f"--- Executing {self.node_name} Node ---")
52+
logger = get_logger("fetch node")
53+
logger.info(f"--- Executing {self.node_name} Node ---")
5354

5455
# Interpret input keys based on the provided input expression
5556
input_keys = self.get_input_keys(state)

scrapegraphai/nodes/rag_node.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from langchain.retrievers.document_compressors import EmbeddingsFilter, DocumentCompressorPipeline
99
from langchain_community.document_transformers import EmbeddingsRedundantFilter
1010
from langchain_community.vectorstores import FAISS
11+
from ..utils.logging import get_logger
1112

1213
from .base_node import BaseNode
1314

@@ -55,9 +56,10 @@ def execute(self, state: dict) -> dict:
5556
KeyError: If the input keys are not found in the state, indicating that the
5657
necessary information for compressing the content is missing.
5758
"""
59+
logger = get_logger("rag node")
5860

5961
if self.verbose:
60-
print(f"--- Executing {self.node_name} Node ---")
62+
logger.info(f"--- Executing {self.node_name} Node ---")
6163

6264
# Interpret input keys based on the provided input expression
6365
input_keys = self.get_input_keys(state)
@@ -80,7 +82,7 @@ def execute(self, state: dict) -> dict:
8082
chunked_docs.append(doc)
8183

8284
if self.verbose:
83-
print("--- (updated chunks metadata) ---")
85+
logger.info("--- (updated chunks metadata) ---")
8486

8587
# check if embedder_model is provided, if not use llm_model
8688
self.embedder_model = self.embedder_model if self.embedder_model else self.llm_model

scrapegraphai/nodes/robots_node.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from langchain.output_parsers import CommaSeparatedListOutputParser
1010
from .base_node import BaseNode
1111
from ..helpers import robots_dictionary
12-
12+
from ..utils.logging import get_logger
1313

1414
class RobotsNode(BaseNode):
1515
"""
@@ -61,9 +61,10 @@ def execute(self, state: dict) -> dict:
6161
ValueError: If the website is not scrapeable based on the robots.txt file and
6262
scraping is not enforced.
6363
"""
64+
logger = get_logger("robots node")
6465

6566
if self.verbose:
66-
print(f"--- Executing {self.node_name} Node ---")
67+
logger.info(f"--- Executing {self.node_name} Node ---")
6768

6869
# Interpret input keys based on the provided input expression
6970
input_keys = self.get_input_keys(state)
@@ -121,17 +122,17 @@ def execute(self, state: dict) -> dict:
121122

122123
if "no" in is_scrapable:
123124
if self.verbose:
124-
print("\033[31m(Scraping this website is not allowed)\033[0m")
125+
logger.warning("\033[31m(Scraping this website is not allowed)\033[0m")
125126

126127
if not self.force_scraping:
127128
raise ValueError(
128129
'The website you selected is not scrapable')
129130
else:
130131
if self.verbose:
131-
print("\033[33m(WARNING: Scraping this website is not allowed but you decided to force it)\033[0m")
132+
logger.warning("\033[33m(WARNING: Scraping this website is not allowed but you decided to force it)\033[0m")
132133
else:
133134
if self.verbose:
134-
print("\033[32m(Scraping this website is allowed)\033[0m")
135+
logger.warning("\033[32m(Scraping this website is allowed)\033[0m")
135136

136137
state.update({self.output[0]: is_scrapable})
137138
return state

scrapegraphai/nodes/search_internet_node.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from langchain.prompts import PromptTemplate
88
from ..utils.research_web import search_on_web
99
from .base_node import BaseNode
10-
10+
from ..utils.logging import get_logger
1111

1212
class SearchInternetNode(BaseNode):
1313
"""
@@ -54,9 +54,10 @@ def execute(self, state: dict) -> dict:
5454
KeyError: If the input keys are not found in the state, indicating that the
5555
necessary information for generating the answer is missing.
5656
"""
57+
logger = get_logger("search interne node")
5758

5859
if self.verbose:
59-
print(f"--- Executing {self.node_name} Node ---")
60+
logger.info(f"--- Executing {self.node_name} Node ---")
6061

6162
input_keys = self.get_input_keys(state)
6263

@@ -88,7 +89,8 @@ def execute(self, state: dict) -> dict:
8889
search_query = search_answer.invoke({"user_prompt": user_prompt})[0]
8990

9091
if self.verbose:
91-
print(f"Search Query: {search_query}")
92+
logger.info(f"Search Query: {search_query}")
93+
9294

9395
answer = search_on_web(
9496
query=search_query, max_results=self.max_results)

scrapegraphai/nodes/search_link_node.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Imports from standard library
66
from typing import List, Optional
77
from tqdm import tqdm
8-
8+
from ..utils.logging import get_logger
99

1010
# Imports from Langchain
1111
from langchain.prompts import PromptTemplate
@@ -59,7 +59,8 @@ def execute(self, state: dict) -> dict:
5959
"""
6060

6161
if self.verbose:
62-
print(f"--- Executing {self.node_name} Node ---")
62+
logger = get_logger("search link node")
63+
logger.info(f"--- Executing {self.node_name} Node ---")
6364

6465
# Interpret input keys based on the provided input expression
6566
input_keys = self.get_input_keys(state)

scrapegraphai/nodes/text_to_speech_node.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from typing import List, Optional
66
from .base_node import BaseNode
7-
7+
from ..utils.logging import get_logger
88

99
class TextToSpeechNode(BaseNode):
1010
"""
@@ -45,7 +45,8 @@ def execute(self, state: dict) -> dict:
4545
"""
4646

4747
if self.verbose:
48-
print(f"--- Executing {self.node_name} Node ---")
48+
logger = get_logger("text to speach node")
49+
logger.info(f"--- Executing {self.node_name} Node ---")
4950

5051
# Interpret input keys based on the provided input expression
5152
input_keys = self.get_input_keys(state)

scrapegraphai/utils/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@
99
from .save_audio_from_bytes import save_audio_from_bytes
1010
from .sys_dynamic_import import dynamic_import, srcfile_import
1111
from .cleanup_html import cleanup_html
12+
from .logging import *

0 commit comments

Comments
 (0)