Skip to content

Commit

Permalink
fix: better cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
antazoey committed Aug 1, 2023
1 parent 2ca2de9 commit c4dfafe
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 8 deletions.
14 changes: 9 additions & 5 deletions src/ape/logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ class CliLogger:
def __init__(
self,
_logger: logging.Logger,
fmt: str,
web3_request_logger: Optional[logging.Logger] = None,
web3_http_logger: Optional[logging.Logger] = None,
):
Expand All @@ -112,6 +113,7 @@ def __init__(
self._web3_request_manager_logger = web3_request_logger
self._web3_http_provider_logger = web3_http_logger
self._load_from_sys_argv()
self.fmt = fmt

@classmethod
def create(cls, fmt: Optional[str] = None, third_party: bool = True) -> "CliLogger":
Expand All @@ -121,14 +123,16 @@ def create(cls, fmt: Optional[str] = None, third_party: bool = True) -> "CliLogg
kwargs["web3_http_logger"] = _get_logger("web3.providers.HTTPProvider", fmt=fmt)

_logger = _get_logger("ape", fmt=fmt)
return cls(_logger, **kwargs)
return cls(_logger, fmt, **kwargs)

def format(self, new_format: str):
_format_logger(self._logger, new_format)
def format(self, fmt: Optional[str] = None):
self.fmt = fmt or DEFAULT_LOG_FORMAT
fmt = fmt or DEFAULT_LOG_FORMAT
_format_logger(self._logger, fmt)
if req_log := self._web3_request_manager_logger:
_format_logger(req_log, new_format)
_format_logger(req_log, fmt)
if prov_log := self._web3_http_provider_logger:
_format_logger(prov_log, new_format)
_format_logger(prov_log, fmt)

def _load_from_sys_argv(self, default: Optional[Union[str, int]] = None):
"""
Expand Down
11 changes: 10 additions & 1 deletion src/ape_networks/_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,20 @@ def run(cli_ctx, network):
cli_ctx.abort("Process already running.")

# Start showing process logs.
original_level = cli_ctx.logger.level
original_format = cli_ctx.logger.fmt
cli_ctx.logger.set_level(LogLevel.DEBUG)

# Change format to exclude log level (since it is always just DEBUG)
cli_ctx.logger.format("%(message)s")
cli_ctx.logger.format(fmt="%(message)s")
try:
_run(cli_ctx, provider)
finally:
cli_ctx.logger.set_level(original_level)
cli_ctx.logger.format(fmt=original_format)


def _run(cli_ctx, provider: SubprocessProvider):
provider.connect()
if not (process := provider.process):
provider.disconnect()
Expand Down
7 changes: 5 additions & 2 deletions tests/functional/test_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,11 @@ def test_format(simple_runner):
@group_for_testing.command()
@ape_cli_context()
def cmd(cli_ctx):
cli_ctx.logger.format("%(message)s")
cli_ctx.logger.success("this is a test")
cli_ctx.logger.format(fmt="%(message)s")
try:
cli_ctx.logger.success("this is a test")
finally:
cli_ctx.logger.format()

result = simple_runner.invoke(group_for_testing, ["cmd", "-v", "SUCCESS"])
assert "SUCCESS" not in result.output

0 comments on commit c4dfafe

Please sign in to comment.