Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions src/launchpad/__init__.py
Original file line number Diff line number Diff line change
@@ -1,9 +1 @@
"""Launchpad - CLI tool for analyzing Apple and Android app bundle sizes."""

__version__ = "0.0.1"

from .models import FileAnalysis

__all__ = [
"FileAnalysis",
]
6 changes: 0 additions & 6 deletions src/launchpad/analyzers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +0,0 @@
"""Analyzers for different platforms."""

from .android import AndroidAnalyzer
from .apple import AppleAppAnalyzer

__all__ = ["AndroidAnalyzer", "AppleAppAnalyzer"]
6 changes: 5 additions & 1 deletion src/launchpad/analyzers/android.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@
import time
from datetime import datetime, timezone

from ..artifacts import AAB, APK, AndroidArtifact, ZippedAAB, ZippedAPK
from ..artifacts.android.aab import AAB
from ..artifacts.android.apk import APK
from ..artifacts.android.zipped_aab import ZippedAAB
from ..artifacts.android.zipped_apk import ZippedAPK
from ..artifacts.artifact import AndroidArtifact
from ..models.android import AndroidAnalysisResults, AndroidAppInfo
from ..models.common import FileAnalysis, FileInfo
from ..models.treemap import FILE_TYPE_TO_TREEMAP_TYPE, TreemapType
Expand Down
7 changes: 4 additions & 3 deletions src/launchpad/analyzers/apple.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@

import lief

from ..artifacts import AppleArtifact, ZippedXCArchive
from ..artifacts.apple.zipped_xcarchive import ZippedXCArchive
from ..artifacts.artifact import AppleArtifact
from ..insights.common import DuplicateFilesInsight
from ..insights.insight import InsightsInput
from ..models import AppleAnalysisResults, AppleAppInfo, FileAnalysis, FileInfo, MachOBinaryAnalysis
from ..models.apple import AppleInsightResults
from ..models.apple import AppleAnalysisResults, AppleAppInfo, AppleInsightResults, MachOBinaryAnalysis
from ..models.common import FileAnalysis, FileInfo
from ..models.treemap import FILE_TYPE_TO_TREEMAP_TYPE, TreemapType
from ..parsers.apple.macho_parser import MachOParser
from ..parsers.apple.range_mapping_builder import RangeMappingBuilder
Expand Down
28 changes: 0 additions & 28 deletions src/launchpad/artifacts/__init__.py
Original file line number Diff line number Diff line change
@@ -1,28 +0,0 @@
from .android.aab import AAB
from .android.apk import APK
from .android.manifest.axml import AxmlUtils, BinaryXmlParser
from .android.manifest.manifest import AndroidManifest
from .android.resources.binary import BinaryResourceTable
from .android.zipped_aab import ZippedAAB
from .android.zipped_apk import ZippedAPK
from .apple.zipped_xcarchive import ZippedXCArchive
from .artifact import AndroidArtifact, AppleArtifact, Artifact
from .artifact_factory import ArtifactFactory
from .providers.zip_provider import ZipProvider

__all__ = [
"AAB",
"APK",
"ArtifactFactory",
"Artifact",
"AndroidArtifact",
"AxmlUtils",
"AndroidManifest",
"BinaryResourceTable",
"BinaryXmlParser",
"AppleArtifact",
"ZipProvider",
"ZippedAPK",
"ZippedAAB",
"ZippedXCArchive",
]
9 changes: 5 additions & 4 deletions src/launchpad/cli.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
"""Command-line interface for launchpad."""

from __future__ import annotations

import asyncio
Expand All @@ -18,8 +16,11 @@
from . import __version__
from .analyzers.android import AndroidAnalyzer
from .analyzers.apple import AppleAppAnalyzer
from .artifacts import AndroidArtifact, AppleArtifact, ArtifactFactory
from .models import AndroidAnalysisResults, AppleAnalysisResults, FileAnalysis
from .artifacts.artifact import AndroidArtifact, AppleArtifact
from .artifacts.artifact_factory import ArtifactFactory
from .models.android import AndroidAnalysisResults
from .models.apple import AppleAnalysisResults
from .models.common import FileAnalysis
from .service import run_service
from .utils.logging import setup_logging

Expand Down
43 changes: 0 additions & 43 deletions src/launchpad/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,43 +0,0 @@
"""Data models for app size analysis results."""

# Import common models that are shared across platforms
# Import Android models (placeholders for now)
from .android import AndroidAnalysisResults, AndroidAppInfo

# Import Apple-specific models
from .apple import ( # Backwards compatibility aliases
AppleAnalysisResults,
AppleAppInfo,
MachOBinaryAnalysis,
SwiftMetadata,
)
from .common import BaseAnalysisResults, BaseAppInfo, BaseBinaryAnalysis, FileAnalysis, FileInfo, SymbolInfo
from .range_mapping import BinaryTag, Range, RangeConflict, RangeMap
from .treemap import TreemapElement, TreemapResults, TreemapType

__all__ = [
# Common models
"FileInfo",
"SymbolInfo",
"FileAnalysis",
"BaseAppInfo",
"BaseBinaryAnalysis",
"BaseAnalysisResults",
# Apple-specific models
"SwiftMetadata",
"AppleAppInfo",
"MachOBinaryAnalysis",
"AppleAnalysisResults",
# Android models
"AndroidAppInfo",
"AndroidAnalysisResults",
# Range mapping models
"BinaryTag",
"Range",
"RangeConflict",
"RangeMap",
# Treemap models
"TreemapType",
"TreemapElement",
"TreemapResults",
]
3 changes: 1 addition & 2 deletions src/launchpad/models/apple.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@

from pydantic import BaseModel, ConfigDict, Field

from launchpad.models.insights import DuplicateFilesInsightResult

from .common import BaseAnalysisResults, BaseAppInfo, BaseBinaryAnalysis
from .insights import DuplicateFilesInsightResult
from .range_mapping import RangeMap


Expand Down
2 changes: 1 addition & 1 deletion src/launchpad/models/insights.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from pydantic import BaseModel, ConfigDict, Field

from launchpad.models.common import FileInfo
from .common import FileInfo


class BaseInsightResult(BaseModel):
Expand Down
6 changes: 0 additions & 6 deletions src/launchpad/parsers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +0,0 @@
from .android.android_binary_parser import AndroidBinaryParser
from .apple.macho_parser import MachOParser
from .apple.range_mapping_builder import RangeMappingBuilder
from .buffer_wrapper import BufferWrapper

__all__ = ["AndroidBinaryParser", "BufferWrapper", "MachOParser", "RangeMappingBuilder"]
2 changes: 1 addition & 1 deletion src/launchpad/parsers/apple/range_mapping_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import lief

from ...models import BinaryTag, RangeMap
from ...models.range_mapping import BinaryTag, RangeMap
from ...utils.logging import get_logger
from .macho_parser import MachOParser

Expand Down
15 changes: 0 additions & 15 deletions src/launchpad/utils/__init__.py
Original file line number Diff line number Diff line change
@@ -1,15 +0,0 @@
"""Utility modules for app size analyzer."""

from .android.bundletool import Bundletool, DeviceSpec
from .file_utils import calculate_file_hash, cleanup_directory, create_temp_directory, get_file_size
from .logging import setup_logging

__all__ = [
"Bundletool",
"DeviceSpec",
"calculate_file_hash",
"cleanup_directory",
"create_temp_directory",
"get_file_size",
"setup_logging",
]
8 changes: 4 additions & 4 deletions src/launchpad/utils/treemap/treemap_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
from pathlib import Path
from typing import Dict, List, Literal

from launchpad.utils.treemap.treemap_element_builder import TreemapElementBuilder

from ...models import FileAnalysis, FileInfo, MachOBinaryAnalysis, TreemapElement, TreemapResults
from ...models.treemap import TreemapType
from ...models.apple import MachOBinaryAnalysis
from ...models.common import FileAnalysis, FileInfo
from ...models.treemap import TreemapElement, TreemapResults, TreemapType
from ...utils.file_utils import calculate_aligned_install_size
from ...utils.treemap.treemap_element_builder import TreemapElementBuilder
from ..logging import get_logger
from .default_file_element_builder import DefaultFileElementBuilder
from .macho_element_builder import MachOElementBuilder
Expand Down
3 changes: 2 additions & 1 deletion src/launchpad/utils/treemap/treemap_element_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

from abc import ABC, abstractmethod

from ...models import FileInfo, TreemapElement
from ...models.common import FileInfo
from ...models.treemap import TreemapElement
from ..logging import get_logger

logger = get_logger(__name__)
Expand Down
5 changes: 3 additions & 2 deletions tests/integration/test_ios_range_mapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
import pytest

from launchpad.analyzers.apple import AppleAppAnalyzer
from launchpad.artifacts import AppleArtifact, ArtifactFactory
from launchpad.models import BinaryTag
from launchpad.artifacts.artifact import AppleArtifact
from launchpad.artifacts.artifact_factory import ArtifactFactory
from launchpad.models.range_mapping import BinaryTag


class TestIOSRangeMapping:
Expand Down
2 changes: 0 additions & 2 deletions tests/unit/test_cli.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
"""Unit tests for CLI functionality."""

from click.testing import CliRunner

from launchpad import __version__
Expand Down