Skip to content

Commit

Permalink
Misc relocation and fixes
Browse files Browse the repository at this point in the history
Relocate dependency on wallclock module.
Rename subprocess context classes.
  • Loading branch information
matthewrmshin committed Jul 9, 2018
1 parent ae43a23 commit e10a0b3
Show file tree
Hide file tree
Showing 33 changed files with 133 additions and 120 deletions.
3 changes: 2 additions & 1 deletion bin/cylc-cat-state
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,13 @@ import re
import sqlite3
import traceback

from wallclock import get_unix_time_from_time_string

from cylc.cfgspec.glbl_cfg import glbl_cfg
from cylc.dump import dump_to_stdout, get_stop_state_summary
import cylc.flags
from cylc.option_parsers import CylcOptionParser as COP
from cylc.rundb import CylcSuiteDAO
from cylc.wallclock import get_unix_time_from_time_string


REC_BROADCAST_KEY_SECTIONS = re.compile(r"\[([^\]]+)\]")
Expand Down
3 changes: 2 additions & 1 deletion bin/cylc-edit
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,14 @@ import re
from subprocess import call
from shutil import copy

from wallclock import get_current_time_string

import cylc.flags
from cylc.cfgspec.glbl_cfg import glbl_cfg
from cylc.option_parsers import CylcOptionParser as COP
from cylc.suite_srv_files_mgr import SuiteSrvFilesManager
from parsec.include import inline, \
split_file, backup, backups, newfiles, cleanup, modtimes
from cylc.wallclock import get_current_time_string


def main():
Expand Down
3 changes: 2 additions & 1 deletion bin/cylc-monitor
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,11 @@ import os
import re
from time import sleep, time

from wallclock import get_time_string_from_unix_time

from parsec.OrderedDict import OrderedDict
from cylc.option_parsers import CylcOptionParser as COP
from cylc.network.httpclient import SuiteRuntimeServiceClient, ClientError
from cylc.wallclock import get_time_string_from_unix_time
from cylc.cfgspec.glbl_cfg import glbl_cfg
from cylc.task_state import (
TASK_STATUS_RUNAHEAD, TASK_STATUSES_ORDERED,
Expand Down
4 changes: 3 additions & 1 deletion lib/cylc/batch_sys_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,14 +110,16 @@
from subprocess import Popen, PIPE
import sys
import traceback

from wallclock import get_current_time_string

from cylc.mkdir_p import mkdir_p
from cylc.task_message import (
CYLC_JOB_PID, CYLC_JOB_INIT_TIME, CYLC_JOB_EXIT_TIME, CYLC_JOB_EXIT,
CYLC_MESSAGE)
from cylc.task_outputs import TASK_OUTPUT_SUCCEEDED
from cylc.task_job_logs import (
JOB_LOG_JOB, JOB_LOG_OUT, JOB_LOG_ERR, JOB_LOG_STATUS)
from cylc.wallclock import get_current_time_string


class JobPollContext(object):
Expand Down
9 changes: 5 additions & 4 deletions lib/cylc/cfgspec/gcylc.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,13 @@

import os
import sys
import gtk
from copy import deepcopy, copy

from parsec import ParsecError
from parsec.config import ParsecConfig, ItemNotFoundError, itemstr
from parsec.validate import ParsecValidator as VDR, DurationFloat
from parsec.upgrade import upgrader
from parsec.util import printcfg
from cylc.gui.view_tree import ControlTree
from cylc.task_state import (
TASK_STATUSES_ALL, TASK_STATUS_RUNAHEAD, TASK_STATUS_HELD,
TASK_STATUS_WAITING, TASK_STATUS_EXPIRED, TASK_STATUS_QUEUED,
Expand All @@ -41,7 +39,9 @@
SITE_FILE = os.path.join(
os.environ['CYLC_DIR'], 'etc', 'gcylc-themes.rc')
USER_FILE = os.path.join(os.environ['HOME'], '.cylc', 'gcylc.rc')
_COLS = [heading for heading in ControlTree.headings if heading] + ['none']
HEADINGS = (
None, 'task', 'state', 'host', 'job system', 'job ID', 'T-submit',
'T-start', 'T-finish', 'dT-mean', 'latest message',)

# Nested dict of spec items.
# Spec value is [value_type, default, allowed_2, allowed_3, ...]
Expand All @@ -56,7 +56,7 @@
'initial views': [VDR.V_STRING_LIST, ["text"]],
'maximum update interval': [VDR.V_INTERVAL, DurationFloat(15)],
'sort by definition order': [VDR.V_BOOLEAN, True],
'sort column': [VDR.V_STRING, 'none'] + _COLS,
'sort column': [VDR.V_STRING] + list(HEADINGS),
'sort column ascending': [VDR.V_BOOLEAN, True],
'sub-graphs on': [VDR.V_BOOLEAN],
'task filter highlight color': [VDR.V_STRING, 'PowderBlue'],
Expand Down Expand Up @@ -263,6 +263,7 @@ def parse_state(theme, name, cfglist):
name + ' = ' + cfglist)
if key == 'color' or key == 'fontcolor':
try:
import gtk
gtk.gdk.color_parse(val)
except ValueError as exc:
print >> sys.stderr, 'ERROR', exc
Expand Down
10 changes: 5 additions & 5 deletions lib/cylc/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,10 @@

from isodatetime.data import Calendar
from isodatetime.parsers import DurationParser
from wallclock import get_current_time_string, set_utc_mode
from parsec.OrderedDict import OrderedDictWithDefaults
from parsec.util import replicate
from parsec.validate import SuiteFuncContext
from parsec.validate import SubFuncContext

from cylc.c3mro import C3
from cylc.conditional_simplifier import ConditionalSimplifier
Expand All @@ -56,7 +57,6 @@
from cylc.task_id import TaskID
from cylc.task_outputs import TASK_OUTPUT_SUCCEEDED
from cylc.task_trigger import TaskTrigger, Dependency
from cylc.wallclock import get_current_time_string
from cylc.xtrigger_mgr import XtriggerManager

RE_CLOCK_OFFSET = re.compile(r'(' + TaskID.NAME_RE + r')(?:\(\s*(.+)\s*\))?')
Expand Down Expand Up @@ -326,9 +326,9 @@ def __init__(self, suite, fpath, template_vars=None,

# Running in UTC time? (else just use the system clock)
if self.cfg['cylc']['UTC mode'] is None:
cylc.flags.utc = glbl_cfg().get(['cylc', 'UTC mode'])
set_utc_mode(glbl_cfg().get(['cylc', 'UTC mode']))
else:
cylc.flags.utc = self.cfg['cylc']['UTC mode']
set_utc_mode(self.cfg['cylc']['UTC mode'])
# Capture cycling mode
cylc.flags.cycling_mode = self.cfg['scheduling']['cycling mode']

Expand Down Expand Up @@ -2023,7 +2023,7 @@ def load_graph(self):
except KeyError:
if label == 'wall_clock':
# Allow predefined zero-offset wall clock xtrigger.
xtrig = SuiteFuncContext(
xtrig = SubFuncContext(
'wall_clock', 'wall_clock', [], {})
else:
raise SuiteConfigError(
Expand Down
5 changes: 0 additions & 5 deletions lib/cylc/flags.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,3 @@

# debug mode
debug = False

# TODO - run mode should be a flag

# utc mode
utc = False
3 changes: 2 additions & 1 deletion lib/cylc/gui/app_gcylc.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
import shlex
from subprocess import Popen, PIPE, STDOUT
from uuid import uuid4

from isodatetime.parsers import TimePointParser
from wallclock import get_current_time_string

from cylc.hostuserutil import is_remote_host, is_remote_user
from cylc.gui.dbchooser import dbchooser
Expand Down Expand Up @@ -67,7 +69,6 @@
from cylc.suite_logging import SuiteLog
from cylc.cfgspec.glbl_cfg import glbl_cfg
from cylc.cfgspec.gcylc import GcylcConfig
from cylc.wallclock import get_current_time_string
from cylc.task_state import (
TASK_STATUSES_ALL, TASK_STATUSES_RESTRICTED, TASK_STATUSES_CAN_RESET_TO,
TASK_STATUSES_TRIGGERABLE, TASK_STATUSES_ACTIVE, TASK_STATUS_RUNNING,
Expand Down
3 changes: 2 additions & 1 deletion lib/cylc/gui/scanutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@

import gtk

from wallclock import get_unix_time_from_time_string as timestr_to_seconds

from cylc.cfgspec.gcylc import GcylcConfig
import cylc.flags
from cylc.gui.legend import ThemeLegendWindow
Expand All @@ -36,7 +38,6 @@
from cylc.suite_status import (
KEY_NAME, KEY_OWNER, KEY_STATES, KEY_UPDATE_TIME)
from cylc.version import CYLC_VERSION
from cylc.wallclock import get_unix_time_from_time_string as timestr_to_seconds


DURATION_EXPIRE_STOPPED = 600.0
Expand Down
9 changes: 5 additions & 4 deletions lib/cylc/gui/updater.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@
from time import sleep, time
import traceback

from wallclock import (
get_current_time_string,
get_seconds_as_interval_string as duration2str,
get_time_string_from_unix_time as time2str)

import cylc.flags
from cylc.cfgspec.gcylc import GcylcConfig
from cylc.dump import get_stop_state_summary
Expand All @@ -38,10 +43,6 @@
from cylc.task_id import TaskID
from cylc.task_state import TASK_STATUSES_RESTRICTED
from cylc.version import CYLC_VERSION
from cylc.wallclock import (
get_current_time_string,
get_seconds_as_interval_string as duration2str,
get_time_string_from_unix_time as time2str)


class Updater(threading.Thread):
Expand Down
3 changes: 2 additions & 1 deletion lib/cylc/gui/updater_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@
import threading
from time import time, sleep

from wallclock import get_time_string_from_unix_time

from cylc.gui.dot_maker import DotMaker
from cylc.gui.util import get_id_summary
from cylc.task_id import TaskID
from cylc.task_state import TASK_STATUSES_AUTO_EXPAND
from cylc.wallclock import get_time_string_from_unix_time


class TreeUpdater(threading.Thread):
Expand Down
13 changes: 5 additions & 8 deletions lib/cylc/gui/view_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,13 @@

from isodatetime.parsers import DurationParser

from cylc.cfgspec.gcylc import HEADINGS
from cylc.gui.updater_tree import TreeUpdater
from cylc.task_id import TaskID


class ControlTree(object):
"""Text Treeview suite control interface."""
headings = [
None, 'task', 'state', 'host', 'job system', 'job ID', 'T-submit',
'T-start', 'T-finish', 'dT-mean', 'latest message',
]

def __init__(self, cfg, updater, theme, dot_size, info_bar,
get_right_click_menu, log_colors, insert_task_popup):
Expand Down Expand Up @@ -119,9 +116,9 @@ def treeview_widgets(self):
self.ttreeview.connect(
'button_press_event', self.on_treeview_button_pressed)

for n in range(1, len(ControlTree.headings)):
for n in range(1, len(HEADINGS)):
# Skip first column (cycle point)
tvc = gtk.TreeViewColumn(ControlTree.headings[n])
tvc = gtk.TreeViewColumn(HEADINGS[n])
if n == 1:
crp = gtk.CellRendererPixbuf()
tvc.pack_start(crp, False)
Expand Down Expand Up @@ -222,8 +219,8 @@ def on_treeview_button_pressed(self, treeview, event):
def sort_by_column(self, col_name=None, col_no=None, ascending=True):
"""Sort this ControlTree by the column selected by the string
col_name OR by the index col_no."""
if col_name is not None and col_name in ControlTree.headings:
col_no = ControlTree.headings.index(col_name)
if col_name is not None and col_name in HEADINGS:
col_no = HEADINGS.index(col_name)
if col_no is not None:
self.sort_col_num = col_no
cols = self.ttreeview.get_columns()
Expand Down
9 changes: 5 additions & 4 deletions lib/cylc/mp_pool.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@
from threading import RLock
from time import time

from wallclock import get_current_time_string

from cylc.cfgspec.glbl_cfg import glbl_cfg
from cylc.suite_logging import LOG
from cylc.wallclock import get_current_time_string


_XTRIG_FUNCS = {}
Expand Down Expand Up @@ -94,7 +95,7 @@ class SuiteProcPool(object):
This is mainly used by the main loop of the suite server program, although
the SuiteProcPool.run_command can be used as a standalone utility function
to run the command in a parsec.validate.SuiteProcContext.
to run the command in a parsec.validate.SubProcContext.
Arguments:
size (int): Pool size.
Expand Down Expand Up @@ -180,7 +181,7 @@ def put_command(self, ctx, callback=None, callback_args=None):
"""Queue a new shell command to execute.
Arguments:
ctx (parsec.validate.SuiteProcContext):
ctx (parsec.validate.SubProcContext):
A context object containing the command to run and its status.
callback (callable):
Function to call back when command exits or on error.
Expand All @@ -202,7 +203,7 @@ def run_command(cls, ctx):
"""Execute command in ctx and capture its output and exit status.
Arguments:
ctx (parsec.validate.SuiteProcContext):
ctx (parsec.validate.SubProcContext):
A context object containing the command to run and its status.
"""
proc = cls._run_command_init(ctx)
Expand Down
3 changes: 2 additions & 1 deletion lib/cylc/network/httpclient.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
from uuid import uuid4
import warnings

from wallclock import get_current_time_string

from cylc.cfgspec.glbl_cfg import glbl_cfg
from cylc.exceptions import CylcError
import cylc.flags
Expand All @@ -36,7 +38,6 @@
SuiteSrvFilesManager, SuiteServiceFileError)
from cylc.unicode_util import utf8_enforce
from cylc.version import CYLC_VERSION
from cylc.wallclock import get_current_time_string


# Note: This was renamed from ConnectionError to ClientError. ConnectionError
Expand Down
3 changes: 2 additions & 1 deletion lib/cylc/network/httpserver.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
from uuid import uuid4

import cherrypy
from wallclock import RE_DATE_TIME_FORMAT_EXTENDED

from cylc.cfgspec.glbl_cfg import glbl_cfg
from cylc.exceptions import CylcError
import cylc.flags
Expand All @@ -43,7 +45,6 @@
SuiteSrvFilesManager, SuiteServiceFileError)
from cylc.unicode_util import utf8_enforce
from cylc.version import CYLC_VERSION
from cylc.wallclock import RE_DATE_TIME_FORMAT_EXTENDED


class HTTPServer(object):
Expand Down
3 changes: 2 additions & 1 deletion lib/cylc/profiling/analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,14 @@
except (ImportError, RuntimeError):
CAN_PLOT = False

from wallclock import get_unix_time_from_time_string

from . import (PROFILE_MODE_TIME, PROFILE_MODE_CYLC, SUMMARY_LINE_REGEX,
MEMORY_LINE_REGEX, LOOP_MEMORY_LINE_REGEX, SLEEP_FUNCTION_REGEX,
SUITE_STARTUP_STRING, PROFILE_MODES, PROFILE_FILES, METRICS,
METRIC_TITLE, METRIC_UNIT, METRIC_FILENAME, METRIC_FIELDS,
QUICK_ANALYSIS_METRICS)
from .git import (order_versions_by_date, describe)
from cylc.wallclock import get_unix_time_from_time_string


def mean(data):
Expand Down
3 changes: 2 additions & 1 deletion lib/cylc/rundb.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@
import sys
import traceback

from wallclock import get_current_time_string

import cylc.flags
from cylc.wallclock import get_current_time_string
from cylc.suite_logging import LOG


Expand Down
Loading

0 comments on commit e10a0b3

Please sign in to comment.