rslearn 0.0.5__py3-none-any.whl → 0.0.6__py3-none-any.whl

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.
rslearn/arg_parser.py CHANGED
@@ -1,33 +1,12 @@
1
1
  """Custom Lightning ArgumentParser with environment variable substitution support."""
2
2
 
3
3
  import os
4
- import re
5
4
  from typing import Any
6
5
 
7
6
  from jsonargparse import Namespace
8
7
  from lightning.pytorch.cli import LightningArgumentParser
9
8
 
10
-
11
- def substitute_env_vars_in_string(content: str) -> str:
12
- """Substitute environment variables in a string.
13
-
14
- Replaces ${VAR_NAME} patterns with os.getenv(VAR_NAME, "") values.
15
- This works on raw string content before YAML parsing.
16
-
17
- Args:
18
- content: The string content containing template variables
19
-
20
- Returns:
21
- The string with environment variables substituted
22
- """
23
- pattern = r"\$\{([^}]+)\}"
24
-
25
- def replace_variable(match_obj: re.Match[str]) -> str:
26
- var_name = match_obj.group(1)
27
- env_value = os.getenv(var_name, "")
28
- return env_value if env_value is not None else ""
29
-
30
- return re.sub(pattern, replace_variable, content)
9
+ from rslearn.template_params import substitute_env_vars_in_string
31
10
 
32
11
 
33
12
  class RslearnArgumentParser(LightningArgumentParser):
@@ -8,6 +8,7 @@ from upath import UPath
8
8
 
9
9
  from rslearn.config import load_layer_config
10
10
  from rslearn.log_utils import get_logger
11
+ from rslearn.template_params import substitute_env_vars_in_string
11
12
  from rslearn.tile_stores import TileStore, load_tile_store
12
13
 
13
14
  from .index import DatasetIndex
@@ -52,7 +53,9 @@ class Dataset:
52
53
 
53
54
  # Load dataset configuration.
54
55
  with (self.path / "config.json").open("r") as f:
55
- config = json.load(f)
56
+ config_content = f.read()
57
+ config_content = substitute_env_vars_in_string(config_content)
58
+ config = json.loads(config_content)
56
59
  self.layers = {}
57
60
  for layer_name, d in config["layers"].items():
58
61
  # Layer names must not contain period, since we use period to
@@ -0,0 +1,26 @@
1
+ """Template parameter substitution utilities for rslearn configuration files."""
2
+
3
+ import os
4
+ import re
5
+
6
+
7
+ def substitute_env_vars_in_string(content: str) -> str:
8
+ """Substitute environment variables in a string.
9
+
10
+ Replaces ${VAR_NAME} patterns with os.getenv(VAR_NAME, "") values.
11
+ This works on raw string content before YAML/JSON parsing.
12
+
13
+ Args:
14
+ content: The string content containing template variables
15
+
16
+ Returns:
17
+ The string with environment variables substituted
18
+ """
19
+ pattern = r"\$\{([^}]+)\}"
20
+
21
+ def replace_variable(match_obj: re.Match[str]) -> str:
22
+ var_name = match_obj.group(1)
23
+ env_value = os.getenv(var_name, "")
24
+ return env_value if env_value is not None else ""
25
+
26
+ return re.sub(pattern, replace_variable, content)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rslearn
3
- Version: 0.0.5
3
+ Version: 0.0.6
4
4
  Summary: A library for developing remote sensing datasets and models
5
5
  Author: OlmoEarth Team
6
6
  License: Apache License
@@ -1,9 +1,10 @@
1
1
  rslearn/__init__.py,sha256=fFmAen3vxZyosEfPbG0W46IttujYGVxzrGkJ0YutmmY,73
2
- rslearn/arg_parser.py,sha256=mkiZCiomUI5GNjG1jfPuTJebGHFzXbyUqe0pPwS4lTA,2055
2
+ rslearn/arg_parser.py,sha256=GNlJncO6Ck_dCNrcg7z_SSG61I-2gKn3Ix2tAxIk9CI,1428
3
3
  rslearn/const.py,sha256=FUCfsvFAs-QarEDJ0grdy0C1HjUjLpNFYGo5I2Vpc5Y,449
4
4
  rslearn/log_utils.py,sha256=unD9gShiuO7cx5Nnq8qqVQ4qrbOOwFVgcHxN5bXuiAo,941
5
5
  rslearn/main.py,sha256=lAMcE4e3wCO2tVUq3bJl2oOHyztsTagtSNc0kJU7OZk,29266
6
6
  rslearn/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ rslearn/template_params.py,sha256=Vop0Ha-S44ctCa9lvSZRjrMETznJZlR5y_gJrVIwrPg,791
7
8
  rslearn/config/__init__.py,sha256=Bhf2VVncdMYRC8Wfb4GsJJ13OAJYNCO_ODLSNTmBOHM,638
8
9
  rslearn/config/dataset.py,sha256=cR6Jd9ppzHgKHCteUsNapCcsJk4k5X90E71EHfbW7m0,21046
9
10
  rslearn/data_sources/__init__.py,sha256=8_7Pi3agKsatNoxXw74-U5G-QAP-rbdfcH8EkZfJbH4,1449
@@ -35,7 +36,7 @@ rslearn/data_sources/worldpop.py,sha256=HZrDJjz_5gXlHG6IOGIzVaL0Y4rO6FKF4FELMEX-
35
36
  rslearn/data_sources/xyz_tiles.py,sha256=SJV8TB6WUP6DTPr2d3LXRKVjFxda7bdR9IM84VvaRto,14618
36
37
  rslearn/dataset/__init__.py,sha256=bHtBlEEBCekO-gaJqiww0-VjvZTE5ahx0llleo8bfP8,289
37
38
  rslearn/dataset/add_windows.py,sha256=pwCEvwLE1jQCoqQxw6CJ-sP46ayWppFa2hGYIB6VVkc,8494
38
- rslearn/dataset/dataset.py,sha256=QclnjFVH-4L2OohagonmlzO0UedDcETleWg7hP44qt8,5021
39
+ rslearn/dataset/dataset.py,sha256=bjf9nI55j-MF0bIQWSNPjNbpfqnLK4jy-96TAcwO0MM,5214
39
40
  rslearn/dataset/index.py,sha256=Wni5m6h4gisRB54fPLnCfUrRTEsJ5EvwS0fs9sYc2wg,6025
40
41
  rslearn/dataset/manage.py,sha256=G95KpadLvwimkl-7V552nOJgglvlF7nEQXAYXPgaKN8,13377
41
42
  rslearn/dataset/materialize.py,sha256=emsxgkBKWC-ybZDtudsYOsxx7yxgmdKy5YrysgqzNac,21556
@@ -131,9 +132,9 @@ rslearn/utils/spatial_index.py,sha256=eomJAUgzmjir8j9HZnSgQoJHwN9H0wGTjmJkMkLLfs
131
132
  rslearn/utils/sqlite_index.py,sha256=YGOJi66544e6JNtfSft6YIlHklFdSJO2duxQ4TJ2iu4,2920
132
133
  rslearn/utils/time.py,sha256=2ilSLG94_sxLP3y5RSV5L5CG8CoND_dbdzYEHVtN-I8,387
133
134
  rslearn/utils/vector_format.py,sha256=XggLCIUQBZWhOXWjvhrxBOHULpsXCbktm804DSAAink,15167
134
- rslearn-0.0.5.dist-info/licenses/LICENSE,sha256=_99ZWPoLdlUbqZoSC5DF4ihiNwl5rTEmBaq2fACecdg,11352
135
- rslearn-0.0.5.dist-info/METADATA,sha256=4NZGdKV-YUfad4g698Vl4SsarOAooRspqdrcnakKuic,31715
136
- rslearn-0.0.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
137
- rslearn-0.0.5.dist-info/entry_points.txt,sha256=doTBQ57NT7nq-dgYGgTTw6mafcGWb_4PWYtYR4rGm50,46
138
- rslearn-0.0.5.dist-info/top_level.txt,sha256=XDKo90WBH8P9RQumHxo0giLJsoufT4r9odv-WE6Ahk4,8
139
- rslearn-0.0.5.dist-info/RECORD,,
135
+ rslearn-0.0.6.dist-info/licenses/LICENSE,sha256=_99ZWPoLdlUbqZoSC5DF4ihiNwl5rTEmBaq2fACecdg,11352
136
+ rslearn-0.0.6.dist-info/METADATA,sha256=OBD66RkVbX6KvG24H7I_2fhQf6d3vo1yFTkeRdWjrfE,31715
137
+ rslearn-0.0.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
138
+ rslearn-0.0.6.dist-info/entry_points.txt,sha256=doTBQ57NT7nq-dgYGgTTw6mafcGWb_4PWYtYR4rGm50,46
139
+ rslearn-0.0.6.dist-info/top_level.txt,sha256=XDKo90WBH8P9RQumHxo0giLJsoufT4r9odv-WE6Ahk4,8
140
+ rslearn-0.0.6.dist-info/RECORD,,