11"""Compare the dist file created by a migrated package to one created by the original."""
2+ from __future__ import annotations
3+
24import argparse
35import glob
46import logging
810import sys
911import tarfile
1012import zipfile
11- from typing import Optional
1213
1314
14- def build_file (dirname , dist_name ) :
15+ def build_file (dirname : str , dist_name : str ) -> None :
1516 """Build a dist file in a directory."""
1617 orig_dir = os .getcwd ()
1718 os .chdir (dirname )
@@ -21,21 +22,21 @@ def build_file(dirname, dist_name):
2122 os .chdir (orig_dir )
2223
2324
24- def get_tar_names (dirname ) :
25+ def get_tar_names (dirname : str ) -> set [ str ] :
2526 """Get the tarball names in a directory."""
2627 dist_file = glob .glob (f"{ dirname } /dist/*.tar.gz" )[0 ]
2728 tarf = tarfile .open (dist_file , "r:gz" )
2829 return set (tarf .getnames ())
2930
3031
31- def get_zip_names (dirname ) :
32+ def get_zip_names (dirname : str ) -> set [ str ] :
3233 """Get the zip (wheel) file names in a directory."""
3334 wheel_file = glob .glob (f"{ dirname } /dist/*.whl" )[0 ]
3435 with zipfile .ZipFile (wheel_file , "r" ) as f :
3536 return set (f .namelist ())
3637
3738
38- def filter_file (path ) :
39+ def filter_file (path : str ) -> bool :
3940 """Filter a file path for interesting files."""
4041 if "egg-info" in path :
4142 return True
@@ -47,7 +48,7 @@ def filter_file(path):
4748 return False
4849
4950
50- def main (source_dir , target_dir , dist_name ) :
51+ def main (source_dir : str , target_dir : str , dist_name : str ) -> dict [ str , list [ str ]] :
5152 """The main script."""
5253 subprocess .check_call ([sys .executable , "-m" , "pip" , "install" , "build" ])
5354
@@ -64,25 +65,25 @@ def main(source_dir, target_dir, dist_name):
6465 source_names = get_zip_names (source_dir )
6566 target_names = get_zip_names (target_dir )
6667
67- removed = source_names - target_names
68+ removed = list ( source_names - target_names )
6869 removed = [r for r in removed if not filter_file (r )]
6970 if removed :
7071 logger .info ("\n Removed_files:" )
71- [logger .info (f ) for f in removed ] # type:ignore
72+ [logger .info (f ) for f in removed ] # type:ignore[func-returns-value]
7273
73- added = target_names - source_names
74+ added = list ( target_names - source_names )
7475 added = [a for a in added if not filter_file (a )]
7576 if added :
7677 logger .info ("\n Added files:" )
77- [logger .info (f ) for f in added ] # type:ignore
78+ [logger .info (f ) for f in added ] # type:ignore[func-returns-value]
7879
7980 logger .info ("" )
8081
8182 return {"added" : added , "removed" : removed }
8283
8384
8485def make_parser (
85- parser : Optional [ argparse .ArgumentParser ] = None , prog : Optional [ str ] = None
86+ parser : argparse .ArgumentParser | None = None , prog : str | None = None
8687) -> argparse .ArgumentParser :
8788 """Make an arg parser."""
8889 if parser is None :
@@ -93,7 +94,7 @@ def make_parser(
9394 return parser
9495
9596
96- def run (args : Optional [ argparse .Namespace ] = None ) -> None :
97+ def run (args : argparse .Namespace | None = None ) -> None :
9798 """Run the cli."""
9899 if args is None :
99100 parser = make_parser (prog = f"{ sys .executable } -m hatch_jupyter_builder.compare_migrated" )
0 commit comments