From 77b6dfa6f483705ae63cabac30451d5af0c154c0 Mon Sep 17 00:00:00 2001 From: Deepam Mhatre Date: Sat, 11 Jul 2026 15:29:31 +0530 Subject: [PATCH 1/2] fix: support extension-only inputs in detect_lang --- repo2readme/utils/detect_language.py | 4 +++- tests/test_detect_language.py | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 tests/test_detect_language.py diff --git a/repo2readme/utils/detect_language.py b/repo2readme/utils/detect_language.py index 8f84621..464590b 100644 --- a/repo2readme/utils/detect_language.py +++ b/repo2readme/utils/detect_language.py @@ -31,4 +31,6 @@ def detect_lang(path:str): _,extension=os.path.splitext(path) - return EXTENSION_LANGUAGE_MAP.get(extension,"unknown") \ No newline at end of file + if not extension and path.startswith("."): + extension=path + return EXTENSION_LANGUAGE_MAP.get(extension.lower(),"unknown") diff --git a/tests/test_detect_language.py b/tests/test_detect_language.py new file mode 100644 index 0000000..3aca1b6 --- /dev/null +++ b/tests/test_detect_language.py @@ -0,0 +1,21 @@ +from repo2readme.utils.detect_language import detect_lang + + +def test_detect_lang_with_extension_only(): + assert detect_lang(".py") == "python" + assert detect_lang(".js") == "javascript" + assert detect_lang(".cpp") == "cpp" + assert detect_lang(".md") == "markdown" + assert detect_lang(".json") == "json" + + +def test_detect_lang_with_path(): + assert detect_lang("main.py") == "python" + assert detect_lang("index.js") == "javascript" + assert detect_lang("src/config.yaml") == "yaml" + + +def test_detect_lang_unknown(): + assert detect_lang(".unknown") == "unknown" + assert detect_lang("README") == "unknown" + assert detect_lang(".txt") == "unknown" \ No newline at end of file From 3ff692fe44a5487972be706afef81f7aa49f1321 Mon Sep 17 00:00:00 2001 From: Deepam Mhatre Date: Sat, 11 Jul 2026 15:35:40 +0530 Subject: [PATCH 2/2] style: format detect_lang function --- repo2readme/utils/detect_language.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/repo2readme/utils/detect_language.py b/repo2readme/utils/detect_language.py index 464590b..0ba4003 100644 --- a/repo2readme/utils/detect_language.py +++ b/repo2readme/utils/detect_language.py @@ -29,8 +29,10 @@ ".css": "css", } -def detect_lang(path:str): - _,extension=os.path.splitext(path) +def detect_lang(path: str) -> str: + _, extension = os.path.splitext(path) + if not extension and path.startswith("."): - extension=path - return EXTENSION_LANGUAGE_MAP.get(extension.lower(),"unknown") + extension = path + + return EXTENSION_LANGUAGE_MAP.get(extension.lower(), "unknown") \ No newline at end of file