diff options
Diffstat (limited to 'Smarker/misc_classes.py')
-rw-r--r-- | Smarker/misc_classes.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Smarker/misc_classes.py b/Smarker/misc_classes.py index 09c3a7d..17ad36a 100644 --- a/Smarker/misc_classes.py +++ b/Smarker/misc_classes.py @@ -1,4 +1,5 @@ from dataclasses import dataclass
+import argparse
import tempfile
import zipfile
import shutil
@@ -19,6 +20,19 @@ latex_jinja_env = jinja2.Environment( loader = jinja2.FileSystemLoader(os.path.abspath(os.path.join(os.path.split(__file__)[0], "templates")))
)
+class EnvDefault(argparse.Action):
+ def __init__(self, envvar, required=True, default=None, **kwargs):
+ if not default and envvar:
+ if envvar in os.environ:
+ default = os.environ[envvar]
+ if required and default:
+ required = False
+ super(EnvDefault, self).__init__(default=default, required=required,
+ **kwargs)
+
+ def __call__(self, parser, namespace, values, option_string=None):
+ setattr(namespace, self.dest, values)
+
@dataclass
class ExtractZipToTempDir(tempfile.TemporaryDirectory):
zip_file:str
|