NREL-reV 0.14.1__tar.gz → 0.14.2__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.
Files changed (105) hide show
  1. {nrel_rev-0.14.1 → nrel_rev-0.14.2/NREL_reV.egg-info}/PKG-INFO +2 -2
  2. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/NREL_reV.egg-info/requires.txt +1 -1
  3. {nrel_rev-0.14.1/NREL_reV.egg-info → nrel_rev-0.14.2}/PKG-INFO +2 -2
  4. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/pyproject.toml +1 -1
  5. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/cli_sc_aggregation.py +28 -22
  6. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/cli_tech_mapping.py +2 -2
  7. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/version.py +1 -1
  8. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/LICENSE +0 -0
  9. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/MANIFEST.in +0 -0
  10. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/NREL_reV.egg-info/SOURCES.txt +0 -0
  11. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/NREL_reV.egg-info/dependency_links.txt +0 -0
  12. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/NREL_reV.egg-info/entry_points.txt +0 -0
  13. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/NREL_reV.egg-info/top_level.txt +0 -0
  14. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/README.rst +0 -0
  15. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/SAM.py +0 -0
  16. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/__init__.py +0 -0
  17. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/defaults/USA AZ Phoenix Sky Harbor Intl Ap (TMY3).csv +0 -0
  18. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/defaults/USA CA Daggett (TMY2).csv +0 -0
  19. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/defaults/US_Wave.csv +0 -0
  20. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/defaults/WY Southern-Flat Lands.srw +0 -0
  21. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/defaults/geothermal.json +0 -0
  22. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/defaults/i_pvwattsv5.json +0 -0
  23. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/defaults.py +0 -0
  24. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/econ.py +0 -0
  25. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/generation.py +0 -0
  26. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/version_checker.py +0 -0
  27. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/SAM/windbos.py +0 -0
  28. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/__init__.py +0 -0
  29. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/bespoke/__init__.py +0 -0
  30. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/bespoke/bespoke.py +0 -0
  31. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/bespoke/cli_bespoke.py +0 -0
  32. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/bespoke/gradient_free.py +0 -0
  33. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/bespoke/pack_turbs.py +0 -0
  34. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/bespoke/place_turbines.py +0 -0
  35. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/cli.py +0 -0
  36. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/config/__init__.py +0 -0
  37. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/config/base_analysis_config.py +0 -0
  38. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/config/base_config.py +0 -0
  39. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/config/cli_project_points.py +0 -0
  40. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/config/curtailment.py +0 -0
  41. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/config/execution.py +0 -0
  42. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/config/output_request.py +0 -0
  43. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/config/project_points.py +0 -0
  44. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/config/sam_config.py +0 -0
  45. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/econ/__init__.py +0 -0
  46. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/econ/cli_econ.py +0 -0
  47. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/econ/econ.py +0 -0
  48. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/econ/economies_of_scale.py +0 -0
  49. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/econ/utilities.py +0 -0
  50. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/__init__.py +0 -0
  51. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/base.py +0 -0
  52. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/cli_gen.py +0 -0
  53. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/generation.py +0 -0
  54. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/output_attributes/generation.json +0 -0
  55. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/output_attributes/lcoe_fcr.json +0 -0
  56. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/output_attributes/lcoe_fcr_inputs.json +0 -0
  57. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/output_attributes/linear_fresnel.json +0 -0
  58. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/output_attributes/other.json +0 -0
  59. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/output_attributes/single_owner.json +0 -0
  60. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/output_attributes/solar_water_heat.json +0 -0
  61. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/output_attributes/trough_heat.json +0 -0
  62. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/generation/output_attributes/windbos.json +0 -0
  63. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/handlers/__init__.py +0 -0
  64. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/handlers/cli_collect.py +0 -0
  65. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/handlers/cli_multi_year.py +0 -0
  66. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/handlers/exclusions.py +0 -0
  67. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/handlers/multi_year.py +0 -0
  68. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/handlers/outputs.py +0 -0
  69. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/handlers/transmission.py +0 -0
  70. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/hybrids/__init__.py +0 -0
  71. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/hybrids/cli_hybrids.py +0 -0
  72. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/hybrids/hybrid_methods.py +0 -0
  73. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/hybrids/hybrids.py +0 -0
  74. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/losses/__init__.py +0 -0
  75. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/losses/power_curve.py +0 -0
  76. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/losses/scheduled.py +0 -0
  77. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/losses/utils.py +0 -0
  78. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/nrwal/__init__.py +0 -0
  79. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/nrwal/cli_nrwal.py +0 -0
  80. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/nrwal/nrwal.py +0 -0
  81. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/qa_qc/__init__.py +0 -0
  82. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/qa_qc/cli_qa_qc.py +0 -0
  83. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/qa_qc/qa_qc.py +0 -0
  84. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/qa_qc/summary.py +0 -0
  85. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/rep_profiles/__init__.py +0 -0
  86. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/rep_profiles/cli_rep_profiles.py +0 -0
  87. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/rep_profiles/rep_profiles.py +0 -0
  88. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/__init__.py +0 -0
  89. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/aggregation.py +0 -0
  90. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/cli_supply_curve.py +0 -0
  91. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/competitive_wind_farms.py +0 -0
  92. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/exclusions.py +0 -0
  93. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/extent.py +0 -0
  94. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/points.py +0 -0
  95. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/sc_aggregation.py +0 -0
  96. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/supply_curve.py +0 -0
  97. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/supply_curve/tech_mapping.py +0 -0
  98. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/utilities/__init__.py +0 -0
  99. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/utilities/_clean_readme.py +0 -0
  100. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/utilities/cli_functions.py +0 -0
  101. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/utilities/curtailment.py +0 -0
  102. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/utilities/exceptions.py +0 -0
  103. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/utilities/pytest_utils.py +0 -0
  104. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/reV/utilities/slots.py +0 -0
  105. {nrel_rev-0.14.1 → nrel_rev-0.14.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NREL-reV
3
- Version: 0.14.1
3
+ Version: 0.14.2
4
4
  Summary: National Renewable Energy Laboratory's (NREL's) Renewable Energy Potential(V) Model: reV
5
5
  Author-email: Galen Maclaurin <galen.maclaurin@nrel.gov>
6
6
  Maintainer-email: Grant Buster <gbuster@nrel.gov>, Paul Pinchuk <ppinchuk@nrel.gov>
@@ -23,7 +23,7 @@ License-File: LICENSE
23
23
  Requires-Dist: NREL-gaps<0.9,>=0.8.0
24
24
  Requires-Dist: NREL-NRWAL<0.1,>=0.0.11
25
25
  Requires-Dist: NREL-PySAM~=7.0.0
26
- Requires-Dist: NREL-rex<0.4,>=0.3.2
26
+ Requires-Dist: NREL-rex<0.4,>=0.3.5
27
27
  Requires-Dist: numpy<3,>=2.0.2
28
28
  Requires-Dist: packaging<25,>=24.2
29
29
  Requires-Dist: plotly<7,>=6.0.1
@@ -1,7 +1,7 @@
1
1
  NREL-gaps<0.9,>=0.8.0
2
2
  NREL-NRWAL<0.1,>=0.0.11
3
3
  NREL-PySAM~=7.0.0
4
- NREL-rex<0.4,>=0.3.2
4
+ NREL-rex<0.4,>=0.3.5
5
5
  numpy<3,>=2.0.2
6
6
  packaging<25,>=24.2
7
7
  plotly<7,>=6.0.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NREL-reV
3
- Version: 0.14.1
3
+ Version: 0.14.2
4
4
  Summary: National Renewable Energy Laboratory's (NREL's) Renewable Energy Potential(V) Model: reV
5
5
  Author-email: Galen Maclaurin <galen.maclaurin@nrel.gov>
6
6
  Maintainer-email: Grant Buster <gbuster@nrel.gov>, Paul Pinchuk <ppinchuk@nrel.gov>
@@ -23,7 +23,7 @@ License-File: LICENSE
23
23
  Requires-Dist: NREL-gaps<0.9,>=0.8.0
24
24
  Requires-Dist: NREL-NRWAL<0.1,>=0.0.11
25
25
  Requires-Dist: NREL-PySAM~=7.0.0
26
- Requires-Dist: NREL-rex<0.4,>=0.3.2
26
+ Requires-Dist: NREL-rex<0.4,>=0.3.5
27
27
  Requires-Dist: numpy<3,>=2.0.2
28
28
  Requires-Dist: packaging<25,>=24.2
29
29
  Requires-Dist: plotly<7,>=6.0.1
@@ -34,7 +34,7 @@ dependencies = [
34
34
  "NREL-gaps>=0.8.0,<0.9",
35
35
  "NREL-NRWAL>=0.0.11,<0.1",
36
36
  "NREL-PySAM~=7.0.0",
37
- "NREL-rex>=0.3.2,<0.4",
37
+ "NREL-rex>=0.3.5,<0.4",
38
38
  "numpy>=2.0.2,<3",
39
39
  "packaging>=24.2,<25",
40
40
  "plotly>=6.0.1,<7",
@@ -6,6 +6,7 @@ import os
6
6
  import logging
7
7
 
8
8
  from rex.multi_file_resource import MultiFileResource
9
+ from rex.utilities.utilities import check_res_file
9
10
  from gaps.cli import as_click_command, CLICommandFromClass
10
11
 
11
12
  from reV.supply_curve.sc_aggregation import SupplyCurveAggregation
@@ -32,7 +33,7 @@ def _preprocessor(config, out_dir):
32
33
  dict
33
34
  Updated config file.
34
35
  """
35
- config = _format_res_fpath(config)
36
+ config = _validate_res_fpath(config)
36
37
  _validate_tm(config)
37
38
 
38
39
  key_to_modules = {"gen_fpath": [ModuleName.MULTI_YEAR,
@@ -47,32 +48,37 @@ def _preprocessor(config, out_dir):
47
48
  return config
48
49
 
49
50
 
50
- def _format_res_fpath(config):
51
- """Format res_fpath with year, if need be. """
51
+ def _validate_res_fpath(config):
52
+ """Format res_fpath with year (if needed) and check for file existence"""
52
53
  res_fpath = config.setdefault("res_fpath", None)
53
- if isinstance(res_fpath, str):
54
- if '{}' in res_fpath:
55
- for year in range(1950, 2100):
56
- if os.path.exists(res_fpath.format(year)):
57
- break
58
- else:
59
- msg = ("Could not find any files that match the pattern"
60
- "{!r}".format(res_fpath.format("<year>")))
61
- logger.error(msg)
62
- raise FileNotFoundError(msg)
63
-
64
- res_fpath = res_fpath.format(year)
65
-
66
- elif not os.path.exists(res_fpath):
67
- msg = "Could not find resource file: {!r}".format(res_fpath)
68
- logger.error(msg)
69
- raise FileNotFoundError(msg)
70
-
71
- config["res_fpath"] = res_fpath
54
+ if not isinstance(res_fpath, str):
55
+ return config
56
+
57
+ if '{}' in res_fpath:
58
+ config["res_fpath"] = _get_filepath_with_year(res_fpath)
59
+ else:
60
+ check_res_file(res_fpath)
72
61
 
73
62
  return config
74
63
 
75
64
 
65
+ def _get_filepath_with_year(res_fpath):
66
+ """Find first file that exists on disk with year filled in"""
67
+
68
+ for year in range(1950, 2100):
69
+ fp = res_fpath.format(year)
70
+ try:
71
+ check_res_file(fp)
72
+ except FileNotFoundError:
73
+ continue
74
+ return fp
75
+
76
+ msg = ("Could not find any files that match the pattern"
77
+ "{!r}".format(res_fpath.format("<year>")))
78
+ logger.error(msg)
79
+ raise FileNotFoundError(msg)
80
+
81
+
76
82
  def _validate_tm(config):
77
83
  """Check that tm_dset exists or that res_fpath is given (to generate tm)"""
78
84
  paths = config["excl_fpath"]
@@ -9,7 +9,7 @@ from gaps.cli import as_click_command, CLICommandFromClass
9
9
  from reV.supply_curve.tech_mapping import TechMapping
10
10
  from reV.utilities import ModuleName
11
11
  from reV.utilities.exceptions import ConfigError
12
- from reV.supply_curve.cli_sc_aggregation import _format_res_fpath
12
+ from reV.supply_curve.cli_sc_aggregation import _validate_res_fpath
13
13
 
14
14
  logger = logging.getLogger(__name__)
15
15
 
@@ -28,7 +28,7 @@ def _preprocessor(config):
28
28
  Updated config file.
29
29
  """
30
30
  _validate_excl_fpath(config)
31
- config = _format_res_fpath(config)
31
+ config = _validate_res_fpath(config)
32
32
  _validate_dset(config)
33
33
 
34
34
  return config
@@ -2,4 +2,4 @@
2
2
  reV Version number
3
3
  """
4
4
 
5
- __version__ = "0.14.1"
5
+ __version__ = "0.14.2"
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