Skip to content

Commit

Permalink
Add option to allow perform packages build offline
Browse files Browse the repository at this point in the history
  • Loading branch information
mbalatsko committed Sep 5, 2023
1 parent 492c8cb commit 89634a7
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 0 deletions.
7 changes: 7 additions & 0 deletions mypy_boto3_builder/cli_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ class Namespace:
partial_overload: bool
skip_published: bool
disable_smart_version: bool
offline: bool


def parse_args(args: Sequence[str]) -> Namespace:
Expand Down Expand Up @@ -110,6 +111,11 @@ def parse_args(args: Sequence[str]) -> Namespace:
action="store_true",
help="Generate already installed packages for typings folder.",
)
parser.add_argument(
"--offline",
action="store_false",
help="Skip PyPI requests.",
)
parser.add_argument(
"--list-services",
action="store_true",
Expand All @@ -128,4 +134,5 @@ def parse_args(args: Sequence[str]) -> Namespace:
partial_overload=result.partial_overload,
skip_published=result.skip_published,
disable_smart_version=result.no_smart_version,
offline=result.offline,
)
5 changes: 5 additions & 0 deletions mypy_boto3_builder/generators/base_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ class BaseGenerator(ABC):
skip_published -- Whether to skip packages that are already published
disable_smart_version -- Whether to create a new postrelease if version is already published
version -- Package build version
offline -- Whether to skip PyPI requests
"""

service_package_data: type[BasePackageData]
Expand All @@ -43,6 +44,7 @@ def __init__(
skip_published: bool,
disable_smart_version: bool,
version: str,
offline: bool,
):
self.session = get_boto3_session()
self.service_names = service_names
Expand All @@ -53,6 +55,7 @@ def __init__(
self.skip_published = skip_published
self.disable_smart_version = disable_smart_version
self.version = version or self.get_library_version()
self.offline = offline

@abstractmethod
def get_postprocessor(self, service_package: ServicePackage) -> BasePostprocessor:
Expand All @@ -68,6 +71,8 @@ def get_library_version(self) -> str:
raise NotImplementedError()

def _get_package_version(self, pypi_name: str, version: str) -> str | None:
if self.offline:
return version
pypi_manager = PyPIManager(pypi_name)
if not pypi_manager.has_version(version):
return version
Expand Down
1 change: 1 addition & 0 deletions mypy_boto3_builder/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ def generate_product(
skip_published=args.skip_published,
disable_smart_version=args.disable_smart_version,
version=args.build_version,
offline=args.offline,
)
generator.generate_product(product.get_type())

Expand Down

0 comments on commit 89634a7

Please sign in to comment.