From 10d420147b640e66e8c489bc8ecd710460a63399 Mon Sep 17 00:00:00 2001
From: Leonid Ganeline <leo.gan.57@gmail.com>
Date: Wed, 23 Aug 2023 17:15:22 -0700
Subject: [PATCH] Remove mutable default arguments (#170)

Passing a list as default argument is not recommended.
---
 dinov2/eval/knn.py            | 3 ++-
 dinov2/eval/linear.py         | 3 ++-
 dinov2/eval/log_regression.py | 3 ++-
 dinov2/eval/setup.py          | 4 ++--
 dinov2/run/submit.py          | 3 ++-
 5 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/dinov2/eval/knn.py b/dinov2/eval/knn.py
index 018ad5b..02ee261 100644
--- a/dinov2/eval/knn.py
+++ b/dinov2/eval/knn.py
@@ -29,9 +29,10 @@ logger = logging.getLogger("dinov2")
 
 def get_args_parser(
     description: Optional[str] = None,
-    parents: Optional[List[argparse.ArgumentParser]] = [],
+    parents: Optional[List[argparse.ArgumentParser]] = None,
     add_help: bool = True,
 ):
+    parents = parents or []
     setup_args_parser = get_setup_args_parser(parents=parents, add_help=False)
     parents = [setup_args_parser]
     parser = argparse.ArgumentParser(
diff --git a/dinov2/eval/linear.py b/dinov2/eval/linear.py
index e472a24..3d82026 100644
--- a/dinov2/eval/linear.py
+++ b/dinov2/eval/linear.py
@@ -33,9 +33,10 @@ logger = logging.getLogger("dinov2")
 
 def get_args_parser(
     description: Optional[str] = None,
-    parents: Optional[List[argparse.ArgumentParser]] = [],
+    parents: Optional[List[argparse.ArgumentParser]] = None,
     add_help: bool = True,
 ):
+    parents = parents or []
     setup_args_parser = get_setup_args_parser(parents=parents, add_help=False)
     parents = [setup_args_parser]
     parser = argparse.ArgumentParser(
diff --git a/dinov2/eval/log_regression.py b/dinov2/eval/log_regression.py
index 55f0ee7..2e6ede2 100644
--- a/dinov2/eval/log_regression.py
+++ b/dinov2/eval/log_regression.py
@@ -38,9 +38,10 @@ _CPU_DEVICE = torch.device("cpu")
 
 def get_args_parser(
     description: Optional[str] = None,
-    parents: Optional[List[argparse.ArgumentParser]] = [],
+    parents: Optional[List[argparse.ArgumentParser]] = None,
     add_help: bool = True,
 ):
+    parents = parents or []
     setup_args_parser = get_setup_args_parser(parents=parents, add_help=False)
     parents = [setup_args_parser]
     parser = argparse.ArgumentParser(
diff --git a/dinov2/eval/setup.py b/dinov2/eval/setup.py
index 529b352..e7fadc2 100644
--- a/dinov2/eval/setup.py
+++ b/dinov2/eval/setup.py
@@ -17,12 +17,12 @@ import dinov2.utils.utils as dinov2_utils
 
 def get_args_parser(
     description: Optional[str] = None,
-    parents: Optional[List[argparse.ArgumentParser]] = [],
+    parents: Optional[List[argparse.ArgumentParser]] = None,
     add_help: bool = True,
 ):
     parser = argparse.ArgumentParser(
         description=description,
-        parents=parents,
+        parents=parents or [],
         add_help=add_help,
     )
     parser.add_argument(
diff --git a/dinov2/run/submit.py b/dinov2/run/submit.py
index 340b478..68140f3 100644
--- a/dinov2/run/submit.py
+++ b/dinov2/run/submit.py
@@ -24,9 +24,10 @@ logger = logging.getLogger("dinov2")
 
 def get_args_parser(
     description: Optional[str] = None,
-    parents: Optional[List[argparse.ArgumentParser]] = [],
+    parents: Optional[List[argparse.ArgumentParser]] = None,
     add_help: bool = True,
 ) -> argparse.ArgumentParser:
+    parents = parents or []
     slurm_partition = get_slurm_partition()
     parser = argparse.ArgumentParser(
         description=description,
-- 
GitLab