dotflow 0.15.0.dev4__tar.gz → 0.15.0.dev5__tar.gz

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.
Files changed (117) hide show
  1. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/PKG-INFO +2 -2
  2. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/README.md +1 -1
  3. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/__init__.py +1 -1
  4. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/task.py +1 -1
  5. dotflow-0.15.0.dev5/dotflow/providers/server_default.py +23 -0
  6. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/pyproject.toml +2 -2
  7. dotflow-0.15.0.dev4/dotflow/providers/server_default.py +0 -112
  8. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/LICENSE +0 -0
  9. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/__init__.py +0 -0
  10. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/file.py +0 -0
  11. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/flow.py +0 -0
  12. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/http.py +0 -0
  13. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/log.py +0 -0
  14. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/metrics.py +0 -0
  15. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/notify.py +0 -0
  16. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/scheduler.py +0 -0
  17. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/server.py +0 -0
  18. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/storage.py +0 -0
  19. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/tcp.py +0 -0
  20. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/abc/tracer.py +0 -0
  21. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/__init__.py +0 -0
  22. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/command.py +0 -0
  23. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/commands/__init__.py +0 -0
  24. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/commands/cloud.py +0 -0
  25. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/commands/deploy.py +0 -0
  26. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/commands/init.py +0 -0
  27. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/commands/log.py +0 -0
  28. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/commands/schedule.py +0 -0
  29. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/commands/start.py +0 -0
  30. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/commands/storage.py +0 -0
  31. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/setup.py +0 -0
  32. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/validators/__init__.py +0 -0
  33. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cli/validators/start.py +0 -0
  34. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/__init__.py +0 -0
  35. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/alibaba/__init__.py +0 -0
  36. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/alibaba/constants.py +0 -0
  37. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/alibaba/deployers/__init__.py +0 -0
  38. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/alibaba/deployers/fc.py +0 -0
  39. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/alibaba/deployers/fc_scheduled.py +0 -0
  40. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/alibaba/services/__init__.py +0 -0
  41. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/alibaba/services/cr.py +0 -0
  42. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/__init__.py +0 -0
  43. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/constants.py +0 -0
  44. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/deployers/__init__.py +0 -0
  45. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/deployers/base_lambda.py +0 -0
  46. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/deployers/ecs.py +0 -0
  47. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/deployers/ecs_scheduled.py +0 -0
  48. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/deployers/lambda_.py +0 -0
  49. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/deployers/lambda_api.py +0 -0
  50. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/deployers/lambda_s3.py +0 -0
  51. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/deployers/lambda_sqs.py +0 -0
  52. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/schedule.py +0 -0
  53. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/services/__init__.py +0 -0
  54. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/services/cloudwatch.py +0 -0
  55. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/services/ecr.py +0 -0
  56. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/services/iam.py +0 -0
  57. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/aws/services/s3.py +0 -0
  58. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/core.py +0 -0
  59. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/gcp/__init__.py +0 -0
  60. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/gcp/constants.py +0 -0
  61. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/gcp/deployers/__init__.py +0 -0
  62. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/gcp/deployers/cloudrun.py +0 -0
  63. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/gcp/services/__init__.py +0 -0
  64. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/gcp/services/apis.py +0 -0
  65. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/gcp/services/artifact_registry.py +0 -0
  66. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/gcp/services/gcs.py +0 -0
  67. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/github/__init__.py +0 -0
  68. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/github/constants.py +0 -0
  69. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/github/deployers/__init__.py +0 -0
  70. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/cloud/github/deployers/actions.py +0 -0
  71. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/__init__.py +0 -0
  72. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/action.py +0 -0
  73. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/config.py +0 -0
  74. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/context.py +0 -0
  75. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/decorators/__init__.py +0 -0
  76. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/decorators/time.py +0 -0
  77. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/dotflow.py +0 -0
  78. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/engine.py +0 -0
  79. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/exception.py +0 -0
  80. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/module.py +0 -0
  81. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/serializers/__init__.py +0 -0
  82. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/serializers/task.py +0 -0
  83. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/serializers/transport.py +0 -0
  84. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/serializers/workflow.py +0 -0
  85. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/types/__init__.py +0 -0
  86. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/types/execution.py +0 -0
  87. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/types/overlap.py +0 -0
  88. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/types/status.py +0 -0
  89. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/types/storage.py +0 -0
  90. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/types/workflow.py +0 -0
  91. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/core/workflow.py +0 -0
  92. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/logging.py +0 -0
  93. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/main.py +0 -0
  94. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/__init__.py +0 -0
  95. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/log_default.py +0 -0
  96. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/log_opentelemetry.py +0 -0
  97. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/log_sentry.py +0 -0
  98. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/metrics_default.py +0 -0
  99. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/metrics_opentelemetry.py +0 -0
  100. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/notify_default.py +0 -0
  101. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/notify_discord.py +0 -0
  102. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/notify_telegram.py +0 -0
  103. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/scheduler_cron.py +0 -0
  104. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/scheduler_default.py +0 -0
  105. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/storage_default.py +0 -0
  106. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/storage_file.py +0 -0
  107. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/storage_gcs.py +0 -0
  108. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/storage_s3.py +0 -0
  109. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/tracer_default.py +0 -0
  110. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/tracer_opentelemetry.py +0 -0
  111. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/providers/tracer_sentry.py +0 -0
  112. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/settings.py +0 -0
  113. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/types.py +0 -0
  114. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/utils/__init__.py +0 -0
  115. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/utils/basic_functions.py +0 -0
  116. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/utils/error_handler.py +0 -0
  117. {dotflow-0.15.0.dev4 → dotflow-0.15.0.dev5}/dotflow/utils/tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dotflow
3
- Version: 0.15.0.dev4
3
+ Version: 0.15.0.dev5
4
4
  Summary: 🎲 Dotflow turns an idea into flow! Lightweight Python library for execution pipelines with retry, parallel, cron and async support.
5
5
  License: MIT License
6
6
 
@@ -90,7 +90,7 @@ Description-Content-Type: text/markdown
90
90
  [![Downloads](https://img.shields.io/pypi/dm/dotflow?style=flat-square)](https://pypi.org/project/dotflow/)
91
91
  [![Stars](https://img.shields.io/github/stars/dotflow-io?label=Stars&style=flat-square)](https://github.com/dotflow-io/dotflow)
92
92
 
93
- [Website](https://dotflow.io) · [Documentation](https://dotflow-io.github.io/dotflow/) · [PyPI](https://pypi.org/project/dotflow/)
93
+ [Website](https://www.cloud.dotflow.io) · [Documentation](https://dotflow-io.github.io/dotflow/) · [PyPI](https://pypi.org/project/dotflow/)
94
94
 
95
95
  </div>
96
96
 
@@ -9,7 +9,7 @@
9
9
  [![Downloads](https://img.shields.io/pypi/dm/dotflow?style=flat-square)](https://pypi.org/project/dotflow/)
10
10
  [![Stars](https://img.shields.io/github/stars/dotflow-io?label=Stars&style=flat-square)](https://github.com/dotflow-io/dotflow)
11
11
 
12
- [Website](https://dotflow.io) · [Documentation](https://dotflow-io.github.io/dotflow/) · [PyPI](https://pypi.org/project/dotflow/)
12
+ [Website](https://www.cloud.dotflow.io) · [Documentation](https://dotflow-io.github.io/dotflow/) · [PyPI](https://pypi.org/project/dotflow/)
13
13
 
14
14
  </div>
15
15
 
@@ -1,6 +1,6 @@
1
1
  """Dotflow __init__ module."""
2
2
 
3
- __version__ = "0.15.0.dev4"
3
+ __version__ = "0.15.0.dev5"
4
4
  __description__ = "🎲 Dotflow turns an idea into flow!"
5
5
 
6
6
  from .core.action import Action as action
@@ -308,7 +308,7 @@ class TaskBuilder:
308
308
  self.queue: list[Callable] = []
309
309
  self.workflow_id = workflow_id
310
310
  self.config = config
311
- self._next_id = 0
311
+ self._next_id = 1
312
312
 
313
313
  def add(
314
314
  self,
@@ -0,0 +1,23 @@
1
+ """ServerDefault — no-op server provider."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ from dotflow.abc.server import Server
8
+
9
+
10
+ class ServerDefault(Server):
11
+ """Default Server implementation (no-op)."""
12
+
13
+ def create_workflow(self, workflow: Any) -> None:
14
+ pass
15
+
16
+ def update_workflow(self, workflow: Any, status: str = "") -> None:
17
+ pass
18
+
19
+ def create_task(self, task: Any) -> None:
20
+ pass
21
+
22
+ def update_task(self, task: Any) -> None:
23
+ pass
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dotflow"
3
- version = "0.15.0.dev4"
3
+ version = "0.15.0.dev5"
4
4
  authors = [
5
5
  { name="Fernando Celmer", email="email@fernandocelmer.com" },
6
6
  ]
@@ -66,7 +66,7 @@ sentry = ["sentry-sdk"]
66
66
 
67
67
  [tool.poetry]
68
68
  name = "dotflow"
69
- version = "0.15.0.dev4"
69
+ version = "0.15.0.dev5"
70
70
  description = "🎲 Dotflow turns an idea into flow! Lightweight Python library for execution pipelines with retry, parallel, cron and async support."
71
71
  authors = ["Fernando Celmer <email@fernandocelmer.com>"]
72
72
  readme = "README.md"
@@ -1,112 +0,0 @@
1
- """ServerDefault
2
-
3
- Default implementation that communicates with a
4
- dotflow-api server.
5
-
6
- Args:
7
- base_url (str): Base URL of the API.
8
- user_token (str): API token (X-User-Token header).
9
- timeout (float): HTTP request timeout in seconds.
10
- """
11
-
12
- from __future__ import annotations
13
-
14
- from typing import Any
15
-
16
- from requests import patch as http_patch
17
- from requests import post as http_post
18
-
19
- from dotflow.abc.server import Server
20
- from dotflow.logging import logger
21
-
22
-
23
- class ServerDefault(Server):
24
- """Default Server implementation (HTTP client)."""
25
-
26
- def __init__(
27
- self,
28
- base_url: str = "",
29
- user_token: str = "",
30
- timeout: float = 5.0,
31
- ) -> None:
32
- self.base_url = base_url.rstrip("/")
33
- self.user_token = user_token
34
- self.timeout = timeout
35
- self.enabled = bool(self.base_url and self.user_token)
36
-
37
- def _headers(self) -> dict[str, str]:
38
- return {
39
- "Content-Type": "application/json",
40
- "X-User-Token": self.user_token,
41
- }
42
-
43
- def _request(self, method, url, payload=None):
44
- try:
45
- response = method(
46
- url=url,
47
- headers=self._headers(),
48
- json=payload or {},
49
- timeout=self.timeout,
50
- )
51
- response.raise_for_status()
52
- except Exception as error:
53
- logger.error(
54
- "Server %s failed: %s",
55
- url,
56
- str(error),
57
- )
58
-
59
- def create_workflow(self, workflow: Any) -> None:
60
- """Create workflow record (synchronous)."""
61
- if not self.enabled:
62
- return
63
-
64
- self._request(
65
- http_post,
66
- f"{self.base_url}/workflows",
67
- {
68
- "id": f"{workflow}",
69
- "execution_mode": "sequential",
70
- "keep_going": False,
71
- },
72
- )
73
-
74
- def update_workflow(self, workflow: Any, status: str = "") -> None:
75
- """Update workflow status (synchronous)."""
76
- if not self.enabled:
77
- return
78
-
79
- self._request(
80
- http_patch,
81
- f"{self.base_url}/workflows/{workflow}",
82
- {"status": status},
83
- )
84
-
85
- def create_task(self, task: Any) -> None:
86
- """Create a task under a workflow (synchronous)."""
87
- if not self.enabled:
88
- return
89
-
90
- payload = {
91
- "id": task.task_id,
92
- "initial_context": (task.initial_context.storage),
93
- "group_name": (task.group_name or "default"),
94
- }
95
-
96
- self._request(
97
- http_post,
98
- f"{self.base_url}/workflows/{task.workflow_id}/tasks",
99
- payload,
100
- )
101
-
102
- def update_task(self, task: Any) -> None:
103
- """Update task data (synchronous)."""
104
- if not self.enabled:
105
- return
106
-
107
- self._request(
108
- http_patch,
109
- f"{self.base_url}/workflows/"
110
- f"{task.workflow_id}/tasks/{task.task_id}",
111
- task.result(),
112
- )
File without changes