expectedOutput support with general tests type

In this PR , expectedOutput option is supported for both scheme files and cmd-line
It runs with general tests type.
I still have few things to do (mainly in the "run_all_tests.py -  kept the OutputTest class commented in the meanwhile).

By adding the expectedOutput file name to the query's attributions :
-> comparing the results is done between the given file content and the actual "query output" computed by the QueryRunner
(there will be no comparison with the stdout contents - message from other places (e.g warnings by the np parser) will not be compared and shouldn't be in the query's expected output file)
-> when adding the expectedOutput to a query, if its format isn't txt, the user should include OutputFormat parameter.
overriding the format from outside will not be relevant any more in this case.
We had this option in the old "Output" section of all_tests_spec.yaml, it was relevant for the  tests/output_config_tests/override_out_format_only/test_output_config_connectivity_queries_override_out_format-scheme.yaml test.
Question: Since it is not relevant now , should I remove this test or implement a new flag in run_all_tests (--override_test_format), (however the user will be responsible to use the correct expectedOutput file format in this case)?!
-> Question: Since now the expectedOutput is per query , should we keep the actual output files per scheme, or change them to be per query too? to mention that the actual output files are not relevant to the compare method anymore

* [x]  what if someone write for the query expectedOutput without expected: 0 ? (currently failed test is not reported as failure on this case) [maybe should have by default expected=0 for any test with expectedOutput arg?]

Instead of defaulting expected to 0 , returning a "comparing_err" flag from the queryRunner, and adding it to the global_res in schemeRunner/nca (cmdline) ... (because there are tests without expected but their actual res is > 0, which will cause a test failure when defaulting expected to 0)

* [x]  actual output files: could be redundant now, because we do not use output redirection to files when tests are run, instead the output per query goes to stdout and can be compared with expected output file from query...

I kept actual output files only for the output files that are given in OutputConfig's args / cmdline arg / overrided by the spec file.
deleted all "stdout" redirected actual output files

* [x]  output config tests: maybe we should consider a new test type for them, and not run them as general tests? Their goal was to test combinations of outputConfig args (output path, output format) + combinations of those cli args that can override them.

In the committed files , I added a new class OutputConfigTests (--type=output_configuration)
But this class behaves exactly as the GeneralTest behaves.
the only difference is in the spec file (all_tests_spec.yaml) - when adding the "override" args.
these args (format/out file) are passed to nca from run_all_tests.py. (nca/schemeRunner are responsible to handle them- didn't have to touch them).
Since the OutputConfigTests behave like the General, I wrote another version without the new class (attached).

So we may choose the "committed"/ the "attached" version

In both solutions I had to add a new "parameter" to the spec file called "excluded_dirs" >> used under the general scheme tests.
The reason for adding the new parameter to exclude the output_config_tests directory from running all scheme files is that the expected output files is now in the "scheme" files (per query) and for tests that we'll override their format , the expected is already written with the overriden format, so we can't run them without the "out_format_arg"

* for outputConfig outPath : make sure the expected file is created with expected content

* for outputConfig outFormat: make sure that specifying it does affect the output format (at least one check for each possible type)

* for cli arg outPath: make sure the expected file is created with expected content (regardless of outputConfig outPath if exists..)

* for cli arg outFormat: make sure the output format is correct (regardless of outputConfig outPath)

* check combinations of overriding only one arg (each one separately) or both

Since the nca/schemeRunner handle the override format/file args -> all outputs are correct for sure.
since the nca and schemeRunner take these parameters and override them in the query's OutputConfig ...
and in the queryRunner we write the out file and compare the output with same "query_output" variable
all_tests_spec_without_output_config_test.yaml.txt
run_all_tests_without_output_config_class.py.txt

hi @shireenf-ibm , a few more comments:
* [x]  update documentation of scheme files

* [x]  update workflow to override tests output

* [x]  remove the compare/update arguments from nca_main, scheme_runner, NetworkConfigQueryRunner (add some new singleton object instead, so it can get updated from the run_all_tests directly).

* [x]  in scheme runner, if there is a comparing_err, add warning as well

* [x]  output_config tests can run as general tests

in addition to the points above, the following new change added:
Since the "actual_output_files" we have now are the files written by "OutputConfiguration"  >>
I moved the handling of these output files from run_all_tests.py to the OutputConfiguration.py (using the new singleton class)

hi @adi,

Do we have any unique functionality being tested in output_config, or is it redundant?

we don't have any unique functionality when overriding the "output_cofig_tests" args.
The users have the option to choose the format/out_file in both scheme (in the outputConfiguration) and cmdline tests (-o -f)
so in my opinion there is no special additive value by overriding the out file/format in the tests_spec file.

Should we move the cli tests with expected output outside the output_config tests?

yes, we might even merge the cli tests under output_config tests with the k8s_cmdline_tests.yaml ,
both files include same "base "tests, the output_config adds variations of new formats /out files

why do we still need to preserve actual output files, or even run with those out_file flags?
even though we don't use the actual output files in our code anymore.
I think it is good to keep the (scheme outputConfiguration: outfile)/(cli -f) as an option for the user, to choose if he wants to keep his tests' output. (if he want to use them "outside" the nca run)
for example if he want to write a new test on the same networkpolicies and want to analyze what happens in each case or if he wants to compare nca's output with other sources ...

hi @adi,

Do we have any unique functionality being tested in output_config, or is it redundant?

we don't have any unique functionality when overriding the "output_cofig_tests" args. The users have the option to choose the format/out_file in both scheme (in the outputConfiguration) and cmdline tests (-o -f) so in my opinion there is no special additive value by overriding the out file/format in the tests_spec file.

Should we move the cli tests with expected output outside the output_config tests?

yes, we might even merge the cli tests under output_config tests with the k8s_cmdline_tests.yaml , both files include same "base "tests, the output_config adds variations of new formats /out files

why do we still need to preserve actual output files, or even run with those out_file flags?

even though we don't use the actual output files in our code anymore. I think it is good to keep the (scheme outputConfiguration: outfile)/(cli -f) as an option for the user, to choose if he wants to keep his tests' output. (if he want to use them "outside" the nca run) for example if he want to write a new test on the same networkpolicies and want to analyze what happens in each case or if he wants to compare nca's output with other sources ...

Thanks. In my last question I meant to ask whether we need to keep the tests that we wrote with this out-file flag, and why we need to preserve the "actual output files" from those tests, if we do not compare them to anything.
To simplify, if we do not find much added value for the output config tests, we can remove those tests, and merge the cli tests as you suggested. (and then can also simplify the run_all_tests).
The output config tests were originally meant to test both output comparison and behavior with outputConfig flags from scheme and/or cli args and their combinations. (their scheme files are basically duplication of regular tests scheme files, only with variations of the output config args). We may add some unit tests instead to make sure that the overriding of those args work as expected, and that outputConfig writes output to files as expected, but that may be for another issue.

committed the remove of output_configuration_tests and its "support" in code.
for now: still keeping the "actual_output_files" , I don't see much value by preserving them either, but if it can be used as an indicator/example for any user so might should be available, especially that are written only when the dont_clean_output_files flag used.

hi @shireenf-ibm , we should keep the support for overriding output configuration args (in schemeRunner and nca.py). We are only removing the output_config tests.

ok then re-writting the files

hi @shireenf-ibm , we should keep the support for overriding output configuration args (in schemeRunner and nca.py). We are only removing the output_config tests.

I am confused a bit.

in cmdline tests the format and output args are still supported.
in scheme runner, the only option to override the format/output args was by adding these args to the tests_spec file.
(now the only option is to add them in the the output configuration section of each query in the scheme file).

so by "resetting the last changes from my last committs", we'll keep the out_file and out_format supporting from test spec (means also the changes in run_all_tests.py in last commit will be  reset too). am I right?

hi @shireenf-ibm , as we discussed, let's update the following:

[ ] Return value for cli query to be a number between 0 to 3, represented by 2 bits: first bit for original return value, and second bit for the output comparison result.
Make sure that original return value was indeed boolean for all cli queries (including equiv / 2waycontainment).
[ ] Update documentation for the return value of cli query and scheme file

hi @shireenf-ibm , as we discussed, let's update the following:
* [x]  Return value for cli query to be a number between 0 to 3, represented by 2 bits: first bit for original return value, and second bit for the output comparison result.
  Make sure that original return value was indeed boolean for all cli queries (including equiv / 2waycontainment).

* [x]  Update documentation for the return value of cli query and scheme file

I read how the result of each cmd-line query is computed and wrote them to an excel table.
all cli pair configs queries return bool result.
single query sanity may return a result > 1 , thats the reason of res > 0 .
command_line_query_results.xlsx

I found a new bug when running single cli test with expected output file  (connectivity and semantic diff)
The bug is with printing the config name in query output explanations.
the nca cmd line runs with absolute path.
but the config.name in code is the relative path from the "tests" dir.
I can fix this by printing the basename of the file instead of paths, in the relevant output sentences. -- fixing it

hi @shireenf-ibm , as we discussed, let's update the following:
* [x]  Return value for cli query to be a number between 0 to 3, represented by 2 bits: first bit for original return value, and second bit for the output comparison result.
  Make sure that original return value was indeed boolean for all cli queries (including equiv / 2waycontainment).

* [x]  Update documentation for the return value of cli query and scheme file

I read how the result of each cmd-line query is computed and wrote them to an excel table. all cli pair configs queries return bool result. single query sanity may return a result > 1 , thats the reason of res > 0 . command_line_query_results.xlsx

great, thanks for this check


It is hard to see how to enter specific prevalence data once you have selected a location already

On the calculator, the initial state allows you to enter your own prevalence data, e.g. if you know about your local area and want to use that more accurate data.
However, if you select a location, it is very difficult to see how to then revert your decision, and input your own data. Originally, when making this issue, I believed it was impossible to revert your decision. I had been going to complain that because the form selection is persisted between page reloads, you cannot get around this by reloading the page.
However, I have since found that clicking on 'Select location or enter data' in the first of the two location drop-downs allows me to enter my own data.
It's not just me who has found it difficult to find the way to revert the decision. I shared the site with my partner (while telling her not to share it on further) yesterday, and she commented on this (unsolicited):

it's a shame microcovids doesn't let you have more granularity than 'England'. It would be good if i could enter cases in Hackney or London  + population, because i'm guessing the risk that the calculator outputs will be 'diluted' by all the less-risky parts of england

i get that they can't have access themselves to data for everywhere in the world, but it looks like i ought to be able to adjust the pop and case numbers myself, but I can't.

I suggest adding a button saying 'Fill in own data' which has the same effect as clicking 'Select location or enter data'. I most likely will not have time to make this button myself before launch.

Good point, David. We should add a button to clear the location data, but we honestly might not get to that for a while. If you wanted to send a PR for that over, we'd be happy to take it.
In the meanwhile, here are two workarounds:

hit "reset"
set the location to "Select location or enter data..."


Add support in Names and Role Provisioning Services for lti11_legacy_user_id and Fix handling of string[] claim types

This is also provided in the JWT token parser for launches, but the IMS migration guidance technically only provides for this value from NRPS. In any case, it's important to have support for this value from NRPS.

@hempels Since it has been a time, can you indicate wether this PR should still go in?

@hempels Since it has been a time, can you indicate wether this PR should still go in?

Yes, the changes are still relevant and we're using them in our production environment.


Generalize VectorFieldPlot

This PR makes the VectorField element and plot mirror other elements more closely in that color and size can be mapped to any arbitrary dimension. It is a backwards compatibility breaking change but makes it more consistent and more powerful. I've used it extensively in my thesis for plots where the angle, magnitude and color are three separate dimensions:

Clearly a very useful change, and improves consistency.  It looks like parameter names (and meanings) have changed, which is fine -- at least then people will get a syntax error if they try to use the old one.  When you did something similar to the Points object, generalizing how it treats extra dimensions, it caused a lot of silent and very confusing problems; are those likely to happen from this too?  Vector fields are definitely less commonly used than Points, so it can't be as bad as that was, but it would be nice to know whether e.g. vectors will now suddenly start having crazy lengths and colors like Points did, for data that has more dimensions than were previously used.

When you did something similar to the Points object, generalizing how it treats extra dimensions, it caused a lot of silent and very confusing problems; are those likely to happen from this too?

That was a change to the sizing behavior which did not change the API. In this case I should simply set the size_index to 3, which will match the previous behavior. I think I made a mistake in the points case and enabled size scaling by default which probably should not be the case.

Ready to merge.

Looks good and the pr build passed.
I would merge if it weren't for this:

It is a backwards compatibility breaking change but makes it more consistent and more powerful.

Should we try to do something for backwards compatibility before merging?

Should we try to do something for backwards compatibility before merging?

Now that I've set the size_index appropriately the default behavior hasn't actually changed. So I think I'm wrong about backwards incompatibility, it just makes it more flexible now.

The push build won't pass because the PR is slightly behind I think. If you want I can update it but I think it's ready to merge regardless.

Sounds good to me!

Ok, given that we think backwards compatibility is retained and this is more flexible, I will merge it now.


pleasant surprise

Wow I can't believe this, I have to give a talk next week about react related stuff, like weird things that can be done with react, I would love to show this. if you help me I can show it to the community and give your repo for more information. I have an Arduino uno board and a raspberry pi by the way.

Sure, what do you want to do? There is an example you can look at for a reference. In next couple of days I will be also adding some docs and proper contribution guide

I want to be able to at least blink a led in my arduino but I can't see where I can make configuration because there is no documentation on the repo.

I saw this presentation last night https://youtu.be/xzr8XWv540Y?t=4h16m6s I found out about it by looking at the code, good!


fix(select): Using label and placeholder on non label-fixed select br…

…eaks input styling

It looks like the duplicated version of #755. Do we need this? We should go through with one MR imho.

It's looks like the duplicated version of #755. Do we need this or maybe we can go through with


rf_agg_local_mean error with ProjectedRaster type

Initially saw this in doing a df.groupby.agg(rf_agg_local_mean('proj_raster)) in Python. The use of rf_tile was the immediate work around.
I don't understand the cast error, but I suspect a red herring here.
I will file a PR with a (ignored) unit test.
java.lang.ClassCastException: java.lang.Double cannot be cast to org.apache.spark.unsafe.types.UTF8String
	at org.apache.spark.sql.catalyst.expressions.BaseGenericInternalRow$class.getUTF8String(rows.scala:46)
	at org.apache.spark.sql.catalyst.expressions.GenericInternalRow.getUTF8String(rows.scala:195)

@vpipkt

I don't understand the cast error, but I suspect a red herring here.

FWIW, the error is technically on point because what's going on is that the struct layout of proj_raster has a double in the first field, but TileUDT expects the first field to be a string... basically a clear sign I missed this use case.


strange example

You give this as example
ocgdb -create -pgn big1.png -pgn big2.png -db :memory: -elo 2100 -o moves,moves1,discardsites

Is this a typo, or douse it makes sense to list the options moves,moves1 ?

It is correct and the example is in purpose. The database can have zero, one, or two columns for moves. In the case of having two columns, the first one must be Moves for moves in text format (human-readable), the other column could be either Moves1 or Moves2 for moves in binary formats.

Thanks for the explanation.


Small cleanup, resolving some minor issues.

The version  and the added continue needs to be checked.

please squash this PR.


Unit Suite, Travis Build & NPM Deploy

Features Added

fixtures and fixtures-failure -- replay fixtures to mock rest responses
test/index.js - mocha + chai + chai-as-promised + replay suite to test basic init
travis.yml - runs test suite and deploys to npm for a tagged commit
badges added to Readme.md -- shows travis status, dep status etc
istanbul / nyc -- shows code coverage during test run.
.eslintrc (not yet blocking build) -- configured to use the existing conventions

How to Run the Tests
$ export AUTH_TOKEN=test BLINK_NETWORK_ID=10000 BLINK_REGION_ID=rest.prod
$ yarn
$ yarn test

Setup Required
After merging this PR, you'll need to add your npm API key like this
 travis encrypt --add deploy.api_key NPM_API_KEY

thanks, @tonymet , great job!


UI Component icon set

Describe the requested icon
Explain the icon you'd like to see, and potential use-cases.
Screenshots
If applicable, add screenshots to help illustrate the icon appearance.
Additional context
Add any other context here.

Sorry @ERMRivas, you haven't added any details here. Can you clarify what you mean?


how to use socketcluster with express.js

hi i cant find out how to use socketCluster with express.js
please help me , thanks

Just run:
npm install -g socketcluster
socketcluster create myapp

@tiaod thanks man, i didn't know sample used express.


Widgets not displaying

Hey,
After recent release of idom==0.36.3 i updated my environment and all components stopped working in JupyterLab (even simple example from readme file).
They're simply not displaying and in the browser console, following error is logged:

After downgrading idom to version 0.36.2, everything started working fine.
I've just started playing with idom (i love it!) so i'm afraid i'm not able to help you guys figure out what's wrong.
Cheers!

0.36.3 turned out to be a breaking change. There will be an update to idom-jupyter that should fix the issue.

@WulkanHefajstos if you're at all interested in contributing to the project I'd be happy to answer questions during office hours

I just released idom-jupyter 0.7.4 which should fix this. Please re-open this if that doesn't resolve the problem.


Spammy tweets when DDoS

When a DDoS occurs, the bot is spamming tweets (maybe due to auto-restart scripts of the Albion servers)

Related: https://www.reddit.com/r/albiononline/comments/6srxlx/so_i_decided_to_follow_albionstatus_to_see_if_the/

An idea would be doing a lookback and a "transit" state:

On server status change to online, look at the last 10 to 15 entires (which is equivalent to the last 10 to 15 minutes).
If the majority [66%+] of these statuses are "online" too, set the current state to online.
Else, set the status to "unknown" and inform that the servers appear to be online, but that isn't sure

Pros:

Not so much fluctuation on twitter
More reliable result

Cons:

Slower results. When the server is really back, people will know this after 5 to 7 minutes..


refactor: updated sdk constraints and removed warnings

refactor: updated sdk constraints and removed warnings

Implementation Notes

Removed all code warnings based on Missing a required trailing comma present in several tests.
Upgraded Dart SDK constraint to support recent versions, in this case, sdk: ">=2.16.0 <3.2.7".
Upgraded all dependencies to the latest version, including the package flutter_secure_storage marked on pub.dev as one of outdated packages, consequently, decreasing the score of json_cache.


New Scraper: Friant Water Authority

Create a new scraper for Friant Water Authority
Jurisdiction:
Website: https://friantwater.org/calendar

Hello, may I work on this task?

Hi Darren, yes, thank you again!

@RenTrieu Hi Darren. My name is Hails. Thank you so much for helping out on the repo, we really appreciate it.
i know a lot of the issues are assigned to me; if you find an issue you want to work on, even if it's assigned, by all means comment on it and i'll reassign it to you instead. thanks again, cheers.


Failure to parse French localization of August (Août) due to RegEx

The localization files for French have August set as Août but Flatpickr fails to parse this month due to the RegEx used \w as this does not pick up unicode values.
Here's fiddle showing the problem, using latest version of Flatpickr:
https://jsfiddle.net/tripflex/smgdaLfv/
Basically when regex parses Août it only matches Ao and t and does not match full wording Août

Thank you @tripflex, that's an interesting bug. I will try to look at it this week.


Properties with types conforming to a protocol not detected

I'm creating a script to detect types conforming to a ghost protocol so I can convert those objects to JSONConvertibleObject and implement a json dictionary as a property.
With {% if not var.type.implements.JSONConvertibleObject %}{{ var.name }}{% else %}{{var.name}}.json I'm attempting to detect if a variable conforms to the JSONConvertibleObject protocol. If so, I want its .json property instead of the swift object.
I've tried defining this protocol during codegen and outside of codegen. Either way, structs defined during codegen aren't detected as conforming to JSONConvertibleObject. I've also used .based instead of .implements but I always get {{var.name}} instead of {{var.name}}.json
import Foundation

protocol JSONConvertibleObject: Codable {
    var json: [String: Any] { get }
}

{% for type in types.implementing.JSONConvertible %}
struct {{ type.name }}: JSONConvertibleObject {
    {% for var in type.variables %}
    let {{ var.name }}: {{ var.typeName }}
    {% endfor %}

    var json: [String: Any] {
        [
        {% for var in type.variables %}
            "{{var.name}}": {% if not var.type.implements.JSONConvertibleObject %}{{ var.name }}{% else %}{{var.name}}.json{% endif %}{% if not forloop.last %},{% endif %}
        {% endfor %}
        ]
    }
}
{% endfor %}

Given:
struct A: JSONConvertible {
  let a: String
  let b: B
}

struct B: JSONConvertible {
  let a: Int
}

I would expect to see:
struct A: JSONConvertibleObject {
  let a: String
  let b: B

  var json: [
    "a": a,
    "b": b.json
  ]
}

struct B: JSONConvertibleObject {
  var a: Int

  var json: [
    "a": a
  ]
}

However, I get "b": b instead in struct A's json property

The structs are defined in different modules which is why they share the same name

i would have approved with "not sure but i trust you"


Command services should not be defined as lazy services

When booting the console, commands are all registered in the Application. As this implies calling some methods on the command (to get the name and aliases and set the application), this forces the initialization of the proxy.
so marking the service as lazy does not bring any benefit but still adds the overhead of the proxy (forwarding all calls)

Closed via #266, thanks for the explanation @stof :)


Calico keeps making itself as the first rule in iptables chains

I'm running a recent version of Kubernetes which uses Calico as the network provider. When looking at iptables entries that Calico puts onto the host machine, I noticed that Calico reassert itself to be always the first rule in various iptables chains (I checked PREROUTING and FORWARD only). So even if I put my own iptables rules in these chains as the first ones, after a few seconds, Calico puts its own rule at the head of the chain again. Is this expected behavior? If so, is there a way to turn this "feature" off?

https://docs.projectcalico.org/v3.7/reference/calicoctl/resources/felixconfig
I think you want chainInsertMode

Thanks @lwr20 ! Default mode is insert, no wonder it puts it in the front. Just curious, why does Calico insist on doing this periodically? In case someone inadvertently deleted the rule?

From that doc:
Insert is the safe default since it prevents Calico’s rules from being bypassed. If you switch to Append mode, be sure that the other rules in the chains signal acceptance by falling through to the Calico rules, otherwise the Calico policy will be bypassed.

Its very easy to add a rule which totally bypasses all the calico rules, leading to a setup which is not secured at all by Calico.
The default is more secure, and the existence of the flag means that users who know what they are doing can turn it off.

So I followed the instructions on the page above and tried to modify these configurations, but got an error that I don't know how to interprete:
root@haih-istio1:~# cat felix.yml
apiVersion: projectcalico.org/v3
kind: FelixConfiguration
metadata:
  name: default
spec:
  ipsetsRefreshInterval: 0
  iptablesRefreshIntervalSecs: 0
  routeRefreshIntervalSecs: 0
root@haih-istio1:~# DATASTORE_TYPE=kubernetes KUBECONFIG=/etc/kubernetes/admin.conf ./calicoctl apply -f felix.yml
Failed to execute command: Unknown resource type (FelixConfiguration) and/or version (projectcalico.org/v3)

Well, the way around this seems to be setting environment variables on the calico-node daemonset. That seems to have worked so far. Closing this issue.


MM-17609 Add EnableSVGs setting and ExternalImage component

As mentioned in the other PR, this adds a setting to toggle the rendering of SVGs in things like file attachments and image links. For external images, it touches everywhere that the image proxy logic would, so I refactored that into an ExternalImage component that can now be reused wherever we have those images instead of reimplementing the same logic repeatedly.
Ticket Link
https://mattermost.atlassian.net/browse/MM-17609
Related Pull Requests
https://github.com/mattermost/mattermost-server/pull/11874

Okay for QA to test this after it's merged. Removing QA Review label.


API - objects method currently timing out

The objects method currently times out in the API. Cassandra is responsive to calls (e.g. from lightcurves) but objects times out.

Fixed -- problem was the if os.path.exists(filename): repeated 2000 times on the CephFS


How to embed a license icon on my React.js application?

Hello, whenever I tried to embed a licence icon on my React.js application, I'm seeing this error:

SyntaxError: D:\Node.js Projects\React Apps\Project Name\components\ComponentName.js: Namespace tags are not supported by default. React's JSX doesn't support namespace tags. You can turn on the 'throwIfNamespace' flag to bypass this warning.

  28 |
  29 |

> 30 |
     |                 ^

I tried to replace xmlns:dct with xmlnsDct and the other namespace tags with their camelCase forms but that just caused another problem making xmlnsDct and the others non-valid properties.
Any solution for this?

tagging @brenoferreira

Setting it as an inner HTML like the following will do the work:
<div
  className="license"
  dangerouslySetInnerHTML={{
    __html: `
      {/* CHILD ELEMENT */}.
    `
  }}
/>


Adapt to networkservicemesh/sdk#1083

Signed-off-by: Ed Warnicke<EMAIL_ADDRESS>

Will not pass CI until https://github.com/networkservicemesh/sdk/pull/1083 is merged


bug: empty string ('') added (in some cases) when using word_tokenize with join_broken_num=True

Description
The empty string ('') added after apply_postprocessors with rejoin_formatted_num when join_broken_num=True (default) in word_tokenize, in some cases such as : ',1.1 ', '(1:5) '
which cause the error in spaCy-PyThaiNLP (https://github.com/PyThaiNLP/spaCy-PyThaiNLP/issues/4)
Expected results
from pythainlp.tokenize import word_tokenize

text = ",1.1 "

word_tokenize(text) # join_broken_num=True as a default
#output [',1.1', ' ']

Current results
from pythainlp.tokenize import word_tokenize

text = ",1.1 "

word_tokenize(text) # join_broken_num=True as a default
#output [',1.1', '', ' ']

Note that the empty string '' is added unexpectedly.
Steps to reproduce
when using word_tokenize with join_broken_num=True to process text with pattern like ",1.1 " or "(1:5) "
PyThaiNLP version
5.0.2
Python version
3.10.12
Operating system and version
Google Colab
More info
No response
Possible solution
After the investigation, I found that the problem lies in the rejoin_formatted_num function https://github.com/PyThaiNLP/pythainlp/blob/a38fd5e84148402929c861c7e49afd0c5a08abfb/pythainlp/tokenize/_utils.py#L26
In the nested while loop below, there are cases where the statement pos < match.end() is false during the first iteration. Consequently, the statements inside never execute, resulting in connected_token remaining an empty string, which is then appended to tokens_joined
while segment_idx < len(segments) and match:
        is_span_beginning = pos >= match.start()
        token = segments[segment_idx]
        if is_span_beginning:
            connected_token = ""
            while pos < match.end() and segment_idx < len(segments): # here
                connected_token += segments[segment_idx]
                pos += len(segments[segment_idx])
                segment_idx += 1

            tokens_joined.append(connected_token)
            match = next(matching_results, None)
        else:
            tokens_joined.append(token)
            segment_idx += 1
            pos += len(token)

One possible solution is to add the statement if connected_token != "": to check before appending connected_token to tokens_joined
Result in the full code of the function "rejoin_formatted_num" is provided below
def rejoin_formatted_num(segments: List[str]) -> List[str]:
    """
    Rejoin well-known formatted numeric that are over-tokenized.
    The formatted numeric are numbers separated by ":", ",", or ".",
    such as time, decimal numbers, comma-added numbers, and IP addresses.

    :param List[str] segments: result from word tokenizer
    :return: a list of fixed tokens
    :rtype: List[str]

    :Example:
        tokens = ['ขณะ', 'นี้', 'เวลา', ' ', '12', ':', '00น', ' ', 'อัตรา',
                'แลกเปลี่ยน', ' ', '1', ',', '234', '.', '5', ' ', 'baht/zeny']
        rejoin_formatted_num(tokens)
        # output:
        # ['ขณะ', 'นี้', 'เวลา', ' ', '12:00น', ' ', 'อัตรา', 'แลกเปลี่ยน', ' ', '1,234.5', ' ', 'baht/zeny']

        tokens = ['IP', ' ', 'address', ' ', 'ของ', 'คุณ', 'คือ', ' ', '127', '.', '0', '.', '0', '.', '1', ' ', 'ครับ']
        rejoin_formatted_num(tokens)
        # output:
        # ['IP', ' ', 'address', ' ', 'ของ', 'คุณ', 'คือ', ' ', '<IP_ADDRESS>', ' ', 'ครับ']
    """
    original = "".join(segments)
    matching_results = _DIGITS_WITH_SEPARATOR.finditer(original)
    tokens_joined = []
    pos = 0
    segment_idx = 0

    match = next(matching_results, None)
    while segment_idx < len(segments) and match:
        is_span_beginning = pos >= match.start()
        token = segments[segment_idx]
        if is_span_beginning:
            connected_token = ""
            while pos < match.end() and segment_idx < len(segments):
                connected_token += segments[segment_idx]
                pos += len(segments[segment_idx])
                segment_idx += 1
            if connected_token != "":
              tokens_joined.append(connected_token)
            match = next(matching_results, None)
        else:
            tokens_joined.append(token)
            segment_idx += 1
            pos += len(token)
    tokens_joined += segments[segment_idx:]
    return tokens_joined

Files
No response

or just if connected_token : for simplicity

Thank you for reporting and possible solution! Can you open the pull request for fix the bug?

opened the pull request.

Merged. Thank you.


editorial updates to PR #7400 after the merge

Follow on PR to #7400 which was merged before I was able to see and resolve some of the feedback requests

This change is

/hold

@steveperry-53 or @zacharysarah feel free to remove the /hold and merge if you're happy with these updates.
/assign @zacharysarah
/assign @steveperry-53


Add rc override options and better documentation on configuring sizes/etc.

This also adds a new pypi upload action!


Request: Exclusion to sleep/timer

There are things that should always trigger @timer regardless if the sector is sleeping. typedefs such as t_crop.
items on the ground should always decay because otherwise when someone comes into the mouth of a dungeon they see everything then it disappears a second later, this results in countless people paging about bugs.
mounted pets should always trigger @hunger otherwise mounted pets dont lose food levels.  Though @drk84  might of fixed this with #871  i'll have to check!

It's 100% true. Some exception should be made on some situation.

closing this out, not required to do this in the source, people can control sector sleep and have can_o_nosleep where needed.


server_config.json  "enableDurability": false,   Does not seem to work in game.

Is there an existing issue for this?

[X] I have searched the existing issues

Used image version
mornedhels/enshrouded-server:latest
Used docker compose file or docker command

What you expected to see, versus what you actually saw
When add all the new environment variables like described in the Code section. It seems SERVER_GS_ENABLE_DURABILITY works by editing the server_config.json. However, when in game the durabilty of weapons still goes down when using them.
Does anyone else have this issue? And is a issue in the server image or with the game server in general?
Logs from the container
No response

Hey @joeyb276, what is the setting for the preset? For any kind of difficulty modification it has to be Custom.

Hey @joeyb276, what is the setting for the preset? For any kind of difficulty modification it has to be Custom.

Ah nice, I had no idea you also has to use that variable. I picked and choose the ones I though would be nice for a return to the game due to the last update.
Thank you very much ^^. I notice my server now has a feather icon and my durability is gone.


Patch CVEs in go.mod of node-driver-registrar

Description

Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[x] Release note

Release Note

Patched fixes for CVEs in upstream node-driver-registrar.

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

Removing "merge-when-ready" label due to new commits


adding more alert rules

adding more alert rules to alert on
diskspace by percentage
node restarted
container down
note, I also add label so that when we raise alert to alert manager, we can use different routes for different severity.

Looks sweet! Thanks @QingsongYao!


Feat todo and various fixes

feat(Button): improved accessibility with focus styles
fix(ConnectButton): made storybook docs better with decorator
feat(WalletModal): fix storybook with decorator and made responsive

Nice


Add author field to version

Author is printed alongside the version, similar to the inclusion of the
author in --version for GNU utilities and the author field in Rust's
clap crate.

Excellent feature addition. Thank you.


cannot read an I2C command of unkown length (IDFGH-13004)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
5.2.2
Espressif SoC revision.
ESP32
Operating System used.
Windows
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
None
Development Kit.
ESP32-DevKitC
Power Supply used.
USB
What is the expected behavior?
it should be possible to read a I2C request of unknown length on slave side
it should be possible to read a I2C response of unknown length on master side
What is the actual behavior?
it is not possible ... or I don't understand how to do it
Steps to reproduce.
use 2 ESP32, one as master, one as save
I want the master to send length/value data to the slave so the exact size of the data sent by the master to the slave is unknown on the slave side. The data have a known maximum length.
master uses i2c_master_transmit to send the data. First 2 bytes are used for length, example: 0x03 0x00 0xAA 0xBB, 0XCC to sent AABBCC from master to the slave. In this example we could assume that the maximum length is 256.
If on slave side I use i2c_slave_receive with a length of 5 I get all my data but I cannot do that since I do not know the length of the request.
If on the slave side I use a length of 2 in i2c_slave_receive I get the length part of the request (0x03 in my example) but if I call i2c_slave_receive with this length of 3 I do not receive any data because it expects a new I2C request to do something.
If on the slave side I use the maximum length of 256 in i2c_slave_receive I have memory issues and sometime crashes in s_i2c_handle_complete because it really try to read 256 bytes.
Debug Logs.
No response
More Information.
this was possible with the legacy driver.
The only solution I would have with the new driver would be to always send the maximum number of bytes but in term of performance this is really bad because I will send lots of useless 0x00 to pad the data sent.

I have changed a little bit the function s_i2c_handle_complete in the same way s_i2c_handle_rx_fifo_wm is written and it seems to work now: I can call _i2c_receive_slave with a length that is the maximum length of my message and it will read correctly if the message is shorter.
`static IRAM_ATTR void s_i2c_handle_complete(i2c_slave_dev_handle_t i2c_slave, i2c_slave_receive_t *t, BaseType_t *do_yield) {
i2c_hal_context_t *hal = &i2c_slave->base->hal;
uint32_t rx_fifo_cnt;
i2c_ll_get_rxfifo_cnt(hal->dev, &rx_fifo_cnt);
if (rx_fifo_cnt != 0) {
uint32_t fifo_cnt_rd = MIN(t->rcv_fifo_cnt, rx_fifo_cnt);
i2c_ll_read_rxfifo(hal->dev, i2c_slave->data_buf, fifo_cnt_rd);
memcpy(t->buffer + i2c_slave->already_receive_len, i2c_slave->data_buf, fifo_cnt_rd);
i2c_slave->already_receive_len += fifo_cnt_rd;
t->rcv_fifo_cnt = 0;
}
if (i2c_slave->callbacks.on_recv_done) {
i2c_slave_rx_done_event_data_t edata = {
    .buffer = t->buffer,
};
i2c_slave->callbacks.on_recv_done(i2c_slave, &edata, i2c_slave->user_ctx);
xSemaphoreGiveFromISR(i2c_slave->slv_rx_mux, do_yield);
i2c_ll_disable_intr_mask(hal->dev, I2C_LL_SLAVE_RX_EVENT_INTR);

}
}`


Multiple Plex Servers?

Is there a way to add additional servers to the config file, or a way to define a config file from the -o options?

I personally use this wrapper:

https://github.com/glensc/plex-fuse/blob/d862e3e74cdb812ddf77dc9b909a3c4255bdb388/contrib/plexfuse.sh

it does set PLEX_XXX variables for plexapi libarry:

https://python-plexapi.readthedocs.io/en/latest/configuration.html


Improve trait system for bindings/wrappers

Fixes https://github.com/makspll/bevy_mod_scripting/issues/108

This branch has some good ideas and will act as a "spike". I will be pinching ideas from here one by one:

Refactoring all systems + Improving the UI
Implementing runtime safety traits
Implementing proxy traits which will replace complex macros

Closing in favour of: https://github.com/makspll/bevy_mod_scripting/pull/149 due to upgrades since I've started this


Subdomain routing for administration area

Added 'domain'  option to allow the routing group the implementation of sub-domain routing (http://laravel.com/docs/routing#sub-domain-routing)
This allows to have a custom domain just for the admin area as a whole .
The option is empty by default, leaving the behaviour unaltered if not filled.

This is an instersting thing @stormsson I am maintaining the code now so fix the pr to be right and I will get it in.

@davemathews I created a new pr


fetchOptions was not passed to fetch

other options were not passed to fetch
https://github.com/extractus/feed-extractor/blob/93c7dcb7ec6c515b64f70ee75c52a2fc30b814fa/src/utils/retrieve.js#L17-L25

@kahosan yes, currently we only allow to set fetch headers.


Remove chmod on extracted SDK tarball except on z/OS

Fixes https://github.com/AdoptOpenJDK/openjdk-infrastructure/issues/963
(Shelly, obviously I'm happy for alternatives to this, but not doing this by default seems sensible ...)
Signed-off-by: Stewart Addison<EMAIL_ADDRESS>

Apologies - fixed now and it's passed that point at https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/957/console


randperm() received an invalid combination of arguments

When I run  python train.py -d cora -m mbm, the error occurred as follows:

Traceback (most recent call last):
  File "train.py", line 147, in
    main()
  File "train.py", line 141, in main
    batch_train_and_test(args)
  File "train.py", line 90, in batch_train_and_test
    dataset = load_dataset(name=args.dataset, feature_range=(0, 1), sparse=True, device=args.device)
  File "/home/nqluo/experiement/lpgnn/datasets.py", line 91, in load_dataset
    dataset = _available_datasets[name](root=os.path.join(root, name))
  File "/home/nqluo/anaconda3/envs/torch-gpu/lib/python3.7/site-packages/torch_geometric/datasets/planetoid.py", line 55, in __init__
    super(Planetoid, self).__init__(root, transform, pre_transform)
  File "/home/nqluo/anaconda3/envs/torch-gpu/lib/python3.7/site-packages/torch_geometric/data/in_memory_dataset.py", line 54, in __init__
    pre_filter)
  File "/home/nqluo/anaconda3/envs/torch-gpu/lib/python3.7/site-packages/torch_geometric/data/dataset.py", line 92, in __init__
    self._process()
  File "/home/nqluo/anaconda3/envs/torch-gpu/lib/python3.7/site-packages/torch_geometric/data/dataset.py", line 165, in _process
    self.process()
  File "/home/nqluo/anaconda3/envs/torch-gpu/lib/python3.7/site-packages/torch_geometric/datasets/planetoid.py", line 109, in process
    data = data if self.pre_transform is None else self.pre_transform(data)
  File "/home/nqluo/experiement/lpgnn/transforms.py", line 76, in __call__
    perm = torch.randperm(num_nodes_with_class, generator=self.rng)
TypeError: randperm() received an invalid combination of arguments - got (int, generator=NoneType), but expected one of:
 * (int n, torch.Generator generator, Tensor out, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool requires_grad)
 * (int n, Tensor out, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool requires_grad)

I wonder it is the thing related to my torch version? my torch is 1.4.0+cu100

Yes, it is most likely due to your PyTorch version. You can remove "generator=self.rng" in transform.py line 76 to make it work (this option is not actually used in the code, just for debugging), though I cannot guarantee the rest of the code would run without error with your PyTorch version.


0x780c0C651C4f676A6cCAdc09E34150F97cE0066b.png

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

[x] Filename in the lowercase format
[x] Image format: png
[x] Image size: 256 by 256 px

Merged in: https://github.com/TrustWallet/tokens/commit/d3b63f659242f5a7113e4887f0458ac32a82bbff

Also, you can use these graphics to say that your ERC20 token fully compatible with Trust Wallet (https://trustwalletapp.com/logo-assets). Tokens will show up automatically once the user receives them.
Feel free to share this on social media and tag Trust Wallet:
Twitter: @TrustWalletApp
Facebook: @TrustWalletApp


Upgrade to 0.8.2

A new update has been released. Please update your download url.

Thanks. I've made the update.
Btw, if you are using this image, I just want to give you a head up, I plan to move this over to the official xonotic/ namespace soon.


It should be possible for tasks to be notes

When creating a task, it would be useful to be able to create a new note based off of that task. The new note created based off of the task could use the "Description" as the title and add YAML properties of "due date", "status", etc.
For example:
- [ ] #task [[new task]] 📅 2021-05-02
See that "new task" is the new note, which would look something like this with the YAML attributes:

Better yet, maybe we could specify a template file for new tasks. I think this would really take this plugin to the next level, even though it's amazing as it is. Thank you!

Hey there, thank you for the idea. I think this would be relatively high effort and I don’t think that I would have the time to do that soon.
But maybe for the time being we can find a somewhat similar workflow that allows you to do what you want to do.
If I understand you correctly, the main goal of this is to have more details or context in a task. If you have a note, you can add any data to the task you want. Images, tables, etc.
In the current implementation, you can achieve almost the same, if I understand correctly what you want. Obsidian is based around files, so you can have files and folders as you wish. And tasks are gathered from any note to be listed in queries.
Couldn’t you - with the current implementation - create a note for a task and then simply add the task inside that note using the existing syntax (- [ ])?
Please elaborate on your needs if I didn’t understand you correctly or if you are looking for more.


Add annotations for proof carrying code to C output

Make sure that proofs can run from C as an intermediate representation. This would make work for other projects that want to support proof carrying code.

LM -> C+PCC -> LM+GNU+PCC -> Object File
with human readable intermediates at each step.


open source test data generation with authentication API

What type of PR is this?

Improvement
What does this PR do / why is it needed ?

open source test data generation with authentication API
https://github.com/finos/legend-engine/assets/73408381/cd906d91-67d2-4a0f-a013-7e8c1f9a831f
Which issue(s) this PR fixes:

Fixes #
Other notes for reviewers:
Does this PR introduce a user-facing change?

This PR is stale because it has been open for 30 days with no activity. Please remove stale label or add any comment to keep this open. Otherwise this will be closed in 5 days.

this pr is on hold.

This PR is stale because it has been open for 30 days with no activity. Please remove stale label or add any comment to keep this open. Otherwise this will be closed in 5 days.

This PR was closed because it has been inactive for 35 days. Please re-open if this PR is still relevant.

cleaned and closed by https://github.com/finos/legend-engine/pull/3047


⚠ CIOOS Pacific ERDDAP dataset ECCC_MSC_BUOYS has degraded performance

In 62bd0ed, CIOOS Pacific ERDDAP dataset ECCC_MSC_BUOYS (https://data.cioospacific.ca/erddap/tabledap/ECCC_MSC_BUOYS.htmlTable?wmo_synop_id&time>now-3hours&distinct()) experienced degraded performance:

HTTP code: 503
Response time: 24103 ms

Resolved: CIOOS Pacific ERDDAP dataset ECCC_MSC_BUOYS performance has improved in 8adcb2d.


Cannot Update Extension to Latest Version (firestore-bigquery-export)

Extension name: firestore-bigquery-export
Extension version: 0.1.26, 0.1.30, etc.

Steps to reproduce:
We have several installations of the firestore-bigquery-export extension in a project. Various versions ranging from 0.1.20 to 0.1.30. All of them report that there is a New Version Available. However, clicking through the update procedure (Update Extension, Next, Next, Next, ..., Update Extension) has no effect. The Update Extension button turns gray and has a spinner, but nothing happens.
I've checked the Functions logs, and there appears to be no activity related to the Extension upgrade there.
I'm currently debating whether to uninstall the extensions and start over, but this would lose a lot of historical data.
Expected result
Clicking the Update Extension button updates the extension to the latest version.
Actual result
Clicking the Update Extension button does nothing.

Greetings. Yes, I just tried it, and the same thing (nothing) is still happening as described above.

Firebase support has indicated this as resolved

Confirmed. It seems to be working now. Thanks for the update @jackstruck !


Convert the Photo based clusters to CSS

This should improve support in different screen resolutions + improve performance.

@galraij, I saw that the new cluster design was merged into dev today by @danielhers so I'm considering this close (for now ;)).


Should I use GIS to explore the demographies of sports arena seating?

An undergraduate student in Statistics is working on an independent research project related to sports arena seat locations.
The end result of their project will be a spatially registered sports arena map that can be used to visualize where people come from who sit in specific arena sections to place advertising within arenas.
This user has had a few class sessions on GIS; however, is interested to see how GIS can apply to this project.

The problem : Assistance in finding new data sources.


Update crates.io version

The wasm-build in this package on crates.io seems to have regressed the fixes in #109
i.e. this version still strips 'deploy' symbol
cargo install pwasm-utils-cli --bin wasm-build

While the repo master is ok
cargo install pwasm-utils-cli --bin wasm-build --git https://github.com/paritytech/wasm-utils

0.7 out!


'Feature chart' and 'Feature overview' are overlapping

Hi,
I used 'multiple cucumber report' latest version and config as below:

After I ran testcases successfully, so report html generated with chart and feature overview are overlapping (Chart is very big):

Hi @daominhdam ,
That look like 2 big eyes looking at you ;-). This shouldn't happen.
On which browser do you have this? And do you see the same when you look at this report?

Hi @wswebcreation,
I resolved this issue now, because I used Windows OS and scale resolution my machine >100% (default).
So when I turn off it then view work well. 👍

Thanks you so much!

Not a problem.
By the way, are you using Protractor? If so,  I've just created a new module called protractor-multiple-cucumber-html-reporter-plugin that makes the integration of this module much easier in your current Protractor project and is also prepared for CucumberJS 3.
Gonna close this issue for now.


lnwire: Support upfront shutdown script feature

I noticed that this was part of the RFC, but not yet implemented here.

As is, this PR is complete as it doesn't actually implement the logic to use the option if supported by the other party, or ensure that both sides commit to the same delivery script.

I suppose you mean s/complete/incomplete? I know, it's an lnwire update, though. It doesn't make lnd use the feature flag yet, so it just makes it understand peers using the feature flag.

Needs a rebase!

I tried rebasing, but I forgot about the original logic so I can't reliably review my own work :) So I trust your reviewing judgement!

Replaced with 3655, this commit is included in the new PR 😄


Keyboard navigable context menus

[ ] When the cursor is visiting a block (or equivalently, when a block has focus) or visiting a connection (which, per #129, will only be possible when that connection does not have a connected block), pressing enter should open that block's context menu and give it focus.
[ ] The context menu should be able to display keyboard shortcuts for each item.
[ ] The user should be able to navigate the context menu using the up and down arrow keys.
[ ] The user should be able  and select the current item by using enter, or any item with a shortcut by pressing that shortcut; in either case the menu should close.
[ ] The user should be able to close the menu without selecting an item by pressing escape.
[ ] When the menu closes, focus should return to its previous location (i.e., the cursor's location)

Combined with proposals to add new context menu options (#TBD...), this facilitates discovering all relevant block-related keyboard shortcuts, including the possibility discovering one can navigate to a block's fields and inputs.

Updated proposal (and issue title) to reflect the need to be able to display context menus for connections, to support user discovery of the ability to place blocks using the revised marker workflow (see #102).


Download Problem

Hi,
I get the following error when I want to download all files belonging to a user. How can i solve this? Btw coomer.su is blocked our country. I can open it just with vpn.
(I hid username :))
https://coomer.su/onlyfans/user/*****/1393775654
Iniciando descarga...
Service extracted: onlyfans from site: coomer.su
Downloading only the posts from the provided URL...
Starting download process...
Error fetching user posts: HTTPSConnectionPool(host='coomer.su', port=443): Max retries exceeded with url: /api/v1/onlyfans/user/******?o=0 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1000)')))
No posts found for this user.
All downloads completed or cancelled.
Logs successfully exported to resources\config\logs\log_20241217_131533.txt
Logs successfully exported to resources\config\logs\log_20241217_131533.txt

See #28
If you aren't trying to dig into the code yourself, you would likely need to wait for Emy to add support for proxies/VPN configuration. There are quite a few reasons you could be running into this, and quite a few fixes, but there are some security concerns in trying to bypass SSL (implying Coomer even allows you).
If you are trying to dig into the code, I think you can adjust the initial request.Session() to pass it a dictionary of your proxy settings and all requests in the wider script will go through that. Depending on if your VPN provides proxy information, it could be something as simple as:
proxies = {'https': '_my_https_proxy_'}
s = requests.session()
s.proxies.update(proxies)

Just note that proxies and VPNs are vastly different in functionality, and likely in implementation to work with this tool as well. I think a proxy would be easier to implement, but is far less secure and not encrypted quite like a VPN.


Softmax Scores

Why are we unable to save softmax scores? I thought all nnUNet architectures allowed this
https://github.com/wasserth/TotalSegmentator/issues/199

TotalSegmentator is doing some pre and postprocessing. These steps are implemented for binary masks but not for float softmax images. Implementing this would be possible but currently does not have high priority on my list.


Custom Styling Clarity

The Custom Styling section is vague.
I specified within the _config.yml file like:
feed:
  path: /feed.xslt.xml

But xml-stylesheet isn't added to the generated file, it just renames it.

You are right, the documentation could use a bit more specificity. You do not need to modify the config to use an XSLT file; if a file named feed.xslt.xml exists, the feed will try to link to it.
Once you get this feature working on your site, perhaps you could open a pull request to update our documentation?

Yeah, once I get it working on mine I'll update the documentation.
Thanks for clarifying!

Maybe I'm doing something else wrong.
I added the feed.xslt.xml file to the root. feed.xml now contains <?xml-stylesheet type="text/xml" href="/feed.xslt.xml"?> near the top. This document appears to be the same as the normally generated RSS feed but with that addition.
When I load feed.xml it only shows a white screen. Inspecting it shows ...xml-stylesheet == $0.
When I load feed.xslt.xml the following appears at the top: "This XML file does not appear to have any style information associated with it. The document tree is shown below."
The inspected output for feed.xslt.xml:

This XML file does not appear to have any style information associated with it. The document tree is shown below.

I'm not sure what is going on here. The source that you have pasted looks like the default HTML that is displayed by Webkit when an XML feed is loaded. This isn't the contents of your XSLT file, correct?
Can you maybe provide a link to your feed? I'm curious to take a look.

feed.xml

Github
Dev Server

feed.xslt.xml

Github
Dev Server

Are there any examples of this feature working?

It seems that you have just added an empty file called feed.xslt.xml instead of providing an actual XSLT file. That's why it is not working.

Gotcha, I got it working.
Want me to close this issue with the documentation update?


typo fixes

Hi Dane,
I've made these fixes on devops and this readme will be updated next time we push a release to github.
Happy holidays,
Scott


Update preface.md

This is great! It is similar to the form of @giselechou's first draft, in that the conceptual density is more paced.
Both Glen and I felt, however, that the dense poetry makes it more effective as a vision statement, in line with the "we must develop here a positive vision" quote.


Support flat config

Closes https://github.com/younesaassila/eslint-plugin-curly-quotes/issues/18
This PR adds a meta field to the plugin, and provides type definitions, to make the plugin easy to consume in ESLint's new flat configuration format.

Oh well actually thanks to the cjsInterop there's no need for a major version bump. Older versions of ESLint are compatible with this change.
Merging!


Make ratelimit timeout configurable

Ratelimit calls have a hardcoded timeout of 20 milliseconds.  When latency is too high, the ratelimit service gets called, but envoy receives a 504 and allows the request proceed.  This timeout should be configurable.

This is flaking //test/integration:ratelimit_integration_test, so I'll look into fixing this.


Update how-to-build-agent-code.md

@matsujirushi I cherry-picked your change into develop branch here, at commit 6ef84de


feat: add poc for error boundary with error recovery

Closes #
New ErrorBoundary with react-error-boundary that enables a quick page restore.
Changelog
New

ErrorBoundaryPoc

Testing / Reviewing
Still need to test in an app.

Repo has been moved


Fix corrupted file signatures for webm files

Hello :wave:
Problem
I'm running into an issue on chromium browsers. My webm recordings are broken and won't play. After some digging it turns out that the reason they are broken is because of a malformed file signature. Matroska container files (like webm) should start with the following sequence 1A 45 DF A3. Unfortunately recordings made in Chromium browsers are missing the first byte. Firefox does not have this issue. If I manually prepend the 1A byte to the broken webm files, they become playable again.
Cause
I've done some debugging and found out that the inner internal recorder usually invokes the ondataavailable callback at the start of recording with a single (the missing 1A) byte. This internal ondataavailable callback does not invoke RecordRTC's ondataavailable callback. The culprit is this line in RecordRTC. It ignores any blobs that are smaller than 100 bytes. This means that the initial byte is being ignored, ondataavailable is not being called, and the webm recording ends up with a malformed file signature.
Fix
The fix is pretty straightforward; Omit the size check by changing the conditional from (e.data && e.data.size && e.data.size > 100) to (e.data && e.data.size).
Considerations
I'm not sure why we check for a minimum blob size of 100 bytes. Is it safe to remove this check?
My Environment
Browsers: Chrome 83.0.4103.116 (Official Build) (64-bit) & Edge 84.0.522.48 (Official build) (64-bit)
OS: macOS Catalina 10.15.6

@muaz-khan can you release this? thanks @stijnvanderpol


Harbor on K8s

Hey there.
I am half-way through with the setup following this doc (https://github.com/vmware/harbor/blob/master/docs/kubernetes_deployment.md)
I have generated the mc files with the prepare scripts and I am at the point where I am deploying all the yaml on K8s. They all go through but I am starting to have problems when I bring up the actual containers.
For example the registry (first in line in the instructions) fail to come up with this message in the logs:
mreferre-m01:harbor mreferre$ kubectl logs registry-rc-gh5vx

time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5000_TCP"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5000_TCP_ADDR"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5000_TCP_PORT"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5000_TCP_PROTO"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5001_TCP"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5001_TCP_ADDR"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5001_TCP_PORT"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_PORT_5001_TCP_PROTO"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_SERVICE_HOST"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_SERVICE_PORT"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_SERVICE_PORT_DEBUG"
time="2017-05-24T14:18:37Z" level=warning msg="Ignoring unrecognized environment variable REGISTRY_SERVICE_PORT_REPO"
time="2017-05-24T14:18:37.728472864Z" level=info msg="debug server listening localhost:5001"
time="2017-05-24T14:18:37.733843303Z" level=info msg="configuring endpoint harbor (http://ui/service/notifications), timeout=3s, headers=map[]" go.version=go1.6.3 instance.id=6f9cfc8f-b14f-478e-a4a6-14e0e08bd2a0 service=registry version=v2.5.0
time="2017-05-24T14:18:37.733948349Z" level=info msg="redis not configured" go.version=go1.6.3 instance.id=6f9cfc8f-b14f-478e-a4a6-14e0e08bd2a0 service=registry version=v2.5.0
time="2017-05-24T14:18:37.752328333Z" level=info msg="using inmemory blob descriptor cache" go.version=go1.6.3 instance.id=6f9cfc8f-b14f-478e-a4a6-14e0e08bd2a0 service=registry version=v2.5.0
panic: unable to configure authorization (token): token auth requires at least one token signing root certificate

I am wondering if this is a configuration problem of sort. I am attaching here the files I am using if you want to have a look.
make.zip
Thanks.

@mreferre The K8S installation guide is maintained by community and it does not work with the latest code.

Thanks @ywk253100. That's what I figured as I didn't see any reference to the adminserver container (which is part of 1.1.1).
Because of this I was trying to stand up a 0.5.0 version of harbor (when I hit that issue). I am however pursuing another root now so we can close this issue.
Thanks.


Add conversions from BitSlice into integers

Hi! I was using this crate, and I found a need to convert BitSlices back into integers of various lengths. This is different from the already-existing as_slice -- that gives direct access to the underlying storage, which might include bits on either side of the BitSlice if the BitSlice starts or ends mid-byte.
What I would like is the ability to convert from a BitSlice to a regular Rust integer, with bitvec performing whatever shifts need to happen behind the scenes.
I could put together a patch that would implement TryInto<u8>, TryInto<u16>, etc. for BitSlice types. Is that something that would be welcome?

I am working towards 0.16 away from master, largely because I have a lot of technical debt to clean up; on this branch I have the beginnings of a value load/store behavior: src/fields.rs.
Currently, it is restricted to the underlying type; I am still working on the design of howBitSlice can support trait-based load/store behavior for arbitrary types.
If I cannot resolve a design I like in the near term, I will publish 0.16 with the current storage-type-only behavior and leave the rest for future work.
I do not provide stability guarantees about tracking the git repository in your crate manifest, primarily because I am just bad enough at git to have mistakes in the tree and just good enough at it to be able to erase them.
Thank you for filing this issue; it's nice to have external confirmation that my experiments are going in useful directions.
I do not plan to implement TryInto at this time, because [T] is not TryInto<T>, and I would like BitSlice to not implement stdlib traits that slices do not implement; API mirroring means matching what the source has and also what it doesn't.
Let me know if the current implementation is sufficient; if it is, I will speed up the 0.16 release.

Bitfield access is now implemented as generic over all BitStore types, decoupled from the underlying store of a slice. Any unsigned integer can be loaded from or stored into a slice of any backing type, as long as the slice is not wider than the transfer type.
My reliance on BitStore means that floating-point numbers cannot be transferred as-is, and u64 is not supported on 32-bit systems. I will address this in the future.
Once I have finished the test suite, I will push this to master and close the issue. I will release 0.16 with this feature to crates.io before the end of the year.


Rewrite all tests for datacollection and server

Some tests have been rewritten definitely but the overall tests are not finished, will wait until further system definitions are specified before meaningful tests can be made.


[BUG] No menu on canary

Describe the bug
There is no menu even on the canary builds on first page load (https://shopware-pwa-canary.storefrontcloud.io/). If you go to detail pages the menu randomly appears.
Browser: Latest Chrome on OS X

@alexschwarz89 it's already done. one minute ago we updated the master with the upcoming's release


Popen stdout.readline blocks

Im using: python3.4 on OsX el capitan
This line blocks  https://github.com/karissa/datpy/blob/master/datpy.py#L44
thus running the code below never goes beyond the call to .link():
import datpy
mydat = datpy.Dat()
link = mydat.link("/something/bla/data.tsv") # blocks here..
print(link)

actually -q (quiet mode) avoids the output to go through stdout, removing -q from the called cmd, fixes it

@dav009 ah ok. that makes sense. thanks for finding this.

happy to make a PR, however tests get stuck in the current master branch.
does that happen to you as well?


Rename CommandHandler to CommandAssignee

This changeset addresses #1378.
The term "Command Handler" was used to describe an entity or a "free-range" object which accepts a command and produces one or more events, or a rejection.
However, there were two problems with this name:

Signal handler methods also have "handler" in the name, but their contract is broader yet similar. This were creating a constant need to add more adjectives when describing those two things in the documentation.
By itself, the word "handler", much like "processor", "manager", and "service", may mean almost anything.

CommandHandler was renamed to CommandAssignee in order to make the name more consistent with the way we describe other similar subjects:

@Subscribe –> EventSubscriber
@React –> EventReactor
@Assign –> CommandAssignee

CommandHandler is a core component and its renaming implies renaming of the related components. Thus, below is the full list of framework's core components which have been renamed:

Old name
New one

CommandHandler
CommandAssignee

AbstractCommandHandler
AbstractCommandAssignee

CommandHandlerClass
CommandAssigneeClass

CommandHandlerMethod
CommandAssigneeMethod

CommandHandlerSignature
CommandAssigneeSignature

CommandHandlingEntity
CommandAssigneeEntity

CommandHandlingEntityClass
CommandAssigneeEntityClass

The library version is bumped to 2.0.0-SNAPSHOT.90.

@alexander-yevsyukov PTAL


Add automatic draft saving to posts

Context
A user might want his post to be automatically saved (at some interval) without any manual intervention. This prevents any content from being lost should the page accidentally be closed, hard drive failure, nuclear explosion.
Current Behavior/Workaround
I can save drafts by ticking the draft checkbox and submitting the post. You then need to re-edit the post to continue where you left off.
This isn't a great experience because I've lost progress from forgetting to periodically do this.
Ideal behavior
I think it makes sense to save a draft or check for changes every 15 seconds.
Things to consider
I might want to look into other things that could improve this experience (like preventing the page from being navigated away from)
I am also unsure of what happens if someone leaves their browser open for years and years on end. Should there be some kind of timeout? Maybe I need to implement a sessiontimeout and automatic logout so my server doesn't get pinged every 15 seconds until the end of time.
If the author wants to discard their changes, they should be able to do that.

I can definitely do this in DTMX, but since I am already reactifying the app, It might make sense to do this in JavaScript. I am pulling this out of the MVP to re-visit later.

I don't think this is needed. I already have a draft flag that hides the post from web crawlers and visitors.


Define and document the client lib architecture

The client library will be used to implement multiple features, each one communicating with its HTTP APIs and with each other.

Licensing
Capture
CLO
Rewards

Define and document:

[x] The API of each feature
[x] Internal and external communication between APIs
[ ] The architecture of each implementation (Capacitor, android and iOS), considering ease of use, lightweight and minimum dependencies

TIKI Client Libraries Documentation
The TIKI APIs comprise a set of HTTP REST APIs designed for seamless integration with any standard HTTP client. The Client Libraries serve as a user-friendly layer around the TIKI APIs, introducing methods for common operations such as authorization, licensing, capture, card-linked offers, and rewards. It is a collection of pre-existing code with minimal dependencies, offering a streamlined integration process with TIKI Rest APIs, which reduces the amount of code necessary for integration.
TikiClient
TikiClient is the top-level entry point for of the TIKI Client Library. It offers simple methods that calls the underlying libraries to perform common operations. Programmers can use it to simplify the integration process or opt for individual libraries based on their specific needs.
Parameters

providerId: The data provider's TIKI Publishing ID. Get one in TIKI Console
userId: The user identification from the Provider. Ideally it is the same as the user id in the provider's internal systems. Avoid personal information in this field, hashing personal identifiable information like e-mails or personal ID numbers.
Company: The company legal information. It is used to setup the terms for the licensed data.

name: The business legal name. e.g.: "Company Inc"
jurisdiction: The jurisdiction in which the business is stabelished. e.g.: "Tennessee, USA"
privacy: The business privacy terms URL. e.g: "https://companyinc.com/privacy"
terms: The user terms and conditions URL. e.g: "https://companyinc.com/terms"

Scan Physical Receipt

Method: scan()
Description: Scans a physical receipt and publish it.

Scrape Receipts from Emails
Add an Email Account

Method: addEmail(provider)
Description: Autheticates with OAuth2 and add an email account for scraping receipts.
Parameters:

provider: "GOOGLE" or "OUTLOOK"

Retrieve Connected Email Accounts

Method: getEmail()
Description: Retrieves the list of connected email accounts.

Remove Email Account

Method: removeEmail(email)
Description: Removes a previously added email account.
Parameters: The email account to be removed. e.g<EMAIL_ADDRESS>
Scrape Email

Method: scrape()
Description: Initiates the process of scraping receipts from emails and publishing it.

Card-Linked Offers
Add a Card

Method: addCard(last4, bin, issuer, network)
Description: Adds a card for accessing card-linked offers.
Parameters:

last4: last 4 digits of the card
bin: the Bank Identification Number
issuer: the card Issuer
network: "VISA", "MASTERCARD", "AMERICAN EXPRESS" or "DISCOVERY"

Get Offers

Method: getOffers()
Description: Retrieves card-linked offers for the user.

Rewards
Get User Rewards

Method: getUserRewards()
Description: Retrieves information about the user's rewards.

TIKI Client Library - Android Specification
Technologies Used

Language: Kotlin
Networking: Retrofit for HTTP communication
Authentication: AppAuth for OAuth2
Encrypted Storage: Secure storage with EncryptedSharedPreferences
Storage SharedPreferences will be used for small non-sensitive key-value pairs and the filesystem will be used for lengthy information, like index of email ids.
Camera Integration: Android Camera API for receipt image capture
UI Components: Jetpack Compose

Library Structure

TikiClient: The primary entry point for the TIKI Client Library.

TikiClient.auth: Handles authentication, token retrieval, revocation, and refresh.

TikiClient.license: Manages user licenses, including creation, retrieval, revocation, and verification.

TikiClinet.email: Manages email-related operations such as adding, retrieving, and removing email accounts.

TikiClient.capture: Deals with capturing receipt images, downloading and publishing email receipt data, uploading receipt images, and checking publishing status.

TikiClient.clo: Handles card-linked offers, including adding cards, retrieving offers, getting user rewards, and publishing transaction information.

Implementation
TikiClient

Methods:

initialize(context: Context, providerId: String, userId: String, company: CompanyInfo): Initializes the TikiClient with the application context and sets its parameters.
scan(): Initiates the process of scanning a physical receipt and returns the receipt ID.
login(provider: EmailProviderEnum): Initiates the process of scraping receipts from emails.
logout(email: String): Removes a previously added email account.
accounts(): Retrieves the list of connected email accounts.
scrape(): Initiates the process of scraping receipts from emails.
card(last4: String, bin: String, issuer: String, network: String): Adds a card for card-linked offers.
offers(): Retrieves card-linked offers for the user.
transaction(transaction: Transaction): Submits a transaction for card-linked offer matching.
rewards(): Retrieves information about the user's rewards.
widget(theme: Theme?): Displays the widget for pre-built UIs with custom theme.

TikiClient.auth

Methods:

authenticate(): String: Authenticates with TIKI and saves the auth and refresh tokens.
token(): String: Retrieves the authentication token, refreshing if necessary.
revoke(): Unit: Revokes the authentication token.
refresh(): String: Refreshes the authentication token.

TikiClient.license

Methods:

create(): LicenseRecord: Creates a new license for the user.
get(): License: Retrieves the user's active license.
revoke(): License: Revokes the user's existing license.
verify(): Boolean: Verifies the validity of the user's license.

Email

Methods:

login(provider: EmailProvider): Authenticates with OAuth and adds an email account for scraping receipts.
accounts(): List<EmailAccount>: Retrieves the list of connected email accounts.
logout(email: String): Unit: Removes a previously added email account.

TikiClient.capture

Methods:

camera(): Bitmap: Captures an image of a receipt for processing.
email(onPublish: (receiptId: String) -> Unit): Unit: Downloads potential receipt data from known receipt email senders and publishes it.
publish(data: ImageData): String: Uploads receipt images or email data for receipt data extraction.
status(receiptId: String): PublishingStatus: Checks the publishing status of the data.

TikiClient.clo

Methods:

card(last4: String, bin: String, issuer: String, network: String): Unit: Adds a card to the user's account.
offers(): List<Offer>: Retrieves card-linked offers for the user.
rewards(): List<Reward>: Retrieves information about the user's rewards.
transaction(transaction: Transaction): Unit: Sends transaction information to match card-linked offers.

Documentation
The library should provide comprehensive documentation including:

Getting Started Guide: Instructions on how to integrate the library into an Android project.
API Reference: Detailed documentation for each class, method, and parameter.
Sample Code: Examples demonstrating how to use key functionalities of the library.
Configuration Guide: Guidelines on setting up TIKI credentials and other necessary configurations.
Error Handling: Information on handling errors and exceptions.
Example App An example app with basic UI, for manual testing.

Non Native Dependencies

Retrofit for HTTP communication.
OpenID AppAuth for OAuth2.

TIKI Client Library - iOS Specification
Technologies Used

Language: Swift
Networking: URLSession for HTTP communication
Authentication: AppAuth for OAuth2
Encrypted Storage: Keychain for secure storage
Storage: UserDefaults for small non-sensitive key-value pairs and the filesystem for lengthy information, like the index of email IDs.
Camera Integration: AVFoundation for receipt image capture
UI Components: SwiftUI

Library Structure

TikiClient: The primary entry point for the TIKI Client Library.

TikiClient.auth: Handles authentication, token retrieval, revocation, and refresh.

TikiClient.license: Manages user licenses, including creation, retrieval, revocation, and verification.

TikiClient.email: Manages email-related operations such as adding, retrieving, and removing email accounts.

TikiClient.capture: Deals with capturing receipt images, downloading and publishing email receipt data, uploading receipt images, and checking publishing status.

TikiClient.clo: Handles card-linked offers, including adding cards, retrieving offers, getting user rewards, and publishing transaction information.

Implementation
TikiClient

Methods:

initialize(providerId: String, userId: String, company: CompanyInfo): Initializes the TikiClient with parameters.
scan() -> String: Initiates the process of scanning a physical receipt and returns the receipt ID.
login(provider: EmailProviderEnum): Initiates the process of scraping receipts from emails.
logout(email: String): Removes a previously added email account.
accounts() -> [EmailAccount]: Retrieves the list of connected email accounts.
scrape(): Initiates the process of scraping receipts from emails.
card(last4: String, bin: String, issuer: String, network: String): Adds a card for card-linked offers.
offers() -> [Offer]: Retrieves card-linked offers for the user.
transaction(transaction: Transaction): Submits a transaction for card-linked offer matching.
rewards() -> [Reward]: Retrieves information about the user's rewards.
widget(theme: Theme?): Displays the widget for pre-built UIs with a custom theme.

TikiClient.auth

Methods:

authenticate() -> String: Authenticates with TIKI and saves the auth and refresh tokens.
token() -> String: Retrieves the authentication token, refreshing if necessary.
revoke(): Revokes the authentication token.
refresh() -> String: Refreshes the authentication token.

TikiClient.license

Methods:

create() -> LicenseRecord: Creates a new license for the user.
get() -> License: Retrieves the user's active license.
revoke() -> License: Revokes the user's existing license.
verify() -> Bool: Verifies the validity of the user's license.

Email

Methods:

login(provider: EmailProvider): Authenticates with OAuth and adds an email account for scraping receipts.
accounts() -> [EmailAccount]: Retrieves the list of connected email accounts.
logout(email: String): Removes a previously added email account.

TikiClient.capture

Methods:

camera() -> UIImage: Captures an image of a receipt for processing.
email(onPublish: (receiptId: String) -> Void): Downloads potential receipt data from known receipt email senders and publishes it.
publish(data: ImageData) -> String: Uploads receipt images or email data for receipt data extraction.
status(receiptId: String) -> PublishingStatus: Checks the publishing status of the data.

TikiClient.clo

Methods:

card(last4: String, bin: String, issuer: String, network: String): Adds a card to the user's account.
offers() -> [Offer]: Retrieves card-linked offers for the user.
rewards() -> [Reward]: Retrieves information about the user's rewards.
transaction(transaction: Transaction): Sends transaction information to match card-linked offers.

Documentation
The library should provide comprehensive documentation including:

Getting Started Guide: Instructions on how to integrate the library into an iOS project.
API Reference: Detailed documentation for each class, method, and parameter.
Sample Code: Examples demonstrating how to use key functionalities of the library.
Configuration Guide: Guidelines on setting up TIKI credentials and other necessary configurations.
Error Handling: Information on handling errors and exceptions.
Example App An example app with basic UI, for manual testing.

Non-Native Dependencies

AppAuth for OAuth2.

TIKI Client Library - Capacitor + Vue Specification
Technologies Used

Language: TypeScript
Framework: Vue.js with Capacitor
Authentication: AppAuth for OAuth2
Camera Integration: Capacitor Camera API for receipt image capture
UI Components: Vue

Library Structure

TikiClient: The primary entry point for the TIKI Client Library.

TikiClient.auth: Handles authentication, token retrieval, revocation, and refresh.

TikiClient.license: Manages user licenses, including creation, retrieval, revocation, and verification.

TikiClient.email: Manages email-related operations such as adding, retrieving, and removing email accounts.

TikiClient.capture: Deals with capturing receipt images, downloading and publishing email receipt data, uploading receipt images, and checking publishing status.

TikiClient.clo: Handles card-linked offers, including adding cards, retrieving offers, getting user rewards, and publishing transaction information.

Implementation
TikiClient

Methods:

initialize(providerId: string, userId: string, company: CompanyInfo): Initializes the TikiClient with parameters.
scan() -> Promise<string>: Initiates the process of scanning a physical receipt and returns the receipt ID.
login(provider: EmailProviderEnum): Initiates the process of scraping receipts from emails.
logout(email: string): Removes a previously added email account.
accounts() -> Promise<EmailAccount[]>: Retrieves the list of connected email accounts.
scrape(): Initiates the process of scraping receipts from emails.
card(last4: string, bin: string, issuer: string, network: string): Adds a card for card-linked offers.
offers() -> Promise<Offer[]>: Retrieves card-linked offers for the user.
transaction(transaction: Transaction): Submits a transaction for card-linked offer matching.
rewards() -> Promise<Reward[]>: Retrieves information about the user's rewards.
widget(theme: Theme?): Displays the widget for pre-built UIs with a custom theme.

TikiClient.auth

Methods:

authenticate() -> Promise<string>: Authenticates with TIKI and saves the auth and refresh tokens.
token() -> Promise<string>: Retrieves the authentication token, refreshing if necessary.
revoke() -> Promise<void>: Revokes the authentication token.
refresh() -> Promise<string>: Refreshes the authentication token.

TikiClient.license

Methods:

create() -> Promise<LicenseRecord>: Creates a new license for the user.
get() -> Promise<License>: Retrieves the user's active license.
revoke() -> Promise<License>: Revokes the user's existing license.
verify() -> Promise<boolean>: Verifies the validity of the user's license.

Email

Methods:

login(provider: EmailProvider) -> Promise<void>: Authenticates with OAuth and adds an email account for scraping receipts.
accounts() -> Promise<EmailAccount[]>: Retrieves the list of connected email accounts.
logout(email: string) -> Promise<void>: Removes a previously added email account.

TikiClient.capture

Methods:

camera() -> Promise<string>: Captures an image of a receipt for processing.
email(onPublish: (receiptId: string) => void) -> Promise<void>: Downloads potential receipt data from known receipt email senders and publishes it.
publish(data: ImageData) -> Promise<string>: Uploads receipt images or email data for receipt data extraction.
status(receiptId: string) -> Promise<PublishingStatus>: Checks the publishing status of the data.

TikiClient.clo

Methods:

card(last4: string, bin: string, issuer: string, network: string) -> Promise<void>: Adds a card to the user's account.
offers() -> Promise<Offer[]>: Retrieves card-linked offers for the user.
rewards() -> Promise<Reward[]>: Retrieves information about the user's rewards.
transaction(transaction: Transaction) -> Promise<void>: Sends transaction information to match card-linked offers.

Documentation
The library should provide comprehensive documentation including:

Getting Started Guide: Instructions on how to integrate the library into a Capacitor + Vue.js project.
API Reference: Detailed documentation for each class, method, and parameter.
Sample Code: Examples demonstrating how to use key functionalities of the library.
Configuration Guide: Guidelines on setting up TIKI credentials and other necessary configurations.
Error Handling: Information on handling errors and exceptions.
Example App An example app with basic UI, for manual testing.

Non-Native Dependencies

AppAuth for OAuth2.
Capacitor Camera API for image capture.


nice like your command output

nice like your command output
playing a bit with a oneliner code console
https://codepen.io/ldijkman/pen/LYqpBPW

Not sure I understand what you're actually asking here. Can you clarify?

liked your command input output line
and was wondering how it is done
after some googling i found eval()
playing with it
https://codepen.io/ldijkman/pen/LYqpBPW


Refactor IUser and other shared types

To update your repo to use TypeScript project references, you'll need to make a few changes to your project's configuration files. Here are the general steps:
Create a tsconfig.json file in the root of your project if you don't already have one.
Add "composite": true to the compilerOptions section of your tsconfig.json file. This tells TypeScript to enable project references.
Create a tsconfig.base.json file in the root of your project. This file will contain the shared configuration for your client and server apps.
Add "extends": "../tsconfig.base.json" to the compilerOptions section of your client and server tsconfig.json files. This tells TypeScript to inherit the configuration from tsconfig.base.json.
Add "references": [{ "path": "../path/to/other/project" }] to the references section of your client and server tsconfig.json files. This tells TypeScript that your client and server apps depend on the other project.
Once you've made these changes, you can use the tsc command to build your project. TypeScript will automatically build the dependencies in the correct order based on the project references.

Also not happening.


OpCert replacement test

This adds a test of operational certificate replacement in Shelley.

Extracts some more general Shelley configuration.
Construct a node restart schedule for opcert replacement. This deliberately replaces some opcerts not on the correct slot, so we expect some nodes to be unable to lead in some slots.
This entails making some changes to the "rekeying" infrastructure, because we need access to the slot.
RealPBFT tests are updated accordingly.

At the moment we allow any slot to CannotLead, rather than deducing explicitly what slots cannot lead from the restart schedule. This PR has been dragging for a while, so I'd rather get some testing in now and then improve later.

I haven't review the cardano bit since it's out-of-date (doesn't compile).
I looked over Infra.Shelley and added a few comments. It generally makes sense, but I'm not particularly familiar with the KES management. @mrBliss ?
The other modules LGTM.

@nc6 I seem to remember you were running into problems with invalid KES keys in the tests of this PR (or was that somewhere else?). #2300 was merged today, in which @edsko and I refactor the way the HotKey is handled (no more error in case of an invalid key!). Maybe that helps?

@nc6 Do you think you'll have a chance to take a look at this?

I'm going to close this, since it's at least two refactors out of date and I am unlikely to have the chance to look at it.


Engine V2 merging flutter and commit as a single part in path

The paths to GCS are missing a / in between flutter and commit. e.g. gs://flutter_archives_v2/flutter_infra_release/fluttercfb53247654b02589f6f9e46de019e2d3c3db4c9/dart-sdk-darwin-arm64.zip should be gs://flutter_archives_v2/flutter_infra_release/flutter/cfb53247654b02589f6f9e46de019e2d3c3db4c9/dart-sdk-darwin-arm64.zip

\cc @yusuf-goog

Fixed with https://flutter-review.googlesource.com/c/recipes/+/35165


M3DRef-CLIP on Scanrefer Test Benchmark

Hi,
Thank you for your awesome work!
For scanrefer benchmark submission, do you train on a combination of train+val split or only the train split? I am asking because in scannet benchmarks, training on train+val is a common practice, but not sure what people do in referential grounding benchmarks. Also are there any other details/tricks for test set submission, or simply exporting the data with the provided checkpoint trained on train set?
Thank you!

Hi @ayushjain1144, our test set benchmark result is only trained on the train split. There is no trick for test set submission, just do the inference using either our provided checkpoint or your retrained one, and submit it. You should be able to reproduce our results.

Thank you :)


System.Secure.Ben

This is requirement for a lot of box ticking. Without secure or security in the namespace at least 50% of all boxes will remain unticked.
Proposal : A Perl script that renames everything, run only after the tests have run. We will then find a beat up old Mac book to download it onto to build and release the packages ideally with a slightly lower version number than the System.Ben library so that it seems more stable.

/cc @blowdart

Recommend SecureString for this task. It secures all the things.


Short-circuiting || and &&

Pull Request Description
Short-circuiting || and && is typically taken for granted
by users of other PLs. This change makes it happen for Enso.
Related to https://www.pivotaltracker.com/story/show/182261401
Checklist
Please include the following checklist in your PR:

[ ] The documentation has been updated if necessary.
[x] All code conforms to the
Scala,
Java,
and
Rust
style guides.
All code has been tested:

[x] Unit tests have been written where possible.
[ ] If GUI codebase was changed: Enso GUI was tested when built using BOTH
./run.sh ide dist and ./run.sh ide watch.

Was to quick to submit the previous review – so here comes the prose. The more I think about the result casting, the less I like it. I'd just allow any return type and not verify it. It's like if you implemented these in Enso:
Boolean.|| ~that = if this then this else that

You wouldn't check the result type in this impl, and I think we should follow this thinking here.

In that case the type of || should be changed from Boolean -> Boolean to Any -> Any. And that sounds a bit counter-intuitive given the actual method description.
e.g., False || 42 would return 42 rather than a runtime exception and that would completely fine.

No, we should leave the type as is – it is normal for a type signature to be more restrictive than the implementation :)

@kustosz as discussed


DataFrame concatenation to use pd.concat instead of append

Description:
This commit updates the DataFrame concatenation method from append to pd.concat due to the deprecation and removal of the append method in recent versions of pandas.
Changes:
Replaced train.append(test) with pd.concat([train, test], ignore_index=True)
Benefits:
Ensures compatibility with recent and future versions of pandas
Improves code stability and reduces the risk of encountering deprecated method errors
Testing:
Verified that the concatenation works as expected and the combined DataFrame X is created correctly.
Notes:
No changes in functionality or data processing logic, only an update to use the supported method for concatenation.

pandas issue 35407 states the deprecation of the DataFrame/Series append method, despite being popular because it is a poor analogy to list's append. Updating the code to the concat method is hence necessary for the code running with recent versions of the pandas package.