jebin2 commited on
Commit
5f6fd2a
·
1 Parent(s): d21066f

refactor: Standardize imports to use src as the root package.

Browse files
src/a2e_avatar.py CHANGED
@@ -8,7 +8,7 @@ import time
8
  from dataclasses import dataclass
9
  from enum import Enum
10
  import os
11
- from utils import logger
12
  from google_src import ai_studio_sdk
13
  import json_repair
14
  from src.config import get_config_value, set_config_value
 
8
  from dataclasses import dataclass
9
  from enum import Enum
10
  import os
11
+ from src.utils import logger
12
  from google_src import ai_studio_sdk
13
  import json_repair
14
  from src.config import get_config_value, set_config_value
src/asset_manager/asset_downloader.py CHANGED
@@ -9,7 +9,7 @@ from pathlib import Path
9
  from typing import Dict, List, Optional, Any
10
  from urllib.parse import urlparse
11
 
12
- from utils import logger, is_valid_video, resize_video, remove_black_padding
13
  from file_downloader import get_file_downloader
14
  from src.config import get_config_value
15
  from .video_lib import get_video_lib, VideoLib
 
9
  from typing import Dict, List, Optional, Any
10
  from urllib.parse import urlparse
11
 
12
+ from src.utils import logger, is_valid_video, resize_video, remove_black_padding
13
  from file_downloader import get_file_downloader
14
  from src.config import get_config_value
15
  from .video_lib import get_video_lib, VideoLib
src/asset_manager/asset_processor.py CHANGED
@@ -11,7 +11,7 @@ import pandas as pd
11
  import json_repair
12
  from moviepy.editor import VideoFileClip
13
  from google_src import ai_studio_sdk
14
- from utils import logger
15
  from src.config import get_config_value
16
  from .video_lib import get_video_lib
17
 
 
11
  import json_repair
12
  from moviepy.editor import VideoFileClip
13
  from google_src import ai_studio_sdk
14
+ from src.utils import logger
15
  from src.config import get_config_value
16
  from .video_lib import get_video_lib
17
 
src/asset_manager/audio_lib.py CHANGED
@@ -7,7 +7,7 @@ import re
7
  import pandas as pd
8
  from typing import Optional, List
9
 
10
- from utils import logger, clean_and_drop_empty
11
  from google_src.google_sheet import GoogleSheetReader
12
  from google_src import get_default_wrapper, GCloudWrapper
13
  from src.config import get_config_value
 
7
  import pandas as pd
8
  from typing import Optional, List
9
 
10
+ from src.utils import logger, clean_and_drop_empty
11
  from google_src.google_sheet import GoogleSheetReader
12
  from google_src import get_default_wrapper, GCloudWrapper
13
  from src.config import get_config_value
src/asset_manager/content_strategy_lib.py CHANGED
@@ -6,7 +6,7 @@ import os
6
  import pandas as pd
7
  from typing import Optional, List
8
 
9
- from utils import logger, clean_and_drop_empty
10
  from google_src.google_sheet import GoogleSheetReader
11
  from google_src import get_default_wrapper, GCloudWrapper
12
  from src.config import get_config_value
 
6
  import pandas as pd
7
  from typing import Optional, List
8
 
9
+ from src.utils import logger, clean_and_drop_empty
10
  from google_src.google_sheet import GoogleSheetReader
11
  from google_src import get_default_wrapper, GCloudWrapper
12
  from src.config import get_config_value
src/asset_manager/text_overlay_lib.py CHANGED
@@ -6,7 +6,7 @@ import os
6
  import pandas as pd
7
  from typing import Optional
8
 
9
- from utils import logger, clean_and_drop_empty
10
  from google_src.google_sheet import GoogleSheetReader
11
  from google_src import get_default_wrapper, GCloudWrapper
12
  from src.config import get_config_value
 
6
  import pandas as pd
7
  from typing import Optional
8
 
9
+ from src.utils import logger, clean_and_drop_empty
10
  from google_src.google_sheet import GoogleSheetReader
11
  from google_src import get_default_wrapper, GCloudWrapper
12
  from src.config import get_config_value
src/asset_manager/video_lib.py CHANGED
@@ -6,7 +6,7 @@ import os
6
  import pandas as pd
7
  from typing import Optional, List, Dict
8
 
9
- from utils import logger, clean_and_drop_empty
10
  from google_src.google_sheet import GoogleSheetReader
11
  from google_src import get_default_wrapper, GCloudWrapper
12
  from src.config import get_config_value
 
6
  import pandas as pd
7
  from typing import Optional, List, Dict
8
 
9
+ from src.utils import logger, clean_and_drop_empty
10
  from google_src.google_sheet import GoogleSheetReader
11
  from google_src import get_default_wrapper, GCloudWrapper
12
  from src.config import get_config_value
src/cleanup_manager.py CHANGED
@@ -2,7 +2,7 @@ import os
2
  import shutil
3
  from datetime import datetime
4
  from src.config import get_config_value
5
- from utils import logger
6
  from google_src.google_sheet import GoogleSheetReader
7
  from google_src.gcs_utils import delete_gcs_file
8
  from google_src.drive_utils import delete_file_from_drive
 
2
  import shutil
3
  from datetime import datetime
4
  from src.config import get_config_value
5
+ from src.utils import logger
6
  from google_src.google_sheet import GoogleSheetReader
7
  from google_src.gcs_utils import delete_gcs_file
8
  from google_src.drive_utils import delete_file_from_drive
src/execution_tracker.py CHANGED
@@ -1,7 +1,7 @@
1
  from datetime import datetime
2
  from src.config import get_config_value
3
  from google_src.google_sheet import GoogleSheetReader
4
- from utils import logger
5
 
6
  def load_executed_from_gsheet(setup_type=None, job_index=None):
7
  """Load executed scripts from Google Sheets logs.
 
1
  from datetime import datetime
2
  from src.config import get_config_value
3
  from google_src.google_sheet import GoogleSheetReader
4
+ from src.utils import logger
5
 
6
  def load_executed_from_gsheet(setup_type=None, job_index=None):
7
  """Load executed scripts from Google Sheets logs.
src/google_src/ai_studio_sdk.py CHANGED
@@ -4,7 +4,7 @@ from google.genai import types
4
  import uuid
5
  import time
6
  from src.utils import logger
7
- import utils
8
  from src.config import get_config_value
9
 
10
  def _get_request_id() -> str:
 
4
  import uuid
5
  import time
6
  from src.utils import logger
7
+ import src.utils as utils
8
  from src.config import get_config_value
9
 
10
  def _get_request_id() -> str:
src/main.py CHANGED
@@ -8,7 +8,7 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
8
  from src.config import get_config_value, configure_job_environment
9
  from pipeline_processor import download_all_library_videos
10
  from google_src.gcs_utils import list_gcs_files
11
- from workflows import run_content_strategy_workflow, run_plain_video_workflow
12
 
13
  def pre_check():
14
  """Validate required environment variables defined in video_generate.env."""
 
8
  from src.config import get_config_value, configure_job_environment
9
  from pipeline_processor import download_all_library_videos
10
  from google_src.gcs_utils import list_gcs_files
11
+ from src.workflows import run_content_strategy_workflow, run_plain_video_workflow
12
 
13
  def pre_check():
14
  """Validate required environment variables defined in video_generate.env."""
src/pipeline_processor.py CHANGED
@@ -1,9 +1,9 @@
1
  import os
2
  import asyncio
3
- from utils import logger, clean_tts_script
4
  from src.config import get_config_value, set_config_value
5
- from pipelines.factory import get_automation_pipeline
6
- from asset_manager import get_asset_downloader
7
  from google_src.gcs_utils import list_gcs_files
8
  import hashlib
9
 
 
1
  import os
2
  import asyncio
3
+ from src.utils import logger, clean_tts_script
4
  from src.config import get_config_value, set_config_value
5
+ from src.pipelines.factory import get_automation_pipeline
6
+ from src.asset_manager import get_asset_downloader
7
  from google_src.gcs_utils import list_gcs_files
8
  import hashlib
9
 
src/pipelines/__init__.py CHANGED
@@ -18,7 +18,7 @@ from pipelines.standard_ai_pipeline import StandardAIPipeline
18
  from pipelines.avatar_ai_pipeline import AvatarAIPipeline
19
  from pipelines.hard_cut_pipeline import HardCutPipeline
20
  from pipelines.beats_cut_pipeline import BeatsCutPipeline
21
- from pipelines.factory import get_automation_pipeline
22
 
23
  __all__ = [
24
  "ContentAutomationBase",
 
18
  from pipelines.avatar_ai_pipeline import AvatarAIPipeline
19
  from pipelines.hard_cut_pipeline import HardCutPipeline
20
  from pipelines.beats_cut_pipeline import BeatsCutPipeline
21
+ from src.pipelines.factory import get_automation_pipeline
22
 
23
  __all__ = [
24
  "ContentAutomationBase",
src/pipelines/ai_pipeline.py CHANGED
@@ -4,12 +4,12 @@ from typing import Dict, Any, Optional
4
  from moviepy.editor import AudioFileClip
5
  from abc import abstractmethod
6
 
7
- from utils import logger
8
  from src.config import get_config_value, set_config_value
9
  from google_src.gcs_utils import upload_file_to_gcs
10
  from video_generation_process import generate_video_process
11
  from google_src import ai_studio_sdk
12
- from pipelines.base import ContentAutomationBase
13
 
14
  class AIContentAutomationBase(ContentAutomationBase):
15
  """
 
4
  from moviepy.editor import AudioFileClip
5
  from abc import abstractmethod
6
 
7
+ from src.utils import logger
8
  from src.config import get_config_value, set_config_value
9
  from google_src.gcs_utils import upload_file_to_gcs
10
  from video_generation_process import generate_video_process
11
  from google_src import ai_studio_sdk
12
+ from src.pipelines.base import ContentAutomationBase
13
 
14
  class AIContentAutomationBase(ContentAutomationBase):
15
  """
src/pipelines/avatar_ai_pipeline.py CHANGED
@@ -1,7 +1,7 @@
1
  from moviepy.editor import AudioFileClip
2
- from utils import logger
3
  from src.config import get_config_value, set_config_value
4
- from pipelines.ai_pipeline import AIContentAutomationBase
5
  from a2e_avatar import create_greenscreen_video_workflow
6
 
7
  class AvatarAIPipeline(AIContentAutomationBase):
 
1
  from moviepy.editor import AudioFileClip
2
+ from src.utils import logger
3
  from src.config import get_config_value, set_config_value
4
+ from src.pipelines.ai_pipeline import AIContentAutomationBase
5
  from a2e_avatar import create_greenscreen_video_workflow
6
 
7
  class AvatarAIPipeline(AIContentAutomationBase):
src/pipelines/base.py CHANGED
@@ -3,15 +3,15 @@ import asyncio
3
  from abc import ABC, abstractmethod
4
  from typing import Dict, Any, Optional
5
 
6
- from utils import logger
7
- import utils
8
  from src.config import get_config_value, set_config_value
9
  from google_src.gcs_utils import upload_file_to_gcs
10
- from video_renderer import VideoRenderer
11
  from google_src.tts import GoogleTTS
12
  from google_src.stt import GoogleSTT
13
  from file_downloader import get_file_downloader
14
- from asset_manager import get_asset_downloader, get_audio_lib, AssetProcessor, get_text_overlay_lib
15
  from video_editor import loudness_normalize, remove_green_bg
16
  from video_editor.onscreen_cta import add_cta
17
  from google_src.ai_studio_sdk import generate
 
3
  from abc import ABC, abstractmethod
4
  from typing import Dict, Any, Optional
5
 
6
+ from src.utils import logger
7
+ import src.utils as utils
8
  from src.config import get_config_value, set_config_value
9
  from google_src.gcs_utils import upload_file_to_gcs
10
+ from src.video_renderer import VideoRenderer
11
  from google_src.tts import GoogleTTS
12
  from google_src.stt import GoogleSTT
13
  from file_downloader import get_file_downloader
14
+ from src.asset_manager import get_asset_downloader, get_audio_lib, AssetProcessor, get_text_overlay_lib
15
  from video_editor import loudness_normalize, remove_green_bg
16
  from video_editor.onscreen_cta import add_cta
17
  from google_src.ai_studio_sdk import generate
src/pipelines/beats_cut_pipeline.py CHANGED
@@ -1,9 +1,9 @@
1
  from typing import Dict, Any
2
  from moviepy.editor import AudioFileClip
3
- from utils import logger
4
  import utils
5
  from src.config import get_config_value
6
- from pipelines.non_ai_pipeline import NonAIContentAutomationBase
7
 
8
  class BeatsCutPipeline(NonAIContentAutomationBase):
9
  async def determine_video_parameters(self) -> Dict[str, Any]:
 
1
  from typing import Dict, Any
2
  from moviepy.editor import AudioFileClip
3
+ from src.utils import logger
4
  import utils
5
  from src.config import get_config_value
6
+ from src.pipelines.non_ai_pipeline import NonAIContentAutomationBase
7
 
8
  class BeatsCutPipeline(NonAIContentAutomationBase):
9
  async def determine_video_parameters(self) -> Dict[str, Any]:
src/pipelines/factory.py CHANGED
@@ -1,9 +1,9 @@
1
  from src.config import get_config_value
2
- from pipelines.base import ContentAutomationBase
3
- from pipelines.standard_ai_pipeline import StandardAIPipeline
4
- from pipelines.avatar_ai_pipeline import AvatarAIPipeline
5
- from pipelines.hard_cut_pipeline import HardCutPipeline
6
- from pipelines.beats_cut_pipeline import BeatsCutPipeline
7
 
8
  def get_automation_pipeline() -> ContentAutomationBase:
9
  """
 
1
  from src.config import get_config_value
2
+ from src.pipelines.base import ContentAutomationBase
3
+ from src.pipelines.standard_ai_pipeline import StandardAIPipeline
4
+ from src.pipelines.avatar_ai_pipeline import AvatarAIPipeline
5
+ from src.pipelines.hard_cut_pipeline import HardCutPipeline
6
+ from src.pipelines.beats_cut_pipeline import BeatsCutPipeline
7
 
8
  def get_automation_pipeline() -> ContentAutomationBase:
9
  """
src/pipelines/hard_cut_pipeline.py CHANGED
@@ -1,8 +1,8 @@
1
  from typing import Dict, Any
2
  from moviepy.editor import AudioFileClip
3
- from utils import logger
4
  from src.config import get_config_value
5
- from pipelines.non_ai_pipeline import NonAIContentAutomationBase
6
 
7
  class HardCutPipeline(NonAIContentAutomationBase):
8
  async def determine_video_parameters(self) -> Dict[str, Any]:
 
1
  from typing import Dict, Any
2
  from moviepy.editor import AudioFileClip
3
+ from src.utils import logger
4
  from src.config import get_config_value
5
+ from src.pipelines.non_ai_pipeline import NonAIContentAutomationBase
6
 
7
  class HardCutPipeline(NonAIContentAutomationBase):
8
  async def determine_video_parameters(self) -> Dict[str, Any]:
src/pipelines/non_ai_pipeline.py CHANGED
@@ -5,10 +5,10 @@ from typing import Dict, Any, List
5
  from moviepy.editor import AudioFileClip
6
  from abc import abstractmethod
7
 
8
- from utils import logger
9
- import utils
10
  from src.config import get_config_value, set_config_value
11
- from pipelines.base import ContentAutomationBase
12
 
13
  class NonAIContentAutomationBase(ContentAutomationBase):
14
  """
 
5
  from moviepy.editor import AudioFileClip
6
  from abc import abstractmethod
7
 
8
+ from src.utils import logger
9
+ import src.utils as utils
10
  from src.config import get_config_value, set_config_value
11
+ from src.pipelines.base import ContentAutomationBase
12
 
13
  class NonAIContentAutomationBase(ContentAutomationBase):
14
  """
src/pipelines/standard_ai_pipeline.py CHANGED
@@ -1,6 +1,6 @@
1
- from utils import logger
2
  from src.config import get_config_value, set_config_value
3
- from pipelines.ai_pipeline import AIContentAutomationBase
4
 
5
  class StandardAIPipeline(AIContentAutomationBase):
6
  """
 
1
+ from src.utils import logger
2
  from src.config import get_config_value, set_config_value
3
+ from src.pipelines.ai_pipeline import AIContentAutomationBase
4
 
5
  class StandardAIPipeline(AIContentAutomationBase):
6
  """
src/video_editor/loudness_normalize.py CHANGED
@@ -2,7 +2,7 @@ import subprocess
2
  import json
3
  import re
4
  from pathlib import Path
5
- from utils import logger
6
 
7
 
8
  def normalize_loudness(
 
2
  import json
3
  import re
4
  from pathlib import Path
5
+ from src.utils import logger
6
 
7
 
8
  def normalize_loudness(
src/video_editor/onscreen_cta.py CHANGED
@@ -5,7 +5,7 @@ import numpy as np
5
  import re
6
  from video_editor.safe_zone import SafeZone
7
  import uuid
8
- from utils import logger
9
 
10
  def get_emoji_unicode(emoji_char):
11
  """Convert emoji character to unicode hex string (e.g., '1f6cd')"""
 
5
  import re
6
  from video_editor.safe_zone import SafeZone
7
  import uuid
8
+ from src.utils import logger
9
 
10
  def get_emoji_unicode(emoji_char):
11
  """Convert emoji character to unicode hex string (e.g., '1f6cd')"""
src/video_editor/text_clip.py CHANGED
@@ -11,7 +11,7 @@ from PIL import Image, ImageDraw, ImageFont, ImageFilter
11
  import numpy as np
12
  from video_editor.safe_zone import SafeZone
13
  import cv2
14
- from utils import logger
15
  import math
16
 
17
  # --- Constants ---
 
11
  import numpy as np
12
  from video_editor.safe_zone import SafeZone
13
  import cv2
14
+ from src.utils import logger
15
  import math
16
 
17
  # --- Constants ---
src/video_generation_process.py CHANGED
@@ -9,7 +9,7 @@ from typing import Dict, Optional
9
  from src.config import get_config_value
10
  from google_src import ai_studio_sdk
11
  from runwayml.generate_video import generate_video_runway
12
- from utils import logger
13
  from google_src.gcs_utils import upload_file_to_gcs
14
 
15
  async def generate_video_process(prompt: str, duration: int, image_input: str = None) -> Dict:
 
9
  from src.config import get_config_value
10
  from google_src import ai_studio_sdk
11
  from runwayml.generate_video import generate_video_runway
12
+ from src.utils import logger
13
  from google_src.gcs_utils import upload_file_to_gcs
14
 
15
  async def generate_video_process(prompt: str, duration: int, image_input: str = None) -> Dict:
src/video_renderer.py CHANGED
@@ -23,7 +23,7 @@ from moviepy.editor import (
23
  vfx
24
  )
25
  import textwrap
26
- from utils import logger, reverse_clip as utils_reverse_clip, get_temp_dir
27
  import time
28
  from video_editor.text_clip import create as create_text_clip, group_words_by_time_and_width, caption_style_1, caption_style_2, caption_style_3, caption_style_4, caption_style_on_screen_text, caption_style_on_screen_text_top
29
  import subprocess
 
23
  vfx
24
  )
25
  import textwrap
26
+ from src.utils import logger, reverse_clip as utils_reverse_clip, get_temp_dir
27
  import time
28
  from video_editor.text_clip import create as create_text_clip, group_words_by_time_and_width, caption_style_1, caption_style_2, caption_style_3, caption_style_4, caption_style_on_screen_text, caption_style_on_screen_text_top
29
  import subprocess
src/workflows/content_strategy_workflow.py CHANGED
@@ -2,9 +2,9 @@ import os
2
  from execution_tracker import load_executed_from_gsheet, log_progress_to_gsheet
3
  from pipeline_processor import process_single_row, configure_row_settings
4
  from cleanup_manager import process_delete_entries
5
- from asset_manager import get_content_strategy_lib
6
  from src.config import get_config_value, set_config_value
7
- from utils import logger
8
 
9
  async def run_content_strategy_workflow(commit=False, job_index=None, total_jobs=None):
10
  """Process content strategies from Google Sheet with progress tracking."""
 
2
  from execution_tracker import load_executed_from_gsheet, log_progress_to_gsheet
3
  from pipeline_processor import process_single_row, configure_row_settings
4
  from cleanup_manager import process_delete_entries
5
+ from src.asset_manager import get_content_strategy_lib
6
  from src.config import get_config_value, set_config_value
7
+ from src.utils import logger
8
 
9
  async def run_content_strategy_workflow(commit=False, job_index=None, total_jobs=None):
10
  """Process content strategies from Google Sheet with progress tracking."""
src/workflows/plain_video_workflow.py CHANGED
@@ -3,7 +3,7 @@ from execution_tracker import load_executed_from_gsheet, log_progress_to_gsheet
3
  from pipeline_processor import process_single_row, configure_row_settings
4
  from cleanup_manager import process_delete_entries
5
  from src.config import get_config_value
6
- from utils import logger
7
 
8
  async def run_plain_video_workflow(commit=False, job_index=None, total_jobs=None):
9
  """Generate plain videos (music-synced, no AI content) with progress tracking."""
 
3
  from pipeline_processor import process_single_row, configure_row_settings
4
  from cleanup_manager import process_delete_entries
5
  from src.config import get_config_value
6
+ from src.utils import logger
7
 
8
  async def run_plain_video_workflow(commit=False, job_index=None, total_jobs=None):
9
  """Generate plain videos (music-synced, no AI content) with progress tracking."""