Jinja not rendered in rule trigger parameters

I have a rule that i'm trying to define using a cron timer with values from the key/value store.
---
name: full_backup_cron
pack: backups
description: "Executes a full backup on a cron schedule."
enabled: true

trigger:
  type: "core.st2.CronTimer"
  # http://apscheduler.readthedocs.io/en/3.0/modules/triggers/cron.html#api
  parameters:
      timezone: "{{ st2kv.system.backups.full_backup_cron.timezone }}"
      day_of_week: "{{ st2kv.system.backups.full_backup_cron.day_of_week }}"
      hour: "{{ st2kv.system.backups.full_backup_cron.hour }}"
      minute: "{{ st2kv.system.backups.full_backup_cron.minute }}"
      second: "{{ st2kv.system.backups.full_backup_cron.second }}"

action:
  ref: "backups.full_backup"

When i try to register the rule i get the following error in st2api logs.
2017-08-16 21:28:18,008 83527792 AUDIT auth [-] Token with id "59946e2aa814c0066070ade8" is validated.
2017-08-16 21:28:18,020 83527792 ERROR router [-] Failed to call controller function "put" for operation "st2api.controllers.v1.rules:rule_controller.put": '{{ st2kv.system.backups.full_backup_cron.timezone }}'
Traceback (most recent call last):
  File "/opt/stackstorm/st2/lib/python2.7/site-packages/st2common/router.py", line 426, in __call__
    resp = func(**kw)
  File "/opt/stackstorm/st2/lib/python2.7/site-packages/st2api/controllers/v1/rules.py", line 145, in put
    rule_db = RuleAPI.to_model(rule)
  File "/opt/stackstorm/st2/lib/python2.7/site-packages/st2common/models/api/rule.py", line 238, in to_model
    parameters=parameters)
  File "/opt/stackstorm/st2/lib/python2.7/site-packages/st2common/validators/api/reactor.py", line 106, in validate_trigger_parameters
    CronTrigger(**parameters)
  File "/opt/stackstorm/st2/lib/python2.7/site-packages/apscheduler/triggers/cron/__init__.py", line 50, in __init__
    self.timezone = astimezone(timezone)
  File "/opt/stackstorm/st2/lib/python2.7/site-packages/apscheduler/util.py", line 78, in astimezone
    return timezone(obj)
  File "/opt/stackstorm/st2/lib/python2.7/site-packages/pytz/__init__.py", line 181, in timezone
    raise UnknownTimeZoneError(zone)
UnknownTimeZoneError: '{{ st2kv.system.backups.full_backup_cron.timezone }}'
2017-08-16 21:28:18,020 83527792 ERROR error_handling [-] API call failed: '{{ st2kv.system.backups.full_backup_cron.timezone }}'
Traceback (most recent call last):
  File "/opt/stackstorm/st2/lib/python2.7/site-packages/st2common/middleware/error_handling.py", line 46, in __call__
    return self.app(environ, start_response)
  File "/opt/stackstorm/st2/lib/python2.7/site-packages/st2common/router.py", line 472, in as_wsgi
    resp = self(req)
  File "/opt/stackstorm/st2/lib/python2.7/site-packages/st2common/router.py", line 430, in __call__
    raise e
UnknownTimeZoneError: '{{ st2kv.system.backups.full_backup_cron.timezone }}' (_exception_data={},_exception_class='UnknownTimeZoneError',_exception_message="'{{ st2kv.system.backups.full_backup_cron.timezone }}'")
2017-08-16 21:28:18,021 83527792 INFO logging [-] b1a61d2e-ad0c-4776-b680-dab9240ba8d0 - 500 46 14.663ms (content_length=46,request_id='b1a61d2e-ad0c-4776-b680-dab9240ba8d0',runtime=14.663,remote_addr='<IP_ADDRESS>',status=500,method='PUT',path='/v1/rules/5994ea75a814c02ce9813285')

@nmaludy Interesting. We don't resolve jinja aprior because some of those parameters for the rule can come from the payload of incoming trigger. Looks like we need to do jinja resolution prior to registration and prior to "enforcing" the rule. I am looking into this but wanted to ack that I see the same stack trace.

@lakshmi-kannan
Use case, and why this originated:
I wrote (and still am in the process of finalizing) a pack that performs a backup of StackStorm. I would really love to publish this on the exchange, but in doing so i'm going to need to make an "executive decision" as to what cron schedule the backup should be performed on. If the user downloads/installs this pack and modifies the rule manually, then the next update they do will overwrite this change back to the value in the pack from exchange.
Ideally what i would like to do is store this information in either a config option or datastore key/value. Then, the user can install the pack and either update a config and/or a datastore key/value to set their schedule. Now, when the pack is update it will maintain the schedule the user wants for their backups.
This happens to be a common pattern not just for backups, but for several other (currently 6 on my plate) scheduled/cron tasks that i am working on.

@nmaludy
What is your expectations on changing config or KV parameters used in the rules for triggers?
Would it be confusing to you if you changed KV and find that the trigger parameters have not updated?
Will you easily find the current acting  values of trigger parameters?
Will you know what to do for the new KV or config parameters to take effect?
cc @lakshmi-kannan - we want to clear our concerns with potential confusion the JINJA parameters may cause so best it to hear from the real user :)
Thanks!

@dzimine @lakshmi-kannan
Q: What is your expectations on changing config or KV parameters used in the rules for triggers?
A: I think it's reasonable to treat this similar to loading/reloading config values for actions. Recently we added a note to many of the pack README files to say something along the lines of "when changing values in the config, please make sure to run an st2ctl reload --register-all". If we document this properly, i think the confusion would be minimized.
Q: Would it be confusing to you if you changed KV and find that the trigger parameters have not updated?
A: I don't think so, as long as it's documented properly. Trying to think about how to implement this by "automatically discovering", and you would have to either do it on a polling basis (easy, but semi-painful), or some magic with dependency graphs that know to update certain rules when specific K/V change (hard).
Q: Will you easily find the current acting values of trigger parameters?
A: If the current values are rendered in st2 rule get xxx i don't think it would be to difficult to diagnose. Also would be interesting if this could show what Jinja they're rendered from, to differentiate them in some way from "static values" (not a requirement, but just a thought)?
Q: Will you know what to do for the new KV or config parameters to take effect?
A: Again, i think this is a documentation and/or training piece if it's not handled in an automatic way.

Still an issue

Still an issue.


setAccessibleMode is actually called setAccessibleIOS

...and does not return this.

true, I will check

I have fixed both issues on master


Dial failing for dns4/dnsaddr multiaddrs

I have a peer that I can dial by IP, but not by DNS hostname.  I have tried both /dns4/ and /dnsaddr/ and get the same error in libp2p-switch/src/dial.js.
Does js-libp2p not support DNS multiaddrs?  Or is this a bug?
Here is output showing the program works correctly when given an /ip4/ multiaddr:
$ node js-dht-test/index.js /ip4/<IP_ADDRESS>/tcp/9876/ipfs/QmZ5adxeh2GnafXdbHgUFveEKJX5pWihGhBEQMWbFNHE34
Connecting to: /ip4/<IP_ADDRESS>/tcp/9876/ipfs/QmZ5adxeh2GnafXdbHgUFveEKJX5pWihGhBEQMWbFNHE34
Local node QmXLxtry1x9k2wjXfWQnM2JqFc6hAw4SCTsyd68kRUtM4m is providing QmTp9VkYvnHyrqKQuFPiuZkiX9gPcqj6x5LJ1rmWuSySnL
Remote node QmZ5adxeh2GnafXdbHgUFveEKJX5pWihGhBEQMWbFNHE34 is providing zb2rhXqLbdjpXnJG99QsjM6Nc6xaDKgEr2FfugDJynE7H2NR6

But the same program fails with a /dns4/ multiaddr:
$ node js-dht-test/index.js /dns4/libp2p-bootstrap.goelzer.io/tcp/9876/ipfs/QmcUMtJVQWzc1RGPG2VeC1fvtBw1DZu92er4URFM2m546x
Connecting to: /dns4/libp2p-bootstrap.goelzer.io/tcp/9876/ipfs/QmcUMtJVQWzc1RGPG2VeC1fvtBw1DZu92er4URFM2m546x
/home/mike/libp2p-demo-go-js-rust/js-dht-test/index.js:68
    if (err) { throw err }
               ^

Error: Circuit not enabled and all transports failed to dial peer QmcUMtJVQWzc1RGPG2VeC1fvtBw1DZu92er4URFM2m546x!
    at nextTransport (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:365:27)
    at Dialer._attemptDial (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:390:5)
    at waterfall (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:190:14)
    at nextTask (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/async/waterfall.js:16:14)
    at exports.default (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/async/waterfall.js:26:5)
    at Dialer._createBaseConnection (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:188:5)
    at waterfall (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:135:14)
    at nextTask (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/async/waterfall.js:16:14)
    at exports.default (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/async/waterfall.js:26:5)
    at Dialer._establishConnection (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:132:5)

And also fails with a /dnsaddr/ multiaddr:
$ node js-dht-test/index.js /dnsaddr/libp2p-bootstrap.goelzer.io/tcp/9876/ipfs/QmcUMtJVQWzc1RGPG2VeC1fvtBw1DZu92er4URFM2m546x
Connecting to: /dnsaddr/libp2p-bootstrap.goelzer.io/tcp/9876/ipfs/QmcUMtJVQWzc1RGPG2VeC1fvtBw1DZu92er4URFM2m546x
/home/mike/libp2p-demo-go-js-rust/js-dht-test/index.js:68
    if (err) { throw err }
               ^

Error: Circuit not enabled and all transports failed to dial peer QmcUMtJVQWzc1RGPG2VeC1fvtBw1DZu92er4URFM2m546x!
    at nextTransport (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:365:27)
    at Dialer._attemptDial (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:390:5)
    at waterfall (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:190:14)
    at nextTask (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/async/waterfall.js:16:14)
    at exports.default (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/async/waterfall.js:26:5)
    at Dialer._createBaseConnection (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:188:5)
    at waterfall (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:135:14)
    at nextTask (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/async/waterfall.js:16:14)
    at exports.default (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/async/waterfall.js:26:5)
    at Dialer._establishConnection (/home/mike/libp2p-demo-go-js-rust/js-dht-test/node_modules/libp2p-switch/src/dial.js:132:5)

libp2p-bootstrap.goelzer.io and <IP_ADDRESS> are the same server.  Full source code of the test program is here:  github.com/mgoelzer/libp2p-demo-go-js-rust/tree/jhiesey-dht-interop/js-dht-test
/ cc @jacobheun @vasco-santos (would know if js-libp2p is even expected to support dns multiaddrs)
/ cc @jhiesey (for interest)

Yes, there is a known issue with the tcp transport not being able to dial dns addresses. https://github.com/libp2p/js-libp2p-tcp/issues/95

@jacobheun Thanks for taking a look.
Closing this as a dup of https://github.com/libp2p/js-libp2p-tcp/issues/95.


How to specify which objects to manipulate in pick and move tasks

Hi,
I was wondering how can I specify which object(s) to manipulate in the pick objects and move A to B tasks? Based on my understanding of the code, the candidate set of possible objects are defined like here. Then I should change the options input to the reset function to specify which object(s) to use in the environment. Is my understanding correct? Thanks!

The two envs have different initialization mechanisms. move A to B uses episode-based randomization, so you can do so by passing in episode_id like https://github.com/simpler-env/SimplerEnv/blob/0b13b698138576c449f8853c99b04202e3c04952/simpler_env/evaluation/maniskill2_evaluator.py#L82 . For pick objects , you can do so by passing in different seeds in the options

Thanks a lot! A further question is that it seems that only a subset of objects or triplets of objects are used for the pick and move tasks (like here and here). I was wondering that how are these task configurations chosen? Are they chosen to reflect the objects that are seen in the OXE demos? If that's the case, can I add more configurations to test out-of-distribution generalization to unseen objects or triplets in OXE? Thanks!

These are not necessarily seen by OXE demos; they are just randomly chosen.

Where can I find a full list of all the possible objects supported in simpler for picking and moving tasks then?

Checkout these json files at https://github.com/simpler-env/ManiSkill2_real2sim/tree/cd45dd27dc6bb26d048cb6570cdab4e3f935cc37/data/custom which are loaded in the envs


pjax.click work twice

use standart code from docs
   if ($.support.pjax) {
        $(document).on("click", "#load-data", function(e) {
            var container = $(this).closest("[data-pjax-container]");;
            $.pjax.click(e, {container: container, push: false});
         });
    };

i see that request sendig twice.
First from my anonimus function

Second from jquery.pjax.js:47

did you try to add return false to the anonymous function?

@yahorosh what do you want this click for? if you want to submit a form, you can try @kmmbvnr solution. don't forget to add preventDefault.

Sorry, there is not enough information given here for us to be able to provide any advice. It sounds like this might be a problem with usage of this project, and not a bug in our code. If you do think this is a bug, please reopen this and provide more information, such as steps to reproduce. Thank you!


Support underscored versions of video player callback methods

Registering a callback handler for video player events (e.g. OnUSharpVideoPlay) currently requires that the receiver methods are set up in a way that remote malicious clients can call SendCustomNetworkEvent on them.  For additional security it would be great if underscored versions of the callbacks (e.g. _OnUSharpVideoPlay) could be supported.

USharpVideo could mangle those events but it wouldn't provide much benefit since the video player itself doesn't mangle its public API so if someone wants to abuse the video player they'd just abuse the actual video player instead of whatever is hooked for callbacks. You may want to consider using a different video player if you're looking for having the API mangled to prevent the rare case of someone spamming network events on things they shouldn't.


Notebook - Insert Link when linking to parent's parent folder gets inadvertently updated (and not working)

Azure Data Studio Version:
Version: 1.31.0-insider (user setup)
Commit: 5fa53c3519eb0ad6b6b4fd815a2336133cc1fb99
Date: 2021-06-29T05:47:05.813Z
VS Code: 1.56.0
Electron: 12.0.4
Chrome: 89.0.4389.114
Node.js: 14.16.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19043

Steps to Reproduce:

Save the SQL 2019 BDC notebook locally.
Create a folder inside diagnose, call it julie. Create a new notebook file inside diagnose/julie.
Create a link to  C:\Temp\SQL2019BDC\sqlserver2019\content\troubleshooters\tsg100-troubleshoot-bdc.ipynb using Insert Link in WYSIWYG mode.

Note: this path must be a full path and must be at least two parents above where your current notebook is. The way I did this was via right click > Copy Full Path from the target notebook. See the gif below.
My home folder for the SQL 2019 BDC is C:\Temp\SQL2019BDC, so to repro this you need to update C:\Temp\SQL2019BDC to where you store your SQL2019BDC.

Once Insert Link is created it looks proper, i.e. ..\..\troubleshooters\tsg100-troubleshoot-bdc.ipynb.
Create a new link (with the target link to C:\Temp\SQL2019BDC\sqlserver2019\content\troubleshooters\tsg100-troubleshoot-bdc.ipynb) using Insert Link in WYSIWYG mode again. The first link that got created from step 4 will get updated to: .\....\troubleshooters\tsg100-troubleshoot-bdc.ipynb; the second link is still OK, i.e. ..\..\troubleshooters\tsg100-troubleshoot-bdc.ipynb.

Note: this second link's path must be a full path and must be at least two parents above where your current notebook is, just like the instruction on step 3 above.

Here's an example of what it looks like after Step 5.
| Updates | Comment | Read | Video |
| --- | --- | --- | --- |
| 1\. TSG101 | more robust | [how to](.\....\troubleshooters\tsg100-troubleshoot-bdc.ipynb)
 |  |
| 2\. TSG036 | test | [how to](..\log-analyzers\tsg036-get-controller-logs.ipynb#steps)
 | [test](https://docs.microsoft.com/en-us/sql/azure-data-studio/notebooks/notebooks-guidance?view=sql-server-ver15) |
| 3\. TSG046 | more robust | [how to](..\..\troubleshooters\tsg100-troubleshoot-bdc.ipynb)
 | [TEST](https://docs.microsoft.com/en-us/sql/azure-data-studio/notebooks/notebooks-guidance?view=sql-server-ver15) |
|  |  |  |  |

Note: to clarify Insert Link in WYSIWYG looks like this:

I'm currently blocked when creating a link to parent's parent file, because using Insert Link does not work and causes bad URI format, and creating a relative path also does not work (ADS shows an error) - see below comment.

Does this issue occur when all extensions are disabled?: Yes/No

Note that both links, i.e .\....\troubleshooters\tsg100-troubleshoot-bdc.ipynb and ..\..\troubleshooters\tsg100-troubleshoot-bdc.ipynb that Insert Link created does not work. I got these errors (the message looks the same even though the paths are different):

Same issue happens on this version too:
Version: 1.30.0 (user setup)
Commit: 59c4b8e90cf2d3a24bed72623197f10f8d090fdc
Date: 2021-06-16T19:04:08.858Z
VS Code: 1.53.0
Electron: 11.2.2
Chrome: 87.0.4280.141
Node.js: 12.18.3
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19043

From my research, this  appears to be a bug caused by document.execCommand('insertHTML'), which is not handled on the ADS side, the escaped URL and name are formed correctly when they are passed into the command but the result in the HTML doc is not correct. also every subsequent insertion of the URL causes the dots in the previous URLS to increment by 1.

Also apparently the way URLs are parsed in the notebook is that the URL has to be entered in a specific way: file://~sqlserver2019\content\troubleshooters\tsg100-troubleshoot-bdc.ipynb unlike web addresses.

@MsSQLGirl As of right now, it appears that only relative paths, in regard to the current notebook's directory are supported in the notebook editor.
Copying and pasting the local file URL is not supported right now by the code.
So essentially instead of entering: "~sqlserver2019\content\troubleshooters\tsg100-troubleshoot-bdc.ipynb", you have to enter: "....\troubleshooters\tsg100-troubleshoot-bdc.ipynb" instead, which is not very intuitive for the average user.

I did use the full path i.e. "C:\Temp\SQL2019BDC\sqlserver2019\content\troubleshooters\tsg100-troubleshoot-bdc.ipynb".
Apologies that the way I described it earlier was confusing / misleading.

Note:
The Insert Link feature as shown below is supposed to translate full path to a relative path since 2 versions ago. @VasuBhog, can you please keep me honest? :)

Please review the start of this thread as I have updated with clarifying details to describe the repro and where I'm blocked. Let me know if you have any questions :)
Thank you!

I was not able to reproduce this issue when using the provided Sql Server 2019 Guide built into ADS, it initially replicated what you saw, but after a few tries and restarts, it didn't reproduce anymore.
What I did was that:

I opened the TSG100, clicked save as and saved it into the same location.
Created a new file in diagnose/julie with the same name as yours and then tried to add links via highlighting or entering, and they came out correct one after the other.

This led to the same problem you were seeing until it no longer happened after a while. (I'm running this via the debugger).

Can you please confirm that the following target links work for you? (manually created)
....\troubleshooters\tsg100-troubleshoot-bdc.ipynb

Can you please share the markdown path that the Insert Link WYSIWYG mode generates after you paste the full path, i.e your equivalent path to my C:\Temp\SQL2019BDC\sqlserver2019\content\troubleshooters\tsg100-troubleshoot-bdc.ipynb full path?

Note:
The Insert Link feature as shown below is supposed to translate full path to a relative path since 2 versions ago. @VasuBhog, can you please keep me honest? :)

Yes, you are correct the full path does convert to the relative path. I currently did all the repro steps in my latest development/Insiders/Stable (on Mac) and I do not see the issue:

Will be testing on Windows as well, as this might be targeted just for Windows.  @smartguest were you using windows as well?

Yes that is correct, I am debugging on Windows.

@MsSQLGirl Upon testing it again, opening both files with "open file" on ADS, the link is broken again for both of them (with the additional dots appearing on the previous links if you add another link), The link with ....\troubleshooters\tsg100-troubleshoot-bdc.ipynb doesn't work.
However, if you "save as" the "tsg-100-troubleshoot-bdc.ipynb" file in the same place, then add the link to the code, it resolves fine no matter how many duplicate links you add and the ....\troubleshooters\tsg100-troubleshoot-bdc.ipynb link works.
My path resolves to (without "save as") for the correct path above: <user_folder>\azuredatastudio.build\builtInExtensions\Microsoft.sqlservernotebook.build\builtInExtensions\Microsoft.sqlservernotebook\books\sqlserver2019\content\diagnose\julie....\troubleshooters\tsg100-troubleshoot-bdc.ipynb
With the save as, the same path correctly opens up the file. Guess this must be a context file access issue.

There needs to be a way to preserve the file access even after the editor window is closed, at the moment its only temporary and can easily be broken if markdown mode is clicked on.

Yeah, will investigate this further as it must have to do with our link callout dialog/markdown converter.

Thanks @smartguest and @VasuBhog for investigating this.
Yes, you're right, I do switch from markdown and WYSIWYG a lot when editing.

Folks, I updated the first comment with the following to ensure that we are on the same page that it turns out we have two issues here:

Update on 7/2/2021:
Issues described in this bug:

Insert Link GUI does not work as expected as described below.
Creating link to parent's (grand parent's) notebooks/files don't work either. URI doesn't get parsed properly.

Approved in shiproom


group.delete() fails

delete() method seems not to be implemented
TypeError                                 Traceback (most recent call last)
Cell In[33], [line 3](vscode-notebook-cell:?execution_count=33&line=3)
      [1](vscode-notebook-cell:?execution_count=33&line=1) groups=pbi.client.groups(filter="name eq 'customer3'")
      [2](vscode-notebook-cell:?execution_count=33&line=2) group=groups[0]
----> [3](vscode-notebook-cell:?execution_count=33&line=3) group.delete()

TypeError: RequestsMixin.delete() missing 2 required positional arguments: 'resource' and 'session'

Try using the PowerBI.delete_group() method on the Power BI client, something like pbi.delete_group(groups[0]) should do it. Let me know if that works.
I think this is a side effect of providing customized requests functionality through a Mixin. Will have a think about how to address.

See mentioned workaround. To be resolved in #13. Closing.

Now addressed in v2.8.2


Change default branch from master to main

Following the merge of #32
Change default branch from master to main. For more info see pysal/libpysal#353.

Complete on 2022-12-02.


'ip' command compatibility and much quicker external IP detection

Ok this is ready to merge :+1:
/cc @robbyrussell


Can sign transaction with 0 balance and send to Auction House (should be a balance validation)

Hi! There is a bug i logged in Status repo and our developers are saying you are able ti fix it :) Please take a look https://github.com/status-im/status-react/issues/3441
Thanks!

After an investigation it was found that problem is on our side. Closing this issue.


can't recognize layout-mdpi dir

how can i expand codegenerator to recognise layout-xx dir?

This is not available. But anyway, if you want to use specific 'layout-xx' dir you also need to have 'layout' folder, and respective files needs to have the same view ids for the activity to work. So there is no need for the plugin to work for different folders then 'layout'.
Does that sound logical, or you have some other problems?


[OR] Primary source screenshots obscured by lightbox

The primary source screenshots for OR are obscured by a lightbox. Is there any workaround for that?
 Front conversations

This should be fixed now - will check with the next screenshot script run

Fantastic! Looks much better at https://covid-tracking-project-data.s3.us-east-1.amazonaws.com/state_screenshots/OR/OR-20200728-062233.png


Point system

It would be nice to have a point system instead of money.
It would be for the player to position themselves on top of the block, instead of generating money to give them points and when the game ends the player with more points is rewarded with an amount of money.

I think the main issue to implement this is that the game does not have a fixed end or start time, it's basically running forever. One way I could imagine would be to setup a timer, such as every 5 minutes, the player with the most points gets a money reward.


Fork dialogs with goals and free up movement - CH5

Free up movement throughout chapter 5
Fork some dialogs with goals
Add a new error message for Chapter 5
Add boolean pacifists param to spawnHeroes functions in CH5 which applies pacifist modifier to each spawned unit immediately when true

Other:

Fixed chapter 2 courier section Move to shop goal not completing

Todo:

Issues mentioned in #445
Path particle can be weird if player moves too far from the intermediate point, didn't find a good way to handle it

Looks good and played well. I noticed I can stun roshan, maybe it could bug out when he runs back and we stun during it? Idk if he will keep running then after the stun.

Tested this now, stunned him once during killing heroes to break the spell block, then again when he was walking back to the Pit with lvl 3 Dragon Tail, he seemed to recover and next section started when he arrived at the location as expected.

Using non-normalized enums now again cause of bugs with the normalized ones. Pull master, npm install again and then replace all the enums.


Reset browser state between tests?

Hello, I noticed that the state of the browser/page remains between tests (it).
AFAIK the common practice is to have each it independent so running a single it or all of them are guaranteed to give the same result.
I can imagine though that one could want to execute multiple it to cover a single scenario with a describe. So I'm curious to know if the current behaviour is actually intended.

I prefer to let the user decide, you can put a "before" or a "beforeEach" and reset what you need.

Has this feature been created.. I am having the same issues in an angular app

Yes https://github.com/smooth-code/jest-puppeteer#globaljestpuppeteerresetpage


[implot] Update to 0.11

Update the Implot port from 0.9 to 0.11.
Changelogs :
https://github.com/epezent/implot/releases/tag/v0.10
https://github.com/epezent/implot/releases/tag/v0.11

@RT222 ,Thanks for your pr


[Feature Request] PEP 613 typing.TypeAlias support (...but officially deprecated, so may never happen)

I was hoping to adopt beartype (version 0.17.2), but I found PEP 613's typing.TypeAlias is not yet supported. I am using Python 3.12:
from typing import TypeAlias

MyID: TypeAlias = str

Running this with beartype will lead to this traceback:
  File "/Users/user/code/repo/mypackage/a.py", line 3, in <module>
    MyID: TypeAlias = str
  File "/Users/user/code/repo/venv/lib/python3.12/site-packages/beartype/door/_doorcheck.py", line 97, in die_if_unbearable
    func_raiser = make_func_raiser(hint, conf)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  ...
  File "/Users/user/code/repo/venv/lib/python3.12/site-packages/beartype/_check/code/codemake.py", line 706, in make_check_expr
    die_if_hint_pep_unsupported(
  File "/Users/user/code/repo/venv/lib/python3.12/site-packages/beartype/_util/hint/pep/utilpeptest.py", line 218, in die_if_hint_pep_unsupported
    raise BeartypeDecorHintPepUnsupportedException(
beartype.roar.BeartypeDecorHintPepUnsupportedException: Die_if_unbearable() or is_bearable() type hint typing.TypeAlias currently unsupported by @beartype.

The request is, can beartype support TypeAlias?
https://github.com/beartype/beartype/issues/297 is related, but it's for PEP695 type aliases, so this request is for explicit TypeAlias.

...heh. I was kinda wondering if PEP 613 was ever going to come up. Sadly, it came up a bit too late. PEP 695 (i.e., type aliases under Python ≥ 3.12), which @beartype more-or-less fully supports, officially deprecates PEP 613:

We propose to deprecate the existing typing.TypeAlias introduced in PEP 613. The new syntax eliminates its need entirely.

This puts @beartype in a bit of an awkward position. Technically, @beartype could now add support for obsolete deprecated PEPs like PEP 613. Pragmatically, is adding support for obsolete deprecated PEPs really a good idea or a sound investment of scarce open-source volunteer hours? Probably...
...not. You know? Instead, @beartype should just valiantly forge ahead with features everybody wants like deep type-checking of dict and set containers. Time is scarce, life is fleeting, and my face is a rictus grin. I definitely wish I had sufficient man-hours to hurl at literally every single PEP – even obsolete deprecated PEPs like this. I love supporting PEPs! This is fun for me. But I've only got so many keyboards and fingers.
Sucks, huh? I know. Your pain is my pain. Okay. It's not. You feel more pain about this than I do. Still, I am sad. :crying_cat_face:

...heh. I just remembered that Quebec bear bro @felixchenier cleverly invented a workaround under Python < 3.12. If you'd rather not refactor deprecated PEP 613 type aliases into supported PEP 695 type aliases, fear not! @beartype still supports your use case with PEP 484 type aliases everywhere – including under Python < 3.12.
Feast your weary eyes on this shadow madness:
# This actually works. Hard to believe. Yet, it's all true. Probably. Maybe.
from beartype import beartype
from typing import NewType

# Type alias for a list of strings. Pretty cool, huh? Don't answer that.
list_of_strs = NewType('list_of_strs', list[str])

@beartype
def some_func(some_arg: list_of_strs) -> None:
    print(some_arg)

some_func(['This can't possibly work...', '...yet, it does!'])

...which prints:
['This can't possibly work...', '...yet, it does!']

In other words, @beartype already does everything you want – albeit not quite in the way that you want it to. Still, I party. :partying_face:

Sounds good, yeah I guess TypeAlias will be deprecated over coming few years, one less import too.
One thing to note is mypy==1.8 doesn't yet support PEP 695 type aliases: https://github.com/python/mypy/issues/15238
Feel free to close this out

Wow. Wow. @beartype actually got out ahead of mypy on something, huh? First time that's happened. Probably the last, too. Tonight, I celebrate by playing video games.
Thanks for being so understanding. Would you mind if I keep this open for a bit? If nothing else, @beartype should at least emit a DeprecatingWarning about TypeAlias being deprecated by PEP 695. Please accept this gold trophy for reminding me that I should do this. :trophy:

Ha congratulations on beating mypy. I think a message instructing to use PEP 695 type aliases (and Python>=3.12) is fine.
If beartype supports PEP 695 type aliases, I am wondering if there's some way for beartype to pretend the PEP 613 TypeAlias had been a PEP 695 type alias from the start. In other words, it may be a minor lift for PEP 613 type alias to use PEP 695's back end representation and logic.

...huh. Didn't think of that one. That's super clever and possibly feasible. The issue, of course, is that sort of ruse would only work under Python ≥ 3.12. Under Python ≤ 3.11, behaviour becomes undefined. Still, I'm all for ruses.
Actually, we can do something under Python ≤ 3.11. It's a bit absurd, but the archaic PEP 484 typing.NewType factory is actually an undocumented technology for defining type aliases at runtime. @beartype fully supports it. So, @beartype could (in order):

Emit a DeprecationWarning. Even if we do this internal masquerade on everyone's behalf, users should still be informed that TypeAlias has been deprecated. Right? Deprecated things eventually get dragged behind the shed out back and disappeared into a hole in the ground.
Under:

Python ≥ 3.12, silently convert PEP 613 type aliases to PEP 695 type aliases. A joyful utopia is in sight.
Python ≤ 3.11, silently convert PEP 613 type aliases to PEP 484 NewType-style type aliases. This is horrible.

Now, let's see if @leycec does anything other than play video games. :rofl: :sob:

Resolved by 6c2733e. @beartype now graciously emits exactly one deprecation warning for each Python process that encounters a typing.TypeAlias type hint. Why one? Because the warning is insane. You do not want to see this warning more than once. Even seeing this warning once could make you question your already tenuous grip on Pythonic sanity:
BeartypeDecorHintPep613DeprecationWarning: PEP 613 type hint
typing.TypeAlias deprecated by PEP 695. Consider either:
* Requiring Python >= 3.12 and refactoring PEP 613 type aliases into
  PEP 695 type aliases.
    # Instead of this...
    from typing import TypeAlias
    alias_name: TypeAlias = alias_value

    # ..."just" do this.
    type alias_name = alias_value
* Refactoring PEP 613 type aliases into PEP 484 "typing.NewType"-based
  type aliases. Note that static type-checkers (e.g., mypy, pyright,
  Pyre) will hate you for this: e.g.,
    # Instead of this...
    from typing import TypeAlias
    alias_name: TypeAlias = alias_value

    # ..."just" do this.
    from typing import NewType
    alias_name = NewType("alias_name", alias_value)

Combine the above two approaches via The Ultimate Type Alias (TUTA),
a hidden ninja technique that supports all Python versions and static
type-checkers but may cause coworker heads to pop off like in that one
Kingsman scene:
    # Instead of this...
    from typing import TypeAlias
    alias_name: TypeAlias = alias_value

    # ..."just" do this. If you think this sucks, know that you are not alone.
    from typing import TYPE_CHECKING, NewType, TypeAlias  # <-- sus af
    from sys import version_info  # <-- code just got real
    if TYPE_CHECKING:  # <-- if static type-checking, then PEP 613
        alias_name: TypeAlias = alias_value  # <-- grimdark coding style
    elif version_info >= (3, 12):  # <-- if Python >= 3.12, then PEP 695
        exec("type alias_name = alias_value")  # <-- eldritch abomination
    else:  # <-- if Python < 3.12, then PEP 484
        alias_name = NewType("alias_name", alias_value)  # <-- coworker gives up here

#JustBeartypeThings. Feels like this should be a hashtag, if I even knew what hashtags were. :smiling_face_with_tear:


Dragging Cell Indicator - Native Notebook Editor

Steps to reproduce:

Drag a cell to 2nd to last position in notebook - take note of blue line location
Drag a cell to last position in notebook - take note of blue line location

Actual Behavior:
Blue line for the different locations above are in the same place (above print(one_hot_score) cell)
Expected Behavior:
When moving cell to last position in notebook, blue line should be below the last cell.

I think this was fixed with other dnd changes, I can't repro anymore


 Found when running npm test locally.
cc @GoodBoyDigital

FYI #3280


Replace use of UIKit icons with new Decipher React component based icons.

Blocked by #144
Once the Decipher Icons have been implemented as a React-component based icon library, the project should be refactored to replace all existing UIKit icons with our custom icons. This also needs to include the functionality that allows selection of an icon via an arbitrary string in the JSON files defining a dashboard. Currently this functions based on string interpolation injecting a UIKit icon classname, but this won't work for our custom icons.

Duplicate of #578


Splitted fixtures in base and sandbox

@rogergros Please check

why base and sandbox? all fixtures are mostly specific to a store no?

Base = Clean installation. Basic fixtures.
Sandbox = Install some extra fixtures for a Sandbox.

The other changes are ok for me :+1:

ping @rogergros
Is this PR still valid?

I don't think so. We should check that again.


Add Author, Description and WorldSeed settings

Author and description for /tc worldinfo console command and WorldSeed for Forge world creation menu.
Now if only I could figure out how to add more than 1 commit to a fork before creating a pull request, doh ><. More changes incoming..

Thanks, merged!
Using the Github web interface, you can only modify one file. You can download the Github desktop client (for Windows and Mac OS X). It's a nice program that saves you from learning Git commands and it also includes a tutorial. The end result is that it works a bit like Dropbox, but then you have to sync everything manually.


How does the .cer get Bigint

In Java I use the following method to get the public key:
public PublicKey getPublicKey(InputStream in) {         try {             try {                 CertificateFactory certificateFactory = CertificateFactory                         .getInstance("X.509");                 Certificate certificate = certificateFactory.generateCertificate(in);                 return certificate.getPublicKey();             } finally {                 if (in != null) in.close();             }         } catch (Exception e) {             throw new RuntimeException("init exception", e);         }     }
Here is a file stream，What should I do，thanks

There's a package  on pub.dev for that.


Fix index re-use, i vs j, and lower bound of 0 vs 1.

In the derivation of expected value in section 1.6, the variable "i" was used twice, but one of the xs was x_j.  Also, the products went from 0 to N, inclusive on both ends, while the rest of the text used 1 to N.  I've fixed those here.

We will not be accepting pull requests from non-staff in this course.


core: #Mount supports inline file

It was really painful to mount a simple file using type: fs because it creates some verbose intermediate step.
With this update, it is not possible to directly mount a file as string.
Signed-off-by: Vasek - Tom C<EMAIL_ADDRESS>

/cc @helderco @sipsma
This is not really "mounting", but I agree it's a major convenience. IIRC @jpadams was helping someone affected by this very issue (attempting to mount a file)

It looks like this does follow the semantics of mounting, eg. the mounted file will no longer exist after exec. Is this correct?
Why not do this in CUE, in docker.#Run?

I like the convenience of this, but agree that this seems like something we should be able to do in Cue without having to make a separate task for it. We already have a way of turning a string into core.#FS via core.#WriteFile, so it feels like there should be a way to create a cue definition that adapts #WriteFile to a #Mount, but in trying quickly just now I couldn't find a way to make it work. Maybe someone else has ideas though.
If there's no way to do that right now then LGTM, I'd rather users have the convenience of this than block it because it feels like there should be a different way.

Since the mounts are set in core.#Exec we'd have to nest a core action inside another which I think we can't do. Even if we could, the mounts disjunction seems impossible because you want the user to set
type: "file"
contents: string

But in Go, it needs to be
type: "fs"
contents: dagger.#FS

Even doing it in docker.#Run doesn't make it easier. So there's a conflict that's easier solved by just doing this in Go.

there should be a way to create a cue definition that adapts #WriteFile to a #Mount, but in trying quickly just now I couldn't find a way to make it work. Maybe someone else has ideas though.

I tried a lot of combinaison but it was not possible, as Helder said :

Since the mounts are set in core.#Exec we'd have to nest a core action inside another which I think we can't do. Even if we could, the mounts disjunction seems impossible because you want the user to set

It looks like this does follow the semantics of mounting, eg. the mounted file will no longer exist after exec. Is this correct?

Since it uses llb.AddMount, yes, the logic is the same. Would you want a test to be sure?

there should be a way to create a cue definition that adapts #WriteFile to a #Mount, but in trying quickly just now I couldn't find a way to make it work. Maybe someone else has ideas though.

I tried a lot of combinaison but it was not possible, as Helder said :

Since the mounts are set in core.#Exec we'd have to nest a core action inside another which I think we can't do. Even if we could, the mounts disjunction seems impossible because you want the user to set

I don't think we need to do it in core. As I said above, we can start by doing it in docker.#Run (similar to export which has no core implementation). The door is still open to a core implementation later, but we don't have to go through it right away IMO.

I don't think we need to do it in core. As I said above, we can start by doing it in docker.#Run (similar to export which has no core implementation). The door is still open to a core implementation later, but we don't have to go through it right away IMO

Okay but then how would you do that? Adding a field files in docker Run to specially mount a file? Or Is it possible to extends #Mount in docker.#Run without complexity?
My concerns is that if we add a new field now, it will be hard to remove it later. On the other side extending #Mount is quite simple.
Tbh, if it requires a new field in docker.#Run, I'm against.
I just fear that it become complex for nothing, export has no core implementation but the internal is ugly and we had to find workarounds to make it usable.
I'll open a PR tomorrow to mounts file from docker.#Run and we'll see what is possible, maybe we can just extends #Mounts

I'll open a PR tomorrow to mounts file from docker.#Run and we'll see what is possible

I don't think you'll be able to extend the mount from there. For one, how do you add to the disjunction? Secondly, you still have the same conflict with type/contents fields.
The only thing I can think of right now would be another field that then passes the correct mount to #Exec, but this doesn't sound like a clean API even though it would be a better reflection of what's actually going on.

I have updated the PR to latest change, what we decide with this one?
There is no clean way to add it to docker.#Run, that can be done by adding a new field but IMO it will be harder to change the API after that.
/cc @aluzzardi @sipsma @shykes @helderco

I defer to @helderco

I agree that it would be better to abstract this in docker.#Run. Let me try a quick POC and if unsuccessful, then let's push this.

I agree that it would be better to abstract this in docker.#Run. I've tried a quick POC for a solution for adding to the existing mounts. Basically we'd have to redefine a new docker.#Mount with supported mount types, but we can refactor core.#Mount to reduce duplication.
//
// CORE
//

#Mount: {
	dest: string
	type: string

	#CacheMount | #TmpMount
}

#CacheMount: {
    type: "cache"
    contents: #CacheDir
}

#TmpMount: {
    type: "tmp"
    contents: #TempDir
}

#CacheDir: {
	id:          string
	concurrency: *"shared" | "private" | "locked"
}

#TempDir: {
	size: int64 | *0
}

#Exec: {
    mounts: [string]: #Mount
}

//
// DOCKER
//

#RunMount: {
    dest: string
    type: string

    #CacheMount | #TmpMount | #FileMount
}

#FileMount: {
    type: "file"
    contents: string
}

#Run: {
    mounts: [string]: #RunMount

    _fileMounts: {
        for mount, cfg in mounts {
            if cfg.type == "file" {
                (mount): {
                    dest: cfg.dest
                    contents: #CacheDir & {
                        id: "imagine-fs-here--\(cfg.contents)"
                    }
                }
            }
        }
    }

    exec: #Exec & {
        "mounts": {
            for mount, cfg in mounts {
                if cfg.type != "file" {
                    (mount): cfg
                }
            }
            _fileMounts
        }
    }
}

run: #Run & {
    mounts: wat: {
        dest: "/file"
        contents: "wat"
    }
}

// OUTPUT

run: {
	mounts: {
		wat: {
			dest:     "/file"
			contents: "wat"
			type:     "file"
		}
	}
	exec: {
		mounts: {
			wat: {
				dest: "/file"
				contents: {
					id:          "imagine-fs-here--wat"
					concurrency: "shared"
				}
				type: "cache"
			}
		}
	}
}

https://cuelang.org/play/?id=B6QTb2zpG2_L#cue@export@cue
Granted it's much uglier to resort to these loops and conditions, but has a better separation of concerns.
A positive aspect is that the API is the same from docker.#Run point of view, just done in CUE.

But is it worth it?

I think the best way to make a decision is a benchmark, I'll test both solution and see which is the most effective :D

@helderco Thanks for your follow up!

Even though this can be done entirely in CUE in docker.#Run I wonder if the added complexity is worth it for the separation of concerns. API can be the same (implementation detail), except for core.#Exec supporting it as well.

Totally agree, IMO it's not worth and can lead to performance issue / misunderstanding from user because API will be much complex.
I let you merge this one if you think we should.
I will indeed do a follow up PR to implement this new mount where it can be useful.


test_pooling2d fails fairly persistently and stuck with Fp32 Hip All Install gfx1030 stage

[Target]
Identify the cause in SW or HW for gfx1030
[Logs]
http://micimaster.amd.com/blue/organizations/jenkins/MLLibs%2FMIOpen/detail/ci_gfx1030_ocl_to_hip/6/pipeline
[Symptom]
test_pooling2d fails fairly persistently
when failed, the whole test stuck and does not complete (or fail) even after two hours.

Closed as a duplicate of #1141


Differences in experimental results

I trained on my 3090 once, why did the experimental results differ so much.The above result is my own weight evaluation. The following results are the weight evaluation results you provided.

please provide your training parameter

This work was completed in 2021, and I found some experimental results from that time.
Based on my experience, even using the simplest U-Net would be difficult to achieve such poor results.

options.txt
This is my option py. My training command is:python train.py --model_name mono_model

I set batch size=32, num_workers = 8

Try smaller batch_size, such as 8.

Ok, I will try according to your suggestion.

I used numw_work=8, batch_2=8, and an external hard drive. The training time was 26 hours. My experimental results still haven't reached the level you provided. I found that my med is much higher than yours, why is that?

This is strange, but it's been too long and I can't remember the details clearly.
I checked the server that trained the model at that time and found that I had deleted all TensorBoard records.
The good news is that I found that I had set the training epoch to 31 and tested the last 15 weights after the training was completed.
In addition, I found from the backup file opt.json of the configuration parameters left at that time that I seemed to have loaded the weights of the pose network of the previously trained MS model when training the M model. Therefore, my med is relatively low.
I have been busy with another work recently, and I'm sorry that I cannot retest it.

Thank you for your answer, it has been very helpful for my work. I would like to ask how to set the -- scheduler_step_size parameter when you set epoch to 31?

Thank you for your reply.

I hope this helps, and let me know if anything else comes up.


Nested card in card groups are displayed wrong

I have a card-group with nested cards in de card-body of the grouped. This nested card act like they are grouped. Nested card doesn't have a left border or no rounded corner just like the grouped cards.
Maybe adding some > to de card scss. I didn't have the time to figure out the solutions, sorry for that.

I don't think this is the best way. But for now it's a solution:
.card-group {
  .card {
    @include media-breakpoint-up(sm) {
      .card {
        border: $card-border-width solid $card-border-color;
        @include border-radius($card-border-radius);

        &:not(:first-child):not(:last-child):not(:only-child) {
          @include border-radius($card-border-radius);
        }
      }
    }
  }
}

Bug reports must include a live demo of the problem. Per our contributing guidelines, please create a reduced test case via CodePen or JS Bin and report back with your link, Bootstrap version, and specific browser and OS details.

Sorry, here it is: https://codepen.io/jhhazelaar/pen/LOWWKw

Can you update your CodePen to our latest release please ?
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta.2/css/bootstrap.min.css

Still the same issue. Sorry for the incompetence, first time creating an issue

don't worry that's ok :+1:

maybe using .card-group > .card everywhere would be a good solution
@Johann-S what'd you think?

It's seems we try to avoid child selector in Bootstrap 🤔
maybe @andresgalante have ideas on how to fix that ?

Thanks a lot @jhhazelaar for reporting this one.
Hi @Johann-S to me this is a really good case for a child selector, since we want to select just .card child and nothing else.
The other option is to undo the styles for card-group card on nested cards which will add way more specificity and styles. I've send a PR so we can discuss in more concrete ideas


Add AnchorToBottom property to ScrollContainer

Allows for scroll views which start at the end of content and keep their scroll position.

While this works, I'm not 100% confident on the approach.

Closing for now as "not what we want", although I believe this would still be a useful feature to have in the framework. Maybe we can revisit it later.


Obtain a license

https://choosealicense.com/

https://github.com/solomonsoftwarellc/mjc-web/commit/fdf86f77d436bee199e8feb8f2fa14fa51efad04


Defer Research Object Bundle

The creation of the Research Object Bundle is the source of much complexity and delays, but is likely not used by the majority of CWL viewer users.
The CWL viewer should be refactored so that the creation of the RO Bundle does not delay the visualization of the provided workflow. This could even mean that it is not created at all unless requested by the user via an additional click.

Possibly stop making the research object bundle. @stain is there a reason to keep that code?

The WorkflowHub.eu supports the successor to Research Object Bundles, RO-Crate and will even create RO-Crates when one registers a workflow there.
So I propose that we completely remove the "Download as Research Object Bundle" link and all code that supports that and isn't used for another feature.

The Permalink should stay; I think that is still an important feature.


[Page] Sign and Submit: Integrate backend, Enable submission after requirements met

Todo:

[x] Inquire the backend about the endpoint with the confirmation id
[ ] Enable the final checkbox and submit -- once all the other checkboxes above have been checked
[ ] Show success box with confirmation number

We'll be releasing this one after the bug bash next Thursday (November 7th 2024)


feat: upgrade MVAD to v1.1

Related Issues/PRs

#xxx
What changes are proposed in this pull request?
Briefly describe the changes included in this Pull Request.
How is this patch tested?

[ ] I have written tests (not required for typo or doc fix) and confirmed the proposed feature/bug-fix/change works.

Does this PR change any dependencies?

[ ] No. You can skip this section.
[ ] Yes. Make sure the dependencies are resolved correctly, and list changes here.

Does this PR add a new feature? If so, have you added samples on website?

[ ] No. You can skip this section.
[ ] Yes. Make sure you have added samples following below steps.

Find the corresponding markdown file for your new feature in website/docs/documentation folder.
Make sure you choose the correct class estimators/transformers and namespace.
Follow the pattern in markdown file and add another section for your new API, including pyspark, scala (and .NET potentially) samples.
Make sure the DocTable points to correct API link.
Navigate to website folder, and run yarn run start to make sure the website renders correctly.
Don't forget to add <!--pytest-codeblocks:cont--> before each python code blocks to enable auto-tests for python samples.
Make sure the WebsiteSamplesTests job pass in the pipeline.

/azp run

Codecov Report

Merging #1788 (fd1a833) into master (dd1563f) will decrease coverage by 69.60%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##           master    #1788       +/-   ##
===========================================
- Coverage   86.08%   16.48%   -69.61%
===========================================
  Files         278      278
  Lines       14722    14739       +17
  Branches      767      777       +10
===========================================
- Hits        12674     2429    -10245
- Misses       2048    12310    +10262

Impacted Files
Coverage Δ

...azure/synapse/ml/cognitive/SlimStorageClient.scala
0.00% <0.00%> (-42.11%)
:arrow_down:

...gnitive/anomaly/MultivariateAnomalyDetection.scala
0.00% <0.00%> (-89.92%)
:arrow_down:

...e/anomaly/MultivariateAnomalyDetectorSchemas.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...ft/azure/synapse/ml/param/JsonEncodableParam.scala
12.16% <ø> (-50.51%)
:arrow_down:

...m/src/main/scala/com/microsoft/lightgbm/SWIG.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...a/com/microsoft/azure/synapse/ml/stages/udfs.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...m/microsoft/azure/synapse/ml/vw/VectorZipper.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...rg/apache/spark/injections/BlockManagerUtils.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...m/microsoft/azure/synapse/ml/codegen/CodeGen.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

.../microsoft/azure/synapse/ml/io/binary/Binary.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 247 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

/azp run

/azp run

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

/azp run

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

/azp run

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

/azp run

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

/azp run

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

/azp run

/azp run

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

website/docs/documentation/estimators/cognitive/_MAD.md
100
100
100
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx


Improve testing for model

For example, I'd like to test my https://fx.wtf app. But right now testea only tests final output (which is 0 for fx).
I'd like to be able to send keystrokes and check intermediate results (same with -update model).

It's possible to do that with waitfor: https://github.com/charmbracelet/x/blob/main/exp/teatest/app_test.go#L64

It is, but not as easy as snapshotting of final result with RequireEqualOutput.
Will be cool to have similar snapshots for the intermediate model state.

unfortunately its not as easy while the app is running, as you might get an "old" "snapshot", of the output, that's why there's the WaitFor, in which you can keep checking the output for X time every Y interval.

It is understandable. But for my app after key press is done it will "freeze". So "snapshot" is possible.

unfortunately, no, it isn't, as we can't guaranteed that the event was already processed after you send it, so you'll likely end up with a bunch of time.Sleep to try to synchronize the work.
you could do something like:
var snapshot []byte
teatest.WaitFor(t, tm.Output(), func(out []byte) bool {
  snapshot = out
  return true
}, teatest.WithDuration(time.Second), teatest.WithCheckInterval(time.Millisecond*100))

// verify snapshot

but I don't see how that's better than doing it inside WaitFor.

Forgot to add earlier: as for the model throughout the run, you have it when you start the test, so you can test it directly.

Oh, you can also read tm.Output() at any given time.

Oh, you can also read tm.Output() at any given time.

For some reason it is nil. But the snapshot technic works.


Got An Error When Build on imin printer 0.6.1 version

this the error log
Manifest merger failed : Attribute application@name value=(android.app.Application) from (unknown)
is also present at [:imin_printer] AndroidManifest.xml:12:9-69 value=(com.imin.printer.imin_printer.BaseApplication).
Suggestion: add 'tools:replace="android:name"' to  element at AndroidManifest.xml:2:5-32:19 to override.

my advice, while waiting for it to be fixed,
git clone https://github.com/iminsoftware/imin_printer.git
in the example replace with your project, and in the pubspec imin_printer do not change

Same problem here. Is there any chance to fix it?

The solution:
In the AndroidManifest. Under the root tag of XML and XMLNS: tools = "http://schemas.android.com/tools", Under the application TAB, add tools:replace="android:name".
It looks like this
The solution:
In the AndroidManifest. Under the root tag of XML and XMLNS: tools = "http://schemas.android.com/tools", Under the application TAB, add tools:replace="android:name".
It looks like this