falyx 0.1.35__py3-none-any.whl → 0.1.37__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.
- falyx/action/action.py +6 -6
- falyx/action/http_action.py +1 -1
- falyx/action/menu_action.py +2 -2
- falyx/action/select_file_action.py +1 -1
- falyx/command.py +1 -1
- falyx/context.py +2 -2
- falyx/debug.py +4 -4
- falyx/falyx.py +9 -9
- falyx/hook_manager.py +1 -1
- falyx/hooks.py +5 -5
- falyx/parsers/utils.py +1 -1
- falyx/retry.py +9 -9
- falyx/version.py +1 -1
- {falyx-0.1.35.dist-info → falyx-0.1.37.dist-info}/METADATA +1 -1
- {falyx-0.1.35.dist-info → falyx-0.1.37.dist-info}/RECORD +18 -19
- falyx/.coverage +0 -0
- {falyx-0.1.35.dist-info → falyx-0.1.37.dist-info}/LICENSE +0 -0
- {falyx-0.1.35.dist-info → falyx-0.1.37.dist-info}/WHEEL +0 -0
- {falyx-0.1.35.dist-info → falyx-0.1.37.dist-info}/entry_points.txt +0 -0
falyx/action/action.py
CHANGED
@@ -149,7 +149,7 @@ class BaseAction(ABC):
|
|
149
149
|
if self.inject_last_result and self.shared_context:
|
150
150
|
key = self.inject_into
|
151
151
|
if key in kwargs:
|
152
|
-
logger.warning("[%s]
|
152
|
+
logger.warning("[%s] Overriding '%s' with last_result", self.name, key)
|
153
153
|
kwargs = dict(kwargs)
|
154
154
|
kwargs[key] = self.shared_context.last_result()
|
155
155
|
return kwargs
|
@@ -278,7 +278,7 @@ class Action(BaseAction):
|
|
278
278
|
context.exception = error
|
279
279
|
await self.hooks.trigger(HookType.ON_ERROR, context)
|
280
280
|
if context.result is not None:
|
281
|
-
logger.info("[%s]
|
281
|
+
logger.info("[%s] Recovered: %s", self.name, self.name)
|
282
282
|
return context.result
|
283
283
|
raise
|
284
284
|
finally:
|
@@ -518,7 +518,7 @@ class ChainedAction(BaseAction, ActionListMixin):
|
|
518
518
|
for index, action in enumerate(self.actions):
|
519
519
|
if action._skip_in_chain:
|
520
520
|
logger.debug(
|
521
|
-
"[%s]
|
521
|
+
"[%s] Skipping consumed action '%s'", self.name, action.name
|
522
522
|
)
|
523
523
|
continue
|
524
524
|
shared_context.current_index = index
|
@@ -530,7 +530,7 @@ class ChainedAction(BaseAction, ActionListMixin):
|
|
530
530
|
self.actions[index + 1], FallbackAction
|
531
531
|
):
|
532
532
|
logger.warning(
|
533
|
-
"[%s]
|
533
|
+
"[%s] Fallback triggered: %s, recovering with fallback "
|
534
534
|
"'%s'.",
|
535
535
|
self.name,
|
536
536
|
error,
|
@@ -585,10 +585,10 @@ class ChainedAction(BaseAction, ActionListMixin):
|
|
585
585
|
rollback = getattr(action, "rollback", None)
|
586
586
|
if rollback:
|
587
587
|
try:
|
588
|
-
logger.warning("[%s]
|
588
|
+
logger.warning("[%s] Rolling back...", action.name)
|
589
589
|
await action.rollback(*args, **kwargs)
|
590
590
|
except Exception as error:
|
591
|
-
logger.error("[%s]
|
591
|
+
logger.error("[%s] Rollback failed: %s", action.name, error)
|
592
592
|
|
593
593
|
def register_hooks_recursively(self, hook_type: HookType, hook: Hook):
|
594
594
|
"""Register a hook for all actions and sub-actions."""
|
falyx/action/http_action.py
CHANGED
@@ -28,7 +28,7 @@ async def close_shared_http_session(context: ExecutionContext) -> None:
|
|
28
28
|
if session and should_close:
|
29
29
|
await session.close()
|
30
30
|
except Exception as error:
|
31
|
-
logger.warning("
|
31
|
+
logger.warning("Error closing shared HTTP session: %s", error)
|
32
32
|
|
33
33
|
|
34
34
|
class HTTPAction(Action):
|
falyx/action/menu_action.py
CHANGED
@@ -124,10 +124,10 @@ class MenuAction(BaseAction):
|
|
124
124
|
return result
|
125
125
|
|
126
126
|
except BackSignal:
|
127
|
-
logger.debug("[%s][BackSignal]
|
127
|
+
logger.debug("[%s][BackSignal] <- Returning to previous menu", self.name)
|
128
128
|
return None
|
129
129
|
except QuitSignal:
|
130
|
-
logger.debug("[%s][QuitSignal]
|
130
|
+
logger.debug("[%s][QuitSignal] <- Exiting application", self.name)
|
131
131
|
raise
|
132
132
|
except Exception as error:
|
133
133
|
context.exception = error
|
@@ -119,7 +119,7 @@ class SelectFileAction(BaseAction):
|
|
119
119
|
description=file.name, value=value, style=self.style
|
120
120
|
)
|
121
121
|
except Exception as error:
|
122
|
-
logger.
|
122
|
+
logger.error("Failed to parse %s: %s", file.name, error)
|
123
123
|
return options
|
124
124
|
|
125
125
|
def _find_cancel_key(self, options) -> str:
|
falyx/command.py
CHANGED
@@ -245,7 +245,7 @@ class Command(BaseModel):
|
|
245
245
|
if self.preview_before_confirm:
|
246
246
|
await self.preview()
|
247
247
|
if not await confirm_async(self.confirmation_prompt):
|
248
|
-
logger.info("[Command:%s]
|
248
|
+
logger.info("[Command:%s] Cancelled by user.", self.key)
|
249
249
|
raise CancelSignal(f"[Command:{self.key}] Cancelled by confirmation.")
|
250
250
|
|
251
251
|
context.start_timer()
|
falyx/context.py
CHANGED
@@ -140,9 +140,9 @@ class ExecutionContext(BaseModel):
|
|
140
140
|
message.append(f"Duration: {summary['duration']:.3f}s | ")
|
141
141
|
|
142
142
|
if summary["exception"]:
|
143
|
-
message.append(f"
|
143
|
+
message.append(f"Exception: {summary['exception']}")
|
144
144
|
else:
|
145
|
-
message.append(f"
|
145
|
+
message.append(f"Result: {summary['result']}")
|
146
146
|
(logger or self.console.print)("".join(message))
|
147
147
|
|
148
148
|
def to_log_line(self) -> str:
|
falyx/debug.py
CHANGED
@@ -10,7 +10,7 @@ def log_before(context: ExecutionContext):
|
|
10
10
|
args = ", ".join(map(repr, context.args))
|
11
11
|
kwargs = ", ".join(f"{k}={v!r}" for k, v in context.kwargs.items())
|
12
12
|
signature = ", ".join(filter(None, [args, kwargs]))
|
13
|
-
logger.info("[%s]
|
13
|
+
logger.info("[%s] Starting -> %s(%s)", context.name, context.action, signature)
|
14
14
|
|
15
15
|
|
16
16
|
def log_success(context: ExecutionContext):
|
@@ -18,18 +18,18 @@ def log_success(context: ExecutionContext):
|
|
18
18
|
result_str = repr(context.result)
|
19
19
|
if len(result_str) > 100:
|
20
20
|
result_str = f"{result_str[:100]} ..."
|
21
|
-
logger.debug("[%s]
|
21
|
+
logger.debug("[%s] Success -> Result: %s", context.name, result_str)
|
22
22
|
|
23
23
|
|
24
24
|
def log_after(context: ExecutionContext):
|
25
25
|
"""Log the completion of an action, regardless of success or failure."""
|
26
|
-
logger.debug("[%s]
|
26
|
+
logger.debug("[%s] Finished in %.3fs", context.name, context.duration)
|
27
27
|
|
28
28
|
|
29
29
|
def log_error(context: ExecutionContext):
|
30
30
|
"""Log an error that occurred during the action."""
|
31
31
|
logger.error(
|
32
|
-
"[%s]
|
32
|
+
"[%s] Error (%s): %s",
|
33
33
|
context.name,
|
34
34
|
type(context.exception).__name__,
|
35
35
|
context.exception,
|
falyx/falyx.py
CHANGED
@@ -852,7 +852,7 @@ class Falyx:
|
|
852
852
|
self.last_run_command = selected_command
|
853
853
|
|
854
854
|
if selected_command == self.exit_command:
|
855
|
-
logger.info("
|
855
|
+
logger.info("Back selected: exiting %s", self.get_title())
|
856
856
|
return False
|
857
857
|
|
858
858
|
context = self._create_context(selected_command)
|
@@ -895,7 +895,7 @@ class Falyx:
|
|
895
895
|
return None
|
896
896
|
|
897
897
|
logger.info(
|
898
|
-
"[run_key]
|
898
|
+
"[run_key] Executing: %s — %s",
|
899
899
|
selected_command.key,
|
900
900
|
selected_command.description,
|
901
901
|
)
|
@@ -908,10 +908,10 @@ class Falyx:
|
|
908
908
|
context.result = result
|
909
909
|
|
910
910
|
await self.hooks.trigger(HookType.ON_SUCCESS, context)
|
911
|
-
logger.info("[run_key]
|
911
|
+
logger.info("[run_key] '%s' complete.", selected_command.description)
|
912
912
|
except (KeyboardInterrupt, EOFError) as error:
|
913
913
|
logger.warning(
|
914
|
-
"[run_key]
|
914
|
+
"[run_key] Interrupted by user: %s", selected_command.description
|
915
915
|
)
|
916
916
|
raise FalyxError(
|
917
917
|
f"[run_key] ⚠️ '{selected_command.description}' interrupted by user."
|
@@ -920,7 +920,7 @@ class Falyx:
|
|
920
920
|
context.exception = error
|
921
921
|
await self.hooks.trigger(HookType.ON_ERROR, context)
|
922
922
|
logger.error(
|
923
|
-
"[run_key]
|
923
|
+
"[run_key] Failed: %s — %s: %s",
|
924
924
|
selected_command.description,
|
925
925
|
type(error).__name__,
|
926
926
|
error,
|
@@ -994,12 +994,12 @@ class Falyx:
|
|
994
994
|
logger.info("EOF or KeyboardInterrupt. Exiting menu.")
|
995
995
|
break
|
996
996
|
except QuitSignal:
|
997
|
-
logger.info("QuitSignal
|
997
|
+
logger.info("[QuitSignal]. <- Exiting menu.")
|
998
998
|
break
|
999
999
|
except BackSignal:
|
1000
|
-
logger.info("BackSignal
|
1000
|
+
logger.info("[BackSignal]. <- Returning to the menu.")
|
1001
1001
|
except CancelSignal:
|
1002
|
-
logger.info("CancelSignal
|
1002
|
+
logger.info("[CancelSignal]. <- Returning to the menu.")
|
1003
1003
|
finally:
|
1004
1004
|
logger.info("Exiting menu: %s", self.get_title())
|
1005
1005
|
if self.exit_message:
|
@@ -1024,7 +1024,7 @@ class Falyx:
|
|
1024
1024
|
logging.getLogger("falyx").setLevel(logging.DEBUG)
|
1025
1025
|
|
1026
1026
|
if self.cli_args.debug_hooks:
|
1027
|
-
logger.debug("
|
1027
|
+
logger.debug("Enabling global debug hooks for all commands")
|
1028
1028
|
self.register_all_with_debug_hooks()
|
1029
1029
|
|
1030
1030
|
if self.cli_args.command == "list":
|
falyx/hook_manager.py
CHANGED
@@ -65,7 +65,7 @@ class HookManager:
|
|
65
65
|
hook(context)
|
66
66
|
except Exception as hook_error:
|
67
67
|
logger.warning(
|
68
|
-
"
|
68
|
+
"[Hook:%s] raised an exception during '%s' for '%s': %s",
|
69
69
|
hook.__name__,
|
70
70
|
hook_type,
|
71
71
|
context.name,
|
falyx/hooks.py
CHANGED
@@ -56,10 +56,10 @@ class CircuitBreaker:
|
|
56
56
|
if self.open_until:
|
57
57
|
if time.time() < self.open_until:
|
58
58
|
raise CircuitBreakerOpen(
|
59
|
-
f"
|
59
|
+
f"Circuit open for '{name}' until {time.ctime(self.open_until)}."
|
60
60
|
)
|
61
61
|
else:
|
62
|
-
logger.info("
|
62
|
+
logger.info("Circuit closed again for '%s'.")
|
63
63
|
self.failures = 0
|
64
64
|
self.open_until = None
|
65
65
|
|
@@ -67,7 +67,7 @@ class CircuitBreaker:
|
|
67
67
|
name = context.name
|
68
68
|
self.failures += 1
|
69
69
|
logger.warning(
|
70
|
-
"
|
70
|
+
"CircuitBreaker: '%s' failure %s/%s.",
|
71
71
|
name,
|
72
72
|
self.failures,
|
73
73
|
self.max_failures,
|
@@ -75,7 +75,7 @@ class CircuitBreaker:
|
|
75
75
|
if self.failures >= self.max_failures:
|
76
76
|
self.open_until = time.time() + self.reset_timeout
|
77
77
|
logger.error(
|
78
|
-
"
|
78
|
+
"Circuit opened for '%s' until %s.", name, time.ctime(self.open_until)
|
79
79
|
)
|
80
80
|
|
81
81
|
def after_hook(self, _: ExecutionContext):
|
@@ -87,4 +87,4 @@ class CircuitBreaker:
|
|
87
87
|
def reset(self):
|
88
88
|
self.failures = 0
|
89
89
|
self.open_until = None
|
90
|
-
logger.info("
|
90
|
+
logger.info("Circuit reset.")
|
falyx/parsers/utils.py
CHANGED
falyx/retry.py
CHANGED
@@ -53,7 +53,7 @@ class RetryHandler:
|
|
53
53
|
self.policy.delay = delay
|
54
54
|
self.policy.backoff = backoff
|
55
55
|
self.policy.jitter = jitter
|
56
|
-
logger.info("
|
56
|
+
logger.info("Retry policy enabled: %s", self.policy)
|
57
57
|
|
58
58
|
async def retry_on_error(self, context: ExecutionContext) -> None:
|
59
59
|
from falyx.action import Action
|
@@ -67,21 +67,21 @@ class RetryHandler:
|
|
67
67
|
last_error = error
|
68
68
|
|
69
69
|
if not target:
|
70
|
-
logger.warning("[%s]
|
70
|
+
logger.warning("[%s] No action target. Cannot retry.", name)
|
71
71
|
return None
|
72
72
|
|
73
73
|
if not isinstance(target, Action):
|
74
74
|
logger.warning(
|
75
|
-
"[%s]
|
75
|
+
"[%s] RetryHandler only supports only supports Action objects.", name
|
76
76
|
)
|
77
77
|
return None
|
78
78
|
|
79
79
|
if not getattr(target, "is_retryable", False):
|
80
|
-
logger.warning("[%s]
|
80
|
+
logger.warning("[%s] Not retryable.", name)
|
81
81
|
return None
|
82
82
|
|
83
83
|
if not self.policy.enabled:
|
84
|
-
logger.warning("[%s]
|
84
|
+
logger.warning("[%s] Retry policy is disabled.", name)
|
85
85
|
return None
|
86
86
|
|
87
87
|
while retries_done < self.policy.max_retries:
|
@@ -92,7 +92,7 @@ class RetryHandler:
|
|
92
92
|
sleep_delay += random.uniform(-self.policy.jitter, self.policy.jitter)
|
93
93
|
|
94
94
|
logger.info(
|
95
|
-
"[%s]
|
95
|
+
"[%s] Retrying (%s/%s) in %ss due to '%s'...",
|
96
96
|
name,
|
97
97
|
retries_done,
|
98
98
|
self.policy.max_retries,
|
@@ -104,13 +104,13 @@ class RetryHandler:
|
|
104
104
|
result = await target.action(*context.args, **context.kwargs)
|
105
105
|
context.result = result
|
106
106
|
context.exception = None
|
107
|
-
logger.info("[%s]
|
107
|
+
logger.info("[%s] Retry succeeded on attempt %s.", name, retries_done)
|
108
108
|
return None
|
109
109
|
except Exception as retry_error:
|
110
110
|
last_error = retry_error
|
111
111
|
current_delay *= self.policy.backoff
|
112
112
|
logger.warning(
|
113
|
-
"[%s]
|
113
|
+
"[%s] Retry attempt %s/%s failed due to '%s'.",
|
114
114
|
name,
|
115
115
|
retries_done,
|
116
116
|
self.policy.max_retries,
|
@@ -118,4 +118,4 @@ class RetryHandler:
|
|
118
118
|
)
|
119
119
|
|
120
120
|
context.exception = last_error
|
121
|
-
logger.error("[%s]
|
121
|
+
logger.error("[%s] All %s retries failed.", name, self.policy.max_retries)
|
falyx/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.1.
|
1
|
+
__version__ = "0.1.37"
|
@@ -1,30 +1,29 @@
|
|
1
|
-
falyx/.coverage,sha256=DNx1Ew1vSvuIcKko7httsyL62erJxVQ6CKtuJKxRVj4,53248
|
2
1
|
falyx/.pytyped,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
2
|
falyx/__init__.py,sha256=MZzno-7HvIYM6pDjDP4t22aN7OaBTTlQYOb7W3Gw_7g,615
|
4
3
|
falyx/__main__.py,sha256=g_LwJieofK3DJzCYtpkAMEeOXhzSLQenb7pRVUqcf-Y,2152
|
5
4
|
falyx/action/.pytyped,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
5
|
falyx/action/__init__.py,sha256=Vd-XNp_MEpyfbHL9PAhSOXQAlwKKsIpZFbO5pskHdOA,1047
|
7
|
-
falyx/action/action.py,sha256
|
6
|
+
falyx/action/action.py,sha256=guC5ztULpozlsryqpH8GPYxOxpH2KDVhlcPkDoQYKZk,33350
|
8
7
|
falyx/action/action_factory.py,sha256=iJ7jx8WxQ9W2v1-xBoUzFD3X-3IFQjjClfGYCg5io4o,4834
|
9
|
-
falyx/action/http_action.py,sha256=
|
8
|
+
falyx/action/http_action.py,sha256=DNeSBWh58UTFGlfFyTk2GnhS54hpLAJLC0QNbq2cYic,5799
|
10
9
|
falyx/action/io_action.py,sha256=tQVonWst44ZXR_87H6-aQ62DZf7qfpbBiKE1oTp9qVA,10061
|
11
|
-
falyx/action/menu_action.py,sha256=
|
10
|
+
falyx/action/menu_action.py,sha256=B4RBqjo0llYaAlblnO4XlRjVPhU89n7oiPKJLpzjwzc,5761
|
12
11
|
falyx/action/prompt_menu_action.py,sha256=8Qh8egbqiF9agTdeU45IrlehY6fxGc9rtyhIe0nfKK4,5165
|
13
|
-
falyx/action/select_file_action.py,sha256=
|
12
|
+
falyx/action/select_file_action.py,sha256=JzKa989xxVOHv2WX6ql9VEBKPoaUolFH62rbIRKL5RU,8605
|
14
13
|
falyx/action/selection_action.py,sha256=8ts0WM3UF5ziMGLeg8faTVKwvzzOGPKxeZJF2z3o9BY,12918
|
15
14
|
falyx/action/signal_action.py,sha256=5UMqvzy7fBnLANGwYUWoe1VRhrr7e-yOVeLdOnCBiJo,1350
|
16
15
|
falyx/action/types.py,sha256=NfZz1ufZuvCgp-he2JIItbnjX7LjOUadjtKbjpRlSIY,1399
|
17
16
|
falyx/action/user_input_action.py,sha256=TQ7BlH9lQ5h_t28q6UXCH0hbr2b0vJP7syJmM-okwS0,3478
|
18
17
|
falyx/bottom_bar.py,sha256=iWxgOKWgn5YmREeZBuGA50FzqzEfz1-Vnqm0V_fhldc,7383
|
19
|
-
falyx/command.py,sha256=
|
18
|
+
falyx/command.py,sha256=1ppsADoWLpMW1hPy1gVvp2OMeQlEkWFUz1yd5rdDvxg,14594
|
20
19
|
falyx/config.py,sha256=sApU53PHM8h8eV9YIuTDM1qSGp24AbNy_jJ6GAZhjEo,9597
|
21
|
-
falyx/context.py,sha256=
|
22
|
-
falyx/debug.py,sha256=
|
20
|
+
falyx/context.py,sha256=NfBpxzFzn-dYP6I3wrtGFucqm__UZo4SSBLmM8yYayE,10330
|
21
|
+
falyx/debug.py,sha256=IRpYtdH8yeXJEsfP5rASALmBQb2U_EwrTudF2GIDdZY,1545
|
23
22
|
falyx/exceptions.py,sha256=kK9k1v7LVNjJSwYztRa9Krhr3ZOI-6Htq2ZjlYICPKg,922
|
24
23
|
falyx/execution_registry.py,sha256=rctsz0mrIHPToLZqylblVjDdKWdq1x_JBc8GwMP5sJ8,4710
|
25
|
-
falyx/falyx.py,sha256=
|
26
|
-
falyx/hook_manager.py,sha256=
|
27
|
-
falyx/hooks.py,sha256=
|
24
|
+
falyx/falyx.py,sha256=_cbjz1OU1ZhuEucbOHWyVv21G9NwfeQAPhsrkJaDG2w,44427
|
25
|
+
falyx/hook_manager.py,sha256=TFuHQnAncS_rk6vuw-VSx8bnAppLuHfrZCrzLwqcO9o,2979
|
26
|
+
falyx/hooks.py,sha256=xMfQROib0BNsaQF4AXJpmCiGePoE1f1xpcdibgnVZWM,2913
|
28
27
|
falyx/init.py,sha256=abcSlPmxVeByLIHdUkNjqtO_tEkO3ApC6f9WbxsSEWg,3393
|
29
28
|
falyx/logger.py,sha256=1Mfb_vJFJ1tQwziuyU2p-cSMi2Js8N2byniFEnI6vOQ,132
|
30
29
|
falyx/menu.py,sha256=Dp_afAkRZoLe7s2DmNrePQelL-ZSpOELUFr-7pC_eGo,3740
|
@@ -34,10 +33,10 @@ falyx/parsers/__init__.py,sha256=l0QMf89uJHhTpOqQfiV3tx7aAHvELqDFWAyjCbwEgBQ,370
|
|
34
33
|
falyx/parsers/argparse.py,sha256=k8j0MiTwV53UqesZ-GsYSi7-T7XOOo7o1DB8UnFFZ7Q,31545
|
35
34
|
falyx/parsers/parsers.py,sha256=yGyAwNIJQz12LU_WF87aW4xbBmJtyEY7RnLRFqXAsio,5763
|
36
35
|
falyx/parsers/signature.py,sha256=i4iOiJxv70sxQYivKKXC_YOsShRUYfcI8Cjq8yVZvMo,2262
|
37
|
-
falyx/parsers/utils.py,sha256=
|
36
|
+
falyx/parsers/utils.py,sha256=MDYXYtbXlRU5t_oNNaB-FKQA4ZgdXcMk9VnU6Iwrgtg,895
|
38
37
|
falyx/prompt_utils.py,sha256=qgk0bXs7mwzflqzWyFhEOTpKQ_ZtMIqGhKeg-ocwNnE,1542
|
39
38
|
falyx/protocols.py,sha256=mesdq5CjPF_5Kyu7Evwr6qMT71tUHlw0SjjtmnggTZw,495
|
40
|
-
falyx/retry.py,sha256=
|
39
|
+
falyx/retry.py,sha256=sGRE9QhdZK98M99G8F15WUsJ_fYLNyLlCgu3UANaSQs,3744
|
41
40
|
falyx/retry_utils.py,sha256=EAzc-ECTu8AxKkmlw28ioOW9y-Y9tLQ0KasvSkBRYgs,694
|
42
41
|
falyx/selection.py,sha256=PLfiULkJ76cn1yBFwUux9KEMt6NFF00_Nj5oHS2e498,12894
|
43
42
|
falyx/signals.py,sha256=Y_neFXpfHs7qY0syw9XcfR9WeAGRcRw1nG_2L1JJqKE,1083
|
@@ -46,9 +45,9 @@ falyx/themes/__init__.py,sha256=1CZhEUCin9cUk8IGYBUFkVvdHRNNJBEFXccHwpUKZCA,284
|
|
46
45
|
falyx/themes/colors.py,sha256=4aaeAHJetmeNInI0Zytg4E3YqKfPFelpf04vtjSvsS8,19776
|
47
46
|
falyx/utils.py,sha256=u3puR4Bh-unNBw9a0V9sw7PDTIzRaNLolap0oz5bVIk,6718
|
48
47
|
falyx/validators.py,sha256=t5iyzVpY8tdC4rfhr4isEfWpD5gNTzjeX_Hbi_Uq6sA,1328
|
49
|
-
falyx/version.py,sha256=
|
50
|
-
falyx-0.1.
|
51
|
-
falyx-0.1.
|
52
|
-
falyx-0.1.
|
53
|
-
falyx-0.1.
|
54
|
-
falyx-0.1.
|
48
|
+
falyx/version.py,sha256=fZtrhA5kKp_n3T2sxpEh-YEt3P1ZAtGrg_Xuu1JX3ZQ,23
|
49
|
+
falyx-0.1.37.dist-info/LICENSE,sha256=B0yqgaHuSdhN7T3OBmgQSiDTy8HqT5Oe_dLypRe4Ra4,1073
|
50
|
+
falyx-0.1.37.dist-info/METADATA,sha256=8JFkRdWqbMFVlG16bZPKD6XABilRSFQcpeKQFxPfCJY,5521
|
51
|
+
falyx-0.1.37.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
52
|
+
falyx-0.1.37.dist-info/entry_points.txt,sha256=j8owOSl2j1Ss8DtGMnKfgehKaolqnIPhVFHaUBLUnMs,45
|
53
|
+
falyx-0.1.37.dist-info/RECORD,,
|
falyx/.coverage
DELETED
Binary file
|
File without changes
|
File without changes
|
File without changes
|