ras-commander 0.57.0__py3-none-any.whl → 0.59.0__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.
- ras_commander/RasExamples.py +12 -3
- ras_commander/RasPrj.py +14 -5
- {ras_commander-0.57.0.dist-info → ras_commander-0.59.0.dist-info}/METADATA +103 -59
- {ras_commander-0.57.0.dist-info → ras_commander-0.59.0.dist-info}/RECORD +7 -7
- {ras_commander-0.57.0.dist-info → ras_commander-0.59.0.dist-info}/LICENSE +0 -0
- {ras_commander-0.57.0.dist-info → ras_commander-0.59.0.dist-info}/WHEEL +0 -0
- {ras_commander-0.57.0.dist-info → ras_commander-0.59.0.dist-info}/top_level.txt +0 -0
ras_commander/RasExamples.py
CHANGED
@@ -122,8 +122,16 @@ class RasExamples:
|
|
122
122
|
self._save_to_csv()
|
123
123
|
|
124
124
|
@classmethod
|
125
|
-
def extract_project(cls, project_names: Union[str, List[str]]):
|
126
|
-
"""Extract one or more specific HEC-RAS projects from the zip file.
|
125
|
+
def extract_project(cls, project_names: Union[str, List[str]]) -> Union[Path, List[Path]]:
|
126
|
+
"""Extract one or more specific HEC-RAS projects from the zip file.
|
127
|
+
|
128
|
+
Args:
|
129
|
+
project_names: Single project name as string or list of project names
|
130
|
+
|
131
|
+
Returns:
|
132
|
+
Path: Single Path object if one project extracted
|
133
|
+
List[Path]: List of Path objects if multiple projects extracted
|
134
|
+
"""
|
127
135
|
logger.debug(f"Extracting projects: {project_names}")
|
128
136
|
|
129
137
|
# Initialize if needed
|
@@ -178,7 +186,8 @@ class RasExamples:
|
|
178
186
|
except Exception as e:
|
179
187
|
logger.error(f"An error occurred while extracting project '{project_name}': {str(e)}")
|
180
188
|
|
181
|
-
return
|
189
|
+
# Return single path if only one project was extracted, otherwise return list
|
190
|
+
return extracted_paths[0] if len(project_names) == 1 else extracted_paths
|
182
191
|
|
183
192
|
@classmethod
|
184
193
|
def _find_zip_file(cls):
|
ras_commander/RasPrj.py
CHANGED
@@ -828,7 +828,6 @@ def init_ras_project(ras_project_folder, ras_version=None, ras_object=None):
|
|
828
828
|
Initialize a RAS project.
|
829
829
|
|
830
830
|
USE THIS FUNCTION TO INITIALIZE A RAS PROJECT, NOT THE INITIALIZE METHOD OF THE RasPrj CLASS.
|
831
|
-
The initialize method of the RasPrj class only modifies the global 'ras' object.
|
832
831
|
|
833
832
|
Parameters:
|
834
833
|
-----------
|
@@ -838,8 +837,10 @@ def init_ras_project(ras_project_folder, ras_version=None, ras_object=None):
|
|
838
837
|
The version of RAS to use (e.g., "6.6").
|
839
838
|
The version can also be a full path to the Ras.exe file.
|
840
839
|
If None, the function will attempt to use the version from the global 'ras' object or a default path.
|
841
|
-
ras_object : RasPrj, optional
|
842
|
-
|
840
|
+
ras_object : RasPrj or str, optional
|
841
|
+
If None, the global 'ras' object is updated.
|
842
|
+
If a RasPrj instance, that instance is updated.
|
843
|
+
If any other value is provided, a new RasPrj instance is created and returned.
|
843
844
|
|
844
845
|
Returns:
|
845
846
|
--------
|
@@ -852,16 +853,24 @@ def init_ras_project(ras_project_folder, ras_version=None, ras_object=None):
|
|
852
853
|
|
853
854
|
ras_exe_path = get_ras_exe(ras_version)
|
854
855
|
|
856
|
+
# Determine which RasPrj instance to use
|
855
857
|
if ras_object is None:
|
858
|
+
# Use the global 'ras' object
|
856
859
|
logger.info("Initializing global 'ras' object via init_ras_project function.")
|
857
860
|
ras_object = ras
|
858
861
|
elif not isinstance(ras_object, RasPrj):
|
859
|
-
|
860
|
-
|
862
|
+
# Create a new RasPrj instance
|
863
|
+
logger.info("Creating a new RasPrj instance.")
|
864
|
+
ras_object = RasPrj()
|
861
865
|
|
862
866
|
# Initialize the RasPrj instance
|
863
867
|
ras_object.initialize(ras_project_folder, ras_exe_path)
|
864
868
|
|
869
|
+
# Always update the global ras object as well
|
870
|
+
if ras_object is not ras:
|
871
|
+
ras.initialize(ras_project_folder, ras_exe_path)
|
872
|
+
logger.info("Global 'ras' object also updated to match the new project.")
|
873
|
+
|
865
874
|
logger.info(f"Project initialized. ras_object project folder: {ras_object.project_folder}")
|
866
875
|
return ras_object
|
867
876
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: ras-commander
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.59.0
|
4
4
|
Summary: A Python library for automating HEC-RAS 6.x operations
|
5
5
|
Home-page: https://github.com/gpt-cmdr/ras-commander
|
6
6
|
Author: William M. Katzenmeyer, P.E., C.F.M.
|
@@ -34,27 +34,20 @@ Dynamic: summary
|
|
34
34
|
|
35
35
|
RAS Commander is a Python library for automating HEC-RAS operations, providing a set of tools to interact with HEC-RAS project files, execute simulations, and manage project data. This library was initially conceptualized in the Australian Water School course "AI Tools for Modelling Innovation", and subsequently expanded to cover the basic functionality of the HECRASController COM32 interface using open-source python libraries. This library uses a Test Driven Development strategy, leveraging the publicly-available HEC-RAS Example projects to create repeatable demonstration examples. The "Commmander" moniker is inspired by the "Command Line is All You Need" approach to HEC-RAS automation that was first implemented in the HEC-Commander Tools repository.
|
36
36
|
|
37
|
-
##
|
38
|
-
William Katzenmeyer, P.E., C.F.M.
|
37
|
+
## Repository Author:
|
38
|
+
(William Katzenmeyer, P.E., C.F.M.)[https://engineeringwithllms.info]
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
Aaron Nichols, P.E., C.F.M.
|
43
|
-
|
44
|
-
(Additional Contributors Here)
|
45
|
-
|
46
|
-
## Don't Ask Me, Ask ChatGPT!
|
40
|
+
## Don't Ask Me, Ask GPT!
|
47
41
|
|
48
42
|
This repository has several methods of interaction with Large Language Models and LLM-Assisted Coding built right in:
|
49
43
|
|
50
44
|
1. **[RAS Commander Library Assistant GPT](https://chatgpt.com/g/g-TZRPR3oAO-ras-commander-library-assistant)**: A specialized GPT model with access to the ras-commander codebase and library, available for answering queries and providing code suggestions. You can even upload your own plan, unsteady and HDF files to inspect and help determine how to automate your workflows or visualize your results, although this ability is still limited by OpenAI's GPT frameworks and may not be useful for long conversations.
|
51
45
|
|
52
|
-
2. **[Purpose-Built Knowledge Base Summaries](https://github.com/
|
46
|
+
2. **[Purpose-Built Knowledge Base Summaries](https://github.com/gpt-cmdr/ras-commander/tree/main/ai_tools/assistant_knowledge_bases)**: Up-to-date compilations of the documentation and codebase for use with large language models like Claude or GPT-4. Look in 'ai_tools/assistant_knowledge_bases/' in the repo. The repo's codebase (without documentation and examples) has been curated to stay within the current ~200k context window limitations of frontier models, and for tasks that do not need an understanding of the underlying code, the Comprehensive Library Guide and any relevant examples from the example folder should be adequate context for leveraging the ras-commander API to complete tasks.
|
53
47
|
|
54
|
-
3. **[Cursor IDE Integration](https://github.com/
|
55
|
-
|
56
|
-
5. **[RAS-Commander Library Assistant](https://github.com/billk-FM/ras-commander/blob/main/library_assistant)**: A full-featured interface for multi-turn conversations, using your own API keys and the ras-commander library for context. The library assistant allows you to load your own scripts and chat with specific examples and/or function classes in the RAS-Commander library to effectively utilize the library's functions in your workflow. To reduce hallucinations, a file browser is included which adds full files to the conversation to ensure grounded responses. A dashboard shows you the total context and estimated cost of each request. **Now with support for OpenAI's o1 and o3-mini, and Deepseek V3 and R1 models using US-based Together.ai**
|
48
|
+
3. **[Cursor IDE Integration](https://github.com/gpt-cmdr/ras-commander/blob/main/.cursorrules)**: Custom rules(.cursorrules) for the Cursor IDE to provide context-aware suggestions and documentation. Just open the repository folder in Cursor to recognize these instructions. You can create your own folders "/workspace/, "/projects/", or "my_projects/" as these are already in the .gitignore, and place your custom scripts there for your projects. This will allow easy referencing of the ras-commander documents and individual repo files, the automatic loading of the .cursorrules file. Alternatvely, download the github repo into your projects folder to easily load documents and use cursor rules files.
|
57
49
|
|
50
|
+
5. **[RAS-Commander Library Assistant](https://github.com/gpt-cmdr/ras-commander/blob/main/library_assistant)**: A full-featured interface for multi-turn conversations, using your own API keys and the ras-commander library for context. The library assistant allows you to load your own scripts and chat with specific examples and/or function classes in the RAS-Commander library to effectively utilize the library's functions in your workflow. To reduce hallucinations, a file browser is included which adds full files to the conversation to ensure grounded responses. A dashboard shows you the total context and estimated cost of each request. **Now with support for OpenAI's o1 and o3-mini, and Deepseek V3 and R1 models using US-based Together.ai**
|
58
51
|
|
59
52
|
## Background
|
60
53
|
The ras-commander library emerged from the initial test-bed of AI-driven coding represented by the HEC-Commander tools Python notebooks. These notebooks served as a proof of concept, demonstrating the value proposition of automating HEC-RAS operations. The transition from notebooks to a structured library aims to provide a more robust, maintainable, and extensible solution for water resources engineers.
|
@@ -71,8 +64,6 @@ HEC-RAS Project Management & Execution
|
|
71
64
|
- Progress tracking and logging
|
72
65
|
- Execution error handling and recovery
|
73
66
|
|
74
|
-
|
75
|
-
|
76
67
|
HDF Data Access & Analysis
|
77
68
|
- 2D mesh results processing (depths, velocities, WSE)
|
78
69
|
- Cross-section data extraction
|
@@ -82,7 +73,6 @@ HDF Data Access & Analysis
|
|
82
73
|
- Fluvial-pluvial boundary calculations
|
83
74
|
- Infiltration and precipitation data handling
|
84
75
|
|
85
|
-
|
86
76
|
RAS ASCII File Operations
|
87
77
|
- Plan file creation and modification
|
88
78
|
- Geometry file parsing examples
|
@@ -99,7 +89,6 @@ First, create a virtual environment with conda or venv (ask ChatGPT if you need
|
|
99
89
|
|
100
90
|
In your virtual environment, install ras-commander using pip:
|
101
91
|
```
|
102
|
-
pip install h5py numpy pandas requests tqdm scipy xarray geopandas matplotlib ipython tqdm psutil shapely fiona pathlib rtree rasterstats
|
103
92
|
pip install --upgrade ras-commander
|
104
93
|
```
|
105
94
|
If you have dependency issues with pip (especially if you have errors with numpy), try clearing your local pip packages 'C:\Users\your_username\AppData\Roaming\Python\' and then creating a new virtual environment.
|
@@ -124,10 +113,6 @@ except ImportError:
|
|
124
113
|
```
|
125
114
|
It is highly suggested to fork this repository before going this route, and using Git to manage your changes! This allows any revisions to the ras-commander classes and functions to be actively edited and developed by end users. The folders "/workspace/, "/projects/", or "my_projects/" are included in the .gitignore, so users can place you custom scripts there for any project data they don't want to be tracked by git.
|
126
115
|
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
116
|
## Quick Start Guide
|
132
117
|
|
133
118
|
```
|
@@ -147,9 +132,9 @@ RasCmdr.compute_plan("01", dest_folder=r"/path/to/results", overwrite_dest=True)
|
|
147
132
|
### Execute plans in parallel
|
148
133
|
```
|
149
134
|
results = RasCmdr.compute_parallel(
|
150
|
-
|
135
|
+
plan_number=["01", "02"],
|
151
136
|
max_workers=2,
|
152
|
-
|
137
|
+
num_cores=2,
|
153
138
|
dest_folder=r"/path/to/results",
|
154
139
|
overwrite_dest=True
|
155
140
|
)
|
@@ -160,7 +145,62 @@ results = RasCmdr.compute_parallel(
|
|
160
145
|
RasPlan.set_geom("01", "02")
|
161
146
|
```
|
162
147
|
|
163
|
-
|
148
|
+
### Execution Modes
|
149
|
+
|
150
|
+
RAS Commander provides three methods for executing HEC-RAS plans:
|
151
|
+
|
152
|
+
#### Single Plan Execution
|
153
|
+
```python
|
154
|
+
# Execute a single plan
|
155
|
+
success = RasCmdr.compute_plan("01", dest_folder=r"/path/to/results")
|
156
|
+
print(f"Plan execution {'successful' if success else 'failed'}")
|
157
|
+
```
|
158
|
+
|
159
|
+
#### Sequential Execution of Multiple Plans
|
160
|
+
```python
|
161
|
+
# Execute multiple plans in sequence in a test folder
|
162
|
+
results = RasCmdr.compute_test_mode(
|
163
|
+
plan_number=["01", "02", "03"],
|
164
|
+
dest_folder_suffix="[Test]"
|
165
|
+
)
|
166
|
+
for plan, success in results.items():
|
167
|
+
print(f"Plan {plan}: {'Successful' if success else 'Failed'}")
|
168
|
+
```
|
169
|
+
|
170
|
+
#### Parallel Execution of Multiple Plans
|
171
|
+
```python
|
172
|
+
# Execute multiple plans concurrently
|
173
|
+
results = RasCmdr.compute_parallel(
|
174
|
+
plan_number=["01", "02", "03"],
|
175
|
+
max_workers=3,
|
176
|
+
num_cores=2
|
177
|
+
)
|
178
|
+
for plan, success in results.items():
|
179
|
+
print(f"Plan {plan}: {'Successful' if success else 'Failed'}")
|
180
|
+
```
|
181
|
+
|
182
|
+
### Working with Multiple Projects
|
183
|
+
|
184
|
+
RAS Commander allows working with multiple HEC-RAS projects simultaneously:
|
185
|
+
|
186
|
+
```python
|
187
|
+
# Initialize multiple projects
|
188
|
+
project1 = init_ras_project(path1, "6.6")
|
189
|
+
project2 = init_ras_project(path2, "6.6")
|
190
|
+
|
191
|
+
# Perform operations on each project
|
192
|
+
RasCmdr.compute_plan("01", ras_object=project1, dest_folder=folder1)
|
193
|
+
RasCmdr.compute_plan("01", ras_object=project2, dest_folder=folder2)
|
194
|
+
|
195
|
+
# Compare results between projects
|
196
|
+
print(f"Project 1: {project1.project_name}")
|
197
|
+
print(f"Project 2: {project2.project_name}")
|
198
|
+
|
199
|
+
# Always specify the ras_object parameter when working with multiple projects
|
200
|
+
# to avoid confusion with the global 'ras' object
|
201
|
+
```
|
202
|
+
|
203
|
+
This is useful for comparing different river systems, running scenario analyses across multiple watersheds, or managing a suite of related models.
|
164
204
|
|
165
205
|
#### Key Components
|
166
206
|
|
@@ -190,8 +230,6 @@ Certainly! I'll provide you with an updated Key Components section and Project O
|
|
190
230
|
|
191
231
|
### Project Organization Diagram
|
192
232
|
|
193
|
-
### Project Organization Diagram
|
194
|
-
|
195
233
|
```
|
196
234
|
ras_commander
|
197
235
|
├── ras_commander
|
@@ -222,24 +260,16 @@ ras_commander
|
|
222
260
|
│ ├── HdfPlot.py
|
223
261
|
│ └── HdfResultsPlot.py
|
224
262
|
├── examples
|
225
|
-
│ ├──
|
226
|
-
│ ├──
|
227
|
-
│ ├──
|
228
|
-
│ ├──
|
229
|
-
│ ├──
|
230
|
-
│ ├──
|
231
|
-
│ ├──
|
232
|
-
│ ├──
|
233
|
-
│ ├──
|
234
|
-
│
|
235
|
-
│ ├── 11_Using_RasExamples.ipynb
|
236
|
-
│ ├── 12_plan_set_execution.py
|
237
|
-
│ ├── 13_multiple_project_operations.py
|
238
|
-
│ ├── 14_Core_Sensitivity.ipynb
|
239
|
-
│ ├── 15_plan_key_operations.py
|
240
|
-
│ ├── 16_scanning_ras_project_info.py
|
241
|
-
│ ├── 17_parallel_execution_ble.py
|
242
|
-
│ └── HEC_RAS_2D_HDF_Analysis.ipynb
|
263
|
+
│ ├── 00_Using_RasExamples.ipynb
|
264
|
+
│ ├── 01_project_initialization.ipynb
|
265
|
+
│ ├── 02_plan_and_geometry_operations.ipynb
|
266
|
+
│ ├── 03_unsteady_flow_operations.ipynb
|
267
|
+
│ ├── 04_multiple_project_operations.ipynb
|
268
|
+
│ ├── 05_single_plan_execution.ipynb
|
269
|
+
│ ├── 06_executing_plan_sets.ipynb
|
270
|
+
│ ├── 07_sequential_plan_execution.ipynb
|
271
|
+
│ ├── 08_parallel_execution.ipynb
|
272
|
+
│ └── 09_plan_parameter_operations.ipynb
|
243
273
|
├── tests
|
244
274
|
│ └── ... (test files)
|
245
275
|
├── .gitignore
|
@@ -267,8 +297,6 @@ Example usage:
|
|
267
297
|
from ras_commander import RasExamples
|
268
298
|
|
269
299
|
```
|
270
|
-
ras_examples = RasExamples()
|
271
|
-
ras_examples.get_example_projects() # Downloads example projects if not already present
|
272
300
|
categories = ras_examples.list_categories()
|
273
301
|
projects = ras_examples.list_projects("Steady Flow")
|
274
302
|
extracted_paths = ras_examples.extract_project(["Bald Eagle Creek", "Muncie"])
|
@@ -321,7 +349,6 @@ print(runtime_data)
|
|
321
349
|
```
|
322
350
|
This class simplifies the process of extracting and analyzing data from HEC-RAS HDF output files, supporting tasks such as post-processing and result visualization.
|
323
351
|
|
324
|
-
|
325
352
|
#### Infrastructure Analysis
|
326
353
|
```python
|
327
354
|
from ras_commander import HdfPipe, HdfPump
|
@@ -358,13 +385,33 @@ boundary = HdfFluvialPluvial.calculate_fluvial_pluvial_boundary(
|
|
358
385
|
)
|
359
386
|
```
|
360
387
|
|
361
|
-
##
|
388
|
+
## Examples
|
362
389
|
|
363
|
-
|
390
|
+
Check out the examples in the repository to learn how to use RAS Commander:
|
364
391
|
|
365
|
-
|
392
|
+
### Project Setup
|
393
|
+
- `00_Using_RasExamples.ipynb`: Download and extract HEC-RAS example projects
|
394
|
+
- `01_project_initialization.ipynb`: Initialize HEC-RAS projects and explore their components
|
395
|
+
|
396
|
+
### File Operations
|
397
|
+
- `02_plan_and_geometry_operations.ipynb`: Clone and modify plan and geometry files
|
398
|
+
- `03_unsteady_flow_operations.ipynb`: Extract and modify boundary conditions
|
399
|
+
- `09_plan_parameter_operations.ipynb`: Retrieve and update plan parameters
|
400
|
+
|
401
|
+
### Execution Modes
|
402
|
+
- `05_single_plan_execution.ipynb`: Execute a single plan with specific options
|
403
|
+
- `06_executing_plan_sets.ipynb`: Different ways to specify and execute plan sets
|
404
|
+
- `07_sequential_plan_execution.ipynb`: Run multiple plans in sequence
|
405
|
+
- `08_parallel_execution.ipynb`: Run multiple plans in parallel
|
366
406
|
|
367
|
-
|
407
|
+
### Advanced Operations
|
408
|
+
- `04_multiple_project_operations.ipynb`: Work with multiple HEC-RAS projects simultaneously
|
409
|
+
|
410
|
+
These examples demonstrate practical applications of RAS Commander for automating HEC-RAS workflows, from basic operations to advanced scenarios.
|
411
|
+
|
412
|
+
## Documentation
|
413
|
+
|
414
|
+
For detailed usage instructions and API documentation, please refer to the [Comprehensive Library Guide](Comprehensive_Library_Guide.md).
|
368
415
|
|
369
416
|
## Future Development
|
370
417
|
|
@@ -375,10 +422,9 @@ The ras-commander library is an ongoing project. Future plans include:
|
|
375
422
|
|
376
423
|
## Related Resources
|
377
424
|
|
378
|
-
- [HEC-Commander Blog](https://github.com/
|
425
|
+
- [HEC-Commander Blog](https://github.com/gpt-cmdr/HEC-Commander/tree/main/Blog)
|
379
426
|
- [GPT-Commander YouTube Channel](https://www.youtube.com/@GPT_Commander)
|
380
|
-
- [ChatGPT Examples for Water Resources Engineers](https://github.com/
|
381
|
-
|
427
|
+
- [ChatGPT Examples for Water Resources Engineers](https://github.com/gpt-cmdr/HEC-Commander/tree/main/ChatGPT%20Examples)
|
382
428
|
|
383
429
|
## Contributing
|
384
430
|
|
@@ -415,8 +461,7 @@ These acknowledgments recognize the contributions and inspirations that have hel
|
|
415
461
|
|
416
462
|
4. Chris Goodell, "Breaking the HEC-RAS Code" - Studied and used as a reference for understanding the inner workings of HEC-RAS, providing valuable insights into the software's functionality and structure.
|
417
463
|
|
418
|
-
5. [HEC-Commander Tools](https://github.com/
|
419
|
-
|
464
|
+
5. [HEC-Commander Tools](https://github.com/gpt-cmdr/HEC-Commander) - Inspiration and initial code base for the development of RAS Commander.
|
420
465
|
|
421
466
|
## Official RAS Commander AI-Generated Songs:
|
422
467
|
|
@@ -426,14 +471,13 @@ These acknowledgments recognize the contributions and inspirations that have hel
|
|
426
471
|
|
427
472
|
## Other Resources
|
428
473
|
|
429
|
-
Notebook version of RAS-Commander: [RAS-Commander Notebook in the HEC-Commander Tools Repository](https://github.com/
|
474
|
+
Notebook version of RAS-Commander: [RAS-Commander Notebook in the HEC-Commander Tools Repository](https://github.com/gpt-cmdr/HEC-Commander/tree/main/RAS-Commander)
|
430
475
|
Youtube Tutorials for HEC-Commander Tools and RAS-Commander: [GPT-Commander on YouTube](https://www.youtube.com/@GPT_Commander/videos)
|
431
476
|
|
432
477
|
## LICENSE
|
433
478
|
|
434
479
|
This software is released under the MIT license.
|
435
480
|
|
436
|
-
|
437
481
|
## Contact
|
438
482
|
|
439
483
|
For questions, suggestions, or support, please contact:
|
@@ -17,18 +17,18 @@ ras_commander/HdfUtils.py,sha256=VkIKAXBrLwTlk2VtXSO-W3RU-NHpfHbE1QcZUZgl-t8,152
|
|
17
17
|
ras_commander/HdfXsec.py,sha256=flREnFFrIZu4SSKGRQeX9w3SS49q0UWPJnq4zO7DbUM,27342
|
18
18
|
ras_commander/LoggingConfig.py,sha256=gWe5K5XTmMQpSczsTysAqpC9my24i_IyM8dvD85fxYg,2704
|
19
19
|
ras_commander/RasCmdr.py,sha256=2i9gR5koFfBLwvhYAbNgQFNKKUKqxD1Hf6T9SN9sx-s,26558
|
20
|
-
ras_commander/RasExamples.py,sha256=
|
20
|
+
ras_commander/RasExamples.py,sha256=6IZ96LcAsk5LYFehdD0zDW5wyZWxQa6OQu2N9upxWXA,17536
|
21
21
|
ras_commander/RasGeo.py,sha256=M0sVNKlWmmbve8iMXLWq25WgbxqLWBo7_1oDg_rALzU,5607
|
22
22
|
ras_commander/RasGpt.py,sha256=N_7p2nucWrBBXdB2k2ZKvOeOdXNmFD9dIY3W7_5i5nw,1206
|
23
23
|
ras_commander/RasMapper.py,sha256=A7xupixCmgXFiSfQs3oWBMBstrO8XcxieMeZWKTcbPQ,3271
|
24
24
|
ras_commander/RasPlan.py,sha256=1HAn31oyz0hGv2r7GVNCLWcAZFcRjYTBNdL19mabvmw,53651
|
25
|
-
ras_commander/RasPrj.py,sha256=
|
25
|
+
ras_commander/RasPrj.py,sha256=epORKnwdzAovAO-whadvkOhJ8ruXPqmPjGCouHdqzuo,37783
|
26
26
|
ras_commander/RasToGo.py,sha256=TKujfaV1xQhFaOddF4g2ogGy6ky-CLlfelSMPD2J3Nk,1223
|
27
27
|
ras_commander/RasUnsteady.py,sha256=KfCXAag-_bPwwS3JbPZH-s4hbaoHACO0mlRnGrzbFgA,32092
|
28
28
|
ras_commander/RasUtils.py,sha256=P2-aBL61kdRINsjnBpstZVD6VVc7hI_D3RUXqr6ldmc,34863
|
29
29
|
ras_commander/__init__.py,sha256=mceEWRQJkDBi1o3zVg7DpG2qMrMnKHwwuK3GwyxoVr4,2132
|
30
|
-
ras_commander-0.
|
31
|
-
ras_commander-0.
|
32
|
-
ras_commander-0.
|
33
|
-
ras_commander-0.
|
34
|
-
ras_commander-0.
|
30
|
+
ras_commander-0.59.0.dist-info/LICENSE,sha256=_pbd6qHnlsz1iQ-ozDW_49r86BZT6CRwO2iBtw0iN6M,457
|
31
|
+
ras_commander-0.59.0.dist-info/METADATA,sha256=Ai5tJpr_j9k8uO1SDIIz0WFLJu2QhAKesqh5ZB1mPWY,24307
|
32
|
+
ras_commander-0.59.0.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
33
|
+
ras_commander-0.59.0.dist-info/top_level.txt,sha256=i76S7eKLFC8doKcXDl3aiOr9RwT06G8adI6YuKbQDaA,14
|
34
|
+
ras_commander-0.59.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|