1. import os
  2. import configparser
  3. def initialize_components(config_dir="config"):
  4. """
  5. Initializes components from text files in a configuration directory.
  6. """
  7. config = configparser.ConfigParser()
  8. config.read(os.path.join(config_dir, 'global_config.txt')) # Read global config
  9. # Database configuration
  10. db_config = {}
  11. if 'database' in config:
  12. db_config['host'] = config['database']['host']
  13. db_config['port'] = config['database']['port']
  14. db_config['user'] = config['database']['user']
  15. db_config['password'] = config['database']['password']
  16. db_config['name'] = config['database']['name']
  17. else:
  18. print("Warning: database section not found in global_config.txt")
  19. db_config = None # or set default values
  20. # API configuration
  21. api_config = {}
  22. if 'api' in config:
  23. api_config['base_url'] = config['api']['base_url']
  24. api_config['api_key'] = config['api']['api_key']
  25. else:
  26. print("Warning: api section not found in global_config.txt")
  27. api_config = None
  28. # Logging configuration
  29. log_config = {}
  30. if 'logging' in config:
  31. log_config['log_level'] = config['logging']['log_level']
  32. log_config['log_file'] = config['logging']['log_file']
  33. else:
  34. print("Warning: logging section not found in global_config.txt")
  35. log_config = None
  36. # File paths configuration
  37. file_config = {}
  38. if 'files' in config:
  39. file_config['input_dir'] = config['files']['input_dir']
  40. file_config['output_dir'] = config['files']['output_dir']
  41. else:
  42. print("Warning: files section not found in global_config.txt")
  43. file_config = None
  44. return {
  45. 'database': db_config,
  46. 'api': api_config,
  47. 'logging': log_config,
  48. 'files': file_config
  49. }
  50. if __name__ == '__main__':
  51. # Example usage
  52. config_directory = "config" # relative path or absolute path
  53. # Create the config directory if it doesn't exist
  54. if not os.path.exists(config_directory):
  55. os.makedirs(config_directory)
  56. # Create a dummy global_config.txt for testing
  57. with open(os.path.join(config_directory, 'global_config.txt'), 'w') as f:
  58. f.write("""
  59. [database]
  60. host = localhost
  61. port = 5432
  62. user = myuser
  63. password = mypassword
  64. name = mydb
  65. [api]
  66. base_url = https://api.example.com
  67. api_key = your_api_key
  68. [logging]
  69. log_level = INFO
  70. log_file = app.log
  71. [files]
  72. input_dir = data/input
  73. output_dir = data/output
  74. """)
  75. components = initialize_components(config_directory)
  76. print("Components initialized successfully:")
  77. print(components)

Add your comment