core-lens 0.1.dev140__tar.gz → 0.1.dev141__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/PKG-INFO +1 -1
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/_version.py +2 -2
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/aoi.py +13 -2
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/base/view.py +19 -4
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.github/ISSUE_TEMPLATE/blank-proposal.yaml +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.github/ISSUE_TEMPLATE/bug-report.yaml +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.github/ISSUE_TEMPLATE/feature-request.yaml +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.github/pull_request_template.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.github/workflows/ci.yml +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.github/workflows/gh-pages.yml +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.github/workflows/pre-release.yml +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.github/workflows/release.yml +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.gitignore +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.gitmessage +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.pre-commit-config.yaml +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/.python-version +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/CONTRIBUTING.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/LICENSE +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/README.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/SKILLS.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/benchmarks/README.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/benchmarks/bench_aoi.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/benchmarks/bench_export.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/benchmarks/bench_polars_utils.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/benchmarks/bench_result.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/benchmarks/bench_schema.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/benchmarks/bench_season.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/benchmarks/bench_spatial.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/benchmarks/bench_view.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/benchmarks/run_all.sh +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/Makefile +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/make.bat +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/concepts.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/conf.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/export.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/index.rst +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/intro.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/logging.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/plots.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/plugins.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/queries.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/quickstart.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/docs/source/stats.md +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/examples/demo_mws.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/examples/demo_tehsil.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/hooks/mypy.sh +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/hooks/no-parquet-outside-fixtures.sh +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/hooks/pytest.sh +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/pyproject.toml +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/__init__.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/__main__.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/base/__init__.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/base/entity.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/base/namespaces/__init__.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/base/namespaces/plot.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/base/namespaces/stats.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/base/result.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/entities/__init__.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/entities/mws.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/entities/tehsil.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/entities/waterbody.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/export/__init__.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/export/formats.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/py.typed +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/schema/__init__.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/schema/detection.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/schema/profile.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/utils/__init__.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/utils/paths.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/utils/polars_utils.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/utils/season.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/src/core_lens/utils/spatial.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/fixtures/generate_fixtures.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/conftest.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_aoi.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_entities.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_entity.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_export.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_main.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_plot.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_polars_utils.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_profile.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_result.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_schema_detection.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_schema_profile.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_season.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_season_config.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_spatial.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_stats.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/tests/unit/test_view.py +0 -0
- {core_lens-0.1.dev140 → core_lens-0.1.dev141}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: core-lens
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.dev141
|
|
4
4
|
Summary: Query, analyse, and visualise CoreStack's microwatershed and Earth science data through a clean, composable Python API.
|
|
5
5
|
Project-URL: Homepage, https://github.com/ApoorvaKashyap/core-lens
|
|
6
6
|
Project-URL: Issues, https://github.com/ApoorvaKashyap/core-lens/issues
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.1.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 1, '
|
|
21
|
+
__version__ = version = '0.1.dev141'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 1, 'dev141')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -219,12 +219,23 @@ def _cached_resolve_boundary(
|
|
|
219
219
|
|
|
220
220
|
lf = pl.scan_parquet(static_path, storage_options=storage_options or None)
|
|
221
221
|
filter_expr = pl.lit(True)
|
|
222
|
+
schema_types = lf.collect_schema()
|
|
222
223
|
for col, val in entity_kwargs.items():
|
|
223
224
|
if col in schema.key_cols or col in schema.extra_static_cols:
|
|
225
|
+
is_list_col = isinstance(schema_types.get(col), pl.List)
|
|
224
226
|
if isinstance(val, list):
|
|
225
|
-
|
|
227
|
+
if is_list_col:
|
|
228
|
+
filter_expr = (
|
|
229
|
+
filter_expr
|
|
230
|
+
& pl.col(col).list.eval(pl.element().is_in(val)).list.any()
|
|
231
|
+
)
|
|
232
|
+
else:
|
|
233
|
+
filter_expr = filter_expr & pl.col(col).is_in(val)
|
|
226
234
|
else:
|
|
227
|
-
|
|
235
|
+
if is_list_col:
|
|
236
|
+
filter_expr = filter_expr & pl.col(col).list.contains(val)
|
|
237
|
+
else:
|
|
238
|
+
filter_expr = filter_expr & (pl.col(col) == val)
|
|
228
239
|
|
|
229
240
|
df = lf.filter(filter_expr).select(candidate.key_cols + [geom_col]).collect()
|
|
230
241
|
|
|
@@ -99,16 +99,31 @@ class View:
|
|
|
99
99
|
"""
|
|
100
100
|
static = self.entity._resolve(self.entity.static_path)
|
|
101
101
|
|
|
102
|
-
filter_expr = pl.lit(True)
|
|
103
|
-
for col, val in kwargs.items():
|
|
104
|
-
filter_expr = filter_expr & (pl.col(col) == val)
|
|
105
|
-
|
|
106
102
|
lf = scan_with_key_filter(
|
|
107
103
|
path=static,
|
|
108
104
|
key_cols=self.entity.key_cols,
|
|
109
105
|
key_values=self.keys,
|
|
110
106
|
storage_options=self._storage_options or None,
|
|
111
107
|
)
|
|
108
|
+
schema_types = lf.collect_schema()
|
|
109
|
+
|
|
110
|
+
filter_expr = pl.lit(True)
|
|
111
|
+
for col, val in kwargs.items():
|
|
112
|
+
is_list_col = isinstance(schema_types.get(col), pl.List)
|
|
113
|
+
if isinstance(val, list):
|
|
114
|
+
if is_list_col:
|
|
115
|
+
filter_expr = (
|
|
116
|
+
filter_expr
|
|
117
|
+
& pl.col(col).list.eval(pl.element().is_in(val)).list.any()
|
|
118
|
+
)
|
|
119
|
+
else:
|
|
120
|
+
filter_expr = filter_expr & pl.col(col).is_in(val)
|
|
121
|
+
else:
|
|
122
|
+
if is_list_col:
|
|
123
|
+
filter_expr = filter_expr & pl.col(col).list.contains(val)
|
|
124
|
+
else:
|
|
125
|
+
filter_expr = filter_expr & (pl.col(col) == val)
|
|
126
|
+
|
|
112
127
|
keys = lf.filter(filter_expr).select(self.entity.key_cols).collect()
|
|
113
128
|
|
|
114
129
|
return View(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|