]> Nutra Git (v1) - gamesguru/ffpass.git/commitdiff
fix edge cases with argcomplete
authorShane Jaroch <chown_tee@proton.me>
Fri, 26 Dec 2025 06:40:30 +0000 (01:40 -0500)
committerShane Jaroch <chown_tee@proton.me>
Fri, 26 Dec 2025 06:40:30 +0000 (01:40 -0500)
ffpass/__init__.py [changed mode: 0644->0755]
requirements.txt

old mode 100644 (file)
new mode 100755 (executable)
index 1282af5..e531a77
@@ -559,41 +559,51 @@ def makeParser():
         # This allows arbitrary paths (tests) but gives users tab completion.
         arg.completer = lambda **kwargs: [str(p) for p in getProfiles()]
 
-        try:
-            pass
-        except ImportError:
-            pass
         sub.add_argument("-v", "--verbose", action="store_true")
         sub.add_argument("--debug", action="store_true")
 
     parser_import.set_defaults(func=main_import)
     parser_export.set_defaults(func=main_export)
 
+    return parser
+
+
+def setLogLevel(args):
+
+    if args.debug:
+        logging.getLogger().setLevel(logging.DEBUG)
+    elif args.verbose:
+        logging.getLogger().setLevel(logging.INFO)
+
+
+def tryLoadArgcomplete(parser):
+
     try:
         import argcomplete
         argcomplete.autocomplete(parser)
+
     except ModuleNotFoundError:
         logging.info(
-            "You can run 'pip install argcomplete' and add the hook to your shell RC for tab completion."
+            "NOTE: You can run 'pip install argcomplete' "
+            "and add the hook to your shell RC for tab completion."
         )
 
-    return parser
-
 
 def main():
-    # default log level is warning
+
+    # Default log level is warning
     logging.basicConfig(level=logging.WARNING, format="%(message)s")
 
     parser = makeParser()
     args = parser.parse_args()
 
-    # Adjust level based on flags
-    if args.debug:
-        logging.getLogger().setLevel(logging.DEBUG)
-    elif args.verbose:
-        logging.getLogger().setLevel(logging.INFO)
+    # Adjust log level based on flags
+    setLogLevel(args)
+
+    # Try to load argcomplete
+    tryLoadArgcomplete(parser)
 
-    # try to obtain profile directory
+    # Try to obtain profile directory
     if args.directory is None:
         try:
             args.directory = guessDir()
@@ -603,7 +613,7 @@ def main():
             parser.exit()
     args.directory = args.directory.expanduser()
 
-    # run arg parser
+    # Run arg parser
     try:
         # Wrap in try/except for BrokenPipeError to allow piping to head, i.e., ffpass export | head -5
         try:
index 5f8685026d72c8e43b434e19dde2d86924379136..9a633f250bdf814dd9ff07bc04d8f2e0807f4c34 100644 (file)
@@ -1,3 +1,4 @@
-pyasn1==0.6.1
-pycryptodome==3.23.0
+argcomplete>=3.5.2
+pyasn1~=0.6.1
+pycryptodome~=3.23.0