Browse Source

renamed the "parser" module to "csv_parser"

The "csv_parser" module will be used as a backup if the analysis xml file is not present.
xmlparsing
Holger Frey 2 years ago
parent
commit
873091504c
  1. 2
      src/sensospot_parser/__init__.py
  2. 0
      src/sensospot_parser/csv_parser.py
  3. 42
      tests/test_csv_parser.py

2
src/sensospot_parser/__init__.py

@ -12,7 +12,7 @@ import click
import pandas import pandas
from . import columns # noqa: F401 from . import columns # noqa: F401
from .parser import parse_file, parse_folder # noqa: F401 from .csv_parser import parse_file, parse_folder # noqa: F401
DEFAULT_OUTPUT_FILENAME = "collected_data.csv" DEFAULT_OUTPUT_FILENAME = "collected_data.csv"

0
src/sensospot_parser/parser.py → src/sensospot_parser/csv_parser.py

42
tests/test_parser.py → tests/test_csv_parser.py

@ -25,7 +25,7 @@ from .conftest import (
], ],
) )
def test_parse_csv(example_dir, sub_dir, file_name): def test_parse_csv(example_dir, sub_dir, file_name):
from sensospot_parser.parser import _parse_csv from sensospot_parser.csv_parser import _parse_csv
result = _parse_csv(example_dir / sub_dir / file_name) result = _parse_csv(example_dir / sub_dir / file_name)
@ -60,7 +60,7 @@ def test_parse_csv(example_dir, sub_dir, file_name):
def test_parse_csv_no_array(example_dir): def test_parse_csv_no_array(example_dir):
from sensospot_parser.parser import _parse_csv from sensospot_parser.csv_parser import _parse_csv
result = _parse_csv(example_dir / "no_array_A1_1.csv") result = _parse_csv(example_dir / "no_array_A1_1.csv")
@ -74,7 +74,7 @@ def test_parse_csv_no_array(example_dir):
def test_guess_decimal_separator_returns_correct_separator(input, expected): def test_guess_decimal_separator_returns_correct_separator(input, expected):
from io import StringIO from io import StringIO
from sensospot_parser.parser import _guess_decimal_separator from sensospot_parser.csv_parser import _guess_decimal_separator
handle = StringIO(f"header\n{input}\n") handle = StringIO(f"header\n{input}\n")
result = _guess_decimal_separator(handle) result = _guess_decimal_separator(handle)
@ -85,7 +85,7 @@ def test_guess_decimal_separator_returns_correct_separator(input, expected):
def test_guess_decimal_separator_rewinds_handle(): def test_guess_decimal_separator_rewinds_handle():
from io import StringIO from io import StringIO
from sensospot_parser.parser import _guess_decimal_separator from sensospot_parser.csv_parser import _guess_decimal_separator
handle = StringIO("\n".join(["header", "data_line"])) handle = StringIO("\n".join(["header", "data_line"]))
_guess_decimal_separator(handle) _guess_decimal_separator(handle)
@ -94,7 +94,7 @@ def test_guess_decimal_separator_rewinds_handle():
def test_well_regex_ok(): def test_well_regex_ok():
from sensospot_parser.parser import REGEX_WELL from sensospot_parser.csv_parser import REGEX_WELL
result = REGEX_WELL.match("AbC123") result = REGEX_WELL.match("AbC123")
@ -104,7 +104,7 @@ def test_well_regex_ok():
@pytest.mark.parametrize("input", ["", "A", "1", "1A", "-1", "A-"]) @pytest.mark.parametrize("input", ["", "A", "1", "1A", "-1", "A-"])
def test_well_regex_no_match(input): def test_well_regex_no_match(input):
from sensospot_parser.parser import REGEX_WELL from sensospot_parser.csv_parser import REGEX_WELL
result = REGEX_WELL.match(input) result = REGEX_WELL.match(input)
@ -116,7 +116,7 @@ def test_well_regex_no_match(input):
[("A1_1.csv", ("A", 1, 1)), ("test/measurement_1_H12_2", ("H", 12, 2))], [("A1_1.csv", ("A", 1, 1)), ("test/measurement_1_H12_2", ("H", 12, 2))],
) )
def test_extract_measurement_info_ok(filename, expected): def test_extract_measurement_info_ok(filename, expected):
from sensospot_parser.parser import _extract_measurement_info from sensospot_parser.csv_parser import _extract_measurement_info
result = _extract_measurement_info(filename) result = _extract_measurement_info(filename)
@ -125,7 +125,7 @@ def test_extract_measurement_info_ok(filename, expected):
@pytest.mark.parametrize("filename", ["wrong_exposure_A1_B", "no_well_XX_1"]) @pytest.mark.parametrize("filename", ["wrong_exposure_A1_B", "no_well_XX_1"])
def test_extract_measurement_info_raises_error(filename): def test_extract_measurement_info_raises_error(filename):
from sensospot_parser.parser import _extract_measurement_info from sensospot_parser.csv_parser import _extract_measurement_info
with pytest.raises(ValueError): with pytest.raises(ValueError):
_extract_measurement_info(filename) _extract_measurement_info(filename)
@ -134,7 +134,7 @@ def test_extract_measurement_info_raises_error(filename):
def test_cleanup_data_columns(): def test_cleanup_data_columns():
from pandas import DataFrame from pandas import DataFrame
from sensospot_parser.parser import _cleanup_data_columns from sensospot_parser.csv_parser import _cleanup_data_columns
columns = ["Rect.", "Contour", " ID ", "Found", "Dia."] columns = ["Rect.", "Contour", " ID ", "Found", "Dia."]
data = {col: [i] for i, col in enumerate(columns)} data = {col: [i] for i, col in enumerate(columns)}
@ -149,7 +149,7 @@ def test_cleanup_data_columns():
def test_parse_file(example_file): def test_parse_file(example_file):
from sensospot_parser.parser import parse_file from sensospot_parser.csv_parser import parse_file
result = parse_file(example_file) result = parse_file(example_file)
@ -191,7 +191,7 @@ def test_parse_file(example_file):
def test_parse_file_raises_error(example_dir): def test_parse_file_raises_error(example_dir):
from sensospot_parser.parser import parse_file from sensospot_parser.csv_parser import parse_file
csv_file = ( csv_file = (
example_dir / EXAMPLE_DIR_WITH_PARAMS / "should_raise_value_error.csv" example_dir / EXAMPLE_DIR_WITH_PARAMS / "should_raise_value_error.csv"
@ -202,7 +202,7 @@ def test_parse_file_raises_error(example_dir):
def test_parse_file_silenced_returns_data_frame(example_file): def test_parse_file_silenced_returns_data_frame(example_file):
from sensospot_parser.parser import _parse_file_silenced from sensospot_parser.csv_parser import _parse_file_silenced
result = _parse_file_silenced(example_file) result = _parse_file_silenced(example_file)
@ -212,7 +212,7 @@ def test_parse_file_silenced_returns_data_frame(example_file):
def test_parse_file_silenced_returns_none_on_error(example_dir): def test_parse_file_silenced_returns_none_on_error(example_dir):
from sensospot_parser.parser import _parse_file_silenced from sensospot_parser.csv_parser import _parse_file_silenced
csv_file = ( csv_file = (
example_dir / EXAMPLE_DIR_WITH_PARAMS / "should_raise_value_error.csv" example_dir / EXAMPLE_DIR_WITH_PARAMS / "should_raise_value_error.csv"
@ -234,7 +234,7 @@ def test_parse_file_silenced_returns_none_on_error(example_dir):
], ],
) )
def testparse_multiple_files_ok(example_dir, file_list): def testparse_multiple_files_ok(example_dir, file_list):
from sensospot_parser.parser import parse_multiple_files from sensospot_parser.csv_parser import parse_multiple_files
sub_dir = example_dir / EXAMPLE_DIR_WO_PARAMS sub_dir = example_dir / EXAMPLE_DIR_WO_PARAMS
files = [sub_dir / file for file in file_list] files = [sub_dir / file for file in file_list]
@ -247,14 +247,14 @@ def testparse_multiple_files_ok(example_dir, file_list):
def testparse_multiple_files_empty_file_list(): def testparse_multiple_files_empty_file_list():
from sensospot_parser.parser import parse_multiple_files from sensospot_parser.csv_parser import parse_multiple_files
with pytest.raises(ValueError): with pytest.raises(ValueError):
parse_multiple_files([]) parse_multiple_files([])
def testparse_multiple_files_empty_array(example_dir): def testparse_multiple_files_empty_array(example_dir):
from sensospot_parser.parser import parse_multiple_files from sensospot_parser.csv_parser import parse_multiple_files
files = [example_dir / "no_array_A1_1.csv"] files = [example_dir / "no_array_A1_1.csv"]
@ -265,7 +265,7 @@ def testparse_multiple_files_empty_array(example_dir):
def test_find_csv_files(example_dir): def test_find_csv_files(example_dir):
from sensospot_parser.parser import find_csv_files from sensospot_parser.csv_parser import find_csv_files
result = list(find_csv_files(example_dir / EXAMPLE_DIR_WITH_PARAMS)) result = list(find_csv_files(example_dir / EXAMPLE_DIR_WITH_PARAMS))
@ -275,7 +275,7 @@ def test_find_csv_files(example_dir):
def test_parse_folder_no_datetime_records(example_dir): def test_parse_folder_no_datetime_records(example_dir):
from sensospot_parser.parser import parse_folder from sensospot_parser.csv_parser import parse_folder
data_frame = parse_folder(example_dir / EXAMPLE_DIR_WITH_PARAMS) data_frame = parse_folder(example_dir / EXAMPLE_DIR_WITH_PARAMS)
@ -290,7 +290,7 @@ def test_parse_folder_no_datetime_records(example_dir):
def test_parse_folder_with_datetime_records(example_dir): def test_parse_folder_with_datetime_records(example_dir):
from sensospot_parser.parser import parse_folder from sensospot_parser.csv_parser import parse_folder
data_frame = parse_folder(example_dir / EXAMPLE_DIR_WITH_RECORD) data_frame = parse_folder(example_dir / EXAMPLE_DIR_WITH_RECORD)
@ -305,7 +305,7 @@ def test_parse_folder_with_datetime_records(example_dir):
def test_sanity_check_ok(example_dir): def test_sanity_check_ok(example_dir):
from sensospot_parser.parser import _sanity_check, parse_multiple_files from sensospot_parser.csv_parser import _sanity_check, parse_multiple_files
sub_dir = example_dir / EXAMPLE_DIR_WO_PARAMS sub_dir = example_dir / EXAMPLE_DIR_WO_PARAMS
file_list = [ file_list = [
@ -321,7 +321,7 @@ def test_sanity_check_ok(example_dir):
def test_sanity_check_raises_value_error(example_dir): def test_sanity_check_raises_value_error(example_dir):
from sensospot_parser.parser import _sanity_check, parse_multiple_files from sensospot_parser.csv_parser import _sanity_check, parse_multiple_files
sub_dir = example_dir / EXAMPLE_DIR_WO_PARAMS sub_dir = example_dir / EXAMPLE_DIR_WO_PARAMS
file_list = [ file_list = [
Loading…
Cancel
Save