Coverage for python/gsfit/database_readers/__init__.py: 42%

26 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-14 15:25 +0000

1from .interface import DatabaseReaderProtocol 

2 

3 

4def get_database_reader(method: str) -> DatabaseReaderProtocol: 

5 """ 

6 Returns a "database_reader" class for accessing different databases. 

7 

8 :param method: selcts which database_reader to use. `method` is specified in the `GSFIT_code_settings.json` input file. 

9 

10 See `python/gsfit/database_readers/interface.py` for the interface (methods) definitions. 

11 """ 

12 

13 match method: 

14 case "st40_mdsplus": 

15 from .st40_mdsplus import DatabaseReader as St40MdsplusDatabaseReader 

16 

17 return St40MdsplusDatabaseReader() 

18 case "st40_mdsplus_with_digital_filter": 

19 from .st40_mdsplus_with_digital_filter import DatabaseReader as St40MdsplusWithDigitalFilterDatabaseReader 

20 

21 return St40MdsplusWithDigitalFilterDatabaseReader() 

22 case "st40_astra_mdsplus": 

23 from .st40_astra_mdsplus import DatabaseReader as St40AstraMdsplusDatabaseReader 

24 

25 return St40AstraMdsplusDatabaseReader() 

26 case "st40_spider_mdsplus": 

27 from .st40_spider_mdsplus import DatabaseReader as St40SpiderMdsplusDatabaseReader 

28 

29 return St40SpiderMdsplusDatabaseReader() 

30 case "freegs": 

31 from .freegs import DatabaseReader as FreegsDatabaseReader 

32 

33 return FreegsDatabaseReader() 

34 case "freegsnke": 

35 from .freegsnke import DatabaseReader as FreegsNkeDatabaseReader 

36 

37 return FreegsNkeDatabaseReader() 

38 case "mock_st40_mdsplus": 

39 from .mock_st40_mdsplus import DatabaseReader as MockSt40MdsplusDatabaseReader 

40 

41 return MockSt40MdsplusDatabaseReader() 

42 case _: 

43 raise ValueError(f"Unknown database reader method: {method}")