import os
import configparser
def initialize_components(config_dir="config"):
"""
Initializes components from text files in a configuration directory.
"""
config = configparser.ConfigParser()
config.read(os.path.join(config_dir, 'global_config.txt')) # Read global config
# Database configuration
db_config = {}
if 'database' in config:
db_config['host'] = config['database']['host']
db_config['port'] = config['database']['port']
db_config['user'] = config['database']['user']
db_config['password'] = config['database']['password']
db_config['name'] = config['database']['name']
else:
print("Warning: database section not found in global_config.txt")
db_config = None # or set default values
# API configuration
api_config = {}
if 'api' in config:
api_config['base_url'] = config['api']['base_url']
api_config['api_key'] = config['api']['api_key']
else:
print("Warning: api section not found in global_config.txt")
api_config = None
# Logging configuration
log_config = {}
if 'logging' in config:
log_config['log_level'] = config['logging']['log_level']
log_config['log_file'] = config['logging']['log_file']
else:
print("Warning: logging section not found in global_config.txt")
log_config = None
# File paths configuration
file_config = {}
if 'files' in config:
file_config['input_dir'] = config['files']['input_dir']
file_config['output_dir'] = config['files']['output_dir']
else:
print("Warning: files section not found in global_config.txt")
file_config = None
return {
'database': db_config,
'api': api_config,
'logging': log_config,
'files': file_config
}
if __name__ == '__main__':
# Example usage
config_directory = "config" # relative path or absolute path
# Create the config directory if it doesn't exist
if not os.path.exists(config_directory):
os.makedirs(config_directory)
# Create a dummy global_config.txt for testing
with open(os.path.join(config_directory, 'global_config.txt'), 'w') as f:
f.write("""
[database]
host = localhost
port = 5432
user = myuser
password = mypassword
name = mydb
[api]
base_url = https://api.example.com
api_key = your_api_key
[logging]
log_level = INFO
log_file = app.log
[files]
input_dir = data/input
output_dir = data/output
""")
components = initialize_components(config_directory)
print("Components initialized successfully:")
print(components)
Add your comment