-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement default submission template #338
Changes from 7 commits
fa52e04
ee4928b
2a60f35
445e7d7
ca0e6a4
9088dc7
8cf1ac6
512895e
8f44370
bf9fe2b
40a8465
12c1964
9445af8
3ed1b18
666687a
777d6f3
c1214fa
1ada972
ffd620b
3de9d29
d7c33c3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,8 +1,31 @@ | ||||||||||||||||||||||
# coding: utf-8 | ||||||||||||||||||||||
import os | ||||||||||||||||||||||
from typing import List, Optional, Union | ||||||||||||||||||||||
|
||||||||||||||||||||||
import pandas | ||||||||||||||||||||||
from flux.job import JobID | ||||||||||||||||||||||
from jinja2 import Template | ||||||||||||||||||||||
|
||||||||||||||||||||||
from pysqa.wrapper.abstract import SchedulerCommands | ||||||||||||||||||||||
|
||||||||||||||||||||||
from pysqa.wrapper.generic import SchedulerCommands | ||||||||||||||||||||||
template = """\ | ||||||||||||||||||||||
#!/bin/bash | ||||||||||||||||||||||
# flux: --job-name={{job_name}} | ||||||||||||||||||||||
# flux: --env=CORES={{cores}} | ||||||||||||||||||||||
# flux: --output=time.out | ||||||||||||||||||||||
# flux: --error=error.out | ||||||||||||||||||||||
# flux: -n {{cores}} | ||||||||||||||||||||||
{%- if run_time_max %} | ||||||||||||||||||||||
# flux: -t {{ [1, run_time_max // 60]|max }} | ||||||||||||||||||||||
{%- endif %} | ||||||||||||||||||||||
{%- if dependency %} | ||||||||||||||||||||||
{%- for jobid in dependency %} | ||||||||||||||||||||||
# flux: --dependency=afterok:{{jobid}} | ||||||||||||||||||||||
{%- endfor %} | ||||||||||||||||||||||
{%- endif %} | ||||||||||||||||||||||
Comment on lines
+20
to
+24
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Inconsistency between template variable and render context variable In the template, you use To fix this, replace {%- if dependency %}
{%- for jobid in dependency %}
# flux: --dependency=afterok:{{jobid}}
{%- endfor %}
{%- endif %} Change to: {%- if dependency_list %}
{%- for jobid in dependency_list %}
# flux: --dependency=afterok:{{jobid}}
{%- endfor %}
{%- endif %} 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||
|
||||||||||||||||||||||
{{command}} | ||||||||||||||||||||||
""" | ||||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
class FluxCommands(SchedulerCommands): | ||||||||||||||||||||||
|
@@ -51,3 +74,43 @@ def convert_queue_status(queue_status_output: str) -> pandas.DataFrame: | |||||||||||||||||||||
df.loc[df.status == "C", "status"] = "error" | ||||||||||||||||||||||
df.loc[df.status == "CD", "status"] = "finished" | ||||||||||||||||||||||
return df | ||||||||||||||||||||||
|
||||||||||||||||||||||
def render_submission_template( | ||||||||||||||||||||||
self, | ||||||||||||||||||||||
command: str, | ||||||||||||||||||||||
job_name: str = "pysqa", | ||||||||||||||||||||||
working_directory: str = os.path.abspath("."), | ||||||||||||||||||||||
cores: int = 1, | ||||||||||||||||||||||
memory_max: Optional[int] = None, | ||||||||||||||||||||||
run_time_max: Optional[int] = None, | ||||||||||||||||||||||
dependency_list: Optional[List[int]] = None, | ||||||||||||||||||||||
submission_template: Union[str, Template] = template, | ||||||||||||||||||||||
**kwargs, | ||||||||||||||||||||||
) -> str: | ||||||||||||||||||||||
""" | ||||||||||||||||||||||
Generate the job submission template. | ||||||||||||||||||||||
|
||||||||||||||||||||||
Args: | ||||||||||||||||||||||
command (str, optional): The command to be executed. | ||||||||||||||||||||||
job_name (str, optional): The job name. Defaults to "pysqa". | ||||||||||||||||||||||
working_directory (str, optional): The working directory. Defaults to ".". | ||||||||||||||||||||||
cores (int, optional): The number of cores. Defaults to 1. | ||||||||||||||||||||||
memory_max (int, optional): The maximum memory. Defaults to None. | ||||||||||||||||||||||
run_time_max (int, optional): The maximum run time. Defaults to None. | ||||||||||||||||||||||
dependency_list (list[int], optional): The list of dependency job IDs. Defaults to None. | ||||||||||||||||||||||
submission_template (str): Submission script template pysqa.wrapper.flux.template | ||||||||||||||||||||||
|
||||||||||||||||||||||
Returns: | ||||||||||||||||||||||
str: The rendered job submission template. | ||||||||||||||||||||||
""" | ||||||||||||||||||||||
return super().render_submission_template( | ||||||||||||||||||||||
command=command, | ||||||||||||||||||||||
job_name=job_name, | ||||||||||||||||||||||
working_directory=working_directory, | ||||||||||||||||||||||
cores=cores, | ||||||||||||||||||||||
memory_max=memory_max, | ||||||||||||||||||||||
run_time_max=run_time_max, | ||||||||||||||||||||||
dependency_list=dependency_list, | ||||||||||||||||||||||
submission_template=submission_template, | ||||||||||||||||||||||
**kwargs, | ||||||||||||||||||||||
) |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -2,9 +2,13 @@ | |||||
# Copyright (c) Max-Planck-Institut für Eisenforschung GmbH - Computational Materials Design (CM) Department | ||||||
# Distributed under the terms of "New BSD License", see the LICENSE file. | ||||||
|
||||||
import os | ||||||
from typing import List, Optional, Union | ||||||
|
||||||
import pandas | ||||||
from jinja2 import Template | ||||||
|
||||||
from pysqa.wrapper.generic import SchedulerCommands | ||||||
from pysqa.wrapper.abstract import SchedulerCommands | ||||||
|
||||||
__author__ = "Jan Janssen" | ||||||
__copyright__ = ( | ||||||
|
@@ -18,6 +22,25 @@ | |||||
__date__ = "Feb 9, 2019" | ||||||
|
||||||
|
||||||
template = """\ | ||||||
#!/bin/bash | ||||||
#BSUB -q queue | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Parameterize the queue name in the submission template The queue name in the submission template is hardcoded as Apply this diff to parameterize the queue name: #!/bin/bash
-#BSUB -q queue
+#BSUB -q {{queue}}
#BSUB -J {{job_name}} Update the def render_submission_template(
command: str,
+ queue: str = "default",
job_name: str = "pysqa",
working_directory: str = os.path.abspath("."),
cores: int = 1,
memory_max: Optional[int] = None,
run_time_max: Optional[int] = None,
dependency_list: Optional[List[int]] = None,
submission_template: Union[str, Template] = template,
**kwargs,
) -> str: Pass the return submission_template.render(
command=command,
+ queue=queue,
job_name=job_name,
working_directory=working_directory,
cores=cores,
memory_max=memory_max,
run_time_max=run_time_max,
dependency_list=dependency_list,
**kwargs,
)
|
||||||
#BSUB -J {{job_name}} | ||||||
#BSUB -o time.out | ||||||
#BSUB -n {{cores}} | ||||||
#BSUB -cwd {{working_directory}} | ||||||
#BSUB -e error.out | ||||||
{%- if run_time_max %} | ||||||
#BSUB -W {{run_time_max}} | ||||||
{%- endif %} | ||||||
{%- if memory_max %} | ||||||
#BSUB -M {{memory_max}} | ||||||
{%- endif %} | ||||||
|
||||||
{{command}} | ||||||
""" | ||||||
Comment on lines
+9
to
+25
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Ensure all necessary parameters are included in the submission template The submission template currently does not include placeholders for parameters such as For example, to handle dependencies: {%- if dependency_list %}
+#BSUB -w "{{ ' && '.join(dependency_list) }}"
{%- endif %} Ensure that any additional parameters supplied through
|
||||||
|
||||||
|
||||||
class LsfCommands(SchedulerCommands): | ||||||
@property | ||||||
def submit_job_command(self) -> list[str]: | ||||||
|
@@ -63,3 +86,43 @@ def convert_queue_status(queue_status_output: str) -> pandas.DataFrame: | |||||
df.loc[df.status == "RUN", "status"] = "running" | ||||||
df.loc[df.status == "PEND", "status"] = "pending" | ||||||
return df | ||||||
|
||||||
def render_submission_template( | ||||||
self, | ||||||
command: str, | ||||||
job_name: str = "pysqa", | ||||||
working_directory: str = os.path.abspath("."), | ||||||
cores: int = 1, | ||||||
memory_max: Optional[int] = None, | ||||||
run_time_max: Optional[int] = None, | ||||||
dependency_list: Optional[List[int]] = None, | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Unused parameter The parameter If you intend to include job dependencies, you could modify the template to add dependency handling. For example: {%- if dependency_list %}
+#BSUB -w "ended({{ ' && ended('.join(dependency_list) }})"
{%- endif %} Ensure to convert
|
||||||
submission_template: Union[str, Template] = template, | ||||||
**kwargs, | ||||||
) -> str: | ||||||
""" | ||||||
Generate the job submission template. | ||||||
|
||||||
Args: | ||||||
command (str, optional): The command to be executed. | ||||||
job_name (str, optional): The job name. Defaults to "pysqa". | ||||||
working_directory (str, optional): The working directory. Defaults to ".". | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Inconsistent default value for The default value for Suggested update to the docstring: - working_directory (str, optional): The working directory. Defaults to ".".
+ working_directory (str, optional): The working directory. Defaults to the absolute path of the current directory. 📝 Committable suggestion
Suggested change
|
||||||
cores (int, optional): The number of cores. Defaults to 1. | ||||||
memory_max (int, optional): The maximum memory. Defaults to None. | ||||||
run_time_max (int, optional): The maximum run time. Defaults to None. | ||||||
dependency_list (list[int], optional): The list of dependency job IDs. Defaults to None. | ||||||
submission_template (str): Submission script template pysqa.wrapper.flux.template | ||||||
|
||||||
Returns: | ||||||
str: The rendered job submission template. | ||||||
""" | ||||||
return super().render_submission_template( | ||||||
command=command, | ||||||
job_name=job_name, | ||||||
working_directory=working_directory, | ||||||
cores=cores, | ||||||
memory_max=memory_max, | ||||||
run_time_max=run_time_max, | ||||||
dependency_list=dependency_list, | ||||||
submission_template=submission_template, | ||||||
**kwargs, | ||||||
) |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -2,7 +2,12 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Copyright (c) Max-Planck-Institut für Eisenforschung GmbH - Computational Materials Design (CM) Department | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Distributed under the terms of "New BSD License", see the LICENSE file. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from pysqa.wrapper.generic import SchedulerCommands | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import os | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from typing import List, Optional, Union | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from jinja2 import Template | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from pysqa.wrapper.abstract import SchedulerCommands | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
__author__ = "Jan Janssen" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
__copyright__ = ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -16,6 +21,20 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
__date__ = "Feb 9, 2019" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
template = """\ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#!/bin/bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#MSUB -N {{job_name}} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{%- if memory_max %} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#MSUB -l pmem={{ memory_max| int }}gb | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{%- endif %} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{%- if run_time_max %} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#$ -l walltime={{run_time_max}} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Correct the resource directive prefix for consistency The resource directive on line 31 uses Please update the line to use the correct Moab directive prefix: -#$ -l walltime={{run_time_max}}
+#MSUB -l walltime={{ run_time_max }} 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{%- endif %} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{command}} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+8
to
+19
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Include the number of cores in the submission template The Add the following to the template to request the specified number of cores: {%- if run_time_max %}
#MSUB -l walltime={{ run_time_max }}
{%- endif %}
+{%- if cores %}
+#MSUB -l nodes=1:ppn={{ cores }}
+{%- endif %}
{{command}} 📝 Committable suggestion
Suggested change
Handle job dependencies in the submission template The Add the following lines to handle job dependencies: {%- if run_time_max %}
#MSUB -l walltime={{ run_time_max }}
{%- endif %}
+{%- if dependency_list %}
+#MSUB -l depend={{ dependency_list | join(':') }}
+{%- endif %}
{{command}} This inclusion will ensure that the job submission respects any specified dependencies. 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
class MoabCommands(SchedulerCommands): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@property | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def submit_job_command(self) -> list[str]: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -46,3 +65,43 @@ def get_queue_status_command(self) -> list[str]: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
list[str]: The command to get the queue status. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return ["mdiag", "-x"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def render_submission_template( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
self, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
command: str, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
job_name: str = "pysqa", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
working_directory: str = os.path.abspath("."), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cores: int = 1, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
memory_max: Optional[int] = None, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
run_time_max: Optional[int] = None, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dependency_list: Optional[List[int]] = None, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
submission_template: Union[str, Template] = template, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**kwargs, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) -> str: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Generate the job submission template. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Args: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
command (str, optional): The command to be executed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
job_name (str, optional): The job name. Defaults to "pysqa". | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
working_directory (str, optional): The working directory. Defaults to ".". | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cores (int, optional): The number of cores. Defaults to 1. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
memory_max (int, optional): The maximum memory. Defaults to None. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
run_time_max (int, optional): The maximum run time. Defaults to None. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dependency_list (list[int], optional): The list of dependency job IDs. Defaults to None. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
submission_template (str): Submission script template pysqa.wrapper.flux.template | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Returns: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
str: The rendered job submission template. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return super().render_submission_template( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
command=command, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
job_name=job_name, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
working_directory=working_directory, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cores=cores, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
memory_max=memory_max, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
run_time_max=run_time_max, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dependency_list=dependency_list, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
submission_template=submission_template, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
**kwargs, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Make output and error file names configurable
Currently, the output and error file names are hardcoded as
time.out
anderror.out
. To provide flexibility, consider making these file names configurable through function parameters.Update the function signature to include new parameters:
Update the template to use these parameters:
Change to:
Ensure to pass the new parameters when rendering: