tiferet 1.0.0b1__py3-none-any.whl → 1.0.0b3__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.
File without changes
tiferet/configs/error.py CHANGED
@@ -21,6 +21,14 @@ ERRORS = [
21
21
  dict(lang='en_US', text='Failed to import dependency: {} from module {}. Error: {}')
22
22
  ]
23
23
  ),
24
+ dict(
25
+ id='invalid_dependency_error',
26
+ name='Invalid Dependency Error',
27
+ error_code='INVALID_DEPENDENCY_ERROR',
28
+ message=[
29
+ dict(lang='en_US', text='Dependency {} could not be resolved: {}')
30
+ ]
31
+ ),
24
32
  dict(
25
33
  id='app_repository_import_failed',
26
34
  name='App Repository Import Failed',
@@ -44,5 +52,53 @@ ERRORS = [
44
52
  message=[
45
53
  dict(lang='en_US', text='Failed to load feature command attribute: {}. Ensure the container attributes are configured with the appropriate default settings/flags. {}')
46
54
  ]
47
- )
55
+ ),
56
+ dict(
57
+ id='error_not_found',
58
+ name='Error Not Found',
59
+ error_code='ERROR_NOT_FOUND',
60
+ message=[
61
+ dict(lang='en_US', text='Error not found: {}.')
62
+ ]
63
+ ),
64
+ dict(
65
+ id='container_attributes_not_found',
66
+ name='Container Attributes Not Found',
67
+ error_code='CONTAINER_ATTRIBUTES_NOT_FOUND',
68
+ message=[
69
+ dict(lang='en_US', text='No container attributes provided to load the container.')
70
+ ]
71
+ ),
72
+ dict(
73
+ id='dependency_type_not_found',
74
+ name='Dependency Type Not Found',
75
+ error_code='DEPENDENCY_TYPE_NOT_FOUND',
76
+ message=[
77
+ dict(lang='en_US', text='No dependency type found for attribute {} with flags {}.')
78
+ ]
79
+ ),
80
+ dict(
81
+ id='request_not_found',
82
+ name='Request Not Found',
83
+ error_code='REQUEST_NOT_FOUND',
84
+ message=[
85
+ dict(lang='en_US', text='Request data is not available for parameter parsing.')
86
+ ]
87
+ ),
88
+ dict(
89
+ id='parameter_not_found',
90
+ name='Parameter Not Found',
91
+ error_code='PARAMETER_NOT_FOUND',
92
+ message=[
93
+ dict(lang='en_US', text='Parameter {} not found in request data.')
94
+ ]
95
+ ),
96
+ dict(
97
+ id='feature_not_found',
98
+ name='Feature Not Found',
99
+ error_code='FEATURE_NOT_FOUND',
100
+ message=[
101
+ dict(lang='en_US', text='Feature with ID {} not found.')
102
+ ]
103
+ ),
48
104
  ]
@@ -120,15 +120,6 @@ class ContainerContext(Model):
120
120
  injector=injector,
121
121
  dependency_name=attribute_id,
122
122
  )
123
-
124
- # Raise an error if the dependency is not found.
125
- if not dependency:
126
- raise_error.execute(
127
- 'CONTAINER_DEPENDENCY_NOT_FOUND',
128
- f'Dependency with ID {attribute_id} not found in container with flags {flags}.',
129
- attribute_id,
130
- flags
131
- )
132
123
 
133
124
  # Return the dependency.
134
125
  return dependency
@@ -98,9 +98,14 @@ class FeatureContext(object):
98
98
  **request.data,
99
99
  **kwargs
100
100
  )
101
+
102
+ # If an error occurs during command execution, handle it based on the pass_on_error flag.
101
103
  except Exception as e:
102
104
  if not pass_on_error:
103
105
  raise e
106
+
107
+ # Set the result to None if passing on the error.
108
+ result = None
104
109
 
105
110
  # If a data key is provided, store the result in the request data.
106
111
  if data_key:
@@ -22,10 +22,8 @@ class ContainerHandler(ContainerService):
22
22
  '''
23
23
  Initialize the container handler.
24
24
 
25
- :param name: The name of the container.
26
- :type name: str
27
- :param dependencies: The dependencies.
28
- :type dependencies: dict
25
+ :param container_repo: The container repository to use for managing container attributes.
26
+ :type container_repo: ContainerRepository
29
27
  '''
30
28
 
31
29
  # Assign the container repository.
@@ -69,15 +67,20 @@ class ContainerHandler(ContainerService):
69
67
  # If constants are provided, clean the parameters using the parse_parameter command.
70
68
  constants = {k: parse_parameter.execute(v) for k, v in constants.items()}
71
69
 
72
- # Iterate through each attribute to clean parameter dictionaries.
73
- # For each attribute, parse its parameters and add them to the constants dictionary.
74
- # For each dependency, parse its parameters and add them to the constants dictionary.
70
+ # Iterate through each attribute.
75
71
  for attr in attributes:
76
- constants.update({k: parse_parameter.execute(v) for k, v in attr.parameters.items()})
77
- dependency = attr.get_dependency(flags)
72
+
73
+ # If flags are provided, check for dependencies with those flags.
74
+ dependency = attr.get_dependency(*flags)
75
+
76
+ # Update the constants dictionary with the parsed parameters from the dependency or the attribute itself.
78
77
  if dependency:
79
78
  constants.update({k: parse_parameter.execute(v) for k, v in dependency.parameters.items()})
80
79
 
80
+ # If no dependency is found, use the attribute's parameters.
81
+ else:
82
+ constants.update({k: parse_parameter.execute(v) for k, v in attr.parameters.items()})
83
+
81
84
  # Return the updated constants dictionary.
82
85
  return constants
83
86
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tiferet
3
- Version: 1.0.0b1
3
+ Version: 1.0.0b3
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,14 +7,15 @@ tiferet/commands/core.py,sha256=4MSty0qM9v8sKihoLGFoPHFOyprVQ-MlPHvPqEO3hY8,3367
7
7
  tiferet/commands/dependencies.py,sha256=bYwQXcT8HLyPRAavdSkrWI4vImsJ2H4Lr7AG9q3zxUw,2035
8
8
  tiferet/commands/settings.py,sha256=W_HdOF5QV33DczHQu5iXHOhPKwaE6DUG4KPd5m6fm_Y,2605
9
9
  tiferet/configs/__init__.py,sha256=aSp8zTjuQK6gKyOAlsobhVcrzz7MNagPvc7K1b2DFu8,80
10
- tiferet/configs/error.py,sha256=27ONO4jslmVPSQBh1rUAorAQ9GZMtwwEoCoyVxCtbGc,1457
10
+ tiferet/configs/container.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ tiferet/configs/error.py,sha256=Yod_8vx8nK5d_qUtbEZv_k8gnFHki5yCD1k_cwAxIC0,3169
11
12
  tiferet/configs/settings.py,sha256=U4Do6BNCodMBT2_Qi49Zk-saRFzCkKGx-nCs9hJETe0,867
12
13
  tiferet/contexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
14
  tiferet/contexts/app.py,sha256=EFjcz3VxBDdCSPTpSxNyyloIeOIFXoRaOv796oMDQOk,8970
14
15
  tiferet/contexts/cache.py,sha256=RsklfFmZTnFxzxh7hiKD3nuEg50LX-JuWcie7P6xfTo,1758
15
- tiferet/contexts/container.py,sha256=2oC91WlXJtAnuFJo1yyo78wO8fDZyfkwF6638L7UtIQ,3985
16
+ tiferet/contexts/container.py,sha256=v1HHEWx0Anw7xg1zsyl--uo6Zs80In-mgmR7qU8Z4Vc,3646
16
17
  tiferet/contexts/error.py,sha256=Yr0rJgUTnDSxq5rSobVxUcoibehyYfKT5SrcXClBA48,3804
17
- tiferet/contexts/feature.py,sha256=INysGSyvrqcxIyhxMXlkCsLiZP-ik3mUwnspmITw7U8,5380
18
+ tiferet/contexts/feature.py,sha256=46HKXq4ZmoVLrwVTQnKj6jcsE4FAgEarZaJ9OtXRaKw,5580
18
19
  tiferet/contracts/__init__.py,sha256=a8e7mleeLr0s554mRd1K0O0q2clisR7wGpeex1-9hsI,47
19
20
  tiferet/contracts/app.py,sha256=x1biqBRAKhYJtljG6M1MtbVxRk5nAHSGU8X1O16W_sE,1928
20
21
  tiferet/contracts/cache.py,sha256=mr_sHGSe_k5GuE22f8NfX_2ppgHHCiZrnkCK07M53cc,1653
@@ -29,7 +30,7 @@ tiferet/data/error.py,sha256=9GYkmHPDkttyOlfk-9t3lHIsoWFGVkpfDN1wMpdOfTM,2189
29
30
  tiferet/data/feature.py,sha256=hFUkbe-j9jqaMbnZq0sfo6N64NOl042oDwfadFTfVSY,3501
30
31
  tiferet/data/settings.py,sha256=mJh3EzGHATIX_geKyK6KRcCC6v2185V7swqwnym9mdQ,4277
31
32
  tiferet/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- tiferet/handlers/container.py,sha256=986kEkrjssinCHOwR0_CWEnNnaX54YI0d4UNb8n4gBU,4148
33
+ tiferet/handlers/container.py,sha256=P9PEpmotUy8jYQseWBRReIf4hz_RQIN1NF8qO4v2fmY,4220
33
34
  tiferet/handlers/error.py,sha256=j0AYMzskNMfzLydFfAh54NGxnaKlKFVzf_J3KpUOa2s,1242
34
35
  tiferet/handlers/feature.py,sha256=ar4j0OnUorZM5tR2thoLQUh2qjx9c0NuKjr1ZgPUzIY,2749
35
36
  tiferet/models/__init__.py,sha256=a8e7mleeLr0s554mRd1K0O0q2clisR7wGpeex1-9hsI,47
@@ -44,8 +45,8 @@ tiferet/proxies/yaml/app.py,sha256=qx0b2WtywfxtETN8OPfzrrzvYcuAY6uiyU9ctgpx8QI,2
44
45
  tiferet/proxies/yaml/container.py,sha256=raOeZ2CIAbNHTzPNqL2tgPvuad7-LcPL0a1NJ-nmUYY,2971
45
46
  tiferet/proxies/yaml/error.py,sha256=fFAFxbtVZ9dguvYb08TzrIBir1H0NYoe5JHjGm5HuTU,2885
46
47
  tiferet/proxies/yaml/feature.py,sha256=CKIsAqil27U0VjtVIHTiq3U9chNOZM6HAuUyH5VDF_o,2471
47
- tiferet-1.0.0b1.dist-info/licenses/LICENSE,sha256=e8_GutFM0sxbRlgUaeVsGvJ5uE-KvruLApOzIoHy_zU,1513
48
- tiferet-1.0.0b1.dist-info/METADATA,sha256=XV7cqV4Z8eOk-MHcsxzdiBevtyW0dB7JxwJCYyaBVwM,741
49
- tiferet-1.0.0b1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
50
- tiferet-1.0.0b1.dist-info/top_level.txt,sha256=g19Qw0j_VxPw-fgPF1TMPwbtHjnEhNQs0fa69wJZ6IM,8
51
- tiferet-1.0.0b1.dist-info/RECORD,,
48
+ tiferet-1.0.0b3.dist-info/licenses/LICENSE,sha256=e8_GutFM0sxbRlgUaeVsGvJ5uE-KvruLApOzIoHy_zU,1513
49
+ tiferet-1.0.0b3.dist-info/METADATA,sha256=jrxKVqjoP3snCmnJiE6pY8cVxRHcDN8H4VouPvvAbxA,741
50
+ tiferet-1.0.0b3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
51
+ tiferet-1.0.0b3.dist-info/top_level.txt,sha256=g19Qw0j_VxPw-fgPF1TMPwbtHjnEhNQs0fa69wJZ6IM,8
52
+ tiferet-1.0.0b3.dist-info/RECORD,,