Skip to content
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

Create CalculateInCloud function #319

Merged
merged 3 commits into from
Jan 2, 2024
Merged

Conversation

Rebecca-Coding21
Copy link
Contributor

Description

I added a function to initModel.py which starts the cloud calculation for a model.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

How Has This Been Tested?

I tested the new function with the attached script test.py and two different RFEM-models, one that creates plausibility errors and one that doesn't.

Test Configuration:

  • RFEM / RSTAB version: 6.04.0009
  • Python version: 3.10.11

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Copy link
Contributor

@OndraMichal OndraMichal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi,
it would be great to have complete test or example to be able to test the function. Parameters seems straight forward but I'm sure the prerequisites are not. It would be handy to have detailed description in docstring and if extensive then move it to Github Wiki and paste the url.

Copy link
Contributor

@Sacek073 Sacek073 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One small improvement

cloudCalculationResult = model.clientModel.service.calculate_all_in_cloud(machine_id, run_plausibility_check, calculate_despite_warnings_and_errors, email_notification)
print("Cloud calculation was started.")
return cloudCalculationResult # list
except:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be better to not use bare exception here. I don't know which exact exception is here, but you should replace it with something like:

except ExceptionName:
    ...

This is handy because in bare try except, any raised exception is caught in the except, which is not ideal.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added an example to the example folder and a specific exception.

This PR has 48 quantified lines of changes. In general, a change size of upto 200 lines is ideal for the best PR experience!


Quantification details

Label      : Extra Small
Size       : +48 -0
Percentile : 19.2%

Total files changed: 3

Change summary by file extension:
.py : +46 -0
.md : +2 -0

Change counts above are quantified counts, based on the PullRequestQuantifier customizations.

Why proper sizing of changes matters

Optimal pull request sizes drive a better predictable PR flow as they strike a
balance between between PR complexity and PR review overhead. PRs within the
optimal size (typical small, or medium sized PRs) mean:

  • Fast and predictable releases to production:
    • Optimal size changes are more likely to be reviewed faster with fewer
      iterations.
    • Similarity in low PR complexity drives similar review times.
  • Review quality is likely higher as complexity is lower:
    • Bugs are more likely to be detected.
    • Code inconsistencies are more likely to be detected.
  • Knowledge sharing is improved within the participants:
    • Small portions can be assimilated better.
  • Better engineering practices are exercised:
    • Solving big problems by dividing them in well contained, smaller problems.
    • Exercising separation of concerns within the code changes.

What can I do to optimize my changes

  • Use the PullRequestQuantifier to quantify your PR accurately
    • Create a context profile for your repo using the context generator
    • Exclude files that are not necessary to be reviewed or do not increase the review complexity. Example: Autogenerated code, docs, project IDE setting files, binaries, etc. Check out the Excluded section from your prquantifier.yaml context profile.
    • Understand your typical change complexity, drive towards the desired complexity by adjusting the label mapping in your prquantifier.yaml context profile.
    • Only use the labels that matter to you, see context specification to customize your prquantifier.yaml context profile.
  • Change your engineering behaviors
    • For PRs that fall outside of the desired spectrum, review the details and check if:
      • Your PR could be split in smaller, self-contained PRs instead
      • Your PR only solves one particular issue. (For example, don't refactor and code new features in the same PR).

How to interpret the change counts in git diff output

  • One line was added: +1 -0
  • One line was deleted: +0 -1
  • One line was modified: +1 -1 (git diff doesn't know about modified, it will
    interpret that line like one addition plus one deletion)
  • Change percentiles: Change characteristics (addition, deletion, modification)
    of this PR in relation to all other PRs within the repository.


Was this comment helpful? 👍  :ok_hand:  :thumbsdown: (Email)
Customize PullRequestQuantifier for this repository.

@Rebecca-Coding21 Rebecca-Coding21 removed the request for review from dogukankaratas December 19, 2023 10:13
@OndraMichal OndraMichal merged commit fddbdd0 into main Jan 2, 2024
1 of 2 checks passed
@OndraMichal OndraMichal deleted the rebecca-CalculateInCloud branch January 2, 2024 14:07
OndraMichal pushed a commit to dlubal-software/RSTAB_Python_Client that referenced this pull request Jan 31, 2024
Design Situation and Combination Wizard tests update by @OndraMichal in dlubal-software/RFEM_Python_Client#317
Create CalculateInCloud function by @Rebecca-Coding21 in dlubal-software/RFEM_Python_Client#319
BUG: Missing definition of modelLst in init.Model.py by @jarabroz in dlubal-software/RFEM_Python_Client#324
Action and Action Combination by @OndraMichal in dlubal-software/RFEM_Python_Client#320
Heet aluminum design by @heetrojivadiya in dlubal-software/RFEM_Python_Client#325
VasStach concrete bridge example by @VasStach in dlubal-software/RFEM_Python_Client#326

unit tests:  141 passed, 5 skipped in 423.77s (0:07:03)
RSTAB: 9.05.0004.232.9b37bf15c09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants