Skip to content

Commit bf7c6c9

Browse files
committed
feat: add attributes_mistakes dict to handle lower case methods
1 parent 891d1c9 commit bf7c6c9

File tree

1 file changed

+49
-24
lines changed

1 file changed

+49
-24
lines changed

ResultContainer/__init__.py

Lines changed: 49 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -168,50 +168,70 @@
168168

169169
EXCLUDE_ATTRIBUTES = {
170170
"ResultErr",
171-
"Ok",
172-
"Err",
173-
"empty_init",
171+
"as_Ok",
172+
"as_Err",
173+
"_empty_init",
174174
"is_Ok",
175175
"is_Err",
176+
"Ok",
177+
"Err",
176178
"Err_msg",
177179
"Err_traceback",
178-
"raises",
179-
"expect",
180-
"expect_Err",
181180
"unwrap",
182181
"unwrap_or",
182+
"expect",
183+
"expect_Err",
184+
"raises",
185+
"getitem",
186+
"setitem",
187+
"is_Ok_and",
188+
"is_Err_and",
189+
"Ok_and",
190+
"Ok_or",
191+
"inspect",
192+
"inspect_apply",
193+
"inspect_Err",
183194
"apply",
184195
"apply_or",
185196
"apply_or_else",
186197
"apply_Err",
198+
"apply_map",
187199
"map",
188200
"map_or",
189201
"map_or_else",
190202
"map_Err",
203+
"iter_wrap",
204+
"iter_unwrap",
191205
"iter",
192-
"is_Ok_and",
193-
"copy",
194-
"update_result",
195206
"Err_msg_contains",
196207
"add_Err_msg",
208+
"update_result",
209+
"copy",
197210
"str",
198211
"_operator_overload_prep",
199-
"_success",
212+
"_operator_overload_error",
200213
}
201214

202215
ATTRIBUTES_MISTAKES = {
203216
"resulterr": "ResultErr",
204-
"ok": "Ok",
205-
"err": "Err",
217+
"as_ok": "as_Ok",
218+
"as_err": "as_Err",
206219
"is_ok": "is_Ok",
207220
"is_err": "is_Err",
221+
"ok": "Ok",
222+
"err": "Err",
208223
"err_msg": "Err_msg",
209224
"err_traceback": "Err_traceback",
210225
"expect_err": "expect_Err",
226+
"is_ok_and": "is_Ok_and",
227+
"is_err_and": "is_Err_and",
228+
"ok_and": "Ok_and",
229+
"ok_or": "Ok_or",
230+
"inspect_apply": "inspect_apply",
231+
"inspect_err": "inspect_Err",
211232
"apply_err": "apply_Err",
212233
"map_err": "map_Err",
213234
"err_msg_contains": "Err_msg_contains",
214-
"is_ok_and": "is_Ok_and",
215235
"add_err_msg": "add_Err_msg",
216236
}
217237

@@ -746,7 +766,7 @@ class Result:
746766
Returns original Result instance.
747767
- If ok_func fails, no exception is raised .
748768
749-
inspect_err(err_func, *args, **kwargs):
769+
inspect_Err(err_func, *args, **kwargs):
750770
If `Err(e)`, then evaluates `err_func(e)`.
751771
Returns original Result instance.
752772
- If err_func fails, raises an exception.
@@ -1103,7 +1123,7 @@ def inspect_apply(self, ok_func, *args, **kwargs):
11031123
pass
11041124
return self
11051125

1106-
def inspect_err(self, err_func, *args, **kwargs):
1126+
def inspect_Err(self, err_func, *args, **kwargs):
11071127
if not self._success:
11081128
err_func(self._val, *args, **kwargs)
11091129
return self
@@ -1403,17 +1423,22 @@ def __getattr__(self, name):
14031423
The result of the attribute wrapped as a Result or modifies underlying value.
14041424
"""
14051425
if name in ATTRIBUTES_MISTAKES:
1406-
self.add_Err_msg(
1407-
f"Result.{name} is a possible case mistake. Did you mean Result.{ATTRIBUTES_MISTAKES[name]} instead?"
1408-
f" Or did you forget () on a method or put () on an attrib."
1409-
f" If Ok(x.{name}) is what you want, then do Ok(x).expect().{name}",
1410-
_levels=-4,
1411-
)
1412-
elif name in EXCLUDE_ATTRIBUTES:
1426+
attr = getattr(self, ATTRIBUTES_MISTAKES[name])
1427+
if callable(attr):
1428+
return lambda *args, **kwargs: attr(*args, **kwargs)
1429+
return attr
1430+
# self.add_Err_msg(
1431+
# f"Result.{name} is a possible case mistake. Did you mean Result.{ATTRIBUTES_MISTAKES[name]} instead?"
1432+
# f" Or did you forget () on a method or put () on an attrib."
1433+
# f" If Ok(x.{name}) is what you want, then do Ok(x).expect().{name}",
1434+
# _levels=-4,
1435+
# )
1436+
if name in EXCLUDE_ATTRIBUTES:
14131437
self.add_Err_msg(
14141438
f"{name} is an excluded attribute/method."
1415-
f" Did you forget () on a method or put () on an attrib."
1416-
f" If Ok(x.{name}) is what you want, then do Ok(x).expect().{name}",
1439+
f" Did you forget () on a method or put () on an attribute."
1440+
f" If Ok(x.{name}) is what you want, then do Ok(x).unwrap().{name}",
1441+
f" or Result(Ok(x).unwrap().{name})",
14171442
_levels=-4,
14181443
)
14191444
elif self.is_Err:

0 commit comments

Comments
 (0)