Skip to content

Commit 58b37d6

Browse files
committed
Support schedule releated params for create_project
1 parent 37d95f7 commit 58b37d6

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

tdworkflow/client.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from .schedule import Schedule, ScheduleAttempt
2424
from .session import Session
2525
from .task import Task
26-
from .util import archive_files, to_iso8601
26+
from .util import archive_files, to_iso8601, to_iso_instant
2727
from .workflow import Workflow
2828

2929
logger = logging.getLogger(__name__)
@@ -193,6 +193,9 @@ def create_project(
193193
self,
194194
project_name: str,
195195
target_dir: str,
196+
schedule_from: Optional[datetime],
197+
clear_schedule: Optional[List[str]] = None,
198+
clear_schedule_all: Optional[bool] = None,
196199
exclude_patterns: Optional[List[str]] = None,
197200
revision: Optional[str] = None,
198201
) -> Project:
@@ -209,6 +212,12 @@ def create_project(
209212
"""
210213
revision = revision or str(uuid.uuid4())
211214
params = {"project": project_name, "revision": revision}
215+
if schedule_from:
216+
params["schedule_from"] = to_iso_instant(schedule_from)
217+
if clear_schedule:
218+
params["clear_schedule"] = clear_schedule
219+
if clear_schedule_all:
220+
params["clear_schedule_all"] = "true"
212221

213222
default_excludes = [
214223
"venv",

tdworkflow/util.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def to_iso8601(dt: Optional[Union[str, datetime]]) -> str:
4848
if isinstance(dt, datetime):
4949
# Naive object
5050
if not dt.tzinfo:
51-
return dt.astimezone(timezone(timedelta(0), "UTC")).isoformat()
51+
return dt.astimezone(timezone.utc).isoformat()
5252
# Aware object
5353
else:
5454
return dt.isoformat()
@@ -58,3 +58,15 @@ def to_iso8601(dt: Optional[Union[str, datetime]]) -> str:
5858

5959
else:
6060
raise ValueError("Unexpected type")
61+
62+
63+
def to_iso_instant(dt: datetime) -> str:
64+
if isinstance(dt, datetime):
65+
return (
66+
dt.astimezone(timezone.utc)
67+
.isoformat(timespec="seconds")
68+
.replace("+00:00", "Z")
69+
)
70+
71+
else:
72+
raise ValueError("Unexpected type")
+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
+hello:
2+
echo>: hello

0 commit comments

Comments
 (0)