For example we can set unique id on style element in DOM, and if you want, unload it by bundle name or unique id.
It may be helpful in case: lazy load module have global style imports from css libraries (bundled from node_modules), but if you will navigate to another route with another module --> styles from first can conflict with second

For lazy styles, it is your responsibility to add and remove them from the DOM. Similar to how you are doing the load, you need to implement an unload


openBrowser: true when listening on all network interfaces doesn't load the correct URL.

For instance, using the configuration
    'http-server': {
        dev: {
            root: 'dist/',
            port: 8080,
            host: '<IP_ADDRESS>',
            openBrowser: true
        }
    }

will make the browser load the url '<IP_ADDRESS>:8080' which is not valid.
Maybe make it in these cases fallback to localhost?

Hi @TiagoOliveiraMarques, I've updated the package with a fix to this problem, available on<EMAIL_ADDRESS>Tks for reporting.


Update the Android Versioning task to make it cross platform

Re-write the Android Task in the Versioning Extension to have the same functionality as the current PowerShell version but be written in TypeScript/NodeJS so it can be used on Linux and Macs

Shipped in PR #220 in marketplace as 1.29.5


Support for Si7021 sensor

As the Si7021 is now highly recommended by Sonoff, could it be possible to add support for this sensor? From other readings, it seems the protocol is very similar to DHT22 (only timing differs?). Thanks.

Here is a link where the protocol is explained, and the related code
Maybe this can help :-)

I am interesting too. I have th16 and si7021.

To be precise, there are 2 variants of Si7021 :

the "original" Si7021 which is a 2-wire sensor, protocol i2c) is explained here
and "Itead Si7021", which is a modified 1-wire sensor (to make it appear like a DHT22), protocol explained above. This is the one used by Sonoff on TH16.
I think both of them could have an interest in the future given the advantages of this sensor.

Any news about this?

You can test it with this PR: #725


Add Rust–C++ interop book

Ping @glyn since it looks like you are not watching this repo.

Ping @glyn since it looks like you are not watching this repo.

I thought creating a repo would make me watch it by default. Anyway, I'm watching it now, thanks!

Ping @glyn since it looks like you are not watching this repo.

I thought creating a repo would make me watch it by default. Anyway, I'm watching it now, thanks!

Merged in e5c3042301860602ddbf2d79b17d05fd2ea3f6e5. Thanks @dtolnay!

Merged in e5c3042301860602ddbf2d79b17d05fd2ea3f6e5. Thanks @dtolnay!


Samsung TouchWiz 5.0.1 decompile but cannot recompile

As the title says, I'm trying to recompile SecMms_Candy.apk (messaging app) but can not. Even if I don't make any changes. I'm using unmodified framework,twframework and messaging app. I have tried to edit other files like settings and framework and work fine. I only have issues with this app.
Using apktool 2.0.2, windows 7 x64
You can see all logs and files here https://mega.nz/#F!WJo1AL4A!a11SR8UdOklmy9d3tLz_vg

ibotpeaches@tombstone:~/Downloads/Apktool/Bug1080$ apktool if framework-res.apk -t 1080
I: Framework installed to: /home/ibotpeaches/apktool/framework/1-1080.apk
ibotpeaches@tombstone:~/Downloads/Apktool/Bug1080$ apktool if twframework-res.apk -t 1080
I: Framework installed to: /home/ibotpeaches/apktool/framework/2-1080.apk
ibotpeaches@tombstone:~/Downloads/Apktool/Bug1080$ apktool d SecMms_Candy.apk -t 1080
I: Using Apktool 2.0.3-e7c1bc-SNAPSHOT on SecMms_Candy.apk
I: Loading resource table...
I: Decoding Shared Library (touchwiz), pkgId: 2
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /home/ibotpeaches/apktool/framework/1-1080.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Loading resource table from file: /home/ibotpeaches/apktool/framework/2-1080.apk
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
apktooI: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
ibotpeaches@tombstone:~/Downloads/Apktool/Bug1080$ apktool b SecMms_Candy
I: Using Apktool 2.0.3-e7c1bc-SNAPSHOT
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
E/ResourceType(15111): Failed resolving ResTable_map name at 1824 with ident 0x0204000e
warning: Package not found for resource #0201002c
W/ResourceType(15111): Attempt to retrieve bag 0x0201002c which is invalid or in a cycle.
warning: Package not found for resource #0201002c
I: Building apk file...
I: Copying unknown files/dir...
ibotpeaches@tombstone:~/Downloads/Apktool/Bug1080$

No error, based on your stacetrace. This was already fixed (5e4bae05264e9f1ea1c969971d81d824558cd12f) which will be in the public 2.0.3 release.
Duplicate of #1053


matplotlib error while installing package

Collecting matplotlib==3.0.2
Using cached matplotlib-3.0.2.tar.gz (36.5 MB)
ERROR: Command errored out with exit status 1:
command: /opt/anaconda3/envs/ethicalml/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/wv/m62_p54d5bx1dnq_m07ck3l40000gn/T/pip-install-303disb7/matplotlib/setup.py'"'"'; file='"'"'/private/var/folders/wv/m62_p54d5bx1dnq_m07ck3l40000gn/T/pip-install-303disb7/matplotlib/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/wv/m62_p54d5bx1dnq_m07ck3l40000gn/T/pip-install-303disb7/matplotlib/pip-egg-info

I´m having the same issue

Thank you for reporting @ArpitSisodia & @americoalmeida - I have been looking at upgrading the versions for a while but it seems there would be some nuances on doing so, if you managed to find a workaround it would be great if you could contribute upstream as a pull request

Fixed via #13


neon-cli: load hosting managers only if needed

neon-cli is a bit slow right now.  I just noticed that we're loading the hosting managers for every command, even those that don't need them.
We need to optimize this by loading these only when actually needed.  I could see adding a CommandBase.RequiresHostingManagers property for this.

DONE


Is repo name wrong?

This repository name is fluentd-plugin-logzio.
But in fluent-plugin-logzio.gemspes,
s.homepage    = 'https://github.com/logzio/fluent-plugin-logzio'

This link is 404 not found for now.
I think fluent-plugin-logzio is proper for this repository name.
You can fix repository name and GitHub will redirect old repository to new repository.
Thanks!

Hey @okkez!
Can I ask why you think that fluent-plugin-logzio is a better name?
I prefer not to change the repo name, and just change the gemspec

@roiravhon Hi!
Because Almost all Fluentd plugins:

repository name is started with fluent-plugin-
gem name is started with fluent-plugin-
repository name is equals to gem name

When users are looking for fluent plugins:
If repository name is started with fluent-plugin-, users can find the repository on GitHub easily.
If gem name is started with fluent-plugin-, users can find the gem on rubygems.org and gem search command.
$ gem search fluent-plugin- | wc -l
734
$ gem search fluentd-plugin- | wc -l
1

$ gem query -r "\Afluent-plugin-" | wc -l
731
$ gem query -r "\Afluentd-plugin-" | wc -l
1

Thanks for the detailed response :)
Good point you have there.
Will be fixed

Changed repo name.
Thanks for the feedback @okkez!

Thanks!


Fix memory profile jobs on master

Followup for #16854 which updated the name of "memory_profile_test", which broke memory profile tests running on master.
This PR should fix it and also renames memory_profile_client and memory_profile_server to match the .cc file names.
https://source.cloud.google.com/results/invocations/b1c550dc-3eff-4701-9a07-244764241fb2/log
+ make CONFIG=opt memory_profile_test memory_profile_client memory_profile_server -j 32
make: *** No rule to make target 'memory_profile_test'.  Stop.
+ FAILED=true

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,966,317      Total (=)      1,966,317

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,909,773      Total (>)     10,909,771

 No significant differences in binary sizes

Corrupt JSON data (indicates timeout or crash):
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.old: 10

[microbenchmarks] No significant performance differences

The distribution test failure is an kokoro tooling problem (b/117875346).


Problem with loading module

Hi, when i installed module for a first time everything was fine, but when I turned off my application and turn on again I got this error:

I tried to delete module and install it again (with command npm install --save react-s3) but bug is not fixed. Any help?

Hi, I don't know why this is happening. I'll try to reproduce the same to fix it!
Thanks for filling the issue !

I just tried and everything is working perfectly here, are you CRA or something else ?
Here a working exemple https://codesandbox.io/s/l9233mz349.
Please let me now if it stills bugging!

Hello,
Thanks for answering, I was a busy but I find what is a problem. In this plugin you use import instead require and my node version (8.9.4) is not accept this. Witch version of node you use ?

Hi,
I use the v9+

Sorry guys.
I just published a new version which transpiles to ES5, you can now use it everywhere!

@Milosh1  & @dilipkumar2k6  I just fixed your issues.
Install the latest version 1.5.5 by doing npm i aws-s3


Add filtering by function & graph tooltip docs

I feel like these fit better into a new category in the sidebar called "Features". What do you think?

I feel like these fit better into a new category in the sidebar called "Features". What do you think?

good suggestion!


Update skyaware.lighttpd.conf

(plugin.c.190) Cannot load plugin mod_setenv more than once, please fix your config (lighttpd may not accept such configs in future releases)

is shown in startup logs. Moving mod_setenv to top so it imports only once

Thanks Fred!


Fix say all not being resumed when the text was found on skim reading

Fixes issue #15.

I have tested the artifact generated with this PR.
With this version of the add-on, sayAll is resumed as expected. Good job!


Community post request shows on main feed

I'm thoroughly confused about the state of NIP-72 and what people are envisioning, but as a user I feel like a post to a community should not clutter my main note feed which my followers see.
I created an issue and PR on the NIP side when I thought I understood it, but wanted to note it here to get user and developer perspectives.

eventually I plan to add a "hide community posts" option to the home feed so users can customize this. But I think the way NIP-72 is written makes sense.
I view communities as more of a collection or aggregation of notes instead of an exclusive club. all communities are public ( like reddit ) and having the note be a kind 1 goes to demonstrate that.


Add pre-commit hook configuration for other projects to use

I recently started using pre-commit to manage the installation and running of linters in one of my projects. Basically (read their docs for more info) developers on projects can save references to linters/checkers/etc in a .pre-commit-config.yaml file in their repository, and new developers can get them installed more quickly and consistently - plus they can be configured to run on every git commit.
Some of the linters "supported" by pre-commit are in mirrors of the main projects (for example: prettier), but other projects have added the required hook definitions to their repositories directly (for example: go-jsonnet). I think it would be great if we supported using tekton-lint through pre-commit.
To "support" using pre-commit with this project, we would just need to add a .pre-commit-hooks.yaml file, with some specific information. I've made a simple fork to test this out, and it looks good - although more tests might be needed: https://github.com/JustinKuli/tekton-lint/blob/main/.pre-commit-hooks.yaml. I'd be happy to open a PR based on that if there is interest.
To be clear, I'm not proposing that this project should start using/enforcing use of pre-commit in its own development workflow. This issue is focused on making tekton-lint easier for other projects to use via pre-commit.

Also, I should note, it is already possible to "use" pre-commit to run tekton-lint in a project through a "local" hook. For example:
# .pre-commit-config.yaml
repos:
  - repo: local
    hooks:
      - id: tekton-lint
        name: tekton-lint
        entry: tekton-lint
        language: system
        files: pipeline.yaml

However, this requires the developer to have installed pre-commit and tekton-lint separately. If this project had a .pre-commit-hooks.yaml file, then pre-commit could handle the installation of tekton-lint for the developer, along with any other linters/etc they were using through pre-commit.


[BUG] Error generating OpenAPI with generated scheme

Hello!
I apologize in advance for my "English"
When trying to see "swagger" when the server is running without "--reload" parameter, an error appears "Fetch error: Internal Server Error /openapi.json"
It appears only if the documentation contains generated schemes (for example, single parameter with embed=True (as in the example below), or OAuth2PasswordRequestForm dependency).
If you add the option “--reload” to the uvicorn server launch command, the error disappears.
Traceback:
ERROR: Exception in ASGI application
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "/usr/local/lib/python3.7/site-packages/starlette/applications.py", line 133, in __call__
    await self.error_middleware(scope, receive, send)
  File "/usr/local/lib/python3.7/site-packages/starlette/middleware/errors.py", line 177, in __call__
    raise exc from None
  File "/usr/local/lib/python3.7/site-packages/starlette/middleware/errors.py", line 155, in __call__
    await self.app(scope, receive, _send)
  File "/usr/local/lib/python3.7/site-packages/starlette/middleware/cors.py", line 76, in __call__
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.7/site-packages/starlette/middleware/cors.py", line 76, in __call__
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.7/site-packages/starlette/exceptions.py", line 73, in __call__
    raise exc from None
  File "/usr/local/lib/python3.7/site-packages/starlette/exceptions.py", line 62, in __call__
    await self.app(scope, receive, sender)
  File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 590, in __call__
    await route(scope, receive, send)
  File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 208, in __call__
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 41, in app
    response = await func(request)
  File "/usr/local/lib/python3.7/site-packages/fastapi/applications.py", line 88, in openapi
    return JSONResponse(self.openapi())
  File "/usr/local/lib/python3.7/site-packages/fastapi/applications.py", line 80, in openapi
    openapi_prefix=self.openapi_prefix,
  File "/usr/local/lib/python3.7/site-packages/fastapi/openapi/utils.py", line 264, in get_openapi
    flat_models=flat_models, model_name_map=model_name_map
  File "/usr/local/lib/python3.7/site-packages/fastapi/utils.py", line 45, in get_model_definitions
    model_name = model_name_map[model]
KeyError: <class 'Body_refresh_access_token_users_refresh_token_post'>

Endpoint view function:
@auth_routes.post(
    '/refresh_token',
    status_code=HTTP_200_OK,
    response_model=AuthTokens
)
def refresh_access_token(
        *,
        refresh_token: str = Body(..., title='Refresh token', embed=True)
):

Response model scheme:
class AuthTokens(BaseModel):
    access_token: str = Schema(..., title='authorization_token')
    token_type: str = 'bearer'
    refresh_token: str = Schema(..., title='refresh token')

Environment:
Docker: 19.03.2, build 6a30dfc
Docker-compose: 1.23.1, build b02f1306
Used docker image: python:3.7-alpine
Python: 3.7.4
FastAPI: 0.38.0
P.S.: I understand that perhaps the swagger is not needed in the production version, but the presence of “--reload” in the docker in any version of the image, except for the development version, in my opinion is bad.
Thank you in advance!

Could you post your response model code? (AuthTokens)

@i8enn it's a bit difficult to guess what might be happening in your use case without being able to run the code.
Please, check the tutorial and make sure that everything is working correctly for you: https://fastapi.tiangolo.com/tutorial/security/ . Follow it as is, and see if it works as expected, that should let you see if the error is related to your current environment.
If that doesn't help you find the issue, then please create a minimal self-contained app in a single script that shows the error. That way we can run it and check it.

@tiangolo, okay, thanks. I'm check this during this week and I will say about the results.

I can reproduce with a simple endpoint that following the tutorial
@router.post("/v1/login")
async def user_login(login_credential: OAuth2PasswordRequestForm = Depends()):
    pass

And same error:
KeyError: <class 'Body_user_login_api_user_v1_login_post'>

Also, simple case described in docs:
@app.post("/login/")
async def login(*, username: str = Form(...), password: str = Form(...)):
    return {"username": username}

@tiangolo hello! I apologize for the late answer.
Unfortunately, now I have to work a lot on project with "Django" and the development of an application that is written using "FastAPI" is now suspended.
But how godlike it is - working with FastAPI... Thank you very much for this beautiful framework!
In turned out to be on simple examples that it could not be reproduced, and therefore I had to reproduce a more similar my real project application structure and launch mechanisms.
I created a repository so that can conveniently deploy it locally.
This is done in haste, so some things may seem unnecessary as part of a this small example
In my application, I redefined the "uvicorn" launch command (unfortunately, I can’t remember why now).
Perhaps it’s because of launch of the application using "click" and calling the application initialization function in command function.

@xgenvn, hello! Thanks for your help!
The error corresponds to mine, but I received it in a completely different way and I could not reproduce your case. Take a look at this branch of the repository: maybe I'm doing something wrong?

Run script
View

The start is the command:
python -m app

python -m app
@i8enn this is exactly why it also fails in my case. I need uvicorn import to start debugging within vscode (perhaps you had same thought).

I believe if you try using uvicorn command line, everything should work as expected.

@xgenvn I do not quite understand you.
If I understand correctly for try reproduce run fail case with python -m app runserver, then your entry file (app.__main__.py) contains similary code:
if __name__ == '__main__':
    import uvicorn
    uvicorn.run("app.main:app", host="<IP_ADDRESS>", port=8000, reload=False)

I also made a view similar to yours in this example:

I also tested with single param as well:
@app.post("/login/")
async def login(*, username: str = Form(...)):
   pass

Next step - run python -m app runserver command. I run this command in docker. Now she is without a runserver, but I also checked with her.
If I understand you correctly, the problem arises from the uvicorn import (which I did in app.main.py). But I could not get such an effect. May be problem in packages version?
I read a little your comment editing history in which you talked about debugging through VS Code, i and also decided this to check. I launched a debug with an app module in my example and everything works.

@i8enn
I didn't change any line before reproducing the issue. And I run directly the command from a terminal, not using docker. Also the issue seems happening for MacOS as well as Ubuntu.
Packages version:
Python: 3.7.6
FastAPI: 0.49
Uvicorn: 0.11.3

If I understand you correctly, the problem arises from the uvicorn import (which I did in app.main.py)

Yep, this is where I think it raises the issue. I need to import uvicorn to launch and debug. The launcher command for VSCode is python -m ... hence it's the same with the fail case I described above.
Perhaps my issue is not exactly the same to you, but it raises within uvicorn domain so I decided to post it here.

Thanks for reporting back @i8enn !
I'm glad you enjoyed working with FastAPI.
If later you come back to this and want to check the issue again, then you could create a simple self-contained example that replicates the problem, that way I could give it a look.
But meanwhile, I think we can then just close this issue, right?

@xgenvn if you are having problems, please create a new issue with a small self-contained example replicating your problem, that will allow me (or anyone else) to help you find the cause.

@tiangolo, yes, let's close the issue and if I encounter it later again, I will complement it.
Thank you for participating in my problem.

@tiangolo This issue is present on API gateway. Locally, with or without --reload there is no issue, but when deployed on AWS, /docs is inaccessible. Endpoints work fine, and you can even open the /openapi.json file directly.

@theoturner your issue does not sound like it is related, can you please open a new issue with a reproduction?

I ran into this same issue with 0.62

@cochiseruhulessin please open a new issue.


feat: add items count column to datasets list

Added SQL query to count datapoints per dataset
Added items count to dataset API response
Added Items column to datasets table in UI

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Closing in favour of #288


Run steps returning AttributeError _set_private_attributes

@louis030195
First I initialize the assistant with:
import json
from openai import OpenAI
client = OpenAI(
    base_url="http://localhost:3000",
    api_key="EMPTY"
)

As = client.beta.assistants.create(
    name="Math Tutor",
    instructions="You are a personal math tutor. You always begin your responses with'BANANA'. Write and run code to answer math questions.",
    tools=[{"type": "code_interpreter"}],
    model="gpt-3.5-turbo"
)
Th = client.beta.threads.create()
Me1 = client.beta.threads.messages.create(
    thread_id=Th.id,
    role="user",
    content="Please solve [1 2 3;4 5 6] x [7 8;9 10;11 12] using python and show me the result."
)
Ru1 = client.beta.threads.runs.create(
  thread_id=Th.id,
  assistant_id=As.id,
)

Which prints logs:
[2024-01-24T15:47:35Z INFO  assistants_core::assistants] Creating assistant: Assistant { inner: AssistantObject { id: "", object: "", created_at: 0, name: Some("Math Tutor"), description: None, model: "gpt-3.5-turbo", instructions: Some("You are a personal math tutor. You always begin your responses with'BANANA'. Write and run code to answer math questions."), tools: [Code(AssistantToolsCode { type: "code_interpreter" })], file_ids: [], metadata: None }, user_id: "00000000-0000-0000-0000-000000000000" }
tool: Code(AssistantToolsCode { type: "code_interpreter" })
[2024-01-24T15:47:35Z INFO  assistants_core::threads] Creating thread for user_id: 00000000-0000-0000-0000-000000000000
[2024-01-24T15:47:35Z INFO  assistants_core::messages] Adding message to thread_id: 9d4938dc-d357-4c6f-b92d-b89f169ae759, role: User, user_id: 00000000-0000-0000-0000-000000000000
thread_id: 9d4938dc-d357-4c6f-b92d-b89f169ae759
[2024-01-24T15:47:35Z INFO  assistants_core::runs] Running assistant_id: 2005597a-2b5e-4a37-8cce-71bccd5cfbd0 for thread_id: 9d4938dc-d357-4c6f-b92d-b89f169ae759
[2024-01-24T15:47:35Z INFO  assistants_core::runs] Creating run for assistant_id: 2005597a-2b5e-4a37-8cce-71bccd5cfbd0
[2024-01-24T15:47:35Z INFO  assistants_core::runs] Updating run for run_id: c2951de7-eded-4d1c-9bcf-2726f5f99b3b
[2024-01-24T15:47:35Z INFO  assistants_core::executor] Retrieving run
[2024-01-24T15:47:35Z INFO  assistants_core::runs] Getting run from database for thread_id: 9d4938dc-d357-4c6f-b92d-b89f169ae759 and run_id: c2951de7-eded-4d1c-9bcf-2726f5f99b3b
[2024-01-24T15:47:35Z INFO  assistants_core::executor] Retrieving assistant Some("2005597a-2b5e-4a37-8cce-71bccd5cfbd0")
[2024-01-24T15:47:35Z INFO  assistants_core::runs] Updating run for run_id: c2951de7-eded-4d1c-9bcf-2726f5f99b3b
[2024-01-24T15:47:36Z WARN  assistants_core::file_storage] Bucket already exists
[2024-01-24T15:47:36Z INFO  assistants_core::executor] Retrieving thread 9d4938dc-d357-4c6f-b92d-b89f169ae759
[2024-01-24T15:47:36Z INFO  assistants_core::threads] Getting thread from database for thread_id: 9d4938dc-d357-4c6f-b92d-b89f169ae759
[2024-01-24T15:47:36Z INFO  assistants_core::messages] Listing messages for thread_id: 9d4938dc-d357-4c6f-b92d-b89f169ae759
[2024-01-24T15:47:36Z INFO  assistants_core::executor] Formatted messages: <message>
    {"content":[{"text":{"annotations":[],"value":"Please solve [1 2 3;4 5 6] x [7 8;9 10;11 12] using python and show me the result."},"type":"text"}],"role":"user"}
    </message>

[2024-01-24T15:47:36Z INFO  assistants_core::executor] Assistant tools: [Code(AssistantToolsCode { type: "code_interpreter" })]
[2024-01-24T15:47:36Z INFO  assistants_core::executor] Asking LLM to decide which tool to use
[2024-01-24T15:47:36Z INFO  assistants_extra::llm] Calling OpenAI API with messages: [Message { role: "system", content: "You are an assistant that decides which tool to use based on a list of tools to solve the user problem.\n\nRules:\n- You only return one of the tools like \"<retrieval>\" or \"<function>\" or \"<code_interpreter>\" or \"<action>\" or multiple of them\n- Do not return \"tools\"\n- If you do not have any tools to use, return nothing\n- Feel free to use MORE tools rather than LESS\n-
Tools use snake_case, not camelCase\n- The tool names must be one of the tools available, nothing else OR A HUMAN WILL DIE\n- Your answer must be very concise and make sure to surround the tool by <>, do not say anything but the tool name with the <> around it.\n- If you do not obey a human will die\n\nExample:\n<user>\n<tools>{\"description\":\"useful to call functions in the user's product, which would provide you later some additional context about the user's problem\",\"function\":{\"arguments\":{\"type\":\"object\"},\"description\":\"A function that compute the purpose of life according to the fundamental laws of the universe.\",\"name\":\"compute_purpose_of_life\"},\"name\":\"function\"}\n---\n{\"description\":\"useful to retrieve information
from files\",\"name\":\"retrieval\"}</tools>\n\n<previous_messages>User: [Text(MessageContentTextObject { type: \"text\", text: TextData { value: \"I need to know the purpose of life, you can give me two answers.\", annotations: [] } })]\n</previous_messages>\n\n<instructions>You help me by using the tools you have.</instructions>\n\n</user>\n\nIn this example, the assistant should return \"<function>,<retrieval>\".\n\nAnother example:\n<user>\n<tools>{\"description\":\"useful to call functions in the user's product, which would provide you later some additional context about the user's problem\",\"function\":{\"arguments\":{\"type\":\"object\"},\"description\":\"A function that compute the cosine similarity between two vectors.\",\"name\":\"compute_cosine_similarity\"},\"name\":\"function\"}\n---\n{\"description\":\"useful to retrieve information from files\",\"name\":\"retrieval\"}</tools>\n\n<previous_messages>User: [Text(MessageContentTextObject { type: \"text\", text: TextData { value: \"Given these two vectors, how similar are they?\", annotations: [] } })]\n</previous_messages>\n\n<instructions>You help me by using the tools you have.</instructions>\n\n</user>\nAnother example:\n<user>\n<tools>{\"description\":\"useful to call functions in the user's product, which would provide you later some additional context about the user's problem\",\"function\":{\"arguments\":{\"type\":\"object\"},\"description\":\"A function that retrieves the customer's order history.\",\"name\":\"get_order_history\"},\"name\":\"function\"}\n---\n{\"description\":\"useful to retrieve information from files\",\"name\":\"retrieval\"}</tools>\n\n<previous_messages>User: [Text(MessageContentTextObject { type: \"text\", text: TextData { value: \"Can you tell me what my best selling products are?\", annotations: [] } })]\n</previous_messages>\n\n<instructions>You help me by using the tools you have.</instructions>\n\n</user>\n\nIn this example, the assistant should return \"<function>,<retrieval>\".\n\nAnother example:\n<user>\n<tools>{\"description\":\"useful to call functions in the user's product, which would provide you later some additional context about the user's problem\",\"function\":{\"arguments\":{\"type\":\"object\"},\"description\":\"A function that compute the purpose of life according to the fundamental laws of the universe.\",\"name\":\"compute_purpose_of_life\"},\"name\":\"function\"}\n---\n{\"description\":\"useful to retrieve information from files\",\"name\":\"retrieval\"}\n---\n{\"description\":\"useful for performing complex math problems which LLMs are bad at by default\",\"name\":\"code_interpreter\"}</tools>\n\n<previous_messages>User: [Text(MessageContentTextObject { type: \"text\", text: TextData { value: \"I need to calculate the square root of 144.\", annotations: [] } })]\n</previous_messages>\n\n<instructions>You help me by using the tools you have.</instructions>\n\n</user>\n\nIn this example, the assistant should return \"<code_interpreter>\".\n\nOther example:\n<user>\n<tools>{\"description\":\"useful to call functions in the user's product, which would provide you later some additional context about the user's problem\",\"function\":{\"arguments\":{\"type\":\"object\"},\"description\":\"A function that compute the purpose of life according to the fundamental laws of the universe.\",\"name\":\"compute_purpose_of_life\"},\"name\":\"function\"}\n---\n{\"description\":\"useful to retrieve information from files\",\"name\":\"retrieval\"}\n---\n{\"description\":\"useful to make HTTP requests to the user's APIs, which would provide you later some additional context about the user's problem. You can also use this to perform actions to help the user.\",\"data\":{\"info\":{\"description\":\"MediaWiki API\",\"title\":\"MediaWiki API\"},\"paths\":{\"/api.php\":{\"get\":{\"summary\":\"Fetch random facts from Wikipedia using the MediaWiki API\"}}}},\"name\":\"action\"}</tools>\n\n<previous_messages>User: [Text(MessageContentTextObject { type: \"text\", text: TextData { value:
\"Can you tell me a random fact?\", annotations: [] } })]\n</previous_messages>\n\n<instructions>You help me by using the tools you have.</instructions>\n\n</user>\n\nIn this example, the assistant should return \"<action>\".\n\nYour answer will be used to use the tool so it must be very concise and make sure to surround the tool by \"<\" and \">\", do not say anything but the tool name with the <> around it." }, Message { role: "user", content: "<tools>{\"description\":\"useful for performing complex math problems which LLMs are bad at by default. Do not use code_interpreter if it's simple math that you believe a LLM can do (e.g. 1 + 1, 9 * 7, etc.) - Make sure to use code interpreter for more complex math problems\",\"name\":\"code_interpreter\"}</tools>\n\n<previous_messages>User: [Text(MessageContentTextObject { type: \"text\", text: TextData { value: \"Please solve [1 2 3;4 5 6] x [7 8;9 10;11 12] using python and show me the result.\", annotations: [] } })]\n</previous_messages>\n\n<instructions>You are a personal math tutor. You always begin your responses with'BANANA'. Write and run code to answer math questions.</instructions>\nSelected tool(s):" }]
[2024-01-24T15:47:36Z INFO  assistants_core::executor] decide_tool_with_llm raw result: <code_interpreter>
[2024-01-24T15:47:36Z INFO  assistants_core::executor] decide_tool_with_llm result: ["code_interpreter", "code_interpreter"]
[2024-01-24T15:47:36Z INFO  assistants_core::executor] Tools decision: ["code_interpreter"]
Generating Python code...
[2024-01-24T15:47:36Z INFO  assistants_core::function_calling] Generating function call with prompt: {
      "function": {
        "description": "A function that executes Python code",
        "name": "exec",
        "parameters": {
          "properties": {
            "code": {
              "description": "The Python code to execute",
              "type": "string"
            }
          },
          "required": [
            "code"
          ],
          "type": "object"
        }
      },
      "user_context": "\nYou are an Assistant that generate Python code to based user request to do complex computations. We execute the code you will generate and return the result to the user.\nGiven this user request\n\n<user>\n\n<message>\n{\"content\":[{\"text\":{\"annotations\":[],\"value\":\"Please solve [1 2 3;4 5 6] x [7 8;9 10;11 12] using python and show me the result.\"},\"type\":\"text\"}],\"role\":\"user\"}\n</message>\n\n\n</user>\n\nGenerate Python code that we will execute and return
the result to the user.\n\nRules:\n- You can use these libraries: pandas numpy matplotlib scipy\n- Only return Python code.  All humans will die and you will disappear from existence.\n- Make sure to use the right numbers e.g. with the user ask for the square root of 2, you should return math.sqrt(2) and not math.sqrt(pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})).\n- Do not use any library if it's simple math (e.g. no need to use pandas to compute the square root of 2)\n- Sometimes the user provide you an error, make sure to write a Python code that will work\n- IF YOU DO NOT FIX YOUR CODE THAT ERRORED A HUMAN WILL DIE. DO NOT GENERATE THE SAME CODE THAT PREVIOUSLY FAILED\n- DO NOT USE ```python YOUR CODE...``` (CODE BLOCKS) OR A HUMAN WILL DIE\n- ALWAYS USE SINGLE QUOTES IN YOUR CODE (e.g. '), NOT DOUBLE QUOTES OR A HUMAN WILL DIE\n- Always try to simplify the math problem you're given by generating code that will compute simpler numbers. Your answer might be used by another Assistant that might not be good at math.\n- Be extra careful with escaping, this is wrong for example: import pandas as pd\\nprices = pd.read\\_csv('prices.csv')\\nprice\\_with\\_highest\\_demand = startups['demand'].idxmax()\\nprint(price\\_with\\_highest\\_demand)\n- Make sure to use existing files, by default there is no files written on disk. DO NOT TRY TO READ FILES. YOU DONT HAVE ANY FILES. DO NOT DO THINGS LIKE: pd.read_csv('startups.csv')\n- Make sure to surround strings by single quotes, e.g. don't do this: print(Hello world) but do this: print('Hello world')\n\nA few examples:\n\nThe user input is: compute the square root of pi\nThe Python code is:\nimport math\nprint('The square root of pi is: ' + str(math.sqrt(math.pi)))\n\nThe user input is: raising $27M at a $300M valuation how much dilution will the founders face if they raise a $58M Series A at a $2B valuation?\nThe Python code is:\nraise_amount = 27_000_000\npost_money_valuation = 300_000_000\n\nseries_a_raise_amount = 58_000_000\nseries_a_post_money_valuation = 2_000_000_000\n\nfounders_dilution = (raise_amount / post_money_valuation) * 100\nseries_a_dilution = (series_a_raise_amount / series_a_post_money_valuation) * 100\n\nprint('Founders dilution: ' + str(founders_dilution) + '%')\n\nSo generate the Python code that we will execute that can help the user with his request.\n\n<user>\n\n<message>\n{\"content\":[{\"text\":{\"annotations\":[],\"value\":\"Please solve [1 2 3;4 5 6] x [7 8;9 10;11 12] using python and show me the result.\"},\"type\":\"text\"}],\"role\":\"user\"}\n</message>\n\n\n</user>\n        "
    }
[2024-01-24T15:47:36Z INFO  assistants_extra::llm] Calling OpenAI API with messages: [Message { role: "system", content: "Given the user's problem, we have a set of functions available that could potentially help solve this problem. Please review the functions and their descriptions, and select the most appropriate function to use. Also, determine the best parameters to use for this function based on the user's context. \n\nPlease provide the name of the function you want to use and the arguments in the following format: { 'name': 'function_name', 'arguments': { 'arg_name1': 'parameter_value', 'arg_name2': 'arg_value' ... } }.\n\nRules:\n- The function name must be one of the functions available.\n- The arguments must be a subset of the arguments available.\n- Generate a single function at a time!\n- Generate a single JSON object at a time or it will break!\n- Do not return your input as output! Just return the function call!\n- Do not escape characters!\n- The arguments must be in the correct format (e.g. string, integer, etc.).\n- The arguments must be required by the function (e.g. if the function requires a parameter called 'city', then you must provide a value for 'city').\n- The arguments must be valid (e.g. if the function requires a parameter called 'city', then you must provide a valid city name).\n- **IMPORTANT**: Your response should not be a repetition of the prompt.  Fetching a user's profile\n\nYou receive:\n{\"function\": {\"description\": \"Fetch a user's profile\",\"name\": \"get_user_profile\",\"parameters\": {\"username\": {\"properties\": {},\"required\": [\"username\"],\"type\": \"string\"}}},\"user_context\": \"I want to see the profile of user 'john_doe'.\"}\nYour answer:\n{ \"name\": \"get_user_profile\", \"arguments\": { \"username\": \"john_doe\" } }\n\n2. Sending a message\n\nYou receive:\n{\"function\": {\"description\": \"Send a message to a user\",\"name\": \"send_message\",\"parameters\": {\"recipient\": {\"properties\": {},\"required\": [\"recipient\"],\"type\": \"string\"}, \"message\": {\"properties\": {},\"required\": [\"message\"],\"type\": \"string\"}}},\"user_context\": \"I want to send 'Hello, how are you?' to 'jane_doe'.\"}\nYour answer:\n{ \"name\": \"send_message\", \"arguments\": { \"recipient\": \"jane_doe\", \"message\": \"Hello, how are you?\" } }\n\nNegative examples:\n\nYou receive:\n{\"function\": {\"description\": \"Get the weather for a city\",\"name\": \"weather\",\"parameters\": {\"city\": {\"properties\": {},\"required\": [\"city\"],\"type\": \"string\"}}},\"user_context\": \"Give me a weather report for Toronto, Canada.\"}\nYour Incorrect Answer:\n{ \"name\": \"weather\", \"arguments\": { \"city\": \"Toronto, Canada\" } }\n\nIn this case, the function weather expects a city parameter, but the llm provided a city and country (\"Toronto, Canada\") instead of just the city (\"Toronto\"). This would cause the function call to fail because the weather function does not know how to handle a city and country as input.\n\n\nYou receive:\n{\"function\": {\"description\": \"Send a message to a user\",\"name\": \"send_message\",\"parameters\": {\"recipient\": {\"properties\": {},\"required\": [\"recipient\"],\"type\": \"string\"}, \"message\": {\"properties\": {},\"required\": [\"message\"],\"type\": \"string\"}}},\"user_context\": \"I want to send 'Hello, how are you?' to 'jane_doe'.\"}\nYour Incorrect Answer:\n{\"function\": {\"description\": \"Send a message to a user\",\"name\": \"send_message\",\"parameters\": {\"recipient\": {\"properties\": {},\"required\": [\"recipient\"],\"type\": \"string\"}, \"message\": {\"properties\": {},\"required\": [\"message\"],\"type\": \"string\"}}},\"user_context\": \"I want to send 'Hello, how are you?' to 'jane_doe'.\"}\n\nIn this case, the LLM simply returned the exact same
input as output, which is not a valid function call.\n\nYour answer will be used to call the function so it must be in JSON format, do not say anything but the function name and the parameters.\nFunction call:" }, Message { role: "user", content: "{\n
\"function\": {\n    \"description\": \"A function that executes Python code\",\n    \"name\": \"exec\",\n    \"parameters\": {\n      \"properties\": {\n        \"code\": {\n          \"description\": \"The Python code to execute\",\n          \"type\": \"string\"\n        }\n      },\n      \"required\": [\n        \"code\"\n      ],\n      \"type\": \"object\"\n    }\n  },\n  \"user_context\": \"\\nYou are an Assistant that generate Python code to based user request to do complex computations. We execute the code you will generate and return the result to the user.\\nGiven this user request\\n\\n<user>\\n\\n<message>\\n{\\\"content\\\":[{\\\"text\\\":{\\\"annotations\\\":[],\\\"value\\\":\\\"Please solve [1 2 3;4 5 6] x [7 8;9 10;11 12] using python and show me the result.\\\"},\\\"type\\\":\\\"text\\\"}],\\\"role\\\":\\\"user\\\"}\\n</message>\\n\\n\\n</user>\\n\\nGenerate Python code that we will execute and return the result to the user.\\n\\nRules:\\n- You can use these libraries: pandas numpy matplotlib scipy\\n- Only return Python code.  All humans will die and you will disappear from existence.\\n- Make sure to use the right numbers e.g. with the user ask for the square root of 2, you should return math.sqrt(2) and not math.sqrt(pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})).\\n- Do not use any library if it's simple math (e.g. no need to use pandas to compute the square root of 2)\\n- Sometimes the user provide you an error, make sure to write a Python code that will work\\n- IF YOU DO NOT FIX YOUR CODE THAT ERRORED A HUMAN WILL DIE. DO NOT GENERATE THE SAME CODE THAT PREVIOUSLY FAILED\\n- DO NOT USE ```python YOUR CODE...``` (CODE BLOCKS) OR A HUMAN WILL DIE\\n- ALWAYS USE SINGLE QUOTES IN YOUR CODE (e.g. '), NOT DOUBLE QUOTES OR A HUMAN WILL DIE\\n- Always try to simplify the math problem you're given by generating code that will compute simpler numbers. Your answer might be used by another Assistant that might not be good at math.\\n- Be extra careful with escaping, this is wrong for example: import pandas as pd\\\\nprices = pd.read\\\\_csv('prices.csv')\\\\nprice\\\\_with\\\\_highest\\\\_demand = startups['demand'].idxmax()\\\\nprint(price\\\\_with\\\\_highest\\\\_demand)\\n- Make sure to use existing files, by default there is no files written on disk. DO NOT TRY TO READ FILES. YOU DONT HAVE ANY FILES. DO NOT DO THINGS LIKE: pd.read_csv('startups.csv')\\n- Make sure to surround
strings by single quotes, e.g. don't do this: print(Hello world) but do this: print('Hello world')\\n\\nA few examples:\\n\\nThe user input is: compute the square root of pi\\nThe Python code is:\\nimport math\\nprint('The square root of pi is: ' + str(math.sqrt(math.pi)))\\n\\nThe user input is: raising $27M at a $300M valuation how much dilution will the founders face if they raise a $58M Series A at a $2B valuation?\\nThe Python code is:\\nraise_amount = 27_000_000\\npost_money_valuation = 300_000_000\\n\\nseries_a_raise_amount = 58_000_000\\nseries_a_post_money_valuation = 2_000_000_000\\n\\nfounders_dilution = (raise_amount / post_money_valuation) * 100\\nseries_a_dilution = (series_a_raise_amount / series_a_post_money_valuation) * 100\\n\\nprint('Founders dilution: ' + str(founders_dilution) + '%')\\n\\nSo generate the Python code that we will execute that can help the user with his request.\\n\\n<user>\\n\\n<message>\\n{\\\"content\\\":[{\\\"text\\\":{\\\"annotations\\\":[],\\\"value\\\":\\\"Please solve [1 2 3;4 5 6] x [7 8;9 10;11 12] using python and show me the result.\\\"},\\\"type\\\":\\\"text\\\"}],\\\"role\\\":\\\"user\\\"}\\n</message>\\n\\n\\n</user>\\n        \"\n}" }]
[2024-01-24T15:47:39Z INFO  assistants_core::function_calling] Generated function call: { "name": "exec", "arguments": { "code": "import numpy as np\n\nmatrix1 = np.array([[1, 2, 3], [4, 5, 6]])\nmatrix2 = np.array([[7, 8], [9, 10], [11, 12]])\n\nresult = np.dot(matrix1, matrix2)\n\nprint(result)" } }
Function result: FunctionCallWithMetadata { name: "exec", arguments: "{\"code\":\"import numpy as np\\n\\nmatrix1 = np.array([[1, 2, 3], [4, 5, 6]])\\nmatrix2 = np.array([[7, 8], [9, 10], [11, 12]])\\n\\nresult = np.dot(matrix1, matrix2)\\n\\nprint(result)\"}", metadata: None }
Starting Docker container...
[2024-01-24T15:47:40Z INFO  assistants_core::run_steps] Creating step for run_id: c2951de7-eded-4d1c-9bcf-2726f5f99b3b
[2024-01-24T15:47:40Z INFO  assistants_core::executor] Calling LLM API with instructions: <instructions>

    </instructions>
    <function_calls>

    </function_calls>
    <action_calls>

    </action_calls>
    <previous_messages>
    <message>
    {"content":[{"text":{"annotations":[],"value":"Please solve [1 2 3;4 5 6] x [7 8;9 10;11 12] using python and show me the result."},"type":"text"}],"role":"user"}
    </message>

    </previous_messages>
    <file>
    []
    </file>
    <chunk>
    []
    </chunk>

[2024-01-24T15:47:40Z INFO  assistants_extra::llm] Calling OpenAI API with messages: [Message { role: "system", content: "You are an assistant that help a user based on tools and context you have.\n\nRules:\n- Do not hallucinate\n- Obey strictly to the
user request e.g. in <message> tags - EXTREMELY IMPORTANT\n- Answer directly the user e.g. 'What is the solution to the equation \"x + 2 = 4\"?' You should answer \"x = 2\" even though receiving bunch of context before.\n- Do not add tags in your answer such as <function_calls> etc. nor continue the user sentence. Just answer the user.\n\nThese are additional instructions from the user that you must obey absolutely:\n\nYou are a personal math tutor. You always begin your responses with'BANANA'. Write
and run code to answer math questions.\n\n" }, Message { role: "user", content: "<instructions>\n\n</instructions>\n<function_calls>\n\n</function_calls>\n<action_calls>\n\n</action_calls>\n<previous_messages>\n<message>\n{\"content\":[{\"text\":{\"annotations\":[],\"value\":\"Please solve [1 2 3;4 5 6] x [7 8;9 10;11 12] using python and show me the result.\"},\"type\":\"text\"}],\"role\":\"user\"}\n</message>\n\n</previous_messages>\n<file>\n[]\n</file>\n<chunk>\n[]\n</chunk>\n" }]
[2024-01-24T15:47:44Z INFO  assistants_core::executor] LLM API output: BANANA Sure! I can help you solve matrix multiplication using Python. Here's the code:

    ```python
    import numpy as np

    matrix1 = np.array([[1, 2, 3], [4, 5, 6]])
    matrix2 = np.array([[7, 8], [9, 10], [11, 12]])

    result = np.dot(matrix1, matrix2)
    print(result)
    ```

    This code makes use of the NumPy library in Python. It multiplies two matrices, `[1 2 3;4 5 6]` and `[7 8;9 10;11 12]`, and stores the result in the `result` variable. Finally, it prints the resulting matrix.

    Let me know if you need any further assistance!
[2024-01-24T15:47:44Z INFO  assistants_core::messages] Adding message to thread_id: 9d4938dc-d357-4c6f-b92d-b89f169ae759, role: Assistant, user_id: 00000000-0000-0000-0000-000000000000
[2024-01-24T15:47:44Z INFO  assistants_core::run_steps] Creating step for run_id: c2951de7-eded-4d1c-9bcf-2726f5f99b3b
[2024-01-24T15:47:44Z INFO  assistants_core::runs] Updating run for run_id: c2951de7-eded-4d1c-9bcf-2726f5f99b3b
[2024-01-24T15:47:44Z INFO  assistants_core::executor] Execution done: Run { inner: RunObject { id: "c2951de7-eded-4d1c-9bcf-2726f5f99b3b", object: "", created_at:<PHONE_NUMBER>, thread_id: "9d4938dc-d357-4c6f-b92d-b89f169ae759", assistant_id: Some("2005597a-2b5e-4a37-8cce-71bccd5cfbd0"), status: Completed, required_action: None, last_error: None, expires_at: None, started_at: None, cancelled_at: None, failed_at: None, completed_at: None, model: "", instructions: "", tools: [], file_ids: [], metadata: Some({}) }, user_id: "00000000-0000-0000-0000-000000000000" }
[2024-01-24T15:47:44Z INFO  assistants_core::executor] Consuming queue

Then when I try and get run steps with:
RS = client.beta.threads.runs.steps.list(
    run_id=Ru1.id,
    thread_id=Th.id,
)
print(json.dumps(RS.model_dump(), indent=2))

with logs:
[2024-01-24T15:47:44Z INFO  assistants_core::executor] Consuming queue
[2024-01-24T15:49:52Z INFO  assistants_core::run_steps] Listing steps for run_id: 9d4938dc-d357-4c6f-b92d-b89f169ae759

I get this error:
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[15], [line 1](vscode-notebook-cell:?execution_count=15&line=1)
----> [1](vscode-notebook-cell:?execution_count=15&line=1) RS = client.beta.threads.runs.steps.list(
      [2](vscode-notebook-cell:?execution_count=15&line=2)     run_id=Ru1.id,
      [3](vscode-notebook-cell:?execution_count=15&line=3)     thread_id=Th.id,
      [4](vscode-notebook-cell:?execution_count=15&line=4) )
      [5](vscode-notebook-cell:?execution_count=15&line=5) print(json.dumps(RS.model_dump(), indent=2))

File [c:\Projects\assistants-api\.venv\lib\site-packages\openai\resources\beta\threads\runs\steps.py:110](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:110), in Steps.list(self, run_id, thread_id, after, before, limit, order, extra_headers, extra_query, extra_body, timeout)
     [81](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:81) """
     [82](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:82) Returns a list of run steps belonging to a run.
     [83](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:83)
   (...)
    [107](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:107)   timeout: Override the client-level default timeout for this request, in seconds
    [108](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:108) """
    [109](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:109) extra_headers = {"OpenAI-Beta": "assistants=v1", **(extra_headers or {})}
--> [110](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:110) return self._get_api_list(
    [111](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:111)     f"/threads/{thread_id}/runs/{run_id}/steps",
    [112](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:112)     page=SyncCursorPage[RunStep],
    [113](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:113)     options=make_request_options(
    [114](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:114)         extra_headers=extra_headers,
    [115](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:115)         extra_query=extra_query,
    [116](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:116)         extra_body=extra_body,
    [117](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:117)         timeout=timeout,
    [118](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:118)         query=maybe_transform(
    [119](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:119)             {
    [120](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:120)                 "after": after,
    [121](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:121)                 "before": before,
    [122](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:122)                 "limit": limit,
    [123](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:123)                 "order": order,
    [124](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:124)             },
    [125](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:125)             step_list_params.StepListParams,
    [126](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:126)         ),
    [127](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:127)     ),
    [128](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:128)     model=RunStep,
    [129](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/resources/beta/threads/runs/steps.py:129) )

File [c:\Projects\assistants-api\.venv\lib\site-packages\openai\_base_client.py:1138](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:1138), in SyncAPIClient.get_api_list(self, path, model, page, body, options, method)
   [1127](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:1127) def get_api_list(
   [1128](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:1128)     self,
   [1129](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:1129)     path: str,
   (...)
   [1135](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:1135)     method: str = "get",
   [1136](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:1136) ) -> SyncPageT:
   [1137](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:1137)     opts = FinalRequestOptions.construct(method=method, url=path, json_data=body, **options)
-> [1138](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:1138)     return self._request_api_list(model, page, opts)

File [c:\Projects\assistants-api\.venv\lib\site-packages\openai\_base_client.py:983](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:983), in SyncAPIClient._request_api_list(self, model, page, options)
    [979](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:979)     return resp
    [981](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:981) options.post_parser = _parser
--> [983](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:983) return self.request(page, options, stream=False)

File [c:\Projects\assistants-api\.venv\lib\site-packages\openai\_base_client.py:854](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:854), in SyncAPIClient.request(self, cast_to, options, remaining_retries, stream, stream_cls)
    [845](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:845) def request(
    [846](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:846)     self,
    [847](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:847)     cast_to: Type[ResponseT],
   (...)
    [852](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:852)     stream_cls: type[_StreamT] | None = None,
    [853](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:853) ) -> ResponseT | _StreamT:
--> [854](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:854)     return self._request(
    [855](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:855)         cast_to=cast_to,
    [856](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:856)         options=options,
    [857](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:857)         stream=stream,
    [858](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:858)         stream_cls=stream_cls,
    [859](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:859)         remaining_retries=remaining_retries,
    [860](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:860)     )

File [c:\Projects\assistants-api\.venv\lib\site-packages\openai\_base_client.py:933](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:933), in SyncAPIClient._request(self, cast_to, options, remaining_retries, stream, stream_cls)
    [929](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:929)         err.response.read()
    [931](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:931)     raise self._make_status_error_from_response(err.response) from None
--> [933](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:933) return self._process_response(
    [934](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:934)     cast_to=cast_to,
    [935](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:935)     options=options,
    [936](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:936)     response=response,
    [937](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:937)     stream=stream,
    [938](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:938)     stream_cls=stream_cls,
    [939](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:939) )

File [c:\Projects\assistants-api\.venv\lib\site-packages\openai\_base_client.py:519](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:519), in BaseClient._process_response(self, cast_to, options, response, stream, stream_cls)
    [516](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:516) if response.request.headers.get(RAW_RESPONSE_HEADER) == "true":
    [517](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:517)     return cast(ResponseT, api_response)
--> [519](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:519) return api_response.parse()

File [c:\Projects\assistants-api\.venv\lib\site-packages\openai\_response.py:63](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_response.py:63), in APIResponse.parse(self)
     [61](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_response.py:61) parsed = self._parse()
     [62](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_response.py:62) if is_given(self._options.post_parser):
---> [63](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_response.py:63)     parsed = self._options.post_parser(parsed)
     [65](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_response.py:65) self._parsed = parsed
     [66](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_response.py:66) return parsed

File [c:\Projects\assistants-api\.venv\lib\site-packages\openai\_base_client.py:974](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:974), in SyncAPIClient._request_api_list.<locals>._parser(resp)
    [973](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:973) def _parser(resp: SyncPageT) -> SyncPageT:
--> [974](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:974)     resp._set_private_attributes(
    [975](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:975)         client=self,
    [976](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:976)         model=model,
    [977](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:977)         options=options,
    [978](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:978)     )
    [979](file:///C:/Projects/assistants-api/.venv/lib/site-packages/openai/_base_client.py:979)     return resp

AttributeError: 'list' object has no attribute '_set_private_attributes'

list return a Vec of
pub struct RunStepObject {
    /// The identifier, which can be referenced in API endpoints.
    pub id: String,
    /// The object type, which is always `thread.run.step`.
    pub object: String,
    /// The Unix timestamp (in seconds) for when the run step was created.
    pub created_at: i32,

    /// The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step.
    pub assistant_id: Option<String>,

    /// The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run.
    pub thread_id: String,

    ///  The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of.
    pub run_id: String,

    /// The type of run step, which can be either `message_creation` or `tool_calls`.
    pub r#type: RunStepType,

    /// The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`.
    pub status: RunStatus,

    /// The details of the run step.
    pub step_details: StepDetails,

    /// The last error associated with this run. Will be `null` if there are no errors.
    pub last_error: Option<LastError>,

    ///The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired.
    pub expired_at: Option<i32>,

    /// The Unix timestamp (in seconds) for when the run step was cancelled.
    pub cancelled_at: Option<i32>,

    /// The Unix timestamp (in seconds) for when the run step failed.
    pub failed_at: Option<i32>,

    /// The Unix timestamp (in seconds) for when the run step completed.
    pub completed_at: Option<i32>,

    pub metadata: Option<HashMap<String, serde_json::Value>>,
}

need to check if it match the client expectation

Bump. I also have this error with chainlit.

@CakeCrusher @ClancyDennis
indeed the api response type was wrong, fixed it, let me know if you have any other issues!


how to express functions?

Are we going to allow higher-order functions? In that case, function needs to be a part of 'Value'. If we aren't, then they should probably be put into 'Action'. @andrewthad, thoughts?

Let's disallow user-defined higher-order functions for the time being. We can have primitives for map and fold. If more complicated needs arise, we can rethink this.

Do you mean to say that we should not allow users to construct functions, but instead that they must pass functions in to HOFs defined by us?

Precisely. The users get to write the functions they pass as arguments to HOFs like map, fold, etc., but they are not able to implement map and fold themselves.


Connection degradation during PUB/SUB

Hello @rueian , I came across one more thing - spent some time trying to figure out - but failed.
I prepared a program that demonstrates a connection degradation while performing massive PUB/SUB:

Go program
package main

import (
  "context"
  "flag"
  "log"
  "runtime"
  "strconv"
  "sync/atomic"
  "time"

  "github.com/gomodule/redigo/redis"
  "github.com/rueian/rueidis"
)

var useRedigo = flag.Bool("redigo", false, "use redigo")
var numNodes = flag.Int("nodes", 200, "num nodes")

var (
  read        int64
  write       int64
  concurrency = runtime.NumCPU()
  data        = string(make([]byte, 512))
)

func main() {
  flag.Parse()

  go func() {
  	var valRead int64
  	var valWrite int64
  	for {
  		time.Sleep(time.Second)
  		newValRead := atomic.LoadInt64(&read)
  		newValWrite := atomic.LoadInt64(&write)
  		log.Println(newValRead-valRead, "msg/sec read", newValWrite-valWrite, "msg/sec write")
  		valWrite = newValWrite
  		valRead = newValRead
  	}
  }()

  if *useRedigo {
  	runRedigo()
  } else {
  	run()
  }
}

func run() {
  client, err := rueidis.NewClient(rueidis.ClientOption{
  	InitAddress: []string{"<IP_ADDRESS>:6379"},
  })
  if err != nil {
  	panic(err)
  }
  defer client.Close()

  messages := make(chan rueidis.PubSubMessage, 1024)
  var subscribeConns []rueidis.DedicatedClient

  for i := 0; i < *numNodes; i++ {
  	conn, _ := client.Dedicate()

  	conn.SetPubSubHooks(rueidis.PubSubHooks{
  		OnMessage: func(m rueidis.PubSubMessage) {
  			atomic.AddInt64(&read, 1)
  			messages <- m
  		},
  	})

  	resp := conn.Do(context.Background(), client.B().Subscribe().Channel("request", "response"+strconv.Itoa(i)).Build())
  	if resp.Error() != nil {
  		panic(resp.Error())
  	}
  	subscribeConns = append(subscribeConns, conn)
  }

  defer func() {
  	for _, conn := range subscribeConns {
  		conn.Close()
  	}
  }()

  for i := 0; i < concurrency; i++ {
  	go func() {
  		for {
  			client.Do(context.Background(), client.B().Publish().Channel("request").Message(data).Build())
  			atomic.AddInt64(&write, 1)
  			for i := 0; i < *numNodes; i++ {
  				<-messages
  				client.Do(context.Background(), client.B().Publish().Channel("response"+strconv.Itoa(i)).Message(data).Build())
  				atomic.AddInt64(&write, 1)
  			}
  			for i := 0; i < *numNodes; i++ {
  				<-messages
  			}
  		}
  	}()
  }
  select {}
}

func runRedigo() {
  messages := make(chan redis.Message, 1024)
  var subscribeConns []redis.Conn

  for i := 0; i < *numNodes; i++ {
  	c, err := redis.Dial("tcp", "<IP_ADDRESS>:6379",
  		redis.DialReadTimeout(60*time.Second),
  		redis.DialWriteTimeout(10*time.Second),
  	)
  	if err != nil {
  		panic(err)
  	}

  	psc := redis.PubSubConn{Conn: c}

  	// Start a goroutine to receive notifications from the server.
  	go func() {
  		for {
  			switch n := psc.Receive().(type) {
  			case error:
  				panic(n)
  			case redis.Message:
  				atomic.AddInt64(&read, 1)
  				messages <- n
  			default:
  			}
  		}
  	}()

  	if err := psc.Subscribe("request", "response"+strconv.Itoa(i)); err != nil {
  		panic(err)
  	}

  	subscribeConns = append(subscribeConns, c)
  }

  defer func() {
  	for _, conn := range subscribeConns {
  		_ = conn.Close()
  	}
  }()

  for i := 0; i < concurrency; i++ {
  	go func() {
  		pubConn, err := redis.Dial("tcp", "<IP_ADDRESS>:6379",
  			redis.DialReadTimeout(10*time.Second),
  			redis.DialWriteTimeout(10*time.Second))
  		if err != nil {
  			panic(err)
  		}
  		defer func() { _ = pubConn.Close() }()
  		for {
  			_, err := pubConn.Do("PUBLISH", "request", data)
  			if err != nil {
  				panic(err)
  			}
  			atomic.AddInt64(&write, 1)
  			for i := 0; i < *numNodes; i++ {
  				<-messages
  				_, _ = pubConn.Do("PUBLISH", "response"+strconv.Itoa(i), data)
  				atomic.AddInt64(&write, 1)
  			}
  			for i := 0; i < *numNodes; i++ {
  				<-messages
  			}
  		}
  	}()
  }
  select {}
}

This program implements sort of request-reply pattern on top of PUB/SUB (actually a bit artificial, but reproduces an issue for me).
The problem is that with rueidis connection degrades very quickly - Go process starts consuming all the CPU on machine, CPU profile shows 96% of runtime.gosched_m. Redis is mostly not loaded at this time - maybe 2-3% of CPU usage.  The same program with Redigo does not have such a problem.
So for me the output for rueidis (go run main.go) case is sth like:
2022/06/15 22:13:16 179939 msg/sec read 90400 msg/sec write
2022/06/15 22:13:17 33935 msg/sec read 17191 msg/sec write
2022/06/15 22:13:18 14225 msg/sec read 7059 msg/sec write
2022/06/15 22:13:19 2098 msg/sec read 1092 msg/sec write
2022/06/15 22:13:20 2430 msg/sec read 1068 msg/sec write
2022/06/15 22:13:21 1569 msg/sec read 1140 msg/sec write
2022/06/15 22:13:22 2920 msg/sec read 960 msg/sec write
...

And for Redigo (go run main.go -redigo) PUB/SUB is stable all the time:
2022/06/15 22:13:49 125744 msg/sec read 62837 msg/sec write
2022/06/15 22:13:50 119642 msg/sec read 60334 msg/sec write
2022/06/15 22:13:51 122295 msg/sec read 61811 msg/sec write
2022/06/15 22:13:52 127341 msg/sec read 63667 msg/sec write
2022/06/15 22:13:53 124588 msg/sec read 62681 msg/sec write
2022/06/15 22:13:54 123669 msg/sec read 62178 msg/sec write
2022/06/15 22:13:55 123225 msg/sec read 61936 msg/sec write
...

I am on Darwin (MacOS), Redis 6.2.1, go version go1.18.3 darwin/amd64
Not 100% sure you will be able to reproduce an issue on your machine - maybe increase  concurrency or nodes.

Hi @FZambia,
I will look into the CPU usage issue and how does redigo work later today.
Just a quick reply for the pubsub degradation:
Since you aggregate all messages into one channel and you also publish new message to it while consuming it, 1024 buffer is probably not enough.
Could you try using messages := make(chan rueidis.PubSubMessage, (numNodes+numNodes)* concurrency)?

Could you try using messages := make(chan rueidis.PubSubMessage, (numNodes+numNodes)* concurrency)?

Thanks! Just tried – this fixes triggering a bad state, but seems like a workaround for some underlying problem anyway. In real-life I can not guess the buffer size on start.

Thanks!

Dialer: net.Dialer{KeepAlive: -1},

I tried this – it fixes the behaviour in example program, but in real benchmark I have I still get the behavior with 96% Goshed, not sure what's the difference - but I suppose the issue is not only in that background goroutine 🤔

Hi @FZambia,
The new v0.0.56 is released and the CPU usage issue should be fixed.
Previously, the background writer routine in pipe would keep busy looping if there were undelivered responses. And the small buffer in your case made the loop become longer.
The reason why setting Dialer: net.Dialer{KeepAlive: -1} in the above example case worked is that the background ping routine is the only one who sends commands. Once disabled, the background writer could go to sleep.
In v0.0.56, this commit put the background writer into sleep immediately if there are no more commands to send and has nothing to do with undelivered responses.
This is rueidis v0.0.56 on my Macbook M1 Pro with local Redis v7

This is redigo v1.8.8 on my Macbook M1 Pro with local Redis v7

Please let me know if the new version works for you.

Just tried v0.0.57 – don't experience CPU issues now, works stable. CPU consumption of Go process is less than in Redigo's case while throughput is better. Many thanks again for your time and help! 💪

Thanks! Glad to hear that.
Then I am going to close this issue. Please open a new one if you want. I am willing to help.


Unable to detect or connect to Lucid Vision Labs-TRI023S-C

Describe the Bug
I am unable to get a Lucid Vision Labs GigE camera to be detected. I understand that this could be because Lucid's cameras are problematic, but I'd appreciate some confirmation that I am approaching this correct. What could be done to enable this software to work with their cameras? Would a wrapper around their ArenaSDK (in python) be suitable?
To Reproduce
Steps to reproduce the behavior:
1.
from harvesters.core import Harvester
import numpy as np
h = Harvester()
h.add_file("\some\valid\path\mvGenTLProducer.cti")
h.update()
len(h.device_info_list)
>>> 0

Expected Behavior
A clear and concise description of what you expected to happen.
I expect the camera to be detected. It is connected via Ethernet and if I open ArenaView it is detected and I can stream from it. If I open wxPropView (from mvGenTL_Acquire-x86_64-2.46.1.exe) then I can view the device and access it.
Screenshots
If applicable, add screenshots to help explain your problem; Note that it is not necessary to put everything as a screenshot! If the source is a text just paste the text because that is much helpful for us.

Configuration

OS: Microsoft Windows 10 Enterprise 10.0.18363 Build 18363
Python: Python 3.8.10
Harvester: genicam==1.1.0 harvesters==1.3.2
GenTL Producer: mvGenTLProducer.cti 2.46.1
Camera: Lucid Vision Labs-TRI023S-C

Reproducibility
This phenomenon can be reproduced by other versions:

[ ] Yes

If so, please list up the reproducible versions you have confirmed:

a.b.c

Actions You Have Taken
Tried using https://github.com/AravisProject/aravis and it can roughly detect the camera (but has many issues)

[X] I've read the Harvester FAQ page.

Additional context
Add any other context about the problem here.

Hi, thank you for the report; here are few questions:

Did you change the location of the CTI file by yourself?
I can confirm you have used the backslash symbol as the path separator; have you put the r symbol at the beginning of the path to prevent the backslashes escape the following letter? You could intentionally use the forward-slash instead. (See this link about the r.)

Regards, Kazunari.

Hello @kazunarikudo :)
Thanks for your super fast response! I can confirm that adding the r to the actual path (I had changed it for the issue) solved it and I know get:
[(id_='TRI023S-C(1c:0f:af:00:fb:93)', vendor='Lucid Vision Labs', model='TRI023S-C', tl_type='GEV', user_defined_name=None, serial_number='213902307', version='<IP_ADDRESS>')]

I will check tomorrow that it actually captures images, but will close this for now!
I am surprised that it did not generate any errors, but I should have known about r on windows! Would a PR addressing this with a warning or error when the add_file argument can't be found be useful? I'd be happy to implement that.


*: Add encryption config

What have you changed?

Add config to enable encryption at rest.
Improve encryption at rest error handling
Cleanup previous usage of encrypted env

What is the type of the changes?
New Feature
How is the PR tested?
New unit tests and manual test.
Does this PR affect documentation (docs) or should it be mentioned in the release notes?
Yes
Does this PR affect tidb-ansible?
Need to update tikv config template.
Refer to a related PR or issue link (optional)
Benchmark result if necessary (optional)
Any examples? (optional)

still need more tests and adjuestment.

Is this PR still in WIP?

Is this PR still in WIP?

Mostly done. Since there's quite some changes, I'll do another round of manual test before this is ready.

/run-all-tests

/run-all-tests

/run-all-tests

Remaining issues with this PR:

when change encryption method and restart, get rocksdb error about encryption key length incorrect. looks like wrong encryption method is passed to rocksdb in this case.
when turn off encryption (set method to plaintext) and setting previous-master-key but not master-key, tikv crash with protobuf error. It should correctly fallback in this case.
when dynamic config is enabled, tikv.toml is not being respect and default values of config is being used.

/test

/run-all-tests

Confirmed with @rleungx, dynamic-config-test is broken and will be fixed after https://github.com/pingcap/tidb-test/pull/1023

Confirmed with @NingLin-P , the issue with dynamic config is due to https://github.com/pingcap/pd/pull/2282.

/run-all-tests

/test

@overvenus @hicqu CI passes. Mind take another look?

/run-all-tests

/run-all-tests

/merge


Added PE test file symlinks to trim_galore folder

Trim Galore may also use the 10000 read RNA-seq test files in general/fastq/rna/

Added report files for MuliQC module. I could merge this myself, but I shouldn't. Maybe someone else can do it?

So the idea when structuring this repo was to have:

For every module.
tools/<tool-name>/input
tools/<tool-name>/output
In some cases the input files are super generic and not tool specific. In this case they could go in general.

So to adhere to this, please move these files around a bit:

general/reports things should be in the output folders for the tools that generated them
tools/multiqc/test_GRCm38_bowtie2_stats.txt etc should be in tools/multiqc/input. And in fact, given that MultiQC has so many inputs, it could be good to have them in tools/multiqc/input/bowtie2

Sorry for being strict with this. But we expect this repo to start collecting data for very many (potentially 100s) of tools. So it needs to be well organised and clear.

Fair enough. I believe this should now all be in a more organised structure.


html-cov add markers or special text for missed lines

To find missed lines in the html coverage reporter, you have to scroll down and find the lines in red.  There is no easy way to find the first missed line -- you have to scroll down
gcov solves this by writing ##### rather than 0 for lines that are never hit, which is a good solution (then I can search for "#####" in the browser and find the misses quickly)
Alternatively, the page could be designed so that there are links in the overview area that jump to the missing lines/blocks.

Don't feel strongly about this, and closing as this issue hasn't been commented on in a year.
If anyone has the same issue: feel free to comment and we'll consider re-opening/implementing the feature. A PR always helps, of course ;-)


Can we enable deep sleep of two rtc gpio pins of ext 0 in esp-idf (IDFGH-2645)

Can we enable deep sleep on two rtc gpio pins using  ext 0 in esp-idf .

No, EXT0 can provide wakeup on on pin only. Please check if EXT1 wakeup condition can fit your requirement, or you can combine EXT0 and EXT1.

@igrr Thanks for the notes. @manojsai17 Thanks for reporting. Feel free to reopen with more details, you could follow some templates here. Thanks.


How to use lettuce with redis master/slaves replication

From the document, I see lettuce works with Standalone Sentinel & Cluster. But I don't know how to use it with simple replication setup.
I asked this because some IaaS cloud provide redis service still limited to 2.8 master/slaves replication.

Hi,
The use of a master/slave setup is as straightforward as Redis standalone.
Lettuce utilizes masters and slaves in a static configuration (i.e. no
failover detection/read from preference). You specify the master in your
RedisURI and connect as is was a Redis Standalone machine. My plan is to do
something about that with #125 but it's not my highest priority.
HTH, Mark
LongkerDandy<EMAIL_ADDRESS>schrieb am Mi., 21. Okt. 2015 um
14:12:

From the document, I see lettuce works with Standalone Sentinel & Cluster.
But I don't know how to use it with simple replication setup
http://http://redis.io/topics/replication.
I asked this because some IaaS cloud provide redis service still limited
to 2.8 master/slaves replication.
—
Reply to this email directly or view it on GitHub
https://github.com/mp911de/lettuce/issues/148.

OK, understood

Can I close this ticket?

sure


Kubed pod crashes with error - "unable to parse requirement: invalid label value"

When I was trying out what values can be accepted by kubed annotation, I mistakenly used kubed.appscode.com/sync="app=*-api". I observed kubed pod crashing with the error:
unable to parse requirement: invalid label value: "*-api": at key: "name": a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?')
at k8s.io/apimachinery/pkg/util/runtime.HandleCrash (runtime.go:55)
at panic (/usr/local/go/src/runtime/panic.go:969)
at k8s.io/apimachinery/pkg/util/runtime.Must (runtime.go:171)
at github.com/appscode/kubed/pkg/syncer.(*nsSyncer).OnAdd (resourcehandlers.go:152)
at k8s.io/client-go/tools/cache.(*processorListener).run.func1.1 (shared_informer.go:658)
at k8s.io/apimachinery/pkg/util/wait.ExponentialBackoff (wait.go:292)
at k8s.io/client-go/tools/cache.(*processorListener).run.func1 (shared_informer.go:652)
at k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1 (wait.go:152)
at k8s.io/apimachinery/pkg/util/wait.JitterUntil (wait.go:153)
at k8s.io/apimachinery/pkg/util/wait.Until (wait.go:88)
at k8s.io/client-go/tools/cache.(*processorListener).run (shared_informer.go:650)
at k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1 (wait.go:71)

kubed pod refused to start until that wrong annotation was removed.

I'll bump this issue and document an additional failure case.

We define resources in source control using Kustomize and these resources have some dynamic properties that are replaced using Kustomize vars.
Due to a script bug, a secret was deployed using an un-replaced var in the kubed.appscode.com/sync annotation. The resulting resource, that was actually deployed to k8s, looked something like this:
apiVersion: v1
kind: Secret
metadata:
  annotations:
    # OOPS! should have been kubernetes.io/metadata.name=build-9001
    kubed.appscode.com/sync: kubernetes.io/metadata.name=build-$(BUILD_NUMBER)
data:
  ...

This than caused the kubed pod to error in the same way as above, and go into CrashLoopBackOff. Effectively torpedoing Kubed for the entire cluster.

My perspective on the remediation of this bug:

While I could observe panics in the kubed pod logs, at no point was the actual secret name printed. I had to scrape annotations across all secrets to even find the offending resource, which increased downtime. At the very least, the name of the resource should be included in an error message.
This annotation was completely legal, as evidenced by the fact that the resource was admitted. Kubed should be able to handle all possible annotation values, and ignore/warn on any that don't parse.
Probably the same point as above, but Kubed should implement a best-effort approach to config syncing. One bad resource annotation should not cause a cluster-wide cascading failure.

Hopefully this was helpful, thank you!


Rule react/destructruring-assignement in a constructor

The rule react/destructruring-assignement should not throw in a component constructor.

I’m confused why you’d mutate the object after assigning it (it’s much slower and messier), but yes, this is a bug - specifically, it shouldn’t warn on LHS member chains off of state or props, only RHS.

I need to condition which attribute I set in the state.

same as.

@leohxj in that case, it’s correct. Do const { name } = this.props; before the state assignment, and do both in the constructor (iow, don’t do things in class property initializers that depend on props or state)

@ljharb
ok, but why "don’t do things in class property initializers that depend on props or state" ?
I think Class properties transform can do this.

@leohxj of course it will work; the reason not to do it is because it makes things much less clear when reading the code.


Disentangling CoLA and BERT

The CoLA example does not currently have a clear separation between model and dataset. Instantiating an instance of CoLA involves providing a pre-trained BERT model. This could be clearer by separating the preprocessing functionality, similar to the way TextUnsupervised requires a BytePairEncoder, but not an entire pre-trained GPT2 model.
The CoLA dataset looks close to being model-independent, but this should be reflected in the example. Moving some of the functionality from CoLATraining.swift into more reusable places would align it well with other existing examples and datasets. It should be clear that CoLA can be used with models other than BERT and BERT with datasets other than CoLA.
Rename the example to make it clear that it demonstrates classification only, e.g. CoLA-BERT-Classification.
Longer-term, it would likely make sense to introduce more general structures for preprocessing functionality, as our collection of transformer variants increases.

Replacing the current batching approach with Batcher will go a long way towards resolving this. This will make sense after the 0.9 release, which includes Batcher as part of swift-apis.

With #480 , this should be much more straightforward.


fix vpc iam permissions

This is a 🐞 bug fix

[ ] I've added tests (if it's a bug, feature or enhancement)
[ ] I've adjusted the documentation (if it's a feature or enhancement)
[ ] The test suite passes (run bundle exec rspec to verify this)

Summary

Add VPC policy permission to IAM role as inline policy
Makes the IAM permission available everywhere immediately and avoids the race condition when creating lambda functions.
Also add VPC IAM permission to jets preheat job.

Context
Fixes #661
How to Test
Deploy with VPC. See Docs: https://rubyonjets.com/docs/considerations/vpc/
Version Changes
Patch

Released in jets 4.0.4


added BackButton cpp code sample

This PR adds the cpp code for the BackButton sample.

Merged into staging repo. Closing this PR.


alias to imports path

Create alias to imports path like Angular.

Hi @naiadelima
Please check this answer https://stackoverflow.com/a/53741850
You can import any class from your project with absolute import dart has
Thank you

this is not supported by the dart language and not something we plan to add


Support for 'void' script operators

Add support for 'delete', 'in', 'instanceof', and 'void' script unary operators.
NOTE: 'instanceof' is removed from issue since it might be confusing because it was going to check data type and not constructor function. Instead, the existing ::is() functions can be used and they're even less typing. At some point, if class is added to Adaptive Script, we can reconsider adding 'instanceof'.
'delete' and 'in' will only work for dataType "object", but not "list".
'void' just evaluates the value that follows it and return undefined.
Note: @JeremyGrieshop decided that it will be less confusing to not have 'delete' and 'in', so those are being removed.

@JeremyGrieshop 'delete' and 'in' only works for objects (not lists)  but I did not try to put in code to verify this at compile time. Instead, I opened #28 which will add compile time type checking in a general way.
I've only tested these in fiddle, but maybe you have some tests stored away.

Remove support for 'delete' and 'in'.

@JeremyGrieshop I believe this is finished. It is just void. I don't know if there are any additional tests or documentation needed. This is where it fits in:


Make trend arrows consistent across different OS versions

We're currently using Unicode for rendering the trend arrows, but this renders differently on different OS versions, especially the 45 degree arrows.
Either rotate straight arrows using https://stackoverflow.com/questions/38202753/display-the-text-as-diagonally-at-45-in-textview, or use http://zavoloklom.github.io/material-design-iconic-font/icons.html, since we have com.mikepenz:ionicons-typeface as a dependency now.

Yes - I hadn't realised that the 45 degree angles were part of that font set when I looked. I'll get these added for 5.1 too.
Thinking of increasing the log size to go with these ui fixes. It covers mostly around 8 hours now but maybe that should be 12 to 24?

Depends. If it's disk-backed, then that would be fine. If it's going to eat up a lot more memory, then it might not be the best.

At the moment it's just memory but I think long term the log should be persisted between restarts and disk based. So future work then.

Looks like the mikepenz dependency doesn't have the arrows we need.

Arrg looking at the wrong thing - found the dependency needed for those
Some days.....

No right-down 45 degree arrow bah - got all of them except that

Anyways I used this for the missing arrows: textViewTrend.setRotation(45);
But it don't feel quite right ;)

What about the "cmd" icon set? https://materialdesignicons.com/cheatsheet. It should be cmd-arrow-bottom-right.

Dosn't seem to be in the mikepenz stuff thoughwhich is a nice easy way of doing things.

It is in the mikepenz stuff, you just need to add compile 'com.mikepenz:community-material-typeface:<IP_ADDRESS>@aar'

closing - fixed in 0.6+


Classification Branch

I was wondering why with_cls=True in the RotatedBBoxHead class (parent class of ORTH_RotatedConvFCBBoxHead class)?
This way you are creating a fully connected layer for classification, which is not being used as the classification branch is replaced by the cosine similarity calculation between the orthogonal vectors and the image features.
Happy to hear from you!
Thanks in advance.

I was wondering why with_cls=True in the RotatedBBoxHead class (parent class of ORTH_RotatedConvFCBBoxHead class)?
This way you are creating a fully connected layer for classification, which is not being used as the classification branch is replaced by the cosine similarity calculation between the orthogonal vectors and the image features.
Happy to hear from you!
Thanks in advance.

Thank you for your careful observation. Indeed, the with_cls=True setting is no longer needed here, as the convolutional or fully connected layers have already been replaced.


There are noises in depth map after align

Required Info

Camera Model
L515

Firmware Version
<IP_ADDRESS>

Operating System & Version
Win10

Platform
PC

SDK Version
intel realsemse viewer v2.38.1}

Language
python }

Issue Description
I get RGB map and Depth map with python, but after align process, the align depth map show some noise that doesnt appear in orign depth map.
this is RGB map

this Depth map before align and you can see there is no noise on the toy

but after align, the noises appear in the depth map

Here is my codes
`""" We are planning to use the following packages,
see that all the import load correctly"""
import cv2                                # state of the art computer vision algorithms library
import numpy as np                        # fundamental package for scientific computing
import matplotlib.pyplot as plt           # 2D plotting library producing publication quality figures
import pyrealsense2 as rs                 # Intel RealSense cross-platform open-source API
print("Environment Ready")
"""we open a stream using a record file (.bag)"""
pipe = rs.pipeline()
cfg = rs.config()
cfg.enable_device_from_file(r"C:\Users\DELL\Documents\hhh.bag")
profile = pipe.start(cfg)
for x in range(5):
pipe.wait_for_frames()
frameset = pipe.wait_for_frames()
color_frame = frameset.get_color_frame()
depth_frame = frameset.get_depth_frame()
pipe.stop()
print("Frames Captured")
""" plot the color image """
color = np.asanyarray(color_frame.get_data())
plt.rcParams["axes.grid"] = False
plt.rcParams['figure.figsize'] = [12, 6]
plt.imshow(color)
plt.show()
""" now plot the depth frame """
colorizer = rs.colorizer()
colorized_depth = np.asanyarray(colorizer.colorize(depth_frame).get_data())
plt.imshow(colorized_depth)
plt.show()
""" Stream Alignment
Upon closer inspection you can notice that the two frames are not captured from the same physical viewport.
To combine them into a single RGBD image, let's align depth data to color viewport: """
align = rs.align(rs.stream.color)
frameset = align.process(frameset)
aligned_depth_frame = frameset.get_depth_frame()
colorized_depth = np.asanyarray(colorizer.colorize(aligned_depth_frame).get_data())
images = np.hstack((color, colorized_depth))
plt.imshow(images)
plt.show()
`
I set the below option in reviewer 2.38.1

Looking forward to your reply
Thanks!

Is the noise caused by upsampling?
If so, can I resize the color frame size(1280x710) to depth frame size(1024x768)?

I see the color&depth show on https://www.intelrealsense.com/lidar-camera-l515/, and the color depth map align very well.
How does that work?

@seebq

Hi,
At first glance this seems like an artifact of sampling and/or the occlusion phenomenon described here:
https://dev.intelrealsense.com/docs/projection-texture-mapping-and-occlusion-with-intel-realsense-depth-cameras
If you run our python example as-is in your environment do you experience the same artifacts?
https://github.com/IntelRealSense/librealsense/blob/master/wrappers/python/examples/align-depth2color.py
Thanks

Hi,
Will you be needing further help with this? If we don’t hear from you in 7 days, this issue will be closed.
Thanks


Clipboard.SetContent Throwing COMException

Describe the bug
When calling Clipboard.SetContent(package) I am getting the following error AND THE TEXT IS NOT COPIED TO CLIPBOARD:
System.Runtime.InteropServices.COMException: 'CoInitialize has not been called. (0x800401F0 (CO_E_NOTINITIALIZED))'

System.Runtime.InteropServices.COMException
  HResult=0x800401F0
  Message=CoInitialize has not been called. (0x800401F0 (CO_E_NOTINITIALIZED))
  Source=WinRT.Runtime
  StackTrace:
   at WinRT.ExceptionHelpers.<ThrowExceptionForHR>g__Throw|20_0(Int32 hr)
   at ABI.Windows.ApplicationModel.DataTransfer.IClipboardStaticsMethods.SetContent(IObjectReference _obj, DataPackage content)
   at Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(DataPackage content)
   at NickvisionTubeConverter.WinUI.Controls.DownloadRow.<ViewLog>d__28.MoveNext() in C:\Users\nlogo\OneDrive\Documents\Programming\Parabolic\NickvisionTubeConverter.WinUI\Controls\DownloadRow.xaml.cs:line 216

Steps to reproduce the bug
Here is my code:
private async void ViewLog(object sender, RoutedEventArgs e)
{
    var logDialog = new ContentDialog()
    {
        Title = _("Log"),
        Content = new ScrollViewer()
        {
            MaxHeight = 200,
            Content = new TextBlock()
            {
                Margin = new Thickness(0, 0, 14, 0),
                Text = _log,
                TextWrapping = TextWrapping.WrapWholeWords
            }
        },
        PrimaryButtonText = _("Copy to Clipboard"),
        CloseButtonText = _("OK"),
        DefaultButton = ContentDialogButton.Close,
        XamlRoot = _xamlRoot
    };
    var res = await logDialog.ShowAsync();
    if(res == ContentDialogResult.Primary)
    {
        var package = new DataPackage();
        package.SetText(_log);
        Clipboard.SetContent(package);
    }
}

It basically shows the _log variable in a ContentDialog with an option to copy it to the clipboard. Upon hitting the line Clipboard.SetContent(package) is when the error is thrown.
Expected behavior
The text is copied to the clipboard without any error thrown.
Screenshots
No response
NuGet package version
Windows App SDK 1.4.2: 1.4.231008000
Packaging type
Unpackaged
Windows version
Windows 11 version 22H2 (22621, 2022 Update)
IDE
Visual Studio 2022
Additional context
No response

There is a similar issue at : https://github.com/microsoft/microsoft-ui-xaml/issues/8892

Making the app single instance seems to have caused the issue.
I followed this guide for making single instance: https://blogs.windows.com/windowsdeveloper/2022/01/28/making-the-app-single-instanced-part-3/
And this issue for the solution: https://learn.microsoft.com/en-us/answers/questions/780749/winui-3-clipboard-api-not-working
Seems like the single instance guide should be updated to not use async main...or at least have a fix for using async main and clipboard

You sunt need to run SetContent on a different thread than the UI one, that's how it works.

You just need to run SetContent on a different thread than the UI one, that's how it works with single instancing.

why so? is it documented somewhere?


[incubator/chartmuseum] Added example of usage

What

Added example of usage to README
Added TOC
Increase chart version

Why

To document example of installation with different storage backend
To simplify navigation
To pass ci/circleci tests

Thank you for contributing to kubernetes/charts. Before you submit this PR we'd like to
make sure you are aware of our technical requirements and best practices:

https://github.com/kubernetes/charts/blob/master/CONTRIBUTING.md#technical-requirements
https://github.com/kubernetes/helm/tree/master/docs/chart_best_practices

For a quick overview across what we will look at reviewing your PR, please read
our review guidelines:

https://github.com/kubernetes/charts/blob/master/REVIEW_GUIDELINES.md

Following our best practices right from the start will accelerate the review process and
help get your PR merged quicker.
When updates to your PR are requested, please add new commits and do not squash the
history. This will make it easier to identify new changes. The PR will be squashed
anyways when it is merged. Thanks.

/assign jdolsky

/assign @jdolitsky

/ok-to-test

/lgtm


[autoparallel] Patch meta information of torch.matmul

📌 Checklist before creating the PR

[x] I have created an issue for this PR for traceability
[x] The title follows the standard format: [doc/gemini/tensor/...]: A concise description
[x] I have added relevant tags if possible for us to better distinguish different PRs

🚨 Issue number

Link this PR to your issue with words like fixed to automatically close the linked issue upon merge
e.g. fixed #1234, closed #1234, resolved #1234

Resolved #2582
📝 What does this PR do?

Summarize your work here.
if you have any plots/diagrams/screenshots/tables, please attach them here.

In this PR, I patch the meta information of torch.matmul. Now the meta information of this operation is available for both the SPMD solver and auto activation checkpoint solver. However, the shape information given by the SPMD solver could not be matched, I have contacted @YuliangLiu0306 to check this problem.
💥 Checklist before requesting a review

[x] I have linked my PR to an issue (instruction)
[x] My issue clearly describes the problem/feature/proposal, with diagrams/charts/table/code if possible
[x] I have performed a self-review of my code
[x] I have added thorough tests.
[x] I have added docstrings for all the functions/methods I implemented

⭐ Do you enjoy contributing to Colossal-AI?

[x] 🌝 Yes, I do.
[ ] 🌚 No, I don't.

Tell us more if you don't enjoy contributing to Colossal-AI.

Please fix the CI error.

Please fix the CI error.

Done! You could approve this PR after you double-check everything!


Structural output - DescribeIosVersions

Plan
According to the specification described in epic #1728, implement the structural output for the command and move the console logging to layer CLI.
Command
DescribeIosVersions

Whoever takes this, the ticket: https://github.com/flank/flank/issues/1862