From 3ff9a8a506b10946cb78221c4b11f8925c543b77 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Wed, 15 May 2019 23:51:00 -0700 Subject: [PATCH] Shorten long names when writing Maybe turn this into an option later? --- masque/file/gdsii.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/masque/file/gdsii.py b/masque/file/gdsii.py index 37b1a22..d57810b 100644 --- a/masque/file/gdsii.py +++ b/masque/file/gdsii.py @@ -511,7 +511,14 @@ def _labels_to_texts(labels: List[Label]) -> List[gdsii.elements.Text]: def _disambiguate_pattern_names(patterns): used_names = [] for pat in patterns: - sanitized_name = re.compile('[^A-Za-z0-9_\?\$]').sub('_', pat.name) + if len(pat.name) > 32: + shortened_name = pat.name[:26] + logger.warning('Pattern name "{}" is too long ({}/32 chars),'.format(pat.name, len(pat.name)) + \ + ' shortening to "{}" before generating suffix'.format(shortened_name)) + else: + shortened_name = pat.name + + sanitized_name = re.compile('[^A-Za-z0-9_\?\$]').sub('_', shortened_name) i = 0 suffixed_name = sanitized_name