mirror of
https://github.com/clearml/clearml
synced 2025-02-07 13:23:40 +00:00
Fix no warning when failing to patch argparse (#576)
This commit is contained in:
parent
5be1c8b2b0
commit
ba2e349d0c
@ -1,5 +1,6 @@
|
||||
""" Argparse utilities"""
|
||||
import sys
|
||||
import warnings
|
||||
from copy import copy
|
||||
|
||||
from six import PY2
|
||||
@ -36,13 +37,24 @@ class PatchArgumentParser:
|
||||
@staticmethod
|
||||
def parse_args(self, args=None, namespace=None):
|
||||
if PatchArgumentParser._recursion_guard:
|
||||
return {} if not PatchArgumentParser._original_parse_args else \
|
||||
PatchArgumentParser._original_parse_args(self, args=args, namespace=namespace)
|
||||
return (
|
||||
{}
|
||||
if not PatchArgumentParser._original_parse_args
|
||||
else PatchArgumentParser._original_parse_args(self, args=args, namespace=namespace)
|
||||
)
|
||||
|
||||
PatchArgumentParser._recursion_guard = True
|
||||
try:
|
||||
result = PatchArgumentParser._patched_parse_args(
|
||||
PatchArgumentParser._original_parse_args, self, args=args, namespace=namespace)
|
||||
PatchArgumentParser._original_parse_args, self, args=args, namespace=namespace
|
||||
)
|
||||
except Exception as e:
|
||||
result = (
|
||||
{}
|
||||
if not PatchArgumentParser._original_parse_args
|
||||
else PatchArgumentParser._original_parse_args(self, args=args, namespace=namespace)
|
||||
)
|
||||
warnings.warn("Failed patching argparse arguments: %s" % e)
|
||||
finally:
|
||||
PatchArgumentParser._recursion_guard = False
|
||||
return result
|
||||
@ -50,13 +62,24 @@ class PatchArgumentParser:
|
||||
@staticmethod
|
||||
def parse_known_args(self, args=None, namespace=None):
|
||||
if PatchArgumentParser._recursion_guard:
|
||||
return {} if not PatchArgumentParser._original_parse_args else \
|
||||
PatchArgumentParser._original_parse_known_args(self, args=args, namespace=namespace)
|
||||
return (
|
||||
{}
|
||||
if not PatchArgumentParser._original_parse_args
|
||||
else PatchArgumentParser._original_parse_known_args(self, args=args, namespace=namespace)
|
||||
)
|
||||
|
||||
PatchArgumentParser._recursion_guard = True
|
||||
try:
|
||||
result = PatchArgumentParser._patched_parse_args(
|
||||
PatchArgumentParser._original_parse_known_args, self, args=args, namespace=namespace)
|
||||
PatchArgumentParser._original_parse_known_args, self, args=args, namespace=namespace
|
||||
)
|
||||
except Exception as e:
|
||||
result = (
|
||||
{}
|
||||
if not PatchArgumentParser._original_parse_args
|
||||
else PatchArgumentParser._original_parse_known_args(self, args=args, namespace=namespace)
|
||||
)
|
||||
warnings.warn("Failed patching argparse arguments: %s" % e)
|
||||
finally:
|
||||
PatchArgumentParser._recursion_guard = False
|
||||
return result
|
||||
@ -224,7 +247,10 @@ def patch_argparse():
|
||||
|
||||
|
||||
# Notice! we are patching argparser, so we know if someone parsed arguments before connecting to task
|
||||
try:
|
||||
patch_argparse()
|
||||
except Exception as e:
|
||||
warnings.warn("Failed patching argparse: %s" % e)
|
||||
|
||||
|
||||
def call_original_argparser(self, args=None, namespace=None):
|
||||
|
Loading…
Reference in New Issue
Block a user