Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
5c9aba9
allow (ignore) None as a empty definition for node properties instead…
colonesej Jul 30, 2025
1dab064
PYFLOW-22 pass as famliy extern limit or variable
morianemo Jul 30, 2025
37fbcc9
PYFLOW-22 pass as famliy extern limit or variable
morianemo Jul 30, 2025
98c46fb
PYFLOW-22 pass tests
morianemo Jul 30, 2025
867354e
PYFLOW-22 defined to avoid object does not support the context manage…
morianemo Jul 31, 2025
d6fcd46
PYFLOW-22 order import
morianemo Jul 31, 2025
d9bb8b1
improve error message
corentincarton Jul 31, 2025
f744b3a
add generated variables in host when using server_ecfvars option
corentincarton Aug 13, 2025
7fab6cf
removing confusing ecflow_variables attribute from host and replacing…
corentincarton Aug 13, 2025
010ad5a
formatting
corentincarton Aug 13, 2025
c289367
fix test
corentincarton Aug 13, 2025
5f8c046
formatting
corentincarton Aug 13, 2025
91e11bb
Merge branch 'develop' into feature/PYFLOW-22
corentincarton Aug 13, 2025
3903e5c
rewrite handling of repeat
corentincarton Aug 13, 2025
408576a
debugging new repeat approach
corentincarton Aug 14, 2025
129322d
formatting
corentincarton Aug 14, 2025
46ac394
minor change
corentincarton Aug 14, 2025
6b6ddcc
Merge pull request #91 from ecmwf/bugfix/host_variables
corentincarton Aug 14, 2025
daffd92
minor changes
corentincarton Aug 14, 2025
7b62b1a
fix test
corentincarton Aug 14, 2025
b14b831
fix test
corentincarton Aug 14, 2025
a21a49c
fix conflicts
corentincarton Aug 14, 2025
cc82240
minor debug
corentincarton Aug 14, 2025
22a7f39
minor debug
corentincarton Aug 14, 2025
1817dab
removing settings method in repeat and cleaning code
corentincarton Aug 14, 2025
db4f3b5
minor change
corentincarton Aug 14, 2025
59b372a
minor change
corentincarton Aug 14, 2025
91da83f
Merge pull request #87 from ecmwf/feature/do_not_fail_when_empty_prop…
corentincarton Sep 4, 2025
c1a259f
Merge pull request #88 from ecmwf/feature/PYFLOW-22
corentincarton Sep 4, 2025
26aab9f
fix test
corentincarton Sep 4, 2025
5753173
formatting
corentincarton Sep 4, 2025
fbe9a18
At lower limit to mirror polling
jinmannwong Jan 3, 2025
ab621b9
Add mirror attribute only to task
jinmannwong Jan 20, 2026
ef7ed16
Fix tests and qa
jinmannwong Jan 20, 2026
530309b
flake8
jinmannwong Jan 20, 2026
d21d378
Modify error message
jinmannwong Jan 21, 2026
a95a944
Fix qa
jinmannwong Jan 21, 2026
a91fea5
Merge pull request #93 from ecmwf/improv/mirror
corentincarton Jan 22, 2026
24294b6
ci: migrate ecmwf-actions references to ecmwf
recmanj Mar 12, 2026
b3b0a21
Add multiplication to repeats
jinmannwong Mar 23, 2026
04020a7
qa
jinmannwong Mar 23, 2026
e90ed36
update troika constructor
corentincarton Jul 31, 2025
6dc5468
update troika constructor
corentincarton Jul 31, 2025
0e49043
update troika constructor
corentincarton Jul 31, 2025
88a4845
change troika_config default to None. Add module level host registry …
colonesej May 6, 2026
a335a08
ignore opencode's weave files
colonesej May 6, 2026
2dcdaaa
Fix: Script generation for pyflow resource
tbkr May 21, 2024
469955c
Added test case for pyflow file resource
tbkr Jun 11, 2024
3b603b5
Added serverfilename for data resource
tbkr Jul 12, 2024
2fbfa19
fix qa
colonesej May 6, 2026
4f5c067
fix test and qa
colonesej May 6, 2026
9a0221d
Merge pull request #95 from ecmwf/feature/mul
corentincarton May 6, 2026
47eef1d
Merge pull request #94 from ecmwf/fix/migrate-ecmwf-actions-refs
corentincarton May 6, 2026
af6680c
Merge pull request #90 from ecmwf/feature/troika
corentincarton May 7, 2026
9970f65
Merge pull request #46 from ecmwf/hotfix/resource-script-generation
corentincarton May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
if: always() && inputs.notify_teams && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop')
steps:
- name: Notify Teams
uses: ecmwf-actions/notify-teams@v1
uses: ecmwf/notify-teams@v1
with:
incoming_webhook: ${{ secrets.incoming_webhook }}
needs_context: ${{ toJSON(needs) }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ docs/_build
_version.py
.vscode
.DS_Store
.weave
10 changes: 6 additions & 4 deletions docs/content/api-reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -226,19 +226,21 @@ External

.. _Extern:

.. autoclass:: pyflow.Extern
.. autoclass:: pyflow.ExternSuite

.. autoclass:: pyflow.ExternNode
.. autoclass:: pyflow.ExternFamily

.. autoclass:: pyflow.ExternTask

.. autoclass:: pyflow.ExternFamily
.. autoclass:: pyflow.ExternVariable

.. autoclass:: pyflow.ExternLimit

.. autoclass:: pyflow.ExternEvent

.. autoclass:: pyflow.ExternMeter

.. autoclass:: pyflow.ExternYMD
.. autoclass:: pyflow.ExternRepeat


Deployment
Expand Down
4 changes: 2 additions & 2 deletions docs/content/introductory-course/flow-control.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1001,7 +1001,7 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": null,
"id": "a2937746-a676-49ea-9332-315e763167ca",
"metadata": {},
"outputs": [
Expand Down Expand Up @@ -1034,7 +1034,7 @@
" etask = pf.ExternTask('/a/b/c/d')\n",
" efamily = pf.ExternFamily('/f/g/h/i')\n",
" \n",
" eymd = pf.ExternYMD('/a/b/c/d:YMD')\n",
" eymd = pf.ExternRepeat('/a/b/c/d:YMD')\n",
" eevent = pf.ExternEvent('/e/f/g/h:ev')\n",
" emeter = pf.ExternMeter('/g/h/i/j:mt')\n",
" \n",
Expand Down
4 changes: 2 additions & 2 deletions docs/content/introductory-course/helper-functionality.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": null,
"id": "b2e2a324-3df0-4874-8c69-d3d93ea39bc4",
"metadata": {},
"outputs": [
Expand Down Expand Up @@ -196,7 +196,7 @@
" pf.RepeatDate(\"YMD\", datetime.date(2019, 1, 1), datetime.date(2019, 12, 31))\n",
" with pf.Family('follower') as follower:\n",
" pf.RepeatDate(\"YMD\", datetime.date(2019, 1, 1), datetime.date(2019, 12, 31))\n",
" follower.follow = leader.YMD\n",
" follower.follow = leader\n",
"\n",
"s"
]
Expand Down
6 changes: 5 additions & 1 deletion pyflow/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,15 @@
from .expressions import Deferred, all_complete, sequence
from .extern import (
Extern,
ExternAttribute,
ExternEvent,
ExternFamily,
ExternLimit,
ExternMeter,
ExternNode,
ExternRepeat,
ExternSuite,
ExternTask,
ExternVariable,
ExternYMD,
)
from .header import FileHeader, FileTail, Header, InlineCodeHeader
Expand Down
5 changes: 3 additions & 2 deletions pyflow/adder.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,16 @@ def replace(self, other):
self.add(other)

def _create(self, other):
assert other is not None
result = []
if other is None:
return result

if isinstance(other, dict):
other = [it for it in other.items()]

if not isinstance(other, list):
other = [other]

result = []
for o in other:
if isinstance(o, tuple):
if len(o) == 2 and isinstance(o[1], dict):
Expand Down
Loading
Loading