I'm working on a local backtesting project using LEAN CLI (v2.5.0.0) and Python, and I'm running into a persistent issue loading custom data from a CSV file. I'm trying to integrate weekly Global M2 data (global_m2-weekly.csv) into my algorithm, but it's not being processed.

Problem: My custom GlobalM2Data is not loading. The backtest runs, but the logs show no DEBUG_SOURCE: messages (from GetSource) or GLOBAL M2: messages (from OnData), indicating LEAN isn't even attempting to load the custom CSV file. Consequently, my algorithm's logic, which relies on this data, doesn't execute any trades.

My Setup: OS: Windows. Environment: Anaconda (dedicated qclean_env active), Docker Desktop running, .NET SDK 9.0.303 installed. LEAN CLI: Installed and successfully logged in. LEAN Root Folder: [My LEAN Root Folder Path, e.g., C:\Users\MyUser\QuantConnect]. Strategy Folder: [My LEAN Root Folder Path]\BitcoinHalvingStrategy (contains Python/ and data/custom/ subfolder). Custom Data File: global_m2-weekly.csv located in [My LEAN Root Folder Path]\BitcoinHalvingStrategy\data\custom\ (file confirmed to exist here).

global_m2-weekly.csv Format (First few lines): observation_date,WM2NS 2015-07-06,12091.4 2015-07-13,12045.8 2015-07-20,12010.7

What I'm Trying to Achieve (Simplified Strategy): Subscribe to standard Coinbase BTCUSD Hourly data and use my custom GlobalM2Data (from global_m2-weekly.csv). 

Steps Taken to Troubleshoot (and current state):

Basic LEAN Setup & Standard Data Check: Successfully installed all LEAN CLI prerequisites. Successfully ran backtests using standard downloaded hourly BTC/ETH data (confirming basic LEAN functionality and standard data loading).

PythonData Class Definition: Defined GlobalM2Data (inherits PythonData) in main.py (BitcoinHalvingStrategy/Python/main.py). GetSource returns SubscriptionDataSource("data/custom/global_m2-weekly.csv", SubscriptionTransportMedium.LOCAL_FILE). It includes print() statements for DEBUG_SOURCE: and os.path.exists checks. Reader parses observation_date,WM2NS format.

Algorithm Subscription: self.AddData(GlobalM2Data, "GLOBALM2", Resolution.Daily) is used in initialize(). GlobalM2Trend indicator is created and RegisterIndicator is used.

Backtest Command: Run from [My LEAN Root Folder Path]\BitcoinHalvingStrategy: lean backtest "Python/main.py".

Actual Behavior: The backtest runs (processes ~100k data points for BTCUSD hourly), but the custom M2 data is not processed. No DEBUG_SOURCE: or ERROR_PARSING: messages appear for GlobalM2Data in the console output. The FINAL PORTFOLIO VALUE remains at initial cash ($100,000 USD).

Question for the Community: Given that GetSource isn't even being called, what common pitfalls or specific lean.json configurations for custom PythonData from a sub-project might I be missing? Or, are there any other common pitfalls for loading custom PythonData from a sub-project that I might be missing?