Exemplo n.º 1
0
def _analysis_path(runid,
                   repository,
                   modifier=None,
                   extension='.json',
                   mode='r',
                   root=None):
    if root is None:
        root = paths.repository_dataset_dir

    root = os.path.join(root, repository)

    if UUID_RE.match(runid):
        sublen = 5
    elif WISCAR_ID_RE.match(runid):
        sublen = 3
    else:
        sublen = 3
        if runid.count('-') > 1:
            args = runid.split('-')[:-1]
            if len(args[0]) == 1:
                sublen = 4
            else:
                sublen = 5

    try:
        root, tail = subdirize(root, runid, sublen=sublen, mode=mode)
    except TypeError:
        raise AnalysisNotAnvailableError(root, runid)

    if modifier:
        d = os.path.join(root, modifier)
        if not os.path.isdir(d):
            if mode == 'r':
                raise AnalysisNotAnvailableError(root, runid)

            os.mkdir(d)

        root = d
        fmt = '{}.{}'
        if modifier.startswith('.'):
            fmt = '{}{}'
        tail = fmt.format(tail, modifier[:4])

    name = add_extension(tail, extension)
    path = os.path.join(root, name)
    if mode == 'r':
        if not os.path.isfile(path):
            raise AnalysisNotAnvailableError(root, runid)

    return path
Exemplo n.º 2
0
def _analysis_path(runid, repository, modifier=None, extension='.json', mode='r', root=None):
    if root is None:
        root = paths.repository_dataset_dir

    root = os.path.join(root, repository)

    if UUID_RE.match(runid):
        sublen = 5
    elif WISCAR_ID_RE.match(runid):
        sublen = 3
    else:
        sublen = 3
        if runid.count('-') > 1:
            args = runid.split('-')[:-1]
            if len(args[0]) == 1:
                sublen = 4
            else:
                sublen = 5

    try:
        root, tail = subdirize(root, runid, sublen=sublen, mode=mode)
    except TypeError:
        raise AnalysisNotAnvailableError(root, runid)

    if modifier:
        d = os.path.join(root, modifier)
        if not os.path.isdir(d):
            if mode == 'r':
                raise AnalysisNotAnvailableError(root, runid)

            os.mkdir(d)

        root = d
        fmt = '{}.{}'
        if modifier.startswith('.'):
            fmt = '{}{}'
        tail = fmt.format(tail, modifier[:4])

    name = add_extension(tail, extension)
    path = os.path.join(root, name)
    if mode == 'r':
        if not os.path.isfile(path):
            raise AnalysisNotAnvailableError(root, runid)

    return path
Exemplo n.º 3
0
def analysis_path(runid,
                  repository,
                  modifier=None,
                  extension='.json',
                  mode='r'):
    root = os.path.join(paths.repository_dataset_dir, repository)

    l = 3
    if runid.count('-') > 1:
        args = runid.split('-')[:-1]
        if len(args[0]) == 1:
            l = 4
        else:
            l = 5

    try:
        root, tail = subdirize(root, runid, l=l, mode=mode)
    except TypeError:
        raise AnalysisNotAnvailableError(root, runid)

    # head, tail = runid[:3], runid[3:]
    # # if modifier:
    # #     tail = '{}{}'.format(tail, modifier)
    # root = os.path.join(paths.experiment_dataset_dir, experiment, head)
    # if not os.path.isdir(root):
    #     os.mkdir(root)

    if modifier:
        d = os.path.join(root, modifier)
        if not os.path.isdir(d):
            if mode == 'r':
                return

            os.mkdir(d)

        root = d
        fmt = '{}.{}'
        if modifier.startswith('.'):
            fmt = '{}{}'
        tail = fmt.format(tail, modifier[:4])

    name = add_extension(tail, extension)

    return os.path.join(root, name)
Exemplo n.º 4
0
def analysis_path(runid, repository, modifier=None, extension='.json', mode='r'):
    root = os.path.join(paths.repository_dataset_dir, repository)

    l = 3
    if runid.count('-') > 1:
        args = runid.split('-')[:-1]
        if len(args[0]) == 1:
            l = 4
        else:
            l = 5

    try:
        root, tail = subdirize(root, runid, l=l, mode=mode)
    except TypeError:
        raise AnalysisNotAnvailableError(root, runid)

    # head, tail = runid[:3], runid[3:]
    # # if modifier:
    # #     tail = '{}{}'.format(tail, modifier)
    # root = os.path.join(paths.experiment_dataset_dir, experiment, head)
    # if not os.path.isdir(root):
    #     os.mkdir(root)

    if modifier:
        d = os.path.join(root, modifier)
        if not os.path.isdir(d):
            if mode == 'r':
                return

            os.mkdir(d)

        root = d
        fmt = '{}.{}'
        if modifier.startswith('.'):
            fmt = '{}{}'
        tail = fmt.format(tail, modifier[:4])

    name = add_extension(tail, extension)

    return os.path.join(root, name)
Exemplo n.º 5
0
    def pre_measurement_save(self):
        """
        setup hdf5 file
        """

        self.info('pre measurement save')
        dm = self.data_manager
        # make a new frame for saving data

        name = self.per_spec.run_spec.uuid
        root, tail = subdirize(paths.isotope_dir, '{}.h5'.format(name), mode='w')
        path = os.path.join(root, tail)
        # path = os.path.join(paths.isotope_dir, '{}.h5'.format(name))

        self._current_data_frame = path
        frame = dm.new_frame(path)

        attrs = frame.root._v_attrs
        attrs['USER'] = self.per_spec.run_spec.username
        attrs['ANALYSIS_TYPE'] = self.per_spec.run_spec.analysis_type

        dm.close_file()
Exemplo n.º 6
0
    def pre_measurement_save(self):
        """
        setup hdf5 file
        """

        self.info('pre measurement save')
        dm = self.data_manager
        # make a new frame for saving data

        name = self.per_spec.run_spec.uuid
        root, tail = subdirize(paths.isotope_dir,
                               '{}.h5'.format(name),
                               mode='w')
        path = os.path.join(root, tail)
        # path = os.path.join(paths.isotope_dir, '{}.h5'.format(name))

        self._current_data_frame = path
        frame = dm.new_frame(path)

        attrs = frame.root._v_attrs
        attrs['USER'] = self.per_spec.run_spec.username
        attrs['ANALYSIS_TYPE'] = self.per_spec.run_spec.analysis_type

        dm.close_file()