55from typing import Any , Optional , Union
66
77from tomlkit import TOMLDocument , dumps , parse , table
8+ from typing_extensions import Literal
89
910from twyn .base .constants import (
1011 DEFAULT_PROJECT_TOML_FILE ,
1112 DEFAULT_SELECTOR_METHOD ,
12- DEFAULT_TOP_PYPI_PACKAGES ,
1313 DEFAULT_TWYN_TOML_FILE ,
1414 DEFAULT_USE_CACHE ,
1515 SELECTOR_METHOD_KEYS ,
@@ -34,8 +34,9 @@ class TwynConfiguration:
3434 dependency_file : Optional [str ]
3535 selector_method : str
3636 allowlist : set [str ]
37- pypi_reference : str
37+ source : Optional [ str ]
3838 use_cache : bool
39+ programming_language : Optional [Literal ["python" , "javascript" ]]
3940
4041
4142@dataclass
@@ -45,8 +46,9 @@ class ReadTwynConfiguration:
4546 dependency_file : Optional [str ] = None
4647 selector_method : Optional [str ] = None
4748 allowlist : set [str ] = field (default_factory = set )
48- pypi_reference : Optional [str ] = None
49+ source : Optional [str ] = None
4950 use_cache : Optional [bool ] = None
51+ programming_language : Optional [Literal ["python" , "javascript" ]] = None
5052
5153
5254class ConfigHandler :
@@ -60,6 +62,7 @@ def resolve_config(
6062 selector_method : Optional [str ] = None ,
6163 dependency_file : Optional [str ] = None ,
6264 use_cache : Optional [bool ] = None ,
65+ programming_language : Optional [Literal ["python" , "javascript" ]] = None ,
6366 ) -> TwynConfiguration :
6467 """Resolve the configuration for Twyn.
6568
@@ -96,8 +99,9 @@ def resolve_config(
9699 dependency_file = dependency_file or read_config .dependency_file ,
97100 selector_method = final_selector_method ,
98101 allowlist = read_config .allowlist ,
99- pypi_reference = read_config .pypi_reference or DEFAULT_TOP_PYPI_PACKAGES ,
102+ source = read_config .source ,
100103 use_cache = final_use_cache ,
104+ programming_language = programming_language or read_config .programming_language ,
101105 )
102106
103107 def add_package_to_allowlist (self , package_name : str ) -> None :
@@ -129,7 +133,7 @@ def _get_read_config(self, toml: TOMLDocument) -> ReadTwynConfiguration:
129133 dependency_file = twyn_config_data .get ("dependency_file" ),
130134 selector_method = twyn_config_data .get ("selector_method" ),
131135 allowlist = set (twyn_config_data .get ("allowlist" , set ())),
132- pypi_reference = twyn_config_data .get ("pypi_reference " ),
136+ source = twyn_config_data .get ("source " ),
133137 use_cache = twyn_config_data .get ("use_cache" ),
134138 )
135139
0 commit comments