Esempio n. 1
0
def process_boto3_stubs(
    session: Session,
    output_path: Path,
    service_names: List[ServiceName],
    generate_setup: bool,
) -> Boto3StubsPackage:
    """
    Parse and write stubs package `boto3_stubs`.

    Arguments:
        session -- boto3 session.
        output_path -- Package output path.
        service_names -- List of known service names.
        generate_setup -- Generate ready-to-install or to-use package.

    Return:
        Parsed Boto3StubsPackage.
    """
    logger = get_logger()
    logger.debug("Parsing boto3 stubs")
    boto3_stubs_package = parse_boto3_stubs_package(
        session=session, service_names=service_names)
    logger.debug(f"Writing boto3 stubs to {NicePath(output_path)}")

    write_boto3_stubs_package(boto3_stubs_package,
                              output_path,
                              generate_setup=generate_setup)
    return boto3_stubs_package
Esempio n. 2
0
def process_boto3_stubs(
    session: Session,
    output_path: Path,
    service_names: List[ServiceName],
    generate_setup: bool,
) -> Boto3StubsPackage:
    """
    Parse and write stubs package `boto3_stubs`.

    Arguments:
        session -- boto3 session.
        output_path -- Package output path.
        service_names -- List of known service names.
        generate_setup -- Whether to generate install or installed package.

    Return:
        Parsed Boto3StubsPackage.
    """
    logger.debug("Parsing boto3 stubs")
    boto3_stub_package = parse_boto3_stubs_package(session=session,
                                                   service_names=service_names)
    logger.debug(f"Writing boto3 stubs to {NicePath(output_path)}")

    modified_paths = write_boto3_stubs_package(boto3_stub_package,
                                               output_path,
                                               generate_setup=generate_setup)
    for modified_path in modified_paths:
        logger.debug(f"Updated {NicePath(modified_path)}")

    return boto3_stub_package
    def test_parse_boto3_stubs_package(self) -> None:
        session_mock = MagicMock()
        service_name_mock = MagicMock()
        service_name2_mock = MagicMock()

        result = parse_boto3_stubs_package(
            session_mock,
            service_names=[service_name_mock, service_name2_mock])
        assert result.essential_service_names == [
            service_name_mock, service_name2_mock
        ]

        session_mock.resource.return_value = None
        parse_boto3_stubs_package(
            session_mock,
            service_names=[service_name_mock, service_name2_mock])
Esempio n. 4
0
def process_boto3_stubs_docs(
    session: Session,
    output_path: Path,
    service_names: Iterable[ServiceName],
) -> Boto3StubsPackage:
    """
    Parse and write master package docs.

    Arguments:
        session -- boto3 session
        output_path -- Package output path
        service_names -- List of known service names

    Return:
        Parsed Boto3StubsPackage.
    """
    logger = get_logger()
    package_data = Boto3StubsPackageData
    logger.debug(f"Parsing {package_data.PYPI_NAME}")
    boto3_stubs_package = parse_boto3_stubs_package(session, service_names,
                                                    package_data)
    logger.debug(
        f"Writing {package_data.PYPI_NAME} to {NicePath(output_path)}")

    package_writer = PackageWriter(output_path=output_path)
    package_writer.write_docs(
        boto3_stubs_package,
        templates_path=TEMPLATES_PATH / "boto3_stubs_docs",
    )

    return boto3_stubs_package
    def test_parse_boto3_stubs_package(self) -> None:
        session_mock = MagicMock()
        service_name_mock = MagicMock()
        service_name_mock.underscore_name = "service_name"
        service_name2_mock = MagicMock()
        service_name2_mock.underscore_name = "service_name2"

        result = parse_boto3_stubs_package(
            session_mock,
            [service_name_mock, service_name2_mock],
            Boto3StubsPackageData,
        )
        assert result.essential_service_names == [service_name_mock, service_name2_mock]

        session_mock.resource.return_value = None
        parse_boto3_stubs_package(
            session_mock,
            [service_name_mock, service_name2_mock],
            Boto3StubsPackageData,
        )
Esempio n. 6
0
def process_boto3_stubs_lite(
    session: Session,
    output_path: Path,
    service_names: Iterable[ServiceName],
    generate_setup: bool,
    version: str,
) -> Boto3StubsPackage:
    """
    Parse and write stubs package `boto3-stubs-lite`.

    Arguments:
        session -- boto3 session
        output_path -- Package output path
        service_names -- List of known service names
        generate_setup -- Generate ready-to-install or to-use package
        version -- Package version

    Return:
        Parsed Boto3StubsPackage.
    """
    logger = get_logger()
    package_data = Boto3StubsLitePackageData
    logger.debug(f"Parsing {package_data.PYPI_NAME}")
    boto3_stubs_package = parse_boto3_stubs_package(
        session=session,
        service_names=service_names,
        package_data=package_data,
    )
    boto3_stubs_package.version = version
    logger.debug(
        f"Writing {package_data.PYPI_NAME} to {NicePath(output_path)}")

    package_writer = PackageWriter(output_path=output_path,
                                   generate_setup=generate_setup)
    package_writer.write_package(
        boto3_stubs_package,
        templates_path=TEMPLATES_PATH / "boto3-stubs",
        static_files_path=BOTO3_STUBS_STATIC_PATH,
        exclude_template_names=[
            "session.pyi.jinja2",
            "__init__.pyi.jinja2",
        ],
    )

    return boto3_stubs_package
Esempio n. 7
0
def process_boto3_stubs_docs(
    session: Session,
    output_path: Path,
    service_names: List[ServiceName],
) -> Boto3StubsPackage:
    """
    Parse and write master package docs.

    Arguments:
        session -- boto3 session.
        output_path -- Package output path.
        service_names -- List of known service names.

    Return:
        Parsed Boto3StubsPackage.
    """
    logger = get_logger()
    logger.debug("Parsing boto3 stubs")
    boto3_stubs_package = parse_boto3_stubs_package(session, service_names)
    logger.debug(f"Writing boto3 stubs to {NicePath(output_path)}")

    write_boto3_stubs_docs(boto3_stubs_package, output_path=output_path)
    return boto3_stubs_package