Storing configuration data in a global variable on application startup
Regardless of whether or not this is a good use of global variables, it is a poor use of a class.

Your hub.py could look like this and function exactly the same (you could still import config_data from it):

import os
import yaml

file_path = os.path.join(os.path.expanduser("~"), "config_data.yaml")
with open(file_path) as f:
    config_data = yaml.load(f)


And now that it is obvious that this does not actually do a lot, I would make this a function and put this in your actual script (or maybe a utils script, if you have many more utilities like that):

file utils.py:

import yaml

def get_config(file_path):
    with open(file_path) as f:
        return yaml.load(f)


file bot.py:

import os
from utils import get_config


FILE_PATH = os.path.join(os.path.expanduser("~"), "config_data.yaml")
CONFIG_DATA = get_config(FILE_PATH)

class Bot:
    def __init__(self):
        self.pricing_params = CONFIG_DATA["pricing"]


if __name__ == "__main__":
    bot = Bot()