Skip to content

Commit 44b1b65

Browse files
committed
add detect_language_from_alias function
1 parent b72162a commit 44b1b65

1 file changed

Lines changed: 13 additions & 6 deletions

File tree

universalpython/universalpython.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,18 @@ def detect_language_from_comment(code):
8585
return (first_file, lang_code)
8686
return None
8787

88+
def detect_language_from_alias(invoked_name):
89+
"""Detect language from command alias.
90+
Returns: (filepath, lang_code) or None"""
91+
command = os.path.basename(invoked_name).lower()
92+
lang_code = DEFAULT_ALIAS_MAP.get(command)
93+
94+
if lang_code and lang_code in DEFAULT_LANGUAGE_MAP:
95+
lang_files = DEFAULT_LANGUAGE_MAP[lang_code]
96+
first_file = next(iter(lang_files.values())) if lang_files else None
97+
return (first_file, lang_code)
98+
return None
99+
88100
def determine_language(args, filename, code):
89101
"""Determine target language based on priority rules"""
90102
detected_dictionary = None
@@ -99,6 +111,7 @@ def determine_language(args, filename, code):
99111
else:
100112
detected_dictionary, detected_lang = (detect_language_from_comment(code) or
101113
detect_language_from_filename(filename) or
114+
detect_language_from_alias(sys.argv[0]) or
102115
(None, None))
103116

104117
# Update source_language with the detected language if not explicitly set
@@ -184,12 +197,6 @@ def main():
184197

185198
args = vars(ap.parse_args())
186199

187-
invoked_as = os.path.splitext(os.path.basename(sys.argv[0]))[0].lower()
188-
auto_language = DEFAULT_ALIAS_MAP.get(invoked_as)
189-
190-
if auto_language and not args.get('source_language'):
191-
args['source_language'] = auto_language
192-
193200
filename = args["file"][0]
194201
with open(filename, encoding='utf-8') as code_pyfile:
195202
code = code_pyfile.read()

0 commit comments

Comments
 (0)