Fixing sizes.
diff --git a/scripts/python-skywater-pdk/skywater_pdk/sizes.py b/scripts/python-skywater-pdk/skywater_pdk/sizes.py
index a95a26b..ac6ff64 100644
--- a/scripts/python-skywater-pdk/skywater_pdk/sizes.py
+++ b/scripts/python-skywater-pdk/skywater_pdk/sizes.py
@@ -18,7 +18,35 @@
 
 
 def parse_size(s):
-    return TransistorSize.from_suffix(s)
+    """
+
+    >>> parse_size('_1')
+    TransistorSizeNumeric(units=1)
+
+    >>> parse_size('sky130_fd_sc_ms__sdfrtp_1.v')
+    TransistorSizeNumeric(units=1)
+
+    >>> parse_size('libraries/sky130_fd_sc_ms/v0.0.1/cells/sdfrtp/sky130_fd_sc_ms__sdfrtp_1.v')
+    TransistorSizeNumeric(units=1)
+
+    >>> parse_size('libraries/sky130_fd_sc_ms/v0.0.1/cells/sdfrtp/sky130_fd_sc_ms__sdfrtp_1.bb.blackbox.v')
+    TransistorSizeNumeric(units=1)
+
+    >>> parse_size('libraries/sky130_fd_sc_ms/v0.0.1/cells/sdfrtp/sky130_fd_sc_ms__sdfrtp.v')
+    >>> parse_size('sky130_fd_sc_ms__sdfrtp.v')
+    >>> parse_size('_blah')
+    """
+    dirname, s = os.path.split(s)
+    if '.' in s:
+        s = s.split('.', 1)[0]
+    if s.count('_') > 1:
+        s = '_' + (s.rsplit('_', 1)[-1])
+    if not s or s == '_':
+        return None
+    try:
+        return TransistorSize.from_suffix(s)
+    except InvalidSuffixError as e:
+        return None
 
 
 class InvalidSuffixError(ValueError):