From 7f6d09f84f9074062d6b70eb2795b6bae2d6108d Mon Sep 17 00:00:00 2001 From: Nicolas Tessore Date: Wed, 13 Dec 2023 18:46:59 +0000 Subject: [PATCH] rebase onto main and update with changes --- heracles/cli.py | 32 ++++++++++++++++---------------- pyproject.toml | 11 ++++++++--- tests/test_cli.py | 18 +++++++++--------- 3 files changed, 33 insertions(+), 28 deletions(-) diff --git a/heracles/cli.py b/heracles/cli.py index 515ae9e..31c9a77 100644 --- a/heracles/cli.py +++ b/heracles/cli.py @@ -31,10 +31,10 @@ # valid option keys FIELD_TYPES = { - "positions": "heracles.maps:PositionMap", - "shears": "heracles.maps:ShearMap", - "visibility": "heracles.maps:VisibilityMap", - "weights": "heracles.maps:WeightMap", + "positions": "heracles.fields:Positions", + "shears": "heracles.fields:Shears", + "visibility": "heracles.fields:Visibility", + "weights": "heracles.fields:Weights", } @@ -152,8 +152,8 @@ def subsections(self, group: str) -> dict[str, str]: return {s.rpartition(":")[-1].strip(): s for s in sections} -def map_from_config(config, section): - """Construct a map instance from config.""" +def field_from_config(config, section): + """Construct a field instance from config.""" from pkgutil import resolve_name @@ -176,11 +176,11 @@ def map_from_config(config, section): return cls(nside, *columns) -def maps_from_config(config, group="fields"): - """Construct all map instances from config.""" +def fields_from_config(config, group="fields"): + """Construct all field instances from config.""" sections = config.subsections(group) return { - name: map_from_config(config, section) for name, section in sections.items() + name: field_from_config(config, section) for name, section in sections.items() } @@ -364,7 +364,7 @@ def map_all_selections( ) -> Iterator: """Iteratively map the catalogues defined in config.""" - from .maps import map_catalogs + from .fields import map_catalogs # turn groups into a deduplicated sequence if groups is None: @@ -374,13 +374,13 @@ def map_all_selections( else: groups = list(dict.fromkeys(groups)) - # load catalogues and maps to process + # load catalogues and fields to process catalogs = catalogs_from_config(config) - maps = {} + fields = {} for group in groups: - maps |= maps_from_config(config, group) + fields |= fields_from_config(config, group) - logger.info("mapping %s", ", ".join(map(repr, maps))) + logger.info("fields %s", ", ".join(map(repr, fields))) # process each catalogue separately into maps for key, catalog in catalogs.items(): @@ -393,7 +393,7 @@ def map_all_selections( # maps for single catalogue yield map_catalogs( - maps, + fields, {key: catalog}, parallel=True, # no effect but prettier log output progress=True, @@ -464,8 +464,8 @@ def alms( """ + from .fields import transform_maps from .io import AlmFits - from .maps import transform_maps # load the config file, this contains alms setting and maps definition logger.info("reading configuration from %s", files) diff --git a/pyproject.toml b/pyproject.toml index 3fd2743..72db5d1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,9 +47,14 @@ optional-dependencies = {all = [ ]} readme = "README.md" requires-python = ">=3.9" -urls.Documentation = "https://heracles.readthedocs.io/" -urls.Homepage = "https://github.com/heracles-ec/heracles" -urls.Issues = "https://github.com/heracles-ec/heracles/issues" + +[project.scripts] +heracles = "heracles.cli:main" + +[project.urls] +Documentation = "https://heracles.readthedocs.io/" +Homepage = "https://github.com/heracles-ec/heracles" +Issues = "https://github.com/heracles-ec/heracles/issues" [tool.black] force-exclude = """ diff --git a/tests/test_cli.py b/tests/test_cli.py index be5a80d..b500aa7 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -96,10 +96,10 @@ def test_subsections(): assert config.subsections("getme") == {"a": "getme:a", "b": "getme: b "} -def test_map_from_config(): +def test_field_from_config(): from unittest.mock import Mock - from heracles.cli import ConfigParser, map_from_config + from heracles.cli import ConfigParser, field_from_config mock = Mock() @@ -132,19 +132,19 @@ def test_map_from_config(): ) with patch.dict("heracles.cli.FIELD_TYPES", mock_field_types): - a = map_from_config(config, "a") - b = map_from_config(config, "b") + a = field_from_config(config, "a") + b = field_from_config(config, "b") with pytest.raises(RuntimeError, match="Internal error"): - map_from_config(config, "c") + field_from_config(config, "c") mock.assert_called_once_with(1, "COL1", "-COL2") assert mock.return_value is a assert isinstance(b, int) and b == 1 -@patch("heracles.cli.map_from_config") -def test_maps_from_config(mock): - from heracles.cli import ConfigParser, maps_from_config +@patch("heracles.cli.field_from_config") +def test_fields_from_config(mock): + from heracles.cli import ConfigParser, fields_from_config config = ConfigParser() config.read_dict( @@ -155,7 +155,7 @@ def test_maps_from_config(mock): }, ) - m = maps_from_config(config) + m = fields_from_config(config) assert m == { "a": mock.return_value,