Coverage for /home/ubuntu/flatiron/python/flatiron/api.py: 90%
41 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-08 21:55 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-08 21:55 +0000
1'''
2This moudle is meant as a convenience for programmers who want a clean namespace
3to sift through.
4'''
6import argparse as __argparse
7import inspect as __inspect
8import re as __re
10from flatiron.core.config import PipelineConfig # noqa F401
11from flatiron.core.dataset import Dataset # noqa F401
12from flatiron.core.multidataset import MultiDataset # noqa F401
13from flatiron.core.logging import SlackLogger # noqa F401
14from flatiron.core.pipeline import PipelineBase # noqa F401
15# ------------------------------------------------------------------------------
18def __create_namespace(module, mode='funcs+classes'):
19 # type: (object, str) -> __argparse.Namespace
20 '''
21 Creates a clean namespace from a module.
22 Only grabs public functions from the module.
24 Args:
25 module (object): module.
26 mode (str, optional): Restric object to public functions and/or classes.
27 Default: 'funcs+classes'.
29 Returns:
30 argparse.Namespace: Clean namespace.
31 '''
32 params = {}
33 for key, val in __inspect.getmembers(module):
34 func = __inspect.isfunction(val)
35 clazz = __inspect.isclass(val)
37 legal = [func, clazz]
38 if mode == 'funcs':
39 legal = [func]
40 elif mode == 'classes':
41 legal = [clazz]
43 if any(legal) and __re.search('^[a-zA-Z]', key):
44 params[key] = val
45 return __argparse.Namespace(**params)
48try:
49 import flatiron.tf.config as __fi_tfconfig # noqa F401
50 import flatiron.tf.loss as __fi_tfloss # noqa F401
51 import flatiron.tf.metric as __fi_tfmetric # noqa F401
52 import flatiron.tf.optimizer as __fi_tfopt # noqa F401
53 import flatiron.tf.tools as __fi_tftools # noqa F401
54 import flatiron.tf.models as __fi_tfmodels # noqa F401
56 tf = __argparse.Namespace(
57 config=__create_namespace(__fi_tfconfig, 'classes'),
58 loss=__create_namespace(__fi_tfloss),
59 metric=__create_namespace(__fi_tfmetric),
60 models=__fi_tfmodels,
61 optimizer=__create_namespace(__fi_tfopt),
62 tools=__create_namespace(__fi_tftools, 'funcs'),
63 )
64except ImportError:
65 pass
67try:
68 import flatiron.torch.config as __fi_torchconfig # noqa F401
69 import flatiron.torch.loss as __fi_torchloss # noqa F401
70 import flatiron.torch.metric as __fi_torchmetric # noqa F401
71 import flatiron.torch.optimizer as __fi_torchopt # noqa F401
72 import flatiron.torch.tools as __fi_torchtools # noqa F401
73 import flatiron.torch.models as __fi_torchmodels # noqa F401
75 torch = __argparse.Namespace(
76 config=__create_namespace(__fi_torchconfig, 'classes'),
77 loss=__create_namespace(__fi_torchloss),
78 metric=__create_namespace(__fi_torchmetric),
79 models=__fi_torchmodels,
80 optimizer=__create_namespace(__fi_torchopt),
81 tools=__create_namespace(__fi_torchtools, 'funcs'),
82 )
83except ImportError:
84 pass