diff --git a/CHANGELOG.md b/CHANGELOG.md index b1a8741..d873e06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +## [v0.2.14] - 2026-02-13 + +- Load the most specific class for converters +- Enable verbose mode via env `VECOREL_VERBOSE` set to `1` +- Converters: Move block size check so that it applies for all downloads + ## [v0.2.13] - 2026-02-13 - Change default compression to zstd @@ -92,7 +98,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - First release based on vecorel CLI 0.1.0 -[Unreleased]: +[Unreleased]: +[v0.2.14]: [v0.2.13]: [v0.2.12]: [v0.2.11]: diff --git a/pixi.lock b/pixi.lock index ee663a0..07e0c20 100644 --- a/pixi.lock +++ b/pixi.lock @@ -14660,8 +14660,8 @@ packages: timestamp: 1767320173250 - pypi: ./ name: vecorel-cli - version: 0.2.13 - sha256: 6a71ec4febdcb10bd55fb8c85ff62bf4da935ee4b04fb4ddb6c1c204f39073cb + version: 0.2.14 + sha256: 41accbbbac705fcc76704ee799d35ec9ca9dff424524feb73ae8eab30c8edc03 requires_dist: - pyyaml>=6.0,<7.0 - click>=8.1,<9.0 diff --git a/pyproject.toml b/pyproject.toml index aba811d..14cba09 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "vecorel-cli" -version = "0.2.13" +version = "0.2.14" description = "CLI tools such as validation and file format conversion for vecorel." readme = "README.md" license = "Apache-2.0" diff --git a/vecorel_cli/cli/logger.py b/vecorel_cli/cli/logger.py index f5d7a3e..1f2494c 100644 --- a/vecorel_cli/cli/logger.py +++ b/vecorel_cli/cli/logger.py @@ -1,3 +1,4 @@ +import os import re import sys from logging import Logger @@ -13,7 +14,7 @@ def format_logs(record): class LoggerMixin: - verbose: bool = False + verbose: bool = os.environ.get("VECOREL_VERBOSE", "0") == "1" logger: Optional[Logger] = None def __init__(self): diff --git a/vecorel_cli/conversion/base.py b/vecorel_cli/conversion/base.py index 9518d98..b712d39 100644 --- a/vecorel_cli/conversion/base.py +++ b/vecorel_cli/conversion/base.py @@ -104,6 +104,9 @@ def download_files(self, uris, cache_folder=None, **kwargs): if isinstance(uris, str): uris = {uris: name_from_uri(uris)} + if self.avoid_range_request and "block_size" not in kwargs: + kwargs["block_size"] = 0 + paths = [] for uri, target in uris.items(): is_archive = isinstance(target, list) @@ -322,10 +325,7 @@ def convert( raise ValueError("No input files provided") self.info("Getting file(s) if not cached yet") - request_args = {} - if self.avoid_range_request: - request_args["block_size"] = 0 - paths = self.download_files(urls, cache, **request_args) + paths = self.download_files(urls, cache) gdf = self.read_data(paths, **self.open_options) self.info("GeoDataFrame created from source(s):") diff --git a/vecorel_cli/converters.py b/vecorel_cli/converters.py index 041cb9f..11e0743 100644 --- a/vecorel_cli/converters.py +++ b/vecorel_cli/converters.py @@ -101,6 +101,7 @@ def get_class(self, name): if type(v) is type and issubclass(v, base_class) and base_class.__name__ not in v.__name__ + and v.__module__ == module.__name__ ) return clazz(self) except StopIteration: