tiferet 1.0.0a14__py3-none-any.whl → 1.0.0a15__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
tiferet/contexts/app.py CHANGED
@@ -40,7 +40,7 @@ class AppContext(Model):
40
40
  app_repo_parameters = DictType(
41
41
  StringType(),
42
42
  default=dict(
43
- app_config_file='app/configs/app.yaml'
43
+ app_config_file='app/configs/app.yml'
44
44
  ),
45
45
  metadata=dict(
46
46
  description='The application repository parameters.'
@@ -48,25 +48,57 @@ class AppContext(Model):
48
48
  )
49
49
 
50
50
  # * method: run
51
- def run(self, interface_id: str, **parameters):
51
+ def run(self, interface_id: str, dependencies: Dict[str, Any] = {}, **kwargs) -> Any:
52
+ '''
53
+ Run the application interface.
54
+
55
+ :param interface_id: The interface ID.
56
+ :type interface_id: str
57
+ :param dependencies: The dependencies.
58
+ :type dependencies: dict
59
+ :param kwargs: Additional keyword arguments.
60
+ :type kwargs: dict
61
+ :return: The response.
62
+ :rtype: Any
63
+ '''
64
+
65
+ # Load the interface.
66
+ app_interface = self.load_interface(interface_id, **dependencies)
67
+
68
+ # Run the interface.
69
+ return app_interface.run(**kwargs)
70
+
71
+ # * method: load_interface
72
+ def load_interface(self, interface_id: str, **dependencies) -> AppInterface:
73
+ '''
74
+ Load the application interface.
75
+
76
+ :param interface_id: The interface ID.
77
+ :type interface_id: str
78
+ :param dependencies: The dependencies.
79
+ :type dependencies: dict
80
+ :return: The application interface.
81
+ :rtype: AppInterface
82
+ '''
52
83
 
53
84
  # Import the app repository.
54
- app_repo = self.import_app_repo(self.app_repo_module_path, self.app_repo_class_name)
85
+ app_repo = self.import_app_repo(
86
+ self.app_repo_module_path,
87
+ self.app_repo_class_name,
88
+ **self.app_repo_parameters
89
+ )
55
90
 
56
91
  # Get the app interface.
57
92
  app_interface = app_repo.get_interface(interface_id)
58
93
 
59
94
  # Create the injector.
60
- injector = self.create_injector(app_interface)
95
+ injector = self.create_injector(app_interface, **dependencies)
61
96
 
62
97
  # Load the app interface context.
63
- app_interface_context: AppInterfaceContext = getattr(injector, 'app_context')
64
-
65
- # Run the app interface context with the parameters.
66
- return app_interface_context.run(**parameters)
98
+ return getattr(injector, 'app_context')
67
99
 
68
100
  # * method: import_app_repo
69
- def import_app_repo(self, module_path: str, class_name: str, parameters: Dict[str, Any]) -> AppRepository:
101
+ def import_app_repo(self, module_path: str, class_name: str, **kwargs) -> AppRepository:
70
102
  '''
71
103
  Import the app repository.
72
104
 
@@ -74,27 +106,29 @@ class AppContext(Model):
74
106
  :type module_path: str
75
107
  :param class_name: The class name.
76
108
  :type class_name: str
77
- :param parameters: The parameters.
78
- :type parameters: dict
109
+ :param kwargs: Additional keyword arguments.
110
+ :type kwargs: dict
79
111
  :return: The app repository.
80
112
  :rtype: AppRepository
81
113
  '''
82
114
 
83
115
  # Try to import the module provided.
84
116
  try:
85
- return import_dependency(module_path, class_name)(**parameters)
117
+ return import_dependency(module_path, class_name)(**kwargs)
86
118
 
87
119
  # Return None if nothing comes up.
88
120
  except:
89
121
  return None
90
122
 
91
123
  # ** method: create_injector
92
- def create_injector(self, app_interface: AppInterface) -> Any:
124
+ def create_injector(self, app_interface: AppInterface, **kwargs) -> Any:
93
125
  '''
94
126
  Create the injector.
95
127
 
96
128
  :param app_interface: The app interface.
97
129
  :type app_interface: AppInterface
130
+ :param kwargs: Additional keyword arguments.
131
+ :type kwargs: dict
98
132
  :return: The injector.
99
133
  :rtype: Any
100
134
  '''
@@ -112,10 +146,10 @@ class AppContext(Model):
112
146
  )
113
147
 
114
148
  # Add the remaining dependencies from the app interface.
115
- dependencies.update({dep.attribute_id: self.import_dependency(dep.module_path, dep.class_name) for dep in app_interface.dependencies})
149
+ dependencies.update({dep.attribute_id: import_dependency(dep.module_path, dep.class_name) for dep in app_interface.dependencies})
116
150
 
117
151
  # Create the injector.
118
- return create_injector(app_interface.id, **dependencies)
152
+ return create_injector(app_interface.id, **dependencies, **kwargs)
119
153
 
120
154
 
121
155
  # ** context: app_interface_context
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tiferet
3
- Version: 1.0.0a14
3
+ Version: 1.0.0a15
4
4
  Summary: A multi-purpose application framework embodying beauty in form.
5
5
  Home-page: https://github.com/greatstrength/app
6
6
  Download-URL: https://github.com/greatstrength/app
@@ -7,7 +7,7 @@ tiferet/commands/error.py,sha256=ixMYH0yrEWlMAVGDSRke3IGoWaOShfmiXntrUC2b3wY,573
7
7
  tiferet/commands/feature.py,sha256=tXa-MDf14ByIJqwQFeSUu2QLUjHPdsyvFNhj1XeaQVk,2507
8
8
  tiferet/configs/__init__.py,sha256=NfT6XFNcJznOLXjMuNmj3XeaOPVWwbc-N4kVWaVjuD0,845
9
9
  tiferet/contexts/__init__.py,sha256=PvTgdVMav7B4pbKV4vxfNTMSod88DKGSR_0W8reIyC4,235
10
- tiferet/contexts/app.py,sha256=3vMjr5WwMBZPY6KjHZ6MPMke-5C1Waxr5fcgl-g04SA,7192
10
+ tiferet/contexts/app.py,sha256=90DAr0K09UzWbblarzP3Jw7lhADb2wjkaTFSIFJ8OnQ,8187
11
11
  tiferet/contexts/container.py,sha256=Wo_2HENb7XPpIcZSkEikSGh8vWmClpLgkBbSW-jMDK4,6619
12
12
  tiferet/contexts/error.py,sha256=Gqewmk5WqbER9umNvR9gliQNi-bmbaNyXOSG4jUZfJc,3262
13
13
  tiferet/contexts/feature.py,sha256=kVVRpIyjWa3T2QoT2R-T7clOIQEpNMYa8ZJRVxgY_6o,3730
@@ -28,8 +28,8 @@ tiferet/repos/app.py,sha256=VxPanqWw4lGi1VoajTXN3sv9yy_XV6m_95E6DTdMHb8,2900
28
28
  tiferet/repos/container.py,sha256=n9Tz83QETdAocGAT4oKcvllEGwFp069pYqkXs2-KFFk,3519
29
29
  tiferet/repos/error.py,sha256=jDze41uioKwKEkAswkzLubVw-bxsVyeUkJwyeO5Es0E,4245
30
30
  tiferet/repos/feature.py,sha256=GxOV8XHNwz9YY3I8Wch6GaDskvkdi8l1hM9E9fCg1y0,3644
31
- tiferet-1.0.0a14.dist-info/LICENSE,sha256=e8_GutFM0sxbRlgUaeVsGvJ5uE-KvruLApOzIoHy_zU,1513
32
- tiferet-1.0.0a14.dist-info/METADATA,sha256=p17Z9Eywv7FLOn8XpujluWSMYXvEGuCwaxtwWoBNO4M,536
33
- tiferet-1.0.0a14.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
34
- tiferet-1.0.0a14.dist-info/top_level.txt,sha256=g19Qw0j_VxPw-fgPF1TMPwbtHjnEhNQs0fa69wJZ6IM,8
35
- tiferet-1.0.0a14.dist-info/RECORD,,
31
+ tiferet-1.0.0a15.dist-info/LICENSE,sha256=e8_GutFM0sxbRlgUaeVsGvJ5uE-KvruLApOzIoHy_zU,1513
32
+ tiferet-1.0.0a15.dist-info/METADATA,sha256=g7VFuy4ajCOsjyL5Vxku8WSSOaTW8AkfM5fjTPAg7fE,536
33
+ tiferet-1.0.0a15.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
34
+ tiferet-1.0.0a15.dist-info/top_level.txt,sha256=g19Qw0j_VxPw-fgPF1TMPwbtHjnEhNQs0fa69wJZ6IM,8
35
+ tiferet-1.0.0a15.dist-info/RECORD,,