Make more robust against slow cloud connection

I really like this integration but the connection doesn't look very reliable. Every minute the entities are unavailable. Do you have any idea what the cause could be?

@EenerNL I'm not sure without any detailed logs, but perhaps the Zaptec cloud API is slow to respond and the poll for new data times out and thus becomes unavailable? Are there any errors in the logs that can point us to why?

Log text:
Deze fout is ontstaan door een aangepaste integratie.

Logger: custom_components.zaptec
Source: helpers/update_coordinator.py:235
Integration: zaptec-dev (documentation)
First occurred: 11:08:07 (6 occurrences)
Last logged: 11:42:48

Timeout fetching<EMAIL_ADDRESS>data

Running latest version, updated this morning.

Thank you. I will look into it and see what can be done to make it more robust when cloud doesn't reply as fast.

@EenerNL I have released a new version, 0.0.6b230924, commit 6765670 that fixes the timeout issue. Please update and retest. I'm looking forward to hear if this fixes things for you.

Hi! Thanks for such a fast update!
I've updated to version 98ac23a.
I'll keep you updated 👍

@EenerNL  FYI. Zaptec is reporting performance issues in their API, and I think this is the root cause for the problems you have observed. See https://zaptec.statuspage.io/. "we continue to observe sporadic high levels of demand that can cause slow responsiveness. If you experience a timeout, please retry the operation."  However, the timeouts in the zaptec component were way too low, and this new version should be considerable more robust

@EenerNL have you had any chance to look at it?

Hi Sveinse,
The first days after update I still had the same error messages in the logs.
I just looked at the logs and found the following new log errors:
Deze fout is ontstaan door een aangepaste integratie.

Logger: custom_components.zaptec
Source: custom_components/zaptec/api.py:824
Integration: zaptec-dev (documentation)
First occurred: 17:37:00 (9 occurrences)
Last logged: 17:50:17

Request to https://api.zaptec.com/api/circuits/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed:
Request to https://api.zaptec.com/api/installation/xxxxxxxx-
xxxx-xxxx-xxxx-xxxxxxxxxxxx failed:
Request to https://api.zaptec.com/api/chargers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/state failed:
Request to https://api.zaptec.com/api/chargers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/settings failed:
Request to https://api.zaptec.com/api/chargers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed:
Traceback (most recent call last):
  File "/config/custom_components/zaptec/api.py", line 786, in _request
    async with call(full_url, headers=header) as resp:
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 1141, in __aenter__
    self._resp = await self._coro
                 ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 560, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 899, in start
    message, payload = await protocol.read()  # type: ignore[union-attr]
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/streams.py", line 616, in read
    await self._waiter
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/zaptec/api.py", line 777, in _request
    async with async_timeout.timeout(API_TIMEOUT):
  File "/usr/local/lib/python3.11/site-packages/async_timeout/__init__.py", line 141, in __aexit__
    self._do_exit(exc_type)
  File "/usr/local/lib/python3.11/site-packages/async_timeout/__init__.py", line 228, in _do_exit
    raise asyncio.TimeoutError
TimeoutError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/zaptec/__init__.py", line 164, in _async_update_data
    await v.state()
  File "/config/custom_components/zaptec/api.py", line 465, in state
    data = await self.circuit_info()
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zaptec/api.py", line 474, in circuit_info
    data = await self._account._request(f"circuits/{self.id}")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zaptec/api.py", line 824, in _request
    raise RequestTimeoutError(f"Request to {full_url} failed: {err}") from err
custom_components.zaptec.api.RequestTimeoutError: Request to https://api.zaptec.com/api/circuits/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed:

Deze fout is ontstaan door een aangepaste integratie.

Logger: custom_components.zaptec
Source: custom_components/zaptec/api.py:818
Integration: zaptec-dev (documentation)
First occurred: 17:44:15 (11 occurrences)
Last logged: 17:53:38

get request to https://api.zaptec.com/api/chargers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/state failed with status 500: <ClientResponse(https://api.zaptec.com/api/chargers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/state) [500 Internal Server Error]> <CIMultiDictProxy('Date': 'Thu, 28 Sep 2023 15:45:33 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Vary': 'Origin', 'Request-Context': 'appId=cid-v1: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'X-Rate-Limit-Limit': '30m', 'X-Rate-Limit-Remaining': '649', 'X-Rate-Limit-Reset': '2023-09-28T16:00:00.0000000Z', 'Strict-Transport-Security': 'max-age=15724800; includeSubDomains')>
get request to https://api.zaptec.com/api/installation/xxxxxxxx-
xxxx-xxxx-xxxx-xxxxxxxxxxxx failed with status 500: <ClientResponse(https://api.zaptec.com/api/installation/xxxxxxxx-
xxxx-xxxx-xxxx-xxxxxxxxxxxx) [500 Internal Server Error]> <CIMultiDictProxy('Date': 'Thu, 28 Sep 2023 15:45:39 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Vary': 'Origin', 'Request-Context': 'appId=cid-v1: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'X-Rate-Limit-Limit': '30m', 'X-Rate-Limit-Remaining': '29888', 'X-Rate-Limit-Reset': '2023-09-28T16:00:00.0000000Z', 'Strict-Transport-Security': 'max-age=15724800; includeSubDomains')>
get request to https://api.zaptec.com/api/chargerFirmware/installation/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed with status 500: <ClientResponse(https://api.zaptec.com/api/chargerFirmware/installation/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) [500 Internal Server Error]> <CIMultiDictProxy('Date': 'Thu, 28 Sep 2023 15:45:49 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Vary': 'Origin', 'Request-Context': 'appId=cid-v1: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'X-Rate-Limit-Limit': '30m', 'X-Rate-Limit-Remaining': '29911', 'X-Rate-Limit-Reset': '2023-09-28T16:00:00.0000000Z', 'Strict-Transport-Security': 'max-age=15724800; includeSubDomains')>
get request to https://api.zaptec.com/api/circuits/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed with status 500: <ClientResponse(https://api.zaptec.com/api/circuits/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) [500 Internal Server Error]> <CIMultiDictProxy('Date': 'Thu, 28 Sep 2023 15:48:13 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Vary': 'Origin', 'Request-Context': 'appId=cid-v1: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'X-Rate-Limit-Limit': '30m', 'X-Rate-Limit-Remaining': '29952', 'X-Rate-Limit-Reset': '2023-09-28T16:00:00.0000000Z', 'Strict-Transport-Security': 'max-age=15724800; includeSubDomains')>
get request to https://api.zaptec.com/api/circuits/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed with status 500: <ClientResponse(https://api.zaptec.com/api/circuits/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) [500 Internal Server Error]> <CIMultiDictProxy('Date': 'Thu, 28 Sep 2023 15:53:38 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Request-Context': 'appId=cid-v1: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'Strict-Transport-Security': 'max-age=15724800; includeSubDomains')>
Traceback (most recent call last):
  File "/config/custom_components/zaptec/__init__.py", line 164, in _async_update_data
    await v.state()
  File "/config/custom_components/zaptec/api.py", line 560, in state
    settings = await self._account._request(f"chargers/{self.id}/settings")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zaptec/api.py", line 818, in _request
    raise RequestError(
custom_components.zaptec.api.RequestError: get request to https://api.zaptec.com/api/chargers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/settings failed with status 500: <ClientResponse(https://api.zaptec.com/api/chargers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/settings) [500 Internal Server Error]>
<CIMultiDictProxy('Date': 'Thu, 28 Sep 2023 15:44:15 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Vary': 'Origin', 'Request-Context': 'appId=cid-v1: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'X-Rate-Limit-Limit': '30m', 'X-Rate-Limit-Remaining': '29848', 'X-Rate-Limit-Reset': '2023-09-28T16:00:00.0000000Z', 'Strict-Transport-Security': 'max-age=15724800; includeSubDomains')>

Deze fout is ontstaan door een aangepaste integratie.

Logger: custom_components.zaptec
Source: helpers/update_coordinator.py:233
Integration: zaptec-dev (documentation)
First occurred: 17:37:00 (13 occurrences)
Last logged: 17:53:38

Error fetching<EMAIL_ADDRESS>data: get request to https://api.zaptec.com/api/chargerFirmware/installation/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed with status 500: <ClientResponse(https://api.zaptec.com/api/chargerFirmware/installation/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) [500 Internal Server Error]> <CIMultiDictProxy('Date': 'Thu, 28 Sep 2023 15:45:49 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Vary': 'Origin', 'Request-Context': 'appId=cid-v1: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'X-Rate-Limit-Limit': '30m', 'X-Rate-Limit-Remaining': '29911', 'X-Rate-Limit-Reset': '2023-09-28T16:00:00.0000000Z', 'Strict-Transport-Security': 'max-age=15724800; includeSubDomains')>
Error fetching<EMAIL_ADDRESS>data: Request to https://api.zaptec.com/api/chargers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/settings failed:
Error fetching<EMAIL_ADDRESS>data: Request to https://api.zaptec.com/api/chargers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed:
Error fetching<EMAIL_ADDRESS>data: Request to https://api.zaptec.com/api/circuits/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed:
Error fetching<EMAIL_ADDRESS>data: get request to https://api.zaptec.com/api/circuits/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed with status 500: <ClientResponse(https://api.zaptec.com/api/circuits/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) [500 Internal Server Error]> <CIMultiDictProxy('Date': 'Thu, 28 Sep 2023 15:53:38 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Request-Context': 'appId=cid-v1: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'Strict-Transport-Security': 'max-age=15724800; includeSubDomains')>

@EenerNL There is a lot of issues on the Zaptec cloud side, so many requests take a very long time. But I've attempted once more to see if it helps to increase the timeouts. Please test the newest version 66fbcd1 and see if that helps anything. Thanks.

Hi,
Still the same thing happening.

Another thing, since the last few updates I'm experiencing another problem related to connection I think.
Previously the charger status changes very quickly from Disconnected to Waiting as soon as I connect the charging cable. Now I have to wait much longer. I'm using that status to trigger an automation for starting the charging process. Waiting is not very handy.

This is so strange. All I know is that Zaptec centrally has become very slow to respond. In the newest update I increased the timeout to 10 minutes (!), so if Zaptec portal doesn't respond by then, I'd say are lost. The Zaptec status page https://zaptec.statuspage.io/ is still saying that they have performance issues. They have the note "In the meantime, we continue to observe sporadic high levels of demand that can cause slow responsiveness. If you experience a timeout, please retry the operation."
Perhaps I need to rethink how requests are made? Have shorter timeout, but with a retry mechanism?

Previously the charger status changes very quickly from Disconnected to Waiting as soon as I connect the charging cable. Now I have to wait much longer. I'm using that status to trigger an automation for starting the charging process. Waiting is not very handy.

I've seen the same thing in my own installation. It is the cloud which is very slow to update the information for some unknown reason. I'll have to investigate if there is anything at all that can be done from the integration side.

@EenerNL I'm still working on improving the robustness of the integration. At the same time Zaptec status (https://zaptec.statuspage.io/) now reports that the have just completed a major infrastructure upgrade. Can you test if you are still experiencing any errors?

I will monitor it the coming days. Last timeout was two hours ago (11h16).
I experienced a positive change two hours ago when I connected the car. The charger status changed immediately to waiting this time. Maybe this is a sign the connection is getting better.

Hi Sveinse,
It looks like the connection is more stable now. The last time I had statuses "unavailable" was 9th of October at 11:50h. Do you experience the same?

@EenerNL things appear stable here too.
Ironically, the instability from the zaptec cloud helped me iron out a few weak points in the integration, which has become harder to test now. But... I'm not complaining. 😄

Fixed in 4f9d15a960ed9c1693e22bcaa02acbad7c6f09c0 of zapted-dev. Please retest. Without know more of what metrics to expect from the Zaptec cloud, I don't think there is much more than can be done.


Debug: sidebar item to export log

proof of concept: Add functionality to export Cody output logs using VS Code API
This PR introduces the ability to export Cody output as log file in the VS Code extension by utilizing the VS Code API. It provides a seamless log export experience that is compatible with all VS Code client types that supports the VS Code API.

Added a new command 'cody.debug.export.logs' to export Cody output logs in the VS Code extension.
Updated main.ts to include the import of 'exportOutputLog' function.
Registered the 'cody.debug.export.logs' command in the extension.
Added a new command 'cody.sidebar.logs' in SidebarCommands.ts to export logs from the sidebar.
Updated treeViewItems.ts to include an 'Export Logs' option in the sidebar tree view.

Follow-up
We should enable debugs by default.
Test plan

Click on the "Export logs" icon in the sidebar to export the text from output channel.
https://github.com/sourcegraph/cody/assets/68532117/9da8f379-0ead-4b26-8c9e-3ee5cdb533d2

Can we move it behind the “…” menu, out of the treeview? Thanks!

Can we move it behind the “…” menu, out of the treeview? Thanks!

for sure! What is ... menu though 😆

When you hover over “Settings & Support” there’s the “…” button, and it opens an OS popover menu. From memory the getting started guide is there (that’s actually probably a better candidate for the treeview). If we could have the export action appear that “…” popover, instead of the treeview, I think that would be best.

When you hover over “Settings & Support” there’s the “…” button, and it opens an OS popover menu. From memory the getting started guide is there (that’s actually probably a better candidate for the treeview). If we could have the export action appear in the “…” popover menu, instead of the treeview, I think that would be best.

Moved the item to the ... menu 🙂


Crate 4.2.x is not available for older Linux distros via apt

CrateDB version:
4.2.x
Environment description:
Ubuntu 18.04 LTS

Problem description:

No crate apt-packages > 4.1.8 are available for older Ubuntu versions
see also https://cdn.crate.io/downloads/deb/stable/pool/main/c/crate/
Steps to reproduce:

apt install crate

Thank you for the hint. We've rebuild the packages and they're now available for amd64


Shore buffers sticks + block blacklist

When I mount a ship all shore buffers (sticky or not) sticks to the ship.
Can it be set up that the allowed/ignored blocks can be confiured? Ideally not just by list, but also by ID ranges etc.

I don't plan on changing the config any time soon.


kibana/logs_dashboard.json

There is no kibana/logs_dashboard.ndjson  or kibana/logs_dashboard.json file

Restored it as kibana/logs_dashboard.json
Please let me know if it works.

Restored it as kibana/logs_dashboard.json
Please let me know if it works.

thank you,
[Logs] Saved search all - it works for me.
[Logs] Priority counts - I think it is based on priority field which is not defined on mapping

thank you,
[Logs] Saved search all - it works for me.
[Logs] Priority counts - I think it is based on priority field which is not defined on mapping

Is it something you can fix in a pull request? It will take me a while to bring the environment up myself.

Is it something you can fix in a pull request? It will take me a while to bring the environment up myself.


Add issue templates and a user support page

This will hopefully help directing our users to better user support
resources as well as give some relevant advice in issue templates.
https://help.github.com/articles/setting-up-your-project-for-healthy-contributions/

Cool, looks good. Is there a way to try these templates in action?

What I did was to create a personal 'toy' repository, where I played around a bit

The templates on your toy repository are different. Would you mind uploading the actual templates from here to your toy repository for playing around and testing?
Two more questions:

Your template consists of a comment only. Wouldn't it make sense to have a minimal markdown skeleton? (Anybody who doesn't like the skeleton can remove it easily using CTRL-A DELETE)

When I view the raw markdown file, I see the following table. Is this also the way it will look when the template is used?

https://github.com/openssl/openssl/blob/8d038e2a257b13166e0684cb9a85ca35011ffb3d/.github/ISSUE_TEMPLATE/bug_report.md

Ah, I understand: the values of that table are used for the chooser page.

Yes. Those are really yaml headers, and github renders them as tables.

How does it look to you now, @richsalz?

What about explicitly stating the obvious in each template reminding the user to clearly state which version of OpenSSL they are using (and how it was installed if it's not the system provided one)?

I think it's much more useful.  @romen is completely right about version!!!

Good idea, @romen.  I hope my adjustment is satisfactory

@mspncp is right that .github/ISSUE_TEMPLATE/custom.md wasn't necessary.  So I changed it to .github/ISSUE_TEMPLATE.md, after a bit of experimenting showed me that's the template used for "a regular isue".

It's already an improvement as it is. Let's just try it out in practice and see if it needs further improvement in the future.

Too late :wink:
@romen got me thinking...

So one last small adjustment.  Good enough?  If so, please reapprove

(It was already more than good enough!)

I'm a bit of a perfectionist :wink:

Merged.
713683393330b0fb74d0034ece16247915d1f3cb Add issue templates and a user support page


Fix vorbis seek_pos

Without this, seeking mostly only works if input is 0. Old library must have used milliseconds instead of seconds.


Update howto-deploy-iot-operations.md

Verify-host will be removed from AIO CLI. Let's remove the section.

@kgremban
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Release Jan 2023

Issues
Fixes #
Reviewer Suggestions
Where should the reviewer start?
Additional Comments
Anything else?

:tada: This PR is included in version 1.2.25 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


cargo release for releasing the coreutils

Instead of our custom script for tagging and publishing releases, I think we should use cargo release (or some other similar tool). However, I think there's a small problem with cargo release at the moment which is that it cannot work around the rate limits of crates.io. They only do a check that you're not going to hit the rate limit, but of course we will always hit the rate limit with ~100 crates.

There is a possible workaround for the rate limit, which is to set the PUBLISH_GRACE_SLEEP[1] environment variable to a high enough value to not trigger the limit. I think that allows us to use cargo release for publishing crates.
[1]: Documented at https://github.com/crate-ci/cargo-release/blob/master/docs/reference.md


Config gets stuck to default if config.cson has a syntax error

I somehow managed to get a syntax error in my config.cson (completely unable to reproduce what caused it now), which caused Atom to fail to parse it, and instead just used defaults.
Thinking I'd managed to delete some config somewhere went and set stuff back to how it was, but nothing was persisted and everything was reset on next restart. I'm guessing this is Atom refusing to overwrite the existing file, though I couldn't see any errors to that effect in the dev tools.
The behaviour of not completely clobbering an invalid config is good but maybe there could be a warning in the UI and/or the invalid config.cson be copied somewhere else so that subsequent changes can be persisted properly.

Notifications should have solved this.


CHEBI:58687 wrong InChi key

It appears the InChi key on CHEBI:58687 is wrong, and should be UNLBHPSIJQEMKR-UWJYYQICSA-L.

Same with the conj.acid CHEBI:38257


Fix missing article_id for UserCompleteSubmissionCOAR

 Provide the MS # in the subject of the mail of the template #UserCompleteSubmissionCOAR


Return value from "simulate"

According to its API documentation, the COE returns a json with the content {"status":"simulating", ...} when it receives a "simulate" command.
In my case the COE only replies when the simulation is done and then returns the status "Finished".
Please update the documentation (if possible please also add how one can get the COE to return the "simulating" message immediately, not waiting for the simulation to be finished).

I will update the documentation. You should be able to call the status command to get the current status of a simulation.

this is fixed in next COE release version 0.2.12


activate-build-cache-for-tuist 1.0.6

https://github.com/bitrise-steplib/bitrise-step-activate-tuist-cache/releases/1.0.6
What to do if the build fails?
At the moment contributors do not have access to the CI workflow triggered by StepLib PRs. In case of a failed build, we ask for your patience. Maintainers of Bitrise Steplib will sort it out for you or inform you if any further action is needed.
New Pull Request Checklist
Please mark the points which you did / accept.

[V] I will not move an already shared step version's tag to another commit
[V I read the Step Development Guideline
[V] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[V] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[V] I read and accept the Abandoned Step policy

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


Update CODEOWNERS

@SeanLeRoy is now a primary maintainer of aicsimageio

oops this requires a fork. closing.


file cleared after close spyder while not responding

Description
What steps will reproduce the problem?

I was debugging a python script when spyder became not responsive. When i closed the spyder application and restarted, file i was working on was empty.
This problem is sufficiently annoying to stop using spyder
Versions

Spyder version: 3.3.2
Python version: 3.6.6
Qt version: 5.9.6
PyQt5 version: 5.9.2
Operating System: Windows 7

Dependencies
pyflakes >=0.6.0  :  2.0.0 (OK)
pycodestyle >=2.3 :  2.4.0 (OK)
pygments >=2.0    :  2.2.0 (OK)
sphinx >=0.6.6    :  1.7.9 (OK)
rope >=0.9.4      :  0.11.0 (OK)
jedi >=0.9.0      :  0.12.1 (OK)
nbconvert >=4.0   :  5.4.0 (OK)
pandas >=0.13.1   :  0.23.4 (OK)
numpy >=1.7       :  1.15.1 (OK)
sympy >=0.7.3     :  1.2 (OK)
cython >=0.21     :  0.28.5 (OK)
qtconsole >=4.2.0 :  4.4.1 (OK)
IPython >=4.0     :  6.5.0 (OK)
matplotlib >=2.0.0:  2.2.3 (OK)
pylint >=0.25     :  2.1.1 (OK)

This problem is sufficiently annoying to stop using spyder

We understand and we're taking measures to fix this in our next major version (Spyder 4) by providing autosaving functionality and being more carefull when savinf files.
Sorry for the troubles this is causing you in our current version.


Combining different FluidConstants type in RealGasMoistAir is not possible

Reported by otter on 18 May 2013 14:55 UTC
Hubertus, please have a look on the following issue:
When instantiating FluidConstants from Interfaces.Types (instead from the PartialXXX media definitions) for RealGasMoistAir, the following situation takes place:
Modelica.Media.Air:
package RealGasMoistAir
  extends Modelica.Media.Interfaces.PartialRealCondensingGases(
  ...
  fluidConstants={Modelica.Media.Water.IAPWS95.waterConstants,
                  Modelica.Media.Air.ReferenceAir.airConstants},
  ...
end RealGasMoistAir;

The problem is now that

IAPWS95.waterConstants should be based on Media.Interfaces.Types.TwoPhase.FluidConstants (since two phase medium) and
ReferenceAir.airConstants should be based on Media.Interfaces.Types.IdealGas.FluidConstants

The two definitions are nearly identical, but the TwoPhase.FluidConstants has additional "triple point" definitions. It seems not possible to have instances of them and use them as elements in the same array fluidConstants, because they are then of different type.
I resolved this by instantiating ReferenceAir.airConstants from TwoPhase.FluidConstants. However, one then has to provide triple point data for ReferenceAir. I searched on the web, but did not find this data. Therefore, I included the triple point data from "N2" (and marked this in a comment to the triple point modifier).
Please can you evaluate and either tell whether this is o.k., or otherwise fix it.

Migrated-From: https://trac.modelica.org/Modelica/ticket/1109

Comment by hubertus on 18 May 2013 18:36 UTC
This may be the best solution given that air is treated as a pseudo-pure fluid. If it would be modeled as a mixture, the FluidConstants should be for N2, O2 and Argon and Water. The triple point is also there because it is a limit of validity (ice is formed), so the highest triple point data should be used. I think that is N2.

Modified by otter on 20 May 2013 07:34 UTC

Modified by otter on 20 Dec 2016 15:11 UTC


MINOR: Upgrade to Scala 2.12.13

this is follow-up of #9643
Scala 2.12.13 release page
https://github.com/scala/scala/releases/tag/v2.12.13
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

failed tests pass on my local. will trigger QA again

failed tests pass on my local. will trigger QA again

build pass

build pass


Add player option condensing to InterfaceStylesPlugin

Needs checkstyle and import settings from the wiki
https://github.com/runelite/runelite/wiki/Code-Conventions

Ready for re-review

Here it is but rewritten:
	private void condensePlayerOptions()
	{
		MenuEntry[] menuEntries = client.getMenuEntries();
		List<MenuEntry> menuEntryList = new ArrayList<>(menuEntries.length);
		MenuEntry parentMenu = null;
		Player prev = null;
		for (MenuEntry menuEntry : menuEntries)
		{
			MenuAction type = menuEntry.getType();

			Player player = menuEntry.getPlayer();
			if (player != null && type != MenuAction.ITEM_USE_ON_PLAYER && type != MenuAction.WIDGET_TARGET_ON_PLAYER)
			{
				if (prev != player)
				{
					parentMenu = client.createMenuEntry(0)
						.setIdentifier(menuEntry.getIdentifier())
						.setTarget(menuEntry.getTarget())
						.setType(MenuAction.RUNELITE_SUBMENU)
						.setParam0(menuEntry.getParam0())
						.setParam1(menuEntry.getParam1());
					menuEntryList.add(parentMenu);
				}

				menuEntry.setParent(parentMenu);
			}

			menuEntryList.add(menuEntry);
			prev = player;
		}

		client.setMenuEntries(menuEntryList.toArray(new MenuEntry[0]));
	}

Ready for re-review, but I haven't tested the last commit. Will test later


Add Generic Log functions with level via argument

I wanted to be able to use Log with a variable level, and it seemed like I should add Logf and Logln if I was going to add Log.

@lugray Do you only need Log() on Entry? I would think you'd want it on Logger?

In my case I did only need it on Entry, but you're right, it makes sense to make the change on Logger too, so I did that.
An example of why you'd want this, and where I use it:
const ignoreError logrus.Level = math.MaxInt32

func runAndLogGitCmd(ctx context.Context, cmd shell.Supervisor, defaultLevel logrus.Level, levelOverrides map[string]logrus.Level)
	stdout, stderr, err := cmd.RunAndGetOutput()
	if err == nil {
		return stdout, nil
	}

	gitErr := parseGitCmdError(string(stderr), err)

	level := defaultLevel
	if levelOverrides != nil {
		if l, ok := levelOverrides[gitErr.ID()]; ok {
			level = l
		}
	}

	if level == ignoreError {
		return
	}

	log(ctx, gitErr).WithFields(gitErr.LogFields()).Log(level, "error while running git command")
}

Some git errors in our app should be fully ignored, others should be downgraded to WarnLevel, most should be ErrorLevel, but some commands are generally allowed to fail and so called with a defaultLevel of WarnLevel.

@lugray Maybe add a TestLog() test case to logrus_test.go and then we'll be good to merge.

Added test - thanks for the review on this.


add watch page's loading.tsx

Current dependencies on/for this PR:

master

PR #17   👈

This stack of pull requests is managed by Graphite.


Fix GitHub actions deprecation warnings

Hmm - looks like setting up the native build matrix has some issues because none of the native jobs have been generated.


Add sample for the App Extensions API

The collection of samples does not contain any sample how to use the new App Extension API, that was shown here:
https://channel9.msdn.com/Events/Build/2016/B808
This keynot has related sample available here
https://github.com/Microsoft/Build2016-B808-AppExtensibilitySample
but it was not even updated to the Anniversary Update SDK version and needs some maintenance before it actually works.
It would be handy to have out-of-the-box working sample for the App Extension API here.

I've forwarded your feedback to the AppExtension team. thanks.


MM-13545 Removal of unused status flags in Schemes requests state object

Remove unused status flags from https://github.com/mattermost/mattermost-redux/blob/master/src/reducers/requests/schemes.js
Fixes https://github.com/mattermost/mattermost-server/issues/13029
PR's for reference:
Redux PR: mattermost/mattermost-redux#748
Mobile PR: mattermost/mattermost-mobile#2490
Web PR: mattermost/mattermost-mobile#2496

@nadalfederer everything looks good to me other than the one change request.

@sudheerDev thanks for the review. I fixed it. Off-topic: there is a getSchemeChannels in schemes.ts. I've not found its using in any other files/projects. Isn't it redundant?

This issue has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @hanzei

/update-branch

Error trying to update the PR.
Please do it manually.

@sudheerDev quick reminder to help with reviews after the holidays, thanks! :)

@sudheerDev thanks for the review. I fixed it. Off-topic: there is a getSchemeChannels in schemes.ts. I've not found its using in any other files/projects. Isn't it redundant?

Thanks ok. It is fine to leave. We don't need to remove actions which are not used with this PR.
@nadalfederer Hey, there are few conflicts. Can you resolve them so i can merge it?. Sorry about the delay, Somehow this was out of my review queue until jason requested again.

@sudheerDev hi, I resolved conflicts


Motion sensor not working on Tapo C225

Description
The motion detection sensor is not working on Tapo C225
Reproduction Steps

Trigger a motion event

Expected behavior
Motion sensor should be created and should work
If applicable, add error logs.
2023-03-30 05:32:46.776 ERROR (MainThread) [custom_components.tapo_control] Unexpected error fetching Tapo resource status data: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 <IP_ADDRESS>:2020\x00\x00Accept\x00 */*\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZeHTTP/1.1 500 Internal Server Error')
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 188, in _receive_event
event = self._h11_state.next_event()
File "/usr/local/lib/python3.10/site-packages/h11/_connection.py", line 487, in next_event
exc._reraise_as_remote_protocol_error()
File "/usr/local/lib/python3.10/site-packages/h11/_util.py", line 77, in _reraise_as_remote_protocol_error
raise self
File "/usr/local/lib/python3.10/site-packages/h11/_connection.py", line 469, in next_event
event = self._extract_next_receive_event()
File "/usr/local/lib/python3.10/site-packages/h11/_connection.py", line 411, in _extract_next_receive_event
event = self._reader(self._receive_buffer)
File "/usr/local/lib/python3.10/site-packages/h11/_readers.py", line 104, in maybe_read_from_SEND_RESPONSE_server
matches = validate(status_line_re, lines[0], "illegal status line: {!r}", lines[0])
File "/usr/local/lib/python3.10/site-packages/h11/_util.py", line 91, in validate
raise LocalProtocolError(msg)
h11._util.RemoteProtocolError: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 <IP_ADDRESS>:2020\x00\x00Accept\x00 */*\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZeHTTP/1.1 500 Internal Server Error')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
yield
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request
response = await connection.handle_async_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 90, in handle_async_request
return await self._connection.handle_async_request(request)
File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 112, in handle_async_request
raise exc
File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 91, in handle_async_request
) = await self._receive_response_headers(**kwargs)
File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 155, in _receive_response_headers
event = await self._receive_event(timeout=timeout)
File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 187, in _receive_event
with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}):
File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc)
httpcore.RemoteProtocolError: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 <IP_ADDRESS>:2020\x00\x00Accept\x00 */*\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZeHTTP/1.1 500 Internal Server Error')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 239, in _async_refresh
self.data = await self._async_update_data()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 195, in _async_update_data
return await self.update_method()
File "/config/custom_components/tapo_control/__init__.py", line 212, in async_update_data
await setupOnvif(hass, entry)
File "/config/custom_components/tapo_control/utils.py", line 505, in setupOnvif
hass.data[DOMAIN][entry.entry_id]["eventsSetup"] = await setupEvents(
File "/config/custom_components/tapo_control/utils.py", line 515, in setupEvents
if await events.async_start():
File "/usr/src/homeassistant/homeassistant/components/onvif/event.py", line 82, in async_start
if await self.device.create_pullpoint_subscription():
File "/usr/local/lib/python3.10/site-packages/onvif/client.py", line 311, in create_pullpoint_subscription
pullpoint = await events.CreatePullPointSubscription()
File "/usr/local/lib/python3.10/site-packages/zeep/proxy.py", line 64, in __call__
return await self._proxy._binding.send_async(
File "/usr/local/lib/python3.10/site-packages/zeep/wsdl/bindings/soap.py", line 156, in send_async
response = await client.transport.post_xml(
File "/usr/local/lib/python3.10/site-packages/zeep/transports.py", line 235, in post_xml
response = await self.post(address, message, headers)
File "/usr/local/lib/python3.10/site-packages/zeep/transports.py", line 220, in post
response = await self.client.post(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1848, in post
return await self.request(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1533, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1620, in send
response = await self._send_handling_auth(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1648, in _send_handling_auth
response = await self._send_handling_redirects(
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1685, in _send_handling_redirects
response = await self._send_single_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1722, in _send_single_request
response = await transport.handle_async_request(request)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.RemoteProtocolError: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 <IP_ADDRESS>:2020\x00\x00Accept\x00 */*\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZeHTTP/1.1 500 Internal Server Error')

Device Firmware
1.0.17 Build 230222 Rel.34031n
Using stream component
Yes
Does camera work via official integrations?
Yes
Camera has all attributes filled out in developer tools
Yes
HASS Environment
Docker
Search for similar issues
Yes
Additional information
Probably related to #294

Please try with the latest beta, it should be fixed.

The same error shows up on the latest beta (5.0.0.beta.7) and the motion detection sensor is still not created. I also completely removed the device/integration and readded it, but it didn't help.
Unexpected error fetching Tapo resource status data: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 <IP_ADDRESS>:2020\x00\x00Accept\x00 */*\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZeHTTP/1.1 500 Internal Server Error')
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
    yield
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 188, in _receive_event
    event = self._h11_state.next_event()
  File "/usr/local/lib/python3.10/site-packages/h11/_connection.py", line 487, in next_event
    exc._reraise_as_remote_protocol_error()
  File "/usr/local/lib/python3.10/site-packages/h11/_util.py", line 77, in _reraise_as_remote_protocol_error
    raise self
  File "/usr/local/lib/python3.10/site-packages/h11/_connection.py", line 469, in next_event
    event = self._extract_next_receive_event()
  File "/usr/local/lib/python3.10/site-packages/h11/_connection.py", line 411, in _extract_next_receive_event
    event = self._reader(self._receive_buffer)
  File "/usr/local/lib/python3.10/site-packages/h11/_readers.py", line 104, in maybe_read_from_SEND_RESPONSE_server
    matches = validate(status_line_re, lines[0], "illegal status line: {!r}", lines[0])
  File "/usr/local/lib/python3.10/site-packages/h11/_util.py", line 91, in validate
    raise LocalProtocolError(msg)
h11._util.RemoteProtocolError: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 <IP_ADDRESS>:2020\x00\x00Accept\x00 */*\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZeHTTP/1.1 500 Internal Server Error')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
    yield
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
    resp = await self._pool.handle_async_request(req)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request
    raise exc
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request
    response = await connection.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 90, in handle_async_request
    return await self._connection.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 112, in handle_async_request
    raise exc
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 91, in handle_async_request
    ) = await self._receive_response_headers(**kwargs)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 155, in _receive_response_headers
    event = await self._receive_event(timeout=timeout)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 187, in _receive_event
    with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}):
  File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc)
httpcore.RemoteProtocolError: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 <IP_ADDRESS>:2020\x00\x00Accept\x00 */*\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZeHTTP/1.1 500 Internal Server Error')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 239, in _async_refresh
    self.data = await self._async_update_data()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 195, in _async_update_data
    return await self.update_method()
  File "/config/custom_components/tapo_control/__init__.py", line 212, in async_update_data
    await setupOnvif(hass, entry)
  File "/config/custom_components/tapo_control/utils.py", line 505, in setupOnvif
    hass.data[DOMAIN][entry.entry_id]["eventsSetup"] = await setupEvents(
  File "/config/custom_components/tapo_control/utils.py", line 515, in setupEvents
    if await events.async_start():
  File "/usr/src/homeassistant/homeassistant/components/onvif/event.py", line 82, in async_start
    if await self.device.create_pullpoint_subscription():
  File "/usr/local/lib/python3.10/site-packages/onvif/client.py", line 350, in create_pullpoint_subscription
    pullpoint = await events.CreatePullPointSubscription()
  File "/usr/local/lib/python3.10/site-packages/zeep/proxy.py", line 64, in __call__
    return await self._proxy._binding.send_async(
  File "/usr/local/lib/python3.10/site-packages/zeep/wsdl/bindings/soap.py", line 156, in send_async
    response = await client.transport.post_xml(
  File "/usr/local/lib/python3.10/site-packages/zeep/transports.py", line 235, in post_xml
    response = await self.post(address, message, headers)
  File "/usr/local/lib/python3.10/site-packages/zeep/transports.py", line 220, in post
    response = await self.client.post(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1848, in post
    return await self.request(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1533, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1620, in send
    response = await self._send_handling_auth(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1648, in _send_handling_auth
    response = await self._send_handling_redirects(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1685, in _send_handling_redirects
    response = await self._send_single_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1722, in _send_single_request
    response = await transport.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request
    with map_httpcore_exceptions():
  File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.RemoteProtocolError: illegal status line: bytearray(b'POST /onvif/service\x00HTTP/1.1\x00\x00Host\x00 <IP_ADDRESS>:2020\x00\x00Accept\x00 */*\x00\x00Accept-Encoding\x00 gzip, deflate, br\x00\x00Connection\x00 keep-alive\x00\x00User-Agent\x00 ZeHTTP/1.1 500 Internal Server Error')

Thank you for verifying. That means the issue has not been fixed and should be reported in https://github.com/home-assistant/core/issues/85902 .

With this fix https://github.com/home-assistant/core/issues/85902#issuecomment-1490120209 the error from above is resolved, but the motion detection sensor is still not working.
The only errors I get are below. When a motion is detected, no new error is generated.
2023-03-30 15:38:24.628 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry <IP_ADDRESS> for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 383, in async_setup
result = await component.async_setup_entry(hass, self)
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 131, in async_setup_entry
return await component.async_setup_entry(entry)
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 166, in async_setup_entry
raise ValueError("Config entry has already been setup!")
ValueError: Config entry has already been setup!
2023-03-30 15:38:43.054 ERROR (MainThread) [custom_components.tapo_control] Unexpected error fetching Tapo resource status data: <pytapo.Tapo object at 0x7f2688aa8d60>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 239, in _async_refresh
self.data = await self._async_update_data()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 195, in _async_update_data
return await self.update_method()
File "/config/custom_components/tapo_control/__init__.py", line 291, in async_update_data
] = updateDataForAllControllers[tapoController]
KeyError: <pytapo.Tapo object at 0x7f2688aa8d60>


Document and test MSRV 1.38.0

Part of wg/#445.

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @reitermarkus (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

Okay, so the MSRV needs to be 1.38.0, solely because of the backtrace crate under Windows. Relevant issue: https://github.com/rust-lang/backtrace-rs/issues/276
Under Linux and macOS everything works down to Rust 1.32.0.

bors r+


Let us be able to change headers

I know adding more languages can be tricky, so Instead of that why not let us edit headers so we can actually create CV's in any language we want. Also for language level section in CV, adding CEFR Levels can be beneficial.

Thank you for raising your concerns!
While I understand your point, I don't think editing headers would be a good idea as one of the main points of CvFy is to make the process faster and smoother. Manually editing the headers is the opposite of that in my opinion. Also, adding more languages is not a major concern right now but I'll think of other ways of easing the translation process.
I'll also consider adding CEFR Levels and how it would work as not every country/language uses this standard.


You can drag grav anom with phys gun

Description

Phys gun (T3 experimental tech) can drag grav anom, anom blocks bullets and lasers, so, you have unbreakable shield that kills your enemies with radiation
Reproduction

Use phys gun on grav anom
Screenshots

Additional context

feature :trollface:

maybe feature since it's t3 but should only be able to drag very slowly

maybe feature since it's t3 but should only be able to drag very slowly

You can use blue phys gun (I forgot the name, maybe force gun?) and it eill always be inside you (Ai center of your sprite) no bullets or lasers will hit you ever.


Livy example DAG failing

livy_java_task is failing with below error.
`[2022-05-02, 09:43:01 UTC] {livy.py:151} INFO - Submitting job {"file": "/spark-examples.jar", "className": "org.apache.spark.examples.SparkPi", "numExecutors": 1, "conf": {"spark.shuffle.compress": "false"}} to
[2022-05-02, 09:43:01 UTC] {base.py:68} INFO - Using connection ID 'livy_default' for task execution.
[2022-05-02, 09:43:01 UTC] {http.py:129} INFO - Sending 'POST' to url: http://ec2-18-119-156-7.us-east-2.compute.amazonaws.com:8998/batches
[2022-05-02, 09:45:10 UTC] {http.py:187} WARNING - HTTPConnectionPool(host='ec2-18-119-156-7.us-east-2.compute.amazonaws.com', port=8998): Max retries exceeded with url: /batches (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4d1caf9940>: Failed to establish a new connection: [Errno 110] Connection timed out')) Tenacity will retry to execute the operation
[2022-05-02, 09:45:10 UTC] {taskinstance.py:1774} ERROR - Task failed with exception
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/urllib3/connection.py", line 174, in _new_conn
conn = connection.create_connection(
File "/usr/local/lib/python3.9/site-packages/urllib3/util/connection.py", line 95, in create_connection
raise err
File "/usr/local/lib/python3.9/site-packages/urllib3/util/connection.py", line 85, in create_connection
sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 398, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/usr/local/lib/python3.9/site-packages/urllib3/connection.py", line 239, in request
super(HTTPConnection, self).request(method, url, body=body, headers=headers)
File "/usr/local/lib/python3.9/http/client.py", line 1285, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/local/lib/python3.9/http/client.py", line 1331, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.9/http/client.py", line 1280, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.9/http/client.py", line 1040, in _send_output
self.send(msg)
File "/usr/local/lib/python3.9/http/client.py", line 980, in send
self.connect()
File "/usr/local/lib/python3.9/site-packages/urllib3/connection.py", line 205, in connect
conn = self._new_conn()
File "/usr/local/lib/python3.9/site-packages/urllib3/connection.py", line 186, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f4d1caf9940>: Failed to establish a new connection: [Errno 110] Connection timed out`

The issue is no longer observed. Closing this ticket. Can reopen for investigation if we observe it again.


pep8speaks is not picking configurations file

pep8speaks is not picking the configuration file ".pep8speaks.yml" automatically i have added this file in my PR but still it's showing error's. Even i have put this file in my master branch as well and created new PR but still it's not working.

The Pull Request where you saw this behavior is - https://github.com/ucsd-ets/edx-platform/pull/42
The comment on this PR by pep8speaks points to a repository/branch which does not exist anymore https://github.com/imhassantariq/edx-platform/, hence it can not pickup any configuration file. Some things changed after the PR was created and thus GitHub API is sending mixed up values.
I believe if you create any new Pull Request, things will be fine. :)


feat!: don't create azurerm_eventgrid_system_topic_event_subscription resources

Remove the complex type variable event_subscriptions and expect users to create event subscriptions outside of this module, similarly to how we expect users to create Automation schedules outside of the Automation module.
Should not be merged without some discussions 🙂

Tests pass 🎉


WIP -- Zulauf vulkan codegen dev with consumer dispatch from marky

for test and @MarkY-LunarG  sanity check

CI gfxreconstruct build queued with queue ID 325608.

CI gfxreconstruct build # 5565 running.

CI gfxreconstruct build # 5565 failed.

CI gfxreconstruct build queued with queue ID 326340.

CI gfxreconstruct build # 5572 failed.

Mooted


Added some more tests

Added a few more tests:

Error detection test: I edited a datagram in imu_datagram_error.txt to check the crc fails when it should.
Tests checking the entire files of imu_uart_data_2.txt and imu_uart_data_3.txt, which is about 9000 datagrams in total. Passed for all except the very last 16 in imu_uart_data_3.txt, which I don't think means anything. (I checked the datasheet and it didn't look like those last 16 were valid datagrams).

Looks great! The only thing is that we probably don't want to have a simple margin of error like you implemented: given that right now we know the packets we're using don't have issues with the crc (other than the corrupted ones), the whole point is that if any of them break in the future we want to catch it which a margin of error might let through. Instead I just removed the nonsense packets and made it a hard limit, but it's a pretty minor detail.


V5 Utilities: Add Border Style

Prerequisites

[X] I have searched for duplicate or closed feature requests
[X] I have read the contributing guidelines

Proposal
Can we add utility classes for Border Styles (Ex: border-solid, border-dashed, border-dotted)?
Motivation and context
Right now, we can only add a Solid border using the utilities. It would be nice to have classes for Border Style as well.

You can use the Sass utility API to add this. It only requires you to make your own Sass build.
We don't plan to add new utilities in the default build for now, AFAIK.


OOB Address fields like Address1:Line1, Address:City not coming while mapping the fields

Hi,
I am trying to use this feature on Lead entity. I have created custom field to add this control. While mapping the address fields like Street, City, country etc i do not see OOB Single Line fields like Address1:Line1, Address:City in dropdown fields.
Thanks,
bipin

Hello,
This is a bug of PCF and Microsoft aware of it. Here is the work around - https://www.magnetismsolutions.com/blog/jaredjohnson/2019/07/04/binding-to-address-fields-in-a-pcf-control
Andrew

Thank you !

Hey,
Even though i have mapped OOB fields using method explained by magnetismsolution to update formxml. Address is not getting populated successfully.

Please assist.


PSR2/ClassDeclaration: add tests and remove some redundant code

Description
PSR2/ClassDeclaration: add tests covering the CloseBraceSameLine error
Previously, there were no dedicated tests for the CloseBraceSameLine error.
PSR2/ClassDeclaration: remove some redundant code [1]
Issue squizlabs/PHP_CodeSniffer#2621 added the T_COMMA token to the $ignoreTokens (without adding a test) to prevent a false positive for a anonymous class declaration nested within a function call.
That fix was later superseded by another fix for basically the same issue via squizlabs/PHP_CodeSniffer#2678, which excluded anonymous classes completely from the CloseBraceSameLine check.
This commit adds the test case from squizlabs/PHP_CodeSniffer#2621 and removed the redundant T_COMMA token as the test now confirms it is no longer needed.
PSR2/ClassDeclaration: remove some redundant code [2]
In the original version of the sniff, only comments tokens after the close brace were ignored for the CloseBraceSameLine check.
Since then the sniff has received numerous changes improving on that code to prevent false positives.
Once such change was made in response to issue squizlabs/PHP_CodeSniffer#689, the fix adding ignoring for whitespace tokens to the code block.
This makes the $tokens[$nextContent]['content'] !== $phpcsFile->eolChar check redundant as that condition can now never be true anymore (as it could only match on T_WHITESPACE tokens and those are now ignored).
This change is covered by the tests previously added.
PSR2/ClassDeclaration: add test with close brace followed by PHP close tag
Related to #552
This adds a test to the sniff documenting that when a PHP close tag is on the same line as the OO close brace, the sniff will throw an error.
In my opinion, this is the correct and expected behaviour.
Suggested changelog entry
N/A

Rebased without changes, merging once the build has passed.


Using illegal character in function name throws internal error

 Issue by kbrandwijk
Friday Sep 01, 2017 at 18:38 GMT
Originally opened as https://github.com/graphcool/api-bugs/issues/251

What is the current behavior?
Create a new function with a ~ sign in the name. Saving it throws an internal error.
What is the expected behavior?
Validate function name.

This is covered by the recent introduction of function naming rules. Function names are validated against the following regex: ^[a-zA-Z0-9-_]{1,}$

Function names cannot be longer than 64 characters.


check if the bug with radar persists

https://github.com/macoscope/SwiftyStateMachine/commit/af2132d56686c1aad01c4dca8db7d87bac6e9d08

yup


Axiom is not formatting my logs properly

I have a nextjs project on vercel using axiom for logging.
On the logs tab in Vercel, my log is being properly formatted like so:
Starting endpoint {
  path: '/api/interviews/sendUserMessage',
  assistantId: 'asst_I5VvxwtWttxq7hg9GwxXPEPj',
  interviewId: 'clrcweurd00019mz85x8vrzaf',
  threadId: 'thread_nvLQOiEN1HHyEZijlHt5iYh2',
  userId: 'user_2ahEnXntrH6x792VvzOXnsPYQyY'
}

but if you look at the attached image you can see that each field in the JSON is being split up into its own individual log message.

I am calling the log.info like so:
export const logStartEndpoint = (
  log: Logger,
  args: { [key: string]: any } = {}
) => {
  const logger = log.with(args);
  logger.info(`Starting endpoint`);
  console.log(`Starting endpoint`, args);
};

Am I doing something wrong? i would ideally want each field to be a part of the properties that are logged with the top level message of Starting endpoint

how does the log record for logger.info() look like? the one you sent seems to be from the console.log()

Locally the logger.info seems to be firing correctly. It seems to not consistently send to Axiom. I checked my Axiom logs again and despite using the same logger.info across all of my API end points, it is only being sent from one endpoint and not from anywhere else.

+1
I'm also seeing this same behaviour of a log being split into individual log entries. I'm using Axiom as a Vercel integration with NextJS and logging within a server action (preview deployment).
Here's basically how I'm using it:
"use server";

import { Logger } from "next-axiom";

export async function action(data: z.infer<typeof Schema>) {
    const log = new Logger();
    ...
    log.error("an error occurred", data);
}

Versions:
"next": "^14.1.0",
"next-axiom": "^1.1.1",

@schehata Are there any updates here? I haven't changed anything on my project and it was working previously but now the logs are largely useless as I can't pull any information from them at all.

hi @YourAverageTechBro , unfortunately I am not able to reproduce, I check our apps that uses the same version. maybe if you can provide a repo that reproduces this I could be able to debug and find out whats going on.

I'm also experiencing this issue. This making investigations in logs very painful. Today, I had to download the logs and process them manually to concatenate messages by request ID. Not very practical when you need to fix a production issue.
I've run run some tests using only the Vercel integration with no additional change on my test Next app. I noticed that the log drain was working as expected (1 log entry per query) as long as the function logs are short enough. It started a log entry per line when the Vercel 4KB limit was reached.
Vercel logs for a function call:

Axiom creates a log entry per line:

Here is the code I used for this test:
// src/pages/api/logPost.ts
export default function handler(req, res) {
  console.log("Request body:", req.body)
  res.status(200).json({ status: "ok" })
}

Then I just call this endpoint with a long body:
curl --request GET \
  --url https://test-axiom.vercel.app/api/logPost \
  --header 'Content-Type: application/json' \
  --header 'User-Agent: insomnia/8.6.1' \
  --data '{
	"a": [
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit"
	],
	"b": [
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit"
	],
	"c": [
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit"
	],
	"d": [
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit"
	],
	"e": [
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit"
	],
	"f": [
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit",
		"this is some test data with long content in order to cross the 4KB Vercel logs limit"
	]
}'

Hi @testerez , thats insightful, I will use your test to reproduce and debug whats going on.

Was there any progress made here? I'm experiencing this as well.
Also, since Server Actions are just mini api routes, can withAxiomRouteHandler be used?
Regular Axiom logging doesn't seem to work from Server Actions (for me at least) when NEXT_PUBLIC_AXIOM_INGEST_ENDPOINT is set for that Vercel environment.
When I instantiate the logger, the config object shows the axiomUrl to be https://axiom-vitals.com/api/v1/send?configurationId=icfg_<xxxxyyyyy>&projectId=<uuid>&type=web-vitals -- this is coming from the Vercel integration with Axiom via the marketplace.
Is that correct? Once I removed that env var from the Preview environment, the config URL changed to the default Axiom ingest and the logs started showing up properly.
Here's what I have in one of my server actions and nothing ever appears via the Vercel log drain. If I use console.info or console.warn then the Vercel standard logs pick those up and they appear in Axiom.
I would guess that the web-vitals endpoint is not expecting to see log type messages and they're getting dropped. Is that the case?
"use server";

import { inngest } from "./client";
import { Logger } from "next-axiom";

// Sending events to Inngest should always be from a server action. The EVENT_KEY is typically not NEXT_PUBLIC.

export async function inngestSendEvent(event:any) {
    const log = new Logger();

    log.warn('[inngestSendEvent] starting');
    log.warn('[inngestSendEvent] called with:', event);

    let resp;

    try {
        resp = await inngest.send(event);
    } catch (e) {
        resp = e;
    }

    log.warn('[inngestSendEvent] finishing.');
    log.flush();

    return JSON.stringify(resp);
}

@schehata did you get a chance to test this. This issue may be a deal breaker at some point for us...

Our logs are now working properly again without making any changes at all (no code deploys or configuration changes — I literally went to bed and looked at it again in the morning and it was fixed)! I can see the logs started getting formatted correctly again at a seemingly arbitrary point in time. The last incorrectly formatted log happens to be a TypeError: fetch failed error… but I doubt that's significant.

This is still happening intermittently for us. Definitely seems more common immediately after a deploy.

Just want to pile on, having the same issues here. Printing an object results in each line of the object being a separate item in Axiom.  It is pretty much unusable.

We were able to reproduce and we are working on a fix. Just wanted to note that this is not related to next-axiom but related to Axiom Log Drain on Vercel integration. When the fix is released it will just work for you, you will not have to update anything. Will keep you posted.


Added Sequoia image sets (dark and light)

Good morning, this PR only adds Sequoia image sets with HDD and SSD icons, both internal and external.
In case it's useful, I attach a ZIP containing all the Sequoia PNGs.
Thanks to Chris1111 author of the original icons.
Great app!
Sequoia img.zip

wow thank you so so much!!! I was going to make these; I didn't know @chris1111 made some already!

looks good!

@0xCUB3
Yes! But take into account that the PR I uploaded has muy account in the automatically sign part, maybe it's a good idea set yours again.


More flexible add_node()

Currently, add_node() requires one to specify a tensor. Certain types of nodes are more efficient to manipulate based on their abstract properties than based on their component representation (e.g. copy tensors, Levi-Civita tensors).
We should generalize the API to allow one to add nodes into the network without explicitly computing those tensors. For example, we could re-define add_node() to take a Node instead of a Tensor and leave Node construction to the caller. This would allow us to do things such as:
tensor = np.array(...)
net.add_node(tn.Node(tensor))

net.add_node(tn.CopyNode(rank=2, dimension=3))

net.add_node(tn.LeviCivitaNode(rank=4))

Of course in practice most nodes are created from multidimensional arrays, so for convenience we could also offer a shortcut e.g. add_tensor() such that the following two code snippets are equivalent:
shortcut:
net.add_tensor(tensor)

long form:
net.add_node(tn.Node(tensor))

I weary of changing the add_node API, but I agree adding higher level APIs would be good for common tensors.
Can we do something like net.add_copy_tensor(rank=2, dimension=3)?

We're already doing it, see #64. Existing add_node() introduces strong coupling between TensorNetwork and Node which makes it hard to add new node types.
Also, I'm concerned with cluttering the API with add_*_node() methods in TensorNetwork for various node types that we may introduce and with code duplication in those methods.

I think net.add_node(tn.Node(tensor)) is too verbose. Can we make net.add_node()' parse its input so that net.add_node(tensor)' still works and is equivalent to net.add_node(tn.Node(tensor))?

Yeah I want gonna suggest that. It would be pretty easy to do as long as all nodes inherit Node

If you want to make the tensors of the node lazily evaluated, go ahead and make node.tensor a @property. I was actually planning on doing this already and deprecate get_tensor()


invalid key created by "findy-agent tools key create"

Describe the bug
The returned password of
findy-agent tools key create
is invalid (only 43 characters instead of 44).
This key is not accepted by e.g. findy-agent ledger steward create
To Reproduce
Steps to reproduce the behavior:

run 'findy-agent tools key create' multiple times (sometimes it takes quite long to produce a bad one)

Expected behavior
All passwords should contain 44 chars.
Wrong output
$ findy-agent tools key create
7b4xLTF2RrgDrSfRudhYJMprYSR2UrAZYH3Ks2dJsZNv <-- 44 characters
$ findy-agent tools key create
4oc2FfGv4bx3RqJ3cm3psb38iphhG368zpE2QjufKzao <-- 44 characters
$ findy-agent tools key create
YbNRqv46mwsX2joqTLfxAFhDR9Jq4JT5q7qRLFt4qmw  <-- 43 characters!

Thank you for the report!
I managed to reproduce the 43-character wallet key with and without the seed. We are using libindy to generate the key. The 43-length key is valid but rare, so our other commands that accept wallet keys should also take that key length.
I'll continue with this tomorrow and let you know how it goes 👍

Fixed on PR #276. Closing the issue.


[occm] Make manage-security-groups work with OVN

What this PR does / why we need it:
OVN keeps the source IP of the incoming traffic. This means that the SG
on the members of the LB (nodes) needs to have a rule opening traffic
not only from inside the cluster, but also elsewhere. This can
restricted by using the Service.Spec.LoadBalancerSourceRanges and this
commit also makes sure the setting is taken into account.
Which issue this PR fixes(if applicable):
fixes #
Special notes for reviewers:
Release note:

[openstack-cloud-controller-manager] Implemented support for `loadBalancerSourceRanges` for OVN Octavia Provider (with manage-security-groups enabled).

This is based on #2287, I'll rebase it once it merges.

/hold

Is this behaviour dependent on externalTrafficPolicy?

Is this behaviour dependent on externalTrafficPolicy?

Not really. Motivations for this PR:

OVN needs different SGs as it keeps original source IP of the traffic.
OVN does not implement support for allowed_cidrs property on the LB listeners. Instead we're supposed to set the SGs on the LB members to limit traffic. This commit makes sure we're using loadBalancerSourceRanges to set the correct CIDRs on these SG rules.

/hold cancel

Doesn't this give unprivileged cluster users the ability to open the firewall to arbitrary ports on worker nodes? This doesn't sound like a good idea.

Hm, good question… So this particular change does not really affect ports being open, the [LoadBalancer]manage-security-groups set to true does.
This change only makes sure OVN LBs will open what's required for them to work (unfortunately it's <IP_ADDRESS>/0 as we don't know source IP) and use LoadBalancerSourceRanges to limit that range if specified. This doesn't affect how SG rules are created in Amphora use case. And without this PR OVN LBs would only be accessible from inside the cluster when manage-security-groups is enabled.
Now in regards to ports - without manage-security-groups=true you need to open the whole NodePorts range (30000-32767 by default, just below ephemeral ports range) on the nodes anyway to make your LoadBalancer Services working. Example in OpenShift ^1.
The idea of manage-security-groups is to only open these ports selectively when a Service is created with such a NodePort. While user can request a certain NodePort number when creating a Service instead of letting K8s assign it at random, it still has to be from the NodePort range:
# services "test2" was not valid:
# * spec.ports[0].nodePort: Invalid value: 22: provided port is not in the valid range. The range of valid ports is 30000-32767

So to me both this patch and manage-security-groups=true doesn't make the situation worse, but better.

code good , but we are adding more and more features into the repo
I think we should think about enable such in the CI @dulek @mdbooth , e.g OVN or manage-security-groups=true ?

/approve

code good , but we are adding more and more features into the repo I think we should think about enable such in the CI @dulek @mdbooth , e.g OVN or manage-security-groups=true ?

Yeah, that makes perfect sense. I'll see what I can do to extend the testing.


DOCs: escape import needed to follow quickstart tutorial.

Expected Behavior
All tutorial steps should work
Actual Behavior
error in method not imported
return "User  %s" % escape(username)
NameError: name 'escape' is not defined

I think all the steps of the tutorial should be followed without errors, this helps the beginners. At Quickstart, Variable Rules generate an error because the escape method was not imported earlier in the tutorial. I could open a PR for that, but repeating the previous code doesn't make much sense to me, and I can't think of a way to not make it messy. So I'll open this issue before I sleep and forget it.
It may seem like a silly issue, but I always worry about documentation and how easy it should be for beginners to follow.

Is updating the tutorial to use fstring a viable solution?

Hello @LeonardoFurtado,

Is updating the tutorial to use fstring a viable solution?

I don't think so because flask still supports Python 2.7.

Hello @LeonardoFurtado,

Is updating the tutorial to use fstring a viable solution?

I don't think so because flask still supports Python 2.7.

it's true...

Not sure why this was closed. It seems to still be a problem with the documentation.

Not sure why this was closed. It seems to still be a problem with the documentation.

This is reflected in many points of the documentation, I do not know if correcting all these points can make the examples very large. I will open this again :).

Why not just move this import (escape) further up in the documentation?
I think it's already implicit that to run an example, you need to already have run what comes before it. For example, to run the one in https://flask.palletsprojects.com/en/1.1.x/quickstart/#rendering-templates, it's implicit that to run app = Flask(__name__) from the beginning of the tutorial.
But looking for missing imports in later sections of the documentation isn't obvious, and errors early on can be discouraging to beginners

But looking for missing imports in later sections of the documentation isn't obvious, and errors early on can be discouraging to beginners

Very good, that's exactly what I meant.


Fixed potential copy/paste error in namespace declaration handling

Closes #159

This refers to NamespaceDeclarations, but it leaves Type untouched. Would it be possible to turn Type.getTypeName() into FQNs where possible, i.e. where the namespace is known?

I would rather not do more just to fix this obvious error in this PR, tbh. Seems like @konradweiss is working on more namespace stuff anyway.


add build stats hash support

Description
https://github.com/vuejs/vue-cli/pull/6980
Vue-cli support angular like build stats output.
Maybe vite also need this.
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

If this is a feature you need, I'd suggest submitting a PR directly. But it doesn't seem like they are users requesting for this feature. Closing this for now.


Viewer Aborted

After running  ./build/bin/viewer --scene_dir scenes/tt_train. The viewer show up then crash.
register neural render info
register TnnInfo
Git ref: 9885967b3a0475f41dae230bb66777d70eae4955
=============== Saiga ===============
| Git Ref.                                        |
| Saiga Version           1.3.2                   |
| Tiny Eigen Version      1.0.0                   |
| Compiler                GNU                     |
|   -> Version            9.4.0                   |
| Build Type              RelWithDebInfo          |
| Debug                   0                       |
| Eigen Debug             1                       |
| ASAN                    0                       |
| Asserts                 1                       |
| Optimizations           0                       |
=====================================
Initializing GLFW.
Initializing GLFW sucessfull!
Creating GLFW Window. 1920x1080 Mode=3 Fullscreen=1 Borderless=0
=========================== OpenGL ===========================
| OpenGL Version    3.2.0 NVIDIA 520.61.05                   |
| GLSL Version      1.50 NVIDIA via Cg compiler              |
| Renderer          NVIDIA GeForce RTX 2080/PCIe/SSE2        |
| Vendor            NVIDIA Corporation                       |
==============================================================
[Renderer] Target resized to 1853x1025
loading shader /home/fisher/TRIPS/External/saiga/shader/tone_map.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/tone_map_linear.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/bloom_extract_bright.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/bloom_downsample.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/bloom_upsample.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/bloom_combine_simple.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/copy_image.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/compute_blur.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/compute_blur.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/lighting/light_directional.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/lighting/light_directional.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/lighting/light_point.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/lighting/light_point.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/lighting/light_spot.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/lighting/light_spot.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/lighting/light_point.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/lighting/light_spot.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/lighting/stenciltest.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/post_processing/post_processing.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/lighting/blitDepth.glsl
Deferred Renderer initialized. Render resolution: 1853x1025
loading shader /home/fisher/TRIPS/External/saiga/shader/post_processing/imagedisplay.glsl
Program Initialized!
Loading Scene scenes/tt_train
====================================
Scene Loaded
  Name       tt_train
  Path       /home/fisher/TRIPS/scenes/tt_train
  Image Size 1920x1080
  Aspect     1.77778
  K          1159.63 1166.22 960 540 0
  ocam       1920x1080 affine(1, 0, 0, 0, 0) cam2world() world2cam()
  ocam cut   1
  normalized center 0 0
  dist       -0.0634429 0.0416044 0 0 0 0 -0.000792661 -0.000517484
CAM model: CameraModel::PINHOLE_DISTORTION
  Points     11818812
  Colors     1
  Normals    1
  Avg. EV  -0.0733786
  Num Images 301
  Num Cameras 1
Compute scene importance bounding box as 95% of points interval around center of mass
Starting Compute center of mass...center of mass:0.0412492
-0.447931
-0.588073
 Done in 67.6069ms.
Starting Build range vec... Done in 27.7771ms.
Starting Sort range vec... Done in 650.623ms.
Starting Extend box... Done in 103.458ms.
Box: AABB: [-10.0236 -4.11362 -9.04051 ] [9.79707 1.72953 9.53138 ]
====================================
loading shader /home/fisher/TRIPS/External/saiga/shader/asset/ColoredAsset.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/asset/ColoredAsset.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/asset/ColoredAsset.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/asset/LineVertexColoredAsset.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/asset/LineVertexColoredAsset.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/asset/LineVertexColoredAsset.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/tone_map.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/tone_map_linear.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/bloom_extract_bright.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/bloom_downsample.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/bloom_upsample.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/bloom_combine_simple.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/copy_image.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/compute_blur.glsl
loading shader /home/fisher/TRIPS/External/saiga/shader/compute/compute_blur.glsl
Found experiment experiments/checkpoint_train/ with 1 epochs
experiments/checkpoint_train
experiments/checkpoint_train/ep0600
experiments/checkpoint_train/ep0600/test
loading checkpoint checkpoint_train () -> ep0600
Using half_float inference
Point gradients omitted.
Using MultiScaleUnet2d with gated downblock and gated upblock
Assertion 'num_input_channels.size() == filters.size()' failed!
  File: /home/fisher/TRIPS/External/saiga/src/saiga/vision/torch/PartialConvUnet2d.h:483
  Function: Saiga::MultiScaleUnet2dImpl::MultiScaleUnet2dImpl(Saiga::MultiScaleUnet2dParams)
Aborted (core dumped)

I have exactly the same issue.


Missing url or entity when trying to use multiple streams v3.3.0

When trying to use this format:
type: 'custom:webrtc-camera'
streams:
  - url: go2rtc_stream_hd
    name: HD     # name is optional
    mode: webrtc # mode is optional
  - url: go2rtc_stream_sd
    name: SD
    mode: mse

I receive "Missing url or entity" when configuring the card. The url does work and functions as expected using the single stream format, eg:
type: 'custom:webrtc-camera'
url: 'rtsp://rtsp:12345678@<IP_ADDRESS>:554/av_stream/ch0'

Perhaps there is something in my url that it no longer recognizes it as one (maybe equals signs?). Below is an example of one of my urls:
rtsp://admin:password@<IP_ADDRESS>:554/chID=8&streamType=sub&linkType=tcp
Thank you for any help or advice.

Probably you using outdated version

Not sure how to update it more? I updated to 3.3.0 via HACS and that's how I found out about this new feature.

Your web UI may be in browser cache

Your web UI may be in browser cache

Ah I think you are correct. I tried it now on the companion app and it seems to accept it. Not sure how to switch between them yet but will figure that out.
Thank you!

Your web UI may be in browser cache

Ah I think you are correct. I tried it now on the companion app and it seems to accept it. Not sure how to switch between them yet but will figure that out. Thank you!

Thanks, all worked after a cache clean. I see I had to add:
ui: true  # custom video controls, default false
for the buttons.


Publish to npm

Would love to have this on npm so I can npm install it. :-)

It would be great to be able to install with npm, under the condition that I've add support for browserify, which works really well with npm install in my opinion.
Gonna look into it in couple of days. Thanks for the advice!

Published!!! After finishing #39


Update dev dependencies

Codecov Report

Merging #462 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #462   +/-   ##
=======================================
  Coverage   20.59%   20.59%
=======================================
  Files         161      161
  Lines        1248     1248
=======================================
  Hits          257      257
  Misses        991      991

Continue to review full report at Codecov.

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

Would you guys be up for automating these kind of dependency updates? I built Dependabot to do that while I was at my last company - might save you a bit of time? I've heard Greenkeeper is good, too.


README: link to demo page over HTTPS

Thank you.

Maybe also add the link here:

OK. I added demo page link on project top.


is multi-worker supported when deploy with gunicorn ?

deploy use below:
gunicorn -k flask_sockets.worker -w 4 hello:app

@hustcc Yes.
Personally I use it like this: Procfile. Works fine.
Does this answer your question?

Year, sure.


Add support for octet string point type

Would be worthwhile adding support for octet strings (opendnp3::OctetString).
See IEEE 1815 - section 11.9.7

Added as much support as opendnp3 allows. See 1.8.0 for FileTransferPort which utilises OctetString


Add volume management

DONE

add volume management in local player, chromecast and airplay
controlled by shortcuts (CtrlOrCmd+Up, CtrlOrCmd+Down)

TODO

test chromecast and airplay
airplay: could not find a way to get volume in poll cast status, it writes state value in setter by now
UI control and status (maybe a HUD like in VLC)

Cleanup from PR #185

Nice!


Support package_info_plus 2.0.0

Platform:

[ ]  Dart
[x]  Flutter Android or iOS
[ ]  Flutter Web

IDE:

[ ]  VSCode
[x]  IntelliJ/AS
[ ]  XCode
[ ]  Other, which one?

split-debug-info and obfuscate (Flutter Android or iOS) or CanvasKit (Flutter Web):

[ ]  Enabled
[x]  Disabled

Platform installed with:

[x] pub.dev
[ ] GitHub

Output of the command flutter doctor -v below:
[✓] Flutter (Channel stable, 3.3.4, on macOS 12.6 21G115 darwin-arm, locale en-US)
• Flutter version 3.3.4 on channel stable at /Users/USER_NAME/fvm/versions/3.3.1
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision eb6d86ee27 (7 days ago), 2022-10-04 22:31:45 -0700
• Engine revision c08d7d5efc
• Dart version 2.18.2
• DevTools version 2.15.0
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
• Android SDK at /Users/khoa/Library/Android/sdk
• Platform android-33, build-tools 31.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14A400
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
[✓] VS Code (version 1.71.0)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.48.0
[✓] Connected device (3 available)
• iPhone SE (3rd generation) (mobile) • DEVICE_ID • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-0 (simulator)
• macOS (desktop)                     • macos                                • darwin-arm64   • macOS 12.6 21G115 darwin-arm
• Chrome (web)                        • chrome                               • web-javascript • Google Chrome 106.0.5249.103
[✓] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!
The version of the SDK (See pubspec.lock):
6.9.1
I have the following issue:
The description goes here ...
Steps to reproduce:

Step: Paste sentry_flutter: ^6.12.1 into pubspec.yaml

Actual result:

Actual: ERR : Because sentry_flutter >=5.0.0 depends on package_info_plus ^1.0.0 and APP_NAME depends on package_info_plus ^2.0.0, sentry_flutter >=5.0.0 is forbidden.

Expected result:

Result: FINE: Resolving dependencies finished

https://github.com/getsentry/sentry-dart/pull/1068


how to build

which development environment can be used to build the executables. i tried kali but they throw errors when building with following commandline
make -f Makefile
before that i install mingw using
apt-get install mingw-w64 -y
but make commands throws errors array out of bound

If you are talking about these errors:
In function ‘__readgsqword’,     inlined from ‘NtCurrentTeb’ at /usr/x86_64-w64-mingw32/include/winnt.h:9094:73,     inlined from ‘BofMain’ at client/bfmain.c:48:39: /usr/x86_64-w64-mingw32/include/psdk_inc/intrin-impl.h:838:1: error: array subscript 0 is outside array bounds of ‘long long unsigned int[0]’ [-Werror=array-bounds]   838 | __buildreadseg(__readgsqword, unsigned __int64, "gs", "q")
There seems to be a bug in mingw gcc version 12, downgrading to mingw gcc 11 fixed that for me.

You can try adding -Wno-array-bounds to the compiler flags as well, but no idea if that causes any instability. YMMV.
Looks like it will be needed in 2 places in the Makefile:
SCFLAGS     := $(SCFLAGS) -falign-labels=1 -fPIC -fno-exceptions -Wall -Werror -Wno-array-bounds
BFFLAGS     := $(BFFLAGS) -Os -s -Qn -nostdlib -Werror -Wall -Wno-array-bounds

I'm using MinGW 9.3 on Windows. You also need NASM, Python3, and the pefile Pip package.

If you are talking about these errors: In function ‘__readgsqword’, inlined from ‘NtCurrentTeb’ at /usr/x86_64-w64-mingw32/include/winnt.h:9094:73, inlined from ‘BofMain’ at client/bfmain.c:48:39: /usr/x86_64-w64-mingw32/include/psdk_inc/intrin-impl.h:838:1: error: array subscript 0 is outside array bounds of ‘long long unsigned int[0]’ [-Werror=array-bounds] 838 | __buildreadseg(__readgsqword, unsigned __int64, "gs", "q")
There seems to be a bug in mingw gcc version 12, downgrading to mingw gcc 11 fixed that for me.

could you help how can i install mingw 11 version on kali.
can't seem to find any help about downgrading mingw 12 or install mingw 11


100% CPU on the infinite scroll example

I love the design idea behind intercooler. However, in trying out the examples I found that Chrome Helper process on my macbook was 100% CPU - and the culprit was http://intercoolerjs.org/examples/infinitescroll.html
FWIW I had scrolled a couple of times and then switched to code view before going to get a coffee.

Hmm, I just profiled using the chrome profiler and the javascript is barely even noticed even while scrolling down substantially.  Can you use Chrome's profile to figure out what is spinning and/or send a copy?

The mockjax call is happening repeatedly when you're scrolled even part way down the docs on the example. Even if you scroll back to the top, the calls continue going out.
I had a quick look, but I don't see any way to temporarily disable the scrolled-into-view event.
A similar but different bug/feature I noticed on docs.html#polling section - if I leave my browser window open (as people do!) I managed to get up to This span has polled 7984 times....

Yep the polling just always goes unless you turn it on or off (which you can).  :-)
So it is the testing framework causing it?  I'm not experiencing the repeated calling.  I could potentially see it happen if the tab was backgrounded for a while considering how it works, but not just be scrolling.  Interesting...

Just to be sure we're talking about the same thing here.. This is a problem I noticed on your code examples in the docs :)

Open up chrome dev tools console
Go to http://intercoolerjs.org/examples/infinitescroll.html
Don't scroll
Click "Source Code"
Scroll down just a tiny amount (maybe 2 mouse wheels)
See mockjax calls in the console
Watch them fun forever!

So how do you go about disabling an ic- attrib? For instance switch an ic-poll attrib off and on again?

It can be enabled/disabled via the `ic-pause-polling attribute, from the manual:

The second is the ic-pause-polling attribute, can be set to true to tell an element not to poll.

:-)

And I see what you mean now, it is not spamming mockjax, but rather running once a second at the polling rate.  I think that would be expected although you could easily have it add/remove the ic-pause-polling attribute when out of view with a little javascript too.  :-)
Might make for a good built in option though, PR?  :-)

I'm not sure I follow what feature you're suggesting.
This report isn't so much a bug, but poor design in your infinite scroll example that made it appear as though intercooler was overloading my machine! 💥 💻  Which kind of put my off on my first look at the lib.
If I find some time, I'll fix your example for you, but I'll be busy adding intercooler to my site first ;)
Thanks for the great lib

Not my lib or my example page, just a user of intercooler.  ^.^

I'm going to reopen this, because I should fix the example.  I've seen it happen before.  It's something funky when you have infinite scroll going and you switch to where the element is hidden.  That's a valid (if rare) bug, IMO.

I think the problem is that isScrolledIntoView() is being called and is returning false because the table is hidden.  Kind of a corner case, but I should fix it.

Possibly same as #144 ?

Yep, it is.  Will merge that fix soon.  :)

fix merged into development


Removing servo class in favor of motor.servo

Addressing https://github.com/adafruit/Adafruit_CircuitPython_SimpleIO/issues/33

Updated  Combo Dial Safe with Circuit Playground Express and CircuitPython-Essentials, Servo PAge to reference Adafruit_Motor. Ready for review/merge.