dsgrid-toolkit 0.3.3__cp313-cp313-win_amd64.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.
Files changed (157) hide show
  1. build_backend.py +93 -0
  2. dsgrid/__init__.py +22 -0
  3. dsgrid/api/__init__.py +0 -0
  4. dsgrid/api/api_manager.py +179 -0
  5. dsgrid/api/app.py +419 -0
  6. dsgrid/api/models.py +60 -0
  7. dsgrid/api/response_models.py +116 -0
  8. dsgrid/apps/__init__.py +0 -0
  9. dsgrid/apps/project_viewer/app.py +216 -0
  10. dsgrid/apps/registration_gui.py +444 -0
  11. dsgrid/chronify.py +32 -0
  12. dsgrid/cli/__init__.py +0 -0
  13. dsgrid/cli/common.py +120 -0
  14. dsgrid/cli/config.py +176 -0
  15. dsgrid/cli/download.py +13 -0
  16. dsgrid/cli/dsgrid.py +157 -0
  17. dsgrid/cli/dsgrid_admin.py +92 -0
  18. dsgrid/cli/install_notebooks.py +62 -0
  19. dsgrid/cli/query.py +729 -0
  20. dsgrid/cli/registry.py +1862 -0
  21. dsgrid/cloud/__init__.py +0 -0
  22. dsgrid/cloud/cloud_storage_interface.py +140 -0
  23. dsgrid/cloud/factory.py +31 -0
  24. dsgrid/cloud/fake_storage_interface.py +37 -0
  25. dsgrid/cloud/s3_storage_interface.py +156 -0
  26. dsgrid/common.py +36 -0
  27. dsgrid/config/__init__.py +0 -0
  28. dsgrid/config/annual_time_dimension_config.py +194 -0
  29. dsgrid/config/common.py +142 -0
  30. dsgrid/config/config_base.py +148 -0
  31. dsgrid/config/dataset_config.py +907 -0
  32. dsgrid/config/dataset_schema_handler_factory.py +46 -0
  33. dsgrid/config/date_time_dimension_config.py +136 -0
  34. dsgrid/config/dimension_config.py +54 -0
  35. dsgrid/config/dimension_config_factory.py +65 -0
  36. dsgrid/config/dimension_mapping_base.py +350 -0
  37. dsgrid/config/dimension_mappings_config.py +48 -0
  38. dsgrid/config/dimensions.py +1025 -0
  39. dsgrid/config/dimensions_config.py +71 -0
  40. dsgrid/config/file_schema.py +190 -0
  41. dsgrid/config/index_time_dimension_config.py +80 -0
  42. dsgrid/config/input_dataset_requirements.py +31 -0
  43. dsgrid/config/mapping_tables.py +209 -0
  44. dsgrid/config/noop_time_dimension_config.py +42 -0
  45. dsgrid/config/project_config.py +1462 -0
  46. dsgrid/config/registration_models.py +188 -0
  47. dsgrid/config/representative_period_time_dimension_config.py +194 -0
  48. dsgrid/config/simple_models.py +49 -0
  49. dsgrid/config/supplemental_dimension.py +29 -0
  50. dsgrid/config/time_dimension_base_config.py +192 -0
  51. dsgrid/data_models.py +155 -0
  52. dsgrid/dataset/__init__.py +0 -0
  53. dsgrid/dataset/dataset.py +123 -0
  54. dsgrid/dataset/dataset_expression_handler.py +86 -0
  55. dsgrid/dataset/dataset_mapping_manager.py +121 -0
  56. dsgrid/dataset/dataset_schema_handler_base.py +945 -0
  57. dsgrid/dataset/dataset_schema_handler_one_table.py +209 -0
  58. dsgrid/dataset/dataset_schema_handler_two_table.py +322 -0
  59. dsgrid/dataset/growth_rates.py +162 -0
  60. dsgrid/dataset/models.py +51 -0
  61. dsgrid/dataset/table_format_handler_base.py +257 -0
  62. dsgrid/dataset/table_format_handler_factory.py +17 -0
  63. dsgrid/dataset/unpivoted_table.py +121 -0
  64. dsgrid/dimension/__init__.py +0 -0
  65. dsgrid/dimension/base_models.py +230 -0
  66. dsgrid/dimension/dimension_filters.py +308 -0
  67. dsgrid/dimension/standard.py +252 -0
  68. dsgrid/dimension/time.py +352 -0
  69. dsgrid/dimension/time_utils.py +103 -0
  70. dsgrid/dsgrid_rc.py +88 -0
  71. dsgrid/exceptions.py +105 -0
  72. dsgrid/filesystem/__init__.py +0 -0
  73. dsgrid/filesystem/cloud_filesystem.py +32 -0
  74. dsgrid/filesystem/factory.py +32 -0
  75. dsgrid/filesystem/filesystem_interface.py +136 -0
  76. dsgrid/filesystem/local_filesystem.py +74 -0
  77. dsgrid/filesystem/s3_filesystem.py +118 -0
  78. dsgrid/loggers.py +132 -0
  79. dsgrid/minimal_patterns.cp313-win_amd64.pyd +0 -0
  80. dsgrid/notebooks/connect_to_dsgrid_registry.ipynb +949 -0
  81. dsgrid/notebooks/registration.ipynb +48 -0
  82. dsgrid/notebooks/start_notebook.sh +11 -0
  83. dsgrid/project.py +451 -0
  84. dsgrid/query/__init__.py +0 -0
  85. dsgrid/query/dataset_mapping_plan.py +142 -0
  86. dsgrid/query/derived_dataset.py +388 -0
  87. dsgrid/query/models.py +728 -0
  88. dsgrid/query/query_context.py +287 -0
  89. dsgrid/query/query_submitter.py +994 -0
  90. dsgrid/query/report_factory.py +19 -0
  91. dsgrid/query/report_peak_load.py +70 -0
  92. dsgrid/query/reports_base.py +20 -0
  93. dsgrid/registry/__init__.py +0 -0
  94. dsgrid/registry/bulk_register.py +165 -0
  95. dsgrid/registry/common.py +287 -0
  96. dsgrid/registry/config_update_checker_base.py +63 -0
  97. dsgrid/registry/data_store_factory.py +34 -0
  98. dsgrid/registry/data_store_interface.py +74 -0
  99. dsgrid/registry/dataset_config_generator.py +158 -0
  100. dsgrid/registry/dataset_registry_manager.py +950 -0
  101. dsgrid/registry/dataset_update_checker.py +16 -0
  102. dsgrid/registry/dimension_mapping_registry_manager.py +575 -0
  103. dsgrid/registry/dimension_mapping_update_checker.py +16 -0
  104. dsgrid/registry/dimension_registry_manager.py +413 -0
  105. dsgrid/registry/dimension_update_checker.py +16 -0
  106. dsgrid/registry/duckdb_data_store.py +207 -0
  107. dsgrid/registry/filesystem_data_store.py +150 -0
  108. dsgrid/registry/filter_registry_manager.py +123 -0
  109. dsgrid/registry/project_config_generator.py +57 -0
  110. dsgrid/registry/project_registry_manager.py +1623 -0
  111. dsgrid/registry/project_update_checker.py +48 -0
  112. dsgrid/registry/registration_context.py +223 -0
  113. dsgrid/registry/registry_auto_updater.py +316 -0
  114. dsgrid/registry/registry_database.py +667 -0
  115. dsgrid/registry/registry_interface.py +446 -0
  116. dsgrid/registry/registry_manager.py +558 -0
  117. dsgrid/registry/registry_manager_base.py +367 -0
  118. dsgrid/registry/versioning.py +92 -0
  119. dsgrid/rust_ext/__init__.py +14 -0
  120. dsgrid/rust_ext/find_minimal_patterns.py +129 -0
  121. dsgrid/spark/__init__.py +0 -0
  122. dsgrid/spark/functions.py +589 -0
  123. dsgrid/spark/types.py +110 -0
  124. dsgrid/tests/__init__.py +0 -0
  125. dsgrid/tests/common.py +140 -0
  126. dsgrid/tests/make_us_data_registry.py +265 -0
  127. dsgrid/tests/register_derived_datasets.py +103 -0
  128. dsgrid/tests/utils.py +25 -0
  129. dsgrid/time/__init__.py +0 -0
  130. dsgrid/time/time_conversions.py +80 -0
  131. dsgrid/time/types.py +67 -0
  132. dsgrid/units/__init__.py +0 -0
  133. dsgrid/units/constants.py +113 -0
  134. dsgrid/units/convert.py +71 -0
  135. dsgrid/units/energy.py +145 -0
  136. dsgrid/units/power.py +87 -0
  137. dsgrid/utils/__init__.py +0 -0
  138. dsgrid/utils/dataset.py +830 -0
  139. dsgrid/utils/files.py +179 -0
  140. dsgrid/utils/filters.py +125 -0
  141. dsgrid/utils/id_remappings.py +100 -0
  142. dsgrid/utils/py_expression_eval/LICENSE +19 -0
  143. dsgrid/utils/py_expression_eval/README.md +8 -0
  144. dsgrid/utils/py_expression_eval/__init__.py +847 -0
  145. dsgrid/utils/py_expression_eval/tests.py +283 -0
  146. dsgrid/utils/run_command.py +70 -0
  147. dsgrid/utils/scratch_dir_context.py +65 -0
  148. dsgrid/utils/spark.py +918 -0
  149. dsgrid/utils/spark_partition.py +98 -0
  150. dsgrid/utils/timing.py +239 -0
  151. dsgrid/utils/utilities.py +221 -0
  152. dsgrid/utils/versioning.py +36 -0
  153. dsgrid_toolkit-0.3.3.dist-info/METADATA +193 -0
  154. dsgrid_toolkit-0.3.3.dist-info/RECORD +157 -0
  155. dsgrid_toolkit-0.3.3.dist-info/WHEEL +4 -0
  156. dsgrid_toolkit-0.3.3.dist-info/entry_points.txt +4 -0
  157. dsgrid_toolkit-0.3.3.dist-info/licenses/LICENSE +29 -0
@@ -0,0 +1,193 @@
1
+ Metadata-Version: 2.4
2
+ Name: dsgrid-toolkit
3
+ Version: 0.3.3
4
+ Classifier: Development Status :: 3 - Alpha
5
+ Classifier: Intended Audience :: Science/Research
6
+ Classifier: License :: OSI Approved :: BSD License
7
+ Classifier: Natural Language :: English
8
+ Classifier: Programming Language :: Python :: 3.11
9
+ Requires-Dist: chronify~=0.6.0
10
+ Requires-Dist: click>=8.2,<9
11
+ Requires-Dist: dash
12
+ Requires-Dist: dash-bootstrap-components
13
+ Requires-Dist: duckdb>=1,<2
14
+ Requires-Dist: fastapi
15
+ Requires-Dist: json5
16
+ Requires-Dist: networkx
17
+ Requires-Dist: pandas
18
+ Requires-Dist: prettytable
19
+ Requires-Dist: pyarrow
20
+ Requires-Dist: pydantic~=2.11.6
21
+ Requires-Dist: requests
22
+ Requires-Dist: rich-click
23
+ Requires-Dist: semver
24
+ Requires-Dist: sqlalchemy>=2,<3
25
+ Requires-Dist: uvicorn
26
+ Requires-Dist: tzdata
27
+ Requires-Dist: httpx ; extra == 'dev'
28
+ Requires-Dist: pytest ; extra == 'dev'
29
+ Requires-Dist: pytest-cov ; extra == 'dev'
30
+ Requires-Dist: pre-commit ; extra == 'dev'
31
+ Requires-Dist: devtools ; extra == 'dev'
32
+ Requires-Dist: flake8 ; extra == 'dev'
33
+ Requires-Dist: mypy ; extra == 'dev'
34
+ Requires-Dist: pyarrow ; extra == 'dev'
35
+ Requires-Dist: maturin ; extra == 'dev'
36
+ Requires-Dist: furo ; extra == 'doc'
37
+ Requires-Dist: ghp-import ; extra == 'doc'
38
+ Requires-Dist: numpydoc ; extra == 'doc'
39
+ Requires-Dist: pandas-stubs ; extra == 'doc'
40
+ Requires-Dist: ruff ; extra == 'doc'
41
+ Requires-Dist: sphinx~=7.2 ; extra == 'doc'
42
+ Requires-Dist: sphinx-click~=5.0 ; extra == 'doc'
43
+ Requires-Dist: sphinx-copybutton~=0.5.2 ; extra == 'doc'
44
+ Requires-Dist: sphinx-tabs~=3.4 ; extra == 'doc'
45
+ Requires-Dist: sphinx-argparse~=0.4.0 ; extra == 'doc'
46
+ Requires-Dist: sphinxcontrib-programoutput ; extra == 'doc'
47
+ Requires-Dist: autodoc-pydantic[erdantic]~=2.0 ; extra == 'doc'
48
+ Requires-Dist: twine ; extra == 'release'
49
+ Requires-Dist: setuptools ; extra == 'release'
50
+ Requires-Dist: wheel ; extra == 'release'
51
+ Requires-Dist: chronify[spark] ; extra == 'spark'
52
+ Requires-Dist: pyspark==4.0.0 ; extra == 'spark'
53
+ Requires-Dist: thrift ; extra == 'spark'
54
+ Requires-Dist: thrift-sasl ; extra == 'spark'
55
+ Provides-Extra: dev
56
+ Provides-Extra: doc
57
+ Provides-Extra: release
58
+ Provides-Extra: spark
59
+ License-File: LICENSE
60
+ Summary: Python API for accessing demand-side grid model (dsgrid) datasets
61
+ Keywords: dsgrid
62
+ Author-email: Elaine Hale <elaine.hale@nrel.gov>, Lixi Liu <lixi.liu@nrel.gov>, Meghan Mooney <meghan.mooney@nrel.gov>, Daniel Thom <daniel.thom@nrel.gov>
63
+ Maintainer-email: Elaine Hale <elaine.hale@nrel.gov>
64
+ Requires-Python: >=3.11
65
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
66
+ Project-URL: Documentation, https://dsgrid.github.io/dsgrid/
67
+ Project-URL: GitHub, https://github.com/dsgrid/dsgrid
68
+ Project-URL: Homepage, https://www.nrel.gov/analysis/dsgrid
69
+
70
+ # dsgrid
71
+ [![Documentation](https://img.shields.io/badge/docs-ready-blue.svg)](https://dsgrid.github.io/dsgrid)
72
+ [![codecov](https://codecov.io/gh/dsgrid/dsgrid/branch/main/graph/badge.svg?token=W0441C9XAL)](https://codecov.io/gh/dsgrid/dsgrid)
73
+
74
+ Python API for contributing to and accessing demand-side grid model (dsgrid) projects and datasets.
75
+
76
+ ⚠️ **dsgrid is under active development and does not yet have a formal package release.** Details listed here are subject to change. Please reach out to the dsgrid coordination team with any questions or other feedback. ⚠️
77
+
78
+ [Install](#install) | [Usage](#usage) | [Uninstall](#uninstall)
79
+
80
+ ## Install
81
+
82
+ [Virtual environment](#virtual-environment) | [Dependencies](#dependencies) | [from PIPY/pip](#from-pipypip) | [from pip+git](#from-pipgit) | [from cloned repository](#from-cloned-repository)
83
+
84
+ ### Virtual environment
85
+
86
+ Create a virtual environment in which to install dsgrid. Anaconda or miniconda is recommended.
87
+
88
+ ```
89
+ conda create -n dsgrid python=3.11
90
+ conda activate dsgrid
91
+ ```
92
+
93
+ ### Dependencies
94
+
95
+ dsgrid uses [Apache Spark](#https://spark.apache.org/) to manage big data. There are no separate installation steps for Apache Spark beyond installing the dsgrid package and installing:
96
+
97
+ ```
98
+ pip install "dsgrid-toolkit[spark]"
99
+ ```
100
+
101
+ Otherwise installing the pyspark Python dependency handles it.
102
+
103
+ However, you should be aware that Apache Spark's Microsoft Windows support is poor and essentially limited to local mode. That is, if you use dsgrid on a Windows machine you should not attempt to install a full version of Spark nor expect to run on a Spark cluster. As such, we recommend limiting dsgrid use on Windows to browsing the registry, registering and submitting small- to medium-sized datasets, or development work with small test projects. Full dsgrid functionality with large projects requires additional computational resources, e.g., high performance or cloud computing, typically on a Linux operating system.
104
+
105
+ #### Additional Notes
106
+ - If pyspark complains about not finding Python, you may need to locate your python executable file (python.exe on Windows), copy it, and rename the copy to python3 (python3.exe on Windows)
107
+
108
+ Spark requires Java 8 or later with the `JAVA_HOME` environment variable set to the Java installation directory.
109
+
110
+ On Linux you can install OpenJDK with conda:
111
+ ```
112
+ conda install openjdk
113
+ ```
114
+
115
+ Windows install instructions are below.
116
+
117
+ #### Windows
118
+
119
+ To install Apache Spark on Windows, follow [these instructions](https://towardsdatascience.com/installing-apache-pyspark-on-windows-10-f5f0c506bea1).
120
+
121
+ ### From PIPY/pip
122
+
123
+ pip install dsgrid-toolkit
124
+
125
+ or
126
+
127
+ pip install "dsgrid-toolkit[spark]"
128
+
129
+ ### From pip+git
130
+
131
+ **With ssh keys:**
132
+ ```
133
+ pip install git+ssh://git@github.com/dsgrid/dsgrid.git@main
134
+
135
+ # or
136
+
137
+ pip install git+ssh://git@github.com/dsgrid/dsgrid.git@develop
138
+ ```
139
+
140
+ **From http:**
141
+ ```
142
+ pip install git+https://github.com/dsgrid/dsgrid.git@main
143
+
144
+ # or
145
+
146
+ pip install git+https://github.com/dsgrid/dsgrid.git@develop
147
+ ```
148
+
149
+ ### From Cloned Repository
150
+
151
+ First, clone the repository and change into the `dsgrid` directory. For example:
152
+
153
+ ```
154
+ cd ~ # or other directory where you put repositories
155
+ git clone git@github.com:dsgrid/dsgrid.git # or the http address
156
+ cd dsgrid
157
+ ```
158
+
159
+ Then install the pacakge using the pip `-e` flag to directly use the files in the
160
+ cloned repository.
161
+
162
+ **Users:**
163
+ ```
164
+ pip install -e .
165
+ ```
166
+
167
+ **Developers:**
168
+ ```
169
+ pip install -e '.[dev,spark]'
170
+ ```
171
+
172
+ ## Usage
173
+
174
+ dsgrid is primarily a command-line interface (CLI) tool. To see the available commands:
175
+ ```
176
+ dsgrid --help
177
+ ```
178
+
179
+ ## Uninstall
180
+
181
+ ```
182
+ pip uninstall dsgrid
183
+ ```
184
+
185
+ If you are using a conda environment
186
+ ```
187
+ conda deactivate
188
+ ```
189
+
190
+ ## Software Record
191
+
192
+ dsgrid is developed under NREL Software Record SWR-21-52, "demand-side grid model".
193
+
@@ -0,0 +1,157 @@
1
+ build_backend.py,sha256=QCjVGPtIvdAzJf-g8ZuVKAJ986GqBi7wH2tlC53iPVc,3357
2
+ dsgrid\__init__.py,sha256=Zlb75Mc6E7cj_1fLQADM7gfMZrIA_lJ3_gq6ahQIQJI,676
3
+ dsgrid\api\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ dsgrid\api\api_manager.py,sha256=k_Zkg49AW5BEx0jE5fadPLy_s7XrbZrHFyDVG82r884,6513
5
+ dsgrid\api\app.py,sha256=tO7tWa8tdIsZLnptYnODLFm4HMQlW6iyTAG6U2Sp83g,16145
6
+ dsgrid\api\models.py,sha256=n69n0ATrhVMrJ6nQifEFb8fcrPRfT89rWuqmPpqGQgY,1728
7
+ dsgrid\api\response_models.py,sha256=y2OvyNQNYPrBZI48bTyBiah1LTNKsENvxP6iD2UsD8w,3270
8
+ dsgrid\apps\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ dsgrid\apps\project_viewer\app.py,sha256=f6N1mFTgRaY--MH_El_jmZhOjQcSak1Y8YR4h3npxL4,6786
10
+ dsgrid\apps\registration_gui.py,sha256=aSQZQoBoS7eluhT8aLJk62sXM4af2oXl_9qphOTZFXs,17974
11
+ dsgrid\chronify.py,sha256=8SPvKQInVQ2tTf1309HAs890F1a_qaEM9XmXgY6Sa2U,919
12
+ dsgrid\cli\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ dsgrid\cli\common.py,sha256=PrzX6yQGGvUeZJ_9V2uu2ZPIE9DcgQGELYkI4xLfLco,3573
14
+ dsgrid\cli\config.py,sha256=106nYJ5RO-GMYrDs6ZEzZEEodyGJM-OeTLdvcoZGhi0,4675
15
+ dsgrid\cli\download.py,sha256=Q55C8wX2p41ttGB7tZlv4Cz7_BLnEI4OQT_nBK0nOr4,232
16
+ dsgrid\cli\dsgrid.py,sha256=WFehmtGO5fgVUmxkJduj8AY11PapQiMCWtSXfmXjof4,4626
17
+ dsgrid\cli\dsgrid_admin.py,sha256=8Du_sLnzcqO2jWFcKuXJujisZ8xpyMJsdTQw9c1iE1w,3032
18
+ dsgrid\cli\install_notebooks.py,sha256=z_jw0YOov2ztOhctTBL8Bb1aroeTvDFm0ld_7vx4tEQ,1681
19
+ dsgrid\cli\query.py,sha256=oMaW86L0XadHMWhqVaVbatnTSbgkNMJllhZxml3-2pI,21667
20
+ dsgrid\cli\registry.py,sha256=_PwudlcOKLMBDGaoKev2VuVGKavtlmFmO2e7gNDi1Js,54412
21
+ dsgrid\cloud\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ dsgrid\cloud\cloud_storage_interface.py,sha256=hcZSbUjdSwnvG7Ruj5HJCZarXk2I_6q3PY3ymN6uY6A,4423
23
+ dsgrid\cloud\factory.py,sha256=zccKto_hegrp51DQMLGoVvDFMnJRDpOMVeYHjXxPjPM,1012
24
+ dsgrid\cloud\fake_storage_interface.py,sha256=YG5i55erjemVNlv0JczroWsF04rwG1u_x4a2B2heXAE,889
25
+ dsgrid\cloud\s3_storage_interface.py,sha256=90i5-VRP6Op0gP5cAD0P-uPVbralAJnZAVe9wT5lirQ,6573
26
+ dsgrid\common.py,sha256=ReTKnuKK6LfhDgZewductBDoAIibEeSw9ojJmrw7rKU,1023
27
+ dsgrid\config\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ dsgrid\config\annual_time_dimension_config.py,sha256=KSuDcPeAEei-vNtbIzkbpvcVs3vUDcVMl9-ky1mwSVw,7365
29
+ dsgrid\config\common.py,sha256=eF78tp7sDEeZSuHiQfWsDMCsfz7p1UgvfMcCNVlA-Rk,4609
30
+ dsgrid\config\config_base.py,sha256=oD_vIgTJGOkFXYeyYW_1KREUsxfNOGco66FsnUTbXr8,4001
31
+ dsgrid\config\dataset_config.py,sha256=MI1U4Q6vLQU5Ww7k-Ga_oHb1NbMwoZ8ZYXVk4EmA-yE,35583
32
+ dsgrid\config\dataset_schema_handler_factory.py,sha256=QRyqZY8HulxOEmurLXqMoq72W8C9Ix4R1G8j8dNqMzg,2017
33
+ dsgrid\config\date_time_dimension_config.py,sha256=TR7zAENYxFteCR19btTICc_O2i1-ijO5OhUeI1kSWAk,6000
34
+ dsgrid\config\dimension_config.py,sha256=zzdmGhRia7zp7KD4KpWLOJFG1VKatxOyqJT97FZRLkY,1288
35
+ dsgrid\config\dimension_config_factory.py,sha256=WPRYUbBWPfgxS05ATOPwPwhs3j8C3YBeSRq2SQQP7QE,2580
36
+ dsgrid\config\dimension_mapping_base.py,sha256=GufpDfiUHYDVdVMSvE0osrWvJ0dqK6K8ftVKbJXsi64,15432
37
+ dsgrid\config\dimension_mappings_config.py,sha256=H8YQwvH4PK8sIzjCDswlma1_kSymBpV7GEZmWxmkxGM,1309
38
+ dsgrid\config\dimensions.py,sha256=SWgCWp71kQTB2GnnEJ56AyoN_CdnWnYckIZfGAeLa7g,39310
39
+ dsgrid\config\dimensions_config.py,sha256=onX6XdT2cIh2FXPdvlcWrXNOSry_34FnrCPrfXWTVys,2057
40
+ dsgrid\config\file_schema.py,sha256=IDOW_WSYQDVMDFJvwRwBOskKcb5FiBThUStm83tNedY,7093
41
+ dsgrid\config\index_time_dimension_config.py,sha256=NvZKrVbnXWuZnS51-KP0AJtNlw2IF4lqi4a2RcLjRVs,2790
42
+ dsgrid\config\input_dataset_requirements.py,sha256=SjFPEtd9jDcwEgkoeheHHvyX14XEvHyyPTHvQ7IeEvM,1083
43
+ dsgrid\config\mapping_tables.py,sha256=KPqIMrGgMR0zcPAx64AMsXGKeWESyMzBZ3Z4hmllGOw,6603
44
+ dsgrid\config\noop_time_dimension_config.py,sha256=wahAZ1nGhAoOtBJPQe3hxeoteful5K6vyapKlT4apy0,1077
45
+ dsgrid\config\project_config.py,sha256=YxvNVLR5-Gzhzv8rcfiacKopgzyiZ-w_te53QQIzadg,62177
46
+ dsgrid\config\registration_models.py,sha256=gxo1821XW52NivU4i3W2FUvwaOxSBi1jmICUPV-o07g,7368
47
+ dsgrid\config\representative_period_time_dimension_config.py,sha256=NLdtawLzg7vSARAUV_cpOMMrG7QxagvD66_ov92CPFQ,7090
48
+ dsgrid\config\simple_models.py,sha256=YDPlAGzayAYqdU57XjynVEti4VeBs2O6xVvEIhwnHm0,1633
49
+ dsgrid\config\supplemental_dimension.py,sha256=i6gvcnLz7g-TB7en4nBuNoCZNrReZ-oxQjdlpnix5Og,875
50
+ dsgrid\config\time_dimension_base_config.py,sha256=z_cXMuPejRd_xjqM02_uVbw9bcG7-I7Hq8Of1-Z9suM,5785
51
+ dsgrid\data_models.py,sha256=uzPRdXcVHUanNZ91wiXrGcLSRQ-CU314X9G9MfsukGE,4810
52
+ dsgrid\dataset\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ dsgrid\dataset\dataset.py,sha256=Us4a1Mzk3H4f7MFFx8ZY28jAzmiwHIJCsEOT2cvi83k,3821
54
+ dsgrid\dataset\dataset_expression_handler.py,sha256=yTtfzbLdi2Xi_6fZeHkOklkMZlCkF2oCjEMzJ1Lqebg,3092
55
+ dsgrid\dataset\dataset_mapping_manager.py,sha256=0a0TbQJjoqZ04G9Vcq-tUDT9Kvjk37h5g8vj7HhRigY,4989
56
+ dsgrid\dataset\dataset_schema_handler_base.py,sha256=46zJb0DaQIMcgN9BDMf_7lzZfNzfYTnJUz5uMvREmfI,41942
57
+ dsgrid\dataset\dataset_schema_handler_one_table.py,sha256=d0TtmZmcDdwAQxwJgpipouAMMmLhR-NVl_ifppoWW6c,9631
58
+ dsgrid\dataset\dataset_schema_handler_two_table.py,sha256=lJRFLyllWq0F53jnZWdILOslREc0KQfLsyEPwCVwtc4,14050
59
+ dsgrid\dataset\growth_rates.py,sha256=7t7DnKkXHV72FJ_JthX4VEskqIci-KEfuG4WbsbUPjc,4710
60
+ dsgrid\dataset\models.py,sha256=kAPIKnUOSs6pKURfJI0zCYm1UjXx2-8aw-rxeVpIf2k,1440
61
+ dsgrid\dataset\table_format_handler_base.py,sha256=xLyc6YT9T33ywhMvPgQ9UHCvCElo6vlTKKMrN_27fOI,11269
62
+ dsgrid\dataset\table_format_handler_factory.py,sha256=7xFz3f6ZnTcsnizra4J3NTeXLsJ9_eb6GBzp-s7XbPI,599
63
+ dsgrid\dataset\unpivoted_table.py,sha256=2isjTxxpw72vMtoJN8_XQSEi9NYpBTaOYfUW5BLMvL8,4888
64
+ dsgrid\dimension\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ dsgrid\dimension\base_models.py,sha256=TjNu5DuzpJbMsx0vbus7Ms91qkCdtD1NxboYTuIJ3Xk,7402
66
+ dsgrid\dimension\dimension_filters.py,sha256=pu0N8YpkfU3HvpU6QpgrrinOMAlY97RHKJd3xxrtfnQ,10325
67
+ dsgrid\dimension\standard.py,sha256=_jryeSvTW0pzglk5b3Dw9VSr20-v5za6qSrdIp6XD-c,5862
68
+ dsgrid\dimension\time.py,sha256=bn_J9FTpgb3BYI5bRRkz3QkRuiXzy7OaNXti0CdDnLk,13010
69
+ dsgrid\dimension\time_utils.py,sha256=naUGybPiPNOATbkqF6W-ii8h5yLTmaZpfbnzUhoaSfA,3220
70
+ dsgrid\dsgrid_rc.py,sha256=HzlnaezMlfKpxyMxX5MAoM9wUH0yZBjzwhx2jxgrG-s,3021
71
+ dsgrid\exceptions.py,sha256=28jPi0LSl9xWFDk_FXTFB522rSU3LO8Xqoi307QjZRY,2656
72
+ dsgrid\filesystem\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
+ dsgrid\filesystem\cloud_filesystem.py,sha256=rs0e33PDGWwGh3OHTgBNFaOt4o1BaORxxVq1Xq2vZ8I,836
74
+ dsgrid\filesystem\factory.py,sha256=hkH03-Fb3ltGZDzyeatIDLvgJMCv2glkkHkCHqRjOUM,764
75
+ dsgrid\filesystem\filesystem_interface.py,sha256=PtTIe4nUdxzrJfC0gBXr9ce_iyhFjnEKq9G5sVlBV6M,3115
76
+ dsgrid\filesystem\local_filesystem.py,sha256=_YV79izmGJuzcjoMohmTb8ILfwJowlxSr1MklFq6CK0,2332
77
+ dsgrid\filesystem\s3_filesystem.py,sha256=-ovqKRb3dHxnlm7TKWAqVlSAGSaxDVLU17ubBdXwCgo,3981
78
+ dsgrid\loggers.py,sha256=_MUZzJkqTq7oBSQhJQoG5PZB1BXsz3QYBAVce9I5fCo,4434
79
+ dsgrid\minimal_patterns.cp313-win_amd64.pyd,sha256=gFDI7XlaRp4NX5U-uGHloCxXCDNeXufRChGw8RPBSRg,6526976
80
+ dsgrid\notebooks\connect_to_dsgrid_registry.ipynb,sha256=PM_mLOTdv-ZwwBcDytw1HZ72DD0obrTaoiG87BKW2-k,28256
81
+ dsgrid\notebooks\registration.ipynb,sha256=ZWjl91iwlpgdb6Q-gRuNEOsuFFunUicQObToww8kzF0,1011
82
+ dsgrid\notebooks\start_notebook.sh,sha256=bHkDLOFOE-x8sRGddqjv5uE24YjlXuPW46QoNdb5_Ic,429
83
+ dsgrid\project.py,sha256=GC96thlNIDU9uFD-_kIvtzIYGzbOtxDvUR4XX1BQtwM,18563
84
+ dsgrid\query\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
+ dsgrid\query\dataset_mapping_plan.py,sha256=SppHjMtB6zsShaZfSpwnmUFMmst9Y9477vavpjcecHY,5721
86
+ dsgrid\query\derived_dataset.py,sha256=x3SVEV30yki5__tanKXCJ752-IN7GSLGFIUa84e8HLA,16135
87
+ dsgrid\query\models.py,sha256=RD9VJXFfzDtzono8L-J5aNFmimb52mc94Q0U6cfog7s,28261
88
+ dsgrid\query\query_context.py,sha256=GACH_v2dMiENaif16ikDiyinpwMrpqRxufDV64sWsqA,11963
89
+ dsgrid\query\query_submitter.py,sha256=mN-VqCGADq15pdZ13JfQ6yTIhrHg1diQ5rzL-K_XfZA,44929
90
+ dsgrid\query\report_factory.py,sha256=7L_GfF1CemMCc5pu48ZRprGF7HRz2uOAAdxOINp25S8,538
91
+ dsgrid\query\report_peak_load.py,sha256=XwOONNOh4yPPBaTqWsY3ILVLT8HXbTvxJQP0NSmfpFU,2728
92
+ dsgrid\query\reports_base.py,sha256=DRJfZkLVzmKLY29nDSC6DkgAZaZBdVfwwpRYhff-qCk,610
93
+ dsgrid\registry\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
+ dsgrid\registry\bulk_register.py,sha256=Tl_t-Z4NMD7cqQ5W9fZw3YmyqXwcrYdyvayEJS8nblU,6767
95
+ dsgrid\registry\common.py,sha256=TUh4D9dtzPZ988hExasp1S7t5O3I7WgFrz3EGr5jWCA,10446
96
+ dsgrid\registry\config_update_checker_base.py,sha256=_ep8u9QIxiH3cdCnKQRLXT63ju6_pj0SKacthrXAKDk,2108
97
+ dsgrid\registry\data_store_factory.py,sha256=zGl5OtA6ETbd8AgG65G-MxlAF3rmGhz86KTMJG2kbWo,1119
98
+ dsgrid\registry\data_store_interface.py,sha256=z4QpnokkoG81HfXxo8D6kJHAlzlwOOTl7tTH_KofDSc,2553
99
+ dsgrid\registry\dataset_config_generator.py,sha256=YxRdSHZbFNKDrXMHgsgDkAkHpns7QTXRc3FETjdSzKo,6030
100
+ dsgrid\registry\dataset_registry_manager.py,sha256=ALVxB-5FypgU2T-uBl_7MGgWKERvtG2rrCIQO-UaukA,38821
101
+ dsgrid\registry\dataset_update_checker.py,sha256=bPL_L_DNqaVw-ziDXQFmEAFIBL_BwhLrF3YqVufBJm8,336
102
+ dsgrid\registry\dimension_mapping_registry_manager.py,sha256=ZEvQKbtHJLUcopFDxhwM75ow1BbQmpKmra36HkB5y1g,23194
103
+ dsgrid\registry\dimension_mapping_update_checker.py,sha256=1iqbstIXLp0ajptO3DOmeG5X8kM8ffbFk7JJc47CF3o,355
104
+ dsgrid\registry\dimension_registry_manager.py,sha256=4t-rWh8Ebzqwx3i-VS4Uxxr6_UjQ9xn_U3G-JUiPwZ8,15496
105
+ dsgrid\registry\dimension_update_checker.py,sha256=cdbIZsZD96KcMod7jy2WN5NB3vyaecLu2AtLVtlQZu8,340
106
+ dsgrid\registry\duckdb_data_store.py,sha256=k5rzJ0h0AtSnpZX9IJ34Aq-t2F9Bu8OTbmBhVftMw18,8486
107
+ dsgrid\registry\filesystem_data_store.py,sha256=9H_-WWo-FEx_p6-6mQL5w6807H69gBP2E5SD8vGJOMk,6524
108
+ dsgrid\registry\filter_registry_manager.py,sha256=jpwkhocpd7Dg8OkZJg8HFfXJYhUJv03A925M_VYQWKs,5902
109
+ dsgrid\registry\project_config_generator.py,sha256=sNmAvb0GpOGnXvkYJDG2XtmKv9pApDpfaAT2JJJkkWQ,1902
110
+ dsgrid\registry\project_registry_manager.py,sha256=VDqR-YQT6lYiVsM5lTcVhJldO73bBwbo8lvrVflCyWU,70626
111
+ dsgrid\registry\project_update_checker.py,sha256=11XT9Vgp7a_qOg3g24a3kFKmBP2_DqDdVqeNU6uiLvQ,1950
112
+ dsgrid\registry\registration_context.py,sha256=dpJVoPNtkCmMUaL6ntM574sjOVmQ4anQ1D6li-tHFLc,7837
113
+ dsgrid\registry\registry_auto_updater.py,sha256=HOMhpXJJdlxxp3vSRkKCHisYCmEV9pwfbh4Iwm6pkpk,13768
114
+ dsgrid\registry\registry_database.py,sha256=JIsIEKshsuJl9rkZN9gXYX3XHlBptvMf1Qa3u0Q649M,26196
115
+ dsgrid\registry\registry_interface.py,sha256=HSzKn372J21cOd8z0l8MiI3cWkh643hrdBqjMfWc3ug,17512
116
+ dsgrid\registry\registry_manager.py,sha256=AKhnSHHb-E-9ZbNT0KK9LvJBGboumjKVT2Nv62tH0oc,21686
117
+ dsgrid\registry\registry_manager_base.py,sha256=L4WWR2q1lgGUWB5Id5gSY6FdboExtHKCMVeVKs0G6Ug,11198
118
+ dsgrid\registry\versioning.py,sha256=HiRcktCnjR0MS7aeR4gFw6DU1y-hjjf1sLQ_1HofeqM,3955
119
+ dsgrid\rust_ext\__init__.py,sha256=_dpY7QfMUTr4HKb_KIKciDdR49uKe_4HDf4DfsXZZmw,539
120
+ dsgrid\rust_ext\find_minimal_patterns.py,sha256=HrNciGACQTqEiBjkbvvmLHydB0qYPtHG6Cuy0omzJHo,4561
121
+ dsgrid\spark\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
+ dsgrid\spark\functions.py,sha256=F2RTmvuG9JiEcNYow4D61Ro6DcvfXhp7v-EUp-L06qI,20315
123
+ dsgrid\spark\types.py,sha256=AFeh3Vmttcz69O9IrR3nZRYtYF5qAnM3KYAyyTLlnJM,2788
124
+ dsgrid\tests\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ dsgrid\tests\common.py,sha256=S6ccoRGG_spJpKOZZf_BuY1fXo24zfM3UGuR37cxntU,5220
126
+ dsgrid\tests\make_us_data_registry.py,sha256=RlMeG2vqCtVmwmLmnuCIgLdbSDByBhl33zLbEnDqrfQ,9410
127
+ dsgrid\tests\register_derived_datasets.py,sha256=FSISHIHVuGSWiiIxu1w9kXTi8n2EmT19_tl7OYm7X7U,3557
128
+ dsgrid\tests\utils.py,sha256=dZEJYWAqYzpxNJRc1PmZIXW18B-nkVJiiJKVODKCXEQ,848
129
+ dsgrid\time\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
+ dsgrid\time\time_conversions.py,sha256=nfoQ7Z-XZelwbG7sD_gticViL7RTXjxIV2zMo11mGu8,1822
131
+ dsgrid\time\types.py,sha256=nn-JPvQjlMgahPqdJXUR2AWZbKW3fNbjDkA9yMwHVg0,1433
132
+ dsgrid\units\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
+ dsgrid\units\constants.py,sha256=WhHAc-aPDAHcwK6ya5I5ZczIZ7GUeGMzzzwWzhnLU3Q,2557
134
+ dsgrid\units\convert.py,sha256=n46KRrKCbtVeX31RZVcekLzsXGKZMKoliF9txGyn7AQ,2603
135
+ dsgrid\units\energy.py,sha256=Akp-JqzxO-kVp10SNL6jszwhkLrY0jTD0KfexwdKuJE,5430
136
+ dsgrid\units\power.py,sha256=h-ig-G5I_RXca7lQRg9h893uhcWrUBThFIsk5cgOHRE,3009
137
+ dsgrid\utils\__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
+ dsgrid\utils\dataset.py,sha256=Xh17PDQM2fq9cDsfcbeCn1CG7n54fI3toQIbSkDM0Qo,31519
139
+ dsgrid\utils\files.py,sha256=HxGTCscJ0z56klk0yYlpmwnoScWh-zlczoDOI4hTijI,4186
140
+ dsgrid\utils\filters.py,sha256=AKohB8ex1d2l_YgKv_6EFORL_usPqH8_cHAEwJUF8gk,4121
141
+ dsgrid\utils\id_remappings.py,sha256=ZXrvA6VMgmiN9a5ikpa-Z1UviZRK97b2oPaG7iCjl9U,3637
142
+ dsgrid\utils\py_expression_eval\LICENSE,sha256=n4edgLobrTX9lP6UzdXBEZTZ1INg7OHASbhuxZJi8rE,1065
143
+ dsgrid\utils\py_expression_eval\README.md,sha256=-kTOKDhfw3bLyDPYWYbFVxCYDFKr50k4szKyS_gHj5A,470
144
+ dsgrid\utils\py_expression_eval\__init__.py,sha256=x-Gu9ckrXqB-iLOQ6_7aJb_zhSN6PoTdgmKOahGm7d0,27703
145
+ dsgrid\utils\py_expression_eval\tests.py,sha256=mCpxCmTfGNNHgvCGScgTN4zFrhxVgrWeccaDHSUbnIo,14686
146
+ dsgrid\utils\run_command.py,sha256=WsviG-s6nCU4VTfGC2W6WCm8KiyKpk8S7jyRUDkHYj0,1992
147
+ dsgrid\utils\scratch_dir_context.py,sha256=G-3SZuedK7GuDilF9Co8CMYIzQdItvokLlQ5e2DVjno,2131
148
+ dsgrid\utils\spark.py,sha256=Csl9HwaCrlh8U_ZgfWylyjNvzu0FiDvl8uVsmUe79KI,31745
149
+ dsgrid\utils\spark_partition.py,sha256=kw60phIDv60vbwVCXsd2zvMeqyYNs1Fw2A9UgUoROls,3290
150
+ dsgrid\utils\timing.py,sha256=6dyznxj-bd1-6n0oVboij0alq9cQKSagRE3_VJ4fYGw,6245
151
+ dsgrid\utils\utilities.py,sha256=kXcsfCn1GpGXATsnlijMc-TyyJL4NX9_cbYALk5n4_0,5639
152
+ dsgrid\utils\versioning.py,sha256=VPEuGH4_B1HPHNt_PvOezXGkEvRm06Z_R4jjO2z162o,734
153
+ dsgrid_toolkit-0.3.3.dist-info\METADATA,sha256=q4wANKKcuzWiCItiofGb-EBz1_mSHlVERj37QzDK4-U,6630
154
+ dsgrid_toolkit-0.3.3.dist-info\WHEEL,sha256=n_BmF69IyGtioVWE9c3M_zsEfe6-xMZy1v5HCL_6qE0,97
155
+ dsgrid_toolkit-0.3.3.dist-info\entry_points.txt,sha256=CGqBeev8sykA0VIv61UtRa40MEEYpjw6WUkTaP03YmA,124
156
+ dsgrid_toolkit-0.3.3.dist-info\licenses\LICENSE,sha256=tCBvgZiPj0JERGQ8vtPd_G86pZIiWVz_XeROb_QpHRA,1573
157
+ dsgrid_toolkit-0.3.3.dist-info\RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: maturin (1.11.5)
3
+ Root-Is-Purelib: false
4
+ Tag: cp313-cp313-win_amd64
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ dsgrid=dsgrid.cli.dsgrid:cli
3
+ dsgrid-admin=dsgrid.cli.dsgrid_admin:cli
4
+ dsgrid-cli.py=dsgrid.cli.dsgrid:cli
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2021, Alliance for Sustainable Energy, LLC
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.