Skip to content

ModelicaSystem - use OMCPath #322

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 79 commits into
base: master
Choose a base branch
from

Conversation

syntron
Copy link
Contributor

@syntron syntron commented Jul 11, 2025

A big step on the way to run ModelicaSystem not only locally; see #315 item (1):

  1. need of file system interactions => solution: create OMCPath, an implementation of a pathlib.Path object which uses OMC as backend (see detailed analyses which functionality is needed in PR [ModelicaSystem] only local omc process allowed #309)

based on PR #317, #314, #320 and #321

syntron added 30 commits July 11, 2025 18:39
…ents

* fix some type hint issues in setInput()
* prepare for definition via dictionary replacing 'a=b' and '[a=b, c=d]' style
* rename from setMethodHelper()
* use _prepare_inputdata()
* cleanup code to align with new input as dict[str, str]

* setInput() is a special case
* replace eval() with ast.literal_eval() as a saver version
* use _prepare_input_data()
* simplify code
This method is used to set input values. It can be called with a sequence of input name and assigning
corresponding values as arguments as show in the example below. Compared to other set*() methods this is a
special case as value could be a list of tuples - these are converted to a string in _prepare_input_data()
and restored here via ast.literal_eval().
* not working: 3.10
* working:     3.12
@syntron syntron force-pushed the ModelicaSystem_use_OMCPath branch from 466740c to 3278b53 Compare July 22, 2025 18:38
syntron added 7 commits July 24, 2025 20:55
* use as input str or os.PathLike; the later covers all pathlib objects
* rename _tempdir to _work_dir
* rename setTempDirectory() => setWorkDirectory()
* setWorkDirectory() sets the work dir and also returns its path
* use setWorkDirectory() within code; this allows to add special handling
  to the function if needed
background: if OMCPath will be used, it is not available
background: open() is not available if OMCPath is used
error: "unlink" of "OMCPathReal" does not return a value (it only ever returns None)  [func-returns-value]
* define file name based on result file name & Path
* simplify code
…able

* if this happens, the result would be unexpected
* fail early, fail hard to indicate this to the user
* simplify code
@syntron syntron force-pushed the ModelicaSystem_use_OMCPath branch 2 times, most recently from 2608ffc to 0b986be Compare August 9, 2025 19:54
@syntron syntron force-pushed the ModelicaSystem_use_OMCPath branch from 0b986be to 74f1c4e Compare August 11, 2025 20:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant