Skip to content

Commit 2526c3e

Browse files
fix: allow detect_vyper_version_from_source to return None (#27)
1 parent ad38afe commit 2526c3e

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

tests/test_versioning.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ def foo() -> int128:
4343

4444

4545
def test_no_version_in_source():
46-
with pytest.raises(UnexpectedVersionError) as excinfo:
47-
detect_vyper_version_from_source("def foo() -> int128: return 42")
48-
assert str(excinfo.value) == "No version detected in source code"
46+
assert detect_vyper_version_from_source("def foo() -> int128: return 42") is None
4947

5048

5149
def test_version_does_not_exist():

vvm/utils/versioning.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
_VERSION_RE = re.compile(r"\s*#\s*(?:pragma\s+|@)version\s+([=><^~]*)(\d+\.\d+\.\d+\S*)")
1212

1313

14-
def _detect_version_specifier(source_code: str) -> Specifier:
14+
def _detect_version_specifier(source_code: str) -> Optional[Specifier]:
1515
"""
1616
Detect the version given by the pragma version in the source code.
1717
@@ -27,7 +27,7 @@ def _detect_version_specifier(source_code: str) -> Specifier:
2727
"""
2828
match = _VERSION_RE.search(source_code)
2929
if match is None:
30-
raise UnexpectedVersionError("No version detected in source code")
30+
return None
3131

3232
specifier, version_str = match.groups()
3333
if specifier in ("~", "^"): # convert from npm-style to pypi-style
@@ -82,7 +82,7 @@ def _pick_vyper_version(
8282
return ret
8383

8484

85-
def detect_vyper_version_from_source(source_code: str, **kwargs: Any) -> Version:
85+
def detect_vyper_version_from_source(source_code: str, **kwargs: Any) -> Optional[Version]:
8686
"""
8787
Detect the version given by the pragma version in the source code.
8888
@@ -95,8 +95,10 @@ def detect_vyper_version_from_source(source_code: str, **kwargs: Any) -> Version
9595
9696
Returns
9797
-------
98-
Version
98+
Optional[Version]
9999
vyper version, or None if no version could be detected.
100100
"""
101101
specifier = _detect_version_specifier(source_code)
102+
if specifier is None:
103+
return None
102104
return _pick_vyper_version(specifier, **kwargs)

0 commit comments

Comments
 (0)