Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Code Block
languagepy
titleAdd Limits/Inlimits
from ecflowdeom ecflpw import Defs,Suite,Task,Limit,InLimit

defs = Defs()
s1   = defs.add_suiteSuite("s1") 
s1.add_limit( ,
        Limit("limitName4", 10 )),              # name, maximum token
f1 = s1.add_family        Family("f1")
f1.add_inlimit( ,
            InLimit("limitName4","/s1/f1",2), # limit name, path to limit, tokens consumed
for i in range(1,4):
 from the Limit
            [ f1.add_taskTask( "t{}".format(i(t)) for t in range(1,4) ] ))

The following show alternative styles that produce the same definition.


Code Block
languagepy
defs = Defs()
.add(

s1 
Suite
= defs.add_suite("s1") 
s1.add
( Limit(
_limit( "limitName4", 10 )
,
  
f1 
Family
= s1.add_family("f1")
f1.add
( InLimit(
_inlimit( "limitName4","/s1/f1",2)
,
  
for i in range(1,4):
    
[ Task(
f1.add_task( "t{}".format(
t)) for t in range(1,4) ])))
i))



Code Block
languagepy
defs = Defs()
defs
 +
= [
 Suite("s1") 
]

defs.s1 += [ Limit("limitName4", 10),Family("f1") ]
defs.s1.f1 += [ InLimit("limitName4","/s1/f1",2),
                      [ Task("t{}".format(t)) 
                         for t in range(1,4) ] ]



Code Block
languagepy
with Defs() as defs:
   with defs.add_suite("s1") as s1:
      s1.add_limit( "limitName4", 10 ) 
      
with s1.add_family("f1") as f1:
          f1.add_inlimit( "limitName4","/s1/f1",2)  
          f1 += [ Task("t{}".format(t)) 
                   
for t in range(1,4) ]



Warning

In the second example above we use 'defs.s1.f1' to reference a node by name. This is useful in small designs but will produce maintenance issues in large designs IF the node names are changed.