filters not working as expected on GUID containing column

Which service(blob, file, queue, table) does this issue concern?
Table
Which version of the Azurite was used?
3.22.0
Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)
npm
What's the Node.js version?
v18.14.2
What problem was encountered?
Filter on GuidProperty does not work for filters "ne", "ge", "gt".
Entire filter used in my scenario are as below:
"filter":"GuidProp gt guid'22222222-2222-2222-2222-222222222222'"
"filter":"GuidProp ne guid'22222222-2222-2222-2222-222222222222'"
"filter":"GuidProp ge guid'22222222-2222-2222-2222-222222222222'"
Steps to reproduce the issue?
Create a table which has a column named GuidProp with Guid values in it.
Create three such records with 3 distinct GUID values, say
11111111-1111-1111-1111-111111111111
22222222-2222-2222-2222-222222222222
33333333-3333-3333-3333-333333333333
Only apply filter on GuidProp column with either of gt, ne or ge. It is observed that all three
records are returned instead of
gt returning record with GUID value = 33333333-3333-3333-3333-333333333333 record
ne returning records with GUID values =11111111-1111-1111-1111-111111111111, 33333333-3333-3333-3333-333333333333 records
ge returning records with GUID values =22222222-2222-2222-2222-222222222222, 33333333-3333-3333-3333-333333333333 records.
If possible, please provide the debug log using the -d parameter, replacing <pathtodebuglog> with an appropriate path for your OS, or review the instructions for docker containers:
**Log for query ran:**
 info: HandlerMiddleware: DeserializedParameters={"options":{"queryOptions":{"format":"application/json;odata=minimalmetadata","top":20,"filter":"GuidProp ge guid'22222222-2222-2222-2222-222222222222'"},"requestId":"4029d7ef-5f22-43f8-9b61-4613f4b5fb96","dataServiceVersion":"3.0"},"version":"2020-12-06"}

**Log for response returned:**
 debug: TableHandler:queryEntities() Raw response string is "{\"odata.metadata\":\"http://<IP_ADDRESS>:10002/devstoreaccount1/$metadata#Tables/@Element\",\"value\":[{\"odata.etag\":\"W/\\\"datetime'2023-03-07T08%3A57%3A32.7098638Z'\\\"\",\"PartitionKey\":\"Part1\",\"RowKey\":\"Row1\",\"BinaryProp@odata.type\":\"Edm.Binary\",\"BinaryProp\":\"AQEB\",\"DateTimeProp@odata.type\":\"Edm.DateTime\",\"DateTimeProp\":\"2023-03-06T00:00:00.0000000Z\",\"DoubleProp\":1000.0,\"GuidProp@odata.type\":\"Edm.Guid\",\"GuidProp\":\"11111111-1111-1111-1111-111111111111\",\"IntProp\":1,\"LongProp@odata.type\":\"Edm.Int64\",\"LongProp\":\"10\",\"StringProp\":\"AAA\",\"Timestamp\":\"2023-03-07T08:57:32.7098638Z\"},{\"odata.etag\":\"W/\\\"datetime'2023-03-07T08%3A57%3A32.7489048Z'\\\"\",\"PartitionKey\":\"Part2\",\"RowKey\":\"Row2\",\"BinaryProp@odata.type\":\"Edm.Binary\",\"BinaryProp\":\"AgIC\",\"DateTimeProp@odata.type\":\"Edm.DateTime\",\"DateTimeProp\":\"2023-03-07T00:00:00.0000000Z\",\"DoubleProp\":2000.0,\"GuidProp@odata.type\":\"Edm.Guid\",\"GuidProp\":\"22222222-2222-2222-2222-222222222222\",\"IntProp\":2,\"LongProp@odata.type\":\"Edm.Int64\",\"LongProp\":\"20\",\"StringProp\":\"BBB\",\"Timestamp\":\"2023-03-07T08:57:32.7489048Z\"},{\"odata.etag\":\"W/\\\"datetime'2023-03-07T08%3A57%3A32.7549085Z'\\\"\",\"PartitionKey\":\"Part3\",\"RowKey\":\"Row3\",\"BinaryProp@odata.type\":\"Edm.Binary\",\"BinaryProp\":\"AwMD\",\"DateTimeProp@odata.type\":\"Edm.DateTime\",\"DateTimeProp\":\"2023-03-08T00:00:00.0000000Z\",\"DoubleProp\":3000.0,\"GuidProp@odata.type\":\"Edm.Guid\",\"GuidProp\":\"33333333-3333-3333-3333-333333333333\",\"IntProp\":3,\"LongProp@odata.type\":\"Edm.Int64\",\"LongProp\":\"30\",\"StringProp\":\"CCC\",\"Timestamp\":\"2023-03-07T08:57:32.7549085Z\"}]}"

Please be sure to remove any PII or sensitive information before sharing!
The debug log will log raw request headers and bodies, so that we can replay these against Azurite using REST and create tests to validate resolution.
Have you found a mitigation/solution?
No.

Hi
Checking to see if anyone can take a look into this.
Thank you.

I am taking a look

We have the problem that we support backward compatible schema for querying Guids (in GuidPredicate.ts).
https://github.com/azure/azurite/blob/7625366fa3d1b7080a3c1c442016bfd4cc2e1f1e/src/table/persistence/QueryTranscriber/PredicateModel/GuidPredicate.ts#L26
This means that we find a guid in string format, or encoded format to enable service parity.
In order to support other operators on GUIDs, we need to drop the backwards compatibility, as we turn a GUID predicate into 2 predicates when looking for GUIDs in this backwards compatible format.
But we cannot have a valid comparison on greater than / less than predicates, as we have 2 different strings.
We are discussing internally before I push a fix.

I don't think I completely understand the backward compatibility scenario (maybe an example can help better understand).
But yes you can get back once you check with your team.
Thank you.

Hi
Checking back to see if there was any update on this.
Thank you.

PR is submitted

PR is submitted

Thank you really appreciate it. please update here once the changes are pushed.


Fixes to acmpca

Subject should be AWSProperty not AWSObject
aws-resource-acmpca-certificateauthority
Certificate should be AWSObject not AWSProperty
aws-resource-acmpca-certificate

One more update.  Just tested locally, all seems to be working as expected now

@markpeek

Thanks!

Thanks @markpeek 👋


Env cannot signal the end of a run.

Choose an option
This is a:

[ ] Question
[x] Feature request
[ ] Bug report

Describe the issue
Environments that inherit from Env, should be able to indicate that they have reached the end of their simulation time line.
For instance, consider a situation in which I am simulating the peak hour. After that period is over, I do not want to continue simulation, and intend to raise "done" in the return parameters of gym environment's step.
As it stands, Env has decided not to let me do it, and return done as true only in the case of a crash.

Hi @FarshadKoohifar, would it just be sufficient to set the horizon to be the length that you want?

Hi @eugenevinitsky,
Which horizon? I am referring to Env that does not have any clean way to return done as True.
I had to override the whole step() and add this at the end:
done = crash or self.steps < self.time_counter
Are you referring to the same Env?

hi @FarshadKoohifar I created a PR to resolve this. see #457

Thanks.


triage: avoid skipping due to failed status of run-jobs.outcome

See here in the docs; without this then I believe the failed status of the earlier run-jobs.outcome job step caused the triage job to be skipped.
Tested in https://github.com/NVIDIA/JAX-Toolbox/actions/runs/6532047435, where the triage job does run but fails early on, likely due to https://github.com/NVIDIA/JAX-Toolbox/issues/263.

Thanks for tackling this @olupton ! Can you confirm if this would address this: https://github.com/NVIDIA/JAX-Toolbox/issues/306 ?
Two questions:

Do you know why it failed in the first place and why needs.publish-completion.outputs.STATUS != 'success' was insufficient?
Would needs.<job_id>.result work?

Can you confirm if this would address this: #306 ?

I'm not sure about that. It's not obvious to me why the triage job ran in https://github.com/NVIDIA/JAX-Toolbox/actions/runs/6516962688, I'm not optimistic that this change will have fixed that issue.

Do you know why it failed in the first place and why needs.publish-completion.outputs.STATUS != 'success' was insufficient?

Based on https://docs.github.com/en/actions/learn-github-actions/expressions#failure-with-conditions:

You can include extra conditions for a step to run after a failure, but you must still include failure() to override the default status check of success() that is automatically applied to if conditions that don't contain a status check function.

I understand there was an implicit success() in the if clause of the triage job, so the (intentional) failure of run-jobs.outcome (because Slurm jobs failed) stopped the triage job from running.

Would needs.<job_id>.result work?

I guess yes if we made the triage job explicitly depend (needs) on run-jobs (which is the job whose overall status should be red in the case that I understand is supposed to trigger the triage job). Not sure what the advantage would be.

Outdated.


Bump patch version for golang

Issue #, if available:
Description of changes:
Testing (if applicable):
govulncheck -C ./release/cli -format text ./...

Documentation added/planned (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/retest

/retest

/retest

/retest

/lgtm
/approve


render icon on the left side of the suggestions

Close #123786

Not sure if it is an ideal approach. Looking forward to any feedback.

@jrieken ping in case you miss that.

@jrieken Could you please take a look at this PR? Thanks!

Completion icons are specified (indirectly) via the completion item kind. Adding a second way, via some documentation parsing isn't really clean and desirable.

Completion icons are specified (indirectly) via the completion item kind. Adding a second way, via some documentation parsing isn't really clean and desirable.

Agree is not an ideal approach.
Should we add another completion item kind to implement this feature? e.g. CompletionItemKind.Codicon.


What is Wand?

I installed with pod and tried to show the icon with Label, but just 'x' is showed where icon should be displayed. Can you present small sample code?

There's an example project in https://github.com/tomsterritt/IoniconsSwift/tree/master/Example-ionicons :)


Update of the remaining textures

In this pull request I did the following:

optimized all remaining textures with OptiPNG 0.7.7 with the least aggressive settings (to save at least some space)
slightly changed the lime and cyan slot textures to better match the vanilla one. Since the vanilla slot texture is grayscale out of the box, I used it as a mask for the lime and cyan colors. IMHO the result better shows the depth and overall it looks pretty good:

As always, if you don't like some of my changes, please let me know. I can always modify them and this PR.

I added a github action to automatically optimise the textures so you don't need to create a pull request every time.

I added a github action to automatically optimise the textures so you don't need to create a pull request every time.

To be honest, I don't think GitHub interference is really needed here. After all, you don't add new PNG files every day, do you? And even if you did so, you could always optimize them right after exporting them from your favorite image editor (that's what I'm doing).
Additionally, GitHub's OptiPNG is much more aggressive than what I'm used to (optipng -o7 vs optipng -f0 -i0 -nc). I prefer minimally less CPU utilization for decoding at the expense of a bit larger file sizes :)

To be honest, I don't think GitHub interference is really needed here. After all, you don't add new PNG files every day, do you? And even if you did so, you could always optimize them right after exporting them from your favorite image editor (that's what I'm doing).
Additionally, GitHub's OptiPNG is much more aggressive than what I'm used to (optipng -o7 vs optipng -f0 -i0 -nc). I prefer minimally less CPU utilization for decoding at the expense of a bit larger file sizes :)


Can't log in on BGMI (Indian version of Pubg Mobile)

I am living in India. When I try to sign in to BGMI (Indian version of Pubg Mobile), the game displays: 'Server is busy, please try again later. Error code: restrict-area', which basically means that the app is detecting that the game is being logged in from a location that is outside India.
How do I set the location of WSA to India so that the game detects it correctly?

Would need a VPN to fake location, either that or a app that can set the location using the debug privileges. Either way it's not something that WSA would be involved with specifically

Thanks for the reply.
I found out that the game also creates this error code if it detects Emulators, as it is meant to be played on mobile Android/iOS devices. So I'm closing this issue.

I hate when apps do that, what are they to decide how I run their game.
Anyway, glad you at least got it figured out


proposal: public analytics dashboard

in interest of openness and just letting people geek out over pageviews and such.
openhunt.co/analytics
I haven't looked at this, and authorization might be problematic, but google offers an API to embed analytics widgets:
https://developers.google.com/analytics/devguides/reporting/embed/v1/?hl=en

:football: for now
Lots of other work to make try to make sure the site even survives first :)
good idea though!

totally-- just wanted to make a note before I forgot :smile:

I +1 this. An alternative would be to allow me to embed my own analytics code in my product page.


Graphql Server not connecting to room

Latest changes from https://github.com/planetary-social/planetary-graphql/pull/39 are preventing the graphql server from connecting to the room.
Steps to reproduce:

Pull down the latest changes
Install dependencies
Start the development server npm run dev

Expected:

it to start and connect to the room

Actual:

getting an error in the console:

server error, from net:<IP_ADDRESS>:50918~shs:
Error: shs.server: client hello invalid (phase 3). they dailed a wrong number - they didn't have our public key
    at abort (/Users/planetary/planetary-social/planetary-graphql/node_modules/secret-handshake/protocol.js:82:45)
    at Object.cb (/Users/planetary/planetary-social/planetary-graphql/node_modules/secret-handshake/protocol.js:96:20)
    at drain (/Users/planetary/planetary-social/planetary-graphql/node_modules/pull-reader/index.js:39:14)
    at more (/Users/planetary/planetary-social/planetary-graphql/node_modules/pull-reader/index.js:55:13)
    at /Users/planetary/planetary-social/planetary-graphql/node_modules/pull-reader/index.js:66:9
    at /Users/planetary/planetary-social/planetary-graphql/node_modules/pull-reader/index.js:20:7
    at drain (/Users/planetary/planetary-social/planetary-graphql/node_modules/stream-to-pull-stream/index.js:126:18)
    at Socket.<anonymous> (/Users/planetary/planetary-social/planetary-graphql/node_modules/stream-to-pull-stream/index.js:135:5)
    at Socket.emit (events.js:400:28)
    at addChunk (internal/streams/readable.js:293:12) {
  address: 'net:<IP_ADDRESS>:50918~shs:'
}
failed to connect to room Error: shs.client: server hung up when we sent hello (phase 3).
    at clarify (/Users/planetary/planetary-social/planetary-graphql/node_modules/clarify-error/lib/index.js:11:24)
    at abort (/Users/planetary/planetary-social/planetary-graphql/node_modules/secret-handshake/protocol.js:37:45)
    at Object.cb (/Users/planetary/planetary-social/planetary-graphql/node_modules/secret-handshake/protocol.js:52:26)
    at drain (/Users/planetary/planetary-social/planetary-graphql/node_modules/pull-reader/index.js:43:23)
  Error: stream ended with:64 but wanted:80
    at drain (/Users/planetary/planetary-social/planetary-graphql/node_modules/pull-reader/index.js:43:26)
    at /Users/planetary/planetary-social/planetary-graphql/node_modules/pull-reader/index.js:63:18
    at /Users/planetary/planetary-social/planetary-graphql/node_modules/pull-reader/index.js:20:7
    at drain (/Users/planetary/planetary-social/planetary-graphql/node_modules/stream-to-pull-stream/index.js:126:18)
    at Socket.<anonymous> (/Users/planetary/planetary-social/planetary-graphql/node_modules/stream-to-pull-stream/index.js:143:5)
    at Socket.emit (events.js:412:35)
    at endReadableNT (internal/streams/readable.js:1333:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  address: 'net:<IP_ADDRESS>:8008~shs:'
}

Other things I tried:

deleting my database and start from a fresh one. I still saw this same error for the new database
rewinding the room server to a commit where it was working, to confirm it wasnt the room. Confirmed it wasnt the room server
rewinding to the commit before this PR, i no longer saw this issue
readded the graphql server as member when i deleted the database
printing out the multiserver address, it looked correct to me

disabled incoming net: connections for now
These should not be needed as this is not a pub!
We do want to allow incoming tunnel connections though to communicate via the room


Add commented option of embedding python project requirements into image

The expected commented lines in the RUN command for installing requirements were missing, so I've added them.

Whoops!  That's a good catch since the earlier comment is still there. What I'd suggest that we should instead add a comment on it after the main RUN at the very end of base.Dockerfile that mirrors Dockerfile.
# [Optional] If your requirements rarely change, uncomment this section to add them to the image.
#
# COPY requirements.txt /tmp/pip-tmp/
# RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
#    && rm -rf /tmp/pip-tmp

That way if requirements.txt updates, it will only rebuild this one part rather than the entire previous RUN section. I'll make that update post-merge.


Scrambled Analog Output

I'm getting a Scrambled Analog Output on my PVM with the 8.18 AV setup. I tried using the amiga.cfg from the old release and I get the same result. Any suggestions?

We don’t touch the analog output in general, and I am somewhat certain that it has not changed since 2024.06.06. Does your PVM support 50hz input?

Problem fixed. I had Amiga and Minimig configurations in mister.ini. Removed the Minimig lines and everything is good now.


Removed author/Created by from javadocs

+1 to merge.

0.8.x: 42c2e186adda6f0d044c26dc887d3761aa851d9f


CSS Tweaks

increase header image height, change blue/green to blue.

I merged the changes in but wanted to point out that now that the header image container is taller in height, the image is not scaling:

And the blue color for the button border and on hover doesn't really match up with the rest of the page colors.


Fix support of child list as inline params serialize

Only a :root list was serialized correctly. Using a nested list was causing a runtime error since no function matched.

Thank you!


Put dispstrs and friends in private/s

Move dispstrs(), mustBeA(), and any other top-level clutter into private/ directories in all generated packages, to avoid cluttering the root namespace.

Did enough of this to get +logger working.

Did enough of this to get +logger working.


Add a .final_response attribute to fastapi.responses.Response for dependencies

Alternative to #3598 . This would also close #3500
This is much simpler and robust than #3598 while providing the same functionality.
The syntax is however not as nice as accepting a value sent into a generator (just my opinion).
Otherwise, this is the same goal / result as #3598
def dependency(response: Response) -> None:
    yield
    final_response = response.final_response
    # you can log or otherwise use the response,
    # but you can't change it anymore
    print(final_response.status_code)

Since this likely won't get merged, I'm going to close this to avoid contributing to PR pile up and let the maintainers focus on PRs fixing long standing bugs


Accept a list of positions at once?

Can this user-friendly tool be expanded to accept lists of positions?

This is marked as completed but I can't see that functionality on the site


[test] mbedgt: can test case sort be removed ?

Hi
I would prefer that test case status is not sorted during mbedgt execution.
Ex:
Tested command: mbed test -t ARM -m NUCLEO_F070RB -vv -n tests-mbedmicro-rtos-mbed-threads
We can see the test suite execution :
[1473239592.78][CONN][RXD] >>> Running case #1: 'Testing single thread'...
[1473239592.98][CONN][RXD] >>> Running case #2: 'Testing parallel threads'...
[1473239593.18][CONN][RXD] >>> Running case #3: 'Testing serial threads'...
Then the test suite status:
mbedgt: test suite 'tests-mbedmicro-rtos-mbed-threads' ............................................... TIMEOUT in 50.15 sec
test case: 'Testing parallel threads with wait' .............................................. OK in 0.17 sec
test case: 'Testing single thread with wait' ................................................. OK in 0.15 sec
test case: 'Testing serial threads with yield' ............................................... OK in 0.06 sec
test case: 'Testing single thread with yield' ................................................ OK in 0.06 sec
test case: 'Testing serial threads with wait' ................................................ OK in 1.06 sec
test case: 'Testing single thread' ........................................................... OK in 0.06 sec
test case: 'Testing parallel threads with child' ............................................. ERROR in 0.00 sec
==> Can this status can be displayed in the right order?
For report, I think we can keep the sort.
Thx

Thank you for raising this issue. Please note we have updated our policies and
now only defects should be raised directly in GitHub. Going forward questions and
enhancements will be considered in our forums, https://forums.mbed.com/ . If this
issue is still relevant please re-raise it there.
This GitHub issue will now be closed.


can't ingest binance minute data

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

Operating System: ubuntu 16.4
Python Version: $ python --2.7
Python Bitness: $ python -c 'import math, sys;print(int(math.log(sys.maxsize + 1, 2) + 1))'
How did you install Catalyst: pip
Python packages: $ pip freeze or $ conda list

Now that you know a little about me, let me tell you about the issue I am
having:
Description of Issue
tried to ingest binance minute data via catalyst ingest-exchange -x binance -f minute

What did you expect to happen?
data ingesting
What happened instead?
Type error

Here is how you can reproduce this issue on your machine:
Reproduction Steps

try ingesting binance minute data
...

What steps have you taken to resolve this already?
none.
...
Anything else?
...
Sincerely,
demontamer

Hi @demontamer ,
How did you upgrade to the new version? Using the following:
"""
pip uninstall enigma-catalyst
pip install enigma-catalyst
"""
If not, could you please try this and try to ingest again?
Thanks,
Lena

Hi used pip install -U enigma-catalyst

I have a similar issue with catalyst 0.5.15 and python 3.6.6
Trying to ingest exchange bundle binance...
Traceback (most recent call last):
  File ".venv/bin/catalyst", line 11, in <module>
    load_entry_point('enigma-catalyst==0.5.15', 'console_scripts', 'catalyst')()
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/catalyst/__main__.py", line 609, in ingest_exchange
    csv=csv
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/catalyst/exchange/exchange_bundle.py", line 824, in ingest
    show_report=show_report
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/catalyst/exchange/exchange_bundle.py", line 593, in ingest_assets
    end_dt=end_dt
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/catalyst/exchange/exchange_bundle.py", line 506, in prepare_chunks
    start_dt, end_dt, [asset], data_frequency
  File "/home/work/berserker-lib/.venv/lib/python3.6/site-packages/catalyst/exchange/exchange_bundle.py", line 444, in get_adj_dates
    if asset.start_date >= self.calendar.first_session:
  File "pandas/tslib.pyx", line 1103, in pandas.tslib._Timestamp.__richcmp__ (pandas/tslib.c:20491)
TypeError: Cannot compare type 'Timestamp' with type 'str'

This happens with daily and minute

Thanks everyone for your inputs!
There was indeed a problem in the config file describing the supported trading pairs on Binance.
The problem was resolved.
Right now, there might be a stale config file in your local system, which you can remove and clean by running catalyst clean-exchange -x binance.
Thanks again!

@lenak25 Thank you very much. It works perfect now :)


Documentation on v6 RNN

Hi, thank you for your effort.
Any plans to provide documentation (or a working example) on how to use the library with wix RNN v6?
The documentation is back from 2017 https://github.com/wix/react-native-notifications/wiki/Android:-working-with-RNN and refers to a Gist that doesn't work anymore.
Thank you in advance

+1
usual android manual doesn't work
adding packages.add(new RNNotificationsPackage(MainApplication.this)); to MainApplication.java leads to crash


Add FAQ Entry - "Where is my permissions.yml file!?"

This is a question I see quite often in the Discord - someone comes from PEX and gets worried when they don't see a permissions.yml file. So instead of accepting the learning curve and learning a new system, they decide that remaining with what they know, even if it's detrimental for the server, is better than the objectively better system. This FAQ entry would provide some insight into why LP doesn't default to flat file permission systems with a hope of dissuading someone from using it without a reason beyond "it's the way PEX did it so it's the best way" or "it's what I'm used to."
Below I've included a sample of what this FAQ entry may look like. We can discuss this further on Discord, but I wanted to get it up here in a more permanent manner. I'll be editing this post as things come up or are decided on.
As an added bonus, the bbcode format can be copy-pasted into a Discord Embed, which supports Markdown link formatting (the [title](url) format).
Question: I'm coming over from PEX. Where is the permissions file?
Answer: LuckPerms defaults to an H2 database for its storage system because of performance issues with flat file storage systems like permissions.yml. You may find that running with a flat file storage system causes LuckPerms to run much slower than usual, and it will complain of such in the server console. As such, it is strongly recommended you remain with the default, or if you're going to change, to change to a Remote Database configuration (MySQL, PostgreSQL, etc.). If you would like to change your storage type, you can do so by reading the Storage Types page in the wiki.

in the wiki there is a migration section. https://github.com/lucko/LuckPerms/wiki/Migration that explains it.

You may find that running with a flat file storage system causes LuckPerms to run much slower than usual, and it will complain of such in the server console.

This isn't true - it won't have an impact on the speed at which LP will run.
I'm happy to add a FAQ entry for this, but I believe it is already covered somewhat by the benefits/drawbacks section of this page.
https://github.com/lucko/LuckPerms/wiki/Storage-types

Will happily accept a PR for this.
https://github.com/LuckPerms/wiki


Segment API - Insufficent Access

Hello
I am using the PUT /segments/{id} endpoint in order to update the description of my Segment.
When trying to do so, it returns me:
{'errorCode': 'insufficient_access',
 'errorDescription': 'No editing access to this item granted. Userid=200317426 does not match ownerid=200331049',
 'errorId': 'c08a2ff6-a74f-407a-b7b8-d2beb42722d0'}

I checked my access rights for my API :

You can see that I have access to the "All in - API" Product Profile.
This product profile give me access to all permissions.

Would that mean that you cannot edit other persons Segment description through the API ?
That doesn't sound correct.
I am probably missing something, it would be great to hing me where is the missing part.
Otherwise, I am wondering if this is not a problem of connection in the back-end because the Project is not showing in my list:
Name of my project : "Analytics and Launch"
Screenshot of the Integrations for "All in - API"

@pitchmuc Only admins can edit segments or components owned by other users, which is why adding the technical account  to the product profile made it so the technical account could then modify segments owned by other users.  This is the expected behavior, so unless I'm misunderstanding this isn't a bug.


Unite service (link) and primary container load

Currently services are started via the services lib with a limited set of passable commands and config options. Instead of this pattern, unite with the primary container startup and create a loader which loads both services and the primary container identically, the only difference being the links created in the primary container.
This not only simplifies the startup process and should allow for parallelizing load but also means services will have the same configuration and task abilities.

Included in #30

Included in PR for 3.0 release (#33)


Adding httpForward expectation with JavaScript API fails

I'm trying to add a simple httpForward expectation using JavaScript API (v. 5.3.0) but it fails with an error message : oneOf of the following must be specified "httpResponseTemplate" "httpForwardTemplate" "httpClassCallback" "httpError" "httpObjectCallback"
The reason is mockServerClient.mockAnyResponse() adds all expectations pre-defined default response headers. Although i want to add a forward expectation with:
    {
        "httpRequest": {
          "path": "/some/path"
        },
        "httpForward": {
          "host": "mock-server.com",
          "port": 8080,
          "scheme": "HTTP"
        }
      }

the generated request with JavaScript API is:
[{
		"httpRequest" : {
			"path" : "/some/path"
		},
		"httpForward" : {
			"host" : "mock-server.com",
			"port" : 8080,
			"scheme" : "HTTP"
		},
		"httpResponse" : {
			"headers" : [{
					"name" : "Content-Type",
					"values" : ["application/json; charset=utf-8"]
				}, {
					"name" : "Cache-Control",
					"values" : ["no-cache, no-store"]
				}
			]
		}
	}
]

which is, i think, not allowed.

yes that looks like a bug, it should be fairly easy to fix by check for the presence of httpResponse in the expectation and only adding those headers if it exists.

In mockServerClient.js, we have the following comment for the setDefaultHeaders function:

default headers that are used to specify the response headers in mockSimpleResponse(...)
*   (note: if you use mockAnyResponse(...) the default headers are not used)

The mockAnyResponse does add the default headers:
var mockAnyResponse = function (expectation) {             return makeRequest(host, port, "/expectation", addDefaultExpectationHeaders(expectation));         };
Should we simply remove the call to addDefaultExpectationHeaders here?

I modified the mockServerClient.js as follow, when i execute "node http-forward.js", it was blocked. Seems not work for me?
    var mockAnyResponse = function (expectation) {
        return makeRequest(host, port, "/expectation");
    };

makeRequest(host, port, "/expectation", expectation);

Hi,
was this issue resolved?
I'm working with mockserver-client version 5.3.0
Thanks

@ronayadid Not yet.
For the time being, use the trick proposed by @andygaga2018 and @mlessd .

@mocheng But the 'makeRequest' function is not exposed.

For my case, i have overcome the issue for now by adding an extra check to addDefaultExpectationHeaders so that default headers will not be added if the expectation is a forward exp.

But where did you add this check?

Here it is:
 var addDefaultExpectationHeaders = function (expectation) {             if (Array.isArray(expectation)) {                 for (var i = 0; i < expectation.length; i++) {                     expectation[i].httpRequest = addDefaultRequestMatcherHeaders(expectation[i].httpRequest);                     if(!expectation[i].httpForward) {                       expectation[i].httpResponse = addDefaultResponseMatcherHeaders(                           expectation[i].httpResponse);                     }                 }             } else {                 expectation.httpRequest = addDefaultRequestMatcherHeaders(expectation.httpRequest);               if(!expectation[i].httpForward) {                 expectation.httpResponse = addDefaultResponseMatcherHeaders(                     expectation.httpResponse);               }             }             return expectation;         };

@ronayadid Yes. Unfortunately the makeRequest is not exposed. So, I have to do dirty hack by modifying given file under node_modules folder.

@edilaver @mocheng
But this needs to be done in mockServerClient.js inside the 'mockserver-client' package, right?
Is there a way to handle this without changing the package?

@ronayadid Your are right. This is the drawback. I cannot figure out a way to handle this without changing the package.
Now, I gave up on proxying feature of 'MockServer' and fill expectations with content from another proxy.

Thanks @mocheng
Probably that's what I'll do

I 've created a pull request to optionally disable any default header, by passing null to setDefaultHeaders. This workaround works for me in the case of this issue, is backward compatible and breaks zero unit test.
https://github.com/jamesdbloom/mockserver-client-node/pull/26

this is now fixed and will be in the next release


Modify SSLContext's protocol

Changed protocol to allow that was not working in all the situations.
In particular with mkcert certificates and uvicorn

I'm sorry but I don't want to make the change you're proposing for two reasons:

PROTOCOL_TLSv1_2 is deprecated on all versions of Python that websockets currently supports
You define "is working" as "allows connections to establish without any regards for security". I take issue with this definition because the point of TLS is to provide security. If you want to disable check_hostname, go ahead — that's you choice. In the documentation, I'd rather demonstrate the secure version.


fix: serialization of GridPlan in ome-zarr writer when msgspec is not installed

fixes #375

:fire:


Language server can't find definition of typing.TYPE_CHECKING

@OutOfFocus4 commented on Sat May 04 2019
Issue Type: Bug
With the language server active, open or write a Python file with the line "from typing import TYPE_CHECKING".
Right-click TYPE_CHECKING and select the "Go To Definition" menu item, and a message will appear saying "No definition found for 'TYPE_CHECKING'".
If I enable Jedi, performing the above actions will open the standard library's typing.py with the cursor at the definition of TYPE_CHECKING.
Extension version: 2019.4.12954
VS Code version: Code 1.33.1 (51b0b28134d51361cf996d2f0a1c698247aeabd8, 2019-04-11T08:20:22.771Z)
OS version: Linux x64 4.15.0-48-generic snap

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz (4 x 2271)

GPU Status
2d_canvas: disabled_softwarechecker_imaging: disabled_offflash_3d: disabled_softwareflash_stage3d: disabled_softwareflash_stage3d_baseline: disabled_softwaregpu_compositing: disabled_softwaremultiple_raster_threads: disabled_offnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwaresurface_synchronization: disabled_offvideo_decode: disabled_softwarewebgl: disabled_offwebgl2: disabled_off

Load (avg)
1, 1, 1

Memory (System)
7.68GB (3.06GB free)

Process Argv

Screen Reader
no

VM
0%

LS is not using actual typing module, the module is specialized in code so LS can properly identify and instantiate generics. So this is by design.

Whether or not the LS is using the typing module to understand types, typing.py is still a file in the Python standard library.
Given the line of code from zipfile import ZipFile, the language server is able to find zipfile.py.
Or are you saying that the LS's specialized logic would break if it tried analysing typing.py?

Yes, that is correct. LS is not analyzing typing.py.

This requires for specialized modules to load original content, run some light weight analysis and attach locations to the specialized members.


Contradictory statements for WEBSITE_CONTENTAZUREFILECONNECTIONSTRING

Contradictory statements for WEBSITE_CONTENTAZUREFILECONNECTIONSTRING, see images/urls below
My bicep was throwing the next error, so I was checking the docs because of this: "Required parameter WEBSITE_CONTENTSHARE is missing." By removing both appsettings my deployment succeeded, and function is working
https://learn.microsoft.com/en-us/azure/azure-functions/functions-app-settings#website_contentazurefileconnectionstring

https://learn.microsoft.com/en-us/azure/azure-functions/functions-infrastructure-as-code?tabs=bicep#linux-1

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 18aa54fd-3aa1-37c5-925c-51a0195b1030
Version Independent ID: 60198016-1ea9-e7ae-b00b-2c665d5ad8ca
Content: App settings reference for Azure Functions
Content Source: articles/azure-functions/functions-app-settings.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@JordyGit Thanks for the feedback. We will review and update as appropriate.

I believe that we have updated the ARM/Bicep deployment article to reflect the latest guidance.  If you disagree, please open a new issue. Thanks! #please-close


Unexpected Error: CASE types agtype and boolean cannot be matched

When running the following query:
RETURN (CASE WHEN true THEN (true AND true) END)

I encountered the following error:
CASE types agtype and boolean cannot be matched

I believe the query mentioned above is semantically and syntactically correct and thus no error should be thrown here.
I encountered this issue when testing queries against the apache/age:PG13_latest docker image.
Steps to reproduce
Run the following query and observe it throws an error:
RETURN (CASE WHEN true THEN (true AND true) END)

Expected behavior
The query should run successfully
Actual behavior
The query fails with the error message CASE types agtype and boolean cannot be matched.

The error message "CASE types agtype and boolean cannot be matched" suggests that there may be an issue with the data types being used in your CASE statement. The CASE statement is used to conditionally return a value based on a set of conditions, and all values returned by the CASE statement must have the same data type.
It's possible that the true values being used in your CASE statement are being interpreted as Agtype values instead of boolean values. Agtype is a data type used in Apache AGE to represent nested JSON-like data structures. If the true values are being interpreted as Agtype values, this could cause a data type mismatch when evaluating the AND operator.
To resolve this issue, you can try the following steps:

Check that the true values being used in your CASE statement are being interpreted as boolean values. You can do this by explicitly casting the values to boolean using the ::boolean operator:

RETURN (CASE WHEN true THEN (true::boolean AND true::boolean) END)

If the true values are being interpreted as Agtype values, you can try explicitly casting them to boolean using the agtype_to_bool function:
RETURN (CASE WHEN agtype_to_bool('true') THEN (agtype_to_bool('true') AND agtype_to_bool('true')) END)

Hello!
I wanted to quickly ask if this bug is fully fixed now or not, since there seem to be a few commits addressing it?

@DominicWuest Should be resolved now, yeah~ Thanks for following up


Another follow-up for default.yaml: document it

Add documentation for the newly added default syntax highlighting feature.

I totally missed that.
Thank you...once again!


fix for deprecation of v1.1 endpoints : implemented search functionality

As we all know that twitter is closing older v1.1 endpoints so a few weeks ago twitter closed the endpoint on which twint's search functionality relied upon. Which broke twint's search functionality.
So I've implemented the search functionality again using their new endpoints.
#917 Pull Request was made which relies on the mobile version of the twitter but it doesn't give all the tweets of the query and doesn't support advance queries either.
This is the list of what I have tested.
Tested on : Python 3.6.8
Features I've tested :

twint -u username : works
twint -s pineapple : works
twint -s "#hashtag" : works
twint -s "hashtag" -o file.txt
twint -s "hashtag" -o file.csv --csv

Rest of the things I haven't tested yet, but I am quite certain most of the things won't directly work as the library is still broken. Although queries related to Search might work as the base Search functionality is working, so related queries will work too unless it depends on something that I have changed.
Need to test more to know what doesn't work.
Note: I've tested this on Python 3.6.8 because for some weird reason twitter's new endpoints aren't working with aiohttp on Python 3.8.6 ( haven't tested it on other versions though). even though aiohttp works fine when requesting other websites but for some reason it never returns anything when requesting twitter endpoints.

@pielco11 I was just doing some more testing and there is one issue I found.
Twitter doesn't allow us to get any data if we use an AWS IP. I don't have a GCP account so can't test it for GCP IPs.
Workaround for this is using proxy for getting the token and then making requests without using proxy. I have tested this and this works fine.
Although I don't have any idea how proxies are implemented in twint. Maybe someone else can give it a look.
Note : "tor" might also work for this. (haven't tested it yet though)

@pielco11 I was just doing some more testing and there is one issue I found.
Twitter doesn't allow us to get any data if we use an AWS IP. I don't have a GCP account so can't test it for GCP IPs.
Workaround for this is using proxy for getting the token and then making requests without using proxy. I have tested this and this works fine.
Although I don't have any idea how proxies are implemented in twint. Maybe someone else can give it a look.
Note : "tor" might also work for this. (haven't tested it yet though)

@himanshudabas I can confirm that google cloud IPs work when scraping with Twint, I just fresh install twint using git clone in a debian instance and everything works as expected.

@himanshudabas I can confirm that google cloud IPs work when scraping with Twint, I just fresh install twint using git clone in a debian instance and everything works as expected.

Thank you for confirming this.

I have also succeeded in scraping as usual, from a mobile connection in the United States in my case.  I noticed that formats for created_at and timezone have changed, but perhaps that is not related to this patch.
Thank you.

I have also succeeded in scraping as usual, from a mobile connection in the United States in my case. I noticed that formats for created_at and timezone have changed, but perhaps that is not related to this patch.
Thank you.

@NoSuck
I apologize if the format change caused some issues for you.
To my defense I only started to explore twint a few weeks ago, (actually after it broke) and I had no Idea what the results looked like before Twitter killed the legacy endpoints. Moreover I put up this patch as soon as I could. Bringing it back up was my first priority at that time.
Could you share with me what previous created_at and timezone looked like?

The previous created_at was in epoch milliseconds with a granularity of one second, so that every string ended in "000", e.g. "1602584056000" instead of "2020-10-13 06:14:16 EDT".  A previous timezone value would be "EDT" instead of "-0400".  You are very polite, but I cannot say these changes have caused any real issue for me.  However, I would agree that treading lightly is usually best.
A greater issue I noticed just now is the retaining of newline characters in --csv output.

I took a look and will submit a PR shortly.


Running git commit -> Invalid URL

Error: Unexpected JSON response:
{"error":{"code":null,"message":"Invalid URL (POST /v1/completions1)","param":null,"type":"invalid_request_error"}}
When running "git commit". (Ensured that OPENAI_API_KEY is properly set.)

Error: Unexpected JSON response: {"error":{"code":null,"message":"Invalid URL (POST /v1/completions1)","param":null,"type":"invalid_request_error"}}
When running "git commit". (Ensured that OPENAI_API_KEY is properly set.)

I see that there is a PR fixing this issue - closing out...


Refactor burn-onnxir to Enhance Dynamic Shape Support and Shape Inference

The current implementation of onnx-ir relies heavily on static shape information, which limits the flexibility and applicability of models, especially those requiring dynamic input dimensions. To address this limitation and improve compatibility with ONNX models that utilize dynamic shapes, we propose the following enhancements:

Remove Static Shape Constraints:

Eliminate the dependency on static shape attributes within the onnx-ir module.
Modify the Burn tensor APIs to accommodate dynamic dimensions, allowing for more flexible model definitions.

Implement Comprehensive Shape Inference:

Develop a robust shape inference mechanism that propagates rank and dimension information throughout the ONNX graph.
Ensure that operations like Conv2d, which have known input/output ranks, contribute to the inference process, enhancing the accuracy of shape determination.

Enhance Rank Inference Capabilities:

Improve the system's ability to infer tensor ranks dynamically, reducing the need for explicit shape specifications.
Utilize both input and output nodes, as well as intermediate operations, to gather comprehensive shape information.

Rationale:
The current approach of enforcing static shapes has led to limitations in model flexibility, particularly when dealing with inputs of varying dimensions, such as images or audio data. By refactoring onnx-ir to support dynamic shapes and implementing a more sophisticated shape inference system, we can:

Enhance compatibility with a broader range of ONNX models.
Reduce the need for manual shape specifications, simplifying the model development process.
Align with ONNX's support for dynamic shapes, ensuring that Burn remains a versatile and adaptable framework.

References:

https://github.com/tracel-ai/burn/pull/2441#pullrequestreview-2405432778
https://github.com/tracel-ai/burn/pull/2304#issuecomment-2442233521

Action Items:

Refactor the onnx-ir module to eliminate static shape dependencies.
Update Burn's tensor APIs to support dynamic dimensions.
Develop and integrate a comprehensive shape inference mechanism that utilizes information from inputs, outputs, and intermediate nodes.
Test the updated system with a variety of ONNX models to ensure compatibility and robustness.

By implementing these changes, we aim to make Burn more flexible and capable of handling a wider array of models and use cases, ultimately enhancing its utility and performance.

CCing: @laggui, @skewballfox, tiruka, @hexd0t, @nathanielsimard

While this is a bit short of runtime support, I've been thinking about a way to support compile time dynamic shapes with burn import. It essentially boils down to:

change the type dim to be an enum where a value is either a usize or some kind of identifier ( I guess a string).
add a method to graph_builder for setting to pass in a Hashmap that provides the initial size of any named dynamic dimensions for the inputs
each time a the size of a shape needs to be inferred (the enum is a named variant) we compute it's size from the information we have so far.

This, again, would fall a bit short of runtime support, but allows more flexibility for build time configuration, and I think we'd need the same information if using burn-import for buillding the models at runtime.

@skewballfox
I should have made requirements more clear. Currently there are two requirements:

Burn's Shape Handling: For Burn, we aim to avoid static shapes entirely (Burn's own graph will track shapes), which encourages more flexible creative approaches when passing shape information is necessary. This can include creating or fusing into nodes like NodeLike to facilitate operations without relying on static shape data.

ONNX-IR Shape Inference: With ONNX-IR, dynamic shape inference can be implemented where shapes (including dynamic dimensions that can be represented as identifiers (-1 for example)) are inferred. This allows rank and dimension inference from input and output node information, enhancing flexibility without static dependencies.

I would like to take up the first one behind a feature flag in onnx-ir crate. I want to disable shape information for burn-import because it is impossible to guarantee that a runtime shape would match the static shape information generated during the build.

For 1, could you point me to some relevant examples of what the syntax might look like? or just code out some examples here? I'm mainly trying to get a better idea of what the changes would be required for node shape handling.

This allows rank and dimension inference from input and output node information, enhancing flexibility without static dependencies.

Even if the shapes can be changed at runtime, it still seems reasonable to want to initialize the tensors with some expected capacity.

For 1, could you point me to some relevant examples of what the syntax might look like? or just code out some examples here? I'm mainly trying to get a better idea of what the changes would be required for node shape handling.

This allows rank and dimension inference from input and output node information, enhancing flexibility without static dependencies.

Even if the shapes can be changed at runtime, it still seems reasonable to want to initialize the tensors with some expected capacity.

I am currently refactoring onnx-ir and burn-import.
The main change is that I removed shape from TensorType. Renamed dim to rank, and Tensor to TensorData, which still contains shape because it's part of the input data.

#[derive(Debug, Clone, Default)]
pub struct TensorType {
    /// The type of the tensor.
    pub elem_type: ElementType,

    /// The dimension of the tensor.
    pub rank: Rank,
}

#[derive(Debug, Clone, Default)]
pub struct TensorData {
    /// The type of the tensor.
    pub elem_type: ElementType,

    /// The dimension of the tensor.
    pub rank: Rank,

    /// The data of the tensor.
    pub data: Option<Data>,

    /// The shape of the tensor.
    pub shape: Option<Shape>,
}

/// The type of an attribute.
#[derive(Debug, Clone)]
pub enum AttributeValue {
    Float32(f32),
    Float32s(Vec<f32>),
    Int64(i64),
    Int64s(Vec<i64>),
    String(String),
    Strings(Vec<String>),
    Tensor(TensorData),
    Tensors(Vec<TensorData>),
}

/// A node input or output.
#[derive(Debug, Clone)]
pub struct Argument {
    /// The name of the node input.
    pub name: String,

    /// The type of the argument.
    pub ty: ArgType,

    /// The data of the argument.
    pub value: Option<TensorData>,

    /// True if the argument is passed to node, false otherwise. We use it mainly for informational purposes.
    /// The argument should contain a value if passed is false.
    pub passed: bool,
}

The yellow bar indicates a change.

Even if the shapes can be changed at runtime, it still seems reasonable to want to initialize the tensors with some expected capacity.

This feature can be implemented if a use case warrants it. Shape inferencing likely won't be needed in most cases since other libraries using onnx-ir will track shapes at runtime themselves.
Currently, onnx-ir tracks shapes statically, mainly from tensor information contained in ONNX files. I didn't want downstream developers to use it assuming it was accurate information.


fix: set fee field error

Codecov Report

Merging #226 (7ae76c7) into main (aa67176) will decrease coverage by 3.16%.
The diff coverage is n/a.

:exclamation: Current head 7ae76c7 differs from pull request most recent head 0c44c8a. Consider uploading reports for the commit 0c44c8a to get more accurate results

@@            Coverage Diff             @@
##             main     #226      +/-   ##
==========================================
- Coverage   41.08%   37.92%   -3.17%
==========================================
  Files          23       17       -6
  Lines        1969     1743     -226
  Branches       48        0      -48
==========================================
- Hits          809      661     -148
+ Misses       1160     1082      -78

Impacted Files
Coverage Δ

...th-contracts/contracts/libraries/MultisigUtils.sol

...in-modules/eth-contracts/contracts/ForceBridge.sol

...es/eth-contracts/contracts/libraries/SafeERC20.sol

...ain-modules/eth-contracts/contracts/test/ERC20.sol

...ules/eth-contracts/contracts/libraries/Address.sol

...les/eth-contracts/contracts/libraries/SafeMath.sol

Continue to review full report at Codecov.

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


getting error While running scripts/plot-opo.py : FileNotFoundError: [Errno 2] No such file or directory: 'pdfcrop': 'pdfcrop'

I am getting Error while running Plot-opo.py ? Any idea how can I generate this file as I followed al the steps sequentially as per READ.md
Error :
/lctes-p27/scripts$ python plot_opo.py
[2019-11-24 23:57:31,488][INFO] main:67 - gain_b = 0.75, current_b = 0.75
[2019-11-24 23:57:31,508][INFO] main:86 - len(matched): 2028
[2019-11-24 23:57:31,508][INFO] main:88 - Plotting from ../hack/opamps/data/opo_processed_opamps.csv...
Traceback (most recent call last):
File "plot_opo.py", line 179, in
args.cb,
File "plot_opo.py", line 118, in _plot
run(["pdfcrop", outfile, outfile], stdout=DEVNULL, check=True)
File "/softwares/anaconda3/lib/python3.6/subprocess.py", line 403, in run
with Popen(*popenargs, **kwargs) as process:
File "/softwares/anaconda3/lib/python3.6/subprocess.py", line 709, in init
restore_signals, start_new_session)
File "/softwares/anaconda3/lib/python3.6/subprocess.py", line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'pdfcrop': 'pdfcrop'
Thanks in advance

Got the solution my self. Just did:
sudo apt-get install texlive-extra-utils


Typo in README

Update your tfsconfig.json project file to set "moduleResolution": "node"
Should be:
Update your tsconfig.json project file to set "moduleResolution": "node"

Thanks. Fixed!


update xgcm to 0.6.1

upstream removed the problematic docrep dependency which was licensed
with gpl.
Resolves #1526

Well, we've been using it this whole time...should be good now.

Kind of wish we could just remove the dep tho.


add metadata and Python examples

changelog

minor README updates
some Python shenanigans
added the metadata file, punyworld-overworld-tiles.json
marked some tiles in the tileset in red, because they appeared to be unused / duplicates

running the examples

create a Python virtual environment and activate it
install the dependencies

pip install -r requirements.txt

all the examples uses a very simple library i've written, tileset.py, which provides a few types and functions.
neighbours
python neighbours.py

space and shift + space will cycle through all the tiles
north, west, east and south neighbours will be shown next to the tile
k and shift + k will cycle the north neighbours
l and shift + l will cycle the east neighbours
j and shift + j will cycle the south neighbours
h and shift + h will cycle the west neighbours

Note
i haven't seen any issues

animations
python animation.py

will show all the animated tiles.
characters
python characters.py

space and shift + space will cycle through the characters

Important

the slime is missing
some tiles are not in the exact same location in the tilesets, so some animations are off

marking as DRAFT until the slime and bad character animations are fixed


Temp usage issue

In molten_lock.h
    char lock_path[LOCK_PATH_SIZE];
So lock_path is always set
In molten_lock.h
    if (lock->lock_path == NULL) {
So this condition is always false.
       mktemp(lock->lock_path);
mktemp is unsecure and should not be used
$ man 3 mktemp
       Never use this function; see BUGS.
$ make
...
/work/GIT/Molten/common/molten_lock.c:147: warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'

Proposal: use php_open_temporary_fd_ex public PHP API.

the error already fix.
the common dir will be used for cli tool feature, cli tool will not be compiled with php ,  so public PHP API should not be used in it.


Page up / down buttons over scroll and skip files

When I use the page up / down buttons, it overscrolls a couple files. I tried to change mpv.conf osd font size, but that doesnt fix the problem. anyone know what I can do to fix this? How is this not an issue already?

This is the expected behavior, not an issue.
UP/DOWN moves one row up/down
PGUP/PGDWN moves one page up/down
https://github.com/jonniek/mpv-playlistmanager/blob/d733d8c00cb543a646f2ce5ab5c12bef2dfd6756/playlistmanager.conf#L16-L19
If you want the PGUP/PGDWN to move one row, change these script options.
key_moveup=UP PGUP
key_movedown=DOWN PGDWN
key_movepageup=
key_movepagedown=

No.. it's an issue. it goes beyond a full page. already switched to a better one.

Yeah it seems to consider the hidden "..." lines as "visible" files, so it skips one file.
One unclear question is if the expected behavior is to skip to the next non visible file, or to skip so much that every visible file is a new file. I feel like the second one is more correct.


temp: split client reference into subpages

Still an interesting idea that we might revisit. Problem are the downsides of not having everything on one page any more that you can Ctrl+F.

@janpio this is a PR that I'd simply close. I actually think we should align on whether we want to split the reference into sub-pages (different people might have different opinions on that). Or otherwise leave open and defer?


Cannot import lxml.etree

Issue:
On a fresh AWS EC2 instance (insignificant output omitted):
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh -bfp ./miniconda
$ source miniconda/etc/profile.d/conda.sh
$ conda activate
$ conda create -y -n lxml -c conda-forge lxml
$ conda activate lxml
$ conda list | grep ^lxml
lxml                      4.4.0            py37h7ec2d77_0    conda-forge
$ python -c 'from lxml import etree'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: libiconv.so.2: cannot open shared object file: No such file or directory

Environment (conda list):

```
$ conda list
# packages in environment at /home/ec2-user/miniconda/envs/lxml:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main
bzip2                     1.0.8                h516909a_0    conda-forge
ca-certificates           2019.6.16            hecc5488_0    conda-forge
certifi                   2019.6.16                py37_1    conda-forge
icu                       64.2                 he1b5a44_0    conda-forge
libffi                    3.2.1             he1b5a44_1006    conda-forge
libgcc-ng                 9.1.0                hdf63c60_0
libstdcxx-ng              9.1.0                hdf63c60_0
libxml2                   2.9.9                h8cf2a2b_4    conda-forge
libxslt                   1.1.32            h31b3aaa_1004    conda-forge
lxml                      4.4.0            py37h7ec2d77_0    conda-forge
ncurses                   6.1               hf484d3e_1002    conda-forge
openssl                   1.1.1c               h516909a_0    conda-forge
pip                       19.2.1                   py37_0    conda-forge
python                    3.7.3                h33d41f4_1    conda-forge
readline                  8.0                  hf8c457e_0    conda-forge
setuptools                41.0.1                   py37_0    conda-forge
sqlite                    3.29.0               hcee41ef_0    conda-forge
tk                        8.6.9             hed695b0_1002    conda-forge
wheel                     0.33.4                   py37_0    conda-forge
xz                        5.2.4             h14c3975_1001    conda-forge
zlib                      1.2.11            h516909a_1005    conda-forge
```

Details about  conda and system ( conda info ):

```
$ conda info
 active environment : lxml
active env location : /home/ec2-user/miniconda/envs/lxml
        shell level : 2
   user config file : /home/ec2-user/.condarc

populated config files :
conda version : 4.7.10
conda-build version : not installed
python version : 3.7.3.final.0
virtual packages :
base environment : /home/ec2-user/miniconda  (writable)
channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/linux-64
https://repo.anaconda.com/pkgs/r/noarch
package cache : /home/ec2-user/miniconda/pkgs
/home/ec2-user/.conda/pkgs
envs directories : /home/ec2-user/miniconda/envs
/home/ec2-user/.conda/envs
platform : linux-64
user-agent : conda/4.7.10 requests/2.22.0 CPython/3.7.3 Linux/4.14.123-111.109.amzn2.x86_64 amzn/2 glibc/2.26
UID:GID : 1000:1000
netrc file : None
offline mode : False
</details>

Maybe it's an libxml2 issue, because if I pin libxml2=2.9.9=hee79883_2, the problem disappears. I'll go check that feedstock for an open issue, but leave this open in case someone else finds it while the issue is outstanding.

I just removed the build number 4 of libxml2 that introduced the problem.
See https://github.com/conda-forge/libxml2-feedstock/pull/49#issuecomment-519603542
PS: it may take ~50 min for the CDN to sync.

I can confirm that this is working correctly now. Thank you @ocefpaf !


Svelte support docs help [WIP]

Don't merge yet.
I will update docs as I find them

Thanks. I was just working on this! :D
I'll push up to the main working branch, and you'll see what I've done. I can do the merge as well so you don't have to solve the conflicts.

I have started a conversation with you on gitter so we can trade ideas and I can avoid wasting any of your time.


Azure Gov Zero Trust Bug

What happened? Provide a clear and concise description of the bug, including deployment details.
When deploying with bicep and with the diskZeroTrust value set to "true", I get an error that says, "ResourceIdentity Type must be provided and set to 'SystemAssigned'.". When deploying to Azure Commercial with the exact same parameters, I don't get that error. The step where the error occurs is when the "Disk Encryption Set" is being provisioned
Please provide the correlation id associated with your error or bug.
12763fb9-69ed-4d1a-8f67-39976da85d6c
What was the expected outcome?
A disk encryption set gets provisioned in the Azure Gov cloud
Relevant log output
No response

@Benwcloudnexus thank you for reporting the issue, we are checking.

@swathibhat1 let's create an item on the backlog to work this feature.
@chbragg we will work on the issue internally as it requires Gov cloud testing.
cc: @jamasten


first run error

(strm) ➜  kodi-strm git:(master) ✗ ./strm-generator.py
Please visit this URL to authorize this application: https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=tcvsobb1j1i0rpk3.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A53371%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly&state=FUjhTbM4cRWYUTlOndV54f9eY0LK2c&access_type=offline
Traceback (most recent call last):
File "/Users/bob/Downloads/strm/kodi-strm/./strm-generator.py", line 419, in
main()
File "/Users/bob/Downloads/strm/kodi-strm/./strm-generator.py", line 320, in main
service = authenticate()
File "/Users/bob/Downloads/strm/kodi-strm/./strm-generator.py", line 57, in authenticate
creds = flow.run_local_server(port=0)
File "/Users/bob/Downloads/strm/lib/python3.9/site-packages/google_auth_oauthlib/flow.py", line 458, in run_local_server
authorization_response = wsgi_app.last_request_uri.replace(
AttributeError: 'NoneType' object has no attribute 'replace'

Hi, sorry for the delay.
The problem you're facing seems to be related to the google-auth-oauthlib package (which is internally being used in this repo). On a quick glance, seems like you're facing this issue.
Seems like they didn't reach a conclusion. As suggested by a user in the same issue, try using a different browser to authenticate the session (or paste URL from the pop-up window to another browser).

I'm unable to replicate this issue at my end, I doubt I'll be of much help with this. Also, given that this issue isn't directly related to the code from this repository - I'll be closing this issue for now.


mouse-click locating of LABEL command works only in window 1

Reported by hankin on 19 Sep 2001 21:25 UTC
If multiple output windows are in use the mouse click for
yes? LABEL HELLO
must be entered into window 1 (even though the output label goes to window 2)
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/312

Comment by<EMAIL_ADDRESS>on 21 Oct 2003 20:16 UTC
Moving from the<EMAIL_ADDRESS>user to the<EMAIL_ADDRESS>user.

Comment by<EMAIL_ADDRESS>on 3 Nov 2003 20:53 UTC
Lower the priority; reassign to Ansley

Comment by<EMAIL_ADDRESS>on 3 Nov 2003 23:05 UTC
p

Comment by<EMAIL_ADDRESS>on 24 Sep 2004 16:56 UTC
This is also the case for the LABEL command
which can locate the label on the plot when
no coordinates are given by the user.
yes? go ptest
yes? LABEL "locate this label with a MOUSE click"
only works in window 1

Comment by<EMAIL_ADDRESS>on 24 Sep 2004 16:58 UTC
Oops, meant to say this is also true for the
WHERE command which sets symbols XMOUSE and YMOUSE
from a mouse click.

Comment by<EMAIL_ADDRESS>on 29 Nov 2004 23:13 UTC
Already fixed in Ferret v5.7 users guide


Sous Chefs Adoption

Standardise files with files in sous-chefs/repo-management
Cookstyle fixes
Add integration testing for Windows and MacOS
Remove testing for Amazon Linux 201x, CentOS 6 and Ubuntu 16.04
Fix ChefSpec tests
Fix issues with --strip-components with the :cherry_pick action on MacOS
Ensure /etc/profile.d exists on MacOS if append_env_path is used

Signed-off-by: Lance Albertson<EMAIL_ADDRESS>

Released as: 5.1.0

Released as: 5.1.0


ios: app_identifier not forwarded from Appfile to Fastfile

New Issue Checklist

[*] Updated fastlane to the latest version
[*] I read the Contribution Guidelines
[*] I read docs.fastlane.tools
[*] I searched for existing GitHub issues

Issue Description
For some reason, fastlane beta is not getting app_identifier when getting to gym.
I get an error: Code Signing Error: Bundle identifier is missing. Leti doesn't have a bundle identifier for the Release build configuration. Add a value for PRODUCT_BUNDLE_IDENTIFIER in the build settings editor...
Captured Output
Command Used: beta
Output/Log

DEBUG [2017-11-05 22:54:25.98]: Checking if there are any plugins that should be loaded...
INFO [2017-11-05 22:54:26.03]: -------------------------------------------------
INFO [2017-11-05 22:54:26.03]: --- Step: Verifying required fastlane version ---
INFO [2017-11-05 22:54:26.03]: -------------------------------------------------
INFO [2017-11-05 22:54:26.03]: Your fastlane version 2.28.7 matches the minimum requirement of 2.28.7  ✅
INFO [2017-11-05 22:54:26.03]: ------------------------------
INFO [2017-11-05 22:54:26.03]: --- Step: default_platform ---
INFO [2017-11-05 22:54:26.03]: ------------------------------
INFO [2017-11-05 22:54:26.03]: Driving the lane 'ios beta' 🚀
INFO [2017-11-05 22:54:26.04]: -----------------
INFO [2017-11-05 22:54:26.04]: --- Step: gym ---
INFO [2017-11-05 22:54:26.04]: -----------------
INFO [2017-11-05 22:54:26.69]: $ xcodebuild -list -project ./Leti.xcodeproj -configuration Release
INFO [2017-11-05 22:54:28.62]: $ xcodebuild -showBuildSettings -scheme Leti -project ./Leti.xcodeproj -configuration Release

+----------------------+--------------------------------------+
|                   Summary for gym 2.28.7                    |
+----------------------+--------------------------------------+
| export_method        | app-store                            |
| configuration        | Release                              |
| project              | ./Leti.xcodeproj                     |
| scheme               | Leti                                 |
| destination          | generic/platform=iOS                 |
| output_name          | Leti                                 |
| build_path           | /Users/mkozjak/Library/Developer/Xc  |
|                      | ode/Archives/2017-11-05              |
| clean                | false                                |
| output_directory     | .                                    |
| silent               | false                                |
| skip_package_ipa     | false                                |
| use_legacy_build_api | false                                |
| buildlog_path        | ~/Library/Logs/gym                   |
| xcode_path           | /Applications/Xcode.app              |
+----------------------+--------------------------------------+

+--------------------------------------+----------------------+
|                   Generated Build Command                   |
+--------------------------------------+----------------------+
| Option                               | Value                |
+--------------------------------------+----------------------+
| set -o pipefail &&                   |                      |
| xcodebuild                           |                      |
| -scheme Leti                         |                      |
| -project ./Leti.xcodeproj            |                      |
| -configuration Release               |                      |
| -destination                         | generic/platform=iOS |
| -archivePath                         |                      |
| /Users/mkozjak/Library/Developer/Xc  |                      |
| ode/Archives/2017-11-05/Leti\        |                      |
| 2017-11-05\ 22.54.30.xcarchive       |                      |
| archive                              |                      |
| | tee                                |                      |
| /Users/mkozjak/Library/Logs/gym/Let  |                      |
| i-Leti.log                           |                      |
| | xcpretty                           |                      |
+--------------------------------------+----------------------+
INFO [2017-11-05 22:54:30.43]: $ set -o pipefail && xcodebuild -scheme Leti -project ./Leti.xcodeproj -configuration Release -destination 'generic/platform=iOS' -archivePath /Users/mkozjak/Library/Developer/Xcode/Archives/2017-11-05/Leti\ 2017-11-05\ 22.54.30.xcarchive archive | tee /Users/mkozjak/Library/Logs/gym/Leti-Leti.log | xcpretty
INFO [2017-11-05 22:54:30.77]: ▸ 2017-11-05 22:54:30.775 xcodebuild[9259:20383894] [MT] PluginLoading: Required plug-in compatibility UUID DF11C142-1584-4A99-87AC-1925D5F5652A for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Vicious.xcplugin' not present in DVTPlugInCompatibilityUUIDs
INFO [2017-11-05 22:54:31.38]: ▸ Aggregate Leti/Qt Preprocess [Release]
INFO [2017-11-05 22:54:31.42]: ▸ Check Dependencies
INFO [2017-11-05 22:54:31.42]: ▸ Running script 'Qt Qmake'
INFO [2017-11-05 22:54:31.60]: ▸ Running script 'Qt Preprocessors'
INFO [2017-11-05 22:54:31.71]: ▸ Building Leti/Leti [Release]
INFO [2017-11-05 22:54:31.71]: ▸ Check Dependencies
INFO [2017-11-05 22:54:31.72]: ▸ ** ARCHIVE FAILED **
INFO [2017-11-05 22:54:31.72]: ▸ The following build commands failed:
INFO [2017-11-05 22:54:31.72]: ▸ Check dependencies
INFO [2017-11-05 22:54:31.72]: ▸ (1 failure)
2017-11-05 22:54:30.775 xcodebuild[9259:20383894] [MT] PluginLoading: Required plug-in compatibility UUID DF11C142-1584-4A99-87AC-1925D5F5652A for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Vicious.xcplugin' not present in DVTPlugInCompatibilityUUIDs
▸ Aggregate Leti/Qt Preprocess [Release]
▸ Check Dependencies
▸ Running script 'Qt Qmake'
▸ Running script 'Qt Preprocessors'
▸ Building Leti/Leti [Release]
▸ Check Dependencies
** ARCHIVE FAILED **

The following build commands failed:
Check dependencies
(1 failure)
ERROR [2017-11-05 22:54:31.75]: Exit status: 65
WARN [2017-11-05 22:54:31.75]: 📋  For a more detailed error log, check the full log at:
WARN [2017-11-05 22:54:31.75]: 📋  /Users/mkozjak/Library/Logs/gym/Leti-Leti.log

+-------------+-------------------------+
|           Build environment           |
+-------------+-------------------------+
| xcode_path  | /Applications/Xcode.app |
| gym_version | 2.28.7                  |
| sdk         | iPhoneOS11.0.sdk        |
+-------------+-------------------------+

WARN [2017-11-05 22:54:31.78]: Lane Context:
INFO [2017-11-05 22:54:31.78]: {:DEFAULT_PLATFORM=>:ios, :PLATFORM_NAME=>:ios, :LANE_NAME=>"ios beta"}
ERROR [2017-11-05 22:54:31.78]: Error building the application - see the log above
INFO [2017-11-05 22:54:31.79]: Successfully generated documentation at path '/opt/dev/github.com/qaap/leti/fastlane/README.md'

+------+---------------------+-------------+
|             fastlane summary             |
+------+---------------------+-------------+
| Step | Action              | Time (in s) |
+------+---------------------+-------------+
| 1    | Verifying required  | 0           |
|      | fastlane version    |             |
| 2    | default_platform    | 0           |
| 💥   | gym                 | 5           |
+------+---------------------+-------------+

ERROR [2017-11-05 22:54:31.80]: fastlane finished with errors

✅ fastlane environment ✅
Stack

Key
Value

OS
10.12.6

Ruby
2.2.4

Bundler?
false

Git
git version 2.13.5 (Apple Git-94)

Installation Source
~/.fastlane/bin/bundle/bin/fastlane

Host
Mac OS X 10.12.6 (16G29)

Ruby Lib Dir
~/.fastlane/bin/bundle/lib

OpenSSL Version
OpenSSL 1.0.2g  1 Mar 2016

Is contained
false

Is homebrew
true

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
9.0.1

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE
en_US.UTF-8
✅

fastlane files:
`./fastlane/Fastfile`
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://docs.fastlane.tools/actions
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# If you want to automatically update fastlane if a new version is available:
# update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.28.7"

default_platform :ios

platform :ios do
  before_all do
    # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."

  end

  desc "Runs all the tests"
  lane :test do
    # scan
  end

  desc "Submit a new Beta Build to Apple TestFlight"
  desc "This will also make sure the profile is up to date"
  lane :beta do
    # match(type: "appstore") # more information: https://codesigning.guide
    gym(
      export_method: "app-store",
      configuration: "Release"
    )

    # pilot(skip_waiting_for_build_processing: true)

    # sh "your_script.sh"
    # You can also use other beta testing services here (run `fastlane actions`)
  end

  desc "Deploy a new version to the App Store"
  lane :release do
    # match(type: "appstore")
    # snapshot
    gym # Build your app - more options available
    deliver(force: true)
    # frameit
  end

  # You can define as many lanes as you want

  after_all do |lane|
    # This block is called, only if the executed lane was successful

    # slack(
    #   message: "Successfully deployed new App Update."
    # )
  end

  error do |lane, exception|
    # slack(
    #   message: exception.message,
    #   success: false
    # )
  end
end

# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
# All available actions: https://docs.fastlane.tools/actions

# fastlane reports which actions are used
# No personal data is recorded. Learn more at https://github.com/fastlane/enhancer

`./fastlane/Appfile`
app_identifier "my.identifi.er" # The bundle identifier of your app
apple_id<EMAIL_ADDRESS># Your Apple email address

team_id "TEAM_ID" # Developer Portal Team ID

fastlane gems

Gem
Version
Update-Status

fastlane
2.28.7
💥 Check failed

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

slack-notifier
1.5.1

CFPropertyList
2.3.5

claide
1.0.1

colored2
3.1.2

nanaimo
0.2.3

xcodeproj
1.4.4

rouge
1.11.1

xcpretty
0.2.6

terminal-notifier
1.7.1

unicode-display_width
1.1.3

terminal-table
1.7.3

plist
3.2.0

public_suffix
2.0.5

addressable
2.5.1

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.5.0

babosa
1.0.2

colored
1.2

highline
1.7.8

commander-fastlane
4.4.4

excon
0.55.0

faraday
0.12.1

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20170404

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
2.1.0

gh_inspector
1.0.3

uber
0.0.15

representable
2.3.0

retriable
2.1.0

mime-types-data
3.2016.0521

mime-types
3.1

hurley
0.2

little-plugger
1.1.4

multi_json
1.12.1

logging
2.2.2

jwt
1.5.6

memoist
0.15.0

os
0.9.6

signet
0.7.3

googleauth
0.5.1

httpclient
2.8.3

google-api-client
0.9.28

json
1.8.1

mini_magick
4.5.1

multi_xml
0.6.0

rubyzip
1.2.1

security
0.1.3

xcpretty-travis-formatter
0.0.4

dotenv
2.2.0

bundler
1.14.6

faraday_middleware
<IP_ADDRESS>

libxml-ruby
3.0.0

generated on: 2017-11-05

If I manually insert an identifier in Info.plist, then it works. Seems like it's ignoring Appfile altogether. Am I doing anything wrong?

@mkozjak The Apple will not insert an app identifier into your Xcode project and/or plist. The app_identifier is used to communicate with the iOS Developer Center and iTunesConnect APIs to make sure that the proper app information is uploaded/download. You should be putting your app identifier into the Info.plist so your fix is the correct thing to do 👍


SemanticSegmentationData: Paletted PIL Images Support

Discussed in https://github.com/Lightning-AI/lightning-flash/discussions/1397

Originally posted by Nico995 July 17, 2022
Hello, I have been trying run a SemanticSegmentation task on a custom dataset with no luck. The problem I'm facing is that it looks like paletted png images are not supported as targets for the task.
TL;DR
ImageSegmentationData.from_files breaks when target files are paletted PNG images.
Reproducing a working example
To prove my point, I started from the segmentation example on flash website:

I downloaded the dataset:

from flash.core.data.utils import download_data

download_data(
    "https://github.com/ongchinkiat/LyftPerceptionChallenge/releases/download/v0.1/carla-capture-20180513A.zip",
    "./data",
)

Next, I took a second to examine the format of the segmentation mask. As it turns out, the images are in RGB format, where the R channel contains the class index for each pixel, and the GB channels are set to 0. You can verify that with the following code:

from PIL import Image
import numpy as np

image = Image.open('./data/CameraRGB/F61-1.png')
seg_mask = Image.open('./data/CameraSeg/F61-1.png')

print('Mask mode:', seg_mask.mode)
print('Mask shape:', np.array(seg_mask).shape)
print('Mask pixel:', np.array(seg_mask)[0,0])
print('R channel values:', np.unique(np.array(seg_mask)[:,:,0]))
print('G channel values:', np.unique(np.array(seg_mask)[:,:,1]))
print('B channel values:', np.unique(np.array(seg_mask)[:,:,2]))
display(image.resize((200, 200)))
display(seg_mask.resize((200, 200)))

Mask mode: RGB
Mask shape: (600, 800, 3)
Mask pixel: [9 0 0]
R channel values: [ 0  1  2  3  4  5  6  7  8  9 10 11 12]
G channel values: [0]
B channel values: [0]

The mask looks completely black because PIL in RGB mode (x, 0, 0) colors with 0<x<12 are black/red-ish colors.

I then created a datamodule and a trainer to check that everything is working as intended (and it does):

import torch
import flash
from flash.image import SemanticSegmentation, SemanticSegmentationData

datamodule = SemanticSegmentationData.from_files(
    train_files=['./data/CameraRGB/F61-1.png'],
    train_targets=['./data/CameraSeg/F61-1.png'],
    num_classes=21,
    batch_size=4,
)

model = SemanticSegmentation(
    backbone="mobilenetv3_large_100",
    head="fpn",
    num_classes=datamodule.num_classes,
)

trainer = flash.Trainer(fast_dev_run=1, gpus=torch.cuda.device_count())
trainer.fit(model, datamodule=datamodule)

Epoch 0: 100%
1/1 [00:00<00:00, 3.13it/s, loss=7.17, v_num=, train_jaccardindex_step=0.00086, train_cross_entropy_step=7.170, train_jaccardindex_epoch=0.00086, train_cross_entropy_epoch=7.170]

Testing Paletted images
The problem arises when I try to use the paletted version of the same mask, as follows:

First, I convert the RGB image to a P image, assigning an arbitrary palette:

# build fake palette
palette = []
for channel in range(3):
    for value in np.linspace(64, 255, 4):
        palette.append(np.roll(np.array((int(value), 0, 0)), channel))

# convert RGB to paletted mode (labels are in channel 0)
seg_mask_p = Image.fromarray(np.array(seg_mask)[:,:,0]).convert('P')

# set fake palette
seg_mask_p.putpalette([c for rgb in palette for c in rgb])
seg_mask_p.resize((200, 200))

Next I check the format of the new mask, to compare it with the original mask:

print('Mask mode:', seg_mask_p.mode)
print('Mask shape:', np.array(seg_mask_p).shape)
print('Mask pixel:', np.array(seg_mask_p)[0,0])
print('P channel values:', np.unique(np.array(seg_mask)))

Mask mode: P
Mask shape: (600, 800)
Mask pixel: 9
P channel values: [ 0  1  2  3  4  5  6  7  8  9 10 11 12]

Finally I run the trainer again and get an error:

import torch
from flash.image import SemanticSegmentation, SemanticSegmentationData

image.save('./tmp_image.png')
seg_mask_p.save('./tmp_mask_p.png')

datamodule = SemanticSegmentationData.from_files(
    train_files=['./tmp_image.png'],
    train_targets=['./tmp_mask_p.png'],
    num_classes=21,
    batch_size=4,
)

trainer.fit(model, datamodule=datamodule)

The whole traceback is very long, but the key line is the following
../aten/src/ATen/native/cuda/NLLLoss2d.cu:93: nll_loss2d_forward_kernel: block: [0,0,0], thread: [961,0,0] Assertion `t >= 0 && t < n_classes` failed.

Suspected problem
I believe I have seen this error many times already, and I think it is referring to a loss function call when the argument contains values larget than the number of classes declared. My first guess is that this is happening because flash default behavior is to convert the mask to RGB, and reading only the first channel. Below I try to justify my assumption.
I believe this is the line responsible for extracting the first channel:

in /flash/image/segmentation/input.py:110

def load_sample(self, sample: Dict[str, Any]) -> Dict[str, Any]:
    filepath = sample[DataKeys.INPUT]
    sample[DataKeys.INPUT] = to_tensor(load_image(filepath))
    if DataKeys.TARGET in sample:
        sample[DataKeys.TARGET] = (to_tensor(load_image(sample[DataKeys.TARGET])) * 255).long()[0] <---
    sample = super().load_sample(sample)
    sample[DataKeys.METADATA]["filepath"] = filepath
    return sample

And this is the line responsible for the RGB conversion

in /flash/core/data/utils.py:169

def image_default_loader(file_path: str, drop_alpha: bool = True) -> Image:
    """Default loader for images.
    Args:
        file_path: The image file to load.
        drop_alpha: If ``True`` (default) then any alpha channels will be silently removed.
    """
    img = default_loader(file_path) <---
    if img.mode == "RGBA" and drop_alpha:
        img = img.convert("RGB")
    return

Which in turn is a pytorch function that simply loads a RGB image

in torchvision/datasets/folder.py:245

def pil_loader(path: str) -> Image.Image:
    # open path as file to avoid ResourceWarning (https://github.com/python-pillow/Pillow/issues/835)
    with open(path, "rb") as f:
        img = Image.open(f)
        return img.convert("RGB") <---

#(...)

def default_loader(path: str) -> Any:
    from torchvision import get_image_backend

    if get_image_backend() == "accimage":
        return accimage_loader(path)
    else:
        return pil_loader(path) <---

Possible solution
I think it would be nice to have a parameter in SemanticSegmentationFilesInput.from_folders inside /flash/image/segmentation/data.py that allows the user to specify the mode of the image.
The parameter would default to 'RGB' for backward compatibility, and could be set to 'P' if one wants to work with paletted images.

Let me know if this looks like a possible enhancement, or if I just simply missed a parameter somewhere that would solve the problem :)

Hi @Nico995, I have able to generate the error (however, I had to use two files, since, for one file, the shape comes out to be (256, 256)), and I got the error as IndexError: Target 64 is out of bounds.. I guess you are right as well, i.e allowing a bit of modifiable reading format would help in customizing the package on different sets of data and tasks. Are you still working on it, or have found any approach to solve the problem?

Hi @uakarsh, sorry for the late reply.
I have not been checking this in a long time. It appears that either I got the code reference from the wrong branch, or the master branch changed. Anyways, now the official code looks like this:

in flash/image/segmentation/input.py:97

def load_sample(self, sample: Dict[str, Any]) -> Dict[str, Any]:
    if DataKeys.TARGET in sample:
        sample[DataKeys.TARGET] = np.array(load_image(sample[DataKeys.TARGET])).transpose((2, 0, 1))[:, :, 0]
    return super().load_sample(sample)

which breaks my example at point n.3 with the following error:

Expected input batch_size (1) to match target batch_size (128).

I did not take the time to fully debug the code, but I suppose one could at least include support for P-formatted images since they fit the description of a segmentation target incredibly well.
Anyways, the quick&dirty solution I am using at the moment is removing the .transpose((2, 0, 1)) when working with paletted images.


Feature request: Allow optional inputs / placeholder tensors

Current behaviour:
Given a set of inputs, NiftyNet will match them by name to each other and then reject inputs for which some set of the related inputs are not present. For example
01 image_01.nii.gz label_01.nii.gz
02                 label_02.nii.gz
03 image_03.nii.gz label_03.nii.gz
04 image_04.nii.gz

NiftyNet will reject 02 and 04 and the resulting dataset will be {01, 03}
Proposed behaviour:
The user can specify that a given input (label in our example) is optional, and can be replaced with a placeholder if missing. 02 is still rejected because image is not marked as optional, but 04 can be included as label is optional and can be replaced by a placeholder tensor.
Additional to outputting a placeholder tensor for the label, NiftyNet should also create a set of flags indicating whether a given input is a placeholder or not.
Ini file
We add an 'optional' keyword to the ini file vocabulary for inputs. This is set to true or false. If set to true, we have another keyword 'default' that is set to the desired value in the placeholder tensor. If 'optional' is not specified, the behaviour is optional=false. If default is not specified, the behaviour is default=0.

To ease cross-referencing this ticket. The proposed behaviour would be great to implement hetero-modal networks such as HeMIS, PIMMS from @tomvars , Dorent:19 from @reubendo and the like.

It's applicable to @tomvars work but after a chat with @ReubenDo, we think that his use case is more specialized. I'll capture it in a couple of issues but for now its going into contrib.


Annotations appear when using HTML5 player (even if it's disabled)

Hello,
There's a problem with YouTube Center (Dev Version). I checked the case to not have the annotations on videos. It works great with Flash player, but not with HTML5 player.
Is it possible to fix it? Thanks, and good job on YouTube Center, one of my favorite extension so far!

Duplicate/related to #432?


URL Encoding Bug Fixes

Fixes #7 - Fixes URL escaping bug in creation of arrival and departure server requests
Cleans up URL calls to remote server for alarm creation
Also, make two method names in the OBA server.rb class more accurate.

Looks good to me!

Travis is being dumb. Specs pass. Merging.


Players lose lives even when jumping in water

Sometimes players lose lives even when jumping in water. May be due to a plasmid bug.

Affects circle and donut map only.

the only reason I see for why this happens is that those two maps have their jumping platform 100 blocks higher than their pool.
the square map has it 50 blocks higher than its pool.


IPAM UI isn't loading

Hi,
I built IPAM with -PrivateACR flag without any changes in the code. The UI isn't loading:

In the Web APP logs I see the following:
2024-10-15T22:58:55.8917016Z Message: Please provide below info when asking for support: timestamp = 2024-10-15T22:58:55.7969739Z, correlationId = a02a03ff-d2ee-41a8-9592-d53384b9f494.
2024-10-15T22:58:55.8917128Z Exception Details:	(AccessDenied) Access is denied to the requested resource. The user might not have enough permission.
2024-10-15T22:58:55.8917261Z 	Code: AccessDenied
2024-10-15T22:58:55.8917349Z 	Message: Access is denied to the requested resource. The user might not have enough permission.
2024-10-15T22:58:55.8917471Z 2024-10-15 22:58:55.890 | INFO     | uvicorn.protocols.http.httptools_impl:send:468 - *******:12665 - "GET /api/status HTTP/1.1" 200
2024-10-15T22:59:29.4404903Z 2024-10-15 22:59:29.438 | ERROR    | app.dependencies:validate_token:209 - Microsoft Identity v1.0 access tokens are not supported!
2024-10-15T22:59:29.4407197Z 2024-10-15 22:59:29.438 | ERROR    | app.dependencies:validate_token:210 - https://learn.microsoft.com/en-us/entra/identity-platform/access-tokens#token-formats

Hi @aazherelyeu, appreciate you reaching out here and of course happy to help!
Are you able to provide any logs from the deployment?
First and foremost, it looks like you may have manually created the Service Principals. I can see from the error message above that the SP is configured to use a v1 token, and the scripts provided in the repo for deployment specifically build them with v2 enabled.
Additionally it looks like some SP permissions might be missing?
Can you provide me more details around exactly how this was deployed (e.g. commands that were used) and perhaps how the Service Principals were created?
Thanks so much!

Hello,
The log is attached.
App registrations were created manually. IPAM was installed with the following command:
.\deploy.ps1 -Location "${{ parameters.Location }}" -ResourceNames $ResourceNames -ParameterFile ./main.parameters.json -PrivateACR
In main.parameters.json I passed AppID of UI and engine as well as secret.
The screenshots are below:
UI:

Engine:

deploy_20241016093853AM.log

Thanks for clarifying @aazherelyeu.
You will also need to make sure the "acceptedTokenVersion" is set to "2" and the Engine App Registration is aware of the UI App Registration by way of "knownClientApplications", both of which are in the manifest for the App Registrations.
Furthermore, you will need to make sure the Engine has been granted Admin Consent and this is a backend app and users cannot be presented with a consent window.
All of the above are taken care of by the provided scripting, so if you have more issues you may want to consider deploying the App Registrations & Service Principals via script instead of manually.

UI is working now once I set the following parameters in the manifest:
"acceptedTokenVersion" is set to "2".
"knownClientApplications" is set to AppID of UI app registration.
Additionally, I'd like to get an access token as described here:
https://azure.github.io/ipam/#/api/README
But I get the following error:
$accessToken = ConvertTo-SecureString (Get-AzAccessToken -ResourceUrl api://0ef88435-f5ad-42d6-9630-ed3eb2ed835d).Token -AsPlainText
WARNING: Upcoming breaking changes in the cmdlet 'Get-AzAccessToken' :
The Token property of the output type will be changed from String to SecureString. Add the [-AsSecureString] switch to avoid the impact of this upcoming breaking change.

The change is expected to take effect in Az version : '13.0.0'
The change is expected to take effect in Az.Accounts version : '4.0.0'
Note : Go to https://aka.ms/azps-changewarnings for steps to suppress this breaking change warning, and other information on breaking changes in Azure PowerShell.
Get-AzAccessToken: ManagedIdentityCredential authentication failed: Service request failed.
Status: 400 (Bad Request)

Content:
{"error":{"code":"AudienceNotSupported","message":"Audience api://0ef88435-f5ad-42d6-9630-ed3eb2ed835d is not a supported MSI token audience."}}
Headers:
X-Powered-By: REDACTED
ETag: W/"90-cpTBODqslv24YIwwUr0BCk547sw"
Date: Wed, 16 Oct 2024 19:06:42 GMT
Connection: keep-alive
Keep-Alive: REDACTED
Content-Type: application/json; charset=utf-8
Content-Length: 144
See the troubleshooting guide for more information. https://aka.ms/azsdk/net/identity/managedidentitycredential/troubleshoot
ConvertTo-SecureString: Cannot bind argument to parameter 'String' because it is null.

For the Get-AzAccessToken command, it looks like you are using the incorrect -ResourceURL. From your own screenshot above, the API URL should look like this:

Did I read that correctly?

I recreated App registration. So, it has a new ID

Hey @aazherelyeu, I did some testing myself and after creating a net-new App Registration, it took some time before the Get-AzAccesstoken would work. After about 1HR, everything is working as expected.
Can you check if you're seeing the same behavior on your end?

Hi Matthew,
Still the same issue :(
I was testing UI functionalities, all seem to be working fine. When I tried in Swagger I got this error for all API calls:

In Postman all is good:

Got it @aazherelyeu.
And when you re-created the App Registration, you were sure to add in the Authorized Client Applications (from your screenshots above)?

These are what allow a token to be generated from the Azure CLI and Azure PowerShell.

Yes, they are added as well:

Thanks for confirming @aazherelyeu.
At this point I'm not sure why you are unable to generate a token using PowerShell. I've created one manually on my end and everything appears to be working from what I can see. I'm more than happy to schedule a Teams meeting with you to review everything and see what might be missing. If that sounds like something you'd be interested in please drop me an email at<EMAIL_ADDRESS>and we'll put some time on the calendar.
Out of curiosity, can you try generating the App Registrations using the scripting I've provided & thoroughly tested?
You can generate only the App Registrations by using the App Identities Only deployment as shown in the docs.

I will test the script in my private subscription. The weird thing is that everything is working in UI as well as in Postman but not working in Swagger.
I will sent you an email regarding testing of generating tokens using Powershell.


Connect to NiFi using JWT/User Token

Is your feature request related to a problem? Please describe.
We have NiFi running in Kubernetes with an Ingress protected by a Let's Encrypt certificate, then NiFi is using an Open ID Connect provider for Authentication of user credentials (ultimately resulting in a user auth token being issued by NiFi to the user's browser once it's received the JWT from the OIDC provider).
Describe the solution you'd like
dotifi to allow specification of a user's token via a command line parameter/environment variable (and/or in the config.yaml, although that's likely to be less secure).
While it would be nice for the full OIDC code flow to be available in the tool, I suspect that's not realistic.
Describe alternatives you've considered
Certificate authentication is possible when running the dotifi process within the Kubernetes namespace (our NiFi cluster is protected using nifi-toolkit produced certificates), but that makes it more difficult to obtain the diagram files from within the Pod.
Additional context
NiPyApi allows setting of a security token via nipyapi.security.set_service_auth_token(token=jwt, service=service), then subsequent calls to NiPyApi methods work as normal.
May need to be able to specify SSL certificates along with the token. In my case I'd generally expect the Let's Encrypt ingress to be trusted by the user's O/S, but if bespoke certs are used to protect the NiFi endpoint then a CA would need to be provided to allow trust.
The user's JWT can be obtained via their browser's Dev Tools (e.g. F12 in Chrome) and looking for the jwt entry from their NiFi website domain within their Local Storage.

@ChrisSamo632  I have a PR up, If I land it, can you try this out before I do a release?

@ChrisSamo632 I have a PR up, If I land it, can you try this out before I do a release?

Should be able to I think (just need to figure how to build and run from non released source, but assume that's not too difficult)

let me mark as experimental and do the release

0.2.0 has been published @ChrisSamo632
Please let me know if it works, I'll do 0.2.1 to take out the experimental doc


modify test with weex-wd

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


No devicekey for device firmware 3.6.0 (Sonoff Basic R3)

Sonoff Basic R3
sonoff_local  1000909a3f <= Local1 | No devicekey for device
sonoff_local  1000b8e530<= Local1 | No devicekey for device

Did you find a solution for this issue? I have the same problem ...

haha it was my mistake
In homeassistant I use another email In the app use another email.
don't must share, The solution is to share the device.


Improving the plugin installation declaration

As I had problems installing this plugin in an application that was already using the Spatie plugin, I updated the installation documentation to make it easier to understand how to install it from scratch, or how to make this plugin work in an existing application.

Rewritten a bit, so closing this.
Thanks again for your support in making the documentation better!
And thanks for using the package!