Can't read files containing emoji after interacting with pydavinci & while DaVinci Resolve is open

Hi Pedro & @in03,
Bit of a weird one I've come across. Hoping you can help me to identify if this is something in my environment, or an actual bug, and where it might be located.
Describe the bug
With a pydavinci Resolve object established and DaVinci Resolve open, reading files via open() or YAML will be done using ASCII decoder. Instead of UTF8 decoder.
Therefore if there is Emojis in the file, UnicodeDecodeError is thrown.
This occurs only when Resolve is open - and therefore the Resolve API is accessible. When Resolve is not open, the file is read correctly as UTF8.
To Reproduce
Steps to reproduce the behavior:
Python 3.6:

Use a Python environment with python 3.6.15, pydavinci 0.2.3 and pyyaml 6.0.1
Check out https://github.com/seb26/pydavinci_unicode_issue and run test.py
Have DaVinci Resolve 18.6 open

% pyenv which python
/Users/data/.pyenv/versions/3.6.15/bin/python
% python test.py
Begin: ✅ Emoji on stdout
---
Try to load simple file as string
    data.txt: ✅✅✅ data !! ✅✅✅
---
Try to load YAML file with emojis
{'normal_string': 'text here', 'string_with_emojis': '✅✅✅'}
---
Try to import pydavinci
Imported pydavinci.
✅ Emoji after pydavinci import
---
Try to create a Resolve object/contact API
Resolve (0x0x11a90f718) [App: 'Resolve' on <IP_ADDRESS>, UUID: 5bb9cd9e-6912-4337-ab06-280f3effba0f]
✅ Emoji after printing Resolve obj
---
Try to load simple file as string again
Traceback (most recent call last):
  File "test.py", line 31, in <module>
    print('data.txt:', stream.read())
  File "/Users/data/.pyenv/versions/3.6.15/lib/python3.6/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)

The result with implementation specific option: -X utf8:
Same UnicodeDecodeError.
Python 3.10:
With an environment of Python 3.10, pydavinci@resolve18 0.3.1, and pyyaml 6.0.1.
Also have DaVinci Resolve open.
% pyenv which python
/Users/data/.pyenv/versions/3.10.10/bin/python
% python test.py
...
Try to load simple file as string again
Traceback (most recent call last):
  File "test.py", line 31, in <module>
    print('data.txt:', stream.read())
  File "/Users/data/.pyenv/versions/3.6.15/lib/python3.6/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)

The result with -X utf8:
% python -X utf8 test.py
...
Try to load simple file as string again
data.txt: ✅✅✅ data !! ✅✅✅
✅ Emoji after reading back a file
---
Try to load emojis again...
{'normal_string': 'text here', 'string_with_emojis': '✅✅✅'}
✅ Emoji after safe loading yaml file
---

Expected behavior
Be able to read a UTF-8 file containing emojis and other characters - both via builtin open() and YAML.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Intel-based MacBook Pro 16" - macOS Monterey 12.6.5
Python Version - 3.6 and 3.10 as above. Using Pyenv.
Davinci Resolve Version - 18.6.4 Build 6

Also reproduced on a Mac Mini (M1, 2020) with macOS Sonoma 14.2, Resolve 18.6.4 and a similar pyenv environment.
Additional context
I am writing an app to watch Resolve render job events and send notifications. Notification text is stored in an external user config file in YAML format. Ideally I am able to read text from this file that contains emojis, and use it within the app/send notifs.

I think I can conclude that this is not specifically caused by pydavinci.
Using test_defaultResolveAPI.py in Python 3.11 and Python 3.6.8 (the latest available Python macOS x86_64 binary for 3.6 on python.org). I read text from the emoji file in Step 1 and then imported the Resolve API directly from the fusionscript.so path.
% python test_defaultResolveAPI.py
/Volumes/seb/my/path/to/pydavinci_unicode_issue/test_defaultResolveAPI.py:1: DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses
  import imp
Python version: 3.10.10 (main, Jan 18 2024, 07:10:51) [Clang 14.0.0 (clang-14<IP_ADDRESS>)]
Sys path: ['/Volumes/seb/my/path/to/pydavinci_unicode_issue', '/Users/data/.pyenv/versions/3.10.10/lib/python310.zip', '/Users/data/.pyenv/versions/3.10.10/lib/python3.10', '/Users/data/.pyenv/versions/3.10.10/lib/python3.10/lib-dynload', '/Users/data/.pyenv/versions/3.10.10/lib/python3.10/site-packages']

1. Try to load simple file as string
    data.txt: ✅✅✅ data !! ✅✅✅
---
Import fusionscript.so
Done.
2. Try to load simple file as string AGAIN
    data.txt: ✅✅✅ data !! ✅✅✅
---
Establish a Resolve() object.
Done.
3. Try to load simple file as string AGAIN
Traceback (most recent call last):
  File "/Volumes/seb/my/path/to/pydavinci_unicode_issue/test_defaultResolveAPI.py", line 28, in <module>
    print('    data.txt:', stream.read())
  File "/Users/data/.pyenv/versions/3.10.10/lib/python3.10/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)

This result above was the same for 3.10 and 3.6.8.
Now, to test for a result inside DaVinci Resolve console. This is using the 3.6.8 as mentioned before, and printing the sys version inside the Console to affirm that.
Python version: 3.6.8 (v3.6.8:3c6b436a57, Dec 24 2018, 02:04:31)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
Sys path: ['/Applications/DaVinci Resolve/DaVinci Resolve.app/Contents/MacOS', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages']
1. Try to load simple file as string
    data.txt: ✅✅✅ data !! ✅✅✅
---
Import fusionscript.so
Done.
2. Try to load simple file as string AGAIN
    data.txt: ✅✅✅ data !! ✅✅✅
---
Establish a Resolve() object.
Done.
3. Try to load simple file as string AGAIN
Traceback (most recent call last):
  File "<nofile>", line 28, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)

You could perhaps to close this issue if it is not pydavinci related.
However I would definitely appreciate some eyes on it to see if I can come to a kind of resolution.

I managed to find a solution, sorry seems I came to write an issue too quickly.
I will just read my file with encoding='utf-8' param for open() and then give Yamale (ultimately the lib I am using to do yaml parsing) the string result via make_data(content=).
The outcome is that I can have emojis/UTF8 characters and still use Resolve API library simultaneously. End of a troublesome few hours.
actions_raw_text = open(actions_filepath, 'r', encoding='utf-8').read()
actions_raw = yamale.make_data(content=actions_raw_text)

Glad you figured it out. Thanks for posting your solution for others.

Thanks. Honestly I still don't understand the reason why importing a library or launching a separate program on macOS would change the way Python reads a file, during a run. I had not had such strong Unicode problems since python 2 days.


Add lookup_table schema

Should this schema be versioned 1.0.0 or 1.1 or something else? @embray Do you know?

Hmm, good question.  I'll have to look over my notes on that.  I think last we discussed this we decided for now that schemas making up the core schemas should be in lock step with the format version.  But we're not really updating the format by adding this schema, I don't think.  So for now I think it can be "1.0.0" and we'll revisit that question later.

Superseded by #122


Clipping (WIP)

Depends on:

#1

Todo

[ ] Merge #1
[x] Basic implementation
[ ] Tests
[ ] Discuss next steps

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: frank-weindel:x: jfboeveYou have signed the CLA already but the status is still pending? Let us recheck it.

Replaced by #16


Support for truncating the log file

I've added support for log file configuration to truncate the log file on creating of the log (thereby giving a fresh log file each time the running application is started).  The changes are straightfoward and testing locally with my project seem to work great.

Please change develop branch and push it to develop

This has been done.


Number 0 is rendered as blank for 'html' column type

While binding data to the table, number 0 is not rendered on the table for <px-data-table-column  type="html">  It's displayed as a blank space. As a temporary work around, I had to bind the number as a string, with which sorting became an issue. I wanted the column to be html type specifically. Please fix it.

Fixed in v2.1.4


Add OpenUniverse2024 Firefly notebook and update other firefly notebooks

Adds OpenUniverse notebook
Updates in other 2 firefly notebooks

Homogenize how to instantiate firefly-client
API update in SEDs notebook
More descriptive headings in NEOWISE notebook

Adds FIREFLY_URL to env (just in case) as fallback

Ahh, I'm not sure how we should proceed with testing this notebook. We didn't have any issues with the previous firefly ones, but this one throws an error complaining about being outside of jupyter:
RuntimeError: FireflyClient.makeLabClient can only be used in the Jupyterlab environment. fix jupyter_firefly_extensions in Jupyter Lab or use FireflyClient.make_client()

I would say, let's add it to the rendering list, maybe jupyter-book will be enough for it to be picked up and it's only picky about pytest

Ahh, I'm not sure how we should proceed with testing this notebook. We didn't have any issues with the previous firefly ones, but this one throws an error complaining about being outside of jupyter:
RuntimeError: FireflyClient.makeLabClient can only be used in the Jupyterlab environment. fix jupyter_firefly_extensions in Jupyter Lab or use FireflyClient.make_client()

@bsipocz the other notebooks use make_client() for this very reason. I can revert it to that, but I was wondering if it's using latest notebook 7 (as opposed to notebook classic), the extension should work. I can't track the version number of notebook, is it not 7?

Oh and installing the extension in enviroment should already install jupyter lab: https://github.com/Caltech-IPAC/jupyter_firefly_extensions/blob/master/pyproject.toml#L2-L5
So, is the testing pipeline not running the notebooks in notebook/lab context, but as a python script?

So, is the testing pipeline not running the notebooks in notebook/lab context, but as a python script?

Yes, the tests are running them as python code using pytest. We use something different for the HTML builds (and execution), so my hope is that will just work out of the box here.

Unfortunately, I see the error with the rendering, too, so it doesn't like either of our machinery.

I'm working on the binder integration parallel with this PR, and needed to reshuffle the config files: please rebase so you can add the changes to the requirements file at the correct location.

Thank you @jaladh-singhal!

@bsipocz Thank you for review and merging it on such a short notice. I'll open up a follow up PR for these text fixes. And once you're back let me know if you have any request for code changes, I'll add them to that PR too (hopefully in the week before AAS)


eks-managed-node-group requires cluster_service_cidr when use_custom_launch_template = false

Description
eks-managed-node-group module still requires the variable cluster_service_cidr when use_custom_launch_template = false is specified, because of the underlying lifecycle precondition check in user_data: https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/modules/_user_data/main.tf#L5-L14
This is, sadly, a limitation of Terraform in that anytime the module is defined, all checks must pass.

[X] ✋ I have searched the open/closed issues and my issue is not listed.

Versions

Module version [Required]: 20.10.0

Terraform version:

OpenTofu v1.7.1
on darwin_arm64
+ provider registry.opentofu.org/hashicorp/aws v5.48.0
+ provider registry.opentofu.org/hashicorp/cloudinit v2.3.4
+ provider registry.opentofu.org/hashicorp/null v3.2.2

Provider version(s):

OpenTofu v1.7.1
on darwin_arm64
+ provider registry.opentofu.org/hashicorp/aws v5.48.0
+ provider registry.opentofu.org/hashicorp/cloudinit v2.3.4
+ provider registry.opentofu.org/hashicorp/null v3.2.2

Reproduction Code [Required]

module "eks_managed_node_group" {
  source = "terraform-aws-modules/eks/aws//modules/eks-managed-node-group"

  name            = "separate-eks-mng"
  cluster_name    = "my-cluster"
  cluster_version = "1.27"

  subnet_ids = ["subnet-abcde012", "subnet-bcde012a", "subnet-fghi345a"]

  // Note: `disk_size`, and `remote_access` can only be set when using the EKS managed node group default launch template
  // This module defaults to providing a custom launch template to allow for custom security groups, tag propagation, etc.
  use_custom_launch_template = false
  disk_size                  = 100

  min_size     = 1
  max_size     = 10
  desired_size = 1

  instance_types = ["t3.large"]

  tags = {
    Environment = "dev"
    Terraform   = "true"
  }
}

Steps to reproduce the behavior:

apply above code

Expected behavior

user_data checks are unnecessary when use_custom_launch_template = false
Actual behavior

Must still define cluster_service_cidr
Terminal Output Screenshot(s)

│ Error: Resource precondition failed
│
│   on ../_user_data/main.tf line 10, in resource "null_resource" "validate_cluster_service_cidr":
│   10:       condition     = var.create ? length(local.cluster_service_cidr) > 6 : true
│     ├────────────────
│     │ local.cluster_service_cidr is ""
│     │ var.create is true
│
│ `cluster_service_cidr` is required when `create = true`.

Additional context

Postential fix:
module "user_data" {
  source = "../_user_data"

  create   = var.create && var.create_launch_template && var.use_custom_launch_template
...
}


Update 4-developer-guidelines.md

Fixed rate limit for ASYNC WorkFlows
Question: Should we link (deep links) into the manual pages that explain the details?

Done.

Merged - thank you :)


WIP: Updating 1.6 docs for console 1.1

PLEASE DO NOT MERGE UNTIL MANAGEMENT CONSOLE 1.1 GA

We are releasing Management Console 1.1 after Enterprise PKS 1.6. Closing this PR to avoid the possibility of it accidentally merging and publishing with the 1.6 content.
Will migrate these changes to the 1.6.x-patch-releases branch.


Replace deep/shallow C stack with an explicit user-provided stack check macro

Currently Duktape tries to prevent too deep C recursion by keeping track of recursion depth in code paths where arbitrary recursion might occur. A depth limit is imposed for each case, with a RangeError thrown if a recursion limit is hit. There are two sets of recursion limits: deep limits for unix-like platforms and shallow limits tuned roughly for a target with ~64kB stack.
This model does not really work well because Duktape doesn't really know how the stack behaves on the target. Further, even if a target had a stack of certain size, it might be appropriate to impose a stricter limit for resource containment reasons. Making such decisions can only be done by user code.
The current model could be replaced by:

Removing the current stack depth tracking and recursion limits entirely. Deprecate DUK_OPT_DEEP_C_STACK.
Adding a DUK_USE_STACK_CHECK() macro which Duktape would call at least in important recursion paths. The macro would indicate if there is enough stack space to continue (until the next stack check call); in concrete terms at least a few kilobytes should be available if the macro indicates there's enough space to proceed.

While writing such a macro is a bit awkward, it'd be more accurate than the very rough limits imposed by recursion depth counts. The Duktape internals would be much easier to maintain: as long as there are enough stack check calls in the arbitrary recursion points there'd be no recursion counters etc to carefully keep in sync.
See discussion in #226.

Prototype in:

https://github.com/svaarala/duktape/compare/user-stack-check-macro

Yeah, I noticed the initial implementation doesn't pass any arguments to the macro, which limits its utility.  I imagine it needs to get some sort of offset, so the user can figure out how much stack space is left relative to what's already used.  I think you mentioned a stack pointer/offset earlier, but no idea if that information is even available while still retaining portability (i.e. no inline assembly or any shenanigans like that).

If there are multiple threads the macro (or a function it ultimately calls) needs to be able to somehow compute "stack used so far" and compare it against a safe limit. A running thread can locate its own stack configuration in some systems while in others it may be more awkward.
AFAIK there is no guarantee that a stack is continuous in memory so the check is not necessarily a pointer subtraction; see e.g. https://gcc.gnu.org/wiki/SplitStacks

While I think a stack check would be preferable to Duktape awkwardly tracking recursion depth in multiple places, there may be some previous recursion limits that should be kept. For example, there is a value stack size limit, so perhaps the call stack size limit should also be kept.

Ugh, that split stack thing looks like way more trouble and complexity than it's worth.  I don't envy anyone writing a debugger for that. :stuck_out_tongue_closed_eyes:
Overall though I agree with the rationale of this change.  Plus getting rid of most the recursion counters may provide a speed increase too!

I don't think the speed increase will be really measurable, unfortunately :)
But the counters are awkward to maintain and need to be implemented whenever unbounded recursion is possible. It's easy to miss such places, and the limits are individual to each mechanism so the limits for a certain stack size need to be considered together and can easily be overly conservative, etc. I don't think the previous mechanism worked very well for anyone so it's probably good to consider some alternatives. Not sure if this is it though... :)

Considering the environments I've worked with, I'd be mostly happy with a call stack limit to catch unintended user code recursion (this wouldn't catch tail calls of course), and no explicit stack checks.
There's one interesting environment with a stack size smaller than 64kB and stack overruns resulting in a hard reboot (very painful to diagnose). For that environment a stack check would be very useful.

"Stack overruns resulting in a hard reboot"
Ouch.  Reminds me of my MS-DOS programming days.  Bugs that cause a harmless segfault nowadays usually locked up the machine in real mode.  I quickly became very familiar with Ctrl+Alt+Del. :)


Supported apps / API?

Hi!
Are there any Android or iOS apps for Polaris? I believe this is the primary use case for most users.
Is there an API and is it documented? The Wiki link on GitHub does not work.

Hi!
There is indeed an Android app, the repository is over here: https://github.com/agersant/polaris-android
It's been in alpha for a couple months now. I use it every day and the main reason it's still in alpha is that it needs more testing (especially on devices other than my phone). If you have any interest in using it, please let me know and I'll be happy to add your email to the list of alpha testers for the app on the play store.
There is no iOS app in development.
There is an API and I've been writing it with the goal of other people being able to write their own clients eventually. It is not documented yet and documenting it hasn't been a priority because the project still has a small audience. If you're interested, I'd be happy to make that documentation a priority. Until then, your best bet is looking at the source in https://github.com/agersant/polaris/blob/master/src/api.rs which has all the API endpoints.

That sounds really exciting! I can help you test it on multiple Android devices. My Play account is<EMAIL_ADDRESS>substitute the names. :-)

I've just added you to the list of testers, you should be able to grab the app from the Google Play Store at this URL: https://play.google.com/apps/testing/agersant.polaris
Let me know if this works. Feel free to open Github issues (or PR) for any problems you encounter!

Can I also help test? I have a Moto Z Play Droid and an Asus Z580CA. My email is deathspawn989 AT gmail.

@deathspawn I've just added you to the alpha, the URL to download the app is in my previous post. Please let me know if it works out on your devices! If not, please write something up on https://github.com/agersant/polaris-android/issues and I'll get to it eventually.
Out of curiosity, how did you find out about Polaris?

Thanks so much for writing this (I'm very glad/impressed that it's in Rust)!
I just wanted to ask, given the number of clients which already exist for Subsonic/Ampache, is there any desire to make the Polaris APIs compatible, so that Subsonic clients can speak to a Polaris server? I know that Polaris has different goals (e.g. to be a lot more minimal), so perhaps this isn't a good idea. Regardless, thank you for working on it! :)

Thanks a lot for your comment! It makes me super happy to see more people sharing interest in Polaris <3
I am OK adding complexity to Polaris as long as the additional features stay compartmentalized (like the YDNS support impacts no other code) and invisible to users that don't want it.
Exposing a Subsonic API is something I have considered. There would obviously be holes in it for the many features of Subsonic that don't have a Polaris equivalent, but it is doable. It's a pretty large task though (because the Subsonic API is very big) so don't hold your breath for it.

Any chance I can get it on this app? Play account is FIRSTNAMEmLASTNAME@gmailDOTcom. Just substitute in from my Github profile.

@agottschling The Android client is now in public beta. You can find it over here. Let me know if this works for you!


Added new targeting function

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

11 of 11 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 95.831%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
2539

Relevant Lines:
2658

💛  - Coveralls


Silence startup output in windows.

Already did it for Unix, now I need to do it for Windows. Keeping it here for future reference.

Fixed in commit https://github.com/sawsent/mikhail/commit/2245fd899411f716d7712241d9c2d645121f4b23


fix: issue D401 only for non-test/property functions and methods

Extend test fixture to verify the targeting.
Includes two "attribute docstrings" which per PEP 257 are not recognized by the Python bytecode compiler or available as runtime object attributes. They are not available for us either at time of writing, but include them for completeness anyway in case they one day are.
Rust newbie here, review with a fine comb greatly appreciated :)

Looks great! Will merge when CI is green.

Thanks tons.

@scop Thanks for refining this! ❤


Fix consistency error

Pushing a change to a branch that doesn't resolve some/all of the lint errors results in a green OK instead of a Red "Failed". I believe it's because we remove existing problems from the Problem object before we determine if it has problems or not. So if the number is the same, has_problems is False.

Codecov Report

Merging #238 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #238   +/-   ##
=======================================
  Coverage   89.78%   89.78%
=======================================
  Files          44       44
  Lines        2486     2486
=======================================
  Hits         2232     2232
  Misses        254      254

Impacted Files
Coverage Δ

lintreview/review.py
95.94% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Yes, is that not the desired functionality? If you push a change, and the same lint issues are there, why should it now say “everything is ok”? If the lint issues caused failure before, should pushing again make it so that it passes? Maybe I misunderstand the design here. Since it publishes a new review with the same comments, I assumed it should use the same status as well.
On Nov 6, 2018, at 8:26 AM, Mark Story <notifications<EMAIL_ADDRESS>wrote:
Wouldn't this change result in builds failing until all problems in all files changed by the pull request are fixed?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/markstory/lint-review/pull/238#issuecomment-436251604, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAyJuJDmkaXxljuVpUy-hDH_gVn936piks5usY33gaJpZM4YPoV1.

The intended behavior is that the build status reflects only the lint errors in the diff for the pull request.
If the pull request starts off with three errors and another commit is pushed that fixes two of those errors the status should still be red. If all three errors are fixed the status should be green.

Haha I had just barely had mine, I was questioning my sanity (regular occurrence).


Collection of python questions on Quora

Hi, @abhishekbundela Python Pedia is aimed to contain all Python programming language applications like Game development, Web Development etc. Python questions on quora in your PR does not fit the purpose. It can not be created as a separate section on Python Pedia. May be more popular questions can be added in other sections.

Thanks Sir,
I got your point.
I understand you.
On Wed, Oct 7, 2015 at 1:29 PM, Parbhat Puri<EMAIL_ADDRESS>wrote:

Hi, @abhishekbundela https://github.com/abhishekbundela Python Pedia is
aimed to contain all Python programming language applications like Game
development, Web Development etc. Python questions on quora in your PR does
not fit the purpose. It can not be created as a separate section on Python
Pedia. May be more popular questions can be added in other sections.
—
Reply to this email directly or view it on GitHub
https://github.com/Parbhat/Python-Pedia/pull/32#issuecomment-146105966.


Nodes are forced to have an input port

In my use-case of a visual scripting system, there is a requirement to have so-called event nodes that have no input ports but only one (or potentially more) output ports. Right now this is not possible, as one input port is always present. Just like output ports, the input ports could be definable using the port attribute on a variable with a given type.

Option to hide the input node was added in 0.2.9


name_starts_with should be prefix for consistency

Regarding def list_blobs(self, name_starts_with=None,
it uses name_starts_with instead of prefix
it passes it to ItemPaged(command, prefix=name_starts_with,
without any modification. this is just odd confusion.
name_starts_with  should be renamed to prefix  to keep it consistent

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Cosmos:0.08444973,azure-spring:0.046834294,Azure.Core:0.04527308'

Thanks for the report @anthony-sarkis!
I'm curious why you have needed to use the constructor of ItemPaged?
This is largely an internal implementation and there shouldn't be a need to construct this object directly... so the names of the parameters in the constructor should be inconsequential.
To rename the name_starts_with parameter of list_blobs would be a breaking change to the API, so we can't make this change.
Could you tell me more about how you're trying to use this object? Or a code sample? That will help us figure out the best course of action to take. :)
Adding @jalauzon-msft and @vincenttran-msft from Storage for visibility.

I appreciate the speed and friendliness of your answer - there are lots of good reasons

It matches the API https://docs.microsoft.com/en-us/rest/api/storageservices/list-blobs

prefix
Optional. Filters the results to return only blobs whose names begin with the specified prefix.

It's confusing to have an SDK function that names such a key item different from the core API

At some point in the past it likely had prefix as the name. Since most searches (at least for me) return results that mention using prefix.  https://stackoverflow.com/questions/51145124/how-to-list-all-blobs-inside-of-a-specific-subdirectory-in-azure-cloud-storage-u  For example this is the accepted answer with 33 upvotes.

It appears to silently swallow the prefix key word argument. This is especially confusing, becuase in conjunction with the searches indicating prefix, the api using prefix, the standard being prefix, the azure portal using prefix, it not throwing an error, and well I think you get the point.... At the very least it should error on an invalid keyword argument

For whatever reasons, getting authoritative docs on this SDK is difficult. often searches go towards other languages, or the rest api, etc. Further, we can't trust the signature since it uses magic things, and there are lots of accepted values that aren't listed in the signature (for example the meta thing). So again in light of that confusion the naming becomes more important.

I am calling attention to the point that virtually every other thing I have seen refers to it as a duck , and so that part of the code seemed to randomly decide to call it super_duck and it's probably something that needs some work.
I normally wouldn't care about a single variable name this much but it's just annoying that it's referred as one thing in virtually every one place and then here it's called something different.
More generally if you can please point to the best resource for all possible arguments for def list_blobs() ?
(since apparently we can't use the API docs.)
And can you please explain why the SDK deviates from the API?

Hi @anthony-sarkis Anthony, I understand your confusion around this parameter name. Most of the examples you referenced however were referring to old versions of the Python SDK. For version 12, the SDK went through a major rewrite and quite a lot of things changed. Unfortunately, there are still easily discoverable references to the prior versions floating around and the API documentation has stayed around for legacy reasons. Both the StackOverflow and the docs you referenced are referring to the old versions of the SDK.
The docs for the new version of the SDK can be found here and show the proper parameter name of name_starts_with. For reference, this would be a good entry point to the latest docs. You can, of course, always go straight to the source code to see the docstrings as well. Most API documentation is auto generated from source code anyway.
I'm not sure on the exact reasoning name_starts_with was chosen as this parameter name as I was not around when this API was created but the SDK often deviates from the service API to make things more readable/understandable. We do realize that for those who read the API docs, this can sometimes cause confusion.
Ultimately, as Anna mentioned above, we are not able to change this parameter name as that would be considered a breaking change to the SDK.


Version range issue with updateSbtClassifiers

Quick repro:

create a project/build.properties with

sbt.version=0.13.11

create a project/plugins.sbt with

addSbtPlugin("com.github.ddispaltro" % "sbt-reactjs" % "0.6.8")

create an empty build.sbt,
coursier SBT plugin 1.0.0-M12 enabled globally.

Run:
$ sbt updateSbtClassifiers
...
[error] (*:coursierSbtClassifiersResolution) coursier.ResolutionException: Encountered 2 error(s) in dependency resolution:
[error]   org.webjars.npm:amdefine:0.0.4:
[error]     not found:
[error]       https://repo.typesafe.com/typesafe/ivy-releases/org.webjars.npm/amdefine/0.0.4/ivys/ivy.xml
[error]       https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.webjars.npm/amdefine/0.0.4/ivys/ivy.xml
[error]       /Users/alexandre/.ivy2/local/org.webjars.npm/amdefine/0.0.4/ivys/ivy.xml
[error]       https://repo1.maven.org/maven2/org/webjars/npm/amdefine/0.0.4/amdefine-0.0.4.pom
[error]       https://oss.sonatype.org/content/repositories/releases/org/webjars/npm/amdefine/0.0.4/amdefine-0.0.4.pom
[error]   org.webjars.npm:amdefine:0.0.4:
[error]     not found:
[error]       https://repo.typesafe.com/typesafe/ivy-releases/org.webjars.npm/amdefine/0.0.4/ivys/ivy.xml
[error]       https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.webjars.npm/amdefine/0.0.4/ivys/ivy.xml
[error]       /Users/alexandre/.ivy2/local/org.webjars.npm/amdefine/0.0.4/ivys/ivy.xml
[error]       https://repo1.maven.org/maven2/org/webjars/npm/amdefine/0.0.4/amdefine-0.0.4.pom
[error]       https://oss.sonatype.org/content/repositories/releases/org/webjars/npm/amdefine/0.0.4/amdefine-0.0.4.pom
...

(output format slightly different than 1.0.0-M12, changes to be pushed).

cc @nafg

Curiously, the error only seems to surface via updateSbtClassifiers. In particular, putting in build.sbt
resolvers += Resolver.sbtPluginRepo("releases")
addSbtPlugin("com.github.ddispaltro" % "sbt-reactjs" % "0.6.8")

and running update or updateClassifiers is fine.
Also, from the command line,
$ coursier resolve -t \
    -r "ivy:https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/[organisation]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]" \
    "com.github.ddispaltro:sbt-reactjs;scalaVersion=2.10;sbtVersion=0.13:0.6.8"

and
$ coursier fetch \
    -r "ivy:https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/[organisation]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]" \
    "com.github.ddispaltro:sbt-reactjs;scalaVersion=2.10;sbtVersion=0.13:0.6.8"

are fine, and find org.webjars.npm:amdefine:0.1.0.
This dependency is brought via org.webjars.npm:amdefine:[0.0.4,). org.webjars.npm:amdefine:0.0.4 cannot be found on Central, but the 0.1.0 version can, and the latter should be used for [0.0.4,) (it is, except via updateSbtClassifiers).

As a quick workaround, putting
libraryDependencies += "org.webjars.npm" % "amdefine" % "0.1.0"

in project/plugins.sbt, makes the resolution less confused about the [0.0.4,), and solves the issue.

Coursier doesn't seem to support the version range expression. I'm seeing it going to our local repo with this URL:
http://nexus/nexus/content/repositories/releases/package/artifact-name/%5B0.0,0.1)/artifact-name-%5B0.0,0.1).pom

Trying this, I find a problem with the range starting from 0.0 version, for example:
./coursier launch 'org.python:jython-standalone:[0.0,2.7.1)' -M org.python.util.jython
doesn't works, but
./coursier launch 'org.python:jython-standalone:[0.0.1,2.7.1)' -M org.python.util.jython
does.

@crypticmind @damdev The null version in the interval seems to be the problem here. I opened https://github.com/alexarchambault/coursier/issues/273 for that. This is a different problem than the one of this issue (which is specific to the updateSbtClassifier implementation of the SBT plugin at first).

@damdev Now realizing this is actually expected, null versions should be used in opened bounds of intervals only, like (0.0,2.7.1) or (0.0,2.7.1].
@crypticmind Are you seeing intervals with zero at a close bound in the POM of one of your dependencies? This is not supposed to happen, asking just in case...

@alexarchambault I have a transitive dependency with version [0.0,0.1). Are you saying the [0.0 part is not supposed to happen?
From what I see here, this doesn't look like an error to me. Am I missing something?

@alexarchambault
I undersand that the null or zero version should be on a open bound, but this error occurs trying to build an existing configuration with coursier. If you want to provide a smoothly transition between plain sbt and sbt+coursier, the support for this version notation it's a good way to accomplish that.

Initial issue fixed since 1.0.0-M14 at least.

We are using sbt 0.13.11 with coursier 1.0.0-RC13 and we get the following error:
coursier.ResolutionException: Encountered 1 error(s) in dependency resolution:
    org.webjars.npm:jsonify:[0.0.0,0.1):
        not found:
            /Users/jaiew/.ivy2/local/org.webjars.npm/jsonify/[0.0.0,0.1)/ivys/ivy.xml
            https://repo1.maven.org/maven2/org/webjars/npm/jsonify/%5B0.0.0,0.1)/jsonify-%5B0.0.0,0.1).pom

It looks like the version range is still an issue?


⚠ Bofrost.be has degraded performance

In 9667fad, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1503 ms

Resolved: Bofrost.be performance has improved in 2ef63cd after 6 minutes.


fix DB connection issue on composer install

There was an issue with the database connection while installing the package.

In this workflow configuration, it also throws a DB  exception

I've set up a test repo with the github workflows installed.  Please check the outcome of workflows form here.
.

@nishalgurung4 Thanks for the pull request. I will have to stale this for now as the code was intentional to check if fileponds table exists for those who are updating from previous versions. For the time being, can you provide the steps to reproduce this problem in the local environment. For example -

Your Laravel version?
Is this new install? If yes, then did you configure the db connection before installing the package?
Anything you may want to add.

Hello, and thank you for your response.
Yes, this is the new Laravel 8 installation. Configuring the database connection before installing the package solved the problem in the local setup. Because Schema::hasTable() is used in the ServiceProvider, the package always requires a database connection.
However, the problem for me is with the github workflow. I used the following configuration and attempted to set up the database as follows.
name: Testing Laravel with MySQL
on: [push, pull_request]
jobs:
  laravel:
    name: Laravel (PHP ${{ matrix.php-versions }})
    runs-on: ubuntu-latest
    env:
      DB_DATABASE: actiontest
      DB_USERNAME: root
      DB_HOST: <IP_ADDRESS>
      DB_PASSWORD:
      BROADCAST_DRIVER: log
      CACHE_DRIVER: redis
      QUEUE_CONNECTION: redis
      SESSION_DRIVER: redis
    services:
      mysql:
        image: mysql:5.7
        env:
          MYSQL_ALLOW_EMPTY_PASSWORD: false
          MYSQL_ROOT_PASSWORD:
          MYSQL_DATABASE: actiontest
        ports:
          - 3306/tcp
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
      redis:
        image: redis
        ports:
          - 6379/tcp
        options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
    strategy:
      fail-fast: false
      matrix:
        php-versions: ['8.0']
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Setup PHP, with composer and extensions
        uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
        with:
          php-version: ${{ matrix.php-versions }}
          extensions: mbstring, dom, fileinfo, mysql
          coverage: xdebug #optional
      - name: Start mysql service
        run: sudo /etc/init.d/mysql start
      - name: Get composer cache directory
        id: composer-cache
        run: echo "::set-output name=dir::$(composer config cache-files-dir)"
      - name: Cache composer dependencies
        uses: actions/cache@v2
        with:
          path: ${{ steps.composer-cache.outputs.dir }}
          # Use composer.json for key, if composer.lock is not committed.
          # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
          key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
          restore-keys: ${{ runner.os }}-composer-
      - name: Install Composer dependencies
        run: composer install --no-progress --prefer-dist --optimize-autoloader
      - name: Prepare the application
        run: |
          php -r "file_exists('.env') || copy('.env.example', '.env');"
          php artisan key:generate
      - name: Clear Config
        run: php artisan config:clear
      - name: Run Migration
        run: php artisan migrate -v
        env:
          DB_PORT: ${{ job.services.mysql.ports['3306'] }}
          REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
      - name: Test with phpunit
        run: vendor/bin/phpunit --coverage-text
        env:
          DB_PORT: ${{ job.services.mysql.ports['3306'] }}
          REDIS_PORT: ${{ job.services.redis.ports['6379'] }}

Unfortunately, this isn't working. You can look into the error trace here.

@nishalgurung4 thanks for testing it out. I have just pushed a fix in the dev branch. Can you please uninstall the current version of the package and install the dev one with composer require rahulhaque/laravel-filepond:dev-dev and run the tests. I can then go forward with the release.

@rahulhaque  Thank you, it's working now. The log can be found here

@nishalgurung4 thanks a lot for the heads up. I will release new version with the fix. Update as soon as I release. And also thanks for the pull request. I would merge it if not for the changes in my action workflow. So cheers. Be sure to close the issue after updating to the latest version. Happy coding.


Out of memory issue on making hundreds of requests

Package Version: 1.8.13

[x] nodejs

nodejs version: 10.16.0
os name/version: macOS Catalina

[ ] browser

name/version: ____

Describe the bug
Out of memory issue on making multiple requests to fetch the list of network-interfaces using the @azure/arm-network package (version 14.0.0)
To Reproduce
Steps to reproduce the behavior:

Try to make hundreds of request to fetch the list of network-interfaces using the @azure/arm-network package (version 14.0.0).
Increase in the heap size can be observed after each request which is not getting cleared.

Expected behavior
There should not be any memory leak.
Additional context
Issue is not found on later versions of @azure/arm-network but there are other @azure packages which are still relying on versions ^1.8.1 of @azure/ms-rest-js

Fixed with #375


Test that a getting another user doesn't have return their attendance

Attendance and grades are private data and shouldn't be returned from the server for anyone but the owner. For this please write a test that makes sure that the attendance field is absent from an unauthenticated call.

Anli & Sumit

@alpha1693 is this done?

Ghost issue has finally been closed. Round of applause for everyone involved.


FieldArray showing in error state using FormlyMaterial

StackBlitz recreating issue;
Issue:
Upon initialization and when adding new items to the list, the controls are outlined in red showing the required error message.
All controls are pristine, (untouched/not dirty) with an invalid status.
Expected result:
Controls should only show error state if they are dirty or after being touched (like the rest of the controls)
This only seems to happen with fieldArrays and it does not seem to be an issue with the FormlyBootstrap (at least not he example on the site)
Also calling the add methods seems to throw an error:
preview-b3513348bd36da633feeb.js:1 ERROR TypeError: Cannot read property 'setProperty' of undefined
    at eval (style-utils.ts:124)
    at Array.forEach (<anonymous>)
    at StyleUtils._applyMultiValueStyleToElement (style-utils.ts:116)
    at StyleUtils.applyStyleToElement (style-utils.ts:36)
    at DefaultFlexDirective.BaseDirective2.applyStyleToElement (base2.ts:144)
    at DefaultFlexDirective.BaseDirective2.addStyles (base2.ts:96)
    at DefaultFlexDirective.FlexDirective.updateWithValue (flex.ts:282)
    at MediaMarshaller.updateElement (media-marshaller.ts:227)
    at MediaMarshaller.setValue (media-marshaller.ts:163)
    at DefaultFlexDirective.BaseDirective2.setValue (base2.ts:148)

The button was missing the type="button"
This was causing two issues, the issue initially reported as well as the click event firing when enter was pressed on one of the input fields.
Adding the type fixed the issue, but I am puzzled as to why it needed to know the type was button when it was a button tag?

why it needed to know the type was button when it was a button tag?

when the button is defined inside form tag, the default type is submit.


Fully static linux distribution?

It's possible to build a wasi-sdk linux distribution with fully static executables, so they work out of the box regardless of host system's glibc version. The fully static distribution can be provided as a -musl variant in addition to existing glibc-based variant.
I've been building and using fully static wasi-sdk in GHC's fork for some time and haven't encountered issues so far, so just asking if wasi-sdk maintainers find this a worthy idea, in that case I can contribute the pipeline to build it :)

Out of interest, what is the distro you are trying to run on where the existing binaries don't work?

@sbc100 None; the task of decoupling dependency on host glibc just happened to be a low hanging fruit for me, and it's especially convenient for NixOS, no need to patchelf anymore.
A more realistic concern is: upstream linux distribution is built on ubuntu-latest which itself is a moving target (although very slowly). Currently it's ubuntu-22.04, and people may be angry that the linux distribution stop working on older versions, even EOL ones. #273 is one such example, but I think that compared to sticking to an arbitrarily old glibc version, simply providing a distribution that doesn't rely on glibc sounds better.

but I think that compared to sticking to an arbitrarily old glibc version, simply providing a distribution that doesn't rely on glibc sounds better.

I can see pros and cons to both, and perhaps we should do both.  In general I think its preferable to have smaller, dynamically linked set of binaries that play nice with glibc-based distributions (which are in a the vast majority).   We could provide a musl-based statically linked set in addition but I would hope that a tiny minority of linux users would never need to use it.
I also don't think its the job of wasi-sdk itself (the github project) to publish binaries that run on every single OS/distro combination.. downstream distros do their own packaging and we should lean on that when it makes sense.

@sbc100 None; the task of decoupling dependency on host glibc just happened to be a low hanging fruit for me, and it's especially convenient for NixOS, no need to patchelf anymore.

Out of interest, for NixOS do you not do your own downstream packaing/building?  You consume the binaries we publish?

You consume the binaries we publish?

Nope, we don't use upstream wasi-sdk since there are other modifications in our fork. But indeed we only build for x64 linux once, and reuse that artifact for NixOS.

I also don't think its the job of wasi-sdk itself (the github project) to publish binaries that run on every single OS/distro combination

Yes, that makes sense! I'll hold off for the time being then.


Proposal: split zkfold-base into several packages

The main goal of this proposal is to improve the transparency of dependencies between different modules.
As the first step, I propose to split zkfold-base into two packages:

zkfold-base for basic data types and classes, math algorithms such as zk proving protocols, and arithmetic circuit definitions;
zkfold-symbolic for all things related to zkFold Symbolic DSL and Symbolic types (basic, Cardano, L2 Ledger).

Notes: We need the circuit definition in Base because zk proving protocols depend on it.
Tagging zkFold Symbolic team (@TurtlePU, @echatav, and @hovanja2011) and @vks4git. What do you guys think?
Also, where should we put Protostar? It depends only on the code from Base, but it can be viewed as a "Symbolic fold" algorithm.

Makes sense to me. Few things to note:

Ed25519 mentions the notion of "computational context" but is defined in zkfold-base right now. It doesn't depend on anything from zkfold-symbolic, but the placement of this type looks a little weird to me.
Crucially, ArithmeticCircuit is an instance of Symbolic class. So either definition of Symbolic class needs to lie in zkfold-base or there should be an orphan instance in zkfold-symbolic. Personally I like the second option more.
About Protostar -- where can I take a look at a general description of folding schemes to see how this fits into Symbolic DSL?
This also lends itself to defining two Preludes -- Prelude for internal usage defined in zkfold-base * and Prelude for Symbolic DSL smart contracts defined in zkfold-symbolic.

* As for me, I think that for internal usage it is better to not have any Prelude at all because importing everything explicitly from relevant packages looks clearer to me, but it is up to you guys which is more convenient. As for Symbolic DSL Prelude, it just would be easier for newcomers to have batteries-included for their smart contracts.

I'm not sure it's always so obvious where things will land, in zkfold-symbolic vs zkfold-base. Just a for instance, is DiscreteField basic math code or symbolic language code? Of course I'd argue it should go in basic math but right now it's part of the symbolic code and namespace. Preemptively splitting will force such decisions up front. So, I'd say it's a good idea to split up the codebase into packages but just not too early while development is moving fast, and when the flexibility of a unified codebase helps while a split packages may hinder. Pardon me for always being contrarian ^_^ and I don't mind being overruled.

Pardon me for always being contrarian

We love meaningful POVs, contrarian or not!

Ed25519 mentions the notion of "computational context" but is defined in zkfold-base right now. It doesn't depend on anything from zkfold-symbolic, but the placement of this type looks a little weird to me.

Should be in zkfold-symbolic IMO

Crucially, ArithmeticCircuit is an instance of Symbolic class. So either definition of Symbolic class needs to lie in zkfold-base or there should be an orphan instance in zkfold-symbolic. Personally I like the second option more.

I agree. Orphan instance is better.

About Protostar -- where can I take a look at a general description of folding schemes to see how this fits into Symbolic DSL?

You can check Protostar and Nova papers (in our private knowledge base).

This also lends itself to defining two Preludes -- Prelude for internal usage defined in zkfold-base * and Prelude for Symbolic DSL smart contracts defined in zkfold-symbolic.

I agree.

On naming stuff: we can follow Haskell's base convention and make our module names a little shorter. At least ZkFold.Base.Algebra.Basic.Class is too long of a name for a module which is used pretty much everywhere!

Do you mean dropping ZkFold.Base and calling it Algebra.Basic.Class, for instance?

Symbolic DSL definition actually do not depend on zk proving protocols, maybe we can split even further with dependencies aligned like this: zkfold-symbolic -> zkfold-base <- zkfold-proving

Possibly yes. For now, we only have Plonk and KZG (which is actually a component of Plonk) as proving protocols. IMO, it does not make sense to split atm.

As for me, I think that for internal usage it is better to not have any Prelude at all because importing everything explicitly from relevant packages looks clearer to me, but it is up to you guys which is more convenient. As for Symbolic DSL Prelude, it just would be easier for newcomers to have batteries-included for their smart contracts.

I see your point. It is a bit painful to include every single operator all the time but makes it a little bit more transparent which operation is used.

I'm not sure it's always so obvious where things will land, in zkfold-symbolic vs zkfold-base. Just a for instance, is DiscreteField basic math code or symbolic language code? Of course I'd argue it should go in basic math but right now it's part of the symbolic code and namespace. Preemptively splitting will force such decisions up front. So, I'd say it's a good idea to split up the codebase into packages but just not too early while development is moving fast, and when the flexibility of a unified codebase helps while a split packages may hinder. Pardon me for always being contrarian ^_^ and I don't mind being overruled.

I think it can wait, no rush to do it right now.

Do you mean dropping ZkFold.Base and calling it Algebra.Basic.Class, for instance?

More like keeping ZkFold prefix but dropping Base and Basic so it becomes ZkFold.Algebra.Class.
My motivation is:

keep modules in our own namespace, ZkFold
drop words which carry no information -- there's no benefit in Basic/non-Basic distinction, and Base part can be inferred from Algebra part: my line of thought is, for example, "Algebra is not domain specific, so it must be in base"

On ArithmeticCircuit part: desugaring range constraints relies on MonadCircuit definition a bit, but we can refactor it so it only relies on a set of basic operations in ArithmeticCircuit.Internal module + State monad

Also zk proving protocols rely on Arithmetic type alias quite a bit, so maybe it should be in base, too

After playing with ideas a bit, I arrived at the following list of well-defined separate entities:

ZkFold.Base.Algebra (can be just ZkFold.Algebra IMHO) with:

algebraic definitions, including Arithmetic
property tests of algebraic datatypes
benchmarks of algebraic datatypes

ZkFold.Base.Protocol (can be just ZkFold.Protocol) with:

implementations of protocols
definitions of getters for circuits (discussed in #175)
property tests of protocols (we can try to provide mock instances of circuits instead of relying on full ArithmeticCircuit machinery)

ZkFold.Symbolic with:

definitions of MonadCircuit, Symbolic, SymbolicData, SymbolicInput
Symbolic datatypes
testing framework for Symbolic DSL (discussed in #219)
tests for correctness of Symbolic datatypes with respect to Haskell datatypes they model

ZkFold.Symbolic.Compiler.ArithmeticCircuit (better to rename to just ZkFold.ArithmeticCircuit or even ZkFold.Circuit IMO) with:

definition of a circuit datatype
its instance as a compiler backend for Symbolic DSL
its instance as a constraint system for proving protocols
correctness testing for circuit datatype
end-to-end proving protocol test
end-to-end compilation test
compilation benchmark

Also we can go nuts and have several different circuit datatypes for different usecases (with variable generation via Merkle hashing; with incremental numbering and Groebner-based circuit merging; with hidden unsafe IORef for global numbering; etc...)

I don't think we need this atm. Agree with the rest!


Add support for go2rtc 2-way audio

As frigate-card supporting AlexxIT way of delivering content, please consider adding support for this new project featuring two way audio communication
https://github.com/AlexxIT/go2rtc

Relevant FAQ entry that includes an example of how this could be done:
Q. What about lovelace card with support 2-way audio?

At this moment I am focused on improving stability and adding new features to go2rtc. Maybe someone could write such a card themselves. It's not difficult, I have [some sketches](https://github.com/AlexxIT/go2rtc/blob/master/www/webrtc.html).

As this is realistically quite a niche feature request, keeping this open for long-term exploration, or someone who wishes to contribute.

My personal use case is to use frigate-card with my Dahua VTO (video doorbell), so from a user perspective it would be awesome, to have 3 extra buttons on live stream available.

sound on/off
microphone on/off
unlock door button

Agree that would be fantastic for that usecase (which is less niche)!
PS: you can add the unlock button today via a custom element (in case you hadn't seen that).

This would be a great feature!!

Another use case:
All my cameras have 2-audio support ("pretendbly" the same kind of 2-way audio supported by go2rtc) and having the option to speak through them would allow me to surprise someone if spoten doing some doubtful.

sound on/off
microphone on/off

^ This!  I have to currently use a card_mod popup to speak to the cameras.

I'm excited about the doorbell usecase, so do plan to work on this. Adding @AlexxIT as an FYI and in case they have any alternatives or reasons this would be a bad idea. My plan is simply to start experimenting with the sketch they already prepared in the context of the Frigate card.

Hi.  I wanted to link this issue with this enhancement to take into consideration when adding support for 2-way audio.
https://github.com/AlexxIT/go2rtc/issues/67
It shouldn't merely be a requirement to 'mute' the microphone but instead I believe it should be considered to disable/enable it instead so as not to tie up the buttons on doorbells and other devices while simply 'viewing' the cameras.

It is important to know that you need to access the microphone BEFORE starting the stream on the client. As far as I know, you can't add a track to an existing WebRTC connection. But you can stop microphone right after init:
https://github.com/AlexxIT/go2rtc/blob/12925a6bc5ed203582f465ef45ef4992270d8823/www/webrtc.html#L98-L105
Also, go2rtc cannot start a backchannel for an already running RTSP connection. It will turn it on the first time it connects to the camera.

I wonder how the amcrest app does it.   The app will show a live video of the doorbell while keeping the actual doorbell button active which is good.  The app user can select the microphone button and it looks like it enables it on the existing stream.
Perhaps it is doing this:

But you can stop microphone right after init

and then re-enabling it.
Perhaps with proper disable/enable of the microphones, the doorbell remains active.  But in my testing simply disabling the microphone in the  html didn't stop the doorbell from becoming disabled.

Well, another option would be to reload the stream upon enabling/disabling microphone.

Someone has to wireshark the original app.

The moment when amcrest app enable microphone

I will be getting one of these tomorrow and I can wireshark it and see what is being sent

I have a dump of the connection.
Whenever I attempt to activate the microphone there must be an encrypted call from the server to the camera that I cannot decode and same from app to server. However afterwords there is a POST from the camera to the server with /device//transfer-stream/talk/1/0/encrypt with the payload shown below. The addr is the AWS server ip its contacting

{
"addr" : "<IP_ADDRESS>",
"assistStream" : "true",
"channelId" : "0",
"design" : "first",
"deviceType" : "device",
"encrypt" : "1",
"latitude" : "",
"location" : "",
"longitude" : "",
"num" : 0,
"port" : 9112,
"talkType" : "talk",
"timeLimit" : true,
"tlsPort" : 9113,
"type" : "RTSP",
"url" : "/device//transfer-stream/talk/encrypt",
"videoLimit" : 0,
"viewer" : "294577"
}
Shortly afterwords the server makes a OPTIONS request to the camera with the following string

OPTIONS rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0&encrypt=1&talktype=talk&proto=Private3
I no nothing else obvious outside of these two calls.

I still think it's very reasonable for the moment if the card simply reload the stream when you enable/disable microphone.
I can't wait for this feature, as I expect that I will be able to get rid of my Dahua app for answering the doorbell with it and therefore use solely HA.
PS: I would recommend to move the VTO-specific discussion to the go2rtc repository.

I'm wondering if the app makes a new RTSP connection to the camera when you press the microphone button or if it sends this request within the existing RTSP connection.

I can send you a dump if you want AlexxIT, I cannot decipher anything with my limited knowledge because it seems to be wrapped in a tunnel. and every packet except these and a few TLS packets are 1514 bytes in size

This issue seems to have stagnated, is this still a planned feature? Is there some other solution people have turned to (that doesn't involve SIP) that I'm unaware of?

This issue seems to have stagnated, is this still a planned feature? Is there some other solution people have turned to (that doesn't involve SIP) that I'm unaware of?

Absolutely. For now, I'm trying to get v4.1.0 (backlog) out the door. This feature is scheduled for v4.2.

Is there some other solution people have turned to (that doesn't involve SIP) that I'm unaware of?

Are you aware of the latest improvements on go2rtc and WebRTC card towards 2-way audio?

For now I have relegated to just opening a proxy to go2rtc run off frigate without any security and sending a link in notifications to my phone

I have not tried, but doesn't the webrtc card now support 2 way audio?

never mind, I think it only supports playing audio.

I would love to have this support as well to answer video doorbell calls.  Just as an FYI, in order to get a browser to support a microphone, you need to access the go2rtc URL via HTTPS with a trusted certificate.

OK -- initial experimental support has been added and for now I'm going to close this issue.

The support will be in the next build, but if you want to try it out you can use these build artifacts.
As predicted, I could not find a way to add the microphone stream to the existing webrtc connection, so when the microphone button is first held it resets the connection. It's not too bad.
I found go2rtc / webrtc 2-way support to be quite troublesome (bug1, bug2), so before filing issues against the card please make sure you have successfully tested 2-way audio in go2rtc itself.

Wow, this is awesome! Can't wait to test.


which ROS 2 version should i use to develop my own application?

I have another question, i'm wondering which ROS 2 version should i use to develop my own application? To not have compatibility issues in my simulation
Originally posted by @enriLoniterp in https://github.com/Wind-River/vxworks7-ros2-build/issues/28#issuecomment-1198062140

use the same ROS2 version - dashing


refactor: misc functional components

Icon, Loading, Popover, ProgressBar, RadioButton, Range now functional Storybook components.

 Here is an overview of what got changed by this pull request:

Clones added
============
- packages/orcs-design-system/lib/components/Popover/index.js  2
- packages/orcs-design-system/lib/components/RadioButton/index.js  2
- packages/orcs-design-system/lib/components/ProgressBar/index.js  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Clones added
============
- packages/orcs-design-system/lib/components/ProgressBar/index.js  1
- packages/orcs-design-system/lib/components/RadioButton/index.js  2
- packages/orcs-design-system/lib/components/Popover/index.js  2

See the complete overview on Codacy


Rightclick menu - add delete option

One of my most used function of torrent clients is deleting files from them - no only from the client itself, but also from the system. I am not really sure how hard this would be to implement but Right click -> Delete torrent + files would be huge help.
(PS: I hope it is not a big deal that I split my initial feedback to separate issues - I did it because they are pretty much all unrelated feature requests and you might choose different course of action in each case)

Hello! We already have this menu,

Are you talking about something else?

That is it. I know why I missed it - I was using transmission for so long, that I was looking for those menu times in top level menu. You choose to have it in submenu. If you ask me, I think i have do more work to delete torrent/data from PT, compared to transmission.

Current deleting process:

Right click torrent
Mouse-over menu item
Go to submenu
Click

Proposed way:

Rightclick
Delete either torrent or torrent with data

This is not an actual problem, more of a preference. However I believe PT is designed to be minimal in design, but it should also be minimal in interaction. Less steps the better. Take Tinder for example, they become vastly more popular because compared to other dating sites they require minimum interaction.
Lastly, maybe you don't really feel this way about PT and I am indeed trying to have it too minimal. But from my experience, people love the least interaction possible.


KGE File Set download policy - design & implementation.

Data access policy needs clarification from NCATS. Unauthenticated downloading assumed so far - does this need to be changed later?
If authenticated downloads are required by policy, they will need to be implemented as such in the system.
Is it an "either/or" decision or is a "hybrid" solution required for some data sets with IP restrictions (e.g. UMLS in SemMedDb)?
Could the hybrid be that private datasets are only authenticated web site access, whereas, web services can access public data only? Would AWS S3 metadata tag such data as "public" or "private". Could AWS S3 permissions be used to manage this?

Post-relay Architecture Committee discussions  on  May 4th resolved to the short term decision of keeping downloads under user authentication.  This core decision  can be periodically reviewed by NCATS.
This decision  doesn't resolve the additional  issue of how to confirm Translator  user authorization to access data based  on core  licensing (e.g. UMLS/SNOMED_US for SemMedDb?). Additional layers of user-centered data use agreements may be needed. Should such agreements  be "shrink-wrapped" during user  registration?

A follow-up Architecture Committee discussions on August 3rd briefly re-discussed the issue and requested NCATS clarification on licensing of data (again, to be discussed further).

Need to follow up with Chris Bizon.


Update ui logo

Codecov Report

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

@@            Coverage Diff            @@
##             master     #220   +/-   ##
=========================================
  Coverage     83.23%   83.23%
  Complexity     1077     1077
=========================================
  Files           148      148
  Lines          3174     3174
  Branches        381      381
=========================================
  Hits           2642     2642
  Misses          441      441
  Partials         91       91

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 39de5c1...739cbec. Read the comment docs.


Remind participants about the research session

When [Situation]?
It's the evening or morning before a participant's interview
I want to [Motivation]
reconnect and remind them about their session
So I can [Expected Outcome]
have a better chance of them showing up to the session and pre-answer any tech questions they may have
Additional context
The evening or morning before the interview:
[ ] Confirm you’ve got the participant’s signed consent form
[ ] remind them where to find login instructions / directions
[ ] Send them a reminder email about their session – prompt them to do the consent if they haven’t already

Takes about 2 minutes per participant once you've got the reminder text drafted

Takes about 2 minutes per participant once you've got the reminder text drafted

Reminder email is drafted, just needs to be sent


⚠ IMAP has degraded performance

In 3a85537, IMAP (https://news.ycombinator.com) experienced degraded performance:

HTTP code: 200
Response time: 1148 ms

Resolved: IMAP performance has improved in 9a4ad71.


Add UMD module definition

Your library is great! However, you can make it even better by going along with time and add the umd module definition to it, so the usage with Browserify, CommonJS, SystemJS etc. gets easier.
For reference see: https://github.com/umdjs/umd

Hi. Thank you for this proposition. I love modules and I use AMD in every project I do. But Balalaika is positioned as tiny embedded jQuery alternative. Embedded means that you just copy and paste Balalaika code to your webpage or script. UMD will make Balalaika bigger and I can't see any sense to do it.
If you need to turn it on for AMD, CommonJS or SystemJS it doesn't hard to do it yourself.

+1 for umd-web-amd

упс, сорян. увидел в корне умд. спасибо!


added support for full range of xpath expressions in conditionals

We needed to be able to completely hide address components when empty (existing options leaves empty lines) plus we need to able able to show & hide sections based on more complex xpath expressions that the currently supported options.
The change is quite simple. existing code assumed that the xpath would return a collection of elements or attributes but xpath can also return string, boolean and floating point values.  I added a check to see if the result of the xpath query is IEnumerable If it is then I follow the original code path  otherwise I ToString() it and compare to the match.
I've included unit test which shows the issue we faced.

@BrettBailey Thank you so much for this.  This is a super enhancement to DocumentAssembler.  I am on vacation until November 15, so will address this PR when I get back.  In the meantime I will do a quick code review, see if there is anything that needs adjusted before merging the PR.  Others can comment as well in the meantime.

@EricWhiteDev You're Welcome :-)  That sounds like an epic vacation - I'm jealous

There is a chance I'll get to this in the next few days.  Stay tuned...


Minor rework of joint class

In few words:

the shortname is now a non-static method and visit by JointModel.
it introduces classname which is static.
it removes redundant operator== in JointModel class
add missing linkage

Coverage remained the same at 60.447% when pulling 65b9bf190b4ec78c93321fe328b0bc616892c992 on jcarpent:devel into 5e7339c31746e65d7b9fa37be0b6323040490267 on stack-of-tasks:devel.


As a content editor, I want an option to add formatted code to blog posts or other content pages, so I can share technical content clearly.

Allow a writer to include code blocks and inline fixed-width text. Current code blocks implemented through the <pre> tag are not mobile-friendly and require the user to manually edit HTML. It is also not currently possible to implement inline fixed-width formatting (any edits made to the HTML were stripped out when saved).
Example blog post: https://cdh.princeton.edu/updates/2021/03/19/mistakes-avoid-when-using-twitter-data-first-time/

update: see if we can use https://github.com/FlipperPA/wagtailcodeblock
also impacts https://cdh.princeton.edu/updates/2023/05/01/creating-an-argument-from-data/

@cvansant I've installed a wagtail package that adds a code block. Would you try it out? You could try it out on Kevin's or Emily's posts linked above on the test site (and if we like it, we'll want to update those posts when we roll this out).
FYI, in the updated version of wagtail you can now click in the middle of a block and use the + button to the left side to open a menu, which includes an option for splitting a block in half.

I'm definitely not an expert on code but I tried it on a blog post and a content post and it worked! I also saw how to split a block.

Just occurred to me that I should note it is necessary to scroll horizontally to see the full line of code. I do not know if that's the plan or not.

@cvansant   I've customized the styling to decrease font size and increase margins so there's more room. It still may require scrolling on mobile in some cases, but I think that's ok.
Take a look on this test post and see what you think: https://test-web.cdh.princeton.edu/updates/2023/05/01/creating-an-argument-from-data/

Looks good!


Settings to adjust editor window size are undocumented

A while ago, I asked on the mailing list (https://groups.google.com/forum/#!topic/django-cms/dJy1YbA--Dk) about adjusting editor window sizes.  Looking back over that thread, I see it was suggested that the lack of documentation around this should be considered a bug and I should open a ticket.  I don't think I ever did, so here it is.

it is documented: http://docs.django-cms.org/en/latest/getting_started/plugin_reference.html#text

There's nothing there which addresses this issue.  I'm looking for documentation about how to change the size of the edit box which is rendered.

"When using django-tinymce, you also need to configure it. See the django-tinymce docs for more information."

I'm not using tinymce.  I'm using (the default) WYMeditor.

I don't understand why this was closed.  django-cms is setting the iframe's height and I believe that is what is being referred to here.  Mine is set to a height of 256 and that is pretty annoying.  #cms_placeholder-iframe appears to be what is driving the height that contains the javascript editor.  Unless I'm just missing it, this is not a configuration issue with either tinymce or wymeditor but with how django-cms is creating the iframe that holds the text plugin editor.

I am also a bit concerned with the size of the editor window.
I found the function that sets the plugin iframe height.  It is in static/cms/js/plugin_editor.js.  I set the height to 1000px always and it works well for me.
// global functions
setiframeheight = function(height, id){
$('#iframe_'+id).height(height+"px");
}

I should prob mention that after you set the iFrame height to a somewhat acceptable value, you'll need to set the height of the editor too.
I use tinymce, and if you add this to your settings, you can set the editor size.
TINYMCE_DEFAULT_CONFIG = {
....
"width": "100%",
"height": "1000px",
....
}

reopened

In our Semantic Presentation Editor, which is just WYMEditor plus some extensions, we've added a button: "Edit in a new browser window".
This opens just the editing iframe in a new window or tab, which is something I'd often do manually anyway.
It's certainly not without its user interface issues, and I don't recommend the approach as one really suited to every user - but it certainly helps when you need more space.


Fixed the sorting function.

The sorting function is fixed. It needed to return -1, 0, -1, but had been returning true, false. The Boolean return appeared to work in FireFox, but that may have been a coincidence.
Also changed the default descending choice when a column is first selected based on whether the columns data type is a string on not. This has strings sort a->z and numbers and dates (large -> small). This is similar to OSX file browser. This gives the "logical" choice and feels natural.

@lukeyeager can you have a look when you have time?

I've verified that this PR fixes sorting behavior on Chrome. And I like the string vs number sorting change.
Thanks for the fix @jmancewicz and for the report @enoonIT!


Storage tests new

This PR replaces #1310

@RaoulSchaffranek for the new tests, you can add them to tests/failing-symbolic.java (so add tests/specs/examples/storage-spec.k to that list), so taht you don't have to worry about getting it working on the Java backend.

Nice, looks really good.

Did you profile the proofs? How long are they taking? If it's more than 10m we should probably add them to tests/slow-symbolic.haskell to avoid running them on CI.

Also, it appears you need to mark this test as failing on the java backend, by listing it in tests/failing-symbolic.java.

Thanks, the tests take 30 min on my machine and 15 minutes on Andrejs. I added a line to the haskell.slow file and failing-symbolic.java respectively.


Add Rust API docs

This adds the rust API docs to the generated sphinx documentation. The rust docs are generated by cargo doc and then copied over to the sphinx _static html directory, and included in the generated docs site with an iframe.

/merge


bug:

Plugin version:

"@capawesome-team/capacitor-nfc": "^5.0.2",
Platform(s):

ios
Current behavior:

Capacitor says nfc is not supported.
Expected behavior:

Nfc is supported = true
Steps to reproduce:

install plugin
try to initianlyse and fail

this is a quasar app.
Related code:

nfcpage.vue:

import { Nfc, NfcUtils, NfcTag } from '@capawesome-team/capacitor-nfc';

let nfcInstantiated = async () => {
      let { isSupported } = await Nfc.isSupported();
      this.nfcIsSupported = isSupported;
      if (!isSupported) {
        return;
      }
      this.rippleinterval = setInterval(() => {
        if (this.$refs['ripple'] && this.nfcIsSupported != false) {
          (this.$refs['ripple'] as Element).classList.toggle('ripple');
        } else {
          clearInterval(this.rippleinterval);
        }
      }, 800);
      let count = 0;
      Notify.create('bools ' + this.isAdmin + ' ' + this.scanning);
      while (this.isAdmin && this.scanning) {
        count++;
        Notify.create('started to listen' + count);
        await Nfc.removeAllListeners();
        await startReadWrite();
        await new Promise<void>((resolve) => {
          setTimeout(() => {
            resolve();
          }, 2000);
        });
        Notify.create('done to listen' + count);
      }
    };
    nfcInstantiated();

info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>UIApplicationSceneManifest</key>
	<dict>
		<key>UIApplicationSupportsMultipleScenes</key>
		<false/>
		<key>UISceneConfigurations</key>
		<dict/>
	</dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleDisplayName</key>
	<string>Quasar App</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>$(MARKETING_VERSION)</string>
	<key>CFBundleVersion</key>
	<string>$(CURRENT_PROJECT_VERSION)</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
<key>com.apple.developer.nfc.readersession.formats</key>
<array>
    <string>NDEF</string>
    <string>TAG</string>
</array>
	<key>UILaunchStoryboardName</key>

	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Main</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>NFCReaderUsageDescription</key>
	<string>The app enables the reading and writing of various NFC tags.</string>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
	<true/>
	<key>com.apple.developer.nfc.readersession.felica.systemcodes</key>
	<array>
		<string>0003</string>
	</array>
	<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
	<array>
		<string>D2760000850100</string>
		<string>D2760000850101</string>
	</array>
</dict>
</plist>

Other information:

⚡  To Native ->  Nfc isSupported 94429216
2023-06-27 01:35:39.871884+0200 App[1778:318741] [CoreNFC] -[NFCHardwareManager areFeaturesSupported:outError:]:166 XPC Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}
2023-06-27 01:35:39.974324+0200 App[1778:318741] [CoreNFC] -[NFCHardwareManager areFeaturesSupported:outError:]:166 XPC Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}
2023-06-27 01:35:40.179973+0200 App[1778:318741] [CoreNFC] -[NFCHardwareManager areFeaturesSupported:outError:]:166 XPC Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}
2023-06-27 01:35:40.485304+0200 App[1778:318741] [CoreNFC] -[NFCHardwareManager areFeaturesSupported:outError:]:166 XPC Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}
2023-06-27 01:35:40.886460+0200 App[1778:318741] [CoreNFC] -[NFCHardwareManager areFeaturesSupported:outError:]:166 XPC Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}
⚡  TO JS {"isSupported":false}

Capacitor doctor:

❯ npx cap doctor
[warn] The bundledWebRuntime configuration option has been deprecated. Can be safely deleted.
💊   Capacitor Doctor  💊

Latest Dependencies:

  @capacitor/cli: 5.0.5
  @capacitor/core: 5.0.5
  @capacitor/android: 5.0.5
  @capacitor/ios: 5.0.5

Installed Dependencies:

  @capacitor/cli: 5.0.2
  @capacitor/core: 5.0.2
  @capacitor/android: 5.0.2
  @capacitor/ios: 5.0.4

[success] iOS looking great! 👌
[error] Missing <manifest package=""> attribute in app/src/main

Thank you for your request!
Which device do you use?

Tested on my personal iPhone (14 pro max)

The value that is returned comes directly from NFCTagReaderSession.readingAvailable (see docs).
Unfortunately there is nothing I can do/fix there. So it should be a configuration problem.
Maybe this helps you: https://stackoverflow.com/a/54109822/6731412