Skip to content

Commit d328523

Browse files
authored
Merge pull request #243 from Loop3D/fix/qgis-plugin-fixes
Fix/qgis plugin fixes
2 parents 4837aed + 1febaa9 commit d328523

File tree

9 files changed

+270
-112
lines changed

9 files changed

+270
-112
lines changed

.github/workflows/linting_and_testing.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,8 @@ jobs:
4646
- uses: actions/checkout@v4
4747
- uses: conda-incubator/setup-miniconda@v3
4848
with:
49+
auto-update-conda: true
4950
python-version: ${{ matrix.python-version }}
50-
conda-remove-defaults: "true"
51-
5251
- name: Install dependencies for windows python 3.9 and 3.10
5352
if: ${{ matrix.os == 'windows-latest' && (matrix.python-version == '3.9' || matrix.python-version == '3.10') }}
5453
run: |
@@ -77,4 +76,4 @@ jobs:
7776
7877
- name: Run tests
7978
run: |
80-
conda run -n test pytest -v
79+
conda run -n test pytest -v

map2loop/logging.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,53 @@ def set_level(level: str):
6666
logger = logging.getLogger(name)
6767
logger.setLevel(level)
6868
logger.info(f"Logging level set to {level}")
69+
70+
71+
logger = getLogger(__name__)
72+
logger.info("Imported map2loop.logging module")
73+
74+
75+
def setLogging(level="info", handler=None):
76+
"""Set the logging parameters for log file or custom handler.
77+
78+
Parameters
79+
----------
80+
level : str, optional
81+
Logging level to set, by default "info"
82+
Valid options: 'info', 'warning', 'error', 'debug'
83+
handler : logging.Handler, optional
84+
A logging handler to use instead of the default StreamHandler, by default None
85+
86+
Examples
87+
--------
88+
>>> from map2loop.logging import setLogging
89+
>>> setLogging('debug')
90+
>>> setLogging('info', logging.FileHandler('loop.log'))
91+
"""
92+
levels = get_levels()
93+
level_value = levels.get(level, logging.WARNING)
94+
95+
# Create default handler if none provided
96+
if handler is None:
97+
handler = logging.StreamHandler()
98+
99+
formatter = logging.Formatter(
100+
"%(levelname)s: %(asctime)s: %(filename)s:%(lineno)d -- %(message)s"
101+
)
102+
handler.setFormatter(formatter)
103+
handler.setLevel(level_value)
104+
105+
# Replace handlers in all known loggers
106+
for name in loggers:
107+
logger = logging.getLogger(name)
108+
logger.handlers = []
109+
logger.addHandler(handler)
110+
logger.setLevel(level_value)
111+
112+
# Also apply to main module logger
113+
main_logger = logging.getLogger(__name__)
114+
main_logger.handlers = []
115+
main_logger.addHandler(handler)
116+
main_logger.setLevel(level_value)
117+
118+
main_logger.info(f"Set logging to {level}")

map2loop/project.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,11 @@ def calculate_stratigraphic_order(self, take_best=False):
614614
self.sorter.structure_data = self.map_data.get_map_data(Datatype.STRUCTURE)
615615
if hasattr(self.sorter, 'dtm_data') and self.sorter.dtm_data is None:
616616
self.sorter.dtm_data = self.map_data.get_map_data(Datatype.DTM)
617+
if hasattr(self.sorter, 'min_age_column') and self.sorter.min_age_column is None:
618+
self.sorter.min_age_column = self.stratigraphic_column.get_min_age_column()
619+
if hasattr(self.sorter, 'max_age_column') and self.sorter.max_age_column is None:
620+
self.sorter.max_age_column = self.stratigraphic_column.get_max_age_column()
621+
617622
self.stratigraphic_column.column = self.sorter.sort(
618623
self.stratigraphic_column.stratigraphicUnits,
619624
)

map2loop/sampler.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ def sample(
5252
pandas.DataFrame: data frame containing samples
5353
"""
5454
pass
55-
55+
def __call__(self, **kwargs):
56+
return self.sample(**kwargs)
5657

5758
class SamplerDecimator(Sampler):
5859
"""

0 commit comments

Comments
 (0)