Origin: upstream, 85679e753ec89eb825b1e9b6d05297be858cf0de
From: Adam Twardoch <adam+github@twardoch.com>
Date: Fri, 18 Jul 2025 15:52:06 +0200
Subject: [PATCH] .
---
diff --git a/src/opentype_feature_freezer/__init__.py b/src/opentype_feature_freezer/__init__.py
index 7207a22..0343031 100644
--- a/src/opentype_feature_freezer/__init__.py
+++ b/src/opentype_feature_freezer/__init__.py
@@ -1,11 +1,16 @@
+from __future__ import annotations
+
 import logging
 import os
 from collections.abc import Mapping, MutableMapping
 from types import SimpleNamespace
-from typing import List, Optional, Set
+from typing import TYPE_CHECKING, List, Optional, Set
 
 import fontTools.ttLib as ttLib
 
+if TYPE_CHECKING:
+    from argparse import Namespace
+
 __version__ = "1.32.2"
 
 
@@ -348,16 +323,16 @@ def renameFont(self):
         )
 
         if "CFF " in self.ttx:
-            cff_table = self.ttx["CFF "].cff  # Corrected to cff_table
+            cff_table = self.ttx["CFF "].cff
             if len(cff_table.fontNames) > 1:
                 logger.warning(
                     "Font has multiple CFF font entries. Renaming only the first one."
                 )
 
-            top_dict = cff[0].rawDict
+            top_dict = cff_table[0].rawDict
             top_dict["FamilyName"] = family_name_new.encode("utf-8")
             top_dict["FullName"] = full_name_new.encode("utf-8")
-            cff.fontNames[0] = postscript_name_new.encode("utf-8")
+            cff_table.fontNames[0] = postscript_name_new.encode("utf-8")
 
         logger.info("[renameFont] New family name: '%s'", family_name_new)
         logger.info("[renameFont] New full name: '%s'", full_name_new)
diff --git a/src/opentype_feature_freezer/cli.py b/src/opentype_feature_freezer/cli.py
index 1784725..f188a34 100644
--- a/src/opentype_feature_freezer/cli.py
+++ b/src/opentype_feature_freezer/cli.py
@@ -1,8 +1,9 @@
 import logging
-import os
 import sys
-from argparse import ArgumentParser
-from collections.abc import Callable
+from argparse import ArgumentParser, Namespace
+from collections.abc import Callable, Sequence
+from pathlib import Path
+from typing import Optional
 
 import opentype_feature_freezer
 
@@ -139,11 +140,11 @@ def parseOptions(args: Optional[Sequence[str]] = None) -> Namespace:
 
 def main(
     args: list[str] | None = None,
-    parser: Callable[[list], ArgumentParser] | None = None,
+    parser_func: Callable[[list | None], Namespace] | None = None,
 ) -> int:
     logging.basicConfig(format="%(levelname)s: %(message)s")
 
-    current_parser_func = parser_func if parser_func else parseOptions
+    current_parser_func = parseOptions if parser_func is None else parser_func
     # args_parsed will be of type Namespace (or the return type of current_parser_func)
     args_parsed: Namespace = current_parser_func(args)
 
