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

18 statements  

« prev     ^ index     » next       coverage.py v7.15.0, created at 2026-07-07 13:12 +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 if method == "st40_mdsplus": 

14 from .st40_mdsplus import DatabaseReader as St40MdsplusDatabaseReader 

15 

16 return St40MdsplusDatabaseReader() 

17 elif method == "st40_astra_mdsplus": 

18 from .st40_astra_mdsplus import DatabaseReader as St40AstraMdsplusDatabaseReader 

19 

20 return St40AstraMdsplusDatabaseReader() 

21 elif method == "st40_spider_mdsplus": 

22 from .st40_spider_mdsplus import DatabaseReader as St40SpiderMdsplusDatabaseReader 

23 

24 return St40SpiderMdsplusDatabaseReader() 

25 elif method == "freegs": 

26 from .freegs import DatabaseReader as FreegsDatabaseReader 

27 

28 return FreegsDatabaseReader() 

29 elif method == "freegsnke": 

30 from .freegsnke import DatabaseReader as FreegsNkeDatabaseReader 

31 

32 return FreegsNkeDatabaseReader() 

33 else: 

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