'BarData' object has no attribute 'history'

Dear Zipline Maintainers,
Before I tell you about my issue, let me describe my environment:
Environment

Operating System: (Windows Version or $ uname --all) OSX
Python Version: $ python --version Python 2.7.11
Python Bitness: $ python -c 'import math, sys;print(int(math.log(sys.maxsize + 1, 2) + 1))' 64
How did you install Zipline: (pip, conda, or other (please explain)) pip
Python packages: $ pip freeze or $ conda list

appnope==0.1.0
attrs==15.2.0
backports-abc==0.4
backports.ssl-match-hostname==<IP_ADDRESS>
bcolz==1.0.0
Bottleneck==1.0.0
certifi==2016.2.28
cffi==1.5.2
click==6.6
contextlib2==0.5.1
cryptography==1.2.2
cssselect==0.9.1
cycler==0.10.0
cyordereddict==1.0.0
Cython==0.24
decorator==4.0.9
docopt==0.6.2
enum34==1.1.2
functools32==3.2.3.post2
gnureadline==6.3.3
idna==2.0
ipaddress==1.0.16
ipykernel==4.3.1
ipython==4.1.2
ipython-genutils==0.1.0
ipywidgets==4.1.1
Jinja2==2.8
jsonschema==2.5.1
jupyter==1.0.0
jupyter-client==4.2.2
jupyter-console==4.1.1
jupyter-core==4.1.0
Logbook==0.12.5
lxml==3.5.0
MarkupSafe==0.23
matplotlib==1.5.1
mistune==0.7.2
nbconvert==4.1.0
nbformat==4.0.1
networkx==1.11
notebook==4.1.0
numexpr==2.5.2
numpy==1.11.0
pandas==0.18.0
pandas-datareader==0.2.1
path.py==8.1.2
patsy==0.4.1
pexpect==4.0.1
pickleshare==0.6
ptyprocess==0.5.1
pyasn1==0.1.9
pyasn1-modules==0.0.8
pycparser==2.14
Pygments==2.1.3
pyOpenSSL==0.15.1
pyparsing==2.1.1
python-dateutil==2.5.2
pytz==2016.3
pyzmq==15.2.0
qtconsole==4.2.0
queuelib==1.4.2
requests==2.9.1
requests-file==1.4
scikit-learn==0.17.1
scipy==0.17.0
Scrapy==1.0.5
service-identity==16.0.0
simplegeneric==0.8.1
singledispatch==<IP_ADDRESS>
six==1.10.0
sklearn==0.0
smugpy==0.3.1
SQLAlchemy==1.0.12
statsmodels==0.6.1
terminado==0.6
toolz==0.7.4
tornado==4.3
traitlets==4.2.1
Twisted==15.5.0
vboxapi==1.0
w3lib==1.13.0
zipline==0.9.0
zope.interface==4.1.3
Now that you know a little about me, let me tell you about the issue I am
having:
Description of Issue
I can't run some of the examples, because the method data.history() is not found

What did you expect to happen?
What happened instead?

File "./dual_moving_average.py", line 43, in handle_data
    short_mavg = data.history(context.sym, 'price', 100, '1d').mean()
AttributeError: 'BarData' object has no attribute 'history'

Here is how you can reproduce this issue on your machine:
Reproduction Steps
cd zipline/examples
python dual_moving_average.py

What steps have you taken to resolve this already?
...
Anything else?
Keep up the great work!!
...
Thanks!
inaki

Hi @inakie !
It sounds like you're running dual_moving_average.py taken from HEAD of master of the zipline repo (i.e. zipline almost-1.0.0), but using zipline 0.9.0.  On 0.9, history isn't available on the data object passed to handle_data.  Instead it's imported from zipline.api.  If you like, you can see the differences in the [API migration guide on our test drive environment] (https://testdrive.quantopian.com/quantopian2/migration#data-history) (will eventually be on quantopian.com and in the zipline release notes as well).
You should run an example that uses the API of the version of zipline you've installed.  If you uninstall 0.9, and pip install your git clone of the zipline repo, then you'll be on 1.0 everywhere.  Or you can run [the example from 0.9] (https://github.com/quantopian/zipline/blob/0.9.0/zipline/examples/dual_moving_average.py#L25-L48) using the zipline 0.9 you've already installed.
Hope that helps!
-Rich

Hi Rich!
That worked, thanks! I installed from git and now data.history() works.
pip uninstall zipline
pip install git+https://github.com/quantopian/zipline.git

Thanks!
Iñaki

Great, glad to hear it!


[rocksdb] Supported static linking in Linux

Fixed Issue #6134
CMake targets defined in rocksdb/tools depend on shared library of rocksdb, but we want static linking, which cause linking error:
attempted static link of dynamic object `librocksdbd.so.5.15.10'

Hi @xuhongxu96, thanks for your contribution to vcpkg. Could you also update the version in CONTROL file? For example, the version is 5.18.3 now, you can update it as 5.18.3-1. If we have some changes in the port, we also need to update the CONTROL version.

@NancyLi1013 Sorry to miss that. Updated it now.

Thanks for the fix!
As a side note: we don't currently have testing for Linux static/static, so it is possible that this will regress in the future until we add that platform to our officially supported matrix. However, we still appreciate the PR regardless and will try to avoid breaking this :)


Should we still have a smoke test?

As I understand it, with the monolith gapic generator we used to create this optional sorta smoke test.  We have one of those here:
https://github.com/googleapis/nodejs-text-to-speech/blob/master/smoke-test/text_to_speech_smoke_test.js
I don't think we generate these anymore.  should we just switch this to a system test?  Delete it?

I will move this to a system test. We are not going to generate those smoke tests by micro-generators.

This was moved to the system tests long ago. Closing.


yarn typescript monorepo fails to find references across folders

Type: Bug
Hi there - I've been running into an issue that has wracked my brain for many hours and no solutions after scanning hundreds of articles/issues/etc. I've narrowed it down to something wrong with vscode, but not exactly sure what to look at further.
I have setup this monorepo: https://github.com/runfaj/monorepo-issue. The issue is relatively simple to explain. After setting this up, if you go to the services/db-service/routes/v1/user/index.ts file, vscode will show no issues. If you comment out one or both of the imports from "shared-xxxx", you'll see the correct red underline. However, if you try to right click to fix imports, vscode can't find those. Manually typing will never bring up the suggestions for those either. When you first opened the file, it was clear they are exported and all references are correct, but vscode can't seem to find them for the suggestions/auto imports.
Where does it work? Webstorm
Where doesn't it work? Vscode on any platform. I've tried on an M1 mac, intel mac, and windows 11 with ubuntu wsl2 and all of them have the same issue.
Here's just a handful of things I've tried to no avail:

A fresh install of vscode with no additional extensions (other than the bare minimum)
Several of the vscode monorepo extensions.
Every possible typescript setting in vscode available that even remotely looked like it could deal with auto imports
Changing every setting in the tsconfig files related to references, paths, modules, targets, declarations, etc
Structuring the repo to use single level folders (instead of the nested apps/services/packages ones in the example)
Adding different yarn workspace and package.json naming formats
Different patterns of package imports for the workspace folders with different aliases, version numbers, etc.
Probably a dozen other things that aren't coming to mind because this has now broken my brain

I'm at a loss at what else to try. I'm happy to try whatever you recommend, but at this point I'm thinking it is just a vscode bug.

VS Code uses TS and you need proper configuration to make TS work with all packages in monorepo.
See example from https://github.com/RyanCavanaugh/learn-a


[AMBARI-2298] trunk . Not able to add Livy2 after doing rolling upgrade to M21

What changes were proposed in this pull request?
Fix the issue that the desired version of a cluster is not updated (only during cross-stack rolling upgrade).
How was this patch tested?
Running maven tests
Checked RU/EU and Ambari upgrade

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/591/
Test FAILed.
Test FAILured.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/597/
Test FAILed.
Test FAILured.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/602/
Test FAILed.
Test FAILured.

ci failure not related to changes, AMBARI-22918 broke it.


What is the total memory required to download the dataset

It is unclear from the website and Physionet paper, what the exact size of the files in MIMIC-CXR-JPG is. I would greatly appreciate the help in understanding this space requirement?

Yeah unfortunately PhysioNet isn't displaying the dataset sizes correctly for MIMIC-CXR and MIMIC-CXR-JPG. The DICOM dataset is 4.7 TB and the JPG dataset is something like 500 - 600 GB.

We updated the dataset size on the PhysioNet page so this should be clearer for all users now.


custom deps trying to run setup for  - zha-quirks==0.0.85 i get s6-overlay-suexec: fatal: can only run as pid 1

Hello Community im not sure if i shoul post my issue overall - and imm defenitly not sure if this is the right place here.
But i want to give it a try.
My Setup:
Home Assistant 2022.11.2
Supervisor 2022.10.2
Operating System 9.3
Frontend 20221108.0 - latest
Im using - or to be correct - i have been using - the custom deps addon to install the zha-quirks librariy.
Config
pypi:

zha-quirks==0.0.85
apk: []

I did that for quite some versions.
But with since an update of the operatiing system i guess i get an "s6-overlay-suexec: fatal: can only run as pid 1" error when i try to start the addon.
Please tell me if im in the right spot here or if im just bothering everybody.
Greez, Ernst

I have the same issue.
Home assistant supervised.
All versións in the last.
Install addon with this config:
pypi:

wiringpi
apk: []

Addons don´t start with this log:
s6-overlay-suexec: fatal: can only run as pid 1

There are a few bugs in the actual code. I have corrected them and made a pull request.

Hi Visolo,
Home Assistant 2022.12.1
Supervisor 2022.11.2
Operating System 9.3
Frontend 20221208.0 - latest
And im Still getting the:
s6-overlay-suexec: fatal: can only run as pid 1
Sorry

The pull request is waiting for approval and merge. We only can wait for it.

I have the same problem. Waiting for resolving issue.

Hey,
Any chance to fix the issue soon?
Thanks
B.

The pull request is waiting for approval and merge. We only can wait for it.

I think you should re-open your pull request, report of its existence for maintainers of this repository could have been blocked.

Since it seems that they are not going to merge my pull request, I have compiled my version of the addon and published it in my repository.
Feel free to try it.
https://github.com/Visolo/ha-addons

Thank you, it solved my issue - finally, I don't have to switch
tuya-iot-python-sdk to my fork every time I update my HA instance. Hope
your pull request will be reviewed soon.
ne 8. 1. 2023 v 1:20 odesílatel David Pose @.***>
napsal:

Since it seems that they are not going to merge my pull request, I have
compiled my version of the addon and published it in my repository.
Feel free to try it.
https://github.com/Visolo/ha-addons
—
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/addons-development/issues/91#issuecomment-1374666522,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFX5AJOHVL7FOMSY4UFLCTWRIB4HANCNFSM6AAAAAAR4XQLRI
.
You are receiving this because you commented.Message ID:
@.***>

Fixed with https://github.com/home-assistant/addons-development/pull/97.


Tuyenho develop

Add UI quater.jsx , mainpage.jsx, event.jsx , finalreport.jsx

Before I look at it, please fix the TravisCI failures: https://travis-ci.org/gios-asu/dont-get-fired-game/builds/109196627

Quarter is mispelled Quater, but other wise looks good.


Snake cases should be Camel cases

Good practices and syntax sugar for Golang

I see no snake cases in the project, only 2 times when i used SF_something instead of SalesforceSomething or salesforceSomething.

I'm working on setting up a travis file so you can do automatic CI with linting. By running the linter manually, I get the following. It's not really an issue, but a nice addition to the project. 😃
src/GoS2S3/App.go:39:6: don't use underscores in Go names; var SF_Soap should be SFSoap
src/GoS2S3/App.go:40:6: don't use underscores in Go names; var SF_BasicAuth should be SFBasicAuth
...
src/GoS2S3/ConfLoader.go:49:2: don't use underscores in Go names; struct field Instance_url should be InstanceURL
src/GoS2S3/ConfLoader.go:51:2: don't use underscores in Go names; struct field Access_key_ID should be AccessKeyID
src/GoS2S3/ConfLoader.go:52:2: don't use underscores in Go names; struct field Secret_access_key should be SecretAccessKey
src/GoS2S3/ConfLoader.go:53:2: don't use underscores in Go names; struct field Session_token should be SessionToken
src/GoS2S3/ConfLoader.go:56:2: don't use underscores in Go names; struct field S3_destination_bucket should be S3DestinationBucket
src/GoS2S3/ConfLoader.go:57:2: don't use underscores in Go names; struct field S3_destination_path should be S3DestinationPath
src/GoS2S3/ConfLoader.go:58:2: don't use underscores in Go names; struct field S3_destination_prefix should be S3DestinationPrefix

I did to maintain the name of the variable similar as the json variable name (for immediate find when searching in the project). Obviously if there are better reason for changing those variables i can refactor the code :)


Not support with deployment target IOS new Version

Please add documentation...
But if you are facing some issue please try adding the minimum version to iOS 10.2. It is for the native pod Bcrypt which has that requirement.


adds tests for shutdown bind port

Intro
After calling Shutdown of DNS server, the bound port still open. It only happens if the DNS server is running on Linux and use UDP.

This PR is a WIP, I added the test cases and expect the CI test to fail the test TestShutdownBindPortUDP with error:
listen udp <IP_ADDRESS>:1153: bind: address already in use

As I expected the build https://travis-ci.org/miekg/dns/jobs/156725743 fails:
--- FAIL: TestShutdownBindPortUDP (1.00s)
	server_test.go:700: listen udp <IP_ADDRESS>:1153: bind: address already in use

I'm working on a fix.

maybe there's bug in udp_linux.go, something like this
func setUDPSocketOptions4(conn *net.UDPConn) error {
	file, err := conn.File()
	if err != nil {
		return err
	}
........................

// File sets the underlying os.File to blocking mode and returns a copy.
// It is the caller's responsibility to close f when finished.
// Closing c does not affect f, and closing f does not affect c.
//
// The returned os.File's file descriptor is different from the connection's.
// Attempting to change properties of the original using this duplicate
// may or may not have the desired effect.
func (c *conn) File() (f *os.File, err error) {
	f, err = c.fd.dup()
	if err != nil {
		err = &OpError{Op: "file", Net: c.fd.net, Source: c.fd.laddr, Addr: c.fd.raddr, Err: err}
	}
	return
}

so, we must Close this file  descriptor in those functions.

@secmask I've tried to add defer file.Close() to all function in udp_linux.go, but the test still fails.

it passed on mine, you may try to comment call to setUDPSocketOptions in server.go.

it passed on mine, you may try to comment call to setUDPSocketOptions in server.go.

You are right, commit 403a8ccfa829d479469f3fab8ed58b93c5d753ee fixed the problem. I'm not sure why the test failed yesterday in my local VM.
I think the problem is fixed.

I think the problem is fixed.

I was wrong, the CI test passes now, but the test still fail in my local VM. Notice that the TCP port fails too! I'm not sure what's going on.
vagrant@vagrant-ubuntu-trusty-64:~$ go test -run '^TestShutdownBindPort' github.com/miekg/dns/...
--- FAIL: TestShutdownBindPortUDP (1.00s)
       	server_test.go:700: listen udp <IP_ADDRESS>:1153: bind: address already in use
--- FAIL: TestShutdownBindPortTCP (1.00s)
       	server_test.go:700: listen tcp <IP_ADDRESS>:1154: bind: address already in use
       	server_test.go:691: accept tcp <IP_ADDRESS>:1154: use of closed network connection
FAIL
FAIL   	github.com/miekg/dns   	2.007s
ok     	github.com/miekg/dns/dnsutil   	0.005s
ok     	github.com/miekg/dns/idn       	0.004s

accept tcp <IP_ADDRESS>:1154: use of closed network connection
this because the server connection is Close() 2 times, in serv loop (defer statement) and in Shutdown(...)
TCP port fails too
can you check the state of TCP connection at this point , netstat -ntlp|grep 1154 , TCP listerner may require a delay before we can rebind to the same port if we did not use REUSE_ADDR

@secmask I'm on mobile right now so I can't check, but I believe go sets REUSE_ADDR for all connections unconditionally.

but I believe go sets REUSE_ADDR for all connections unconditionally.

Not for all, only for syscall.SOCK_STREAM and syscall.SOCK_SEQPACKET socket type.
For udp listener, which is syscall.SOCK_DGRAM, you must set syscall.SO_REUSEADDR before binding the socket, but it's currently impossible with standard library.

What's the state of this PR?

What's the state of this PR?

403a8ccfa829d479469f3fab8ed58b93c5d753ee fixes the problem in CI test, but I still get failures in my local machine. I suspect that something is wrong in the test setup, but haven't have the time to look more carefully. Maybe I will do it this week.

ping?

I'm looking at this problem now.

[ Quoting<EMAIL_ADDRESS>in "Re: [miekg/dns] adds tests for shut..." ]

favadi commented on this pull request.

@@ -677,3 +677,37 @@ zDCJkckCgYEAndqM5KXGk5xYo+MAA1paZcbTUXwaWwjLU+XSRSSoyBEi5xMtfvUb
kFsxKCqxAnBVGEWAvVZAiiTOxleQFjz5RnL0BQp9Lg2cQe+dvuUmIAA=
-----END RSA PRIVATE KEY-----`)
)

+func testShutdownBindPort(t *testing.T, protocol string, port string) {

handler := NewServeMux()
handler.HandleFunc(".", func(w ResponseWriter, r *Msg) {})
s := &Server{

 Addr:    net.JoinHostPort("<IP_ADDRESS>", port),

 Net:     protocol,

 Handler: handler,

}
go func() {

 if err := s.ListenAndServe(); err != nil {

 	t.Log(err)

 }

}()
time.Sleep(500 * time.Millisecond)

As I said above, I don't know how much time it needs. So I tested and the test passes every time with 100ms. If I removed those sleep completely sometimes test will fails. If you concern about those sleep statements, I think it is OK about comment out the tests and accept it is a known behavior.

Yes, I see. It would be better to use the startup notification that is available
in server to check if it started. That way we don't need sleeps at all.
Yes, I've used sleeps as well for getting tests to pass :) But we should start
to do the right thing, and wait for it to have started. This is prolly faster
and less flaky.

@favadi relate question http://unix.stackexchange.com/questions/17218/how-long-is-a-tcp-local-socket-address-that-has-been-bound-unavailable-after-clo

To clarify: let's see how easy it is to remove the sleeps otherwise I'll just merge. Is good to have this test.

@miekg I replaced the sleep after start with notify channel.

Awesome. Thanks!


New chats are not created in sendMessageToID

With the change, It Is not possible to send messages to chats not created.
It's sending messages to chat previously created. However, i'm unable to send to new numbers.
Regards

I think i'm facing the same problem, specifically when the method "Store.Chat.find(idUser)" is called; i've tried to trace it, but it is never returning the chat, not sure where what to do next

contact me<PHONE_NUMBER>2

I managed to send. In the group chat, I clicked on the joined member who is not in my contacts, then a dialog box with him opened. Then I closed the window by pressing Escape on the keyboard, and called sending by id. It is necessary to trace where and how the new user object is added, and manually create and add it. Perhaps this object is created on the server side.

leoteixeira2016 i try to contact you but i can't. Can you help me? +52 1 33 2339 2525

contact me<PHONE_NUMBER>2

leoteixeira2016 i try to contact you but i can't. Can you help me? +52 1 33 2339 2525

Guys, try:
Store.Chat.models.push = function(message) {
    Array.prototype.push.call(this, message);
    console.trace();
};

Now in the group chat, click on any contact that joined the chat and who is not in your contact list.

USERID - in the format<EMAIL_ADDRESS>You must add a chat with the user through the API.
Sequence:

Store.Chat._staleCollection = true;
Without setting this parameter to true, the API will think that the new chat should not be added to the collection.
 Store.Chat._serverQuery.call (Store.Chat, 'FIND', Store.Contact.find (USERID) ._ value .__ x_id);
(you can call Store.Chat.find (USERID) for checking)
Store.Chat._staleCollection = false;
And finally send the message:
Store.SendTextMsgToChat (USERID, message_text);
Please update wapi.js by adding such excellent functionality there.

I don't know about the other people in this thread, but in my case it's not working (even with the _staleCollection), if the chat doesn't exists, there is no way to send any message to the contact, and i don't know how to create a new chat, i don't find any method to do that, so i'm in the same place

Hi I have modified and Simplified the function sendMessageToID
Here is the code and a quick brief:
The function takes the first chat, changes the ID of it, send the message and rollback the ID of the chat!
It´s necessary though to have at least one chat! One problem is that in the window, after the message is sent, it looks like it was sent to the Original (Firstchat) Id, but if you check on the phone it was sent to the given ID.
`window.WAPI.sendMessageToID = function (id, message, done) {
if (window.Store.Chat.length == 0)
return false;
firstChat = Store.Chat.models[0];
var originalID = firstChat.id;
firstChat.id = typeof originalID == "string" ? id : new window.Store.UserConstructor(id, { intentionallyUsePrivateConstructor: true });
if (done !== undefined) {
    firstChat.sendMessage(message).then(function () {
        firstChat.id = originalID;
        done(true);
    });
    return true;
} else {
    firstChat.sendMessage(message);
    firstChat.id = originalID;
    return true;
}

};`
Should I do a pull request for this or Am I missing something? It's way simpler than original function

Hi I have modified and Simplified the function sendMessageToID
Here is the code and a quick brief:
The function takes the first chat, changes the ID of it, send the message and rollback the ID of the chat!
It´s necessary though to have at least one chat! One problem is that in the window, after the message is sent, it looks like it was sent to the Original (Firstchat) Id, but if you check on the phone it was sent to the given ID.
window.WAPI.sendMessageToID = function (id, message, done) {
    if (window.Store.Chat.length == 0)
        return false;
    firstChat = Store.Chat.models[0];
    var originalID = firstChat.id;
    firstChat.id = typeof originalID == "string" ? id : new window.Store.UserConstructor(id, { intentionallyUsePrivateConstructor: true });
    if (done !== undefined) {
        firstChat.sendMessage(message).then(function () {
            firstChat.id = originalID;
            done(true);
        });
        return true;
    } else {
        firstChat.sendMessage(message);
        firstChat.id = originalID;
        return true;
    }
};

Should I do a pull request for this or Am I missing something? It's way simpler than original function

it work's for me, thanks a lot!!!!

yes, it is working. But until refresh, it appears like the message was sent to first chat, which is confusing.
Is there a way that we can construct a chat !

It works, but it is not the best approach; besides it only works if you send just a text, but if you need to send an image, o text & image, it's not possible.

var idUser = new window.Store.UserConstructor(id, { intentionallyUsePrivateConstructor: true });
return Store.Chat.find(idUser).then((chat) => {
chat.sendMessage(message);
});
This is working as expected without appearing that it send to firstchat. It basically creates the chat and send the message.

var idUser = new window.Store.UserConstructor(id, { intentionallyUsePrivateConstructor: true });
return Store.Chat.find(idUser).then((chat) => {
chat.sendMessage(message);
});
This is working as expected without appearing that it send to firstchat. It basically creates the chat and send the message.

It Works! Thanks

it's possible to receive the error if the number is non-existent in whatsapp?
Now the message is also sent to non-existent numbers

They removed sendMessage? how you send the message now?

To check if a whatsapp account exists:
const exists = await Store.WapQuery.queryExist(id);
            if (exists.status === 200) {
//do something
}


Integrating data that is outputted by mip_convert

Hey guys - here's a brainstorming issue: PR #702 allows the user to run mip_convert from esmvaltool, mip_convert is a MetOffice developed python (2.7) package that converts UM PP format to CMORized netCDF files. Currently the wrapper I wrote esmvt_mipconv_setup can be run in --postproc mode and that bit symlinks data files from a mip_convert-specific output path (output/stream/YYYY0101/files) to something a bit more esmvaltool-friendly (output/dataset/files) but not a standard site-specific DRS. What do you think would be the best approach to make the files available to the recipe: this of this scenario: the recipe contains a number of CMIP6 datasets that some are available from a standard DRS (BADC, DKRZ...) and others need to be mip_converted so that netCDF files can be used. My take is to create a special mip_convert path structure in config-developer but that seems a bit clunky. Chip in, folks :beer:

Hi V.,
I think the best way to ingest this model data in esmvaltool is to save all files to a single directory and add that directory to the list in config user under the rootpath key. This may need some small improvements for the way config-user.yml: at the moment all drs need to be the same per project, while it would make much more sense to be able to specify the drs per rootpath.
To make this more clear, now we have this:
rootpath:
  # Rootpath to CMIP5 data
  CMIP5:
    - /badc/cmip5/data/cmip5/output1

# Directory structure for input data: [default]/BADC/DKRZ/ETHZ/etc
# See config-developer.yml for definitions.
drs:
  CMIP5: BADC

while I think this would be much more useful:
# Directory structure for input data in the format
# input_data:
#   project_a:
#     /path/to/dir_1: drs_1
#     /path/to/dir_2: drs_2
#   project_b:
#     /path/to/dir_3: drs_2
# See config-developer.yml for valid drs definitions per project.
input_data:
  CMIP5:
    /badc/cmip5/data/cmip5/output1: BADC
    ~/mip_convert_output: default

shoot @bouweandela - sorry, man, had completely forgotten about this issue, yes, drs per rootpath is the way forward and the rootpath / should do the trick for mip_converted stuffs, actually, a nicer one one could be /[dataset] so we don't throw all the animals into one ark. I am going to close this since it's not that major-major at the moment, we'll do something about it on the fly :bird:


Service Catalog API server auth not tested on Jenkins

Currently auth is disabled on the API server for the e2e tests run on Jenkins. API aggregation is not yet functional on GKE, and I was unsuccessful in my preliminary attempts at getting auth to work with an un-aggregated API server.
I'm currently reaching out to GKE engineers to learn the timeline for GKE API aggregation, and from there we can decide priorities.

How about now? I just finished getting API Aggregation support enabled on IKS.
I think this is probably best solved by moving to prow.

This was fixed long ago.


Investigate how to integrate with LinkedIn Share API

As an influencer
I would like to understand how to integrate with LinkedIn share API
So that I could see whether schedule multiple short posts at once on LinkedIn is possible.
API docs:
https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/posts-api?view=li-lms-2022-08&tabs=http
Acceptance Criteria:
VS Code example LinkedIn requests to:

[x] private post on including:

Content
Hashtags

[x] delete a private post
[ ]  get a history of posts created in an automatic way

Some complications on the GET part, but we can resolve that by storing the posts sent locally.

Postman collection to play around: https://www.postman.com/science-saganist-14161066/workspace/starpost/collection/14044638-51ad219c-5410-4041-a4f3-05e06d2d36aa?action=share&creator=14044638


How to enable CORS on mms

I'm not sure how to enable CORS on this. Thanks!

I have the header request in my code as well a config.properties file that contains those lines of code in the documentation. I still have the error

my config.properties file

Hey @MaxTran96 , have you tried to use * for the cors_allowed_origin value?

@MaxTran96
You should not added header "Access-Control-Allow-Origin: *" to your request, browser  should
append "Origin: http://localhost:3001" to the header.
can you capture the request header sent by browser to check if the request was sent properly?
Remember, CORS is doing string match, suggest use "*" for testing.

In conversation over slack channel we were able to clarify with @MaxTran96 that he was using axios to send requests. Once he switched to fetch API this issue was resolved for him. I am going to close this issue, @MaxTran96 please feel free to add more details if necessary.


feat/pr-template: Create pull request template

Create pull request template

we are working with dev as base branch for development. we should update this to dev as well


[Dribblish] A total mess

Describe the bug
When trying to use Dribblish base in a fresh Spotify and Spicetify installation, it the layout is completely messed up, with almost no functionality
To Reproduce
Steps to reproduce the behavior:

Install Spicetify and Spicetify Marketplace
Install Dribblish

Expected behavior
Dribblish properly works
Screenshots

Logs
`console

Specifics (please complete the following information):

OS: Windows 11 build 22631.3296
Spotify version <IP_ADDRESS>2.gg26c92729
Spicetify version 2.36.1
Dribblish

Dribblish doesn't work with the new layout, and wont for some time. You can change layout by going into the experimental features and disabling enableGlobalNavBar.


refactor(router): add amount conversion framework to nexinets

Type of Change

[ ] Bugfix
[ ] New feature
[ ] Enhancement
[x] Refactoring
[ ] Dependency updates
[ ] Documentation
[ ] CI/CD

Description
Minor refactoring to standardizeNexinets connector to use the conversion framework to reduce potential inconsistencies in managing amounts fixes #6095 .
Additional Changes

[ ] This PR modifies the API contract
[ ] This PR modifies the database schema
[ ] This PR modifies application configuration/environment variables

Checklist

[x] I formatted the code cargo +nightly fmt --all
[x] I addressed lints thrown by cargo clippy
[x] I reviewed the submitted code
[ ] I added unit tests for my changes where possible

@awasthi21 review changes done

@hex1c Please resolve the conflicts

Hey @hex1c
Can you please look into the comments, and make the changes!


Configurable fgrpc listen address

Similar to https://github.com/istio/fortio/issues/91 for fhttp, fgrpc needs a way to make it's listen address configurable.

/cc @ldemailly

It seems as though requiring the host flag after grpcping would no longer be needed if we use NormalizePort and setHostAndPort to generate the host portion of the destination. This would be similar to what was done for generating the urlHostPort in fhttp.

there are 2 different things here
the client code and the server code
the client (like for http) takes the host:port (and http(s) url for http) as argument
the server uses flags to bind to a port (with the now new optional host)

@ldemailly It appears the client uses the server flag to construct the grpcping destination:
From https://github.com/istio/fortio/blob/master/pingsrv.go#L155:
dest := fmt.Sprintf("%s:%d", host, *grpcPortFlag)

If the client can ping any grpc destination, I would expect the destination not to use the grpcPortFlag.


After updating rayDP, spark = raydp.init_spark() cannot be started

I update ray[all]==0.1.1 to ray[all]==1.5.0, raydp==0.1.0 to raydp==0.3.0.
After re-running the previous program, it was found that spark could not be started. It is normal to modify it to the original version.
--------init code--------
ray.init(address='auto', _redis_password='5241590000000000')
Edage_data_PATH = args.full_graph_path
Node_data_PATH = args.full_graph_feat_path

# After initialize ray cluster, you can use the raydp api to get a spark session
app_name = "raydp and raysgd"
num_executors = 3
cores_per_executor = 45
memory_per_executor = 40GB
spark = raydp.init_spark(app_name,
                         num_executors,
                         cores_per_executor,
                         memory_per_executor)

# # schema for Node_features_data
long_cols = list(range(0, 1))
float_cols = list(range(1, 1 + 14))
label_cols = list(range(1 + 14, 16))

long_fields = [('node_id') for i in long_cols]
float_fields = [('feat_%d') % i for i in float_cols]
label_fields = [('label') for i in label_cols]

schema1 = (long_fields +
          float_fields +
          label_fields)

schema2 = ["src_node_id","dst_node_id"]

# # Here we just use a subset of the training data
Node_features_data = spark.read.format("csv").option("header", "False") \
    .option("inferSchema", "true") \
    .load(Node_data_PATH) \
    .toDF(*schema1) \

--------init code--------
#The error message is as follows:
------------------error-------------
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
2021-08-24 16:51:50,192 INFO RayAppMaster$RayAppMasterEndpoint [dispatcher-event-loop-7]: Registering app RayDP with DGL for abfusion_v2(Hotel dataset)
2021-08-24 16:51:50,196 INFO RayAppMaster$RayAppMasterEndpoint [dispatcher-event-loop-7]: Registered app RayDP with DGL for abfusion_v2(Hotel dataset) with ID app-20210824165150-0000
Exception in thread "dispatcher-event-loop-7" java.lang.NoSuchMethodError: io.ray.api.call.ActorCreator.setJvmOptions(Ljava/lang/String;)Lio/ray/api/call/ActorCreator;
at org.apache.spark.raydp.RayExecutorUtils.createExecutorActor(RayExecutorUtils.java:45)
at org.apache.spark.deploy.raydp.RayAppMaster$RayAppMasterEndpoint.org$apache$spark$deploy$raydp$RayAppMaster$RayAppMasterEndpoint$$requestNewExecutor(RayAppMaster.scala:227)
at org.apache.spark.deploy.raydp.RayAppMaster$RayAppMasterEndpoint.$anonfun$schedule$1(RayAppMaster.scala:214)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:158)
at org.apache.spark.deploy.raydp.RayAppMaster$RayAppMasterEndpoint.org$apache$spark$deploy$raydp$RayAppMaster$RayAppMasterEndpoint$$schedule(RayAppMaster.scala:213)
at org.apache.spark.deploy.raydp.RayAppMaster$RayAppMasterEndpoint$$anonfun$receive$1.applyOrElse(RayAppMaster.scala:121)
at org.apache.spark.rpc.netty.Inbox.$anonfun$process$1(Inbox.scala:115)
at org.apache.spark.rpc.netty.Inbox.safelyCall(Inbox.scala:203)
at org.apache.spark.rpc.netty.Inbox.process(Inbox.scala:100)
at org.apache.spark.rpc.netty.MessageLoop.org$apache$spark$rpc$netty$MessageLoop$$receiveLoop(MessageLoop.scala:75)
at org.apache.spark.rpc.netty.MessageLoop$$anon$1.run(MessageLoop.scala:41)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
21/08/24 16:52:45 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
21/08/24 16:53:00 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
21/08/24 16:53:15 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
-------error-----------
The current version of jdk is 1.8. Does it need to be updated?

@YeahNew , JDK 1.8 is fine. It looks like a version mismatch issue as I saw a NoSuchMethodError. Just to check, did you upgrade Ray and RayDP on every node of your cluster?

@YeahNew , JDK 1.8 is fine. It looks like a version mismatch issue as I saw a NoSuchMethodError. Just to check, did you upgrade Ray and RayDP on every node of your cluster?

yes，I update every node in my cluster.

@YeahNew , JDK 1.8 is fine. It looks like a version mismatch issue as I saw a NoSuchMethodError. Just to check, did you upgrade Ray and RayDP on every node of your cluster?

I have experimented with many versions, only when raydp==0.1.1 ray[all]=1.1.0/1.2.0, the program can run normally, and other version combinations will have various error problems.

Hi @YeahNew , the latest stable version of raydp support ray 1.3.0. Ray 1.4.0 changes the signature, that's why you see this message. Have you tried raydp 0.3.0 with Ray 1.3.0? If you want to use newer versions of ray, you can also try our nightly versions.

Hi @YeahNew , the latest stable version of raydp support ray 1.3.0. Ray 1.4.0 changes the signature, that's why you see this message. Have you tried raydp 0.3.0 with Ray 1.3.0? If you want to use newer versions of ray, you can also try our nightly versions.

Yes, I tried.

What's the error message?

What's the error message?

when I try raydp 0.3.0 with Ray 1.3.0.
the error message as follows:
-------------message------------
Connected to pydev debugger (build 201.8538.36)
Using backend: pytorch
Current Path: /home/yexin/workSpace/PyCharmWorks/HikVision/rayhik/rayABV2
2021-08-25 17:09:30,123	INFO worker.py:641 -- Connecting to existing Ray cluster at address: <IP_ADDRESS>:9999
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
2021-08-25 17:09:32,063 ERROR DefaultRayRuntimeFactory [Thread-2]: Failed to initialize ray runtime, with config {"ray":{"address":"<IP_ADDRESS>:9999","head-args":[],"job":{"code-search-path":"","id":"","jvm-options":[],"num-java-workers-per-process":1,"worker-env":{}},"logging":{"dir":"/tmp/ray/session_2021-08-25_17-09-05_973250_43058/logs","level":"INFO","max-backup-files":10,"max-file-size":"500MB","pattern":"%d{yyyy-MM-dd HH:mm:ss,SSS} %p %c{1} [%t]: %m%n"},"node-ip":"<IP_ADDRESS>","object-store":{"socket-name":"/tmp/ray/session_2021-08-25_17-09-05_973250_43058/sockets/plasma_store"},"raylet":{"config":{"num_workers_per_process_java":"1"},"node-manager-port":40525,"socket-name":"/tmp/ray/session_2021-08-25_17-09-05_973250_43058/sockets/raylet"},"redis":{"password":"5241590000000000"},"resources":"CPU:4","run-mode":"CLUSTER","session-dir":"/tmp/ray/session_2021-08-25_17-09-05_973250_43058"}}
java.lang.RuntimeException: Failed to get address info. Output: {'object_store_address': '/tmp/ray/session_2021-08-25_17-09-05_973250_43058/sockets/plasma_store', 'raylet_socket_name': '/tmp/ray/session_2021-08-25_17-09-05_973250_43058/sockets/raylet', 'node_manager_port': 40525}
at io.ray.runtime.runner.RunManager.getAddressInfoAndFillConfig(RunManager.java:88)
at io.ray.runtime.RayNativeRuntime.start(RayNativeRuntime.java:79)
at io.ray.runtime.DefaultRayRuntimeFactory.createRayRuntime(DefaultRayRuntimeFactory.java:39)
at io.ray.api.Ray.init(Ray.java:39)
at io.ray.api.Ray.init(Ray.java:26)
at org.apache.spark.deploy.raydp.AppMasterJavaBridge.startUpAppMaster(AppMasterJavaBridge.scala:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
at py4j.Gateway.invoke(Gateway.java:282)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:238)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 3 path $
at com.google.gson.JsonParser.parse(JsonParser.java:65)
at com.google.gson.JsonParser.parse(JsonParser.java:45)
at io.ray.runtime.runner.RunManager.getAddressInfoAndFillConfig(RunManager.java:83)
... 16 more
Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 3 path $
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568)
at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1409)
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:542)
at com.google.gson.stream.JsonReader.peek(JsonReader.java:425)
at com.google.gson.JsonParser.parse(JsonParser.java:60)
Traceback (most recent call last):
File "/root/miniconda3/lib/python3.7/site-packages/raydp/context.py", line 122, in init_spark
return _global_spark_context.get_or_create_session()
File "/root/miniconda3/lib/python3.7/site-packages/raydp/context.py", line 68, in get_or_create_session
spark_cluster = self._get_or_create_spark_cluster()
File "/root/miniconda3/lib/python3.7/site-packages/raydp/context.py", line 62, in _get_or_create_spark_cluster
self._spark_cluster = SparkCluster(self._configs)
File "/root/miniconda3/lib/python3.7/site-packages/raydp/spark/ray_cluster.py", line 33, in init
self._set_up_master(None, None)
File "/root/miniconda3/lib/python3.7/site-packages/raydp/spark/ray_cluster.py", line 39, in _set_up_master
self._app_master_bridge.start_up()
File "/root/miniconda3/lib/python3.7/site-packages/raydp/spark/ray_cluster_master.py", line 59, in start_up
self._create_app_master(extra_classpath)
File "/root/miniconda3/lib/python3.7/site-packages/raydp/spark/ray_cluster_master.py", line 169, in _create_app_master
self._app_master_java_bridge.startUpAppMaster(extra_classpath)
File "/root/miniconda3/lib/python3.7/site-packages/py4j/java_gateway.py", line 1305, in call
answer, self.gateway_client, self.target_id, self.name)
File "/root/miniconda3/lib/python3.7/site-packages/py4j/protocol.py", line 328, in get_return_value
format(target_id, ".", name), value)
py4j.protocol.Py4JJavaError: An error occurred while calling o0.startUpAppMaster.
: java.lang.RuntimeException: Failed to initialize Ray runtime.
at io.ray.api.Ray.init(Ray.java:28)
at org.apache.spark.deploy.raydp.AppMasterJavaBridge.startUpAppMaster(AppMasterJavaBridge.scala:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
at py4j.Gateway.invoke(Gateway.java:282)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:238)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: Failed to initialize ray runtime
at io.ray.runtime.DefaultRayRuntimeFactory.createRayRuntime(DefaultRayRuntimeFactory.java:43)
at io.ray.api.Ray.init(Ray.java:39)
at io.ray.api.Ray.init(Ray.java:26)
---------meaasge-----------

This is weird. I just tried and it works. Just to make sure, did you restart the ray cluster after installing ray 1.3.0? It  complains MalformedJsonException, is there any illegal character in the path?

This is weird. I just tried and it works. Just to make sure, did you restart the ray cluster after installing ray 1.3.0? It complains MalformedJsonException, is there any illegal character in the path?

@kira-lin
After trying many times, the problem is still the same. there is no illegal character in the path. There is no problem with running ray or pyspark program alone .

Confirmed with @YeahNew offline, the error only happens when running in IDE. There is no error if running in command line.

Confirmed with @YeahNew offline, the error only happens when running in IDE. There is no error if running in command line.

Yes, Thank you very much Carson.

close as stale


After provisioning a node into a cluster k3s does not properly restarts on reboot

I did a simple deployment of a single node cluster and after rebootin the node k3s will not properly start.
These are some of the k3s.service traces at boot:
Jul 28 09:48:41 m-qemu-standard-pc-q35-ich9-2009-9edc43c6-f36d-4bbe-ae53-a k3s[1848]: time="2022-07-28T09:48:41Z" level=info msg="Waiting to retrieve kube-proxy configuration; server is not ready: https://<IP_ADDRESS>:6443/v1-k3s/readyz: 500 Internal Server Error"
Jul 28 09:48:42 m-qemu-standard-pc-q35-ich9-2009-9edc43c6-f36d-4bbe-ae53-a k3s[1848]: time="2022-07-28T09:48:42Z" level=info msg="Tunnel server egress proxy waiting for runtime core to become available"
Jul 28 09:48:43 m-qemu-standard-pc-q35-ich9-2009-9edc43c6-f36d-4bbe-ae53-a k3s[1848]: time="2022-07-28T09:48:43Z" level=info msg="Defragmenting etcd database"
Jul 28 09:48:43 m-qemu-standard-pc-q35-ich9-2009-9edc43c6-f36d-4bbe-ae53-a k3s[1848]: {"level":"info","ts":"2022-07-28T09:48:43.011Z","caller":"v3rpc/maintenance.go:89","msg":"starting defragment"}
Jul 28 09:48:43 m-qemu-standard-pc-q35-ich9-2009-9edc43c6-f36d-4bbe-ae53-a k3s[1848]: {"level":"info","ts":"2022-07-28T09:48:43.110Z","caller":"backend/backend.go:497","msg":"defragmenting","path":"/var/lib/rancher/k3s/server/db/etcd/member/snap/db","current-db-size-bytes":4608000,"current-db-size":"4.6 MB","current-db-size-in-use-bytes":4599808,"current-db-size-in-use":"4.6 MB"}
Jul 28 09:48:43 m-qemu-standard-pc-q35-ich9-2009-9edc43c6-f36d-4bbe-ae53-a k3s[1848]: {"level":"info","ts":"2022-07-28T09:48:43.303Z","caller":"backend/backend.go:549","msg":"finished defragmenting directory","path":"/var/lib/rancher/k3s/server/db/etcd/member/snap/db","current-db-size-bytes-diff":0,"current-db-size-bytes":4608000,"current-db-size":"4.6 MB","current-db-size-in-use-bytes-diff":0,"current-db-size-in-use-bytes":4599808,"current-db-size-in-use":"4.6 MB","took":"291.172338ms"}
Jul 28 09:48:43 m-qemu-standard-pc-q35-ich9-2009-9edc43c6-f36d-4bbe-ae53-a k3s[1848]: {"level":"info","ts":"2022-07-28T09:48:43.303Z","caller":"v3rpc/maintenance.go:95","msg":"finished defragment"}
Jul 28 09:48:43 m-qemu-standard-pc-q35-ich9-2009-9edc43c6-f36d-4bbe-ae53-a k3s[1848]: time="2022-07-28T09:48:43Z" level=info msg="Failed to test data store connection: this server is a not a member of the etcd cluster. Found [m-qemu-standard-pc-q35-ich9-2009-9edc43c6-f36d-4bbe-ae53-a-aee7b528=https://<IP_ADDRESS>:2380], expect: m-qemu-standard-pc-q35-ich9-2009-9edc43c6-f36d-4bbe-ae53-a-aee7b528=<IP_ADDRESS>"

Looks like something wrong with IPs, however the current node IPs are consistent with the machineinventory labels...

This

this server is a not a member of the etcd cluster

typically indicates that the machine came up with a different IP address.
etcd needs consistent IP addresses :-(

Yes, the curious thing it that the labels in machine inventory were showing the correct IPs, this is what puzzles me... anyway, need to better set this network in my env

The IPs in the machineInventory get set on first boot but they don't influence the node's network.
(And, yes, maybe they should ...)

Otoh, I don't think that Elemental should care for network management. That's typically outside the OS/machine scope.

I had an IP issue, after fixing it k3s is running but cattle-system-agent fails:
 Normal   Scheduled               4m33s                  default-scheduler  Successfully assigned cattle-system/cattle-cluster-agent-5774bc4846-lf49f to rancher-16811
  Warning  FailedCreatePodSandBox  4m33s                  kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "b4f25def75350e8059875a702cec1f27c8ae47f253ea6c3e029e196dc35fc2b9": plugin type="flannel" failed (add): open /run/flannel/subnet.env: no such file or directory
  Normal   Pulled                  2m20s (x5 over 4m23s)  kubelet            Container image "rancher/rancher-agent:v2.6.6" already present on machine
  Normal   Created                 2m20s (x5 over 4m23s)  kubelet            Created container cluster-register
  Normal   Started                 2m20s (x5 over 4m23s)  kubelet            Started container cluster-register
  Warning  BackOff                 105s (x9 over 4m16s)   kubelet            Back-off restarting failed container

This sounds the reason:
open /run/flannel/subnet.env: no such file or directory

@ldevulder you might want to try with patch https://github.com/rancher/elemental-operator/pull/97 whcih makes the deployments have the same name no matter the hostname change.
Could this have something to do with the double IPs in the eth interface that we have seen? I suffer the same issue a few days ago and it seemed related to it, it was launched with one ip, then after reboot it picked the other.

it was launched with one ip, then after reboot it picked the other.

On my last test I fixed the IP address, it was the same on each reboot. But I will give it a try with PR#97 yes :-)

Persistent naming is fixed for me!

Yes I think this can be closed now, I no longer see this issue. Also this was badly reported from my side as my env had a wrong network setup.


Database: Add sqlpp11

sqlpp11 - A type safe embedded domain specific language for SQL queries and results in C++. [BSD-2-Clause]

Related issue: #345 .


[Question] How to perform batch inference?

Question
Hi, I've been using the default evaluation script for some time, can someone please guide me how to perform batch-inference.
Thanks

I'm having the same problem and been stuck at this for a while :/

Hi @kahnchana @alphacoder01
Thank you for your interest in our work.  I am currently working on adding the batch inference support.  I do want to ask you about the thoughts on this feature request.  Is the goal mainly about improving the efficiency during the inference (so as to max out the full GPU power), or there are other motives as well?
Thanks!

Hi @haotian-liu, thanks a lot for the quick response.
Yes, my main goal is to increase inference time efficiency (ideally iterate over a dataset fast).  Currently, at batch size 1, this is taking a while.
I am trying to run various quantitative benchmarks on LLava models. E.g. replicate table from this paper:

Also, I have been trying to do this myself, but could not figure out yet how exactly to implement batch inference (so it's faster that current). So I am also curious about the approach you would take here.

@haotian-liu I'm also curious about this question. I wonder if the author can provide an answer?

I have modified the eval_model function in run_llava.py to the following form:
def eval_model(args):
# Model
disable_torch_init()
model_name = os.path.expanduser(args.model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
if args.mm_projector is None:
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16).cuda()
image_processor = CLIPImageProcessor.from_pretrained(model.config.mm_vision_tower, torch_dtype=torch.float16)
    mm_use_im_start_end = getattr(model.config, "mm_use_im_start_end", False)
    tokenizer.add_tokens([DEFAULT_IMAGE_PATCH_TOKEN], special_tokens=True)
    if mm_use_im_start_end:
        tokenizer.add_tokens([DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN], special_tokens=True)

    vision_tower = model.model.vision_tower[0]
    vision_tower.to(device='cuda', dtype=torch.float16)
    vision_config = vision_tower.config
    vision_config.im_patch_token = tokenizer.convert_tokens_to_ids([DEFAULT_IMAGE_PATCH_TOKEN])[0]
    vision_config.use_im_start_end = mm_use_im_start_end
    if mm_use_im_start_end:
        vision_config.im_start_token, vision_config.im_end_token = tokenizer.convert_tokens_to_ids([DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN])
    image_token_len = (vision_config.image_size // vision_config.patch_size) ** 2
else:
    # in case of using a pretrained model with only a MLP projector weights
    model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16).cuda()

    vision_tower = CLIPVisionModel.from_pretrained(args.vision_tower, torch_dtype=torch.float16).cuda()
    image_processor = CLIPImageProcessor.from_pretrained(args.vision_tower, torch_dtype=torch.float16)

    mm_use_im_start_end = getattr(model.config, "mm_use_im_start_end", False)
    tokenizer.add_tokens([DEFAULT_IMAGE_PATCH_TOKEN], special_tokens=True)
    if mm_use_im_start_end:
        tokenizer.add_tokens([DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN], special_tokens=True)

    vision_config = vision_tower.config
    vision_config.im_patch_token = tokenizer.convert_tokens_to_ids([DEFAULT_IMAGE_PATCH_TOKEN])[0]
    vision_config.use_im_start_end = mm_use_im_start_end
    if mm_use_im_start_end:
        vision_config.im_start_token, vision_config.im_end_token = tokenizer.convert_tokens_to_ids([DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN])

    image_token_len = (vision_config.image_size // vision_config.patch_size) ** 2

    mm_projector = torch.nn.Linear(vision_config.hidden_size, model.config.hidden_size)
    mm_projector_weights = torch.load(args.mm_projector, map_location='cpu')
    mm_projector.load_state_dict({k.split('.')[-1]: v for k, v in mm_projector_weights.items()})

    model.model.mm_projector = mm_projector.cuda().half()
    model.model.vision_tower = [vision_tower]

all_images = os.listdir(args.image_file)
for i in range(len(all_images)):
    qs = args.query
    if mm_use_im_start_end:
        qs = qs + '\n' + DEFAULT_IM_START_TOKEN + DEFAULT_IMAGE_PATCH_TOKEN * image_token_len + DEFAULT_IM_END_TOKEN
    else:
        qs = qs + '\n' + DEFAULT_IMAGE_PATCH_TOKEN * image_token_len

    conv = conv_templates[args.conv_mode].copy()
    conv.append_message(conv.roles[0], qs)
    prompt = conv.get_prompt()
    inputs = tokenizer([prompt])

    image = load_image(args.image_file + all_images[i])
    image_tensor = image_processor.preprocess(image, return_tensors='pt')['pixel_values'][0]

    input_ids = torch.as_tensor(inputs.input_ids).cuda()

    keywords = ['###']
    stopping_criteria = KeywordsStoppingCriteria(keywords, tokenizer, input_ids)

    with torch.inference_mode():
        output_ids = model.generate(
            input_ids,
            images=image_tensor.unsqueeze(0).half().cuda(),
            do_sample=True,
            temperature=0.7,
            max_new_tokens=1024,
            stopping_criteria=[stopping_criteria])

    input_token_len = input_ids.shape[1]
    n_diff_input_output = (input_ids != output_ids[:, :input_token_len]).sum().item()
    if n_diff_input_output > 0:
        print(f'[Warning] {n_diff_input_output} output_ids are not the same as the input_ids')
    outputs = tokenizer.batch_decode(output_ids[:, input_token_len:], skip_special_tokens=True)[0]

    while True:
        cur_len = len(outputs)
        outputs = outputs.strip()
        for pattern in ['###', 'Assistant:', 'Response:']:
            if outputs.startswith(pattern):
                outputs = outputs[len(pattern):].strip()
        if len(outputs) == cur_len:
            break

    try:
        index = outputs.index(conv.sep)
    except ValueError:
        outputs += conv.sep
        index = outputs.index(conv.sep)

    outputs = outputs[:index].strip()
    print(all_images[i], outputs)

Unfortunately, the output results are either incomplete or contain symbols, such as "#".

I change the padding side to tokenizer.padding_side = "left", and modify KeywordsStoppingCriteria to make it support batch inference.
        class KeywordsStoppingCriteria(StoppingCriteria):
            def __init__(self, keywords, tokenizer, input_ids):
                self.keywords = keywords
                self.tokenizer = tokenizer
                self.start_len = None
                self.input_ids = input_ids

            def __call__(self, output_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
                if self.start_len is None:
                    self.start_len = self.input_ids.shape[1]
                    return False
                else:
                    outputs = self.tokenizer.batch_decode(output_ids[:, self.start_len:], skip_special_tokens=True)
                    flag = True
                    for output in outputs:
                        for keyword in self.keywords:
                            if keyword not in output:
                                flag = False
                                return False
                    return flag

Does this result in a speed up in inference? I tried something similar but it did not work for me (as in it gave correct output, but no inference speed up overall).

@WPH-commit, Hi, Do you mean the padding side "left" should be same both in training and inference, otherwise when calling the generate function in batch inference, the position and the auto-regressive input token will get wrong?

@MingsYang
No, you do not need to train it with left padding. You only need to make sure you pass the correct attention mask when you do batch inference with left padding.

@WPH-commit I tried to do so, but it seems to be inccorrect.
And I found a difference between the llava project and the huggingface transformers codes in the "prepare_inputs_for_generation", the llava project maybe do not support to change the position encoding according to the attenttion mask, do you also modify this part?
llava project

transformers codes

I tried to add the position code into llava, but still cannot get the correct answer, did i forget anything else?

@MingsYang For LLaVA v0.1, the version of llama in transformers used does not have the argument position_ids, so LLaVA does not have it either. For the current version of llama in transformers, I think you should add position_ids in multiple places of LLaVA to make sure this argument is passed to the llama model. Otherwise, it would be auto-generated in llama, failing to consider the attention mask of left padding.

@WPH-commit Thanks a lot, after I modified the StoppingCriteria, the batch inference results can be aligned

What are the recommended steps to take to support batch inference using the new LLaVA-LLaMA-2 weights? I'd like to use the model_vqa.py script for batch inference to maximize my GPU usage

@penghao-wu

@MingsYang It would be great if you could please tell about the changes that you made in order to run the batched inference.

@dydxdt @akshayg08 I did the following changes in the llava codes
(1) modified the codes of prepare_inputs_for_generation function to align with the new transformers library, to make sure that it supports changing the position encoding according to the attention mask

@WPH-commit I tried to do so, but it seems to be inccorrect.
And I found a difference between the llava project and the huggingface transformers codes in the "prepare_inputs_for_generation", the llava project maybe do not support changing the position encoding according to the attenttion mask, do you also modify this part?
llava project  transformers codes
I tried to add the position code into llava, but still cannot get the correct answer, did i forget anything else?

@MingsYang For LLaVA v0.1, the version of llama in transformers used does not have the argument position_ids, so LLaVA does not have it either. For the current version of llama in transformers, I think you should add position_ids in multiple places of LLaVA besides prepare_inputs_for_generation (argument of the forward function of LlavaLlamaForCausalLM and the call of self.model) to make sure this argument is passed to the llama model. Otherwise, it would be auto-generated in llama, failing to consider the attention mask of left padding.

(2) modified the KeywordsStoppingCriteria to support batch inference

I change the padding side to tokenizer.padding_side = "left", and modify KeywordsStoppingCriteria to make it support batch inference.
        class KeywordsStoppingCriteria(StoppingCriteria):
            def __init__(self, keywords, tokenizer, input_ids):
                self.keywords = keywords
                self.tokenizer = tokenizer
                self.start_len = None
                self.input_ids = input_ids

            def __call__(self, output_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
                if self.start_len is None:
                    self.start_len = self.input_ids.shape[1]
                    return False
                else:
                    outputs = self.tokenizer.batch_decode(output_ids[:, self.start_len:], skip_special_tokens=True)
                    flag = True
                    for output in outputs:
                        for keyword in self.keywords:
                            if keyword not in output:
                                flag = False
                                return False
                    return flag

@dydxdt @akshayg08 I did the following changes in the llava codes, hope it helps! (1) modified the codes of prepare_inputs_for_generation function to align with the new transformers library, to make sure that it supports changing the position encoding according to the attention mask

@WPH-commit I tried to do so, but it seems to be inccorrect.
And I found a difference between the llava project and the huggingface transformers codes in the "prepare_inputs_for_generation", the llava project maybe do not support changing the position encoding according to the attenttion mask, do you also modify this part?
llava project  transformers codes
I tried to add the position code into llava, but still cannot get the correct answer, did i forget anything else?

@MingsYang For LLaVA v0.1, the version of llama in transformers used does not have the argument position_ids, so LLaVA does not have it either. For the current version of llama in transformers, I think you should add position_ids in multiple places of LLaVA besides prepare_inputs_for_generation (argument of the forward function of LlavaLlamaForCausalLM and the call of self.model) to make sure this argument is passed to the llama model. Otherwise, it would be auto-generated in llama, failing to consider the attention mask of left padding.

(2) modified the KeywordsStoppingCriteria to support batch inference

I change the padding side to tokenizer.padding_side = "left", and modify KeywordsStoppingCriteria to make it support batch inference.
        class KeywordsStoppingCriteria(StoppingCriteria):
            def __init__(self, keywords, tokenizer, input_ids):
                self.keywords = keywords
                self.tokenizer = tokenizer
                self.start_len = None
                self.input_ids = input_ids

            def __call__(self, output_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
                if self.start_len is None:
                    self.start_len = self.input_ids.shape[1]
                    return False
                else:
                    outputs = self.tokenizer.batch_decode(output_ids[:, self.start_len:], skip_special_tokens=True)
                    flag = True
                    for output in outputs:
                        for keyword in self.keywords:
                            if keyword not in output:
                                flag = False
                                return False
                    return flag

@MingsYang Thanks for your reply! But if I modify 'prepare_inputs_for_generation' by adding position_ids like yours and also add position_id in forward function, I have the error "shape '[-1, 338]' is invalid for input of size 332"

I'm new to the nlp code. I don't figure out how 338 gets. The original size of position_ids, attention_mask is (4, 83), where 4 is batch size and 332=83*4. Can you give me some advice ? Thank you!
I also wonder if I add position_id, will it affect the training process?

Did the problem solved?

@dydxdt @akshayg08 I did the following changes in the llava codes, hope it helps! (1) modified the codes of prepare_inputs_for_generation function to align with the new transformers library, to make sure that it supports changing the position encoding according to the attention mask

@WPH-commit I tried to do so, but it seems to be inccorrect.
And I found a difference between the llava project and the huggingface transformers codes in the "prepare_inputs_for_generation", the llava project maybe do not support changing the position encoding according to the attenttion mask, do you also modify this part?
llava project  transformers codes
I tried to add the position code into llava, but still cannot get the correct answer, did i forget anything else?

@MingsYang For LLaVA v0.1, the version of llama in transformers used does not have the argument position_ids, so LLaVA does not have it either. For the current version of llama in transformers, I think you should add position_ids in multiple places of LLaVA besides prepare_inputs_for_generation (argument of the forward function of LlavaLlamaForCausalLM and the call of self.model) to make sure this argument is passed to the llama model. Otherwise, it would be auto-generated in llama, failing to consider the attention mask of left padding.

(2) modified the KeywordsStoppingCriteria to support batch inference

I change the padding side to tokenizer.padding_side = "left", and modify KeywordsStoppingCriteria to make it support batch inference.
        class KeywordsStoppingCriteria(StoppingCriteria):
            def __init__(self, keywords, tokenizer, input_ids):
                self.keywords = keywords
                self.tokenizer = tokenizer
                self.start_len = None
                self.input_ids = input_ids

            def __call__(self, output_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
                if self.start_len is None:
                    self.start_len = self.input_ids.shape[1]
                    return False
                else:
                    outputs = self.tokenizer.batch_decode(output_ids[:, self.start_len:], skip_special_tokens=True)
                    flag = True
                    for output in outputs:
                        for keyword in self.keywords:
                            if keyword not in output:
                                flag = False
                                return False
                    return flag

Thanks for your reply! I only modify KeywordsStoppingCriteria to support batch inference like yours and it can work. And I don't modify the position_ids related code.

Hi, can someone tell me why Transfomres's model.generate does not automatically handle batch generation for us?

For anyone else stumbling on this issue, it seems the main issue to track batch inference is #754 , which has some extra information.

@WPH-commit I tried to do so, but it seems to be inccorrect.
And I found a difference between the llava project and the huggingface transformers codes in the "prepare_inputs_for_generation", the llava project maybe do not support changing the position encoding according to the attenttion mask, do you also modify this part?
llava project  transformers codes
I tried to add the position code into llava, but still cannot get the correct answer, did i forget anything else?

Excuse me, What file is the “prepare_inputs_for_generation” function in?

tokenizer.padding_side = "left"

Excuse me, is tokenizer.padding_side = "left" in train.py?

@WPH-commit I tried to do so, but it seems to be inccorrect.
And I found a difference between the llava project and the huggingface transformers codes in the "prepare_inputs_for_generation", the llava project maybe do not support changing the position encoding according to the attenttion mask, do you also modify this part?
llava project  transformers codes
I tried to add the position code into llava, but still cannot get the correct answer, did i forget anything else?

Excuse me, What file is the “prepare_inputs_for_generation” function in?

prepare_inputs_for_generation is in llava_llama.py

tokenizer.padding_side = "left"

Excuse me, is tokenizer.padding_side = "left" in train.py?

No, the padding side is "right" during training.


Cookie auditing as part of tests

I've looked on StackOverflow, and can't see a similar question, and I think it will result in a feature request, so I'm creating an issue.
Context: As part of GDPR compliance, we need to create a list of all of the cookies we use, and give visitors a way to opt-out of non-critical ones. Part of this process is auditing the cookies we have on our site.
What I'd like to do is run our normal test suite, but be able to record the cookies seen during the tests (both created by server responses, and by client-side JavaScript), but I can't see an option in TestCafe which would do this.
One option which would get at least the server-created cookies is to save HAR files to process after the tests have completed. I might be able to use RequestLogger to accomplish this part, but I don't think that will track the cookies created from client-side JS.
I'm hoping it would be possible to log any create/update/delete events which happen with cookies during the sessions, including name, value, other cookie properties, and as much detail about the cause of the event (eg. which server URI set it as part of its response headers.

Hello @dsample ,
Thank you for sharing your idea with us. Please check if the following feature request suits your needs: https://github.com/DevExpress/testcafe/issues/4428


Two similar COF structures reported as identical

Considering COFs 18141N2 and 20211N2  they are just different because of the position of N and C in the C-N bond, however they have the same graph hash.

(note that the two monomers are not identical, one has 3 methyls)
Weird enough, 18140N2 and 20210N2 should also have the same problem, as they are similar for the same reason, but they don't have the same graph, hence not raising the false positive match.

i checked in the refactor branch and there they give different hashes. Will let you know when this is merged into master

i merged this in master but there are still issues with ZIFs in some instances due to a wrong bond assignment. I currently do not have a good solution in general. The Voronoi-based bond assignment works for those ZIFs but is really expensive.


refactor(behavior_path_planner): consolidate common function which is used by start and goal planner

Description

🤖 Generated by Copilot at 6d8c3fb
This pull request enhances the behavior path planner by improving the safety and motion control of the pull over and pull out maneuvers. It adds new fields and functions to handle terminal velocity and acceleration for each partial path, and distinguishes between static and dynamic objects for safety check. It also simplifies, refactors, and fixes some code in the goal planner, start planner, and path safety checker modules. It affects the files goal_planner_module.hpp, goal_planner_module.cpp, geometric_parallel_parking.cpp, freespace_pull_over.cpp, geometric_pull_out.cpp, pull_over_planner_base.hpp, path_safety_checker_parameters.hpp, common_module_data.hpp, util.hpp, geometric_pull_over.cpp, shift_pull_over.cpp, objects_filtering.cpp, and util.cpp.
sorry for mixing different sort of modification

fix typo
define common utils for start/goal_planner
add member variable for PullOverPath

Tests performed
Confirmed in psim

[x] PASS TIER IV INTERNAL SCENARIOS

Effects on system behavior

Not applicable.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@kosuke55
Thank you so much for the review!!!
I replied and if no further comment I will apply the change.

@kosuke55
I applied changed you pointed out.
and confiemed passed internal scenarios with updated version.
PASS TIER IV INTERNAL SCENARIOS
Could you approve if there is no further problem?


Feature sorting

We understand that we can control the order in which features appear on the timeline via their position/order in the backlog - but this is only sustainable for a short period of time. As we close features they disappear from the backlog and thus lose control of their position/order within it. One symptom is when we choose to show closed features on the timeline. When we do so, closed features disrupt the current feature sorting by injecting themselves into the structure at weird locations and thus make the timeline difficult to use when showing stakeholders and the business what has been worked in the past.
In short, how can we control where a closed feature appears (vertically) in the timeline so that our timeline artifact can be presented in the most understandable manner?
Thank you.

The closed features still maintain their rank from the backlog, do you see otherwise? You can move closed features on your backlog, and the feature timeline will honor that order.

Closing due to no response.


Python: 'Kernel' object has no attribute 'import_semantic_plugin_from_directory' [python>notebooks>00-getting-started.ipynb]

[python>notebooks>00-getting-started.ipynb]
I'm running this example on my linux environment.

It adds chat service well, but it gets this error as below. What should I check?

Sam problems here. I'm only running the first example with no change on code and got this error.

I'm experiencing this too. it seems like the call for plugins don't exist in the package and they are still being called skills

@moonbox3 this is due to the rename not released but the notebooks already have been updated...

That's correct. If you run the notebook, after installing a poetry venv, and don't pull the SK package down from pip (meaning you either comment it out, or don't run tha tcell), it works well. However, the first notebook cells always install the SK package from pip, and that's where the name mismatch is occurring.

We've released SK Python 0.4.6.dev0. This will fix this particular issue.

Hi @moonbox3 I upgraded to 0.4.6.dev0 and I am still experiencing the issue, any thoughts on why this is?

@rmthurman it works fine on my side. Have you tried restarting your kernel?

Thank you for your comment, @skim0011. That was going to be my question to @rmthurman.

That did it :)

Same issue here.
Already restarted the kernel but error keeps popping up: AttributeError: 'Kernel' object has no attribute 'import_semantic_plugin_from_directory'

Hi @BSlap, could you give us a little bit more information about your setup/config/env, please? Are you running a Poetry venv? Are you simply downloading the SK Python pip package while not in a venv? By the looks of the error message your Python kernel is pointing to an old SK Python package (one that still contains the old method import_semantic_skill_from_directory()), while your notebook has been updated to use the import_semantic_plugin_from_directory() method.

Thx @moonbox3 for the reply.
No Poetry.
Indeed I downloaded the SK Python pip package into VS Code (!python -m pip install semantic-kernel==0.4.6.dev0).
I am using Python 3.9.7.
I cloned the entire branch from GitHub (https://github.com/microsoft/semantic-kernel/tree/main/python) into VS Code and started following the instructions from Microsoft (https://learn.microsoft.com/en-us/semantic-kernel).
I'm using Azure OpenAI.

@BSlap if you do a pip list do you see the semantic-kernel 0.4.6.dev0 package show up in your list? Is your VSCode Python Kernel set to use Python 3.9.7? Is it possible there are other Python versions installed on your machine? You can also run pip --version to view which version of pip you're running along with the path to the Python interpreter you're using.
With that said, we highly recommend, per our DEV_SETUP.md doc, to run Poetry as it manages all your dependencies and gives you a virtual environment. You can avoid these types of headaches.

semantic-kernel 0.4.6.dev0 package: yes
VSCode Python Kernel set to use Python 3.9.7: yes (now running from poetry venv - see further below)
other Python versions installed on your machine: yes (3.8 and 3.12) but not running anywhere here
pip version: 23.3.2
I managed to get Poetry working (I guess).
But now i already run into an error one cell earlier:
`from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion
deployment, api_key, endpoint = sk.azure_openai_settings_from_dot_env()
kernel.add_chat_service(
"chat_completion",
AzureChatCompletion(deployment_name=deployment, endpoint=endpoint, api_key=api_key),
)`
Returns an error: TypeError: StringConstraints() takes no arguments
`TypeError                                 Traceback (most recent call last)
Cell In[3], line 1
----> 1 from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion
3 deployment, api_key, endpoint = sk.azure_openai_settings_from_dot_env()
5 kernel.add_chat_service(
6     "chat_completion",
7     AzureChatCompletion(deployment_name=deployment, endpoint=endpoint, api_key=api_key),
8 )
File [c:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\semantic-kernel-kTGFpvrN-py3.9\lib\site-packages\semantic_kernel\connectors\ai\open_ai_init_.py:11](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:11)
[3](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:3) from semantic_kernel.connectors.ai.open_ai.request_settings.azure_chat_request_settings import (
[4](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:4)     AzureChatRequestSettings,
[5](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:5) )
[6](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:6) from semantic_kernel.connectors.ai.open_ai.request_settings.open_ai_request_settings import (
[7](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:7)     OpenAIChatRequestSettings,
[8](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:8)     OpenAIRequestSettings,
[9](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:9)     OpenAITextRequestSettings,
[10](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:10) )
[11](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:11) from semantic_kernel.connectors.ai.open_ai.services.azure_chat_completion import (
[12](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:12)     AzureChatCompletion,
[13](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:13) )
[14](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:14) from semantic_kernel.connectors.ai.open_ai.services.azure_text_completion import (
[15](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:15)     AzureTextCompletion,
[16](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:16) )
[17](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:17) from semantic_kernel.connectors.ai.open_ai.services.azure_text_embedding import (
[18](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:18)     AzureTextEmbedding,
[19](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/init.py:19) )
File [c:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\semantic-kernel-kTGFpvrN-py3.9\lib\site-packages\semantic_kernel\connectors\ai\open_ai\services\azure_chat_completion.py:32](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:32)
[28](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:28) from semantic_kernel.connectors.ai.open_ai.models.chat.function_call import FunctionCall
[29](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:29) from semantic_kernel.connectors.ai.open_ai.request_settings.azure_chat_request_settings import (
[30](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:30)     AzureChatRequestSettings,
[31](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:31) )
---> [32](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:32) from semantic_kernel.connectors.ai.open_ai.services.azure_config_base import (
[33](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:33)     AzureOpenAIConfigBase,
[34](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:34) )
[35](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:35) from semantic_kernel.connectors.ai.open_ai.services.open_ai_handler import (
[36](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:36)     OpenAIModelTypes,
[37](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:37) )
[38](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:38) from semantic_kernel.connectors.ai.open_ai.services.open_ai_text_completion_base import (
[39](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:39)     OpenAITextCompletionBase,
[40](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py:40) )
File [c:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\semantic-kernel-kTGFpvrN-py3.9\lib\site-packages\semantic_kernel\connectors\ai\open_ai\services\azure_config_base.py:15](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:15)
[10](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:10) from semantic_kernel.connectors.ai.ai_exception import AIException
[11](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:11) from semantic_kernel.connectors.ai.open_ai.const import (
[12](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:12)     DEFAULT_AZURE_API_VERSION,
[13](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:13)     USER_AGENT,
[14](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:14) )
---> [15](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:15) from semantic_kernel.connectors.ai.open_ai.services.open_ai_handler import (
[16](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:16)     OpenAIHandler,
[17](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:17)     OpenAIModelTypes,
[18](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:18) )
[19](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:19) from semantic_kernel.connectors.telemetry import APP_INFO
[20](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py:20) from semantic_kernel.sk_pydantic import HttpsUrl
File [c:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\semantic-kernel-kTGFpvrN-py3.9\lib\site-packages\semantic_kernel\connectors\ai\open_ai\services\open_ai_handler.py:15](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:15)
[13](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:13) from semantic_kernel.connectors.ai.ai_exception import AIException
[14](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:14) from semantic_kernel.connectors.ai.ai_request_settings import AIRequestSettings
---> [15](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:15) from semantic_kernel.connectors.ai.ai_service_client_base import AIServiceClientBase
[16](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:16) from semantic_kernel.connectors.ai.open_ai.exceptions.content_filter_ai_exception import (
[17](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:17)     ContentFilterAIException,
[18](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:18) )
[19](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:19) from semantic_kernel.connectors.ai.open_ai.request_settings.open_ai_request_settings import (
[20](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:20)     OpenAIEmbeddingRequestSettings,
[21](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:21)     OpenAIRequestSettings,
[22](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py:22) )
File [c:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\semantic-kernel-kTGFpvrN-py3.9\lib\site-packages\semantic_kernel\connectors\ai\ai_service_client_base.py:17](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:17)
[13](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:13) from semantic_kernel.connectors.ai.ai_request_settings import AIRequestSettings
[14](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:14) from semantic_kernel.sk_pydantic import SKBaseModel
---> [17](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:17) class AIServiceClientBase(SKBaseModel, ABC):
[18](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:18)     """Base class for all AI Services.
[19](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:19)
[20](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:20)     Has a ai_model_id, any other fields have to be defined by the subclasses.
(...)
[23](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:23)     or can just be a string that is used to identify the service.
[24](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:24)     """
[26](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:26)     ai_model_id: Annotated[str, StringConstraints(strip_whitespace=True, min_length=1)]
File [c:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\semantic-kernel-kTGFpvrN-py3.9\lib\site-packages\semantic_kernel\connectors\ai\ai_service_client_base.py:26](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:26), in AIServiceClientBase()
[17](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:17) class AIServiceClientBase(SKBaseModel, ABC):
[18](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:18)     """Base class for all AI Services.
[19](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:19)
[20](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:20)     Has a ai_model_id, any other fields have to be defined by the subclasses.
(...)
[23](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:23)     or can just be a string that is used to identify the service.
[24](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:24)     """
---> [26](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:26)     ai_model_id: Annotated[str, StringConstraints(strip_whitespace=True, min_length=1)]
[28](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:28)     def get_request_settings_class(self) -> "AIRequestSettings":
[29](file:///C:/Users/Administrator/AppData/Local/pypoetry/Cache/virtualenvs/semantic-kernel-kTGFpvrN-py3.9/lib/site-packages/semantic_kernel/connectors/ai/ai_service_client_base.py:29)         """Get the request settings class."""
TypeError: StringConstraints() takes no arguments`

@BSlap thanks for the additional information. The stack trace is helpful. It looks like Python v3.9.7 has a bug, and you'd want to update your Python version to 3.9.16 (or higher). See the following thread.


⚠ SpeakUpConference.com has degraded performance

In 90b3ec1, SpeakUpConference.com (https://www.speakupconference.com) experienced degraded performance:

HTTP code: 200
Response time: 19678 ms

Resolved: SpeakUpConference.com performance has improved in 19cd338 after 23 minutes.


Arnej/innerproduct distance metric

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
@geirst please review

@jobergum FYI


npm install moment faild

When I  install moment use
npm install moment

got the error below:
npm ERR! Failed unpacking /tmp/npm-1323692479516/1323692479516-0.8442311841063201/tmp.tgz
npm ERR! couldn't unpack /tmp/npm-1323692479516/1323692479516-0.8442311841063201/tmp.tgz to /tmp/npm-1323692479516/1323692479516-0.8442311841063201/contents
npm ERR! Error: `tar "-zmvxpf" "/tmp/npm-1323692479516/1323692479516-0.8442311841063201/tmp.tgz"`
npm ERR! failed with 2
npm ERR!     at ChildProcess.<anonymous> (/opt/node/lib/node_modules/npm/lib/utils/tar.js:217:20)
npm ERR!     at ChildProcess.emit (events.js:67:17)
npm ERR!     at Socket.<anonymous> (child_process.js:172:12)
npm ERR!     at Socket.emit (events.js:64:17)
npm ERR!     at Array.0 (net.js:831:12)
npm ERR!     at EventEmitter._tickCallback (node.js:126:26)
npm ERR! Report this *entire* log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR<EMAIL_ADDRESS>npm ERR!
npm ERR! System Linux 2.6.18-164.11.1.el5
npm ERR! command "node" "/opt/node/bin/npm" "install" "moment"
npm ERR! cwd /home/wwwroot/fenxiang/server
npm ERR! node -v v0.4.12
npm ERR! npm -v 1.0.106
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/wwwroot/fenxiang/server/npm-debug.log

but, when I use version 1.1.1 . there is no error and I got it installed.
npm install<EMAIL_ADDRESS>
It is like someting wrong with the version 1.2.0.

Hmm, I think it's a problem with npm.
I tried installing 1.2.0 and didn't have any problems. I'll try on another machine later today, but you may be better submitting to npm issues.

Hmm, I haven't had any problems installing on any other machines.
I'm going to close the issue, but if you are still having problems, let me know.


fix: Check for traces before apply state change

Which problem is this PR solving?

Ensures that state change requests only happen if traceids are provided

Short description of the changes

Updates functions to check the length of the trace ids slice.
Added unit tests
Added checks for empty string trace ids

I'm going to merge this to kick off the merge/rebase process for this morning.