[folding] Collapse ending brace to the same line

Consider a large JavaScript file
function a() {
  ...
}

function b() {
  ...
}

function c() {
  ...
}

and so on...

Collapsing all currently yields:
function a() { ...
}

function b() { ...
}

function c() { ...
}

and so on...

This would be more readable if the closing brace was on the same line:
function a() { ... }

function b() { ... }

function c() { ... }

and so on...

Here is how other prominent editors handle the above:
Atom

Brackets

Sublime Text 3

VS Code

This would not work for languages which do not use punctuation to signify code blocks (i.e python)
Code Folding at the moment uses indentation and so will close everything up to the next line on the same indentation level as the folding line. The implementation would have to change to fold the closing bracket as this would cause issues in some languages

:+1:

ping @alexandrudima

👍
I like the Atom's way. We save a line and the ending curly brace is not virtually on the same line than the beginning one (unlike Bracket).

👍 definitely, would help so much

I like how Jetbrains does theirs which matches "bracket"

I also love being able to fold not only from the first bracket but also the last bracket.
They also have essentially peeking for brackets when they're not on screen so you can see what they belong to. I used to comment what ending brackets belonged to, then I stopped due to the IDE, now I'm feeling lost again w/o it.

I'm for the current model, but since people still think there is something to be corrected I think a preference is in order, something like editor.foldingConsumeLastLine: bool

Also would prefer a way to make it one-line. I often use the folding in CSS and liked the way the Jetbrains IDEs put the collapsed selectors on one line.

Can you solve it? I have this same problem uncomfortable, I read the other post about it, but I did not see anything finished that can help me, someone there knows how to solve ?? it really is very uncomfortable working with multiple collapsed lines, because with this line more than "}" it is difficult and confusing to work.

I like the 'Brackets' example, looks clean

It is a good choice to be able to show the number of folded code lines like vim, and make the folded code more visible.

Hi people!
I think would be nice to see vscode folding with info about amount of lines folded like Netbeans:

BTW: Thank you for this awesome code editor! :smile:
Related issue here: https://github.com/Microsoft/vscode/issues/29155

I would really like to see this implemented. But, in the meantime, is there an extension that does that?

I would to see this implemented soon. It's a right pain.   Visual Studio working perfectly for collapse and expanding structure.

+1

#54351 suggests to always show an opening bracket on the first line, even if it's on the next line in the original code

+1 for many of the ideas here! To recap:

Original idea
Show number of lines like Net beans as @faustinoaq suggested, but for large blocks only
Always show an opening bracket on the first line, even if it's on the next line in the original code, as @aeschli said

To add to this, the folded braces { ... } should change state when you hover over it, like a button, and should unfold when clicked.

for large blocks only

@NSExceptional, how much would you consider that to be? 8 lines? 15? 100+? Or maybe a config option?

10 I guess. Or configurable from 10, sure.

Hey DEVS!
Don't you tired of merging requests from your users? I have been waiting for this incredibly difficult in the implementation feature  for a year now, but I get anything, but not this. If this is something fundamental, not relevant to your philosophy, then just let us know.

Any update on this?

Why did this all the sudden change.  Until a week ago, the collapse '-' was on the declaration line of my function.  Now it is on the line of the opening '{' (which for me is under the declaration) and it no longer hides the closing bracket.
How can I change it back.  I liked it the other way.  A main reason I switched to VSCode was the clean collapsing of functions on long files.  Now the same collapse takes up 3 times more space.
Is there a setting I can use to change it back?  I can't stand the new change.

@eeasoftware Please file a detailed issue with a sample code (please name the language (JavaScript. TypeScript, C#...)

Does anyone see folding occur with a closing bracket into the same line, in any language? ... When the closing bracket is NOT indented?
Devs, any update on this? IF VS is smart enough to highlight the opening bracket, then one would think that it should be able to fold inclusively.

#50840 is required to implement this

@Tiedye
What people seem to be forgetting is:

This was already working (See my post from January 7th)

Everyone keeps saying, "we have no plans to implement", or "it can't be done in its current form, major rewrite", etc.
Folding to the same line was already being done.  It stopped working like it was.  Something changed.  It's not a new feature I'm requesting, it's putting back an old feature.
I'm just trying to figure out why it changed and if it's possible to put it back.

@eeasoftware When they removed this feature as it was, it was because they replaced if with an extensible api (so people could make extensions to support code folding in any language).  This meant that JavaScript and other c like languages had to use their new API... which doesn't support having the closing brace on the same line.
There is no way they're going to undo that and break support for all the new folding features they've added since then, so the current solution is to improve the folding API by supporting folding on a character by character basis instead of just on a line by line basis.
At this time, it is a new feature you are requesting, and it depends on that API being implemented.
(I too would really love it to get implemented because this bracket thing has been basically my most significant gripe with VSCode for a year)

@Tiedye @eeasoftware Sorry, we never supported folding ranges inside lines, and there hasn't been any features removed. We allowed extensions to add folding range providers, but you can always switch back to the original indentation based folding strategy using the settings.
The change of behaviour you have seen was caused by the change in the PHP extension. Extensions update automatically in the background without interactions. A restart of VSCode would cause the latest version of the extension to be used.
Please let's stop discussing this 'change of behaviour' issue here, there hasn't been any changes recently.
This issue is about allowing the indentation based folding strategy to also fold the closing brackets and that brackets can be rendered at the end of the folded line. { .... }.
The first request can already be implemented by a extension

@Tiedye  Thank you for a good explanation.  It's all I am really looking for. @aeschli I'm just a fellow dev trying to figure out what happened.  No one could give an explanation, and I've spent hours searching, not knowing where to look.  All I would have required is a point in the right direction.

Hi!! Im working in html, can we the end tag on the same line, please. I posted how chrome views the same html. This would help so much!

Just please do not  make this for an indentation based folding (its obviously horrible idea, but just in case)

Plus one more year waiting for this feature. I don't need anything, I'm happy with current VSCode version. Just add normal folding. Please.

Is that possible to create an extension that could do that ?
Could we have more informations about what needs to be done to achieve this feature please ?
Thx

As discussed above, folding range provider contributed by extensions can control which lines are folded, say whether the closing bracket is part of that or not.
You can write your own folding provider for you favourite language, or if you already use an extension for that language, create an issue against that extension to add an setting to support both.
To have the editor render the bracket after the ...

requires a new feature in the editor: https://github.com/microsoft/vscode/issues/70794
There are currently no plans to work on this.

@aeschli Thx for your answer.
For those who are just looking for One line code folding (without closing brace on the same line).
I found an extension, where you can provide Regexp to create Code folding providers by languages:
Explicit folding
With this kind of configuration
// vscode settings.json
"folding": {
    "*": {
        "beginRegex": "\\{\\{\\{",
        "endRegex": "\\}\\}\\}"
    },
    "typescript": {
        "beginRegex": "#region",
        "endRegex": "#endregion"
    },
    "javascriptreact": [
        {
            "beginRegex": "\\{/\\*",
            "endRegex": "\\*/\\}"
        },
        {
            "begin": "<",
            "end": "/>"
        }
    ]
}

@AgamlaRage Thanks for the pointer, that's quite helpful!
For reference, here's the simplest configuration that implements one-line folding on braces:
"folding": {
    "*": {
        "begin": "{",
        "end": "}"
    },
}

@waldyrious Shouldn't the second match { ] too? According to the extension info the valid solution would be:
"folding": {
    "*": [
        {
            "begin": "{",
            "end": "}",
        },
        {
            "begin": "[",
            "end": "]",
        }
    ],
},

@waldyrious Shouldn't the second match { ] too? According to the extension info the valid solution would be:
"folding": {
    "*": [
        {
            "begin": "{",
            "end": "}",
        },
        {
            "begin": "[",
            "end": "]",
        }
    ],
},

@waldyrious , @Soaku  I think if we want to continue discuss about it we should go to the Explicit Folding Repository because like @aeschli says, this issue  (#3352) is more talking about the closing brace on the same line.
@Soaku For now, the extension still have an issue The indentation breaks if beginRegexp and endRegexp are on the same line, but for language like CSS, SCSS, if your code is linted, the extension works 100%.
Now it's up to us to help the Explicit Folding owner to make it works everywhere.
He helped me find the SCSS regexp yesterday, and it's working like a charm.
    "scss": [
      {
        "beginRegex": " \\{\\s*$",
        "endRegex": "^\\s*\\}"
      },
    ],

This extension broke my folding completely... Actually I fell like vscode devs sent us somevere fare away...

broke mine as well, the closing bracket becomes invisible with the extension activated

Is there is a life on Mars?

This has been open for over 3 years now, and no progress on getting this implemented. It's sad that such an amazing editor doesn't have this feature...

very much expecting this feature

Looking for this feature also.
Thank VSCode team for a great editor.

Looking for this feature also.

+1

https://github.com/zokugun/vscode-explicit-folding does work. Here's what we are wishing for: The "Fold last line" to be a GLOBAL setting in VisualStudio that could override extension settings. That's all. :-)

Is there any LIFE on the VSCODE planet? I'll go buy IntellyJ IDE finally, can't wait next 3 years to your wake up, guys...

Thank you to those who recommended explicit-folding, fixes the problem to a sufficient degree. Unfortunate that the VSCode team decided to support the horrendous indentation-based rubbish languages instead of focusing on support for languages with stronger, more versatile syntax. Hopefully they'll come around to it eventually, but for now, again, grateful for the recommendations and explanations on use of explicit-folding.

Is there any willingness to merge  a user configurable editor.foldEndPatttern: RegExp, similar to #9605 ?
If so, i can open one.

@aminroosta Maybe open a new issue to describe your suggestion in detail and discuss the proposal.

@aeschli Maybe I'm missing something, but it looks like he was the last one to reply in the very discussion you're asking him to re-start 😅
To quote his own comment, it looks like no one on the VS Code team cares.

@aeschli The code has changed significantly since the last time i took a look.
Seems like now we have proper support for languages to provide their own folding ranges.
However, it seems that all of them are not hiding the folding end line (html, js, ts, rs, etc ...).
Would something along these lines be acceptable? https://github.com/microsoft/vscode/compare/master...aminroosta:master

I was using vscode-explicit-folding as described above to successfully mitigate this issue, however the new release of that extension broke this functionality. Reverting the extension to 0.9.0 locally successfully resolved my issue.

vscode-explicit-folding doesnt work for me :(

vscode-explicit-folding doesnt work for me :(

Thanks to the help of @sleepylemur, I was able to fix vscode-explicit-folding for your case. It was very simple mistake (a misread)...
The 0.9.2 is already available and is fixing the issue mentioned by @michael-lumley.

It might be useful for some. I've added the setting editor.showFoldingLastLine to my custom VSCode (MrCode)
It determines if the last line of the folding range is shown or not.

@daiyam the download this link shows git 404 for me

@GaddMaster oops It's fixed. Thx

+1 for this feature, except also noting that this is actually two features (as summarized by @aeschli above, here and here):

Folding up to one line instead of two (or hiding the last line as well as all the in between lines, instead of just the in between lines).
Displaying the closing bracket/tag/whatever else (that currently otherwise shows on the second line), at the end of the folded up line with the graphical ellipsis in between.

For 1, I'll say +1 for vscode-explicit-folding. (Thanks @daiyam 😊). It does appear to work at least for me in JS so far, though it requires some configuration.
For 2... well... aeschli is saying "no plans to implement this" and so, ok, so be it.  Not that big a deal if at least 1 works.
I found this issue only after posting my own #121556.  I've made comments on that issue to point it here.  Posting this comment here in case it helps anyone else looking for this functionality - to mention the solution that's working for me so far (essentially confirming others above saying similar).

vscode-explicit-folding is great. I think this does the trick
"[javascript]": {
    "explicitFolding.rules": [
            {
                "begin": "{/*",
                "end": "*/}"
            }
    ]
},

For my case, I want to turn this
it('some test 1', async () => {
...
});

it('some test 2', async () => {
...
});

into this
it('some test 1', async () => {})
it('some test 2', async () => {})

This is the code I use
"[javascript]": {
    "explicitFolding.rules": [
        {
            "separator": "it(",
        }
    ]
},

Then just add your favorite shortcut for folding the desired level (3 in my case, with a describe surrounding block)

So, it's an unsolved issue since 2016, and here I opened a StackOverflow question, thinking that it's possible. https://stackoverflow.com/questions/68227011/finish-code-folding-in-one-line-and-keep-folding-sign-visible-all-the-time

also having the same need. would like for blocks to collapse to a single line

+1 for collapse of ending to same line and also show number of lines folded

visual studio have this feature, and true is give nice intuitive reading flow
+1 for productivity because we save time for reading fast !

@TresAbhi The screenshot is from Microsoft Visual Studio and not from Visual Studio Code...

I wish I could fold to a single line as suggested.  Currently that last curly brace just takes up an extra line with no apparent benefit.
I did some testing and it seems that the code folding is strictly based on indentation.  So there is one workaround which is no too ugly (though reduces code readability and clarity).  Specifically put the end curly brace on same line as code as in:
function myfun() {
    this='that'
    console.log(that)
 }

Notice the single space before closing curly brace. This ends up folding to:
function myfun() { ...
I'd still really like to have normal indentation and have the curly brace show up in the folded variant as in:
function myfun() { ... }
Please consider raising priority of this ticket.
btw: due to face that code folding is based on indentation, you need to avoid invalid indentation (i.e. sometimes I add comment for code I intend to delete at start of line in order to make it obvious and easy to find - that totally breaks code folding.

@stevemcmillen: Code folding can be based on one of two things:  (1) indentation (2) language specific rules.  It is set in the settings with editor.foldingStrategy, to either "indentation" or "auto" (auto = language specific rules).
Or in the settings UI:

That, arguably makes this issue a little more complicated than you're suggesting, however I still agree that it should be a higher priority than it seems to be.

All that said, there's a number of requests here, and maybe this should be broken out into a few separate "issues"...?
Recap:

Option to consume last line of code block when folding (the original issue, but make it optional)
When code block is folded, show number of consumed/hidden/folded lines (here and here)
Ability to fold from the bottom as well as from the top (here)
When unfolded code has opening bracket (or other code block symbol) on line after function (or whatever) name, then option to move that opening bracket to same line as function name when folding up. (here and here)
Ability to fold code within a single line (here and here)

I think that's everything.  If anyone thinks I missed anything please feel free to let me know.
To the VSCode devs (@joaomoreno ?,  @aeschli ?): The explicit-folding extension gets some of this right -- without having access to internal code. You guys did a pretty good job with bracket pair colorization, improving on and acknowledging CoenraadS's work.  Is there anything significant stopping you from doing the same with daiyam's?**
I understand your point about it being up to the extension providers, so ok... what about the extensions provided with VSCode/by Microsoft (JS, TS, C++, to name a few)?  Please correct me if I've misunderstood the connection between VSCode and those extensions.  If not you guys, who do we talk to about those particular extensions?
( ** @daiyam I seem to recall you stating you'd be happy for them to do that, but can't find where I saw that.  Please correct me if I'm wrong).

In our XML Language Server we decide to support this issue, but it provides this bug https://github.com/redhat-developer/vscode-xml/issues/690#issue-1189157838
In other words, if you have this XML:
<note>
	<foo>

		bla bla bla

	</foo>
</note>

and you fold the root note , and you select (without Ctrl+A) the  <note> and you type space, it doesn't remove the whole content and teh XML becomes an invalid XML:
	<foo>

		bla bla bla

	</foo>
</note>

In Eclipse IDE, it solves the problem by opening the fold, when you try to update it.

Here a demo with vscode:

Here a demo with Eclipse IDE:

@angelozerr I think your issue is different from the original issue.

@angelozerr I think your issue is different from the original issue. You should open a new one.

I would like to highlight a problem with the "Collapse ending brace to the same line" issue but if you think it's better to create a new issue, I can do that.

Explicit Folding extension does the trick.
But while I was reading this thread.
As @aeschli mentioned:

Since a while we allow extensions to contribute folding range providers. If none is present we fall back to indentation based folding ranges.

I checked it in .js file for this piece of code
if (folding) {
    return;
    }

And it folds differently based on editor.foldingStrategy. It folds to
if (folding) { ...
    }

For auto, and to
if (folding) { ...

For indentation
This could mean that, unlike in the past, now indentation-based stategy is not the only one VS Code has, and there is already some bracket-based or language-specific strategies under the hood, or indentation-based add-ons that weren't thought of as a possibility before. In any case, it looks like there is now room for the code that can solve the issue.

r

not work at all for me

Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here:
https://marketplace.visualstudio.com/items?itemName=MohammadBaqer.better-folding
A demo of the extension in action:
https://user-images.githubusercontent.com/32401657/214104135-9c6d3984-cc80-437e-bbc1-bc5b9edaf4f3.mov

Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here:
https://marketplace.visualstudio.com/items?itemName=MohammadBaqer.better-folding
A demo of the extension in action:
Screen.Recording.2023-01-23.at.11.29.10.mov

Cool stuff! But I have one problem, folding stops working in html

Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here:
https://marketplace.visualstudio.com/items?itemName=MohammadBaqer.better-folding
A demo of the extension in action:
Screen.Recording.2023-01-23.at.11.29.10.mov

Cool stuff! But I have one problem, folding stops working in html

HTML, JSX and TSX support coming soon. You can see the full list here

HTML, JSX and TSX support coming soon. You can see the full list here

This is great!  Thanks a lot.  I'm looking forward to it.

@mtbaqer that's amazing! Could you also publish this on Open VSX

Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here:
https://marketplace.visualstudio.com/items?itemName=MohammadBaqer.better-folding
A demo of the extension in action:
Screen.Recording.2023-01-23.at.11.29.10.mov

Thanks man, I was waiting for it for a long time.

Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here:

Could it also collapse following whitespace / blank lines, so it is one line per folded function?

Thanks for your hard work, the folding extension is fantastic!

It still shows the closing bracket for me. Didn't change any settings.

@mtbaqer 's extension "Better Folding" works great! Until you restart vscode. Then it reverts to the default behavior.
Immediately after installation:

After restarting vscode:

I know there are some alternatives (thanks to the plugin makers), but please, it's been more than 8 years since we ask for this !
I think VSCode is maybe the greatest code editor of all time (at least for the moment).
Make it even mor legendary by adding this feature ! <3


Update to use isinstance vs. type

Don't merge this, but I want to see what happens. This is an optional part of futurize

Beginning pylint and unit tests.
See https://cmssdt.cern.ch/jenkins/job/DMWM-PR-test/260/ for details

retest this please

Beginning pylint and unit tests.
See https://cmssdt.cern.ch/jenkins/job/DMWM-PR-test/262/ for details

Summary of pylint changes for pull request 6133:

Score for src/python/WMCore/HTTPFrontEnd/RequestManager/ReqMgrBrowser.py decreased from 7.49 to 7.48
Score for src/python/WMCore/WebTools/FrontEndAuth.py decreased from 6.59 to 6.54
Score for src/python/WMCore/ReqMgr/ExternalResourceTool.py decreased from 9.68 to 9.67
Score for src/python/WMCore/REST/Auth.py decreased from 8.18 to 8.17
Score for src/python/WMCore/WMStats/ExternalResourceTool.py decreased from 9.68 to 9.67
Score for src/python/WMQuality/WebTools/RESTClientAPI.py decreased from 8.85 to 8.83
Score for src/python/WMCore/WMBSFeeder/RunTransferNotifier/RunTransferNotifier.py decreased from 5.86 to 5.81

src/python/WMCore/RequestManager/RequestMaker/Registry.py fails the pylint check. Report follows:

Line 16 in _Registry R0903 Too few public methods (0/2)
Line 39 in registerRequestType W0212 Access to a protected member _Makers of a client class
Line 40 in registerRequestType W0212 Access to a protected member _Schemas of a client class
Line 53 in retrieveRequestMaker W0212 Access to a protected member _Makers of a client class
Line 54 in retrieveRequestMaker W0212 Access to a protected member _Makers of a client class
Line 59 in retrieveRequestMaker W0212 Access to a protected member _Makers of a client class
Line 61 in retrieveRequestMaker W0212 Access to a protected member _Schemas of a client class
Line 77 in buildWorkloadForRequest W0212 Access to a protected member _Factories of a client class
Line 89 in buildWorkloadForRequest W0212 Access to a protected member _Factories of a client class
Line 91 in buildWorkloadForRequest W0212 Access to a protected member _Factories of a client class
Line 86 in buildWorkloadForRequest W0612 Unused variable 'ex'
Line 138 in loadRequestSchema W0703 Catching too general exception Exception
Line 147 in loadRequestSchema W0703 Catching too general exception Exception
Line 149 in loadRequestSchema W1201 Specify string format arguments as logging function parameters
Line 152 in loadRequestSchema W1201 Specify string format arguments as logging function parameters
plus 12 comments on code style

test/python/WMCore_t/Database_t/Performance.py fails the pylint check. Report follows:

Line 15 in Performance W0232 Class has no init method
Line 48 in Performance.formatExecInput W0622 Redefining built-in 'input'
Line 48 in Performance.formatExecInput R0201 Method could be a function
Line 64 in Performance.perfTest W0622 Redefining built-in 'input'
Line 75 in Performance.perfTest W1201 Specify string format arguments as logging function parameters
Line 82 in Performance.perfTest W0123 Use of eval
Line 87 in Performance.perfTest E1101 Instance of 'Performance' has no 'verbose' member
Line 90 in Performance.perfTest E1101 Instance of 'Performance' has no 'threshold' member
Line 92 in Performance.perfTest E1101 Instance of 'Performance' has no 'threshold' member
plus 6 comments on code style

src/python/WMCore/HTTPFrontEnd/RequestManager/ReqMgrBrowser.py fails the pylint check. Report follows:

Line 368 W0511 FIXME needs to check if authorized, or original user
Line 45 in ReqMgrBrowser R0902 Too many instance attributes (13/7)
Line 77 in ReqMgrBrowser.initThread W0613 Unused argument 'thread_index'
Line 84 in ReqMgrBrowser.validate W0613 Unused argument 'name'
Line 84 in ReqMgrBrowser.validate R0201 Method could be a function
Line 93 in ReqMgrBrowser.search E1101 Instance of 'Toolbox' has no 'secmodv2' member
Line 107 in ReqMgrBrowser.index E1101 Instance of 'Toolbox' has no 'secmodv2' member
Line 117 in ReqMgrBrowser.splitting E1101 Instance of 'Toolbox' has no 'secmodv2' member
Line 144 in ReqMgrBrowser.handleSplittingPage E1101 Instance of 'Toolbox' has no 'secmodv2' member
Line 145 in ReqMgrBrowser.handleSplittingPage R0912 Too many branches (19/12)
Line 202 in ReqMgrBrowser.details E1101 Instance of 'Toolbox' has no 'secmodv2' member
Line 225 in ReqMgrBrowser._getConfigCache W0703 Catching too general exception Exception
Line 227 in ReqMgrBrowser._getConfigCache W1201 Specify string format arguments as logging function parameters
Line 234 in ReqMgrBrowser._getConfigCache W0703 Catching too general exception Exception
Line 236 in ReqMgrBrowser._getConfigCache W1201 Specify string format arguments as logging function parameters
Line 242 in ReqMgrBrowser.showOriginalConfig E1101 Instance of 'Toolbox' has no 'secmodv2' member
Line 253 in ReqMgrBrowser.showTweakFile E1101 Instance of 'Toolbox' has no 'secmodv2' member
Line 265 in ReqMgrBrowser.showWorkload E1101 Instance of 'Toolbox' has no 'secmodv2' member
Line 300 in ReqMgrBrowser.drawRequest E0602 Undefined variable 'value'
Line 307 in ReqMgrBrowser.percentWritten R0201 Method could be a function
Line 321 in ReqMgrBrowser.percentMerged R0201 Method could be a function
Line 335 in ReqMgrBrowser.percentComplete R0201 Method could be a function
Line 339 in ReqMgrBrowser.percentSuccess R0201 Method could be a function
Line 344 in ReqMgrBrowser.doAdmin E1101 Instance of 'Toolbox' has no 'secmodv2' member
Line 368 in ReqMgrBrowser.modifyWorkload R0913 Too many arguments (10/7)
Line 367 in ReqMgrBrowser.modifyWorkload E1101 Instance of 'Toolbox' has no 'secmodv2' member
Line 370 in ReqMgrBrowser.modifyWorkload W0613 Unused argument 'GlobalTag'
Line 373 in ReqMgrBrowser.modifyWorkload W0613 Unused argument 'ScramArch'
Line 370 in ReqMgrBrowser.modifyWorkload W0613 Unused argument 'CMSSWVersion'
Line 45 in ReqMgrBrowser R0904 Too many public methods (48/20)
plus 35 comments on code style

src/python/WMCore/WebTools/FrontEndAuth.py fails the pylint check. Report follows:

Line 78 W0301 Unnecessary semicolon
Line 14 in FrontEndAuth.init W0231 init method from base class 'Tool' is not called
Line 26 in FrontEndAuth.callable W0102 Dangerous default value [] as argument
Line 26 in FrontEndAuth.callable W0102 Dangerous default value [] as argument
Line 26 in FrontEndAuth.callable W0102 Dangerous default value [] as argument
Line 26 in FrontEndAuth.callable E0202 An attribute defined in cherrypy._cptools line 59 hides this method
Line 108 in FrontEndAuth.defaultAuth R0201 Method could be a function
Line 130 in NullAuth.init W0231 init method from base class 'Tool' is not called
Line 135 in NullAuth.init E1101 Instance of 'Server' has no 'environment' member
Line 130 in NullAuth.init W0613 Unused argument 'config'
Line 141 in NullAuth.callable W0102 Dangerous default value [] as argument
Line 141 in NullAuth.callable W0102 Dangerous default value [] as argument
Line 141 in NullAuth.callable W0102 Dangerous default value [] as argument
Line 141 in NullAuth.callable E0202 An attribute defined in cherrypy._cptools line 59 hides this method
Line 143 in NullAuth.callable W1201 Specify string format arguments as logging function parameters
Line 146 in NullAuth.callable W1201 Specify string format arguments as logging function parameters
Line 141 in NullAuth.callable R0201 Method could be a function
Line 129 in NullAuth R0903 Too few public methods (1/2)
Line 6 W0611 Unused import logging
plus 23 comments on code style

src/python/WMCore/Database/ipy_profile_couch.py fails the pylint check. Report follows:

Line 66 in load_config W0102 Dangerous default value [] as argument
Line 106 in httplib_request E0602 Undefined variable 'httplib'
Line 108 in httplib_request E0602 Undefined variable 'urllib'
Line 115 in httplib_request E0602 Undefined variable 'httplib'
Line 118 in httplib_request E0602 Undefined variable 'httplib'
Line 138 in print_data E0602 Undefined variable 'json'
Line 139 in print_data E0602 Undefined variable 'PM'
Line 151 in print_data E0602 Undefined variable 'PM'
Line 170 in couch_help W0602 Using global for 'magic_list' but no assignment is done
Line 165 in couch_help W0613 Unused argument 'arg'
Line 165 in couch_help W0613 Unused argument 'self'
Line 185 in db_info E0602 Undefined variable 'URI'
Line 186 in db_info E0602 Undefined variable 'DB'
Line 187 in db_info E0602 Undefined variable 'DEBUG'
Line 190 in db_info E0602 Undefined variable 'json'
Line 197 in couch_views E0602 Undefined variable 'URI'
Line 198 in couch_views E0602 Undefined variable 'DB'
Line 199 in couch_views E0602 Undefined variable 'DEBUG'
Line 200 in couch_views E0602 Undefined variable 'json'
Line 204 in couch_views E0602 Undefined variable 'PM'
Line 205 in couch_views E0602 Undefined variable 'DB'
Line 206 in couch_views E0602 Undefined variable 'DEBUG'
Line 207 in couch_views E0602 Undefined variable 'json'
Line 209 in couch_views E0602 Undefined variable 'PM'
Line 210 in couch_views E0602 Undefined variable 'PM'
Line 211 in couch_views E0602 Undefined variable 'PM'
Line 213 in couch_views E0602 Undefined variable 'PM'
Line 214 in couch_views E0602 Undefined variable 'PM'
Line 225 in create_view E0602 Undefined variable 'URI'
Line 226 in create_view E0602 Undefined variable 'DB'
Line 226 in create_view E0602 Undefined variable 'DESIGN'
Line 227 in create_view E0602 Undefined variable 'DEBUG'
Line 228 in create_view E0602 Undefined variable 'json'
Line 233 in create_view E0602 Undefined variable 'JSONEncoder'
Line 236 in create_view E0602 Undefined variable 'DEBUG'
Line 240 in create_view E0602 Undefined variable 'json'
Line 249 in delete_view E0602 Undefined variable 'URI'
Line 250 in delete_view E0602 Undefined variable 'DB'
Line 250 in delete_view E0602 Undefined variable 'DESIGN'
Line 251 in delete_view E0602 Undefined variable 'DEBUG'
Line 254 in delete_view E0602 Undefined variable 'json'
Line 265 in delete_view W0702 No exception type(s) specified
Line 260 in delete_view E0602 Undefined variable 'JSONEncoder'
Line 263 in delete_view E0602 Undefined variable 'DEBUG'
Line 275 in delete_all_views E0602 Undefined variable 'URI'
Line 276 in delete_all_views E0602 Undefined variable 'DB'
Line 277 in delete_all_views E0602 Undefined variable 'DEBUG'
Line 280 in delete_all_views E0602 Undefined variable 'json'
Line 287 in create_db E0602 Undefined variable 'URI'
Line 289 in create_db E0602 Undefined variable 'DEBUG'
Line 292 in create_db E0602 Undefined variable 'json'
Line 299 in delete_db E0602 Undefined variable 'URI'
Line 301 in delete_db E0602 Undefined variable 'DEBUG'
Line 304 in delete_db E0602 Undefined variable 'json'
Line 311 in get_all_docs E0602 Undefined variable 'URI'
Line 312 in get_all_docs E0602 Undefined variable 'DB'
Line 318 in get_all_docs E0602 Undefined variable 'DEBUG'
Line 324 in get_all_docs E0602 Undefined variable 'json'
Line 326 in get_doc W0622 Redefining built-in 'id'
Line 331 in get_doc E0602 Undefined variable 'URI'
Line 332 in get_doc E0602 Undefined variable 'DB'
Line 334 in get_doc E0602 Undefined variable 'DEBUG'
Line 337 in get_doc E0602 Undefined variable 'json'
Line 362 in load_module W0702 No exception type(s) specified
Line 357 in load_module W0123 Use of eval
Line 359 in load_module E0602 Undefined variable 'PM'
Line 364 in load_module W0107 Unnecessary pass statement
Line 22 W0611 Unused import types
Line 20 W0611 Unused import re
plus 66 comments on code style

src/python/WMCore/WMBS/MySQL/Files/Add.py fails the pylint check. Report follows:

Line 12 in Add.getBinds W0221 Arguments number differs from overridden method
Line 12 in Add.getBinds W0613 Unused argument 'cksum'
Line 34 in Add.execute W0221 Arguments number differs from overridden method
Line 34 in Add.execute R0913 Too many arguments (9/7)
Line 39 in Add.execute W0612 Unused variable 'result'
plus 19 comments on code style

src/python/WMCore/ReqMgr/ExternalResourceTool.py got worse in pylint. Report follows:

plus 10 comments on code style

src/python/WMCore/WMBS/MySQL/Files/GetChecksum.py fails the pylint check. Report follows:

Line 41 in GetChecksum.formatResult E1101 Instance of 'list' has no 'get' member
Line 49 in GetChecksum.execute W0221 Arguments number differs from overridden method
plus 9 comments on code style

src/python/WMCore/REST/Auth.py got worse in pylint. Report follows:

Line 58 in authz_match W0102 Dangerous default value [] as argument
Line 58 in authz_match W0102 Dangerous default value [] as argument
Line 58 in authz_match W0102 Dangerous default value [] as argument
Line 69 in authz_match W0141 Used builtin function 'map'
Line 70 in authz_match W0141 Used builtin function 'map'
Line 71 in authz_match W0141 Used builtin function 'map'
Line 99 in authz_user W0102 Dangerous default value [] as argument
Line 99 in authz_user W0102 Dangerous default value [] as argument
Line 99 in authz_user W0102 Dangerous default value [] as argument
Line 111 in authz_fake W0102 Dangerous default value [] as argument
Line 111 in authz_fake W0102 Dangerous default value [] as argument
Line 111 in authz_fake W0102 Dangerous default value [] as argument
Line 114 in authz_fake W0603 Using the global statement
Line 116 in authz_fake E1101 Instance of 'Server' has no 'environment' member
Line 145 in RESTAuth._setup W0612 Unused variable 'log'
Line 136 in RESTAuth R0903 Too few public methods (0/2)
Line 1 W0611 Unused import logging
plus 27 comments on code style

src/python/WMCore/WMSpec/StdSpecs/TaskChain.py fails the pylint check. Report follows:

Line 186 in ParameterStorage.restoreParameters W0613 Unused argument 'taskConf'
Line 144 in ParameterStorage.get W0201 Attribute 'obj' defined outside init
Line 145 in ParameterStorage.get W0201 Attribute 'cls' defined outside init
Line 207 in TaskChainWorkloadFactory R0902 Too many instance attributes (12/7)
Line 222 in TaskChainWorkloadFactory.call E1101 Instance of 'TaskChainWorkloadFactory' has no 'taskChain' member
Line 268 in TaskChainWorkloadFactory.call E1101 Instance of 'TaskChainWorkloadFactory' has no 'ignoredOutputModules' member
Line 320 in TaskChainWorkloadFactory.setupGeneratorTask E1101 Instance of 'TaskChainWorkloadFactory' has no 'couchURL' member
Line 320 in TaskChainWorkloadFactory.setupGeneratorTask E1101 Instance of 'TaskChainWorkloadFactory' has no 'couchDBName' member
Line 322 in TaskChainWorkloadFactory.setupGeneratorTask E1101 Instance of 'TaskChainWorkloadFactory' has no 'configCacheUrl' member
Line 380 in TaskChainWorkloadFactory.setupTask E1101 Instance of 'TaskChainWorkloadFactory' has no 'maxMergeSize' member
Line 381 in TaskChainWorkloadFactory.setupTask E1101 Instance of 'TaskChainWorkloadFactory' has no 'minMergeSize' member
Line 382 in TaskChainWorkloadFactory.setupTask E1101 Instance of 'TaskChainWorkloadFactory' has no 'maxMergeEvents' member
Line 383 in TaskChainWorkloadFactory.setupTask E1101 Instance of 'TaskChainWorkloadFactory' has no 'maxWaitTime' member
Line 391 in TaskChainWorkloadFactory.setupTask E1101 Instance of 'TaskChainWorkloadFactory' has no 'couchURL' member
Line 392 in TaskChainWorkloadFactory.setupTask E1101 Instance of 'TaskChainWorkloadFactory' has no 'couchDBName' member
Line 399 in TaskChainWorkloadFactory.setupTask E1101 Instance of 'TaskChainWorkloadFactory' has no 'configCacheUrl' member
Line 354 in TaskChainWorkloadFactory.setupTask W0612 Unused variable 'splitArguments'
Line 435 in TaskChainWorkloadFactory.setUpMergeTasks W0141 Used builtin function 'filter'
Line 435 in TaskChainWorkloadFactory.setUpMergeTasks W0110 map/filter on lambda could be replaced by comprehension
Line 436 in TaskChainWorkloadFactory.setUpMergeTasks W0141 Used builtin function 'filter'
Line 436 in TaskChainWorkloadFactory.setUpMergeTasks W0110 map/filter on lambda could be replaced by comprehension
Line 478 in TaskChainWorkloadFactory.modifyTaskConfiguration E1101 Instance of 'TaskChainWorkloadFactory' has no 'sizePerEvent' member
Line 482 in TaskChainWorkloadFactory.modifyTaskConfiguration E1101 Instance of 'TaskChainWorkloadFactory' has no 'timePerEvent' member
Line 453 in TaskChainWorkloadFactory.modifyTaskConfiguration R0912 Too many branches (13/12)
Line 685 in TaskChainWorkloadFactory.validateTask W1111 Assigning to function call which only returns None
Line 696 in TaskChainWorkloadFactory.validateTask W1111 Assigning to function call which only returns None
Line 363 in TaskChainWorkloadFactory.setupTask W0201 Attribute 'inputDataset' defined outside init
Line 369 in TaskChainWorkloadFactory.setupTask W0201 Attribute 'inputDataset' defined outside init
Line 220 in TaskChainWorkloadFactory.call W0201 Attribute 'workload' defined outside init
Line 235 in TaskChainWorkloadFactory.call W0201 Attribute 'blockWhitelist' defined outside init
Line 234 in TaskChainWorkloadFactory.call W0201 Attribute 'blockBlacklist' defined outside init
Line 237 in TaskChainWorkloadFactory.call W0201 Attribute 'runWhitelist' defined outside init
Line 364 in TaskChainWorkloadFactory.setupTask W0201 Attribute 'inputProcessedDataset' defined outside init
Line 318 in TaskChainWorkloadFactory.setupGeneratorTask W0201 Attribute 'inputPrimaryDataset' defined outside init
Line 364 in TaskChainWorkloadFactory.setupTask W0201 Attribute 'inputPrimaryDataset' defined outside init
Line 389 in TaskChainWorkloadFactory.setupTask W0201 Attribute 'inputPrimaryDataset' defined outside init
Line 417 in TaskChainWorkloadFactory.setupTask W0201 Attribute 'inputPrimaryDataset' defined outside init
Line 236 in TaskChainWorkloadFactory.call W0201 Attribute 'runBlacklist' defined outside init
Line 365 in TaskChainWorkloadFactory.setupTask W0201 Attribute 'inputDataTier' defined outside init
Line 207 in TaskChainWorkloadFactory R0904 Too many public methods (30/20)
plus 75 comments on code style

src/python/WMCore/WMStats/ExternalResourceTool.py got worse in pylint. Report follows:

plus 10 comments on code style

src/python/WMCore/ReqMgr/Tools/reqMgrClient.py fails the pylint check. Report follows:

Line 106 in WorkflowManager.output_datasets E0202 An attribute defined in WMCore.ReqMgr.Tools.reqMgrClient line 81 hides this method
Line 148 in WorkflowManager.input_events W0123 Use of eval
Line 159 in WorkflowManager.input_events E0602 Undefined variable 'dbs3'
Line 162 in WorkflowManager.input_events E0602 Undefined variable 'dbs3'
Line 163 in WorkflowManager.input_events E0602 Undefined variable 'dbs3'
Line 167 in WorkflowManager.input_events E0602 Undefined variable 'dbs3'
Line 171 in WorkflowManager.input_events E0602 Undefined variable 'dbs3'
Line 174 in WorkflowManager.input_events E0602 Undefined variable 'dbs3'
Line 177 in WorkflowManager.input_events E0602 Undefined variable 'dbs3'
Line 180 in WorkflowManager.input_events E0602 Undefined variable 'dbs3'
Line 183 in WorkflowManager.input_events E0602 Undefined variable 'dbs3'
Line 110 in WorkflowManager.input_events R0912 Too many branches (23/12)
Line 195 in getOutputEvents E0602 Undefined variable 'dbs3'
Line 266 in cloneWorkflow W0613 Unused argument 'workflowname'
Line 306 in handleTaskChain E0602 Undefined variable 'dbs3'
Line 308 in handleTaskChain E0602 Undefined variable 'dbs3'
Line 308 in handleTaskChain E0602 Undefined variable 'dbs3'
Line 310 in handleTaskChain E0602 Undefined variable 'dbs3'
Line 312 in handleTaskChain E0602 Undefined variable 'dbs3'
Line 293 in handleTaskChain W0612 Unused variable 'runBlacklist'
Line 14 W0611 Unused import urllib2
Line 11 W0611 Unused import sys
Line 10 W0611 Unused import re
plus 85 comments on code style

src/python/WMQuality/WebTools/RESTClientAPI.py got worse in pylint. Report follows:

Line 10 in makeRequest W0102 Dangerous default value {} as argument
Line 62 in methodTest W0102 Dangerous default value {} as argument
Line 62 in methodTest W0102 Dangerous default value {} as argument
Line 62 in methodTest W0102 Dangerous default value {} as argument
Line 62 in methodTest R0913 Too many arguments (9/7)
Line 1 W0611 Unused import cherrypy
Line 8 W0611 Unused import JsonWrapper
plus 19 comments on code style

src/python/WMCore/HTTPFrontEnd/WMBS/WMBSRESTModel.py fails the pylint check. Report follows:

Line 15 in WMBSRESTModel R0901 Too many ancestors (8/7)
Line 20 in WMBSRESTModel.init W0102 Dangerous default value {} as argument
Line 128 in WMBSRESTModel.jobInfoByID E1120 No value for argument 'couchConfig' in function call
Line 130 in WMBSRESTModel.jobStatusValidate W0622 Redefining built-in 'input'
Line 145 in WMBSRESTModel.jobStatusValidate W0612 Unused variable 'interval'
Line 144 in WMBSRESTModel.jobStatusValidate W0612 Unused variable 'jobState'
Line 130 in WMBSRESTModel.jobStatusValidate R0201 Method could be a function
Line 152 in WMBSRESTModel.listJobStatus W0612 Unused variable 'startTime'
Line 191 in WMBSRESTModel.subscriptionIDValidate W0622 Redefining built-in 'input'
Line 191 in WMBSRESTModel.subscriptionIDValidate R0201 Method could be a function
Line 195 in WMBSRESTModel.subTypeValidate W0622 Redefining built-in 'input'
Line 195 in WMBSRESTModel.subTypeValidate R0201 Method could be a function
Line 199 in WMBSRESTModel.setTableFormat W0622 Redefining built-in 'input'
Line 199 in WMBSRESTModel.setTableFormat R0201 Method could be a function
Line 15 in WMBSRESTModel R0904 Too many public methods (40/20)
Line 12 W0611 Unused import JSONRequests
Line 8 W0611 Unused import logging
plus 62 comments on code style

src/python/WMCore/WMBSFeeder/RunTransferNotifier/RunTransferNotifier.py fails the pylint check. Report follows:

Line 45 in RunTransferNotifier W0223 Method 'persist' is abstract in class 'FeederImpl' but is not overridden
Line 72 in RunTransferNotifier.WatchedRun.addCompletedNodes E0602 Undefined variable 'node'
Line 84 in RunTransferNotifier.init W0231 init method from base class 'FeederImpl' is not called
Line 159 in RunTransferNotifier.call W0622 Redefining built-in 'file'
Line 192 in RunTransferNotifier.call W0702 No exception type(s) specified
Line 169 in RunTransferNotifier.call E1123 Unexpected keyword argument 'umi' in constructor call
Line 169 in RunTransferNotifier.call E1123 Unexpected keyword argument 'run' in constructor call
Line 177 in RunTransferNotifier.call E1101 Instance of 'File' has no 'setLocations' member
Line 137 in RunTransferNotifier.call W0612 Unused variable 'files'
Line 205 in RunTransferNotifier.getNewRuns E0602 Undefined variable 'watchedRuns'
Line 205 in RunTransferNotifier.getNewRuns E0602 Undefined variable 'WatchedRun'
Line 35 W0611 Unused import logging
plus 8 comments on code style

src/python/WMComponent/DBS3Buffer/MySQL/DBSBufferFiles/Add.py fails the pylint check. Report follows:

Line 17 in Add.getBinds W0221 Arguments number differs from overridden method
Line 17 in Add.getBinds R0913 Too many arguments (8/7)
Line 17 in Add.getBinds W0613 Unused argument 'cksum'
Line 40 in Add.execute W0221 Arguments number differs from overridden method
Line 40 in Add.execute R0913 Too many arguments (10/7)
Line 45 in Add.execute W0612 Unused variable 'result'
plus 20 comments on code style

src/python/WMCore/WMBS/MySQL/Files/SetLocation.py fails the pylint check. Report follows:

Line 19 in SetLocation.getBinds W0622 Redefining built-in 'file'
Line 19 in SetLocation.getBinds W0221 Arguments number differs from overridden method
Line 33 in SetLocation.execute W0622 Redefining built-in 'file'
Line 33 in SetLocation.execute W0221 Arguments number differs from overridden method
Line 36 in SetLocation.execute W0612 Unused variable 'result'
plus 9 comments on code style

src/python/WMCore/WMRuntime/ProcessMonitor.py fails the pylint check. Report follows:

Line 8 W0401 Wildcard import types
Line 78 in ChildProcess.forkAndExecute W0703 Catching too general exception Exception
Line 77 in ChildProcess.forkAndExecute W0212 Access to a protected member _exit of a client class
Line 80 in ChildProcess.forkAndExecute W0212 Access to a protected member _exit of a client class
Line 107 in ChildProcess.isRunning W0201 Attribute 'realstatus' defined outside init
Line 108 in ChildProcess.isRunning W0201 Attribute 'realsignal' defined outside init
Line 117 in ExecProcess.init W0231 init method from base class 'ChildProcess' is not called
Line 144 in PythonProcess.init W0231 init method from base class 'ChildProcess' is not called
Line 8 W0614 Unused import IntType from wildcard import
Line 8 W0614 Unused import TypeType from wildcard import
Line 8 W0614 Unused import BooleanType from wildcard import
Line 8 W0614 Unused import TracebackType from wildcard import
Line 8 W0614 Unused import CodeType from wildcard import
Line 8 W0614 Unused import UnboundMethodType from wildcard import
Line 8 W0614 Unused import StringType from wildcard import
Line 8 W0614 Unused import BuiltinMethodType from wildcard import
Line 8 W0614 Unused import FloatType from wildcard import
Line 8 W0614 Unused import DictionaryType from wildcard import
Line 8 W0614 Unused import NotImplementedType from wildcard import
Line 8 W0614 Unused import BuiltinFunctionType from wildcard import
Line 8 W0614 Unused import DictProxyType from wildcard import
Line 8 W0614 Unused import StringTypes from wildcard import
Line 8 W0614 Unused import GeneratorType from wildcard import
Line 8 W0614 Unused import InstanceType from wildcard import
Line 8 W0614 Unused import ObjectType from wildcard import
Line 8 W0614 Unused import DictType from wildcard import
Line 8 W0614 Unused import GetSetDescriptorType from wildcard import
Line 8 W0614 Unused import FileType from wildcard import
Line 8 W0614 Unused import EllipsisType from wildcard import
Line 8 W0614 Unused import ListType from wildcard import
Line 8 W0614 Unused import MethodType from wildcard import
Line 8 W0614 Unused import TupleType from wildcard import
Line 8 W0614 Unused import ModuleType from wildcard import
Line 8 W0614 Unused import FrameType from wildcard import
Line 8 W0614 Unused import LongType from wildcard import
Line 8 W0614 Unused import BufferType from wildcard import
Line 8 W0614 Unused import ClassType from wildcard import
Line 8 W0614 Unused import MemberDescriptorType from wildcard import
Line 8 W0614 Unused import UnicodeType from wildcard import
Line 8 W0614 Unused import SliceType from wildcard import
Line 8 W0614 Unused import ComplexType from wildcard import
Line 8 W0614 Unused import XRangeType from wildcard import
Line 8 W0614 Unused import NoneType from wildcard import
plus 28 comments on code style

src/python/WMCore/Services/Dashboard/apmon.py fails the pylint check.  Report follows:

Line 13 in WebAPI.init W0102 Dangerous default value {} as argument
Line 50 in WebAPI.index W0613 Unused argument 'kwargs'
Line 58 in WebAPI.default W0613 Unused argument 'args'
Line 58 in WebAPI.default W0613 Unused argument 'kwargs'
Line 77 in WebAPI.json W0123 Use of eval
Line 86 in WebAPI.dasOutput W0622 Redefining built-in 'dict'
Line 89 in WebAPI.dasOutput W0702 No exception type(s) specified
Line 126 in WebAPI.plist W0123 Use of eval
Line 142 in WebAPI.xml W0123 Use of eval
Line 152 in WebAPI.runMethod W0622 Redefining built-in 'dict'
Line 147 in WebAPI.runMethod W0622 Redefining built-in 'input'
Line 159 in WebAPI.runMethod W0703 Catching too general exception Exception
Line 11 in WebAPI R0904 Too many public methods (31/20)
Line 5 W0611 Unused import sitetier
Line 5 W0611 Unused import countrycode
Line 8 W0611 Unused import types
plus 11 comments on code style

src/python/WMComponent/DBSBuffer/Database/MySQL/DBSBufferFiles/Add.py fails the pylint check. Report follows:

Line 17 in Add.getBinds W0221 Arguments number differs from overridden method
Line 17 in Add.getBinds W0613 Unused argument 'cksum'
Line 38 in Add.execute W0221 Arguments number differs from overridden method
Line 38 in Add.execute R0913 Too many arguments (9/7)
Line 43 in Add.execute W0612 Unused variable 'result'
plus 20 comments on code style

Unit test changes for pull request 6133:

WMCore_t.WebTools_t.REST_t.RESTTest:testDAOBased changed from success to error
WMCore_t.WebTools_t.REST_t.RESTTest:testSanitisePassHTTP changed from failure to error
WMCore_t.WebTools_t.NestedModel_t.NestedModelTest:testOuterFooPass changed from success to error

No unit test failures, but I we'll skip this for now. Works fine even in python3 even though it's no longer recommended.


[bug] problem with timezone

First of all great project!
I've tried to run main.ipynb on google colab but this line  ew = EqualWeights(assets, rebalance_dates).weights gives me an error:
TypeError: Cannot convert tz-naive timestamps, use tz_localize to localize
I've tried to fix it by rebalance_dates = pd.bdate_range(start, end, freq="BM", tz='UTC') but error appears further down in pipeline for line bt = Backtester(all_strategies, "USD") : ValueError: Tz-aware datetime.datetime cannot be converted to datetime64 unless utc=True . Could you advise on this ?

could be due to your pandas or numpy version (I've updated the setup.cfg and maybe that caused an issue when launching in collab)? I've justed tested on a new machine using:
numpy~=2.0.2
pandas~=2.2.3

And it works fine!


code coverage for python

Run python test from the conda build and merge the python coverage report with the C++ coverage report. The python coverage ignores the proto directory.

how to pass the code coverage test? why sometime in a PR the codecov test fails?


feat: using Python 3.13

As title says. Closes #537

Also took advantage to upgrade action versions

Done everything on the web browser so... checkout inconsistencies

Nah... it didn't fix anything. No clue about what's going on

Nah... it didn't fix anything. No clue about what's going on

I will try to have a look.

Nah... it didn't fix anything. No clue about what's going on

@RobPasMue @MaxJPRey,  if you do figure out the root cause of the xvfb issue, please share. It is also holding us up on ansys/pyansys-dev-guide#536.

Whelp, using the pyvista/setup-headless-display-action solved it! Merging :)


What about SoftLayer CPI support?

I think we would be interested in doing a PR for SoftLayer support.   What are the requirements for adding a new IaaS to the tool?
What do you need from us to support this?

Adding a cpi is as simple as adding a new directory in cpi dir and symlinking to all the upstream cpi related files.
cpi-dynamic should probably become a flag (sample flag usage).
Also a vars.tmpl should be created.

@andrew-edgar any update on this?

@rkoster softlayer seems already to be in bosh-deployment https://github.com/cloudfoundry/bosh-deployment/tree/master/softlayer

@ramonskie you should be simple to add

created a pull request for softlayer
https://github.com/starkandwayne/bucc/pull/60
i hope @andrew-edgar can  test it. as i'm not familiar with softlayer

Fixed in https://github.com/starkandwayne/bucc/releases/tag/v0.2.0


Upgrading to Selected Microsoft Azure Java Client 12.x Libraries

The following is a re-cap from y2211.28 release:

The official support for Microsoft Azure Storage Client SDK 8.6.6 ends in September 2024. For more information on the retirement of this version of the library, see https://azure.microsoft.com/en-gb/updates/retirement-notice-the-legacy-azure-storage-java-client-libraries-will-be-retired-on-13-september-2024/Information published on non-SAP site. To ensure that SAP Commerce Cloud is not shipped with the soon unsupported library that might contain security vulnerabilities, the Microsoft Azure Storage Client SDK 8.6.6 library will be removed in the January 2025 preview of the March 2025 update release and the following Microsoft Azure Java Client 12.x libraries are now available to replace it:

Microsoft Azure Client Library For Blob Storage
Microsoft Azure Client Library For File Share Storage
Microsoft Azure Client Library For Queue Storage

Both Microsoft Azure Storage Client 8.6.6 and the Microsoft Azure Java Client 12.x libraries are available in 2211.28. It's strongly recommended that you migrate to the Microsoft Azure Java Client 12.x libraries before Microsoft Azure Storage Client SDK 8.6.6 is removed from SAP Commerce Cloud in the January 2025 preview of the March 2025 update release.

In the current implementation, db sync is using Azure Storage version 8.1 (https://github.com/SAP/sap-commerce-db-sync/blob/main/commercedbsync/external-dependencies.xml)

The solution sounds like adding a dependency to extension /azurecloud instead of having the custom external-dependencies.xml .

Thanks for raising this, adding to backlog


msmbuilder 3.8.0

new release

MSMBuilder successfully built! I'll merge this now.
Note that the build system upgrade is being held on @peastman's request for the OpenMM 7.1.1 bugfix release, so it'll be a few days before those travis failures are cleared.


Overlay test for Windows nodes

Related Issues
SURE-8128
Summary
The overlay test, https://ranchermanager.docs.rancher.com/troubleshooting/other-troubleshooting-tips/networking, only works in Linux nodes. If the clusters run Windows worker nodes, the container swiss-army-knife does not run.

@mrolmedo do you happen to know if Windows nodes trigger the exec user process caused: exec format error message in pod logs, as ARM nodes do?

@martyav Sorry for the delay! I got this error in the Rancher UI "ImagePullBackOff (Back-off pulling image "rancherlabs/swiss-army-knife")" and more detailed when I catch the namespace events:
<img width="662" alt="overlayWindows" src="https://github.com/rancher/rancher-docs/assets/96732346/c8b21ead-9ea6-4362-905f-a1ea0abfee06">"     Warning   Failed             pod/overlaytest-kjd6p   Failed to pull image "rancherlabs/swiss-army-knife": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/rancherlabs/swiss-army-knife:latest": failed to extract layer sha256:030309cad0ba82b098939419dcb5e0a95c77d2427d99c44a690ecab59f80a487: Failed to safefile.OpenRelative failed in Win32: open \?\C:\var\lib\rancher\rke2\agent\containerd\io.containerd.snapshotter.v1.windows\snapshots\38\var\lib\dpkg\info\gcc-8-base:amd64.list: path contains invalid character : (0x1f) var\lib\dpkg\info\gcc-8-base:amd64.list: unknown"


Install all the dependencies

How do I install all the dependencies of the project? Is there any requirements text file to install??

Ya sorry for replying this late ..
All the dependencies mentioned in Readme.md file


Stuck on Setting the controller to learning mode...

Hello. Thanks so much for making this!
I've got Python 3.11.7 running on Windows 11. I have all the dependencies installed.
When I run poetry run python app/main.py it then returns:
Set the device to `off` mode
Setting the controller to learning mode...
But nothing after that happens. My UFO-R11 doesn't go into learning mode. Am I doing something wrong? I've also tried it with Python 3.10 and Python 3.12. I'm also running Mosquitto and Zigbee2MQTT. I have poetry 1.7.1 installed.
I do have moes_ufo_r11_controller.py in \app\src\domain\controllers and have set my env variables.
My best guess is that it's not connecting to Mosquitto at all. Nothing shows up in the logs of Zigbee2MQTT. If I run the following service in Home Assistant it does go into learning mode
service: mqtt.publish
data:
  topic: zigbee2mqtt/moes_ufo_r11/set
  payload: "{\"learn_ir_code\": \"ON\"}"

Hello. Thanks so much for making this! I've got Python 3.11.7 running on Windows 11. I have all the dependencies installed. When I run poetry run python app/main.py it then returns: Set the device to `off` mode Setting the controller to learning mode...
But nothing after that happens. My UFO-R11 doesn't go into learning mode. Am I doing something wrong? I've also tried it with Python 3.10 and Python 3.12. I'm also running Mosquitto and Zigbee2MQTT. I have poetry 1.7.1 installed. I do have moes_ufo_r11_controller.py in \app\src\domain\controllers and have set my env variables.
My best guess is that it's not connecting to Mosquitto at all. Nothing shows up in the logs of Zigbee2MQTT. If I run the following service in Home Assistant it does go into learning mode
service: mqtt.publish
data:
  topic: zigbee2mqtt/moes_ufo_r11/set
  payload: "{\"learn_ir_code\": \"ON\"}"

Hello! Thanks for using this :).
Yep, it totally looks like the connection is not being stablished.  The project is missing some logs for this.
I'll try to update the project, checking the connection when the app is executed first. I'll let you know :).

@BenJamesAndo can you try the code from this branch?
git checkout feat/check_mqtt_connection
I've been doing some tests and most likely is an authentication problem. The library is not so well written in regarding of error handling, so it's hard to know for me right now.
Go inside your Zigbee2MQTT configuration path and extract the defined username and password that is there. The path for me is:
/config/z2mqtt/configuration.yaml
Here, search for mqtt, and user and password.
Then fulfill the USERNAME and PASSWORD inside SmartIR-Zigbee-Tools/properties.env with those values.
Let me know if that works for you :).

I gave the new branch a go. No error logs showed up. Now I'm thinking it might be that the dependencies aren't installed properly. Perhaps it thinks they are but they aren't and as such does nothing.
If I run python paho-mqtt then I get [Errno 2] No such file or directory
No matter what I've tried so far I can't get it to use my environment variables. I've been mostly using Windows 11 but I've also tried Debian with the same issue. Running in Windows 11 with Visual Studio Code works, but ends up with Setting the controller to learning mode...
So it's perhaps not an issue with this project but rather my setup.
Perhaps if all the dependencies were included in the folder that may help?
I've successfully connected to my MQTT from another external program so wrong credentials aren't an issue.

Or am I supposed to instead of manually installing the dependencies I run with poetry install first? If I do that
Installing the current project: smartir-zigbee-tools (0.1.0)
The current project could not be installed: No file/folder found for package smartir-zigbee-tools
If you do not want to install the current project use --no-root

Sorry I'm not super good with python or poetry.

@BenJamesAndo I'll try to create a Makefile and include instructions of how to execute the project.
You should be able to execute it with poetry run python app/main.py. But I'll try to create the Makefile.

@BenJamesAndo I've updated the branch.
Try running make install and make run.
If the connection is correct, then you will see the normal project output. If not, then an error will be raised.
Let me know if you have more problems :)

Perhaps some progress on my end. I now get this when I run make run
Traceback (most recent call last): File "app/main.py", line 4, in <module> from src.application.generate_climate_json import GenerateClimateJson File "/home/ben/Downloads/SmartIR-Zigbee-Tools-feat-check_mqtt_connection/app/ src/application/generate_climate_json.py", line 7, in <module> class GenerateClimateJson: File "/home/ben/Downloads/SmartIR-Zigbee-Tools-feat-check_mqtt_connection/app/ src/application/generate_climate_json.py", Line 37, in GenerateClimateJson operation_modes: list[str], TypeError: 'type' object is not subscriptable make: *** [Makefile:10: run] Error 1
This is my .env file with ip address and password changed for me pasting it here.
BROKER_PORT=1883
USERNAME=mqtt-user
PASSWORD=password
CONTROLLER_FRIENDLY_NAME=moes_ufo_r11
MANUFACTURER=Samsung
MODEL=AR09TXHQASIN
MINIMUM_TEMPERATURE=18.0
MAXIMUM_TEMPERATURE=30.0
OPERATION_MODES=["auto", "cool", "dry", "heat"]
FAN_MODES=["auto", "low", "medium", "high"]
2SWING_MODES=["on"]```

@BenJamesAndo That totally looks like you are using a different python version.
Can you run poetry run python -V and check that you are using 3.11??
You can fix your problem deleting the typing of the functions too.

Hey. Sorry for my late response, I've been out of town.
Yes you're right. I was testing it lately on a different Linux VM and it was running Python 3.8.
I've just spun up a new Debian 12 install which comes with Python 3.11. This is what I get when I run make install

Package operations: 0 installs, 1 update, 0 removals

  • Updating typing-extensions (4.9.0 -> 4.8.0): Failed

  Error

  g-io-error-quark: The connection is closed (18)

  at /usr/lib/python3/dist-packages/keyring/backends/libsecret.py:134 in get_credential
      130│         Otherwise, it will return the first username and password combo that it finds.
      131│         """
      132│         query = self._query(service, username)
      133│         try:
    → 134│             items = Secret.password_search_sync(
      135│                 self.schema, query, Secret.SearchFlags.UNLOCK, None
      136│             )
      137│         except GLib.Error as error:
      138│             quark = GLib.quark_try_string('g-io-error-quark')

make: *** [Makefile:4: install] Error 1

When I run make run I get
Traceback (most recent call last):
  File "/home/ben/Downloads/SmartIR-Zigbee-Tools-feat-check_mqtt_connection/app/main.py", line 16, in <module>
    mqtt_client = MosquittoMQTTClient(
                  ^^^^^^^^^^^^^^^^^^^^
  File "/home/ben/Downloads/SmartIR-Zigbee-Tools-feat-check_mqtt_connection/app/src/infrastructure/mosquitto_mqtt_client.py", line 30, in __init__
    self.__check_connection_established()
  File "/home/ben/Downloads/SmartIR-Zigbee-Tools-feat-check_mqtt_connection/app/src/infrastructure/mosquitto_mqtt_client.py", line 42, in __check_connection_established
    raise ConnectionNotEstablishedException()
src.domain.exceptions.ConnectionNotEstablishedException: Connection cannot be established. Most likely, the username and password are not correct.
make: *** [Makefile:10: run] Error 1

I definitely have the username and password correct. But it's good to see the error messages now showing up.
When I first ran make install it didn't work so I had to manually install the dependencies via commands such as apt install python3-paho-mqtt
Perhaps I need to learn more about python virtual environments and run it that way?
What I can also do it is try to get paho-mqtt running on it's own so I can troubleshoot any issues it may be facing.

@BenJamesAndo So, you are running a VM, hmm.. That shouldn't be an issue if it can connect to the server.
I can't diagnose the problem you are facing with poetry. Perhaps I shouldn't be using it, is an advanced tool for virtual environment, but maybe too advance for the purpose of the project.
Nonetheless, if you installed the dependencies with the packet manager, then it's ok. Not recommended, but ok.
So I can't really give you more information than the error that is being shown. You may have to create another user-password with moquitto_passwd or something.
You aren't having connection problems to the server. If the initial connection can't be established  (as it's unavailable) then another error is raised, a TimeoutError. The error that is raised is my custom-made error, but paho doesn't give much information about what the error is..
TLDR; create a new user-password in mosquitto and set those in the properties. You most-likely are facing a credentials problem.

You are right. It was a credentials issue when using the Debian VM. The username & password that's in /config/z2mqtt/configuration.yaml for me didn't work. I'm running Mosquitto broker and Zigbee2MQTT as Home Assistant addons. As such all Home Assistant users are compatible Mosquito broker users. I had tested one of the Home Assistant users in the past but it didn't work back then, perhaps due to a firewall issue.
Thank you so very much for your help.
For Windows 11 I can't get it to work. It says the credentials are incorrect even though I'm using the same .env file as on the Debian VM. I'll just stick with Debian for now.

Glad to hear that the project is working now! Enjoy :)


YouTube videos are not playing

Don't playing video from YouTube. How to solve this problem?
https://www.youtube.com/watch?v=YnKpeMTy4_4&feature=youtu.be
P.S: This is accomplished through additional Lua scripts? If so, in what directory they should be kept?
P.S.S: As I understand it in your plugin, there is no implementation of Lua scripts?

Yeah, this is not supported right now, sorry. As you already figured out, the VLC player application uses Lua scripts to resolve the actual content streams in YouTube URLs. This is a VLC player feature, not a LibVLC feature, so we don't have access to that. The plan is to implement the equivalent of the Lua script in C++ in UE4, but I don't have any time to work on that right now.

Hi gmpreussner, my team are currently working on a unreal project that involves streaming from youtube and other major video websites and we're very interested in getting the play url function working for vlc. Was there any progress on this issue that you can possible update with github? I'm pretty new to programming myself so even if you haven't had time to tackle this issue yet, any hint/help would be much appreciated. Thank you!

I haven't had any time to look into this yet, sorry. If you decide to implement the YouTube URL parser yourself, I'd love a pull request. Thanks!

This is a VLC player feature, not a LibVLC feature, so we don't have access to that.

This is incorrect. You can use lua inside libVLC, but I agree it's very tricky to get right, because of the location of the scripts.


Modal closeOnDimmerClick behaviour not working as expected on Safari mobile

Steps

Open Safari on an iOS device with the version included below.
Go to: https://react.semantic-ui.com/maximize/modal-example-modal
Modal appears but cannot be closed when you tap on the dimmer.

Expected Result

Tapping on the dimmer should close the modal

Actual Result

Tapping on the dimmer does not close the modal

Version
Semantic-ui-react: 0.78.3
Safari Mobile on iOS: 11.2.6
Testcase
Just follow the steps above, no test case required. See screenshot attached:

Duplicate, see https://github.com/Semantic-Org/Semantic-UI-React/pull/1833#issuecomment-313713611.


Connection reset by peer KONG

I am running Kong in AWS EKS cluster
kong Image: kong:1.1
Kubernates 1.12.7
ELB Timeout 1200
Sticky session not allowed
2019/09/13 04:28:26 [error] 34#0: *45793040 recv() failed (104: Connection reset by peer)
 while reading response header from upstream, client: <IP_ADDRESS>,
server: kong, request: "GET

Can you share some more context around when this is happening?
Does it happen when a pod is being terminated or an upstream pod is being replaced?

Yes, Its Quite Offen, As HPA Starts Autoscaling  PODS
mention exception occurred while pod in 1/1 terminate

It seems like there are in-flight requests when your service pod is terminated, resulting in the above errors. Please ensure that when your application pod starts terminating, it

stop accepting new requests and new connections
finishes all the requests that are in-flight
and then closes the existing connections

Closing this due to lack of activity.


Request: Cascading Fields

This gist illustrates a common database problem.

two activities are defined: swimming and tennis (use the See Other Tables pull-down to inspect them.)
For each activity, two accessories are defined: goggles and  swimming suit for swimming; racket and shorts for tennis
Two events are defined: The Big Swim, related to swimming; Wimbledon, related to tennis

Now, in EventAccessory, we want to make some notes for accessories for each event. Some notes are pre-populated. If you go to edit the accessory for the current Wimbledon record, you will see that all accessories are available --- not just those for tennis, but swimming accessories too.
Nothing surprising there, but this is the request: a feature that makes it easy to filter form field input values based on the record's current fields. For instance, Wimbledon is a tennis event, so in the accessory field we would only see racket and shorts.
From this old issue and this post on stackoverflow, I realize that the feature is not yet implemented. But there is demand, so I'd like to respectfully add it to the request list.

This gist might have the solution: https://gist.github.com/mrjoes/5521548

@pawl This looks promising, thank you.
Sadly, I haven't understood how to use this idea in my small gist, so I can't confirm if that is the solution.
AccessoryAdmin is where I'd like to cascade the accessory field, limiting its values when editing the Wimbledon event (for instance) to accessory names for the Wimbledon activity (tennis): racket, shorts.
Is AccessoryAdmin where Joe's create_form, edit_form, _use_filtered_parent and _get_parent_list would go? And what might _get_parent_list look like?
If I can get it going for this gist, I think I'll be able to apply it to the larger project I'm working on.
Thank you in advance for your kind input.

Example with AJAX

Here you can have an example based on a one-to-many relation https://github.com/mapio/Flask-Admin-Inline-Models-And-Related-Fields


Adding Custom Headers to specific web pages within a single page application

Please describe which feature you have a question about?
Custom Headers
Provide additional details
I'm trying to configure Custom Headers on a SPA (single page application) for certain client side routes only in order to block search engines from indexing only those routes:
X-Robots-Tag: noindex
Based on my current understanding, the pattern field allows you to specify which file paths will use the custom headers, however because we are building a SPA there is no actual file at the client side route that we are trying to prevent from indexing. Is there another solution you would recommend or am I missing something?
What AWS Services are you utilizing?
AWS Amplify
Provide additional details e.g. code snippets
Our current setup uses the suggested rewrites for a SPA application:
</^[^.]+$\|\.(?!(css\|xml\|gif\|ico\|jpg\|js\|png\|txt\|svg\|woff\|woff2\|ttf\|map\|json\|html)$)([^.]+$)/> | /index.html | 200 (Rewrite)

I've tried adding the custom headers as suggested in the docs:
 - pattern: '/specific-path/*'
    headers:
      - key: 'X-Robots-Tag'
        value: 'noindex'

This seems to have no effect in terms of the custom headers being applied.

Hi @chadmg :wave:
Yes, once the SPA "catches" the request, the subsequent routing is handled by the router in you app. Is it possible to use the meta tag approach instead of the headers?
From the link, <meta name="robots" content="noindex" /> can be used on each page to have a similar effect. There may be a meta configuration package for the framework that you're using. For example, Vue Head and React Helmet are options for Vue.js and React.js, respectively.
Also, I'd suggest adding a robots.txt - https://developers.google.com/search/docs/advanced/robots/intro.
Hope that this helps.


Cannot import name 'EntityCategory'

Describe the bug
HASS logs reporting
Unable to prepare setup for platform eufy_security.binary_sensor: Platform not found (cannot import name 'EntityCategory' from 'homeassistant.helpers.entity' (/usr/src/homeassistant/homeassistant/helpers/entity.py)).
Unable to prepare setup for platform eufy_security.sensor: Platform not found (cannot import name 'EntityCategory' from 'homeassistant.helpers.entity' (/usr/src/homeassistant/homeassistant/helpers/entity.py)).
Unable to prepare setup for platform eufy_security.switch: Platform not found (cannot import name 'EntityCategory' from 'homeassistant.helpers.entity' (/usr/src/homeassistant/homeassistant/helpers/entity.py)).
Unable to prepare setup for platform eufy_security.select: Platform not found (cannot import name 'EntityCategory' from 'homeassistant.helpers.entity' (/usr/src/homeassistant/homeassistant/helpers/entity.py)).

**Hardware Information about Home Assistant
Pi4
core-2021.11.5
Eufy HACS version 1.1.0
bropat docker container version 0.6.0
**Hardware Information about Cameras

Doorbell T8210
Floodlight T8422
Homebase T8010

Additional context
I tried this configuration setting enabled/disabled still getting same error
Fix Binary Sensor States (True/False to On/Off)
Doing a locate on entity.py on my server, I found it in a different location under
/opt/hass/custom_components/eufy_security/entity.py

I could create a symlink as a workaround but wanted to get your thoughts first.

I believe your HA version is old, i am on 2021.12.0 and it is working fine

I also see that entitycategory is in correct place.
https://github.com/home-assistant/core/blame/72d8882c7986d1cb869795c10603a6a1052ed28b/homeassistant/helpers/entity.py

Symlink would not work, we need original HA entity class, not from this integration

Yeah I was afraid of that. I will try upgrading later tonight and will reply back if it is working or not.

If you want to avoid the upgrade, try to get only the specific file from home assistant repository, we need only some strings from there

Instead of fiddling with workarounds I updated to the latest version 2021.12.5 and it is working correctly.


[Bug] Preload None Fails With m3u8 Streams

Browser: mixed
OS: mixed
Clappr Version: 0.5.0
Steps to reproduce:
I have tested with different browsers all with the same result.
I cannot stop m3u8 streams loading in the back ground when the page has first loaded and the stream has not been played, even when  preload none is set.
Does it happen only in your streaming?
All m3u8

Update:
I have done some testing with a different player video.js and when i set preload to none it stops background streams. But, this does not work on clapper, changing preload makes no difference.


Mccalluc/build opts

@pkerpedjiev : port and volume. Where it looks for the sqllite is up to higlass-server, I think. Need to look more at redis storage: I don't think this changes anything. Any other options you need?

As long as the logs go on the volume, those should be enough to get us started.


Issue while using custom server

This action is failing to launch the upterm host, when using my custom uptermd server.
My custom server itself is working (both with ssh and ws protocols) when I try to connect from my terminal.
This is the failed action log (for my last ws attempt; using ssh results in a similar log):
2022-05-28T15:41:27.1593300Z Secret source: Actions
2022-05-28T15:41:27.1594079Z Prepare workflow directory
2022-05-28T15:41:27.2941208Z Prepare all required actions
2022-05-28T15:41:27.3150184Z Getting action download info
2022-05-28T15:41:27.5609560Z Download action repository 'lhotari/action-upterm@v1' (SHA:d23c2722bdab893785c9fbeae314cbf080645bd7)
2022-05-28T15:41:28.4010066Z ##[group]Run lhotari/action-upterm@v1
2022-05-28T15:41:28.4010419Z with:
2022-05-28T15:41:28.4010662Z   limit-access-to-actor: true
2022-05-28T15:41:28.4010938Z   limit-access-to-users: CarloDePieri
2022-05-28T15:41:28.4011343Z   upterm-server: ws://***:80
2022-05-28T15:41:28.4011728Z   GITHUB_TOKEN: ***
2022-05-28T15:41:28.4011947Z env:
2022-05-28T15:41:28.4012131Z   is_cron: false
2022-05-28T15:41:28.4012338Z ##[endgroup]
2022-05-28T15:41:29.0131355Z upterm
2022-05-28T15:41:29.0131993Z
2022-05-28T15:41:29.3917240Z Auto-generating ~/.ssh/known_hosts by attempting connection to uptermd.upterm.dev
2022-05-28T15:41:29.6491930Z Pseudo-terminal will not be allocated because stdin is not a terminal.
2022-05-28T15:41:29.6492275Z
2022-05-28T15:41:29.7888068Z Warning: Permanently added 'uptermd.upterm.dev' (ED25519) to the list of known hosts.
2022-05-28T15:41:29.7888373Z
2022-05-28T15:41:29.8048808Z Connection closed by *** port 22
2022-05-28T15:41:29.8049254Z
2022-05-28T15:41:29.8109578Z Adding actor "CarloDePieri" to allowed users.
2022-05-28T15:41:29.8123618Z Fetching SSH keys registered with GitHub profiles: CarloDePieri
2022-05-28T15:41:30.0561924Z Fetched 3 ssh public keys
2022-05-28T15:41:30.0562557Z Creating a new session. Connecting to upterm server ws://***:80
2022-05-28T15:41:32.2601272Z Created new session successfully
2022-05-28T15:41:33.2618623Z Entering main loop
2022-05-28T15:41:33.2735134Z Error: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /home/runner/.upterm/*.sock: connect: no such file or directory"
2022-05-28T15:41:33.2735882Z
2022-05-28T15:41:33.2736901Z Usage:
2022-05-28T15:41:33.2737397Z   upterm session current [flags]
2022-05-28T15:41:33.2737782Z
2022-05-28T15:41:33.2827031Z Aliases:
2022-05-28T15:41:33.2827320Z   current, c
2022-05-28T15:41:33.2827468Z
2022-05-28T15:41:33.2827548Z 1
2022-05-28T15:41:33.2829383Z Examples:
2022-05-28T15:41:33.2829691Z   # Display the current session defined in $UPTERM_ADMIN_SOCKET
2022-05-28T15:41:33.2831313Z   upterm session current
2022-05-28T15:41:33.2831980Z   # Display the current session with a custom path
2022-05-28T15:41:33.2833909Z   upterm session current --admin-socket ADMIN_SOCKET_PATH
2022-05-28T15:41:33.2834122Z
2022-05-28T15:41:33.2834219Z Flags:
2022-05-28T15:41:33.2835429Z       --admin-socket string   admin unix domain socket (required)
2022-05-28T15:41:33.2835824Z   -h, --help                  help for current
2022-05-28T15:41:33.2837029Z
2022-05-28T15:41:33.2837849Z time="2022-05-28T15:41:33Z" level=fatal msg="rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial unix /home/runner/.upterm/*.sock: connect: no such file or directory\""
2022-05-28T15:41:33.2838210Z
2022-05-28T15:41:33.3168761Z Cleaning up orphan processes
2022-05-28T15:41:33.3590362Z Terminate orphan process: pid (1695) (tmux: server)
2022-05-28T15:41:33.3659997Z Terminate orphan process: pid (1696) (upterm)

And this is the server log:
root@myserver:~/upterm/build# ./uptermd --ws-addr <IP_ADDRESS>:80
INFO[0000] starting server                               app=uptermd network=mem network-opt="[]" node-addr="<IP_ADDRESS>:2222" ssh-addr="<IP_ADDRESS>:2222" ws-addr="[::]:80"
INFO[0250] dialing sshproxy sshd                         app=uptermd com=ws-sshproxy-dialer host=runner network=mem network-opt="[]" node-addr="<IP_ADDRESS>:2222" ssh-addr="<IP_ADDRESS>:2222" sshproxy-addr="<IP_ADDRESS>:2222" ws-addr="[::]:80"
ERRO[0253] error piping                                  app=uptermd com=ws-proxy error="readfrom tcp <IP_ADDRESS>:56024-><IP_ADDRESS>:2222: websocket: close 1006 (abnormal closure): unexpected EOF" network=mem network-opt="[]" node-addr="<IP_ADDRESS>:2222" ssh-addr="<IP_ADDRESS>:2222" ws-addr="[::]:80"

And this is the action config:
      - name: Setup upterm session
        uses: lhotari/action-upterm@v1
        with:
          limit-access-to-actor: true
          limit-access-to-users: CarloDePieri
          upterm-server: ws://${{ secrets.UPTERM_SERVER }}:80

The action does work when using the default upterm server.
EDIT: taking a quick look at the code I see that from here https://github.com/lhotari/action-upterm/blob/d23c2722bdab893785c9fbeae314cbf080645bd7/src/index.js#L56 it tries to connect to the default server to save in the know_host file the server key... should it do the same for a custom ssh server when connecting with ssh?

this is same for me


Amazon search returns blank list

After trying to search for anything it returns nothing.
products = amazon.search(Title='Dirt', SeachIndex='All')
	print (products)
	for i, product in enumerate(products):
		print ("{0}. '{1}'".format(i, product.title))
Nothing gets printed out. Any ideas?

It... randomly fixed itself! Okay cool haha.


Thieving export and missing dummy lines

Hello again!
I was testing your script and found out that it does not export thieving groups. I assume that you know that in Allegro thieving is a via with some padstack shape without drill. Is it possible to add thieving export? On some boards such things cover lots of board area.
Thanks for your work!

Hi,
I have to admit that I'm not quite sure what you mean ... do you mean something like a hatched shape? If you could provide an example (.brd), it would be much easier for me to figure out why the export is not working, thanks!

AD-FMComms3_revA_thieving_and_text.zip
Here it is. I just made thieving and text one near another. The whole area looks empty after export.

It should look like this.

Just as a hint: if you use a text element within allegro, the text should already be included in the output, but if you create a text from lines, this should work as well ... I have to look into that and I hope I can present you a working solution soon!

In my latest commit the thieving structures should be added to the export ... except if circles are used ... there is still some work to do! Maybe you could check, if this is working for you as well.

Hex thieving works fine! Thank you very much!

Yes, I used the board modified by you.
I tested it again and it still works ... AD-FMComms3_revA_thieving_and_text.zip. Do you get an error?

Yes, I did the export with your board ... see the attached file. Do you get an error?


Fix typo in implementing-disposeasync.md

Fixed a typo in the following sentence:

Both IAsyncDisposable instances have there DisposeAsync() methods awaited, thus performing its asynchronous clean up operation.

...and then tweaked the sentence for clarity so it reads:

Both IAsyncDisposable instances have their DisposeAsync() method awaited, so each instance performs its asynchronous clean up operation.

Thanks for following up @gewarren :+1:


Can't convert the model into ".tflite". I've tried every possible way from APIs to command lines. I tried to change layers as per tflite, but I couldn't understand the working and ended up with errors.

System information

Google Colab
TensorFlow: 1.15

Code link with dataset
https://github.com/Kiranendra/Project
By trying different types of conversion like from saved model, from Keras model, freeze graphs, I am facing errors like with "input shape"( is none),  embedding layer. If I change the layer GRU to LSTM then input errors with the decoder output and it goes.

@Kiranendra
Can you go through the link and see if it helps you in converting the model into TF lite .Thanks!

Yes, I've already tried those methods. The model successfully saves. But, it doesn't convert to ".pb" or ".pbtxt" (no matter which way I try - python API or command line). I can't convert my model either with saving or without saving (not even into ".pb" or ".pbtxt").
Thank you.

@Kiranendra
Can you please let us know what are the steps you followed for converting the model into TFLite.
Thanks!

@ravikyram
I followed the steps that were said to be followed, in the link:
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/lite/TFLiteConverter
As I am using "RNN" layers I also tried these steps, in the link:
https://www.tensorflow.org/lite/convert/rnn
I tried changing the layer (GRU) to the layers that were recommended by "TensorFlow" in the link above. Honestly, I am new to neural networks (You can call me as a beginner). So, I can't understand how to change the layers without actually disturbing the model. After, trying everything I figured out that the model saves in ".h5" format, but fails to convert to ".pb".
Thank you.

@Kiranendra Can you please try with tf-nightly and use experimental flag for converter?
See https://www.tensorflow.org/api_docs/python/tf/lite/TFLiteConverter

@ymodak
Yes. I've tried them.

If I use ".from_keras_model()" then, I am getting the error (when using .convert() ):
"NotImplementedError: numpy() is only available when eager execution is enabled."

If I enabled the eager execution then I will get the error at line no. 273 (in model.compile method) in the notebook, stating that " with eager execution enabled target_tensors is not...."
I had to disable v2 behavior also because I have used "tf.placeholder"

I can't use ".from_saved_model()": It says
"the SavedModel file does not exist at: /content/mymodel.pb/{saved_model.pbtxt|saved_model.pb}"
I don't understand why it shows that even though I have the file.

If you don't mind can you please try to convert the model into ".tflite" on your side with my code and dataset here so that you can understand where the problem lies as I am a very much new to RNNs (and also machine learning). It won't take much time to train(the data set is small). Please !!!
Thank you.

@Kiranendra Can you please create a standalone code to reproduce the issue. I tried to create model but it throws an error in this line data_dest.append(start_stop_tags(preprocess_text(line[1]))). The error is as follows. Basically line was empty but we are trying to access line[1]. Thanks!
IndexError                                Traceback (most recent call last)
<ipython-input-10-3d0de97b644f> in <module>()
      6   line = lines.split('\t')[:2]
      7   data_src.append(preprocess_text(line[0]))
----> 8   data_dest.append(start_stop_tags(preprocess_text(line[1])))

IndexError: list index out of range

I am using Google Colab. I've split the code and tested it. But, not really getting the error. Here is the output snap for one iteration.

@Kiranendra Can you please try running your entire colab. When I tried and print data after reading from the Gdrive, it prints as follows.
IOPub data rate exceeded.
The notebook server will temporarily stop sending output
to the client in order to avoid crashing it.
To change this limit, set the config variable
`--NotebookApp.iopub_data_rate_limit`.

Current values:
NotebookApp.iopub_data_rate_limit=1000000.0 (bytes/sec)
NotebookApp.rate_limit_window=3.0 (secs)

Looks like it is not reading for the above reason. I will try again with tensorflow on my local. Thanks!

I've gone through everything again and didn't find any error. So, I made a new notebook and split the code into parts. Here is the ZIP file with the notebook and dataset.
tflite_file_conversion.zip
I forgot to change the file paths(for dataset and checkpoint). As you said that you will try local, please change the file paths accordingly.
P.S: If you are saving the checkpoints in a folder then, make sure that the folder already exists. The model can't create a folder by itself to save the checkpoint files.


added react router resources

@all-contributors please add @ayushi2410 for docs

@ayushi2410 Your PR is merged with hacktoberfest-accepted label as per official guidelines for maintainers in hacktoberfest. It will be reflected in your profile in a few hours. Let me know if there are any issues.


Fix search to work for countries with comma in their name

Using ISO3166::Country.find_country_by_name('Korea, Republic of')
returns nil, since Korea is stored as "Korea (Republic of)".
This change will normalize all the terms that are used to search and
those in the Data.cache.

Thank you very much.

Welcome, I'll try to cut a release soon.
Ping me again if it's not don by next friday :)

@budmc29 2.1.3 released which includes this change

That's great!


Sum of costs for search result is wrong when non-US locale

Checklist
Please make sure you have performed the following steps before opening a new bug ticket, change [ ] to [x] to mark it as done

[x] I have read and tried the steps outlined in the Troubleshooting Guide
[x] I have searched through existing issues.

Description

Garage -> Service Records -> Search, input a search term that has several entries matching. The list gets 'filtered' with # of Service Records indicating the number of Service Records matching the search criteria, but the Total: next to it reflects a wrong number if the locale has a space as a thousands delimiter. ru_RU as an example.
Platform

[x] Docker Image
[ ] Windows Standalone Executable

Browser Console Errors(F12)

App/Container Console Error

Screenshots(optional)

Fixed in edge-tagged docker-image, will schedule a release sometime in July.

Released


Update to 0.1.27

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Update to 0.1.27

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.


Stage command dependency check has non-deterministic results

Problem
When trying to stage contracts, sometimes I get errors that a contract is not staged but it is. @bjartek has hit this problem as well for a contract that we at Flowty own and know we had staged
Steps to Reproduce

Have a contract to stage with many depdendencies
Stage the contract

Example:
@bjartek tried to stage some of Find's contracts and got the following:
These contracts depend on the following contracts which have not been staged yet:
  - 473d6a2c37eab5be.LostAndFound
  - 473d6a2c37eab5be.LostAndFoundHelper
  - e544175ee0461c4b.TokenForwarding
  - ead892083b3e2c6c.DapperUtilityCoin
  - ec67451f8a58216a.PublicPriceOracle

However, if I try to stage LostAndFound, it is already done:
lost-and-found git:(main) flow-c1 migrate stage --network mainnet

✔ 473d6a2c37eab5be.LostAndFound  (no changes)
✔ 473d6a2c37eab5be.FeeEstimator  (no changes)
✔ 473d6a2c37eab5be.LostAndFoundHelper  (no changes)

We suspect it has to do with rate limiting against flow's public access nodes which is 5 QPS. If you have many dependencies, you will quickly meet that limit, and a throttled dependency check is treated as a contract not being staged
Acceptance Criteria
Dependency stage status check should be batched
Context
Some bigger contracts fail to be staged because it thinks that dependencies are not migrated

When i use my own AN i only get that these two are missing
  - ec67451f8a58216a.PublicPriceOracle```


IGlk changes

[ ] Remove unused functions?
[x] Remove [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1)] from glk_put_buffer etc
Return tuples rather than using out parameters? - only in GlkUtil
Could we distinguish between arrays which are temporary and can be on the stack, and those which must be kept around for later? My understanding is that Span and Memory are for this purpose. So glk_put_buffer would accept a Span, but glk_stream_open_memory would accept Memory.
We could make glk_request_line_event also take Memory, or go one step further: change it completely from the Glk API, to accept an initial string, and then return a string. (Unless you want to use the partial result if glk_cancel_line_event is called...)

Actually a pointer is the clearest way to indicate that an array needs to be pinned in place.

[x] glkunix_fileref_get_name should just return a string. It doesn't make sense in the WASM/JS implementation to return a pointer.
[x] Change to distinct reference types so that we can't mix them up, rather than putting streams, windows etc all under IntPtr.
[x] streamResult needs to be a struct. And functions like glk_select could return a new struct, rather than modifying one that is passed in.
[ ] Several functions should have nullable arguments (particularly for out arguments or streamResult)
[ ] Sort functions

Would there be any issue cleaning up unused IGlk functions?
While most of them don't matter, glk_stream_open_memory in particular seems to be wrong, as it takes a IntPtr buf rather than byte* buf. Or maybe that doesn't really matter for the C interpreters, but I just can't work out how to convert it into an ArraySegment for JS marshalling ;)
For the rest, it would make it slightly smaller an API for us to keep track of. No need for glk_schannel_play if we always use glk_schannel_play_ext instead. Things like that.

Actually some further ideas for IGlk:
Could we make it more of a natural C# API. Things like:

Removing [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1)] from glk_put_buffer etc
I think the len parameter is not actually necessary in glk_put_buffer etc, Perhaps for functions which have a different number of arguments than the actual Glk function we should rename them, just to avoid confusion?

Could we distinguish between arrays which are temporary and can be on the stack, and those which must be kept around for later? My understanding is that Span and Memory are for this purpose. So glk_put_buffer would accept a Span, but glk_stream_open_memory would accept Memory.
We could make glk_request_line_event also take Memory, or go one step further: change it completely from the Glk API, to accept an initial string, and then return a string. (Unless you want to use the partial result if glk_cancel_line_event is called...)
glkunix_fileref_get_name should just return a string. It doesn't make sense in the WASM/JS implementation to return a pointer.

I agree with removing the MarshalAs annotations on IGlk, they are totally redundant there.
As for making IGlk a high(er) level API in general, I'm reluctant. This would mean potentially duplicating the mapping code for each Glk implementation, or adding yet another layer of indirection (a NativeGlkRunner library that handles the translation). I'd rather add more higher-level stuff to GlkUtil and keep IGlk close to the native definitions.

glkunix_fileref_get_name should just return a string. It doesn't make sense in the WASM/JS implementation to return a pointer.

If that's a necessary change then I can do that.

Change to distinct reference types so that we can't mix them up

Agreed, I'll see to that.

streamResult needs to be a struct.

Well, my entire initial implementation was super jank. I didn't need the streamResult, so I only ever pass IntPtr.Zero for it.
As for the entire Span/Memory thing... probably a good idea, but I skimmed through the docs, and most of it went straight over my head, I'm afraid.
glk_stream_open_memory can probably just be removed for now, it's not currently used anywhere. (As discussed here, Adrift5 Blorb files need to be tweaked in order to be valid. I tried to use a memory stream, but Gargoyle doesn't support setting the Blorb map from a memory stream, so now I'm writing it out to a temporary file instead.)

As for making IGlk a high(er) level API in general, I'm reluctant. This would mean potentially duplicating the mapping code for each Glk implementation, or adding yet another layer of indirection (a NativeGlkRunner library that handles the translation). I'd rather add more higher-level stuff to GlkUtil and keep IGlk close to the native definitions.

Sounds good, let's do this.

Well, my entire initial implementation was super jank. I didn't need the streamResult, so I only ever pass IntPtr.Zero for it.

Maybe right for now it could assert/throw if a non-zero pointer is passed in? Just to be safe.

As for the entire Span/Memory thing... probably a good idea, but I skimmed through the docs, and most of it went straight over my head, I'm afraid.

It's a bit over my head too... I'll see if I can get it working.

I tried to use a memory stream, but Gargoyle doesn't support setting the Blorb map from a memory stream, so now I'm writing it out to a temporary file instead.

I assume that's this part:
https://github.com/garglk/garglk/blob/e5802018ae13a4142c78f618c2430c7716d10fa9/garglk/cheapglk/cgblorb.cpp#L52-L58
@cspiegel Could this be changed to accept memory streams?
Or could we just call giblorb_create_map instead?

I've got a pull request at garglk/garglk#759 for memory Blorbs.  I'll continue to test a bit, but I'm making it available for any other testing/reviews for those who are interested.

OK, I've merged it in, so the next major Gargoyle release will support Blorb loading from memory streams.


Dockerization 🐋

Hey,
is it possible/good idea to host in Docker container ? Will be any drawbacks doing that? If no, then i could try to create required files for "dockerization" :)

Hey,
no drawbacks if you're just interested in the OpenRGB related features. However, the Razer Chroma API afaik only accepts connections from its host machine, so the Chroma sink wouldn't work out of the box. The wallpaper sink changes the desktop background of its host machine via local APIs such as User32.dll in case of a windows machine (not implemented yet for any other OS) and cannot be made to work in a Docker image.