Revert port

WIP; the commit messages give a good summary of what's done so far. Feel free to dig in to what's there; modulo comments I don't have plans to change the design dramatically.
(Edit: added a checklist)

[x] Modify api server -> networking daemon interface to accommodate this
[x] Make changes needed in the networking daemon.
[x] Database migration script for the change to NetworkingAction
[x] Expose the API call via HTTP
[x] Add CLI wrapper for the call
[x] Make the necessary changes to other switch drivers
[x] Write new tests; the above passes existing tests, but these don't
exercise the revert_port paths.

[x] Write unit tests that work agains the mock switch driver.
[x] Integrate into the deployment tests for real switches.

@zenhack I think the cli entry is missing.

@shwsun, good spot. I started a proper checklist above.

Hey @zehnack
Do you have everything you need to test this in the lab?

@henn, I seem to recall looking through what was available and concluding it was enough; sorry for the delay actually digging into it. I'll try to actually tackle it soon.

Hey @zenhack. Anything we can do to help out with this one?

@henn, #698 and #696 need to get merged first (in that order), so if you could work on reviewing those that would be the most useful thing.
Sorry for the general slowness on this one.

@zenhack - I noticed a conflict and clicked github's magic "Resolve" button. Hope you don't mind :-)
Are you waiting for anything from my side on this?

@henn, I'm going to back out your merge and do it manually, since it's broken the tests. Please let me handle it going forward.
I'm not waiting on you, life has just been hectic. I'm going to start digging into it again now. There's not much left to do besides the real hardware drivers, and I may find I want to be physically present to deal with those; if so I'll ping you re: appropriate times to let me into the server room.

@henn, this is mostly done now. I'm going to drop by tomorrow or Friday, as I want to be physically present to test this on the real hardware. There are two one-liners that need to be filled in and per the comment in the brocade driver we may want to be smarter about our use of the API, but other than that, testing, and review we're good.

Addendum to the stuff that we might still want to address: There's something really weird going on in tests/unit/ext/switches/brocade.py. Stuff doesn't get committed to the db when I think it should, and actually looking at the code I don't see where the db even gets initialized; we're not using that fixture. But I'll stare at it when I'm a bit more fresh.

I tested revert_port on a brocade switch and got this:

AttributeError: 'Brocade' object has no attribute 'revert_port'

probably because it's called port_revert in the brocade driver?

@naved001, good spot. I pushed a fix, could you give it another pass?

@zenhack In the brocade driver's unit tests nothing is actually committed to the database. I just use the objects as fixtures.

@knikolla, I'm not sure I follow -- why are you mentioning this?

@zenhack in response to a prior comment, and comment on the code about how you weren't sure why the brocade unit tests weren't putting stuff in the db. Thought I'd clarify.

Ah, yeah, I remember that now - had lost context. Thanks.

@naved001, ping.

@zenhack I'll be on it tomorrow. For some reason the brocade switch was down the other day.

Works fine on the dell switch (removes all vlans).
running port_revert on brocade crashes network server. on restarting it throws this error:
Invalid arguements.  Usage:
  serve_networks
      Start the HaaS networking server

will test it on the cisco switch too.

Huh. Do you have a stack trace from the "crash"?
My guess is that a TypeError is getting thrown for some reason other than invalid arguments, and then we're hitting this:
https://github.com/CCI-MOC/hil/blob/master/haas/cli.py#L143
Easy way to find out is to put a breakpoint in that except and inspect the error.

Would be a pretty simple tweak to have the cmd decorator just check the arguments up front, instead of catching an overly-broad TypeError. It's always just a list of strings, so the check is pretty trivial.

Tested  port_reverton the Cisco switch and it works!

Huh. Do you have a stack trace from the "crash"?

I'll share it asap.

@naved001, I added the missing parameters, thanks for catching those.
Re: not removing the native vlan, does disconnecting a network that's attached natively work with the code currently on master? My guess is no, since I'm just making a call out to the code that should be doing that already; if I'm correct then this is an already-present bug.

My guess is no, since I'm just making a call out to the code that should be doing that already; if I'm correct then this is an already-present bug.

You are right. I'll make an issue about it.

@zenhack I have manually tested this PR for all the 3 switches successfully, and my comments have been addressed so I am mostly happy with this PR. Other than that, my only concern is the failing deployment tests (mentioned that in the email thread).
Also, we need 1 more reviewer here.

@shwsun, would you take a second lool?

@zenhack Do you think port_revert for brocade should also disable the switchport because that seems to be the default state and in #702 we first enable switchport and then set mode.
@henn @knikolla thoughts?

Sounds sensible enough, though we certainly can't do that until #702 is merged.
The changes I made to get the brocade switch to support port_revert are pretty dumb; there's probably a more efficient way to just shut everything on the port down.
@knikolla, is there a set of docs somewhere that you've been referencing when hacking on the brocade driver?

@zenhack I will work on reviewing this, probably over this weekend.
In terms of the VDX command reference, see http://www.brocade.com/content/html/en/command-reference-guide/nos-700-commandref/

Quoting Naved Ansari (2017-02-24 15:47:26)

@zenhack that's a good concern. In the time that I've been playing
around with the brocade, the old vlans never got re-enabled. Although I
am fairly confident about this, we should still look into the brocade
documentation. I'll update this comment if I find it in the docs.

My preference would be to keep the explicit removal in there unless we
have a strong argument as to why it's a problem -- defense in-depth and
all that.
I would like to find a way to batch the disable calls; I wrote it as
is just because it didn't require digging through (and finding; see my
other comment) switch documentation.

@shwsun, the brocade driver is using some kind of HTTP interface, not the CLI. Know where the docs for that are?

@zenhack Here's the REST API guide for brocade.
http://www.brocade.com/content/dam/common/documents/content-types/api-reference-guide/nos-700-restapiguide.pdf

@zenhack this is a condensed version a brocade engineer sent me https://drive.google.com/file/d/0B0lXTUzW8Bi5cUJ2SnY5cm1Wd1U/view?usp=sharing
I've used that, together with the pdf naved referenced.

Okay, I just patched it to do the same kind of batching we're doing with the other two drivers. Needs testing; could someone run that on the brocade and see if it does the right thing?

@zenhack I ran it on brocade; it crashed the network server with the following message:
DEBUG:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): <IP_ADDRESS>
DEBUG:requests.packages.urllib3.connectionpool:http://<IP_ADDRESS>:80 "PUT /rest/config/running/interface/TenGigabitEthernet/%221/0/4%22/switchport/mode HTTP/1.1" 204 0
DEBUG:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): <IP_ADDRESS>
DEBUG:requests.packages.urllib3.connectionpool:http://<IP_ADDRESS>:80 "PUT /rest/config/running/interface/TenGigabitEthernet/%221/0/4%22/switchport/trunk/allowed/vlan HTTP/1.1" 204 0
Fatal Error: set_auth_backed() called twice. Make sure you don't have conflicting extensions loaded.

I have the changes from the master which should print out the exact error message, but I still see set_auth_backed()

Is this otherwise the same setup you were (successfully) using before? What's in the extensions section of haas.cfg?
Weren't we getting a  similar error with the nexus not long ago? I can't remember what was going on there, and I'm not finding the relevant comments. @shwsun ?
can you put a breakpoint at the top of set_auth_backend() (in haas/auth.py) and see what's calling it (and verify that it is actually being called twice)?
I suspect this si something related to setup, not the commit I just pushed.

(Just rebased on top of master for the CI fixes)

Is this otherwise the same setup you were (successfully) using before? What's in the extensions section of haas.cfg?

Yes, it's the same setup that I was using before and the same haas.cfg that I used earlier (for testing this PR and for other stuff)

Weren't we getting a similar error with the nexus not long ago? I can't remember what was going on there, and I'm not finding the relevant comments.

Yes. Issues #723 #726 #727

can you put a breakpoint at the top of set_auth_backend() (in haas/auth.py) and see what's calling it (and verify that it is actually being called twice)?

Okay, I'll do that and let you know what I find.

FYI - we narrowed this error down to the brocade code:
Traceback (most recent call last):
  File "/home/naved001/ian/hil/.venv/bin/haas", line 8, in <module>
    execfile(__file__)
  File "/home/naved001/ian/hil/scripts/haas", line 18, in <module>
    cli.main()
  File "/home/naved001/ian/hil/haas/cli.py", line 866, in main
    command_dict[sys.argv[1]](*sys.argv[2:])
  File "/home/naved001/ian/hil/haas/cli.py", line 157, in wrapped
    f(*args, **kwargs)
  File "/home/naved001/ian/hil/haas/cli.py", line 314, in serve_networks
    while deferred.apply_networking():
  File "/home/naved001/ian/hil/haas/deferred.py", line 103, in apply_networking
    session.handle_action(action)
  File "/home/naved001/ian/hil/haas/deferred.py", line 36, in handle_action
    getattr(self, action.type)(action)
  File "/home/naved001/ian/hil/haas/deferred.py", line 61, in revert_port
    session.revert_port(action.nic.port.label)
  File "/home/naved001/ian/hil/haas/ext/switches/brocade.py", line 95, in revert_port
    self._remove_all_vlans_from_trunk(port, vlan)
NameError: global name 'vlan' is not defined

This was made more difficult to catch because of the haas script code:
try:
    execfile(__file__)
except NameError, e:
    print(e)
    exec(compile(open(__file__).read(), __file__, 'exec'))

Pushed a fix.

Pushed a fix.

Batch removal works now!

Quoting Naved Ansari (2017-03-10 17:05:08)

Batch removal works now!

Neat. In that case I think all that's left is dealing with comments from
you all.

I'm going over this now. Some questions:

from reading though comments it seems that that no one has any outstanding issues - is this the case?
is #702 (which is stuck on #740) out of scope or will this PR be waiting on deployment test related fixes?
based on above two PR seems finished - why the Do Not Merge label?

I'll add any other comments/questions I end up having inline with the code. Should finish reviewing soon.

Correct, everything that has been raised has been addressed.
@naved001, it seemed from your comments above that you managed to get the tests passing for this pr; I'm a little unclear on where that stands now? #702 is independent of this pr, but probably there will be merge conflicts between the two that will need to be resolved.
Because I forgot to remove it; it's gone now.

@zenhack
I have tested it all manually with real switches and port revert worked perfectly. But I couldn't get the deployment tests ( tests/deployment/*_networks.py ) to pass on any of the switches. But it may or may not be related to this PR. I have raised #740 to discuss that.

@shwsun I have tested it on all 3 switches (dell, brocade, cisco). You can test it again if you feel like it.

@naved001 I will be happy with the tests you have run.
Another concern I have is @SahilTikale 's PR, I don't want to preempt his work again and make him do extra work. I guess this PR do request some changes in #617 right? @zenhack @zenhack  If so how can we resolve it?

@shwsun, addressed or responsed to each of your comments. Re: @SahilTikale's pr, the merge conflicts should be relatively minor, as that's mostly client-side and this is mostly server-side. Also, I will gladly assist him with the conflicts. (Also, if we end up merging his first, I have no problem fixing the conflicts on my end).

@zenhack I am happy with it then.
@SahilTikale do you feel like ok with the discussion here? It might be the case that revert_port will get merged first, and Ian plus me will be assisting you on adopting changes to CLI lib.

@zenhack deployment tests are passing for this PR only on the brocade switch with the fix from #742
For the dell and cisco, we can debug when we meet.

@naved001, cool, see you then.

@naved001, I merged it back in, but it didn't make that change. I think this may have actually been something I touched while working on this. In any case, I made a similar change to the one I did on the fly yesterday; you should probably re-run the tests just to be sure.

@zenhack The tests pass for cisco and dell.
But now the tests fail for the brocade switch because we merged #702 and here's why:
when port_revert tries to call _remove_native_vlan the switch now raises an error. This was added in #702. Earlier that didn't happen and the tests would pass. There's a bug in the brocade driver due to which it doesn't remove the native vlan. I have opened an issue here #728

@zenhack I have 2 ideas in mind to get the deployment tests to pass for the brocade.

In revert_port we should check if a network is natively attached before calling  _remove_native_vlan.

Update the brocade driver to not raise an error, instead just write it to the logs. so instead of logger.error we do logger.debug https://github.com/CCI-MOC/hil/blob/master/haas/ext/switches/brocade.py#L283 or something alone these lines.

or any other solution that you like.
Here's the error log:
tests/deployment/vlan_networks.py:91: in create_networks
    deferred.apply_networking()
haas/deferred.py:103: in apply_networking
    session.handle_action(action)
haas/deferred.py:36: in handle_action
    getattr(self, action.type)(action)
haas/deferred.py:48: in modify_port
    network_id)
haas/ext/switches/brocade.py:76: in modify_port
    self._set_native_vlan(interface, network_id)
haas/ext/switches/brocade.py:237: in _set_native_vlan
    self._enable_and_set_mode(interface, 'trunk')
haas/ext/switches/brocade.py:145: in _enable_and_set_mode
    self._make_request('POST', url, data=payload)
haas/ext/switches/brocade.py:296: in _make_request
    logger.error('Bad Request to switch.

The deployment tests are still failing for brocade due to issues not related to this PR. I have made this issue here #748

It's passing all deployment tests. You might wanna rebase it on top of master.

@shwsun do you wanna have another look at it to see if your concerns have been addressed?

Ok, I just reviewed the commits after my plus one last time. It all looks good. @henn @kylehogan do you have any more opinions on this PR? If not we will probably merge it in soon.

Looks like we have 2 +1's. Merging!


Rename rollup synchronizer to rollup client

s/Rollup Synchronizer/Rollup Client/g
The term sync* already seems overloaded with the particular process of "syncing" a node. A "client" already provides this functionality, and more.

Both names seem fine to me. This kind of client has a lot of the same behavior as the Data Transport Layer (not a great name, but works in optimism); syncing L1 data to insert it somewhere. Written in Go (new) or TS (old DTL) doesn't matter (speed maybe), but ideally it's this highly compatible (read: standalone) thing that fetches data from L1 and calls the Merge engine-API (of any execution client) to insert blocks and adjust the forkchoice (ensuring the canonical rollup chain is available and committed to on L1).

I tend to use client and node interchangeably, happy with either!


Gray Scale

Hi，
Now, I want to test on KITTI 2015 testing set using the mages in gray (I  change the RGB images into 1 channel gray scale images)  ,but when I run submission.py, It showed that "ValueError: axes don't match array",can you tell me how to change the code.
Looking forward to any suggestion.
Thanks


feat(tools): add Alert component

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Is part of #41580

Hello 👋
Last days I've been working on creating an alert component for #41580.
It's still a work in progress, but there are some things that I'd like to discuss, and some questions that I'd like to ask, so I'm opening this draft PR, and I'll also add comments to the code :)

From a functionality perspective, I don't think that there is much to add. The component:

is accessible,
can have 4 different variants,
accepts className prop to customize its style,
renders the children,
conditionally shows a close button.

I've written some test cases to address mentioned functionality.
In the PR, you can find a temporary alert.css where I placed all the old Alert related CSS, so that we can think about how and where these styles should be extracted.
For now, I placed all alert related files in src/alert directory, since there will be at least 3 files (.tsx, .story.tsx, .test.tsx) I thought that this will keep things more organized. What do you think about it?

Development steps
Below are the steps I followed, when working on this. Hopefully, someone will find it useful, when starting to work on other components.
Research

Find component usage in the project and list all the props being used.

children
bsStyle - success, info, etc.
className
onDismiss

when present, show the close button
it should be passed down to the close button onClick handler

List out all the classNames passed as a prop

donation-completion
flash-message
text-center

Compare usage and props with React-Bootstrap documentation.
Find out how does close button work.

Alert doesn't handle its own visibility state.
It simply accepts onDismiss prop, and when it's there it shows close button, and invoke onDismiss when it's clicked.

Find out which Bootstrap classes are applied by default.
Find where alert related classes are being used.

Cypress tests - some selectors target alert class
Donation.css

Development

Initialize Alert component.
Add children prop
Add className prop
Add variant - replacing old bsStyle(success, info, etc.)

naming possibilities:

variant - used by ReactBootstrap v2
type - used by AntDesign
severity - used by MaterialUI
status - used by ChakraUI

Add onDismiss and dismissText props

Alternatively, they could be called, e.g. onClose and closeText

Useful links

React Bootstrap v0.33 src/Alert.js
React Bootstrap v0.33 Docs
Bootstrap 3.3.7

cc: @huyenltnguyen

@ahmadabdolsaheb thanks for review and helping me out with all the questions I've had :)
After recent changes:

the component is now completely independent of Bootstrap styles and uses only Tailwind classes,
I extracted Bootstrap's SCSS variables, defined our own in colors.css and added them in Tailwind config,
As suggested, I extracted Close Button to a separate component

Hey @ahmadabdolsaheb, once again, thanks for very insightful review!
Regarding your comments:

It would be great if you could hide the unnecessary options such as "undefined" variant from the stories.

Sure, I'll simply make  the variant prop required, since it's always passed anyway.

The dark/light toggle should be added to the story.

When it comes to dark/light mode, I have some suggestions based on current implementation in Button component.

The theme wrapper that we're using is definitely too big - it takes 100vh

It seems like, Storybook treats all the argTypes as props, that are passed to the component, so when we click "Show code", it gives false results:

const story = {
  title: 'Example/Button',
  component: Button,
  argTypes: {
    theme: {
      options: ['dark', 'light'],
      control: { type: 'radio' },
      defaultValue: 'light'
    }
  }
};

This is the current theme switching logic. Even if we extract it to a separate component, we will have to include it in each and every story.

const Template: Story<ButtonProps> = args => {
  return (
    <div
      className={`flex h-screen justify-center items-center ${
        args.theme === 'dark'
          ? 'dark bg-dark-theme-background'
          : 'light bg-light-theme-background'
      }`}
    >
      <Button {...args} />
    </div>
  );
};

I have some ideas for addressing all these things, but maybe I should open a separate PR, so we can discuss it there, just to keep things organized. What do you think?

@sitek94 the changes to the wrapper sense to me. The current theme wrapper is just a proof of concept. Feel free to optimize it as needed. Having it in another pr would be a good call.

@ahmadabdolsaheb, I added some small updates regarding the things we've discussed, and opened a separate PR with a theme toggle :)

@sitek94 Thanks for your patience with this.  LGMT. I am happy that our first component in the library is a well built one. 🔥
Now that you have the know how, we would appreciate it if you could develop a few more of the components if you are interested.
Also since you have pioneered the building process, feel free to document it in docs similar to: https://contribute.freecodecamp.org/#/how-to-work-on-coding-challenges
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/docs/how-to-work-on-coding-challenges.md

Thanks @ahmadabdolsaheb for all your time and help with this!
I should have much more free time in January, so I'll try to contribute more then, because to be honest Christmas Spirit is keeping me quite busy right now 😀

Hey @sitek94, I really appreciate your time and your contribution. We have new components finally! And the details in the PR description is just beautiful ❤
Also, thank you @ahmadabdolsaheb for helping with the component library work!

Sincerely apologize for disappearing for so long. I have been slowly catching up with codebase changes as well as organizing my schedule for 2022. I hope I can contribute and collaborate with you guys more 🙂
Happy Holidays!


Initial import of the current D(A)PL doc

@jgrosseo @aalkin this is the current copy of Framework/Core/ANALYSIS.md I am not sure it's 100% still valid, but probably mostly correct...


English translation?

Is it possible to make an english translation???
Thank you in advanced

Hello @apyxpi
We just added the translation!
;)


About the demo in LLaVA_OneVision_Tutorials.ipynb

This is a great and very interesting work. However, when I try the demo in the "LLaVA_OneVision_Tutorials.ipynb" file, I encountered a problem, that is "ValueError: Tokenizer class Qwen2Tokenizer does not exist or is not currently imported.". This problem happeded when running the load_pretrained_model function. Could you please provide any comments on how to solve this problem?

This is a great and very interesting work. However, when I try the demo in the "LLaVA_OneVision_Tutorials.ipynb" file, I encountered a problem, that is "ValueError: Tokenizer class Qwen2Tokenizer does not exist or is not currently imported.". This problem happeded when running the load_pretrained_model function. Could you please provide any comments on how to solve this problem?

Finally, I found that this is caused by the lower version of transformers. So this is not an issue anymore.


clutter-gtk rust binding?

I'm sorry, I don't know where else to ask this. Are there rust binding for Clutter-gtk. I really would like to implement drag n drop from clutter to GTK window, anyone know how?

I don't know of any myself. Asking through the GNOME channels might give you more results maybe?

Thanks, I will try. Unfortunately I don't know C well enough to make the bindings :(

If it has gir files, you can use gir to generate most of the library in rust. There even is a tutorial on how to use it here.

Hmm, I don't see the gir files in their repo. Any way i can generate gir files from C?

https://packages.ubuntu.com/eoan/libclutter-gtk-1.0-dev have GtkClutter-1.0.gir
but it depends for https://packages.ubuntu.com/eoan/libclutter-1.0-dev 's gir file,
and it depends for many untranslated libs too.

So you might be able to generate everything if all the generation works well, which I strongly doubt. But that'd be interesting for gir to get new bug reports.

thanks for all the help! i will investigate

Closing then. Don't hesitate to comment here what you did in the end. :)


[suggestion] upgrade sklearn

https://github.com/tractometry/AFQ-Insight/blob/83fcc90a74f946645350a5660157414e0ac8bda4/setup.cfg#L44
Would we be amenable to upgrading this version of sklearn (to something like >= 1.5.0)?

Worth trying! IIRC, we'd need to do some refactoring around this, but vould you put in a PR with that change? We'll see pretty quickly what kinds of issues arise in the CI.


[Feature] Allow extension webviews to have proper tooltip in Explorer

Description
It would be nice if extension webviews could have  a human readable tooltip in the explorer. Not something like "\webview-panel\webview...". I found nothing in the extension API to set the explorer tooltip. The webview-sample (https://github.com/microsoft/vscode-extension-samples/tree/master/webview-sample) shows this generic tooltip as well.

VSCode Version: 1.38.1
OS Version: Windows 10

@isidorn After reviewing the code, I think this may be a bug with the open editors view. We show the expected title if you hover over the webview's editor tab but show the resource path when you hover over the title in the open editors view:

I can look into this next milestone, we were always behaving like this thus not a regression. October.
open editors view is not aware of the type of the editor, thus the editor input description might be more precise than the open editors one. Not if we can improve this, though will give you more details next week.

Thanks for filling this.
Please try it out with Wednesday VSCode insiders and let me know if the issue is fixed for you.
I tried it out and now it works great for me.

@isidorn
Yes works like a charm with the insiders build.
Thank you!


Reader base class uses WriterException to handle _read() failure

Describe the bug
I know it's nitpicking, but just noticed this in nannyml.io.base, within the Reader class, read() method:
https://github.com/NannyML/nannyml/blob/8dbc6bf1c7c983f421795ad4d11f3ea26d12dba1/nannyml/io/base.py#L67
I guess the impact is minimal, apart from it being an eyesore. I could maybe do a PR myself to add the ReaderException and use it here.
Expected behavior
Reader exceptions should be handled with ReaderExceptions. :-)

Haha, fair is fair. Thanks for reporting. We'll get it fixed by next release!

Or as you suggested, a PR is always welcome! Let me know if you want to take on this daunting task, otherwise I'll put it on my own to-do list.

If you agree that the solution is to just create the ReaderException class and use it in the abovementioned line, then sure, let me have it. :-)


Support iPhone

Create a mobile friendly menu
Auto scale the Gua at small screen (flexbox might be good enough)
Think a way to deal with main page render (how to display all 64 gua in one page?)

用一个类似Boostrap的前端框架来实现终端适配 相对会非常简单 便捷 且不容易出错

Bootstrap is too heavy but easy enough. The first version is using Bootstrap. I'll consider.

Fixed in a few commits. See from 1b1be4c8077e014ad1c570a26bb85d120d62f6a9


How to partially fix deviations where depending rules involed ?

How to fix issues for example for ktlint_standard_string-template-indent and not ktlint_standard_indent ?
Expected Behavior
I'd like to get fixed issues of more specific rule which depends on some parent rule.
I've tried also use baseline, but it seems like ./ktlint --baseline=baseline.txt -F is fixing everything even the stuff already present in baseline.txt
Observed Behavior

Fails due to ktlint_standard_indent = disabled config
or I have to enable ktlint_standard_indent which is fixing unwanted issues

Your Environment

Version of ktlint used: 1.0.0
Relevant parts of the .editorconfig settings

ktlint_standard_indent = disabled
ktlint_standard_string-template-indent = enabled

Operating System and version: Ubuntu in Windows

I'd like to get fixed issues of more specific rule which depends on some parent rule.

The idea of the parent rules is to reduce internal complexity in ktlint. Per parent-child relation it is determined whether the parent rule must be loaded or not. In case of a mandatory relation, like in this example, there is (or should be) a good reason for it.

I've tried also use baseline, but it seems like ./ktlint --baseline=baseline.txt -F is fixing everything even the stuff already present in baseline.txt

Yes, see #1072 for more backgrounds why it is not trivial to fix.

Observed Behavior
Fails due to ktlint_standard_indent = disabled config
or I have to enable ktlint_standard_indent which is fixing unwanted issues

Ideally, you use the default configuration of a code style. Each of those configuration consist of a balanced set of rules and default settings. By disabling any rule, or changing a default value, you leave the paved road and go into dark territories. If you can find a configuration that works for you, that is great. If the indent rules is fixing unwanted issues, you either have to create issues for that or enable the rule and accept that some indentation is not optional from your viewpoint.


Create a tool-tip to read the footnote content in place.

Added the feature to read the foot note content via tool tip in-place.


feat: Adds hc update command

Resolves issue #56  Adds hc update command to run the self-updater (if installed). This updater comes with the current Hipcheck installer as created by cargo-dist using the axoupdater crate. The hc-update command simply calls the axoupdater provided updater, but integrated into the regular Hipcheck CLI.
This command automatically brings Hipcheck up to date with the latest released version if run without any flags. The user can includes optional flags to update to versions other than the latest.
N.B. Because of a bug in cargo-dist, we cannot be sure if the axoupdater updater will be installed as hc-update or hipcheck-update. Therefore the new hc update command tries both commands. If this bug is resolved in the future, we can remove the step of checking both possible commands.
Also updates the version of cargo-dist to 0.17.0.

@mchernicoff it looks like a newline was mistakenly added to the bottom of the cargo-dist GitHub Action file, which is causing a CI error.

@mchernicoff it looks like a newline was mistakenly added to the bottom of the cargo-dist GitHub Action file, which is causing a CI error.
Saw that. Fixing it in next commit.


Export web component prototype methods onto the react component

Web component prototype functions are directly callable on the web component, and useful for providing ways for Javascript to interact with the component.
These methods should be exported onto the React component with identical names, though if they conflict with "reserved" react component method names, then perhaps prefix them with "wc_" first.

+1 from me. I've been thinking about doing this for awhile. The current workaround would be to get the ref from the React component and call the method there.

Yeh, I've been using that workaround.

Implemented in #32.


Always install and enable autofs early in the install sequence.

AutoFS is used by the GCS connector cache and is registered as a
prerequisite for Hadoop daemon startup.

Debian, CentOS 7 and ambari validations completed successfully.


Add get_output function to Template class

cfn-lint version: 0.26.0
Is it OK to add a get_output function to the Template class?
I'm trying to add a lint rule which ensures that all of our stacks contain a specific output and I can't find a way of doing this. I was thinking it would be good to have a method such as:
 def get_output(name) -> Output:

and/or
def get_outputs() -> List[Output]

I can do a PR for this if you think it's a good idea?
(Out of interest, is anyone interested in adding type hints to the code base? I find them very useful)

I think that is a good option to have.
Typically when we make those things we do a basic syntax check so that each rule doesn't have to also have that logic.

So I can add the functionality to get the outputs from the template, and a rule which does a basic syntax check?

Top-level template sections can generally use:
cfn.template.get('Outputs', {})
which is what most of the outputs rules do

The Resources section is the only section which also has a cfn.get_resources() function that wraps cfn.template.get('Resources', {}) to provide additional validation similarly discussed in https://github.com/aws-cloudformation/cfn-python-lint/issues/1521
https://github.com/aws-cloudformation/cfn-python-lint/blob/52c02962e90354b265fec839e71e1d038e899fd4/src/cfnlint/template.py#L63-L99


Operating: Document effects of higher GOGC values

To address https://github.com/prometheus/prometheus/issues/2665
@fabxc

The new sentence seems tautologic.

Just trying to be super clear here. Happy to leave it out if you all think it's obvious enough.

What about:
If you need to conserve CPU capacity and can accept running with fewer memory chunks, try higher values.

👍

I like @RichiH 's suggestion. @fabxc is your thumb for my somewhat redundant version or for @RichiH 's more concise version?

Clarification in general sounds good, Richi's suggestion too.

I don't know how to edit this PR so see https://github.com/prometheus/docs/pull/731


CSS for angular-vs-repeat

Can we customize the CSS to have a slim scrollbar ?

This issue is completely not related to the library itself. Styling scrollbars is something you can always do arbitrarily. See https://css-tricks.com/custom-scrollbars-in-webkit/


Issue with ViewBot

Currently when I launch the code of ViewBot there's no output (Not sure if it's supposed to happen) and also it doesn't seem to work, no views go up. The SharesBot works fine.

It was patched

It was patched

Ah okay, that explains it.
Is there going to be update on the code for it

Idk, you can ask creator

i Updated, its not patched make sure to scrap proxy
idk if this screenshot can help you to config better


[Question] how to draw a border around a container

Hi @dddomodossola , all,
I am wondering if there is any way to make a border around containers?
I tried to use style={'border': '2px'} in the object definition, but it is just being ignored. Perhaps I am missing something
Thanks,

Hello @m-kareem ,
The border definition have to be like this:
style={'border':'2px solid black'}
and it will work ;-)


[Gally]: master <- dev

Automatically created by Git-Ally

:tada: This PR is included in version 2.13.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: port Algebra.Star.Module

block by leanprover/lean4#2074 in one final sorry unless someone can find a workaround. I couldn't.

bors merge


Remove mutable objects from analyze arguments.

Hello,
This PR is about removing mutable arguments from DeepFace.analyze function. Having mutable arguments leads to some strange behaviors that are hard to identify. In this case, if we run analyze with actions=["age", "gender", "emotion", "race"] we will get the results for those actions. Then if we run analyze with actions=["age", "gender"]  analyze will compute the age, gender, emotion and race again. That behavior is because the mutable arguments.
I'm fixing that issue here
Test logs:

Running unit tests for TF  2.6.0
-----------------------------------------
DeepFace.detectFace test
opencv  test is done
ssd  test is done
dlib  test is done
mtcnn  test is done
retinaface  test is done
-----------------------------------------
Function returned  2622 dimensional vector
VGG-Face  is built
Represent function returned  2622 dimensional vector
-----------------------------------------
Face detectors test
retinaface detector

Verification:   0%|          | 0/2 [00:00<?, ?it/s]
Verification:  50%|█████     | 1/2 [00:04<00:04,  4.52s/it]
Verification: 100%|██████████| 2/2 [00:09<00:00,  4.64s/it]
Verification: 100%|██████████| 2/2 [00:09<00:00,  4.62s/it]
{'pair_1': {'verified': True, 'distance': 0.25929811221208054, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}, 'pair_2': {'verified': True, 'distance': 0.2849336154618777, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}}
ssd detector

Verification:   0%|          | 0/2 [00:00<?, ?it/s]
Verification:  50%|█████     | 1/2 [00:00<00:00,  1.17it/s]
Verification: 100%|██████████| 2/2 [00:01<00:00,  1.25it/s]
Verification: 100%|██████████| 2/2 [00:01<00:00,  1.24it/s]
{'pair_1': {'verified': True, 'distance': 0.2625008929421482, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}, 'pair_2': {'verified': True, 'distance': 0.30250183580311407, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}}
opencv detector

Verification:   0%|          | 0/2 [00:00<?, ?it/s]
Verification:  50%|█████     | 1/2 [00:01<00:01,  1.28s/it]
Verification: 100%|██████████| 2/2 [00:02<00:00,  1.19s/it]
Verification: 100%|██████████| 2/2 [00:02<00:00,  1.20s/it]
{'pair_1': {'verified': True, 'distance': 0.25551898252856886, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}, 'pair_2': {'verified': True, 'distance': 0.2973867350385885, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}}
dlib detector

Verification:   0%|          | 0/2 [00:00<?, ?it/s]
Verification:  50%|█████     | 1/2 [00:02<00:02,  2.81s/it]
Verification: 100%|██████████| 2/2 [00:05<00:00,  2.47s/it]
Verification: 100%|██████████| 2/2 [00:05<00:00,  2.52s/it]
{'pair_1': {'verified': True, 'distance': 0.26372257992589254, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}, 'pair_2': {'verified': True, 'distance': 0.264064767459226, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}}
mtcnn detector

Verification:   0%|          | 0/2 [00:00<?, ?it/s]
Verification:  50%|█████     | 1/2 [00:02<00:02,  2.49s/it]
Verification: 100%|██████████| 2/2 [00:05<00:00,  3.00s/it]
Verification: 100%|██████████| 2/2 [00:05<00:00,  2.92s/it]
{'pair_1': {'verified': True, 'distance': 0.2722201305553662, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}, 'pair_2': {'verified': True, 'distance': 0.294895901082014, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}}
-----------------------------------------
Single find function test
WARNING: Representations for images in  dataset  folder were previously stored in  representations_vgg_face.pkl . If you added new instances after this file creation, then please delete this file and call find function again. It will create it again.
There are  61  representations found in  representations_vgg_face.pkl
find function lasts  0.9864292144775391  seconds
           identity  VGG-Face_cosine
0  dataset/img1.jpg     7.771561e-16
1  dataset/img4.jpg     2.363995e-01
2  dataset/img2.jpg     2.555190e-01
3  dataset/img6.jpg     2.973867e-01
4  dataset/img7.jpg     3.116518e-01
-----------------------------------------
Pre-built model for single find function test
Already built model is passed
WARNING: Representations for images in  dataset  folder were previously stored in  representations_vgg_face.pkl . If you added new instances after this file creation, then please delete this file and call find function again. It will create it again.
There are  61  representations found in  representations_vgg_face.pkl
find function lasts  0.9499161243438721  seconds
           identity  VGG-Face_cosine
0  dataset/img1.jpg     7.771561e-16
1  dataset/img4.jpg     2.363995e-01
2  dataset/img2.jpg     2.555190e-01
3  dataset/img6.jpg     2.973867e-01
4  dataset/img7.jpg     3.116518e-01
-----------------------------------------
Bulk find function tests
WARNING: Representations for images in  dataset  folder were previously stored in  representations_vgg_face.pkl . If you added new instances after this file creation, then please delete this file and call find function again. It will create it again.
There are  61  representations found in  representations_vgg_face.pkl
find function lasts  1.5767693519592285  seconds
           identity  VGG-Face_cosine
0  dataset/img1.jpg     7.771561e-16
1  dataset/img4.jpg     2.363995e-01
2  dataset/img2.jpg     2.555190e-01
3  dataset/img6.jpg     2.973867e-01
4  dataset/img7.jpg     3.116518e-01
           identity  VGG-Face_cosine
0  dataset/img2.jpg     4.440892e-16
1  dataset/img4.jpg     1.073459e-01
2  dataset/img6.jpg     1.108775e-01
3  dataset/img7.jpg     1.726556e-01
4  dataset/img5.jpg     1.753095e-01
-----------------------------------------
Bulk verification tests

Verification:   0%|          | 0/2 [00:00<?, ?it/s]
Verification:  50%|█████     | 1/2 [00:01<00:01,  1.40s/it]
Verification: 100%|██████████| 2/2 [00:02<00:00,  1.31s/it]
Verification: 100%|██████████| 2/2 [00:02<00:00,  1.32s/it]
{'pair_1': {'verified': True, 'distance': 0.25551898252856886, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}, 'pair_2': {'verified': True, 'distance': 0.2973867350385885, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}}
True
True
-----------------------------------------
Bulk facial analysis tests

Analyzing:   0%|          | 0/4 [00:00<?, ?it/s]

Finding actions:   0%|          | 0/4 [00:00<?, ?it/s]

Action: emotion:   0%|          | 0/4 [00:00<?, ?it/s]

Action: emotion:  25%|██▌       | 1/4 [00:00<00:02,  1.45it/s]

Action: age:  25%|██▌       | 1/4 [00:00<00:02,  1.45it/s]

Action: age:  50%|█████     | 2/4 [00:01<00:01,  1.15it/s]

Action: gender:  50%|█████     | 2/4 [00:01<00:01,  1.15it/s]

Action: gender:  75%|███████▌  | 3/4 [00:02<00:00,  1.57it/s]

Action: race:  75%|███████▌  | 3/4 [00:02<00:00,  1.57it/s]

Action: race: 100%|██████████| 4/4 [00:02<00:00,  1.88it/s]
Action: race: 100%|██████████| 4/4 [00:02<00:00,  1.65it/s]

Analyzing:  25%|██▌       | 1/4 [00:02<00:07,  2.42s/it]

Finding actions:   0%|          | 0/4 [00:00<?, ?it/s]

Action: emotion:   0%|          | 0/4 [00:00<?, ?it/s]

Action: emotion:  25%|██▌       | 1/4 [00:00<00:01,  2.49it/s]

Action: age:  25%|██▌       | 1/4 [00:00<00:01,  2.49it/s]

Action: age:  50%|█████     | 2/4 [00:01<00:01,  1.90it/s]

Action: gender:  50%|█████     | 2/4 [00:01<00:01,  1.90it/s]

Action: gender:  75%|███████▌  | 3/4 [00:01<00:00,  2.48it/s]

Action: race:  75%|███████▌  | 3/4 [00:01<00:00,  2.48it/s]

Action: race: 100%|██████████| 4/4 [00:01<00:00,  3.01it/s]
Action: race: 100%|██████████| 4/4 [00:01<00:00,  2.67it/s]

Analyzing:  50%|█████     | 2/4 [00:03<00:03,  1.88s/it]

Finding actions:   0%|          | 0/4 [00:00<?, ?it/s]

Action: emotion:   0%|          | 0/4 [00:00<?, ?it/s]

Action: age:   0%|          | 0/4 [00:00<?, ?it/s]

Action: age:  50%|█████     | 2/4 [00:00<00:00,  5.75it/s]

Action: gender:  50%|█████     | 2/4 [00:00<00:00,  5.75it/s]

Action: gender:  75%|███████▌  | 3/4 [00:00<00:00,  5.19it/s]

Action: race:  75%|███████▌  | 3/4 [00:00<00:00,  5.19it/s]

Action: race: 100%|██████████| 4/4 [00:00<00:00,  5.05it/s]
Action: race: 100%|██████████| 4/4 [00:00<00:00,  5.17it/s]

Analyzing:  75%|███████▌  | 3/4 [00:04<00:01,  1.37s/it]

Finding actions:   0%|          | 0/4 [00:00<?, ?it/s]

Action: emotion:   0%|          | 0/4 [00:00<?, ?it/s]

Action: emotion:  25%|██▌       | 1/4 [00:00<00:00,  5.54it/s]

Action: age:  25%|██▌       | 1/4 [00:00<00:00,  5.54it/s]

Action: age:  50%|█████     | 2/4 [00:00<00:00,  2.59it/s]

Action: gender:  50%|█████     | 2/4 [00:00<00:00,  2.59it/s]

Action: gender:  75%|███████▌  | 3/4 [00:00<00:00,  3.17it/s]

Action: race:  75%|███████▌  | 3/4 [00:00<00:00,  3.17it/s]

Action: race: 100%|██████████| 4/4 [00:01<00:00,  3.45it/s]
Action: race: 100%|██████████| 4/4 [00:01<00:00,  3.35it/s]

Analyzing: 100%|██████████| 4/4 [00:05<00:00,  1.30s/it]
Analyzing: 100%|██████████| 4/4 [00:05<00:00,  1.47s/it]
31  years old  happy   Woman
31  years old  neutral   Woman
30  years old  neutral   Woman
35  years old  neutral   Woman
-----------------------------------------
Facial analysis test. Passing nothing as an action

Finding actions:   0%|          | 0/4 [00:00<?, ?it/s]
Action: emotion:   0%|          | 0/4 [00:00<?, ?it/s]
Action: emotion:  25%|██▌       | 1/4 [00:00<00:02,  1.34it/s]
Action: age:  25%|██▌       | 1/4 [00:00<00:02,  1.34it/s]
Action: age:  50%|█████     | 2/4 [00:01<00:01,  1.42it/s]
Action: gender:  50%|█████     | 2/4 [00:01<00:01,  1.42it/s]
Action: gender:  75%|███████▌  | 3/4 [00:01<00:00,  1.96it/s]
Action: race:  75%|███████▌  | 3/4 [00:01<00:00,  1.96it/s]
Action: race: 100%|██████████| 4/4 [00:02<00:00,  2.32it/s]
Action: race: 100%|██████████| 4/4 [00:02<00:00,  1.99it/s]
{'emotion': {'angry': 0.27566468343138695, 'disgust': 3.083924013935757e-05, 'fear': 0.5239022430032492, 'happy': 67.02109575271606, 'sad': 1.7532866448163986, 'surprise': 0.8542809635400772, 'neutral': 29.571738839149475}, 'dominant_emotion': 'happy', 'region': {'x': 419, 'y': 301, 'w': 919, 'h': 919}, 'age': 31, 'gender': 'Woman', 'race': {'asian': 0.05465112952298698, 'indian': 0.08727376636631884, 'black': 0.0038303477149617426, 'white': 91.42376133345135, 'middle eastern': 5.098589813625205, 'latino hispanic': 3.3318923909600016}, 'dominant_race': 'white'}
-----------------------------------------
Facial analysis test. Passing all to the action

Finding actions:   0%|          | 0/4 [00:00<?, ?it/s]
Action: age:   0%|          | 0/4 [00:00<?, ?it/s]
Action: age:  25%|██▌       | 1/4 [00:00<00:02,  1.12it/s]
Action: gender:  25%|██▌       | 1/4 [00:00<00:02,  1.12it/s]
Action: gender:  50%|█████     | 2/4 [00:01<00:01,  1.91it/s]
Action: race:  50%|█████     | 2/4 [00:01<00:01,  1.91it/s]
Action: race:  75%|███████▌  | 3/4 [00:01<00:00,  2.29it/s]
Action: emotion:  75%|███████▌  | 3/4 [00:01<00:00,  2.29it/s]
Action: emotion: 100%|██████████| 4/4 [00:02<00:00,  2.14it/s]
Action: emotion: 100%|██████████| 4/4 [00:02<00:00,  1.99it/s]
Demography:
{'age': 31, 'region': {'x': 419, 'y': 301, 'w': 919, 'h': 919}, 'gender': 'Woman', 'race': {'asian': 0.05465112952298698, 'indian': 0.08727376636631884, 'black': 0.0038303477149617426, 'white': 91.42376133345135, 'middle eastern': 5.098589813625205, 'latino hispanic': 3.3318923909600016}, 'dominant_race': 'white', 'emotion': {'angry': 0.27566468343138695, 'disgust': 3.083924013935757e-05, 'fear': 0.5239022430032492, 'happy': 67.02109575271606, 'sad': 1.7532866448163986, 'surprise': 0.8542809635400772, 'neutral': 29.571738839149475}, 'dominant_emotion': 'happy'}
Age:  31
Gender:  Woman
Race:  white
Emotion:  happy
-----------------------------------------
Facial analysis test 2. Remove some actions and check they are not computed

Finding actions:   0%|          | 0/2 [00:00<?, ?it/s]
Action: age:   0%|          | 0/2 [00:00<?, ?it/s]
Action: age:  50%|█████     | 1/2 [00:00<00:00,  1.30it/s]
Action: gender:  50%|█████     | 1/2 [00:00<00:00,  1.30it/s]
Action: gender: 100%|██████████| 2/2 [00:01<00:00,  2.20it/s]
Action: gender: 100%|██████████| 2/2 [00:01<00:00,  1.99it/s]Age:  31
Gender:  Woman
Race:  None
Emotion:  None
-----------------------------------------
Face recognition tests
img1.jpg - img2.jpg verified as same person based on VGG-Face and cosine . Distance: 0.26 , Threshold: 0.4 ( passed )
img5.jpg - img6.jpg verified as same person based on VGG-Face and cosine . Distance: 0.18 , Threshold: 0.4 ( passed )
img6.jpg - img7.jpg verified as same person based on VGG-Face and cosine . Distance: 0.17 , Threshold: 0.4 ( passed )
img8.jpg - img9.jpg verified as same person based on VGG-Face and cosine . Distance: 0.29 , Threshold: 0.4 ( passed )
img1.jpg - img11.jpg verified as same person based on VGG-Face and cosine . Distance: 0.36 , Threshold: 0.4 ( passed )
img2.jpg - img11.jpg verified as same person based on VGG-Face and cosine . Distance: 0.19 , Threshold: 0.4 ( passed )
img1.jpg - img3.jpg unverified as same person based on VGG-Face and cosine . Distance: 0.63 , Threshold: 0.4 ( passed )
img2.jpg - img3.jpg unverified as same person based on VGG-Face and cosine . Distance: 0.7 , Threshold: 0.4 ( passed )
img6.jpg - img8.jpg unverified as same person based on VGG-Face and cosine . Distance: 0.54 , Threshold: 0.4 ( passed )
img6.jpg - img9.jpg unverified as same person based on VGG-Face and cosine . Distance: 0.58 , Threshold: 0.4 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on VGG-Face and euclidean . Distance: 0.49 , Threshold: 0.6 ( passed )
img5.jpg - img6.jpg verified as same person based on VGG-Face and euclidean . Distance: 0.4 , Threshold: 0.6 ( passed )
img6.jpg - img7.jpg verified as same person based on VGG-Face and euclidean . Distance: 0.38 , Threshold: 0.6 ( passed )
img8.jpg - img9.jpg verified as same person based on VGG-Face and euclidean . Distance: 0.42 , Threshold: 0.6 ( passed )
img1.jpg - img11.jpg verified as same person based on VGG-Face and euclidean . Distance: 0.56 , Threshold: 0.6 ( passed )
img2.jpg - img11.jpg verified as same person based on VGG-Face and euclidean . Distance: 0.46 , Threshold: 0.6 ( passed )
img1.jpg - img3.jpg unverified as same person based on VGG-Face and euclidean . Distance: 0.63 , Threshold: 0.6 ( passed )
img2.jpg - img3.jpg unverified as same person based on VGG-Face and euclidean . Distance: 0.79 , Threshold: 0.6 ( passed )
img6.jpg - img8.jpg unverified as same person based on VGG-Face and euclidean . Distance: 0.64 , Threshold: 0.6 ( passed )
img6.jpg - img9.jpg unverified as same person based on VGG-Face and euclidean . Distance: 0.68 , Threshold: 0.6 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on VGG-Face and euclidean_l2 . Distance: 0.71 , Threshold: 0.86 ( passed )
img5.jpg - img6.jpg verified as same person based on VGG-Face and euclidean_l2 . Distance: 0.6 , Threshold: 0.86 ( passed )
img6.jpg - img7.jpg verified as same person based on VGG-Face and euclidean_l2 . Distance: 0.58 , Threshold: 0.86 ( passed )
img8.jpg - img9.jpg verified as same person based on VGG-Face and euclidean_l2 . Distance: 0.76 , Threshold: 0.86 ( passed )
img1.jpg - img11.jpg verified as same person based on VGG-Face and euclidean_l2 . Distance: 0.85 , Threshold: 0.86 ( passed )
img2.jpg - img11.jpg verified as same person based on VGG-Face and euclidean_l2 . Distance: 0.62 , Threshold: 0.86 ( passed )
img1.jpg - img3.jpg unverified as same person based on VGG-Face and euclidean_l2 . Distance: 1.12 , Threshold: 0.86 ( passed )
img2.jpg - img3.jpg unverified as same person based on VGG-Face and euclidean_l2 . Distance: 1.18 , Threshold: 0.86 ( passed )
img6.jpg - img8.jpg unverified as same person based on VGG-Face and euclidean_l2 . Distance: 1.04 , Threshold: 0.86 ( passed )
img6.jpg - img9.jpg unverified as same person based on VGG-Face and euclidean_l2 . Distance: 1.08 , Threshold: 0.86 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on Facenet and cosine . Distance: 0.24 , Threshold: 0.4 ( passed )
img5.jpg - img6.jpg verified as same person based on Facenet and cosine . Distance: 0.15 , Threshold: 0.4 ( passed )
img6.jpg - img7.jpg verified as same person based on Facenet and cosine . Distance: 0.14 , Threshold: 0.4 ( passed )
img8.jpg - img9.jpg verified as same person based on Facenet and cosine . Distance: 0.17 , Threshold: 0.4 ( passed )
img1.jpg - img11.jpg verified as same person based on Facenet and cosine . Distance: 0.18 , Threshold: 0.4 ( passed )
img2.jpg - img11.jpg verified as same person based on Facenet and cosine . Distance: 0.19 , Threshold: 0.4 ( passed )
img1.jpg - img3.jpg unverified as same person based on Facenet and cosine . Distance: 0.94 , Threshold: 0.4 ( passed )
img2.jpg - img3.jpg unverified as same person based on Facenet and cosine . Distance: 1.03 , Threshold: 0.4 ( passed )
img6.jpg - img8.jpg unverified as same person based on Facenet and cosine . Distance: 0.86 , Threshold: 0.4 ( passed )
img6.jpg - img9.jpg unverified as same person based on Facenet and cosine . Distance: 0.77 , Threshold: 0.4 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on Facenet and euclidean . Distance: 8.15 , Threshold: 10 ( passed )
img5.jpg - img6.jpg verified as same person based on Facenet and euclidean . Distance: 6.24 , Threshold: 10 ( passed )
img6.jpg - img7.jpg verified as same person based on Facenet and euclidean . Distance: 6.14 , Threshold: 10 ( passed )
img8.jpg - img9.jpg verified as same person based on Facenet and euclidean . Distance: 6.88 , Threshold: 10 ( passed )
img1.jpg - img11.jpg verified as same person based on Facenet and euclidean . Distance: 7.36 , Threshold: 10 ( passed )
img2.jpg - img11.jpg verified as same person based on Facenet and euclidean . Distance: 7.37 , Threshold: 10 ( passed )
img1.jpg - img3.jpg unverified as same person based on Facenet and euclidean . Distance: 16.57 , Threshold: 10 ( passed )
img2.jpg - img3.jpg unverified as same person based on Facenet and euclidean . Distance: 16.97 , Threshold: 10 ( passed )
img6.jpg - img8.jpg unverified as same person based on Facenet and euclidean . Distance: 15.24 , Threshold: 10 ( passed )
img6.jpg - img9.jpg unverified as same person based on Facenet and euclidean . Distance: 14.52 , Threshold: 10 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on Facenet and euclidean_l2 . Distance: 0.7 , Threshold: 0.8 ( passed )
img5.jpg - img6.jpg verified as same person based on Facenet and euclidean_l2 . Distance: 0.55 , Threshold: 0.8 ( passed )
img6.jpg - img7.jpg verified as same person based on Facenet and euclidean_l2 . Distance: 0.53 , Threshold: 0.8 ( passed )
img8.jpg - img9.jpg verified as same person based on Facenet and euclidean_l2 . Distance: 0.58 , Threshold: 0.8 ( passed )
img1.jpg - img11.jpg verified as same person based on Facenet and euclidean_l2 . Distance: 0.61 , Threshold: 0.8 ( passed )
img2.jpg - img11.jpg verified as same person based on Facenet and euclidean_l2 . Distance: 0.62 , Threshold: 0.8 ( passed )
img1.jpg - img3.jpg unverified as same person based on Facenet and euclidean_l2 . Distance: 1.37 , Threshold: 0.8 ( passed )
img2.jpg - img3.jpg unverified as same person based on Facenet and euclidean_l2 . Distance: 1.44 , Threshold: 0.8 ( passed )
img6.jpg - img8.jpg unverified as same person based on Facenet and euclidean_l2 . Distance: 1.31 , Threshold: 0.8 ( passed )
img6.jpg - img9.jpg unverified as same person based on Facenet and euclidean_l2 . Distance: 1.24 , Threshold: 0.8 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on Facenet512 and cosine . Distance: 0.23 , Threshold: 0.3 ( passed )
img5.jpg - img6.jpg verified as same person based on Facenet512 and cosine . Distance: 0.21 , Threshold: 0.3 ( passed )
img6.jpg - img7.jpg verified as same person based on Facenet512 and cosine . Distance: 0.14 , Threshold: 0.3 ( passed )
img8.jpg - img9.jpg verified as same person based on Facenet512 and cosine . Distance: 0.15 , Threshold: 0.3 ( passed )
img1.jpg - img11.jpg verified as same person based on Facenet512 and cosine . Distance: 0.18 , Threshold: 0.3 ( passed )
img2.jpg - img11.jpg verified as same person based on Facenet512 and cosine . Distance: 0.22 , Threshold: 0.3 ( passed )
img1.jpg - img3.jpg unverified as same person based on Facenet512 and cosine . Distance: 0.98 , Threshold: 0.3 ( passed )
img2.jpg - img3.jpg unverified as same person based on Facenet512 and cosine . Distance: 0.93 , Threshold: 0.3 ( passed )
img6.jpg - img8.jpg unverified as same person based on Facenet512 and cosine . Distance: 1.06 , Threshold: 0.3 ( passed )
img6.jpg - img9.jpg unverified as same person based on Facenet512 and cosine . Distance: 1.04 , Threshold: 0.3 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on Facenet512 and euclidean . Distance: 14.73 , Threshold: 23.56 ( passed )
img5.jpg - img6.jpg verified as same person based on Facenet512 and euclidean . Distance: 14.63 , Threshold: 23.56 ( passed )
img6.jpg - img7.jpg verified as same person based on Facenet512 and euclidean . Distance: 12.14 , Threshold: 23.56 ( passed )
img8.jpg - img9.jpg verified as same person based on Facenet512 and euclidean . Distance: 11.91 , Threshold: 23.56 ( passed )
img1.jpg - img11.jpg verified as same person based on Facenet512 and euclidean . Distance: 12.88 , Threshold: 23.56 ( passed )
img2.jpg - img11.jpg verified as same person based on Facenet512 and euclidean . Distance: 14.19 , Threshold: 23.56 ( passed )
img1.jpg - img3.jpg unverified as same person based on Facenet512 and euclidean . Distance: 30.9 , Threshold: 23.56 ( passed )
img2.jpg - img3.jpg unverified as same person based on Facenet512 and euclidean . Distance: 30.06 , Threshold: 23.56 ( passed )
img6.jpg - img8.jpg unverified as same person based on Facenet512 and euclidean . Distance: 32.6 , Threshold: 23.56 ( passed )
img6.jpg - img9.jpg unverified as same person based on Facenet512 and euclidean . Distance: 33.13 , Threshold: 23.56 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on Facenet512 and euclidean_l2 . Distance: 0.68 , Threshold: 1.04 ( passed )
img5.jpg - img6.jpg verified as same person based on Facenet512 and euclidean_l2 . Distance: 0.64 , Threshold: 1.04 ( passed )
img6.jpg - img7.jpg verified as same person based on Facenet512 and euclidean_l2 . Distance: 0.52 , Threshold: 1.04 ( passed )
img8.jpg - img9.jpg verified as same person based on Facenet512 and euclidean_l2 . Distance: 0.54 , Threshold: 1.04 ( passed )
img1.jpg - img11.jpg verified as same person based on Facenet512 and euclidean_l2 . Distance: 0.61 , Threshold: 1.04 ( passed )
img2.jpg - img11.jpg verified as same person based on Facenet512 and euclidean_l2 . Distance: 0.67 , Threshold: 1.04 ( passed )
img1.jpg - img3.jpg unverified as same person based on Facenet512 and euclidean_l2 . Distance: 1.4 , Threshold: 1.04 ( passed )
img2.jpg - img3.jpg unverified as same person based on Facenet512 and euclidean_l2 . Distance: 1.36 , Threshold: 1.04 ( passed )
img6.jpg - img8.jpg unverified as same person based on Facenet512 and euclidean_l2 . Distance: 1.46 , Threshold: 1.04 ( passed )
img6.jpg - img9.jpg unverified as same person based on Facenet512 and euclidean_l2 . Distance: 1.44 , Threshold: 1.04 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on Dlib and cosine . Distance: 0.04 , Threshold: 0.07 ( passed )
img5.jpg - img6.jpg verified as same person based on Dlib and cosine . Distance: 0.02 , Threshold: 0.07 ( passed )
img6.jpg - img7.jpg verified as same person based on Dlib and cosine . Distance: 0.02 , Threshold: 0.07 ( passed )
img8.jpg - img9.jpg verified as same person based on Dlib and cosine . Distance: 0.03 , Threshold: 0.07 ( passed )
img1.jpg - img11.jpg verified as same person based on Dlib and cosine . Distance: 0.04 , Threshold: 0.07 ( passed )
img2.jpg - img11.jpg verified as same person based on Dlib and cosine . Distance: 0.03 , Threshold: 0.07 ( passed )
img1.jpg - img3.jpg unverified as same person based on Dlib and cosine . Distance: 0.1 , Threshold: 0.07 ( passed )
img2.jpg - img3.jpg unverified as same person based on Dlib and cosine . Distance: 0.09 , Threshold: 0.07 ( passed )
img6.jpg - img8.jpg unverified as same person based on Dlib and cosine . Distance: 0.09 , Threshold: 0.07 ( passed )
img6.jpg - img9.jpg unverified as same person based on Dlib and cosine . Distance: 0.09 , Threshold: 0.07 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on Dlib and euclidean . Distance: 0.43 , Threshold: 0.6 ( passed )
img5.jpg - img6.jpg verified as same person based on Dlib and euclidean . Distance: 0.31 , Threshold: 0.6 ( passed )
img6.jpg - img7.jpg verified as same person based on Dlib and euclidean . Distance: 0.3 , Threshold: 0.6 ( passed )
img8.jpg - img9.jpg verified as same person based on Dlib and euclidean . Distance: 0.38 , Threshold: 0.6 ( passed )
img1.jpg - img11.jpg verified as same person based on Dlib and euclidean . Distance: 0.46 , Threshold: 0.6 ( passed )
img2.jpg - img11.jpg verified as same person based on Dlib and euclidean . Distance: 0.37 , Threshold: 0.6 ( passed )
img1.jpg - img3.jpg unverified as same person based on Dlib and euclidean . Distance: 0.69 , Threshold: 0.6 ( passed )
img2.jpg - img3.jpg unverified as same person based on Dlib and euclidean . Distance: 0.64 , Threshold: 0.6 ( passed )
img6.jpg - img8.jpg unverified as same person based on Dlib and euclidean . Distance: 0.66 , Threshold: 0.6 ( passed )
img6.jpg - img9.jpg unverified as same person based on Dlib and euclidean . Distance: 0.66 , Threshold: 0.6 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on Dlib and euclidean_l2 . Distance: 0.28 , Threshold: 0.4 ( passed )
img5.jpg - img6.jpg verified as same person based on Dlib and euclidean_l2 . Distance: 0.2 , Threshold: 0.4 ( passed )
img6.jpg - img7.jpg verified as same person based on Dlib and euclidean_l2 . Distance: 0.19 , Threshold: 0.4 ( passed )
img8.jpg - img9.jpg verified as same person based on Dlib and euclidean_l2 . Distance: 0.24 , Threshold: 0.4 ( passed )
img1.jpg - img11.jpg verified as same person based on Dlib and euclidean_l2 . Distance: 0.3 , Threshold: 0.4 ( passed )
img2.jpg - img11.jpg verified as same person based on Dlib and euclidean_l2 . Distance: 0.24 , Threshold: 0.4 ( passed )
img1.jpg - img3.jpg unverified as same person based on Dlib and euclidean_l2 . Distance: 0.46 , Threshold: 0.4 ( passed )
img2.jpg - img3.jpg unverified as same person based on Dlib and euclidean_l2 . Distance: 0.42 , Threshold: 0.4 ( passed )
img6.jpg - img8.jpg unverified as same person based on Dlib and euclidean_l2 . Distance: 0.42 , Threshold: 0.4 ( passed )
img6.jpg - img9.jpg unverified as same person based on Dlib and euclidean_l2 . Distance: 0.43 , Threshold: 0.4 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on ArcFace and cosine . Distance: 0.49 , Threshold: 0.68 ( passed )
img5.jpg - img6.jpg verified as same person based on ArcFace and cosine . Distance: 0.3 , Threshold: 0.68 ( passed )
img6.jpg - img7.jpg verified as same person based on ArcFace and cosine . Distance: 0.16 , Threshold: 0.68 ( passed )
img8.jpg - img9.jpg verified as same person based on ArcFace and cosine . Distance: 0.17 , Threshold: 0.68 ( passed )
img1.jpg - img11.jpg verified as same person based on ArcFace and cosine . Distance: 0.51 , Threshold: 0.68 ( passed )
img2.jpg - img11.jpg verified as same person based on ArcFace and cosine . Distance: 0.34 , Threshold: 0.68 ( passed )
img1.jpg - img3.jpg unverified as same person based on ArcFace and cosine . Distance: 0.96 , Threshold: 0.68 ( passed )
img2.jpg - img3.jpg unverified as same person based on ArcFace and cosine . Distance: 0.89 , Threshold: 0.68 ( passed )
img6.jpg - img8.jpg unverified as same person based on ArcFace and cosine . Distance: 0.83 , Threshold: 0.68 ( passed )
img6.jpg - img9.jpg unverified as same person based on ArcFace and cosine . Distance: 0.87 , Threshold: 0.68 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on ArcFace and euclidean . Distance: 3.89 , Threshold: 4.15 ( passed )
img5.jpg -
img6.jpg verified as same person based on ArcFace and euclidean . Distance: 3.02 , Threshold: 4.15 ( passed )
img6.jpg - img7.jpg verified as same person based on ArcFace and euclidean . Distance: 2.32 , Threshold: 4.15 ( passed )
img8.jpg - img9.jpg unverified as same person based on ArcFace and euclidean . Distance: 6.47 , Threshold: 4.15 ( failed )
img1.jpg - img11.jpg verified as same person based on ArcFace and euclidean . Distance: 3.84 , Threshold: 4.15 ( passed )
img2.jpg - img11.jpg verified as same person based on ArcFace and euclidean . Distance: 3.29 , Threshold: 4.15 ( passed )
img1.jpg - img3.jpg unverified as same person based on ArcFace and euclidean . Distance: 4.86 , Threshold: 4.15 ( passed )
img2.jpg - img3.jpg unverified as same person based on ArcFace and euclidean . Distance: 4.98 , Threshold: 4.15 ( passed )
img6.jpg - img8.jpg unverified as same person based on ArcFace and euclidean . Distance: 6.27 , Threshold: 4.15 ( passed )
img6.jpg - img9.jpg unverified as same person based on ArcFace and euclidean . Distance: 10.53 , Threshold: 4.15 ( passed )
--------------------------
img1.jpg - img2.jpg verified as same person based on ArcFace and euclidean_l2 . Distance: 0.99 , Threshold: 1.13 ( passed )
img5.jpg - img6.jpg verified as same person based on ArcFace and euclidean_l2 . Distance: 0.78 , Threshold: 1.13 ( passed )
img6.jpg - img7.jpg verified as same person based on ArcFace and euclidean_l2 . Distance: 0.57 , Threshold: 1.13 ( passed )
img8.jpg - img9.jpg verified as same person based on ArcFace and euclidean_l2 . Distance: 0.58 , Threshold: 1.13 ( passed )
img1.jpg - img11.jpg verified as same person based on ArcFace and euclidean_l2 . Distance: 1.01 , Threshold: 1.13 ( passed )
img2.jpg - img11.jpg verified as same person based on ArcFace and euclidean_l2 . Distance: 0.82 , Threshold: 1.13 ( passed )
img1.jpg - img3.jpg unverified as same person based on ArcFace and euclidean_l2 . Distance: 1.38 , Threshold: 1.13 ( passed )
img2.jpg - img3.jpg unverified as same person based on ArcFace and euclidean_l2 . Distance: 1.34 , Threshold: 1.13 ( passed )
img6.jpg - img8.jpg unverified as same person based on ArcFace and euclidean_l2 . Distance: 1.29 , Threshold: 1.13 ( passed )
img6.jpg - img9.jpg unverified as same person based on ArcFace and euclidean_l2 . Distance: 1.32 , Threshold: 1.13 ( passed )
--------------------------
Passed unit tests:  149  /  150
Unit tests are completed successfully. Score:  99.33 %
Analyze function with passing pre-trained model

Finding actions:   0%|          | 0/4 [00:00<?, ?it/s]
Action: emotion:   0%|          | 0/4 [00:00<?, ?it/s]
Action: emotion:  25%|██▌       | 1/4 [00:00<00:01,  2.05it/s]
Action: age:  25%|██▌       | 1/4 [00:00<00:01,  2.05it/s]
Action: age:  50%|█████     | 2/4 [00:01<00:01,  1.71it/s]
Action: gender:  50%|█████     | 2/4 [00:01<00:01,  1.71it/s]
Action: gender:  75%|███████▌  | 3/4 [00:01<00:00,  2.41it/s]
Action: race:  75%|███████▌  | 3/4 [00:01<00:00,  2.41it/s]
Action: race: 100%|██████████| 4/4 [00:01<00:00,  3.01it/s]
Action: race: 100%|██████████| 4/4 [00:01<00:00,  2.56it/s]
{'emotion': {'angry': 8.507632937702477e-22, 'disgust': 0.0, 'fear': 1.7665077830484905e-27, 'happy': 100.0, 'sad': 3.718035974227784e-18, 'surprise': 7.542845514851848e-09, 'neutral': 2.3138133631306346e-07}, 'dominant_emotion': 'happy', 'region': {'x': 345, 'y': 211, 'w': 769, 'h': 769}, 'age': 31, 'gender': 'Woman', 'race': {'asian': 9.939994663000107, 'indian': 13.22726309299469, 'black': 3.6370791494846344, 'white': 23.46402108669281, 'middle eastern': 20.388375222682953, 'latino hispanic': 29.343268275260925}, 'dominant_race': 'latino hispanic'}
--------------------------
Ensemble for find function
Ensemble learning enabled

Face recognition models:   0%|          | 0/4 [00:00<?, ?it/s]
Loading VGG-Face:   0%|          | 0/4 [00:00<?, ?it/s]
Loading Facenet:   0%|          | 0/4 [00:00<?, ?it/s]
Loading OpenFace:   0%|          | 0/4 [00:00<?, ?it/s]
Loading OpenFace:  75%|███████▌  | 3/4 [00:00<00:00,  3.28it/s]
Loading DeepFace:  75%|███████▌  | 3/4 [00:00<00:00,  3.28it/s]
Loading DeepFace: 100%|██████████| 4/4 [00:10<00:00,  3.20s/it]
Loading DeepFace: 100%|██████████| 4/4 [00:10<00:00,  2.55s/it]
WARNING: Representations for images in  dataset  folder were previously stored in  representations_ensemble.pkl . If you added new instances after this file creation, then please delete this file and call find function again. It will create it again.
There are  61  representations found in  representations_ensemble.pkl
find function lasts  32.44281554222107  seconds
            identity  verified     score
0   dataset/img7.jpg      True  0.998191
1   dataset/img6.jpg      True  0.997895
2   dataset/img5.jpg      True  0.997876
3  dataset/img11.jpg      True  0.997828
4   dataset/img2.jpg      True  0.997269
--------------------------
Ensemble for verify function

Face recognition models:   0%|          | 0/4 [00:00<?, ?it/s]
Loading VGG-Face:   0%|          | 0/4 [00:00<?, ?it/s]
Loading Facenet:   0%|          | 0/4 [00:00<?, ?it/s]
Loading OpenFace:   0%|          | 0/4 [00:00<?, ?it/s]
Loading DeepFace:   0%|          | 0/4 [00:00<?, ?it/s]
Loading DeepFace: 100%|██████████| 4/4 [00:00<00:00, 18600.02it/s]

Verification:   0%|          | 0/10 [00:00<?, ?it/s]
Verification:  10%|█         | 1/10 [00:04<00:39,  4.41s/it]
Verification:  20%|██        | 2/10 [00:06<00:22,  2.80s/it]
Verification:  30%|███       | 3/10 [00:09<00:20,  2.99s/it]
Verification:  40%|████      | 4/10 [00:12<00:17,  2.93s/it]
Verification:  50%|█████     | 5/10 [00:15<00:14,  2.91s/it]
Verification:  60%|██████    | 6/10 [00:17<00:11,  2.76s/it]
Verification:  70%|███████   | 7/10 [00:22<00:10,  3.52s/it]
Verification:  80%|████████  | 8/10 [00:27<00:07,  3.90s/it]
Verification:  90%|█████████ | 9/10 [00:29<00:03,  3.34s/it]
Verification: 100%|██████████| 10/10 [00:32<00:00,  3.15s/it]
Verification: 100%|██████████| 10/10 [00:32<00:00,  3.21s/it]
True
True
True
True
True
True
False
False
False
False
--------------------------
Pre-trained ensemble method - find

Face recognition models:   0%|          | 0/4 [00:00<?, ?it/s]
Loading VGG-Face:   0%|          | 0/4 [00:00<?, ?it/s]
Loading Facenet:   0%|          | 0/4 [00:00<?, ?it/s]
Loading OpenFace:   0%|          | 0/4 [00:00<?, ?it/s]
Loading DeepFace:   0%|          | 0/4 [00:00<?, ?it/s]
Loading DeepFace: 100%|██████████| 4/4 [00:00<00:00, 9921.48it/s]
Already built model is passed
WARNING: Representations for images in  dataset  folder were previously stored in  representations_ensemble.pkl . If you added new instances after this file creation, then please delete this file and call find function again. It will create it again.
There are  61  representations found in  representations_ensemble.pkl
find function lasts  2.575796604156494  seconds
            identity  verified     score
0   dataset/img7.jpg      True  0.998191
1   dataset/img6.jpg      True  0.997895
2   dataset/img5.jpg      True  0.997876
3  dataset/img11.jpg      True  0.997828
4   dataset/img2.jpg      True  0.997269
5   dataset/img4.jpg      True  0.997171
6   dataset/img1.jpg      True  0.996973
--------------------------
Pre-trained ensemble method - verify

Verification:   0%|          | 0/10 [00:00<?, ?it/s]
Verification:  10%|█         | 1/10 [00:03<00:34,  3.84s/it]
Verification:  20%|██        | 2/10 [00:05<00:20,  2.51s/it]
Verification:  30%|███       | 3/10 [00:08<00:19,  2.77s/it]
Verification:  40%|████      | 4/10 [00:11<00:16,  2.76s/it]
Verification:  50%|█████     | 5/10 [00:14<00:13,  2.78s/it]
Verification:  60%|██████    | 6/10 [00:16<00:10,  2.73s/it]
Verification:  70%|███████   | 7/10 [00:21<00:10,  3.55s/it]
Verification:  80%|████████  | 8/10 [00:26<00:08,  4.01s/it]
Verification:  90%|█████████ | 9/10 [00:29<00:03,  3.42s/it]
Verification: 100%|██████████| 10/10 [00:31<00:00,  3.17s/it]
Verification: 100%|██████████| 10/10 [00:31<00:00,  3.17s/it]
{'pair_1': {'verified': True, 'score': 0.9972686146234782, 'distance': [0.25551898252856886, 0.4933943452049544, 0.7148691943685488, 0.2425699926649384, 8.146640079258484, 0.6965199102178464, 0.15881449199245445, 0.5635858266359339, 0.2418076678216512, 63.923194955410345, 0.6954245722170755], 'model': ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace'], 'similarity_metric': ['cosine', 'euclidean', 'euclidean_l2']}, 'pair_2': {'verified': True, 'score': 0.9981960732300925, 'distance': [0.1822285515522687, 0.3970486382530624, 0.6037028268150958, 0.1495203288445287, 6.240092589850315, 0.5468461005521179, 0.03645313697888175, 0.2700116181903354, 0.12812292829673977, 55.46509500759033, 0.5062073257011196], 'model': ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace'], 'similarity_metric': ['cosine', 'euclidean', 'euclidean_l2']}, 'pair_3': {'verified': True, 'score': 0.9969725576919597, 'distance': [0.16607838786314344, 0.3764599629675195, 0.5763304397012934, 0.1395970889028726, 6.141800024472761, 0.5283882831836312, 0.06936070888459955, 0.37245324239318894, 0.10042602616803609, 43.50295573293764, 0.44816520652106945], 'model': ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace'], 'similarity_metric': ['cosine', 'euclidean', 'euclidean_l2']}, 'pair_4': {'verified': True, 'score': 0.9982035297959811, 'distance': [0.28638056512028387, 0.4183855604422183, 0.7568098375685712, 0.16989758452024128, 6.883233017212181, 0.5829195219243241, 0.096315554089338, 0.4388976055740981, 0.14372580843164295, 45.280279328151, 0.5361451453322001], 'model': ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace'], 'similarity_metric': ['cosine', 'euclidean', 'euclidean_l2']}, 'pair_5': {'verified': True, 'score': 0.9978277284145679, 'distance': [0.35774610629786574, 0.5622027476287853, 0.8458677276003213, 0.18463948514264594, 7.3644028848609695, 0.6076832812290394, 0.2299342057386793, 0.678135983028005, 0.21824920310195683, 65.89719206381345, 0.6606802601893851], 'model': ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace'], 'similarity_metric': ['cosine', 'euclidean', 'euclidean_l2']}, 'pair_6': {'verified': True, 'score': 0.9981957570272167, 'distance': [0.1949865151349659, 0.45816819234157397, 0.624478206401097, 0.1911293277870293, 7.3749838913780925, 0.6182706976511655, 0.13525286671962777, 0.5201016568318695, 0.1483482106420242, 55.69191904956185, 0.5446984682226018], 'model': ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace'], 'similarity_metric': ['cosine', 'euclidean', 'euclidean_l2']}, 'pair_7': {'verified': False, 'score': 0.9971862349762163, 'distance': [0.6320049524045002, 0.6312557788512392, 1.1242819507619075, 0.9436460072986462, 16.568348525272036, 1.3737874706799784, 0.22106065753116622, 0.664922036830133, 0.26772965124973813, 61.782606130384636, 0.7317508472830601], 'model': ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace'], 'similarity_metric': ['cosine', 'euclidean', 'euclidean_l2']}, 'pair_8': {'verified': False, 'score': 0.9982651910682344, 'distance': [0.6966089548739571, 0.7916550681222929, 1.180346521047067, 1.031814274484279, 16.97201132303038, 1.4365335182196615, 0.3582953005635634, 0.846516745922446, 0.250970126997772, 64.76080804138367, 0.7084774195382265], 'model': ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace'], 'similarity_metric': ['cosine', 'euclidean', 'euclidean_l2']}, 'pair_9': {'verified': False, 'score': 0.995136672288575, 'distance': [0.5432935630597534, 0.6445990409096298, 1.0423948993157566, 0.8587444631826381, 15.238314653143018, 1.3105300173461407, 0.0995805444813237, 0.4462746788275664, 0.2136043527312238, 61.540403983685394, 0.6536120450714228], 'model': ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace'], 'similarity_metric': ['cosine', 'euclidean', 'euclidean_l2']}, 'pair_10': {'verified': False, 'score': 0.9953868827830691, 'distance': [0.5807257765226832, 0.6795571099611813, 1.0777066173339414, 0.7683633186623661, 14.515777061972273, 1.2396477876093401, 0.08925497010412586, 0.422504367087788, 0.12779752485207518, 48.71804485664977, 0.5055640905999463], 'model': ['VGG-Face', 'Facenet', 'OpenFace', 'DeepFace'], 'similarity_metric': ['cosine', 'euclidean', 'euclidean_l2']}}
--------------------------
Passing numpy array to analyze function

Finding actions:   0%|          | 0/4 [00:00<?, ?it/s]
Action: emotion:   0%|          | 0/4 [00:00<?, ?it/s]
Action: emotion:  25%|██▌       | 1/4 [00:00<00:01,  2.56it/s]
Action: age:  25%|██▌       | 1/4 [00:00<00:01,  2.56it/s]
Action: age:  50%|█████     | 2/4 [00:00<00:01,  2.00it/s]
Action: gender:  50%|█████     | 2/4 [00:00<00:01,  2.00it/s]
Action: gender:  75%|███████▌  | 3/4 [00:01<00:00,  2.76it/s]
Action: race:  75%|███████▌  | 3/4 [00:01<00:00,  2.76it/s]
Action: race: 100%|██████████| 4/4 [00:01<00:00,  3.35it/s]
Action: race: 100%|██████████| 4/4 [00:01<00:00,  2.93it/s]
{'emotion': {'angry': 8.507632937702477e-22, 'disgust': 0.0, 'fear': 1.7665077830484905e-27, 'happy': 100.0, 'sad': 3.718035974227784e-18, 'surprise': 7.542845514851848e-09, 'neutral': 2.3138133631306346e-07}, 'dominant_emotion': 'happy', 'region': {'x': 345, 'y': 211, 'w': 769, 'h': 769}, 'age': 31, 'gender': 'Woman', 'race': {'asian': 9.939994663000107, 'indian': 13.22726309299469, 'black': 3.6370791494846344, 'white': 23.46402108669281, 'middle eastern': 20.388375222682953, 'latino hispanic': 29.343268275260925}, 'dominant_race': 'latino hispanic'}
--------------------------
Passing numpy array to verify function
{'verified': True, 'distance': 0.25551898252856886, 'max_threshold_to_verify': 0.4, 'model': 'VGG-Face', 'similarity_metric': 'cosine'}
--------------------------
Passing numpy array to find function
WARNING: Representations for images in  dataset  folder were previously stored in  representations_vgg_face.pkl . If you added new instances after this file creation, then please delete this file and call find function again. It will create it again.
There are  61  representations found in  representations_vgg_face.pkl
find function lasts  0.6700825691223145  seconds
           identity  VGG-Face_cosine
0  dataset/img1.jpg     7.771561e-16
1  dataset/img4.jpg     2.363995e-01
2  dataset/img2.jpg     2.555190e-01
3  dataset/img6.jpg     2.973867e-01
4  dataset/img7.jpg     3.116518e-01
--------------------------

thank you for your contribution.


Fixing HLint execution on runners due to missing libtinfo5 dependency

Per issues found in this PR by @treeowl
https://github.com/runtimeverification/haskell-backend/pull/3396
Installation on public runner of library enables execution of Hlint

It's hard to know what to think of this unless/until integration tests can run. HLint was only the least important symptom.

Question: should we just stop requiring M1 (apparently experimental, and currently down) and macos12 (generally sluggish) tests to run before triggering the integration and perf tests?

Unfortunately, it seems there's more left to fix here. 😕

closing in favour of #3401, since the underlying issue with the cachix action on ubuntu-22.04 https://github.com/cachix/cachix-action/issues/130 is currently unsolved.

This PR lacks the other additional changes as it was to also update and sync the checkout versions. Please add that to your PR or open this.


Add support for the .gz format for logs streaming to S3 bucket via LZA central logging

Is your feature request related to a problem? Please describe.
With the central logging feature of the LZA, when logs are streamed from Firehose to S3, they do not have the .gz extension explicitly added to the files. It appears that Amazon Athena requires that the logs have this extensions otherwise the queries cannot be run
Describe the feature you'd like
Add an option within the LZA configuration to specify the format of the logs in S3

Hi @NdemeraS , this has been included in v1.11.0 of the Landing Zone Accelerator which was released today. I will go ahead and close this issue, thanks for your support of the Landing Zone Accelerator!


NullRefrenceException -- Seasons.WaterVolume_Awake_WaterState.Postfix

While setting up a new pack an starting a new world, this reference error cropped up a few times.
[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
Seasons.WaterVolume_Awake_WaterState.Postfix (WaterVolume __instance) (at <145700a5d9374446bd6d0087403e7366>:0)
(wrapper dynamic-method) WaterVolume.DMDWaterVolume::Awake(WaterVolume)
UnityEngine.Object:Instantiate(GameObject, Vector3, Quaternion)
ZoneSystem:SpawnZone(Vector2i, SpawnMode, GameObject&)
ZoneSystem:CreateGhostZones(Vector3)
ZoneSystem:Update()

Do you use proper version? That error is known for using regular version in Ashlands.
If you get this in Ashlands version then I need your log with Seasons config Logging enabled.

Im using the regular non Ashlands Beta version. Im using a pre-made pack called EpicValheim which consistently triggers that error every timer when creating a new world.  I have logging enabled an re-created a new world.

Pls tell me if I got you correctly. The error only happens on first login into newly created world and next login doesn't trigger that.
If that so I made some refinements in the next version.

Unf its a persistent issue when moving around the map or re-joining the map...this seems to occur in Singleplayer consistently more so than Multiplayer on a Dedicated Server

Ok then I need a log file with Logging enabled in Seasons.

LogOutPut.log or is yours called something specific ?

LogOutput.log

[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
StringExtensionMethods.GetStableHashCode (System.String str) (at :0)
ExpandWorldData.LocationLoading+<>c.b__21_0 (ZoneSystem+ZoneLocation loc) (at <8ed994ad47c24e27948cf4f0d7810a12>:0)
System.Linq.Lookup2[TKey,TElement].Create[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func2[T,TResult] keySelector, System.Func2[T,TResult] elementSelector, System.Collections.Generic.IEqualityComparer1[T] comparer) (at <2a397996daff412691ae4781443e8e88>:0) System.Linq.Enumerable.ToLookup[TSource,TKey,TElement] (System.Collections.Generic.IEnumerable1[T] source, System.Func2[T,TResult] keySelector, System.Func2[T,TResult] elementSelector, System.Collections.Generic.IEqualityComparer1[T] comparer) (at <2a397996daff412691ae4781443e8e88>:0) System.Linq.Enumerable.ToLookup[TSource,TKey,TElement] (System.Collections.Generic.IEnumerable1[T] source, System.Func2[T,TResult] keySelector, System.Func2[T,TResult] elementSelector) (at <2a397996daff412691ae4781443e8e88>:0)
ExpandWorldData.Helper.ToDict[T,K,V] (System.Collections.Generic.IEnumerable1[T] items, System.Func2[T,TResult] key, System.Func`2[T,TResult] value) (at <8ed994ad47c24e27948cf4f0d7810a12>:0)
ExpandWorldData.LocationLoading.UpdateHashes () (at <8ed994ad47c24e27948cf4f0d7810a12>:0)
ExpandWorldData.LocationLoading.Load () (at <8ed994ad47c24e27948cf4f0d7810a12>:0)
ExpandWorldData.LocationLoading.Initialize () (at <8ed994ad47c24e27948cf4f0d7810a12>:0)
ExpandWorldData.InitializeContent.Postfix () (at <8ed994ad47c24e27948cf4f0d7810a12>:0)
(wrapper dynamic-method) ZoneSystem.DMDZoneSystem::Start(ZoneSystem)

That's the error from other mod preventing Seasons from initializing.

 Not affecting Seasons though.
I've added a bulletproof againt similar errors. But even without error popping the Seasons will not work at all if there are any errors in ZoneSystem.Start method from other mods.

After fixing the said error everything should be fine.


TLS NPN support

On my production system found that clients with TLS NPN can not connect to envoy. This patch fixes that, tested on my production system.

@PiotrSikora do you mind taking a look? :-)

I'll test this in a bit, but at the very least, it looks that the NPN support is added only on the downstream side and not the upstream. I'm not sure if we want to have this asymmetry.

You are absolutely right - I've only tested downstream part, since my infrastructure does not use TLS to upstreams. If you suggest some code point where it should be implemented for upstreams - I will try to fix it tomorrow.

After some investigation I think that process should be "mirrored" in ClientContextImpl. So in constructor callback should be installed through SSL_CTX_set_next_proto_select_cb() which will be very similar to alpnSelectCallback(). But one thing that I've still didn't found in OpenSSL documentation is - how to switch between ALPN and NPN on-the-fly(and ideally prefer ALPN?), since by RFCs negotiation variant is initiated by client in first ClientHello message.

@crazyproger @PiotrSikora no objection from me for supporting NPN (though it's been deprecated). But we should support both server and client. Also, you will need to add tests. Testing will be a little complicated insofar as without a config option, it will be difficult to differentiate NPN from ALPN. @PiotrSikora thoughts on what to do about tests?

@crazyproger for the client side, you need to install callback using SSL_CTX_set_next_proto_select_cb() in ClientContextImpl::ClientContextImpl(). In the callback, you can use SSL_select_next_proto() to find the first shared protocol.
As for the choice between ALPN & NPN - BoringSSL will ignore NPN if ALPN was also announced by the client, and client will reject connection if server incorrectly negotiated both, so we should be covered there.
@mattklein123 We can't really test it without #186 (soon...), not without adding knobs to the config, which we shouldn't do.

OK fair enough, I'm willing to let tests slide on this one once we add the client side code.

Going to close this for now. We can reopen when ready to finish it up.


fix: fix unique name validation (Issue #633)

Issue: https://github.com/epam/ai-dial-chat/issues/633
PR: https://github.com/epam/ai-dial-chat/pull/694

/deploy-review