FileNotFoundError: [Errno 2] No such file or directory: 'tmp/vqaxxxxxx.jpg

When I run the vqa_lxmert_unimodallime.py, I get an error of FileNotFoundError just likeFileNotFoundError: [Errno 2] No such file or directory: 'tmp/vqa87721637.jpg' and I have downloaded the dataset as you asked and and unzip all in a folder named structured-framework/data. I don't know how to fix this error, can you help me fix it? thank you.
my environment is

ubuntu20.04
python3.8
torch2.0.0
cuda11.8
The following is the complete error message
Traceback (most recent call last):
File "examples/vqa_lxmert_unimodallime.py", line 22, in
explanation1 = rununimodallime(
File "/root/autodl-tmp/MultiViz/structured-framework/analysis/unimodallime.py", line 65, in rununimodallime
return lime_explainer.explain_instance(
File "/root/miniconda3/lib/python3.8/site-packages/lime/lime_image.py", line 198, in explain_instance
data, labels = self.data_labels(image, fudged_image, segments,
File "/root/miniconda3/lib/python3.8/site-packages/lime/lime_image.py", line 261, in data_labels
preds = classifier_fn(np.array(imgs))
File "/root/autodl-tmp/MultiViz/structured-framework/analysis/unimodallime.py", line 27, in classify
modifiedinputs = [
File "/root/autodl-tmp/MultiViz/structured-framework/analysis/unimodallime.py", line 28, in
analysismodel.replaceunimodaldata(datainstance, modalityname, i)
File "/root/autodl-tmp/MultiViz/structured-framework/models/vqa_lxmert.py", line 119, in replaceunimodaldata
plt.imsave(randname, newinput)
File "/root/miniconda3/lib/python3.8/site-packages/matplotlib/pyplot.py", line 2200, in imsave
return matplotlib.image.imsave(fname, arr, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/matplotlib/image.py", line 1689, in imsave
image.save(fname, **pil_kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/PIL/Image.py", line 2428, in save
fp = builtins.open(filename, "w+b")
FileNotFoundError: [Errno 2] No such file or directory: 'tmp/vqa87721637.jpg'

Just to add, I didn't change the code


Renewed a little bit.

Just set up a new working place so renewed the theme a little bit, fixed a few bugs. More bug fix will be in next release

Why did you close this? You can add commit and the pull the request will be updated it hasn't been updated.


filenaming issue with wget in dockerfile

Dockerfile would create the file /var/lib/neo4j/data/backup/ckg_080520.dump?dl=1 not /var/lib/neo4j/data/backup/ckg_080520.dump so the loading command would file

Corrected wget dump file. Change accepted


How can i show and hide my div with laravel fields (checkbox)

I use laravel/frozennode adminstrator.
I need;
if i select  product parameter "az" checkbox in admin panel
img class="filmparamboxs" src="/images/az.png" after html show this code.
https://imgur.com/a/xVIRQdf

Hi there,
Welcome to Laravel and we are glad to have you as part of the community.
Unfortunately this GitHub area is not a support area for general application issues. This is only for issues/bugs with the framework code itself.
Can I suggest closing your issue ticket here? Instead try asking your question on one of the many great community support areas that will likely give you a better answer more quickly:

Laravel Slack (https://larachat.co/)
Laravel.io Forum (https://laravel.io/forum)
Laracasts Forum (https://laracasts.com/discuss)
StackOverflow (http://stackoverflow.com/questions/tagged/laravel)

Thanks in advance.


Expansion is triggering in a lot of cases when it shouldn't

Those cases on the current line will trigger expansions currently, which is incorrect:

   /// ///
  /// text ///

Expansions shouldn't trigger if the previous or next lines are already doc comments:

     /// <--should not expand
    /// <summary>

    /// <summary>
  /// <--should not expand

why was this reverted? its driving me nuts. :)

@dmccaffery hmm.... https://github.com/k--kato/vscode-docomment/pull/18

@k--kato ah; my bad. I hate the fact that referenced commits navigate directly to the source rather than the conversation when clicking the reference link.

@dmccaffery I will fix this until this weekend.

@k--kato Awesome! Much appreciated. 👍

@k--kato you are fantabulous!


Fix the error of creating SECRET_KEY

[ ] SECRET_KEY is invalid.

There should be no "" in .env, so I revised it


How to increase thread/processes if testing under significant loads.

Hi, do I increase the performance of wiremock if testing under significant loads?
Is there any way to increase threads or processes?
Or any other configuration changes that can be done to improve the wiremock.

I've added support for some perf related wiremock options and instruction how to use it in README.
For example you can use this property:
docker run -e SPRING_PROFILES_ACTIVE=load adven27/grpc-wiremock


Forward type parameters

Forward type parameters (and lifetimes, consts, etc.) in delegated calls as we can't always rely on type inference infering the correct ones from the context.

Thanks this looks good. I just made some fixes to CI, so do you think to could pull those, and then if they pass I can merge this.

Rebased.


Task: Infra as code: Add AWS Secret Manager

Add a Secret Manager instance to our infra as code scripts

From what I have seen there is nothing to do in the infra as code part, only in the configuration part :
Install the nuget package AWSSDK.SecretsManager on backend
Create a new singleton of AmazonSecretsManagerClient.
Suggestion:
// Get AWS infos from configuraiton
var accessKey = "changeme";
var secretAccessKey = "changeme";
var region = "changeme";
_ = services.AddSingleton(new AmazonSecretsManagerClient(accessKey, secretAccessKey, RegionEndpoint.GetBySystemName(region)));


Replace usage of useContext with use...

Description

Nuxt recommends the use of specific use... functions like useRoute, useRouter, useStore etc. instead of destructuring from useContext.
Additional context

These replacements will smooth the future upgrade to Vue 3 with Composition API.
Resolution

[ ] 🙋 I would be interested in resolving this bug.

We had a problem with using route destructured from useContext not working correctly, and @krysal fixed it in #588.
Other than that, we seem to only use useContext for getting app (to get the i18n.localePath), i18n and store in the code. The i18n plugin will probably be imported using something like this:
import { useNuxtApp } from '#app'
  const { i18n } = useNuxtApp()

And the store can be imported using useStore(), but since we are planning to use Pinia later, it might not be worth the effort.
Are there instances of useContext that are causing problems, @dhruvkb ?

I haven't looked at the individual usages. I just saw it being used extensively in the code and that it was not recommended so I opened the issue.
As for Pinia, I read somewhere that it will become Vuex 5 so they might retain the useStore construct. But yeah, it might not be worth the effort if they rename. Hence the "priority: low" and "good first issue" labels 😆 .

The recommendations are to not use useContext for route and router, other usages are OK (there is no alternative, actually). So, I would vote for closing this issue - if others agree.

@dhruvkb I think the latest guidance from the Vue project is to just switch to Pinia directly instead of waiting for Vuex 5:
https://twitter.com/VueDose/status/1463169464451706897

For this it would also be great to create our own useStore and useI18n hooks. Nuxt bridge does not have shims for useStore as present in Nuxt 2 and retriving the i18n object requires useNuxtApp().$i18n. For now we can continue to use useContext().i18n in that function and then the upgrade to Nuxt bridge will be easier because we can just swap the implementation.


Fixed bug which skips the first extra argument on service install

Fixes #90
NOTE: Currently tested against netcoreapp2.0

All good, cheers mate


Can't throw error in router middleware

I used ajax post data to express server,i want throw error to errorhandle in  router middleware when error was happen,but still thorw error, next(); not excute,very strange! below is my code
clientRouter.use('/api', (req, res, next)=>{
    if(1){
        next(); // not excute!
     }else{
        next(new Error('111')); //alaways excute!
     }
}, apiRouter);

errorhandel in app.js
app.use((err, req, res, next) => {
  log.error("req.xhr:", req.xhr); //alaways false!
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = (APP_ENV === 'development' ? err : {});
  if (req.xhr) {
    res.send(<ApiResponse>{
      status:false,
      err: (APP_ENV === 'development' ? err.toString() :'err happen!')
    });
  } else {
    // render the error page
    res.status(err.status || 500);
    res.render('error');
  }
});

Hey @keyiis, 1 is truthy in javascript, so your error condition (//always excute!) will not be hit.  Maybe I am miss understanding your question, so feel free to post more information to help me understand and I will try to help more.

test.txt

Closing since there was no response, so asume that answered the question.


[rfc] Define a Mode for local Editor

[rfc] Define a Mode for local Editor

Stack created with Sapling. Best reviewed with ReviewStack.

-> #949
#946

putting this off until Ryan finishes his current stack which includes changes to have a mode


Shifted Position of 3D-Objects using NFT

Do you want to request a feature or report a bug?
Bug
What is the current behavior?
When i'm using AR.js with A-Frame and NFT, the 3D-Objects keep changing it's position when I move the camera.
If the current behavior is a bug, please provide the steps to reproduce.
1.) Run the NFT example in the A-Frame Folder of AR.js
2.) Move your Camera (phone) and keep an eye on the feet of the dinosaur.
3.) The Model won't be at the same position, as when it first was rendered.

As I mentioned, you can use the NFT example in the A-Frame Folder of this repo (https://github.com/AR-js-org/AR.js/tree/master/aframe/examples/image-tracking/nft)
I took two screenshots for comparison, first is after the markr was found and second after I moved the camera a bit:

Please mention other relevant information such as the browser version, Operating System and Device Name
Phone: Samsung Galaxy A3 2017
OS: Android 8.0.0
Browser: Chrome 80.0.3987.119
What is the expected behavior?
The Object stays at the same position, no matter if I move the camera or not.

Someone already posted this problem on my repo https://github.com/kalwalt/jsartoolkit5/issues/31 I don't think that is a bug, the problem is that the algorithm has not multithreading as the original C++ version and so it's not updating so fast, and the consequence is that the model not follows so quickly the changes. You can compare the simple example with a sphere and that one with a complex model (see the jsartolkit5 examples), and you will see a noticeable difference. We would improve this for sure... :slightly_smiling_face: but no eta at the moment on this topic.

@Jeggle-s did you solved?

@nicolocarpignoli No, the shift of content after I#m moving the phone could not be solved. But as kalwalt mentions it's a problem with the speed of the algorithm. As of now, I will close this issue.

@nicolocarpignoli No, the shift of content after I#m moving the phone could not be solved. But as kalwalt mentions it's a problem with the speed of the algorithm. As of now, I will close this issue.

Maybe could be speed up in a future with SIMD compilation, but i don't know when it will  be possible.


emptyRules throws warning on expressions

Example:

I don't think this should be a valid warning.

Please share the text of the code along with screenshots

const test = css`
    :nth-of-type(1) {
        ${true ? "display: initial" : "display: hidden"}
    }
`;

This appears to have been fixed at some point. Added test and closing


Stats Stage correction for form changes is not reflected correctly

I tested this in game and when I went to Explorer Maze and attacked Mudkip at SpD 100 with Shadow Ball on Altered Giratina at Level 100 SpA 255, the damage dealt was 131, 147, 127.
The damage was not consistent with the damage range calculated by the EoS Damage Calculator, and when I raised the defender's SpD Stage to 12, the damage was within the expected range.
I tried taking on the opponent's attack with Defence Deoxys, and it seems that my Def SpD Stage is still raised to 12 and the opponent's Atk SpA Stage is lowered to 8.
In short, I think that the Stats Stage correction due to Form is applied to both oneself and one's opponent, and the correction is reversed for the opponent.
The EoS Damage Calculator does not seem to reflect this, so I would ask you to check it once.

I compared the code of the Japanese and North American versions, and this seems to be a bug in the Japanese version. In the Japanese version, the calculation is done like you said: for the Giratina forms, the defensive stage is modified when the attacker is Giratina. In the North American version, this is fixed: the defensive stage is modified when the defender is Giratina. With the Deoxys forms, the calculation is correct in both versions.
I will add a version selector to reflect the differences when I have time.

Oh, so it was a bug in the Japanese version only. Very interesting.
Let me confirm if my understanding is correct.
In the JP version, if there is a Stats Stage correction due to your form, the opponent will receive a Stats Stage correction that reverses it.
(e.g. Attacker Atk +2 -> Deffender Def -2)
In NA version, only one's own Stats Stage correction is applied.
In JP version, only Giratina's Def and SpD Stats Stage corrections are not applied due to a bug.
Strictly speaking, Def and SpD are changed only when attacking.
Is this correct?

In the JP version, if there is a Stats Stage correction due to your form, the opponent will receive a Stats Stage correction that reverses it. (e.g. Attacker Atk +2 -> Deffender Def -2) In NA version, only one's own Stats Stage correction is applied.
In JP version, only Giratina's Def and SpD Stats Stage corrections are not applied due to a bug. Strictly speaking, Def and SpD are changed only when attacking.
Is this correct?

I think this is correct, but to be precise, here are the cases. I'll use the notation (attacker -> defender).

NA

Giratina (atk-2) -> defender (def+0)
attacker (atk+0) -> Giratina (def+2)
Giratina-Origin (atk+2) -> defender (def+0)
attacker (atk+0) -> Giratina-Origin (def-2)

JP

Giratina (atk-2) -> defender (def+2)
attacker (atk+0) -> Giratina (def+0)
Giratina-Origin (atk+2) -> defender (def-2)
attacker (atk+0) -> Giratina-Origin (def+0)

I've added a "Game version" setting to the damage calculator (a1fa84ce0f436e5a2887943e807839372f26a245), under the "Misc." section. If you set the version to "JP", it should now reflect this properly.


Refactor/ioc 29 add base create create cached scoped instance task graph node command handler abstract class

Added

Added BaseCreateCreateCachedScopedInstanceTaskGraphNodeCommandHandler.

Codecov Report

Merging #137 (5eb220e) into master (98498de) will decrease coverage by 0.00%.
The diff coverage is 95.65%.

@@            Coverage Diff             @@
##           master     #137      +/-   ##
==========================================
- Coverage   95.72%   95.72%   -0.01%
==========================================
  Files         102      103       +1
  Lines        1826     1872      +46
  Branches      243      245       +2
==========================================
+ Hits         1748     1792      +44
- Misses         75       77       +2
  Partials        3        3

Flag
Coverage Δ

cuaktask
99.25% <ø> (ø)

iocuak
93.84% <95.65%> (+0.07%)
:arrow_up:

porygon
98.58% <ø> (ø)

porygon-typeorm
98.90% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...CachedScopedInstanceTaskGraphNodeCommandHandler.ts
95.55% <95.55%> (ø)

...ask/modules/cuaktask/CreateInstanceTaskLazyNode.ts
88.00% <100.00%> (+0.50%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f172611...5eb220e. Read the comment docs.


user story a bit bolder like in bespoke funeral

all the user stories bolder and with title

not sure about this, need to check what fornt weight we are importing from google fonts

related to #149


Mention insitutional profiles in "getting started" docs

Is your feature request related to a problem? Please describe.
Institutional profiles make the barrier of entry a lot easier, so we should mention it in this document (and maybe downgrade conda similar to the pipline-specific docs 🙂).

I'll take this issue.


Add make-user-data command for generating cloud-init user-data

$ ./brkt make-user-data -h
usage: brkt make-user-data [-h] [--jwt JWT] [-v]

Generate user-data that is passed to cloud-init when running an
instance.

optional arguments:
-h, --help     show this help message and exit
--jwt JWT      JSON Web Token that the encrypted instance will use to
                 authenticate with the Bracket service. Use the generate-jwt
                 subcommand to generate a JWT.
-v, --verbose  Print status information to the console

Ugh.  The code still requires values.jwt.  Please ignore...


Statement node_call to easy execute func from any node that was add to Ren.variables

Like in title.
It will work if node is add to Ren.variables by using define func.
It will be Ren.node_call(node_id, func_name, args = []).

done in #62


generate-document

General Checklist:

[ ] Tests added for this feature/bug

[ ] All tests are passed

[ ] No lint error

Review

[ ] Has been reviewed by UX
[ ] Has been reviewed by Frontend
[ ] Has been reviewed by Backend
[ ] Has been reviewed by Database

[ ] Conform by the [merge request performance guides]

[ ] Conform by the [style guides]

[ ] Squashed related commits together

Tasks Checklist

[ ] Todo something 1
[ ] Todo something 2
[ ] Todo something 3

What are the relevant issue numbers?
Closes #15

Pull Request Test Coverage Report for Build 267

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.794%

Totals

Change from base Build 265:
0.0%

Covered Lines:
285

Relevant Lines:
325

💛  - Coveralls


Document how to run the tests

Accept that the test setup has factually grown complicated and its completely non-obvious how to run the tests.

Yes please. 😄 I'm happy to help with this, though as I've said elsewhere, I'm new to go and go testing but I'm not new to writing READMEs.

I'll say up front, theres room for simplification and some obvious improvements. To start and in the context of this issue, I'll focus on describing the current requirements which should help seed documentation (and some ideas for improvement)
Firstly, its important to note that lab run integration tests in addition to unittests. These integration tests execute against gitlab.com. We are willing to trade some test "reliability" in exchange for 100% guarantees that functionality works (because its run against live gitlab). Integration tests are largely identified as tests which execute the ./lab_bin binary.
Ref on how lab achieves this can be seen in the TestMain and Makefile

https://github.com/zaquestion/lab/blob/master/cmd/root_test.go#L25-L83
https://github.com/zaquestion/lab/blob/master/Makefile#L10-L19

This means that a valid SSH key is require to execute a significant number of tests. This key must be attach to a GitLab account. Practically speaking this means a developer on lab must have a gitlab account with their ssh key attached.

May be fixable by embeding the ssh key used by travis in the test harness. This would reduce the dependency to using an ssh agent (so that we could echo <key> |  ssh-add -
Alternatively spin up gitlab in docker and populate with test objects.

Nextly, tests must be run via make test to properly setup the testdata/test.git, the -run go flag is supported through make test run=<>

Might be entirely fixable by using a git submodule. This was a feature I was scared of and very unfamiliar at the start of lab (so I copied hub's approach). I understand them now however and I believe the change would allow tests to be run with go test directly. This would also be useful because we could properly track gitlab.com/zaquestion/test instead of faking it.

Lastly some tests might still be broken (I think I've seen from coworkers), likely due to permissions issues I haven't surfaced. lab executes the tests with the lab-testing user which shouldn't have any permissions issues however. Documenting the above and addressing the outstanding warts would be a huge step forward. If there are lingering test failures, we'd at least be in a place to address them.

Sorry to need to so much hand holding on this. I'm blindly feeling my way through go and getting up and running. For the rank beginners, I just found this very helpful for getting up and running: https://golang.org/doc/code.html#Workspaces. I'm also finding that GOPATH and GO111MODULES=on environment vars need to be defined, is that correct? And $GOPATH/bin needs to be in your PATH.
After reading that, and setting those vars, I was able to run all of the tests successfully.

If I write this up, would you prefer it to be in the README.md or in CONTRIBUTING.md?


Feature/atomic permits

Fixes tests by adding a NonBufferedQueue flag. Reasoning (copied from Slack):
a lot of consumers are made like this:
consumer, err := client.Subscribe(ConsumerOptions{
Topics:            topics,
SubscriptionName:  "multi-topic-sub",
})
ReceiverQueueSize is not set, so it will be 0, normally that will trigger the ‘constructor’ to set it to the default of 1000. But we have changed the code to allow for 0. Thus the value will remain 0. Thus by default all consumers are non-buffered special queues.
Most tests use: case cm, ok := <-consumer.Chan(): to read messages. Which never nudges. And will block forever.
My proposal would be to add a Flag:
consumer, err := client.Subscribe(ConsumerOptions{
Topics:            topics,
SubscriptionName:  "multi-topic-sub",
NonBufferedQueue:  true,
})
Only when NonBufferedQueue is set to true will we allow a 0 queue size (or set the value to zero ourselves). This will make our custom behaviour opt-in instead of opt-out.
For our use-cases in oqctl were it is applicable I would add the flag. This also makes the code a bit more readable/clear as it is immediately clear that we are relying on some custom behaviour (if somehow the imports go mixed up it would fail on this option and we would notice).

Next step is to make a tag and a PR for oqctl.

@jandeschuttere CI is broken but it seems this might be a GA issue rather than anything related to the code. See: https://github.com/actions/runner-images/issues/6775
Locally the tests all pass. I would be in favour of merging this in. If tests are still broken in a week or so I can look into it again but also don't want to keep working on this too long.


Add org-ai package

References:

https://github.com/rksm/org-ai

Not org-AI but: https://develop.spacemacs.org/layers/+web-services/openai/README.html


No such file or directory: './dataset/wtfile/camvid_inform.pkl'

How can I get this file?

hi, I have the same problem when run the cityscapes_train.py .    Have you solved this problem??

嗨，我在运行城市景观_train.py时遇到同样的问题。您解决了这个问题吗？

I didn't solve it

Hi, how did you solve it? I got a same problem..


Remediate unavailable URLs

We need to update the latest change from the env check script to our upcoming cli later.
cc @derekbit @james-munson @c3y1huang

@mergify backport v1.6.x v1.5.x

Thanks @muicoder for the contribution!


TRT Converter not working in 2.7.0 version of official image

Please make sure that this is a bug. As per our
GitHub Policy,
we only address code/doc bugs, performance issues, feature requests and
build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu20.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): docker image tensorflow/tensorflow:2.7.0-gpu
TensorFlow version (use command below): v2.7.0-rc1-69-gc256c071bb2 2.7.0
Python version: Python 3.8.10
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory: Nvidia GeForce 1050

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with:

TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"

Describe the current behavior
I tried to optimize a Tensorflow SavedModel using trt_converter. It works in official tensorflow/tensorflow:2.3.0-gpu, tensorflow/tensorflow:2.4.0-gpu yet fails in tensorflow/tensorflow:2.7.0-gpu
Describe the expected behavior
trt_convert.TrtGraphConverterV2 should work out of box as in previous versions of official builds.
Contributing

Do you want to contribute a PR? (yes/no):
Briefly describe your candidate solution(if contributing):

Standalone code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate
the problem. If possible, please share a link to Colab/Jupyter/any notebook.
from tensorflow.python.compiler.tensorrt import trt_convert as trt

input_saved_model_dir = "directory/of/tensorflow/saved_model"
output_saved_model_dir = "tensorrt-test"
converter = trt.TrtGraphConverterV2(input_saved_model_dir=input_saved_model_dir)
trt_graph = converter.convert()
converter.save(output_saved_model_dir);print("====saved====")

Other info / logs Include any logs or source code that would be helpful to
diagnose the problem. If including tracebacks, please include the full
traceback. Large logs and files should be attached.
2021-12-23 09:10:04.726658: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such fil
e or directory; LD_LIBRARY_PATH: /usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/lib64:/usr/local/nvidia/lib:/usr/local/nvidia/lib64
2021-12-23 09:10:04.726892: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object fil
e: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/lib64:/usr/local/nvidia/lib:/usr/local/nvidia/lib64
2021-12-23 09:10:04.726909: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:35] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the
missing libraries mentioned above are installed properly.
ERROR:tensorflow:Tensorflow needs to be built with TensorRT support enabled to allow TF-TRT to operate.
Traceback (most recent call last):
  File "trt.py", line 10, in <module>
    converter = trt.TrtGraphConverterV2(input_saved_model_dir=input_saved_model_dir)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/compiler/tensorrt/trt_convert.py", line 1009, in __init__
    _check_trt_version_compatibility()
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/compiler/tensorrt/trt_convert.py", line 221, in _check_trt_version_compatibility
    raise RuntimeError("Tensorflow has not been built with TensorRT support.")
RuntimeError: Tensorflow has not been built with TensorRT support.

Hi @BorisPolonsky ! Have you checked these threads yet for TensorRT installation in your environment yet? . Ref 1 ,2 , 3 . Thank you!

Hi @BorisPolonsky ! Have you checked these threads yet for TensorRT installation in your environment yet? . Ref 1 ,2 , 3 . Thank you!

I've checked the "verify your installation" part in ref 1. Here's what I got in tensorflow/tensorflow:2.7.0-gpu:
dpkg -l | grep TensorRT
ii  libnvinfer-plugin8            8.0.0-1+cuda11.0                  amd64        TensorRT plugin libraries
ii  libnvinfer8                   8.0.0-1+cuda11.0                  amd64        TensorRT runtime libraries

As comparison, here's what I got in tensorflow/tensorflow:2.4.0-gpu, a version wheere trt.TrtGraphConverterV2 works out of box:
dpkg -l | grep TensorRT
ii  libnvinfer-plugin7           7.1.3-1+cuda11.0                    amd64        TensorRT plugin libraries
ii  libnvinfer7                  7.1.3-1+cuda11.0                    amd64        TensorRT runtime libraries

I don't see any problem with TensorRT installation here. Maybe there's something wrong with _check_trt_version_compatibility in tf2.7?

Hi @Saduf2019! Could you please look at this issue?

@BorisPolonsky
Is this failing on 2.6 as well for you?

@BorisPolonsky Is this failing on 2.6 as well for you?

It's not working on tf 2.6 either. The conversion process end up with Aborted (core dumped) message in tensorflow/tensorflow:2.6.0-gpu.
2021-12-30 23:19:23.161255: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvrtc.so.11.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/lib64:/usr/local/nvidia/lib:/usr/local/nvidia/lib64
2021-12-30 23:19:23.161278: F tensorflow/compiler/tf2tensorrt/stub/nvinfer_stub.cc:49] getInferLibVersion symbol not found.
Aborted (core dumped)

Here's TensorRT installation verification step done in the container.
ii  libnvinfer-plugin7           7.2.2-1+cuda11.1                    amd64        TensorRT plugin libraries
ii  libnvinfer7                  7.2.2-1+cuda11.1                    amd64        TensorRT runtime libraries

Boris, Tensorflow 2.7.0 (from pypi) was built with TensorRT 7 (not 8) - it needs libnvinfer.so.7 and libnvinfer_plugin.so.7 but you have libnvinfer8 installed.
To test that Tensorflow can find TensorRT libraries you can do the following:
import tensorflow as tf
import tensorflow.compiler as tf_cc
tf_cc.tf2tensorrt._pywrap_py_utils.is_tensorrt_enabled()

if you do not have libnvinfer.so.7 and libnvinfer_plugin.so.7 then it will output
>>> cc.tf2tensorrt._pywrap_py_utils.is_tensorrt_enabled()
2022-01-06 05:37:08.526925: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory
2022-01-06 05:37:08.527000: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory
2022-01-06 05:37:08.527013: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:35] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.
False

So, either install TRT 7.x or build TF with TRT 8.x support from source.
How to build TF with TRT support from source is described here https://apivovarov.medium.com/run-tensorflow-2-object-detection-models-with-tensorrt-on-jetson-xavier-using-tf-c-api-e34548818ac6

Boris, Tensorflow 2.7.0 (from pypi) was built with TensorRT 7.2.2 (not 8.x) - it needs libnvinfer.so.7 and libnvinfer_plugin.so.7 but you have libnvinfer8 installed.
TensorRT does not support forward compatibility
To test that Tensorflow can find TensorRT libraries you can do the following:
import tensorflow as tf
import tensorflow.compiler as tf_cc
tf_cc.tf2tensorrt._pywrap_py_utils.is_tensorrt_enabled()

print("loaded trt ver:", tf_cc.tf2tensorrt._pywrap_py_utils.get_loaded_tensorrt_version())
print("linked trt ver:", tf_cc.tf2tensorrt._pywrap_py_utils.get_linked_tensorrt_version())

if you do not have libnvinfer.so.7 and libnvinfer_plugin.so.7 then it will output
>>> cc.tf2tensorrt._pywrap_py_utils.is_tensorrt_enabled()
2022-01-06 05:37:08.526925: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory
2022-01-06 05:37:08.527000: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory
2022-01-06 05:37:08.527013: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:35] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.
False

So, either install TRT 7.2.2 (or 7.2.3) or build TF with TRT 8.x support from source.
How to build TF with TRT support from source is described here https://apivovarov.medium.com/run-tensorflow-2-object-detection-models-with-tensorrt-on-jetson-xavier-using-tf-c-api-e34548818ac6

Thanks for clarifying. Looks like the official image of tf2.7 switched to a base image with TRT 8.x installed. Will the next official docker image release ensure compatibility between tensorflow and TRT so that this feature works out of box?

Setup tensorflow/tensorflow:2.7.0-gpu container
$ sudo docker run -it --name tf270 --gpus all tensorflow/tensorflow:2.7.0-gpu

Test TF/TRT
$ apt list --installed | grep infer

libnvinfer-plugin8/unknown,now 8.0.0-1+cuda11.0 amd64 [installed,upgradable to: 8.2.0-1+cuda11.4]
libnvinfer8/unknown,now 8.0.0-1+cuda11.0 amd64 [installed,upgradable to: 8.2.0-1+cuda11.4]

import tensorflow as tf
import tensorflow.compiler as tf_cc
tf_cc.tf2tensorrt._pywrap_py_utils.get_linked_tensorrt_version()

(7, 2, 2)

ok, installed TRT is 8.0.0 but Tensorflow was built and linked with TRT 7.2.2. Looks like nobody tested TensorRT with tensorflow/tensorflow:2.7.0-gpu image
BTW, tensorflow/tensorflow:2.6.1-gpu container works fine. (Cuda 11.2, TRT 7.2.2, TF 2.6.1)

To run TF 2.7.0 with TRT-7.2.3 we can use TF 2.6.1-gpu image
sudo docker run -it --name tf270 --gpus all tensorflow/tensorflow:2.6.1-gpu
apt update
apt upgrade

python3 -m pip install -U pip
python3 -m pip install -U tensorflow==2.7.0

apt install vim
vi /usr/local/lib/python3.8/dist-packages/tensorflow/python/compiler/tensorrt/trt_convert.py
# go to line 266 and replace `trt_utils.versionTupleToString(loaded_version)` with just `loaded_version`. Do the same for `linked_version` on line 267

export LD_LIBRARY_PATH=/usr/local/cuda-11.1/targets/x86_64-linux/lib
python3

Test Tensorflow/TRT
import tensorflow as tf
tf.test.is_gpu_available()
import tensorflow.compiler as tf_cc
tf_cc.tf2tensorrt._pywrap_py_utils.is_tensorrt_enabled()

from tensorflow.python.compiler.tensorrt import trt_convert as trt
conversion_params = trt.TrtConversionParams(precision_mode=trt.TrtPrecisionMode.FP16)

converter = trt.TrtGraphConverterV2(
    input_saved_model_dir="saved_model",
    conversion_params=conversion_params)

converter.convert()

@apivovarov @BorisPolonsky any workaround for working this out on Google Colab or Kaggle Kernels? This official Keras example is failing because of this.

@apivovarov @BorisPolonsky any workaround for working this out on Google Colab or Kaggle Kernels? This official Keras example is failing because of this.

I use tensorflow 2.4.0 for this purpose for now.

I see. Do you use it on Colab?

Yeah as I mentioned in the comment, yes.

The workaround which I mentioned above was to

But won't be possible on Colab and Kaggle I guess.

Do you have a link to a sample Colab?

Yeah, that is what. I was asking if there's a workaround for that.

This Colab notebook does not have GPU at all.
import tensorflow as tf
print("TensorFlow version:", tf.__version__)
tf.test.is_gpu_available()

TensorFlow version: 2.7.0
False

Seems like there isn't a workaround for this yet?
I did have success with the earlier versions of TensorFlow installed on Colab.

Boris, Tensorflow 2.7.0 (from pypi) was built with TensorRT 7.2.2 (not 8.x) - it needs libnvinfer.so.7 and libnvinfer_plugin.so.7 but you have libnvinfer8 installed.

@BorisPolonsky can you proof this, please, or tell me what I'm doing wrong? I've tried to install several versions of tensorflow from pip and NONE of them was built with TensorRT support. One of the wheels that I've tried is tensorflow-2.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

Boris, Tensorflow 2.7.0 (from pypi) was built with TensorRT 7.2.2 (not 8.x) - it needs libnvinfer.so.7 and libnvinfer_plugin.so.7 but you have libnvinfer8 installed.

@BorisPolonsky can you proof this, please, or tell me what I'm doing wrong? I've tried to install several versions of tensorflow from pip and NONE of them was built with TensorRT support. One of the wheels that I've tried is tensorflow-2.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
I'm always getting
File "/home/trtuser/.local/lib/python3.8/site-packages/tensorflow/python/compiler/tensorrt/trt_convert.py", line 214, in _check_trt_version_compatibility
    raise RuntimeError("Tensorflow has not been built with TensorRT support.")

I suggest that you should use docker and run officially built and released tensorflow (or the NVIDIA versions from NGC) images.  Manually installing ML framework with GPU support from scratch will be tedious.

This one seems to be still causing headaches...

@BorisPolonsky ,
I have tested the code mentioned in comment and now I can see with TF2.11v, TF2.12V and tf-nightly versions are built with TF TRT versions 7.2.2, 8.4.3 and 8.4.3 versions respectively. Please refer to attached gist.The same might be installed in docker images also.
It seems the issue resolved. Please check and come back if the issue still persists. Thanks!

@BorisPolonsky ,
I have tested the code mentioned in comment and now I can see with TF2.11v, TF2.12V and tf-nightly versions are built with TF TRT versions 7.2.2, 8.4.3 and 8.4.3 versions respectively. Please refer to attached gist.The same might be installed in docker images also.
It seems the issue resolved. Please check and come back if the issue still persists. Thanks!

I will close this issue. Please enforce TensorRT version verification when releasing official images in the futures.


python312Packages.qtile: 0.28.1 -> 0.29.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.qtile is: Small, flexible, scriptable tiling window manager written in Python
meta.homepage for python312Packages.qtile is: http://www.qtile.org/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS

[!CAUTION]
A test defined in passthru.tests did not pass.

found 0.29.0 with grep in /nix/store/3f3w9ghhp89q3idr560hr38lg6znpas7-python3.12-qtile-0.29.0
found 0.29.0 in filename of file in /nix/store/3f3w9ghhp89q3idr560hr38lg6znpas7-python3.12-qtile-0.29.0

Rebuild report (if merged into master) (click to expand)

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath

python311Packages.qtile
python311Packages.qtile-extras
python312Packages.qtile
python312Packages.qtile-extras

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3f3w9ghhp89q3idr560hr38lg6znpas7-python3.12-qtile-0.29.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.qtile https://github.com/r-ryantm/nixpkgs/archive/c61c69989a85736896f634322932cab80126f01e.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/c61c69989a85736896f634322932cab80126f01e#python312Packages.qtile

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3f3w9ghhp89q3idr560hr38lg6znpas7-python3.12-qtile-0.29.0
ls -la /nix/store/3f3w9ghhp89q3idr560hr38lg6znpas7-python3.12-qtile-0.29.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review

x86_64-linux

:x: 4 packages failed to build:

python311Packages.qtile-extras
python311Packages.qtile-extras.dist
python312Packages.qtile-extras
python312Packages.qtile-extras.dist

:white_check_mark: 4 packages built:

python311Packages.qtile
python311Packages.qtile.dist
python312Packages.qtile
python312Packages.qtile.dist

Maintainer pings
cc @arjan-s @Sigmanificient for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

Please don't merge this. Qtile needs to be updated in tandem with qtile-extras.


VS Code extension is incomplete - does not show errors in some situations; cannot be configured from the UI

The VS Code extension does not show any errors that oxlint finds when running it from the terminal.
In fact, what is the extension actually supposed to do? How do I know it is working?

@IWANABETHATGUY Can you help a little bit with this one, we may need more debug prints and guides.

I think what you mean is that you cannot configure the vscode extension to enable or disable any rules
you cannot mimic this functionality in vscode: npx oxlint@latest --tsconfig tsconfig.json -D all other than redefining a n .eslintrc.json file with the rules you want enabled.
I really feel that this makes a case for an oxc-specific configuration file, even though there's a fundamental decision that this is a no-configuration library.
Having looked at Biome, migration is harder from eslint to biome - if oxc would capitalize on its position where portability from eslint to Oxc is much simpler, and explicitely write to a configuration file, this tool would take off much more.
I will write a vision statement for that

VSCode support is incomplete and any help is appreciated.
We need:

add configuration from the UI
improve logging so we know what it's doing

Tracing with invalid configuration (see #3217 ) i got these errors
[2024-05-09T22:10:20Z INFO  oxc_language_server] initialize: Options { run: OnSave, enable: true, config_path: "eslint.config.js" }
[2024-05-09T22:10:20Z INFO  oxc_language_server] language server version: "0.0.1"
thread 'main' panicked at crates/oxc_language_server/src/main.rs:351:18:
should have initialized linter with new options:   x Failed to parse jsonc file "/Users/dalisoft/Desktop/ignore_folder/
  | test/test-backend/eslint.config.js"

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[Error - 3:10:20 AM] Server process exited with signal SIGABRT.
[Error - 3:10:20 AM] Server initialization failed.
  Message: Pending response rejected since connection got disposed
  Code: -32097
[Info  - 3:10:20 AM] Connection to server got closed. Server will restart.
true
[Error - 3:10:20 AM] oxc client: couldn't create connection to server.
  Message: Pending response rejected since connection got disposed
  Code: -32097
[2024-05-09T22:10:20Z INFO  oxc_language_server] initialize: Options { run: OnSave, enable: true, config_path: "eslint.config.js" }
[2024-05-09T22:10:20Z INFO  oxc_language_server] language server version: "0.0.1"
thread 'main' panicked at crates/oxc_language_server/src/main.rs:351:18:
should have initialized linter with new options:   x Failed to parse jsonc file "/Users/dalisoft/Desktop/ignore_folder/
  | test/test-backend/eslint.config.js"

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[Error - 3:10:20 AM] Server process exited with signal SIGABRT.
[Error - 3:10:20 AM] Server initialization failed.
  Message: Pending response rejected since connection got disposed
  Code: -32097
[Info  - 3:10:20 AM] Connection to server got closed. Server will restart.
true
[Error - 3:10:20 AM] oxc client: couldn't create connection to server.
  Message: Pending response rejected since connection got disposed
  Code: -32097
[2024-05-09T22:10:20Z INFO  oxc_language_server] initialize: Options { run: OnSave, enable: true, config_path: "eslint.config.js" }
[2024-05-09T22:10:20Z INFO  oxc_language_server] language server version: "0.0.1"
thread 'main' panicked at crates/oxc_language_server/src/main.rs:351:18:
should have initialized linter with new options:   x Failed to parse jsonc file "/Users/dalisoft/Desktop/ignore_folder/
  | test/test-backend/eslint.config.js"

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[Error - 3:10:20 AM] Server initialization failed.
  Message: Pending response rejected since connection got disposed
  Code: -32097
[Info  - 3:10:20 AM] Connection to server got closed. Server will restart.
true
[Error - 3:10:20 AM] oxc client: couldn't create connection to server.
  Message: Pending response rejected since connection got disposed
  Code: -32097
[Error - 3:10:20 AM] Restarting server failed
  Message: Pending response rejected since connection got disposed
  Code: -32097
[Error - 3:10:20 AM] Server process exited with signal SIGABRT.
[2024-05-09T22:10:20Z INFO  oxc_language_server] initialize: Options { run: OnSave, enable: true, config_path: "eslint.config.js" }
[2024-05-09T22:10:20Z INFO  oxc_language_server] language server version: "0.0.1"
thread 'main' panicked at crates/oxc_language_server/src/main.rs:351:18:
should have initialized linter with new options:   x Failed to parse jsonc file "/Users/dalisoft/Desktop/ignore_folder/
  | test/test-backend/eslint.config.js"

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[Error - 3:10:20 AM] Server process exited with signal SIGABRT.
[Error - 3:10:20 AM] Server initialization failed.
  Message: Pending response rejected since connection got disposed
  Code: -32097
[Info  - 3:10:20 AM] Connection to server got closed. Server will restart.
true
[Error - 3:10:20 AM] oxc client: couldn't create connection to server.
  Message: Pending response rejected since connection got disposed
  Code: -32097
[Error - 3:10:20 AM] Restarting server failed
  Message: Pending response rejected since connection got disposed
  Code: -32097
[2024-05-09T22:10:20Z INFO  oxc_language_server] initialize: Options { run: OnSave, enable: true, config_path: "eslint.config.js" }
[2024-05-09T22:10:20Z INFO  oxc_language_server] language server version: "0.0.1"
thread 'main' panicked at crates/oxc_language_server/src/main.rs:351:18:
should have initialized linter with new options:   x Failed to parse jsonc file "/Users/dalisoft/Desktop/ignore_folder/
  | test/test-backend/eslint.config.js"

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[Error - 3:10:20 AM] Server process exited with signal SIGABRT.
[Error - 3:10:20 AM] Server initialization failed.
  Message: Pending response rejected since connection got disposed
  Code: -32097
[Error - 3:10:20 AM] The oxc server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.
[Error - 3:10:20 AM] oxc client: couldn't create connection to server.
  Message: Pending response rejected since connection got disposed
  Code: -32097
[Error - 3:10:20 AM] Restarting server failed
  Message: Pending response rejected since connection got disposed
  Code: -32097

currently only works with an .eslintrc.json file, oxlint doens't parse or resolve anything else. I think this is why it would be better to create an oxlint.config.json file for configuration to be less confusing. That way we can use that config in the eslint plugin with a clearer abstraction.
then we could add a configure method config in eslint-plugin-oxlint f.ex:
export default {
  configs: {
    configure: (oxlintConfig: RuleConfigurations) => {
      const filteredConfig: RuleConfigurations = {};
      for (const key of Object.keys(oxlintConfig)) {
        if (Object.prototype.hasOwnProperty.call(allRules, key)) {
          filteredConfig[key] = oxlintConfig[key] as RuleSetting;
        } else {
          console.warn(
            `eslint-plugin-oxlint: Rule ${key} is not implemented in oxlint.`
          );
        }
      }
      return {
        name: 'oxlint',
        rules: filteredConfig,
      };
    },
    recommended: {
      plugins: ['oxlint'],
      rules: ruleMapsByCategory.correctnessRules,
    },
    ...
}

what do you think @Boshen ?

Thanks so much for this! In testing this, I noticed a couple other missing features from the vscode extension:

Showing the actual lint error name in the UI instead of just the error to make for easy investigation/disabling
Ctrl+click in the terminal will navigate to the file, but not the specific line the issue is on

Thanks so much for this! In testing this, I noticed a couple other missing features from the vscode extension:

Showing the actual lint error name in the UI instead of just the error to make for easy investigation/disabling
Ctrl+click in the terminal will navigate to the file, but not the specific line the issue is on

for the first one: tracked here https://github.com/oxc-project/oxc/issues/6477
for the second one, can you elaborate? Sounds like it related to oxlint rather than the vscode extension.

Thanks so much for this! In testing this, I noticed a couple other missing features from the vscode extension:

Showing the actual lint error name in the UI instead of just the error to make for easy investigation/disabling
Ctrl+click in the terminal will navigate to the file, but not the specific line the issue is on

for the first one: tracked here #6477 for the second one, can you elaborate? Sounds like it related to oxlint rather than the vscode extension.

Thanks I'll follow that one.
As far as file linking in the vscode terminal, here's the docs I found about that:
https://code.visualstudio.com/docs/terminal/basics#_links
It looks like there's a standard format it's expecting but the oxlint output does not match.

It would be nice to have links work within IntelliJ IDEs as well.  I haven't been able to find any docs on what is supported though.
I think https://youtrack.jetbrains.com/issue/IJPL-103639/Terminal-toolwindow-should-linkify-references-to-project-sources is the feature request.  https://youtrack.jetbrains.com/issue/IJPL-109865/Make-opening-external-files-from-the-embedded-terminal-configurable indicates that file URLs (file://) are supported, but nothing else is mentioned.

@NateRadebaugh it seems like links work for me (video below).  If you still have an issue with links in the editor, could you create a new issue with some steps to reproduce?
https://github.com/user-attachments/assets/27bffe58-c9e8-4d9b-bb5f-fa4f0d7811d5

At this point, I think this issue can probably be closed and new issues created for any specific issues.
General list of available features below.

Language server path can be specified. oxc.path.server.
Config file can be specified oxc.configPath.
Language server can be enabled/disabled oxc.enable (not really sure what this is useful for).
Running on save or lint can be configured oxc.lint.run.
oxc.trace.server can be used to enable verbose logs between the language server and language client.
Oxlint config files should have the correct JSON schema attached (ESLint config files don't have the Oxlint schema, maybe that's something worth changing)

oxlintrc.json
oxlint.json
.oxlintrc.json
.oxlint.json
.oxlintrc

When opening a file that is javascript, javascriptreact, typescript, typescriptreact, vue, or svelte the VS Code extension will activate.
There is an Oxc channel for viewing logs.
There is a command available to restart the language server.
Highlighting is shown in the editor for diagnostics published by the language server.


[Task] Improve Account API by internalizing commands

Description
Small refactor on the account API in order to make updating DID Documents from a two step into a one step process. Currently the Account API allows developers to generate update commands that they have to manage and pass on into the update_identity function. These commands can be stored inside the account and can be either published immediately or queued to be published in a single call of update_identity. If more commands are queued they are published in the order they are added. Later, we can add additional optimization code to combine multiple commands into a single DID update.
Motivation
Reduce the complexity of the account even further.
Resources
Example
To-do list
Create a task-specific to-do list . Please link PRs that match the To-do list item behind the item after it has been submitted.

[ ] Internalize Commands
[ ] Update update_identity function to no longer take a command parameter.
[ ] Update all account examples
[ ] Rename document in account examples to DID
[ ] Add the ability to create an identity with an existing keypair to account

Change checklist
Add an x to the boxes that are relevant to your changes, and delete any items that are not.

[ ] The feature or fix is implemented in Rust and across all bindings whereas possible.
[ ] The feature or fix has sufficient testing coverage
[ ] All tests and examples build and run locally as expected
[ ] Every piece of code has been document according to the documentation guidelines.
[ ] If conceptual documentation (mdbook) and examples highlighting the feature exist, they are properly updated.
[ ] If the feature is not currently documented, a documentation task Issue has been opened to address this.

Added 'Add the ability to create an identity with an existing keypair to account' to the task as it is a minor account API change.

@JelleMillenaar what is the intended benefit of reusing an existing keypair here? is this just for convenience or space-saving?
Stronghold doesn't support copying keys (maybe this could be added) and sharing keys across multiple identities would require a fair amount of internal changes. If you wanted to create a "child" identity owned by a "parent" identity wouldn't the controller field be a better fit once we have proper support for it?

In regards to the simplification & optimization of identity updates, I think we have (at least) these three variants to consider.
Aside: I originally thought that we might want to reuse the Command in a future actor handler, but that is not the case. The account types that are re-used in the actor are those in the identity sub module of the account, such as IdentityCreate. Thus we don't have to consider that use case in the following discussion.
Variant 1 (current approach)
 let command = Command::create_method()
    .scope(MethodScope::Authentication)
    .fragment("my-auth-key")
    .finish()?;

  // Process the command and update the identity state on the tangle.
  account.update_identity(document, command).await?;

Variant 2
let command = Command::create_method()
    .scope(MethodScope::Authentication)
    .fragment("my-auth-key")
    .finish()?;

let other_command = /* omitted */

// Stores the created command in an internal queue in the account.
account.queue_command(command);
// We can queue multiple commands before applying them.
account.queue_command(other_command);

// Applies all pending commands to the document and updates the tangle with the latest document.
account.update_identity(document).await?;

Variant 3
 account.new_command(document)
    .create_method()
    .scope(MethodScope::Authentication)
    .fragment("my-auth-key")
    .apply() // <-- Updates the tangle immediately.
    .await?;

 account.new_command(document)
    .create_method()
    .scope(MethodScope::Authentication)
    .fragment("my-auth-key")
    .queue(); // <-- Queues the command for later.

account.apply_pending_commands(document).await?;

Variant 2 updates the tangle exactly once, even with multiple commands present. It's possible to build up a queue of commands in the account, and then call update_identity once, to apply all queued changes. The major upside of this variant is, that it might be possible to implement optimizations here. We could potentially apply all changes to the latest document locally, and only publish the result once. If multiple commands are typically applied at the same time, then this variant has potential benefits, saving network calls and storage space on (perma)nodes. Given the current set of commands, it seems that creating multiple services or methods at once is a realistic scenario.
https://github.com/iotaledger/identity.rs/blob/5a35860cea98482b9dc819b879660110b626a0cf/identity-account/src/events/command.rs#L28-L59
This variant's API is a bit less intuitive and more verbose to use than the others. First-time users might not realize they have to call update_identity for changes to be applied, although good documentation can surely help. It also actually needs three invocations rather than the current two, so it's more verbose in that regard. I would only go with this variant if there is a strong case to be made for the optimizations.
An actual "one-line" update would look something like variant 3. Either apply the command immediately with apply or queue it for later application with queue. A potential problem with this variant is that the new_command method will produce a Command which will have to hold a reference to the Account and IotaDocument. This is because contrary to the other variants, apply is called on the Command and therefore it needs to have a reference to the objects it works with. Thus, we introduce a tight coupling between Command and Account/IotaDocument. Given that Command and Account are only used together anyway, and no future usage outside the account is foreseeable, this seems okay.
The current variant 1 is somewhere in between, requiring two method invocations to update an identity, but offers no way to lazily apply multiple commands.
Any thoughts on this are very welcome - perhaps I've missed a variant that combines the strengths of some of these. Other than that, what are your preferences?

Variant 3 seems feasible.

A potential problem with this variant is that the new_command method will produce a Command which will have to hold a reference to the Account and IotaDocument.

Small correction: the current update_identity function in the Account takes in a generic IdentityKey, which is essentially an IotaDID identifying a document, not an entire IotaDocument. As an aside, this relates to the "Rename document in account examples to DID".
The references to an Account and IdentityKey may not need to be stored in the Command to implement Variant 3. Since each Command implements its own builder pattern, could the references temporarily live in the builder struct instead? If so, that would leave the Command as-is and avoid any tight coupling.
Implementing a queue can be considered separately as it seems possible with all three of the outlined variants. If I understand correctly, a queue would would need to store both an IdentityKey and the Command? Could it instead store the Events that each Command generates internally before they are processed by the Account? The latter approach has the benefit of catching validation errors early (before lazy evaluation) but I'm unsure if it's possible since there are checks, e.g. to ensure no duplicate key fragments are added, which depend on the current state of the document and hence previous updates.
Nit: I prefer the verb enqueue() to reserve queue() which would return the pending Commands / Events perhaps?

@PhilippGackstatter:  In Variant 2 we don't need define for which document we want to queue commands, but for applying we do? I see the elegance of Variant 3, but it has same problem of potentially forgetting to actually commiting the updates. I think I am leaning toward Variant 2, especially if we could save a reference of the correct acount and just call account.update_identity() to commit the changes. Would it also be possible to pass and arrray or list to quene_command?

@eike-hass Part of the issue is adding the ability to queue commands (to combine multiple updates and reduce network chattiness), which is essentially the only thing Variant 2 introduces.
The other part is "internalising" commands in the Account to make it somewhat easier to apply updates, which is what Variant 3 does and Variant 2 does not address. If that's not as important we can go with Variant 2 since the queue system seems like more of a priority and leave the refactor for another time?

I see the elegance of Variant 3, but it has same problem of potentially forgetting to actually commiting the updates.

That could be addressed with a similar "apply-on-drop" system which is currently used in the Account, where pending updates are committed if the Account is dropped (goes out of scope). The problem with that is any errors are unrecoverable at that point and there are issues with calling async functions on drop (has to block, panics are a problem etc.).
Another comment on Variant 2 is that the queue_command could take a reference to the DID if you're performing multiple updates on different documents? It would also prevent "forgetting" about a previously-queued command and then applying it on the wrong document. I'm not sure what to do with commands like CreateIdentity which shouldn't really allowed to be queued.
// Stores the created command in an internal queue in the account.
account.queue_update(command, did);
// We can queue multiple commands before applying them.
account.queue_update(other_command, did);

// Applies all pending commands to the document and updates the tangle with the latest document.
account.apply_pending_updates().await?;

Small correction: the current update_identity function in the Account takes in a generic IdentityKey, which is essentially an IotaDID

The references to an Account and IdentityKey may not need to be stored in the Command to implement Variant 3.

Good points!

Implementing a queue can be considered separately as it seems possible with all three of the outlined variants.

Not sure how that would be possible with variant 1, unless we add a second method to enqueue items, in which case we have basically variant 2, or using some apply-on-drop mechanism, which has too many problems currently, due to the involved asynchronicity, imho. Generally though, I agree it can be added later, especially with variant 3, where we can do the change to the "internalisation" of the commands first, and add a queue method later.

I prefer the verb enqueue()

Agreed :slightly_smiling_face:

I think I am leaning towards Variant 2, especially if we could save a reference of the correct acount

I think with Craig's suggestion, this point no longer stands. It will be stored in the CommandBuilder instead, and the Command will continue to be decoupled.

Would it also be possible to pass and arrray or list to queue_command?

I'm a bit hesitant to add this, unless there is a strong use case where we have many commands to apply at once. In Rust especially, I would rather do a commands.for_each(|command| account.enqueue_command(did, command));. For JS the story might be different though, so we could potentially add it in the Wasm bindings.

Another comment on Variant 2 is that the queue_command could take a reference to the DID if you're performing multiple updates on different documents?

For variant 2, I think that makes sense :+1:

CreateIdentity doesn't make sense to be queued.

Why not? Can we not create an identity, then add a method and a service, and only then publish all of it as one document?
As a more efficient alternative to account.create_identity and subsequent updates, that would be nice to have.

Variant 3 [...] has same problem of potentially forgetting to actually commiting the updates.

I think that's the biggest remaining issue with variant 2 and 3. I'm not a fan of the apply-on-drop, as it hides too much from the user and is difficult to implement. Another way we could batch multiple updates, without the problem to forget applying them, would be by building on @eike-hass's array suggestions:
let command =  /* omitted */
let other_command = /* omitted */

// We still have account.update_identity, but we also have...
account.update_identity_batch(did, [command, other_command]).await?;

This is a simple addition to variant 1. It's, however, also not a "one line" update.

Implementing a queue can be considered separately as it seems possible with all three of the outlined variants.

Not sure how that would be possible with variant 1, unless we add a second method to enqueue items, in which case we have basically variant 2 [...]

You're right.

CreateIdentity doesn't make sense to be queued.

Why not? Can we not create an identity, then add a method and a service, and only then publish all of it as one document?
As a more efficient alternative to account.create_identity and subsequent updates, that would be nice to have.

Because I think the only way to get an IotaDID of a newly created identity through the Account is to publish it. Without that we have no IdentityKey to reference when creating/apply any of the update commands, unless I'm mistaken? I agree it would be convenient to have, I just don't see how it would work with any of the suggested approaches since the caller usually needs the result of the create operation returned?

[...] Another way we could batch multiple updates, without the problem to forget applying them, would be by building on @eike-hass's array suggestions and combine this with variant 3: [...] in which case we have both the one line update, and the batch update without possibly forgetting it.

We can call this "Variant 4" for future reference. It neither fully internalizes the commands nor maintains an internal queue in the Account, and so pushes the responsibility to the caller to "queue" commands their side. I somewhat prefer this just because it avoids the overhead and complexity of maintaining a queue internally, and we can still optimise/"squash" multiple updates to a DID.
What if we have some sort of compound command that can be chained instead of queued? E.g.
account.new_command(did)
  .create_method()
  .chain() // <-- Creates some sort of "compound" struct/queue to hold multiple commands
  .new_command(did)
  .create_service()
  .chain()
  .apply() // <-- Executes all commands in the chain
  .await?;

I'm a bit iffy on whether the above syntax is possible, so it will probably have to be something more like:
account.new_command(did)
  .create_method()
  .chain(||
    account.new_command(did)
    .create_service()
    .finish()
  ).apply() // <-- Executes all commands in the chain
  .await?;

Just exploring other possible styles that avoid an internal queue in the Account.

// Stores the created command in an internal queue in the account.
account.queue_update(command, did);

We can btw. also rename the Command concept to Update, if you prefer that. I think @JelleMillenaar is also in favor of that. The only slight "conceptual clash" we have, is that creating an identity is part of the possible updates. But for that we have a dedicated method anyway (Account::create_identity) and for the rest it makes more sense.

Without that we have no IdentityKey to reference when creating/apply any of the update commands, unless I'm mistaken?

It looks like to call Account::process we only need an IdentityId which is an id of the account's internal identification system. When a new identity is created, the next IdentityId is generated, and is used to process the Command. So it might be possible to use that id to do multiple updates to a fresh identity, even before the did is generated. I'll investigate once I implement this.

What if we have some sort of compound command that can be chained instead of queued? E.g.

The first of your proposals might be possible. I would only implement this if that is possible - the second seems like too much API complexity given the original goal. I imagine it would also be a challenge to port this to Wasm. The first proposal still seems like a mouthful, too, but fulfills the "batch update in one statement" goal.
I think I like the array variant a bit better. For singular updates it has a one-statement solution, but for multiple updates, I find it acceptable to have multiple statements. It then also keeps the CommandBuilder's complexity fairly low.
Curious to hear what others think, though.

With the queue out of the way (implemented in #377), I'd like to revive the discussion with a focus on the API, so we can hopefully settle on a design.
  account
    .update_identity(did)
    .create_method()
    .scope(MethodScope::Authentication)
    .fragment("my-auth-key")
    .apply()
    .await?;

This would be somewhat verbose, but clear in what it does. "Update the identity did by creating a method with this scope and fragment, and apply it". If we care a lot about verbosity, one line can be removed if we supply the did that we want to update in create_method:
  account
    .create_method(did)
    .scope(MethodScope::Authentication)
    .fragment("my-auth-key")
    .apply()
    .await?;

Does this confuse first-time users? We're not creating a method on the account, yet that's one way to read it. The former is perhaps clearer here: we create an intermediary object (the return value of update_identity) that somehow represents the did, that we then create the method on.
Does either of these seem like a good choice, or can anyone come up with something concise and clear?
I also still like the current approach for its clarity, which only gets verbose/repetitive if multiple updates are applied subsequently, due to having to call update_identity after every update. I think that's acceptable, though. Just to show that again: achieving the same with the current approach would be:
 let command: Command = Command::create_method()
    .scope(MethodScope::Authentication)
    .fragment("my-auth-key")
    .finish()?;

account.update_identity(document, command).await?;

Prior to this discussion even, we could see if we still want to keep the builder pattern for the commands. To give the full picture, take CreateMethod as an example. It's definition is:
CreateMethod {
    scope: MethodScope,
    type_: MethodType,
    fragment: String,
  }

where type and scope have sane defaults, but the fragment is required. The builder pattern doesn't enforce this, though:
Command::create_method()
  .scope(MethodScope::Authentication)
  .finish()?;

would throw a runtime error, because the fragment isn't specified. However, this could be prevented at compile-time, by making the required parameters (fragment) part of Command::create_method.
This plays into the internalization debate, since option 2 would cobble together the did with the required parameters, which wouldn't be great. In that case, option 1 would be cleaner:
account
    .update_identity(did)
    .create_method("my-auth-key")
    .scope(MethodScope::Authentication)
    .apply()
    .await?;

We can also supply the did in apply. It feels a bit backwards to me. First we create the method, then we apply it to the did - should be the other way around. Still, it's very concise.
account
    .create_method("my-auth-key")
    .scope(MethodScope::Authentication)
    .apply(did)
    .await?;

I would prefer the verbose approach of starting the chain with update_identity(did). Are there other commands then create_method that would branch from there?

Are there other commands then create_method that would branch from there?

Yes, all of these entries would have a corresponding method.
https://github.com/iotaledger/identity.rs/blob/bb6bfa4e5f6d481641f116e1faaa100c5217b8b7/identity-account/src/events/command.rs#L32-L64

Then I am strongly in favor of update_identity(did).

Per the discussion in standup today, we have reached consensus on:

Implement option 1, i.e. the account.update_identity(did) style.
The builder pattern remains for Rust, constructor pattern would become too verbose for create_service, as an example. There are not enough "sane defaults" for a service, unless we start randomly generating fragments.
Constructor pattern remains an option for bindings, in particular JS where default parameters are an option.
Method names might need a review as the account has a lot of *_identity method names.


deepof_11 labeling scheme

Hi,
Thank you for providing this great software tool. We want to analyze the social behavior between two mice and applied multi animal DLC with 11 body parts. They correspond to the 14 body parts you used without the three on the tail (Tail_1, Tail_2, Tail_tip). Since you mentioned that you no longer use these three body parts in DeepOF, we thought we could create a project based on the default labeling scheme and simply omit the line exclude_bodyparts=["Tail_1", "Tail_2", "Tail_tip"],. Unfortunately, we run into problems while the project is being created. First it says: All-NaN slice encountered. The calculation of distances seems to work. But when calculating angles, it stops and says: "['T_Tail_1'] not in index". Is there a way to use the DLC data with only 11 body parts without defining a custom labeling scheme? Or could you suggest a way to set up the custom scheme to best match the original deepof_14 definition?
Thank you very much for your support!
Kind regards,
Oliver
Setting up project directories...
Loading trajectories...
Smoothing trajectories...
Interpolating outliers...
Iterative imputation of ocluded bodyparts...
Detecting arena...

All-NaN slice encountered

Computing distances...
Computing angles...

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/deepof/data.py:567, in Project.get_angles(self, tab_dict, verbose)
    564 for clique in bridges:
    565     dat = pd.DataFrame(
    566         deepof.utils.angle(
--> 567             np.array(tab[clique]).reshape([3, tab.shape[0], 2])
    568         ).T
    569     )
    571     dat.columns = [tuple(clique)]

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/pandas/core/frame.py:3813, in DataFrame.__getitem__(self, key)
   3812         key = list(key)
-> 3813     indexer = self.columns._get_indexer_strict(key, "columns")[1]
   3815 # take() does not accept boolean indexers

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/pandas/core/indexes/multi.py:2623, in MultiIndex._get_indexer_strict(self, key, axis_name)
   2621 indexer = self._get_indexer_level_0(keyarr)
-> 2623 self._raise_if_missing(key, indexer, axis_name)
   2624 return self[indexer], indexer

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/pandas/core/indexes/multi.py:2641, in MultiIndex._raise_if_missing(self, key, indexer, axis_name)
   2640 if cmask.any():
-> 2641     raise KeyError(f"{keyarr[cmask]} not in index")
   2642 # We get here when levels still contain values which are not
   2643 # actually in Index anymore

KeyError: "['T_Tail_1'] not in index"

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
Cell In[4], line 1
----> 1 my_deepof_project = my_deepof_project_raw.create(force=True)

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/deepof/data.py:700, in Project.create(self, verbose, force, debug, test, _to_extend)
    697     distances = self.get_distances(tables, verbose)
    699 if self.angles:
--> 700     angles = self.get_angles(tables, verbose)
    702 if self.areas:
    703     areas = self.get_areas(tables, verbose)

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/deepof/data.py:578, in Project.get_angles(self, tab_dict, verbose)
    576         angle_dict[key] = dats
    577 except KeyError:
--> 578     raise KeyError(
    579         "Are you using a custom labelling scheme? Out tutorials may help! "
    580         "In case you're not, are there multiple animals in your single-animal DLC video? Make sure to set the "
    581         "animal_ids parameter in deepof.data.Project"
    582     )
    584 # Restore original index
    585 for key in angle_dict.keys():

KeyError: "Are you using a custom labelling scheme? Out tutorials may help! In case you're not, are there multiple animals in your single-animal DLC video? Make sure to set the animal_ids parameter in deepof.data.Project"

Hi Oliver, cool to see that you are working with DeepOF! If I am not mistaken, you would still need to add the line "exclude_bodyparts=["Tail_1", "Tail_2", "Tail_tip"]" otherwise DeepOF is trying to search for these bodyparts but can't find it. Let me know if that solves the problem! Best , Joeri

Hi, Oliver! Joeri is right. Feel free to post your current code if you need further assistance!

Hi Joeri and Lucas,
thanks for your ideas. We tried that and unfortunately it does not work, either. The software is missing these bodyparts when running the command to exclude them KeyError: "labels ['T_Tail_1' 'T_Tail_2' 'T_Tail_tip' 'I_Tail_1' 'I_Tail_2' 'I_Tail_tip'] not found in level"
Should we use a custom labeling scheme or add empty columns with the missing titles to the csv file?
Best, Oliver
We just adopted the code from the tutorial:
my_deepof_project_raw = deepof.data.Project(
                project_path=os.path.join("DeepOF/SIT"),
                video_path=os.path.join("DeepOF/SIT/Videos/"),
                table_path=os.path.join("DeepOF/SIT/Tables/"),
                project_name="deepof_SRmice_project",
                arena="circular-autodetect",
                animal_ids=["T", "I"],
                table_format="csv",
                video_format=".mp4",
                exclude_bodyparts=["Tail_1", "Tail_2", "Tail_tip"],
                video_scale=600,
                smooth_alpha=1,
                exp_conditions=None,
)

my_deepof_project = my_deepof_project_raw.create(force=True)

The complete output is as follows:
Setting up project directories...
Loading trajectories...
Smoothing trajectories...

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Cell In[4], line 1
----> 1 my_deepof_project = my_deepof_project_raw.create(force=True)

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/deepof/data.py:681, in Project.create(self, verbose, force, debug, test, _to_extend)
    671     self.set_up_project_directory(debug=debug)
    673 self.frame_rate = int(
    674     np.round(
    675         pims.ImageIOReader(
   (...)
    678     )
    679 )
--> 681 tables, quality = self.load_tables(verbose)
    682 if self.exp_conditions is not None:
    683     assert (
    684         tables.keys() == self.exp_conditions.keys()
    685     ), "experimental IDs in exp_conditions do not match"

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/deepof/data.py:459, in Project.load_tables(self, verbose)
    456 if self.exclude_bodyparts != tuple([""]):
    458     for k, tab in tab_dict.items():
--> 459         temp = tab.drop(self.exclude_bodyparts, axis=1, level="bodyparts")
    460         temp.sort_index(axis=1, inplace=True)
    461         temp.columns = pd.MultiIndex.from_product(
    462             [sorted(list(set([i[j] for i in temp.columns]))) for j in range(2)]
    463         )

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/pandas/util/_decorators.py:331, in deprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper(*args, **kwargs)
    325 if len(args) > num_allow_args:
    326     warnings.warn(
    327         msg.format(arguments=_format_argument_list(allow_args)),
    328         FutureWarning,
    329         stacklevel=find_stack_level(),
    330     )
--> 331 return func(*args, **kwargs)

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/pandas/core/frame.py:5399, in DataFrame.drop(self, labels, axis, index, columns, level, inplace, errors)
   5251 @deprecate_nonkeyword_arguments(version=None, allowed_args=["self", "labels"])
   5252 def drop(  # type: ignore[override]
   5253     self,
   (...)
   5260     errors: IgnoreRaise = "raise",
   5261 ) -> DataFrame | None:
   5262     """
   5263     Drop specified labels from rows or columns.
   5264
   (...)
   5397             weight  1.0     0.8
   5398     """
-> 5399     return super().drop(
   5400         labels=labels,
   5401         axis=axis,
   5402         index=index,
   5403         columns=columns,
   5404         level=level,
   5405         inplace=inplace,
   5406         errors=errors,
   5407     )

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/pandas/util/_decorators.py:331, in deprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper(*args, **kwargs)
    325 if len(args) > num_allow_args:
    326     warnings.warn(
    327         msg.format(arguments=_format_argument_list(allow_args)),
    328         FutureWarning,
    329         stacklevel=find_stack_level(),
    330     )
--> 331 return func(*args, **kwargs)

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/pandas/core/generic.py:4505, in NDFrame.drop(self, labels, axis, index, columns, level, inplace, errors)
   4503 for axis, labels in axes.items():
   4504     if labels is not None:
-> 4505         obj = obj._drop_axis(labels, axis, level=level, errors=errors)
   4507 if inplace:
   4508     self._update_inplace(obj)

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/pandas/core/generic.py:4544, in NDFrame._drop_axis(self, labels, axis, level, errors, only_slice)
   4542     if not isinstance(axis, MultiIndex):
   4543         raise AssertionError("axis must be a MultiIndex")
-> 4544     new_axis = axis.drop(labels, level=level, errors=errors)
   4545 else:
   4546     new_axis = axis.drop(labels, errors=errors)

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/pandas/core/indexes/multi.py:2259, in MultiIndex.drop(self, codes, level, errors)
   2244 """
   2245 Make new MultiIndex with passed list of codes deleted
   2246
   (...)
   2256 dropped : MultiIndex
   2257 """
   2258 if level is not None:
-> 2259     return self._drop_from_level(codes, level, errors)
   2261 if not isinstance(codes, (np.ndarray, Index)):
   2262     try:

File ~/anaconda3/envs/deepof/lib/python3.9/site-packages/pandas/core/indexes/multi.py:2311, in MultiIndex._drop_from_level(self, codes, level, errors)
   2309 not_found = codes[values == -2]
   2310 if len(not_found) != 0 and errors != "ignore":
-> 2311     raise KeyError(f"labels {not_found} not found in level")
   2312 mask = ~algos.isin(self.codes[i], values)
   2314 return self[mask]

KeyError: "labels ['T_Tail_1' 'T_Tail_2' 'T_Tail_tip' 'I_Tail_1' 'I_Tail_2' 'I_Tail_tip'] not found in level"

Hi Oliver, Hmm yeah strange. It might be that there is a DeepOF bug when not using the 14 labels, even though it should work without them, @lucasmiranda42  what do you think?
Oliver, do you know if you are running the latest version of DeepOF? And would you mind sending us one example video and CSV file to see if we can recreate the issue? You can send it to<EMAIL_ADDRESS>

``Dear Oliver,
Apologies for the mistake and slight delay. I believe adopting a custom labelling scheme would indeed be the way to go, then. I think this should be unnecessary in future versions, however. Specifying parts to ignore should remove them from the underlying graph that DeepOF checks when raising the error you see. I'll mark this as a good first issue for contributing, and take action as soon as we can!
For now, you should define a custom graph as depicted in this tutorial. Below how the code would look:

deepof_custom = { # Note that this is the same original graph without the tail nodes
    "Nose": ["Left_ear", "Right_ear"],
    "Spine_1": ["Center", "Left_ear", "Right_ear"],
    "Center": ["Left_fhip", "Right_fhip", "Spine_2"],
    "Spine_2": ["Left_bhip", "Right_bhip", "Tail_base"],
}

my_deepof_project_raw = deepof.data.Project(
                project_path=os.path.join("DeepOF/SIT"),
                video_path=os.path.join("DeepOF/SIT/Videos/"),
                table_path=os.path.join("DeepOF/SIT/Tables/"),
                project_name="deepof_SRmice_project",
                arena="circular-autodetect",
                animal_ids=["T", "I"],
                table_format="csv",
                video_format=".mp4",
                # exclude_bodyparts=["Tail_1", "Tail_2", "Tail_tip"], # No need to exclude these anymore
                bodypart_graph=deepof_custom, # Pass the graph defined above
                video_scale=600,
                smooth_alpha=1,
                exp_conditions=None,
)

Please let us know how it goes, and feel free to comment if you still have issues!
Best,
Lucas

Dear Joeri and Lucas,
Thank you a lot for your assistance! The custom labeling scheme worked without problems. If the 11-point labeling would be supported in a future version, it would be nice, but for now I see the problem as solved.
Best,
Oliver

Dear Oliver,
Glad to hear! I'll leave the issue open for now, and close it as soon as we have time to work on the suggested enhancement.
Best!
Lucas

"deepof_11" (i.e. all body parts as in deepof_14 but without tail) is now available as an option during project creation (starting with version 0.7 of deepof). I close this issue now.


ContextMenu.Content type problem

Bug report
Current Behavior
Content type sideOffset has problem,show in picture

Expected behavior

Reproducible example
official context-menu
Suggested solution
export interface ContextMenuContentProps extends Omit<MenuContentProps, 'onEntryFocus' | 'side' | 'sideOffset' | 'align'>
change to
export interface ContextMenuContentProps extends Omit<MenuContentProps, 'onEntryFocus' | 'side' | 'align'>
Additional context

Your environment

Software
Name(s)
Version

Radix Package(s)
react-context-menu
2.1.4

React
n/a
18.2.0

Browser
chrome
116

Assistive tech

Node
n/a
v18.17.0

npm/yarn
pnpm
8.6.12

Operating System
windows
11

This is intended, the prop isn't supported for ContextMenu as it should open next to where you've right-clicked.


Inline diff multiple (or all) files

I just thought of a feature while cleaning up a lot of small corrections in quite a few files. Would it be possible to inline diff multiple (or all) files? And would it be of any use?

Because the implementation for the inline diff view is very complex, adding this feature seems like a sizable risk.  So unless there's an undeniable use-case with no alternative, I'm going to give a pretty firm "no" to this.  However, maybe we can add a different feature to address the need.
For example, we added Tab functionality to cycle through dashboards.  We could conceivably add Tab functionality to the inline diff view, to cycle through any other files that have changes (in the working dir when in default mode, and in the index when in cached mode).
Given the task that prompted this issue, would that have been useful?  If not, can you enumerate some of the pain points with the current feature set?  I'm definitely happy to take a look at this from that angle.

Sounds like another possible solution to part of #311 (seeing all the diffs between this branch and master). Personally I think I would prefer tabbing through different diffs, rather than seeing them all end to end in one file.

:+1:  I like the idea of hitting tab to continue to next file. Though it may get confusing if you have both staged and unstaged lines in the same files.

Maybe we should use s for switching between file that is available for inline diff? Than when you press s you will open a panel where we can fuzzy type to find  the file we want. Bad idea?
I personally don`t like tabbing since I never remember the order of files


Is it possible for realtime processing?

As titled

@pandysong
Sorry for the late reply. The model is non-autoregressive and mainly CNN-based. So if running on a GPU with some optimizations, it could be functioning in real-time.

@pandysong Porting to an SoC, that's cool! Actually, the pre-trained model is available here. You can play with it if you are interested.

Did you implement in realtime ? @pandysong


Update sbt-ci-release to 1.5.7

Updates com.geirsson:sbt-ci-release from 1.5.5 to 1.5.7.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.geirsson", artifactId = "sbt-ci-release" } ]

labels: sbt-plugin-update, semver-patch

This is included in https://github.com/alonsodomin/cron4s/pull/404 and can be closed.


A follow-up question about: Issue with dimension in last output of Discriminator structure in CycleGan notebook (#72)

Is there a reason for these two steps? Why not go for the single step of creating the final layer with a kernel size of 8, padding 0 and actually have it output just one value?
Originally posted by @christian-steinmeyer in https://github.com/udacity/deep-learning-v2-pytorch/issues/72#issuecomment-640414059

Though we are a little late to respond, we suggest you reach out to Udacity support for user-specific issues.
Thanks


Reverse colors in calendar matches excess elements

Are you using "tree-sitter" branch?
Yes
Describe the bug
Just a minor bug but I noticed that the reverse color highlighting for the current day in calendar view matches other elements that's not the current day
Steps to reproduce
I pressed<Leader>oid or <Leader>ois on a headline to get to calendar view
Expected behavior
Only the current day should be highlighted
Emacs functionality
No response
Screenshots and recordings

Note that the  202 in September 2021 is highlighted.
(M is where my cursor is and 20 under the Mon column is the current date)
OS / Distro
Arch Linux
Neovim version/commit
v0.6.0-dev
Additional context
No response

Thanks. Should be fixed now.


RHTAP-3056 GitLab CI tests

/retest

/retest

/retest

/retest

/retest

I've made necessary changes (merge with main branche + removed duplicate function) and run the tests locally.
Tests started successfully, but the build pipeline failed on
$ bash /work/rhtap/cosign-sign-attest.sh
Step: cosign-sign-attest
Results: /builds/rhtap-qe/itx2qae0l-go/results/cosign-sign-attest
Running cosign-sign-attest:sign
Using IMAGE_REGISTRY_USER and IMAGE_REGISTRY_PASSWORD secrets for registry auth
auth.go:274: logged in via /root/.docker/config.json
Error: signing [rhtap-quay-quay-rhtap-quay.apps.rosa.rhopp-rosa.54x8.p3.openshiftapps.com/rhtap/rhtap-qe:gitlab-c494eeb6677076fb0fa34d1fdddaa91feb775a13@sha[25](https://gitlab.com/rhtap-qe/itx2qae0l-go/-/jobs/8688953475#L25)6:d071873f1b1377ebd1f9cc070c42fc4b032b6822a42053414722207c5ae4ff56]: getting signer: reading key: decrypt: encrypted: decryption failed
main.go:74: error during command execution: signing [rhtap-quay-quay-rhtap-quay.apps.rosa.rhopp-rosa.54x8.p3.openshiftapps.com/rhtap/rhtap-qe:gitlab-c494eeb6677076fb0fa34d1fdddaa91feb775a13@sha256:d071873f1b1377ebd1f9cc070c42fc4b032b6822a42053414722207c5ae4ff56]: getting signer: reading key: decrypt: encrypted: decryption failed

I must have have done some mistake in setup.
Anyway.. I suggest to merge this PR (once through CI) and do any followup fixes in future

1 of 2 runs succeeded -https://console.redhat.com/application-pipeline/workspaces/rhtap-shared-team/applications/rhtap-e2e/pipelineruns/e2e-4.16-wlgps
The other one failed on rosa provisioning step.
Merging.


Allow for re-authentication

When using OAuth browser authentication, allow for a retry of that style of authentication.

@ericadamski This seems to be handled by the SDK, I have tried resetting a few times and I am always able to login and post again.

Is this complete in #5 ?

@ericadamski I think it's handled by default already, by your package, or the SDK. Or do you mean more if it fails first time, a way to reset and retry?

Ya, more specifically for the issue that you came across.

If I use the Google 2FA login method, can I reset the tokens? I think I got a bad request as documented in #13 and need to reset and try again.

@jaredmorgs You can always try going into the atom config file (click the Atom > Config...) and deleting the following keys:

"medium-upload:access_token"
"medium-upload:expires_at"
"medium-upload:refresh_token"

Hopefully this will allow you to get fresh tokens.
That being said, I will take a look into using 2FA google flow as it hasn't been tested in this library yet. Let me know if you run into any more issues


[owasp] Periodic jobs on active branches

Motivation
OWASP dependency check is never run against active release branches, so we are not aware to have a fixable vulnerability on an active branches.
Modifications

Added periodic GH workflow job to run OWASP dependency check against branch-2.7, branch-2.8, branch-2.9
Extracted the runner command from the master branch workflow to a custom action

Documentation

[x] no-need-doc

can you discuss this on dev@ please ?

thanks @lhotari , now it's so much better


A certain Web3 dApp I'm trying to integrate in our app is not working. The Uniswap App

Link: https://app.uniswap.org/#/swap

@harveyjavier   Did you find any solutions?  I want do intergations for dapp in my android app too.


Added OkHttpDownloader in the OkHttp extension

Codecov Report

Merging #10 into dev will increase coverage by 0.28%.
The diff coverage is 86.36%.

@@            Coverage Diff             @@
##              dev      #10      +/-   ##
==========================================
+ Coverage   75.67%   75.96%   +0.28%
==========================================
  Files          45       45
  Lines         629      649      +20
  Branches       66       67       +1
==========================================
+ Hits          476      493      +17
- Misses        125      127       +2
- Partials       28       29       +1

Impacted Files
Coverage Δ

...rycharlton/bittrexapi/UrlConnectionDownloader.java
4.54% <ø> (ø)
:arrow_up:

.../com/corycharlton/bittrexapi/BittrexApiClient.java
91.71% <ø> (ø)
:arrow_up:

...n/java/com/corycharlton/bittrexapi/Downloader.java
39.28% <ø> (ø)
:arrow_up:

...com/corycharlton/bittrexapi/response/Response.java
66.66% <ø> (ø)
:arrow_up:

...rlton/bittrexapi/response/CancelOrderResponse.java
50% <0%> (-50%)
:arrow_down:

...arlton/bittrexapi/response/GetBalanceResponse.java
100% <100%> (ø)
:arrow_up:

...ttrexapi/response/PlaceSellLimitOrderResponse.java
100% <100%> (ø)
:arrow_up:

...ittrexapi/response/GetMarketSummariesResponse.java
100% <100%> (ø)
:arrow_up:

...trexapi/response/GetWithdrawalHistoryResponse.java
100% <100%> (ø)
:arrow_up:

.../bittrexapi/response/GetMarketSummaryResponse.java
100% <100%> (ø)
:arrow_up:

... and 13 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7e08ecf...23f7b8c. Read the comment docs.


Avoid generation of RNCore component if they have been generated already

Summary:
Added a check to avoid the regeneration of RNCore components in case they have been generated already.
In order to maintain backward compatibility and to make sure not to break internal use cases, I think we should still keep the possibility to generate these components at pod install time.
Internal users of RNTester, for example, will not run yarn prepack before building react-native using OSS technology.
Notice that, in this specific case, the Codegen generates the file in a path that is not node_modules.
Changelog:
[General][Added] - Skip generation of RNCore if the files have been already generated
Differential Revision: D54308832

03ba46f7e69d802530d43b5516da5f77def23fbd


Q: dynamic require module imports

when using dynamic require module imports, the module is correctly replaced but with a static es6 import,
how would it be possible to replace it with dynamic import?
from how i understand dynamic import is only async in es6 though (Promise based..) it's difficult as in some old codebases you might have it in a synchronous context (not Promise)

it's it dynamic at run-time or compile-time?


Gamepads - small improvements

enable reattaching gamepads during player's controls assignment
[Linux] fix timing issue/exception thrown when processing the JOYDEVICEADDED event after the device has been detached already (some gamepads simply detach from the system when attached and reattach as completely different device just a fraction of second later)

Asi jo, uz jsem nemel sily :). Jeste to porefaktoruju. Zavedl bych nejakou
tridu "Event processor", ktera by se starala prave o tohleto.
Jeste me napadlo, ze by tenhle polling pri prirazovani controllu slo
nahradit nejakou "prirazovaci" GUI komponentou, ktera by proste mela focus
a ty on keydown eventy by se ji zpropagovaly ( z Application nebo teda z
toho Event processoru). To by ale znamenalo naimplementovat focus.
F
On Tue, Sep 11, 2018, 10:53 AM Ondřej Daněk<EMAIL_ADDRESS>wrote:

@odanek commented on this pull request.
In source/Menu.cpp
https://github.com/odanek/duel6r/pull/84#discussion_r216592521:

     SDL_Event event;

   while (SDL_PollEvent(&event)) {

       // Eat all remaining keyboard events;

   int result = 0;

   //TODO This logic duplicates event processing logic in Application. Should be refactored.

Nejde to teda odsud i z Application hodit do nejake funkce, ktera by se
volala z obou mist?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/odanek/duel6r/pull/84#pullrequestreview-154106753,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AD-05ZTK27qIDm04XaQx6uEDsPwzRC3Cks5uZ3n_gaJpZM4WiRX6
.

Ok, pockam jestli to jeste nejak uceses. Jinak jo, ty eventy, zejmena takove to cekani na stisk klavesy v Menu apod. jsou nedoreseny, je tam dost problemu.