@@ -62,9 +62,11 @@ def create_version_pattern(name: str) -> re.Pattern[str]:
6262
6363@lru_cache
6464def resolve_pyproject (
65+ * ,
6566 pyproject : str | PathLike [str ],
6667 temp_directory : str | PathLike [str ],
6768 extras : tuple [str , ...],
69+ no_dev : bool ,
6870) -> Path :
6971 origin_pyproject , temp_directory = Path (pyproject ), Path (temp_directory )
7072 new_pyproject = temp_directory / "pyproject.toml"
@@ -75,7 +77,11 @@ def resolve_pyproject(
7577
7678 command = ["uv" , "export" , "--no-hashes" , f"--output-file={ requirements !s} " ]
7779 extras = tuple (extra for extra in extras if extra in valid_extras )
78- command = [* command , * chain .from_iterable (("--extra" , extra ) for extra in extras )]
80+ if extras :
81+ command .extend (chain .from_iterable (("--extra" , extra ) for extra in extras ))
82+ if no_dev :
83+ command .append ("--no-dev" )
84+
7985 logger .info ("Running command:\n %s" , " " .join (command ))
8086
8187 uv_process = subprocess .run ( # noqa: S603
@@ -114,12 +120,16 @@ def find_version(name: str, lock_file: str | PathLike[str]) -> str:
114120
115121
116122def find_version_in_pyproject (
123+ * ,
117124 name : str ,
118125 pyproject : str | PathLike [str ],
119126 temp_directory : str | PathLike [str ],
120127 extras : tuple [str , ...],
128+ no_dev : bool ,
121129) -> str :
122- lock_file = resolve_pyproject (pyproject , temp_directory , extras )
130+ lock_file = resolve_pyproject (
131+ pyproject = pyproject , temp_directory = temp_directory , extras = extras , no_dev = no_dev
132+ )
123133 return find_version (name , lock_file )
124134
125135
@@ -159,10 +169,12 @@ def resolve_arg(arg_string: str) -> Args:
159169
160170
161171def process (
172+ * ,
162173 args : list [Args ],
163174 pyproject : str | PathLike [str ],
164175 pre_commit : str | PathLike [str ],
165176 extras : tuple [str , ...],
177+ no_dev : bool ,
166178) -> None :
167179 if args :
168180 logger .info ("Processing args:" )
@@ -176,7 +188,11 @@ def process(
176188 with tempfile .TemporaryDirectory () as temp_directory :
177189 for index , arg in enumerate (args ):
178190 version = find_version_in_pyproject (
179- arg ["name" ], pyproject , temp_directory , extras
191+ name = arg ["name" ],
192+ pyproject = pyproject ,
193+ temp_directory = temp_directory ,
194+ extras = extras ,
195+ no_dev = no_dev ,
180196 )
181197 version = f"{ arg .get ('prefix' , '' )} { version } { arg .get ('suffix' , '' )} "
182198
@@ -244,19 +260,31 @@ def _main() -> None:
244260 )
245261 parser .add_argument ("-l" , "--log-level" , type = str , default = "INFO" )
246262 parser .add_argument ("-e" , "--extra" , action = "append" , default = [])
263+ parser .add_argument ("--no-dev" , action = "store_true" , default = False )
247264 parser .add_argument ("dummy" , nargs = "*" )
248265
249266 args = parser .parse_args ()
250267 args_string : list [str ] = args .args
251268 version_args = [resolve_arg (arg ) for arg in args_string ]
252- pyproject , pre_commit , extras = args .pyproject , args .pre_commit , args .extra
269+ pyproject , pre_commit , extras , no_dev = (
270+ args .pyproject ,
271+ args .pre_commit ,
272+ args .extra ,
273+ args .no_dev ,
274+ )
253275 logger .setLevel (args .log_level )
254276
255277 pre_commit_version = version ("pre-commit" )
256278 logger .debug ("python version: %s" , sys .version )
257279 logger .debug ("pre-commit version: %s" , pre_commit_version )
258280
259- process (version_args , pyproject , pre_commit , tuple (extras ))
281+ process (
282+ args = version_args ,
283+ pyproject = pyproject ,
284+ pre_commit = pre_commit ,
285+ extras = tuple (extras ),
286+ no_dev = no_dev ,
287+ )
260288
261289
262290def main () -> None :
0 commit comments