PyCharm git commit split code block change - intellij-idea

Is there a way in PyCharm/IntelliJ to split a block of code-changes into multiple parts, so I can commit only parts of it and if so, how?
I.e. in the example I can only tick the checkbox on line 222 and get the entire code-block in my changeset. What I'd like is to only add line 223 to the commit, but not line 224.

Related

Is it possible to run just a single or few lines in GAMS?

I have a code of more than 400 lines, and it takes a long time to run it. I'm at the stage of debugging and was wondering whther its possible to just run only a display command in a particular line? I mean like the option we have in PyCharm that we jsut press shift+enter at the desired line and it'll execute only that line.
Thanks
Short answer: No, you can not run just a single line (unless it is the first one).
Little longer, some way that could still be useful to save some time while debugging:
You could add $exit to run just the lines before that and skip the rest of your model.
If you have "static code" that takes some time at the start before you have other code that is work in progress and you want to save the time for the first part, you can use the "Save and Restart" facility of GAMS (see https://www.gams.com/41/docs/UG_SaveRestart.html). For this, you split the model in parts, lets say, the first part will be saved in longPrep.gms, the second part is wip.gms.
Then, you run gams longPrep.gms s=prep, which will generate a save file prep which will be your starting point for your second part by running gams wip.gms r=prep.

IntelliJ console output with multiple (source.java:line) links on a line

When my logging system outputs the source and line number in the proper format (name.java:linenumber), it appears in the output console like a link you can click on, taking you to the corresponding line number of that source code, which works great. Except my logging system prints like a stack trace, a series of source location on a single line, like this:
date/time - a logging statement - (Source1.java:123) (Source2.java:321) (Source5.java:11)
The thing is that IntelliJ only makes the first one a link. The remaining ones don't become clickable links.
Is there a way to configure IntelliJ to scan all source location for each line in the console output, and not just the first one for each line?
This feature is not available at the moment and the progress can be tracked at:
Highlight links with multiple (source.java:line) per line in the output console

How to automatically replot a graph every few seconds in gnuplot?

I have a data file a.dat that is updated every few seconds. I wish to plot it in gnuplot every few seconds to see the changes
plot "a.dat"
What is the easiest way to do it? Thanks.
Make a script with a loop:
while (1) {
plot "a.dat"
pause 1 # waiting time in seconds
}
Execute it with gnuplot script.gp.
For purposes of code structure and debugging, you might prefer the following alternative:
plot "a.dat"
while (1) {
replot
pause 1
}
This has the advantage that you do not have to put a complicated plot command inside the loop and do not suffer from incorrect line numbers for the plot command in error messages (that happen in at least some version of Gnuplot).
Finally, if your Gnuplot is so old that it does not yet support loops, there is the alternative:
plot "a.dat"
pause 1
reread
With reread making the script interpreter jump to the beginning of the file again.
If gnuplot is called with plot commands in the command line (option -e) instead of a command script file, only the version
gnuplot -e "...plot command(s)...; while (1) { pause 1; replot; }"
worked in my case, the other version
gnuplot -e "...plot command(s)...; pause 1; reread;"
did not.
On windows 10, I have to kill the gnuplot task in the task manager, because if I close the gnuplot window with the close-window-button, the window opens again after one second latest. Does anybody have an idea of how to handle this in a more comfortable way?

Force MEL script to WAIT until previous command completes

I'm trying to write a Maya MEL batch script involving a texture bake operation, followed by a file save operation. This is all placed in a for loop.
The script works if executed line by line. But in a loop, what is happening is, it seems the bake is taking too long, so the file that is expected to be generated (testComp.000I.iff, where I is the frame #) is not present by the time the file save operation executes. So the script doesn't work actually.
How do you force Maya to WAIT until the previous command completes, before trying to execute the next line?
A MEL script does wait until the previous command completes.
The only exception to this rule is when a mel script generates ANOTHER mel command, as is the case with the MEL bake command, convertLightmapSetup. convertLightmapSetup spawns a call to convertLightmap as it runs, and that call does not block.
So you have to call convertLightmap directly, for your script to block.

Reading a text file with SSIS with CRLF or LF

Running into an issue where I receive a text file that has LF's as the EOL. Sometimes they send the file with CRLF's as the EOL. Does anyone have any good ideas on how I can make SSIS use either one as the EOL?
It's a very easy convert operation with notepad++ to change it to what ever I need, however, it's manual and I want it to be automatic.
Thanks,
EDIT. I fixed it (but not perfect) by using Swiss File Knife before the dataflow.
If the line terminators are always one or the other, I'd suggest setting up 2 File Connection Managers, one with the "CRLF" row delimiter, and the other with the "LF" row delimiter.
Then, create a boolean package variable (something like #IsCrLf) and scope this to your package. Make the first step in your SSIS package a Script Task, in which you read in a file stream, and attempt to discover what the line terminator is (based on what you find in the stream). Set the value of your variable accordingly.
Then, after the Script Task in your Control Flow, create 2 separate Data Flows (one for each File Connection Manager) and use a Precedence Constraint set to "Expression and Constraint" on the connectors to specify which Data Flow to use, depending on the value of the #IsCrLf variable.
Example of the suggested Control Flow below.
how about a derived column with the REPLACE operation after your file source to change the CRLFs to LFs?
I second the OP's vote for Swiss File Knife.
To integrate that, I had to add an Execute Process Task:
However, I have a bunch of packages that run For-Each-File loops, so I needed some BIML - maybe this'll help the next soul.
<ExecuteProcess Name="(EXE) Convert crlf for <#= tableName #>"
Executable="<#= myExeFolder #>sfk.exe">
<Expressions>
<Expression PropertyName="Arguments">
"crlf-to-lf " + #[User::sFullFilePath]
</Expression>
</Expressions>
</ExecuteProcess>