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
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-14 15:25 +0000
1from .interface import DatabaseReaderProtocol
4def get_database_reader(method: str) -> DatabaseReaderProtocol:
5 """
6 Returns a "database_reader" class for accessing different databases.
8 :param method: selcts which database_reader to use. `method` is specified in the `GSFIT_code_settings.json` input file.
10 See `python/gsfit/database_readers/interface.py` for the interface (methods) definitions.
11 """
13 match method:
14 case "st40_mdsplus":
15 from .st40_mdsplus import DatabaseReader as St40MdsplusDatabaseReader
17 return St40MdsplusDatabaseReader()
18 case "st40_mdsplus_with_digital_filter":
19 from .st40_mdsplus_with_digital_filter import DatabaseReader as St40MdsplusWithDigitalFilterDatabaseReader
21 return St40MdsplusWithDigitalFilterDatabaseReader()
22 case "st40_astra_mdsplus":
23 from .st40_astra_mdsplus import DatabaseReader as St40AstraMdsplusDatabaseReader
25 return St40AstraMdsplusDatabaseReader()
26 case "st40_spider_mdsplus":
27 from .st40_spider_mdsplus import DatabaseReader as St40SpiderMdsplusDatabaseReader
29 return St40SpiderMdsplusDatabaseReader()
30 case "freegs":
31 from .freegs import DatabaseReader as FreegsDatabaseReader
33 return FreegsDatabaseReader()
34 case "freegsnke":
35 from .freegsnke import DatabaseReader as FreegsNkeDatabaseReader
37 return FreegsNkeDatabaseReader()
38 case "mock_st40_mdsplus":
39 from .mock_st40_mdsplus import DatabaseReader as MockSt40MdsplusDatabaseReader
41 return MockSt40MdsplusDatabaseReader()
42 case _:
43 raise ValueError(f"Unknown database reader method: {method}")