Skip to content

Commit 79e836a

Browse files
committed
Fixed indentation bug and improved verbosity
1 parent c3b419c commit 79e836a

File tree

2 files changed

+48
-18
lines changed

2 files changed

+48
-18
lines changed

datacrafter/cmds/project.py

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,14 @@ def enable_logging(self, console=True, tofile=False, structured=False):
7171
"""Enable logging to file and stderr with rotation support"""
7272
rootLogger = logging.getLogger()
7373

74+
# Preserve the current effective level (may be set to DEBUG for verbose mode)
75+
current_level = rootLogger.getEffectiveLevel()
76+
7477
# Remove existing handlers to avoid duplicates
7578
rootLogger.handlers.clear()
7679

77-
# Set default level
78-
rootLogger.setLevel(logging.DEBUG) # Allow all levels, filter at handler level
80+
# Set level - preserve DEBUG if it was set (for verbose), otherwise use DEBUG as default
81+
rootLogger.setLevel(logging.DEBUG if current_level <= logging.DEBUG else logging.DEBUG)
7982

8083
if structured:
8184
# Structured logging (JSON format)
@@ -119,8 +122,10 @@ def format(self, record):
119122

120123
if console:
121124
consoleHandler = logging.StreamHandler()
122-
# Console shows INFO and above by default
123-
consoleHandler.setLevel(logging.INFO)
125+
# Use DEBUG level if verbose mode was enabled (current_level was DEBUG)
126+
# Otherwise default to INFO for normal operation
127+
console_level = logging.DEBUG if current_level <= logging.DEBUG else logging.INFO
128+
consoleHandler.setLevel(console_level)
124129
consoleHandler.setFormatter(formatter)
125130
rootLogger.addHandler(consoleHandler)
126131

@@ -318,22 +323,24 @@ def run(self, pre_clean=False, init=True, proceed=True, structured_log=False):
318323
"""Execute project"""
319324
self.enable_logging(console=True, tofile=True, structured=structured_log)
320325
if self.project is None:
321-
logging.error('Project file not found or not loaded')
322-
return
326+
error_msg = 'Project file not found or not loaded'
327+
logging.error(error_msg)
328+
raise ValueError(error_msg)
323329
isvalid, report = self.validate()
324330
logging.info("Started project: %s", self.project['project-name'])
325331
if not isvalid:
326-
logging.error('Invalid configuration. See more info below')
332+
error_msg = 'Invalid configuration. See more info below'
333+
logging.error(error_msg)
327334
if report:
328335
logging.error('Validation report: %s', report)
329-
return
330-
if init:
331-
self.__create_dirs()
332-
if pre_clean:
333-
self.clean()
334-
self.state = ProjectState(
335-
filename=self.state_file, reset=pre_clean, autosave=True)
336-
self.prepare()
337-
self.collect(proceed)
338-
self.process()
339-
self.finish()
336+
raise ValueError(f"{error_msg}. {report if report else ''}")
337+
if init:
338+
self.__create_dirs()
339+
if pre_clean:
340+
self.clean()
341+
self.state = ProjectState(
342+
filename=self.state_file, reset=pre_clean, autosave=True)
343+
self.prepare()
344+
self.collect(proceed)
345+
self.process()
346+
self.finish()

examples/dcat/datacrafter.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: 1
2+
project-id: ee0cd7af-cf5e-4d1b-800a-fb9e3363a61b
3+
project-name: dcat
4+
5+
extractor:
6+
type: file-json
7+
method: url
8+
mode: singlefile
9+
config:
10+
url: https://fsm-data.sprep.org/data.json
11+
12+
13+
processor:
14+
config:
15+
tagname: dataset
16+
type: json
17+
18+
destination:
19+
type: file-jsonl
20+
compression: zst
21+
storage: local
22+
fileprefix: data
23+

0 commit comments

Comments
 (0)