def test_find_first_empty_line(tmpdir):
    file_name = '/'.join((str(tmpdir), 'file.txt'))
    f = open(file_name, 'w')
    f.write('row\n')
    f.write('row\n')
    f.write('row\n')
    f.write('\n')
    f.write('row\n')
    f.close()
    assert utils.find_first_empty_line(file_name) == 4
Exemple #2
0
def test_find_first_empty_line(tmpdir):
    file_name = "/".join((str(tmpdir), "file.txt"))
    f = open(file_name, "w")
    f.write("row\n")
    f.write("row\n")
    f.write("row\n")
    f.write("\n")
    f.write("row\n")
    f.close()
    assert utils.find_first_empty_line(file_name) == 4
Exemple #3
0
def _find_ceilo_model(file):
    if file.endswith('nc'):
        return 'chm15k'
    first_empty_line = utils.find_first_empty_line(file)
    hint = linecache.getline(file, first_empty_line + 2)[1:5]
    if hint == 'CL01':
        return 'cl51'
    elif hint == 'CL02':
        return 'cl31'
    elif hint == 'CT02':
        return 'ct25k'
    return None
Exemple #4
0
def _find_ceilo_model(full_path: str) -> str:
    if full_path.lower().endswith('.nc'):
        return 'chm15k'
    first_empty_line = utils.find_first_empty_line(full_path)
    max_number_of_empty_lines = 10
    for n in range(1, max_number_of_empty_lines):
        line = linecache.getline(full_path, first_empty_line + n)
        if not utils.is_empty_line(line):
            line = linecache.getline(full_path, first_empty_line + n + 1)
            break
    if 'CL' in line:
        return 'cl31_or_cl51'
    if 'CT' in line:
        return 'ct25k'
    raise RuntimeError('Error: Unknown ceilo model.')
Exemple #5
0
def _find_ceilo_model(full_path: str) -> str:
    try:
        nc = netCDF4.Dataset(full_path)
        title = nc.title
        nc.close()
        for identifier in ["cl61d", "cl61-d"]:
            if identifier in title.lower() or identifier in full_path.lower():
                return "cl61d"
        return "chm15k"
    except OSError:
        line = ""
        first_empty_line = utils.find_first_empty_line(full_path)
        max_number_of_empty_lines = 10
        for n in range(1, max_number_of_empty_lines):
            line = linecache.getline(full_path, first_empty_line + n)
            if not utils.is_empty_line(line):
                line = linecache.getline(full_path, first_empty_line + n + 1)
                break
        if "CL" in line:
            return "cl31_or_cl51"
        if "CT" in line:
            return "ct25k"
    raise RuntimeError("Error: Unknown ceilo model.")