v0.3.7 update bugged the tools.

Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\convert.py", line 145, in
main()
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\convert.py", line 65, in main
convert_sav_to_json(
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\convert.py", line 105, in convert_sav_to_json
gvas_file = GvasFile.read(
^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\gvas.py", line 131, in read
gvas_file.properties = reader.properties_until_end()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 399, in property
value = self.struct(path)
^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 515, in struct
value = self.struct_value(struct_type, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 542, in struct_value
return self.properties_until_end(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 477, in property
value = self.prop_value(value_type, value_struct_type, value_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 499, in prop_value
return self.struct_value(struct_type_name, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 542, in struct_value
return self.properties_until_end(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 396, in property
value = self.custom_properties[path][0](self, type_name, size, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\rawdata\character.py", line 13, in decode
value["value"] = decode_bytes(reader, char_bytes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\rawdata\character.py", line 22, in decode_bytes
"object": reader.properties_until_end(),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 399, in property
value = self.struct(path)
^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 515, in struct
value = self.struct_value(struct_type, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 542, in struct_value
return self.properties_until_end(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\PalworldSaveToolsMaster\PalworldSaveTools.v0.7.3\palworld_save_tools\archive.py", line 493, in property
raise Exception(f"Unknown type: {type_name} ({path})")
Exception: Unknown type: ByteProperty (.SaveParameter.Rank)
Gives me an error after getting the Level.sav from updated server after the update v0.3.7. Any suggestions/inputs on how to fix this?

ANDException: Unknown type: ByteProperty (.SaveParameter.Talent_HP)

AND
Exception: Unknown type: ByteProperty (.SaveParameter.Talent_HP)

[
TestSavev0.3.7.zip
](url)
Thought I should attach my updated save from my server after updating to v0.3.7 just in case to help you debug and finding the potential fix.

TestSavev0.3.7.zip
Thought I should attach my updated save from my server after updating to v0.3.7 just in case to help you debug and finding the potential fix.

palworld_save_tools.zip
This is a temporary solution I'm using, in case some people want to update to make their tools work. Huge thanks to Choi-Jungwoo for the temporary solution.

Thanks to Choi-Jungwoo above, the tool has a temporary solution.
palworld_save_tools.zip
Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.

I've compared values between IV stats + character levels, the original values for the fields are stored in the upper 8 bits of the uint16, e.g.:
512 -> 2
4608 -> 18
5120 -> 20
7168 -> 28
9216 -> 36

(New vals on left, original on right, right values are the same as left >> 8)
unknown_str always seems to be "None" for my sample

Thanks to Choi-Jungwoo above, the tool has a temporary solution.
palworld_save_tools.zip
Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.

Are you saying that the code in that .zip file can properly convert the Level.sav file to JSON?

Thanks to Choi-Jungwoo above, the tool has a temporary solution.
palworld_save_tools.zip
Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.

Are you saying that the code in that .zip file can properly convert the Level.sav file to JSON?

As far as I am concerned, and on multiple saves, yes - it should.
I also used it for converting from local to dedicated server, and via versa, seems to be working without any issues. As far as I know.

The only issue I can see, is if we try to use this version of tool with older saves that aren't updated on/after v0.3.7 patch, it'll error out. Besides that, the saves on/after v0.3.7 patch will work as intended.

Checking if Python is installed as python3
INFO: Could not find files for the given pattern(s).
Checking if Python is installed as python
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe
Found Python at python
Python version:
Python 3.12.6
Converting C:\TCAFiles\Users\bobasaurs\14\Pal\Saved\SaveGames\0\B378F4FE4EFAF82D90BE9399231CD6A0\Level.sav to JSON, saving to C:\TCAFiles\Users\bobasaurs\14\Pal\Saved\SaveGames\0\B378F4FE4EFAF82D90BE9399231CD6A0\Level.sav.json
Decompressing sav file
Loading GVAS file
Traceback (most recent call last):
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\convert.py", line 164, in
main()
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\convert.py", line 75, in main
convert_sav_to_json(
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\convert.py", line 118, in convert_sav_to_json
gvas_file = GvasFile.read(
^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\gvas.py", line 131, in read
gvas_file.properties = reader.properties_until_end()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 399, in property
value = self.struct(path)
^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 515, in struct
value = self.struct_value(struct_type, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 542, in struct_value
return self.properties_until_end(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 477, in property
value = self.prop_value(value_type, value_struct_type, value_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 499, in prop_value
return self.struct_value(struct_type_name, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 542, in struct_value
return self.properties_until_end(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 396, in property
value = self.custom_properties[path][0](self, type_name, size, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\rawdata\character.py", line 13, in decode
value["value"] = decode_bytes(reader, char_bytes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\rawdata\character.py", line 22, in decode_bytes
"object": reader.properties_until_end(),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 399, in property
value = self.struct(path)
^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 515, in struct
value = self.struct_value(struct_type, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 542, in struct_value
return self.properties_until_end(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 386, in properties_until_end
properties[name] = self.property(type_name, size, f"{path}.{name}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Downloads\palworld-save-tools-windows-v0.23.1\palworld_save_tools\archive.py", line 493, in property
raise Exception(f"Unknown type: {type_name} ({path})")
Exception: Unknown type: ByteProperty (.SaveParameter.Level)
Press any key to continue . . .
fresh world save today gives this error ?

Thanks to Choi-Jungwoo above, the tool has a temporary solution.
palworld_save_tools.zip
Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.

Are you saying that the code in that .zip file can properly convert the Level.sav file to JSON?

As far as I am concerned, and on multiple saves, yes - it should.
I also used it for converting from local to dedicated server, and via versa, seems to be working without any issues. As far as I know.

Would you mind sharing an example of the command syntax you're using?  I cant seem to get it to work no matter what.

Thanks to Choi-Jungwoo above, the tool has a temporary solution.
palworld_save_tools.zip
Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.

Are you saying that the code in that .zip file can properly convert the Level.sav file to JSON?

As far as I am concerned, and on multiple saves, yes - it should.
I also used it for converting from local to dedicated server, and via versa, seems to be working without any issues. As far as I know.

Would you mind sharing an example of the command syntax you're using? I cant seem to get it to work no matter what.

I use my own script batch to launch convert.py. I have a repo of it if you want to check.
Basically, it's just "python convert.py Level.sav" for me.

Thanks to Choi-Jungwoo above, the tool has a temporary solution.
palworld_save_tools.zip
Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.

Are you saying that the code in that .zip file can properly convert the Level.sav file to JSON?

As far as I am concerned, and on multiple saves, yes - it should.
I also used it for converting from local to dedicated server, and via versa, seems to be working without any issues. As far as I know.

Would you mind sharing an example of the command syntax you're using? I cant seem to get it to work no matter what.

I use my own script batch to launch convert.py. I have a repo of it if you want to check.
Basically, it's just "python convert.py Level.sav" for me.

Yes, please share your repo.  Thanks!

https://github.com/deafdudecomputers/PalWorldSaveTools This my repo.

https://github.com/deafdudecomputers/PalWorldSaveTools This is my repo.

Hilarious!  Your repo was the one I actually used for a long while now. I only found this one after the update broke your tool. I love your work, thanks for doing it.

Nice to hear that, lol. Glad you like it. :)

If anyone want to use this editor, the cheahjs/palworld-save-tools/issues/187#issuecomment-2359196290 tools could be used to replace original tool. I tested and build a .exe program. some information cannot be displayed but could make modification and save.
If anyone want to build a .exe by yourself, you can execute these step by step.

First clone this repo(use git clone).
Install nodejs and python 312(i used and tested)
Open setup and run.ps1(maybe) use notepad.exe and delete venv environment. execute this ps1.
Close the program(because the save tools have not be replaced).
cd C:\python312\xxxxxx\site-packages.(sorry i forgoted), find the pal save tools(not .dist-info). delete all files in it, and download the zip in cheahjs/palworld-save-tools/issues/187#issuecomment-2359196290.
unzip and place these files in zip to the path  in 5th step.
now you can run the build exe ps1(dont forgot delete venv use notepad)
locate dists/xxx.exe, now you got it.

Finally, This comment is full of grammar errors and various other questions, please understand that I am not a native English speaker. And this comment is edited on the mobile phone, the computer can not open temporarily due to some problems, some paths and files are difficult to speak correctly.

Thanks to Choi-Jungwoo above, the tool has a temporary solution.
palworld_save_tools.zip
Both archive.py and item_container_slots.py has been updated from v0.23.1 version of tool.

THANKS SO MUCH!


[Podchaser] Add extractor

Before submitting a pull request make sure you have:

[x] At least skimmed through contributing guidelines including yt-dlp coding conventions
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Fix or improvement to an extractor (Make sure to add/update tests)
[x] New extractor (Piracy websites will not be accepted)
[ ] Core bug fix/improvement
[ ] New feature (It is strongly recommended to open an issue first)

This adds support for podchaser.com, a podcast aggregator. All the podcast info is grabbed in JSON from Podchaser's API (api.podchaser.com). If multiple episodes are found, it returns a playlist--otherwise, just the one result.

I am starting to think that my suggestion to split the extractor may have been detrimental...
I'm happy to try whatever you think is best. Pretty new to OOP so this is a learning experience for me


adding three new text cases (two of which were previously failing) to…

… import declaration transform and updating the code to make them pass.
@jurassix I was running into the cases outlined in the new tests so thought I'd go ahead and fix em.

Awesome, thanks!


[WIP] - The Customization Page

Adding PR as a checklist and place for discussion.

[x] Setting PUN environment using `nginx_stage.
[x] How to add announcements / MOTD
[x] Branding ... ?
[x] Setting a Title
[x] Adding Logos
[x] Setting Colors
[ ] Setting a directory whitelist for the JobComposer, File Editor and File Explorer
[ ] Setting default SSH host
[ ] Adding templates for the Job Composer
[ ] ... other stuff?

See https://github.com/OSC/ood-dashboard/wiki/Configuration-and-Branding. Some of this is old (the colors for example and especially BOOTSTRAP_ stuff).
I also wonder how much of this is so expensive to add to Sphinx that is preferable to link to Discourse or GitHub wiki till we have a better solution. Also, I've also wondered about whether we should just start doing some screencasts.


Add Vagrant support and provisioning

Instead of co-opting an existing development environment, it would be ideal to streamline the process to provide a dedicated environment for XBlock development.
At last year's OpenEdX conference, I demonstrated the work we had done to containerize the SDK within Docker [1].
Given edX's existing workflows which use Vagrant, I have ported the work to that ecosystem.
[1] https://github.com/Stanford-Online/docker-xblock-sdk

Thanks for the pull request, @stvstnfrd! I've created OSPR-852 to keep track of it in JIRA. JIRA is a place for product owners to prioritize feature reviews by the engineering development teams.
Feel free to add as much of the following information to the ticket:

supporting documentation
edx-code email threads
timeline information ("this must be merged by XX date", and why that is)
partner information ("this is a course on edx.org")
any other information that can help Product understand the context for the PR

All technical communication about the code itself will still be done via the GitHub pull request interface. As a reminder, our process documentation is here.

I don't know what the best approach should be overall.  We definitely need a way to have the XBlock workbench use a different environment from edx-platform.  Is another virutalenv enough? Is Vagrant too much?
We should update the readme to explain what this does. Also, it's a little confusing that the Makefile is now used both in the host OS and the guest OS.  Perhaps we could have two Makefiles to keep it very clear?

Other than an update in the Vagrantfile :+1:  from a technical perspective.

@stvstnfrd can you rebase this?

@nedbat Thank you for the clarifying questions. I now realize/remember that this is one of those cases where I've actually spent quite a bit of time thinking this all through.. only to turn around and explain none of it. I'm glad you called me on it.
Some of this is best explained through updated documentation, namely changing the README and its instructions.
For any points which don't lend naturally to embedded project documentation (rationale and the like), I'll add comments here along the PR.
@sarina Will rebase.
Let me groom this a bit more and I'll ping once ready again for review.

Good deal, keep me posted

:+1: on the port change.

@stvstnfrd is this still under development?

@stvstnfrd is this still under development?

@sarina Yeah, there's still some outstanding documentation that I hope to revisit this week. Also, looks like I need a rebase at this point.

Hello @stvstnfrd: We are unable to continue with review of your submission at this time. Please see the associated JIRA ticket for more explanation.


Fe: Show images as default, not cards

Based on user feedback
We should have images as default, not cards. The details on the cards are basically unreadable unless you are really zoomed in.
Could swap the button order for cards and images.

This is probably not happening, but we should definitely increase the size of details.

The previews are squished with the cards. The main details people look for at first is labeled in image preview mode: minter, filename + extension.


Added warning certain S3 storage classes not supported with incremental backups

Fixes DOC-6133
Added a warning to the S3 storage class examples for backups that incremental backups are incompatible with particular S3 Glacier storage classes.

This change is

https://deploy-preview-15557--cockroachdb-docs.netlify.app/docs/dev/use-cloud-storage-for-bulk-operations.html#amazon-s3-storage-classes


MNIST MemoryError

i am getting the following error 03_classification.ipynb:
What am I missing?
Please help me.
try:
    from sklearn.datasets import fetch_openml
    mnist = fetch_openml('mnist_784', version=1, cache=True)
    mnist.target = mnist.target.astype(np.int8) # fetch_openml() returns targets as strings
    sort_by_target(mnist) # fetch_openml() returns an unsorted dataset
except ImportError:
    from sklearn.datasets import fetch_mldata
    mnist = fetch_mldata('MNIST original')
mnist["data"], mnist["target"]

Error message
---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)
<ipython-input-2-3f28d0b20c3d> in <module>()
      1 try:
      2     from sklearn.datasets import fetch_openml
----> 3     mnist = fetch_openml('mnist_784', version=1, cache=True)
      4     mnist.target = mnist.target.astype(np.int8) # fetch_openml() returns targets as strings
      5     sort_by_target(mnist) # fetch_openml() returns an unsorted dataset

C:\Users\taketoshi\Anaconda3\lib\site-packages\sklearn\datasets\openml.py in fetch_openml(name, version, data_id, data_home, target_column, cache, return_X_y)
    641                           k in data_columns + target_column}
    642
--> 643     X, y = _convert_arff_data(arff['data'], col_slice_x, col_slice_y, shape)
    644
    645     is_classification = {col_name in nominal_attributes

C:\Users\taketoshi\Anaconda3\lib\site-packages\sklearn\datasets\openml.py in _convert_arff_data(arff_data, col_slice_x, col_slice_y, shape)
    246                            dtype='float64', count=count)
    247         data = data.reshape(*shape)
--> 248         X = data[:, col_slice_x]
    249         y = data[:, col_slice_y]
    250         return X, y

MemoryError:

Setup Details

numpy 1.16.4
sklearn 0.21.2
windows10 32bit memory 4gb

Same problem. Have you solve it?

Thanks @i-taketoshi for your feedback. Indeed, the error says that there's not enough RAM to load the MNIST dataset. It's a fairly small dataset, but loading it seems to use much more RAM than the size of the dataset, for some reason (perhaps it's not stored in a very efficient way, which would also explain why it takes so long to load). I'm afraid the only solution is ensuring that your machine has enough RAM. For that, start by closing as many programs as you can, and also close tabs in your browser. Look at your system's RAM usage to see if a program is eating up all the RAM. Then try again.
Hope this helps.

i am getting the following error 03_classification.ipynb: What am I missing? Please help me.
try:
    from sklearn.datasets import fetch_openml
    mnist = fetch_openml('mnist_784', version=1, cache=True)
    mnist.target = mnist.target.astype(np.int8) # fetch_openml() returns targets as strings
    sort_by_target(mnist) # fetch_openml() returns an unsorted dataset
except ImportError:
    from sklearn.datasets import fetch_mldata
    mnist = fetch_mldata('MNIST original')
mnist["data"], mnist["target"]

Error message
---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)
<ipython-input-2-3f28d0b20c3d> in <module>()
      1 try:
      2     from sklearn.datasets import fetch_openml
----> 3     mnist = fetch_openml('mnist_784', version=1, cache=True)
      4     mnist.target = mnist.target.astype(np.int8) # fetch_openml() returns targets as strings
      5     sort_by_target(mnist) # fetch_openml() returns an unsorted dataset

C:\Users\taketoshi\Anaconda3\lib\site-packages\sklearn\datasets\openml.py in fetch_openml(name, version, data_id, data_home, target_column, cache, return_X_y)
    641                           k in data_columns + target_column}
    642
--> 643     X, y = _convert_arff_data(arff['data'], col_slice_x, col_slice_y, shape)
    644
    645     is_classification = {col_name in nominal_attributes

C:\Users\taketoshi\Anaconda3\lib\site-packages\sklearn\datasets\openml.py in _convert_arff_data(arff_data, col_slice_x, col_slice_y, shape)
    246                            dtype='float64', count=count)
    247         data = data.reshape(*shape)
--> 248         X = data[:, col_slice_x]
    249         y = data[:, col_slice_y]
    250         return X, y

MemoryError:

Setup Details

numpy 1.16.4
sklearn 0.21.2
windows10 32bit memory 4gb
@i-taketoshi
same issue occurred with me with windows10 with 8GB of RAM and 32-bit Python but it has been resolved when run on the same machine with 64-bit python.

@i-taketoshi
same issue occurred with me on windows10 with 8GB of RAM and 32-bit Python but it has been resolved when run on the same machine with 64-bit python.


Fixed directories having a file extension

Folders should not be able to have file extensions.
This PR fixes this by setting the file extensions of folders to an empty string.

LGTM haha (always wanted to be in this situation)
thanks!


Documentation for flows is out dated?

Hello,
in CommAngular docs for command flows section you define the flow examples as such:
.add('Command1') // returns "result1"
.add($commangularProvider.asFlow()
// Link to sequence
.link('result1 == true').to(sequence)
At least for version 0.8.0 it does not work! Commangular does not understand primitive variables returned from command1. I must be an object with some property inside. So...
.add('Command1') // returns "result1"
.add($commangularProvider.asFlow()
// Link to sequence
.link('result1.value == true').to(sequence)
spent several hours working this out...

Hi,
The flow feature in commangular is using the $interpolate service from Angular and using the command context as context. There is a test in the test folder for version 0.8.0 testing exactly what you are saying.
check it out at test folder/groups/flow-with-numbers-test.js
it works so.. maybe you have any other error, let me know


bug([Icon]): [SVG Icon not displaying]

Reproduction
https://stackblitz.com/angular/yjprlknbxmgk?file=src%2Fapp%2Ficon-svg-example.html
Steps to reproduce:
Create a component and register an icon in MatIconRegistry:
import {Component, OnInit} from '@angular/core';
import {MatIconRegistry} from '@angular/material';
import {DomSanitizer} from '@angular/platform-browser';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {

  constructor(private _matIconRegistry: MatIconRegistry, private _domSanitizer: DomSanitizer) {
   iconRegistry.addSvgIcon(
        'thumbs-up',
        sanitizer.bypassSecurityTrustResourceUrl('assets/img/examples/thumbup-icon.svg'));
  }

  ngOnInit() {
  }

}

<mat-icon svgIcon="thumbs-up" aria-hidden="false" aria-label="Example thumbs up SVG icon"></mat-icon>

Expected Behavior
SVG icon 'thumbs up' should be displayed
Actual Behavior
Console Error of Error: Error retrieving icon :thumbs-up! <svg> tag not found
Environment

Angular: 7.0.2
CDK/Material: 6.4.7
Browser(s): chrome 83.0.4103.61
Operating System:  MacOS 10.14.6

I think this is just an issue with the stackblitz example, the same example on the material.angular.io docs site works fine: https://material.angular.io/components/icon/examples

forgive my ignorance, are those inline examples live? I'm getting a similar error on a local build as well and was just looking for a real example to compare to when I noticed it being broken on stackblitz.

Yes, that example is live. The reason the stackblitz one isn't working is because the url is not returning the svg asset, its returning an HTML document (probably the default thing stackblitz serves for invalid paths). I suggest using the Chrome DevTools Network tab to inspect the icon request and see what's actually being served in your app.

Duplicate of https://github.com/angular/components/issues/16484.


Request trove classifier for Windows 8 and Windows 10

Trove classifiers exist for all Microsoft Windows versions up to Windows 7. Since then, versions 8, 8.1 and 10 have been released. I propose the addition of the following 3 classifiers:
Operating System :: Microsoft :: Windows :: Windows 8
Operating System :: Microsoft :: Windows :: Windows 8.1
Operating System :: Microsoft :: Windows :: Windows 10

Done!


Frame 'owner' is found NULL and this makes the application crash

Required Info

Camera Model
D415 and D435

Firmware Version
<IP_ADDRESS>

Operating System & Version
Linux (Ubuntu 18.04)

Kernel Version (Linux Only)
5.4.0-65-generic

Platform
PC and Raspberry Pi

SDK Version
2.40 and 2.41

Language
C

Segment
application

Issue Description
The short story: it seems that the 'owner' pointer inside the frame can be NULL. When this happens, there are cases in which the pointer needs to be referenced, but being the pointer NULL, the application crashes.
The complete story: I discussed it for long time on the community forum, here: https://support.intelrealsense.com/hc/en-us/community/posts/360052493073-Post-processing-filters-in-C-leak-and-segmentation-fault?page=2#community_comment_1500000287222
Best regards!

@brizio73 hello,
One common pitfall is that rs2::frame objects are ref-counted, thus trying to obtain and handle to the underlying memory object directly will create inconsistency between the object's state and the allocated resources.
It would be useful to share some code snippet of the frames processing flow

Hi @ev-mp, thanks for your response. I was expecting that rs2::frame was ref-counted, but the problem arise in a fairly simple piece of code. This is an extract of the code:
        // read RealSense frames
        rs2_error *err = NULL;
        // gets composite frames (may contain more than one frame, for different sensors also)
        rs2_frame *frames = rs2_pipeline_wait_for_frames(input_streams->rs_pipeline, RS2_DEFAULT_TIMEOUT, &err);
        int num_of_frames = rs2_embedded_frames_count(frames, &err);
        int i = 0;
        for (i = 0; i < num_of_frames; ++i)
        {
            // for each frame in the composite, check if it is a depth frame
            rs2_frame* depth_frame = rs2_extract_frame(frames, i, &err);
            if (err != NULL || depth_frame == NULL)
            {
                if (depth_frame != NULL) rs2_release_frame(depth_frame);
                if (err != NULL) rs2_free_error(err);
                continue;
            }
            if (0 == rs2_is_frame_extendable_to(depth_frame, RS2_EXTENSION_DEPTH_FRAME, &err))
            {
                // if not, keep going
                if (depth_frame != NULL) rs2_release_frame(depth_frame);
                continue;
            }

            if (input_streams->rs_colorizer_filter == NULL)
            {
                // log: "[!!!] This should never happen! where's my colorizer filter???"
                continue;
            }
            rs2_process_frame(input_streams->rs_colorizer_filter, depth_frame, &err);
            if (err) { macap_logger_debug("ERROR: %s\n", rs2_get_error_message(err)); break; }
            rs2_frame *colorized_frame = rs2_wait_for_frame(input_streams->rs_colorizer_queue, RS2_DEFAULT_TIMEOUT, &err);
            if (err || colorized_frame == NULL) { /* log: "ERROR" */ break; }

            // depth frame, at last! get the data
            const uint8_t *depth_frame_data = (const uint8_t*)(rs2_get_frame_data(colorized_frame, &err));
            if (err == NULL)
            {
                int depth_stride = rs2_get_frame_stride_in_bytes(colorized_frame, &err);
                int depth_size = rs2_get_frame_data_size(colorized_frame, &err);
                int depth_w = rs2_get_frame_width(colorized_frame, NULL);
                int depth_h = rs2_get_frame_height(colorized_frame, NULL);

                fullsize_img.stride = _videosource->stride;
                fullsize_img.width = _videosource->width;
                fullsize_img.height = _videosource->height;
                fullsize_img.size = _videosource->size;
                fullsize_img.buffer = (unsigned char*) rapp_malloc(fullsize_img.size, 0);
                int row = 0, col = 0;
                for (row = 0; row < depth_h; ++row)
                {
                    for (col = 0; col < depth_w; ++col)
                    {
                        // when color is provided by colorizer block:
                        int src_offset = row * depth_stride + (col*3);
                        int dst_offset = row * _videosource->stride + col;
                        uint8_t pixel = depth_frame_data[src_offset];
                        fullsize_img.buffer[dst_offset] = pixel;
                    }
                }
                fullsize_img.data = fullsize_img.buffer;
                fullsize_img.padding = 0;
                fullsize_img.binoffset = 0;
                fullsize_img.disposable = true;

The crash happens (sometimes! not a deterministic behavior!) on the call to rs2_process_frame(). I explored it with valgrind and this is the last call stack I get:

(sorry for posting an image, I had the valgrind report in xml format which is a little verbose to read in plain text). Please note the innermost call to librealsense::frame::release() and the line marked with the icon (which is the instruction that caused the segfault).
I have been struggling on this issue for months now. I always supposed it was my fault, maybe I am misusing the API in some way (and I still hope so!) but I really can't find any evident error on my side, even comparing the code to the examples.
Any help will be highly appreciated!
best
Fabrizio

Ah let me add some comments.
The code is supposed to grab a depth frame, turn it into a standard RGB image and copy it in a custom structure, here called 'fullsize_img'. The copy is really naive and probably not very efficient, but it's the first attempt. It should work in any case, and ideed it does, until the segfault arise.
The code is not complete, but I cut it for briefness. However you can consider the last 'if' statement and the 'for' loop to end right after my snippet. I'll see if I can edit the previous post...

@brizio73 , thanks for the example code.
Actually, you're using C-API where the issue can be the opposite as there is no native RAII in C. (no dtors/automatic deleters)
So each resource allocated using the C-API  (frame, pipe, post-processing filter) must be tracked and released manually in code at the end of usage/scope immediately.
          rs2_frame* depth_frame = rs2_extract_frame(frames, i, &err);
...
          rs2_release_frame(.. call is envisaged.

Please take a look at https://github.com/IntelRealSense/librealsense/issues/4006#issuecomment-494033057 where a similar discussion took place

Sorry, after all I cut off a relevant piece of code from my snippet above. At the end I did the following:
            // other irrelvant code (not rs2 related)

            // cleanup (this in case you haven't broke the previous for loop)
            rs2_release_frame(depth_frame);
            rs2_release_frame(colorized_frame);

            // in any case, break after the first depth frame
            break;
        }   // this closes the if statement

        rs2_release_frame(frames);
        if (err)
        {
            rs2_free_error(err);
        }
    }   // this closes the for loop

@brizio73, please let us know if any further help needed for this case. Thanks.

Hi @RealSenseSupport , thanks for following up. So far there isn't any news, the code still behaves the same, crashing after a while. I saw the discussion linked by @ev-mp but that was a different case, I free all the allocated memory in my main loop (originally I forgot to copy the last part of the loop, see my previous comment). Unfortunately I cannot work 100% of my time on that topic, so I could not dig deeper in the issue in the last few weeks. Reviewing the conversation now, I wonder if it could be possible that I am freeing "too much" memory... Maybe I am freeing a pointer when I should not?
Another thing I'd like to point out is that before posting here, I made quite an extensive use of Valdgrind trying to figure out what the problem is, and the Valgrind report is full of potential errors. Is that known to you or even desired? This happens with the sample code also. It would be great if all this warnings could be removed. Most of them are "Conditional jump or move depends on uninitialised value(s)". If these warnings cannot be removed, a "valgrind ignore list" would be really helpful...
Thanks a lot for any further help you will be able to provide!

I guess we are facing the same error.  @brizio73 Did you find a solution to it? thanks.
Required Info |
-- | --
Camera Model | D410
Firmware Version | Unknown
Operating System & Version | Android 8.1
Kernel Version (Linux Only) | Linux version 4.4.167 (mengpengfei@apr-11)
SDK Version | 2.41
Language | C++/Java
Segment | application

The crash dump seems to be similar to #5424. Please check and see if the issue can be resolved.
Thank you.

@RealSenseSupport yeah you are right, I guess they are the same problem, according to the call stack.
But #5424 didn't give a solution, I don't know what to do then.
Someone else is asking the same question. I read this.
Why owner is null ? It is constructed as null, or someone else has already released it ?
I'm trying to go deeper for the problem. But now I have difficulties reading the source codes. I can't tell the difference between librealsense and librs, and there seems to be more than one class named frame in the whole repository. So it's harder for me to find out where the frames are possibly constructed. It's helpful if you have some guide or documents on navigating the source code, maybe the purpose of each part, each class etc. I'm not an expert though, but I'm grateful for just showing me where to start.

Oh, I realize maybe it's @brizio73 who did the research in the article ?

Hi everybody!
@shangruqi, yes, it's me who wrote "the article". I found the problem a few
months ago while trying to integrate the RealSense depth camera in a
product from my company but that error forced us to stop. I was then forced
to move to another project and could not investigate deeper, but I am
really glad some else is investigating it. Here's a few considerations I
made lately...

although my analysis clearly pointed out that the problem is the
dereferenciation of a null pointer, in many cases this does not happen. I
tried to reproduce the bug with a different (simpler) code, and never
succeeded. So why is this happening? I still suspect that we (I) may have a
responsibility in this issue and that maybe we could just solve it by using
the API in a different way (not easy though: my existing code is a quite
complex multithreading code and cannot be simplified...)
a quick workaround we could attempt is to check for the owner pointer
before doing anything with the frame, and drop it if it is found null.
However, I haven't had the chance to try that and I don't know if we have
visibility of that pointer (or of the function get_owner()). Still, I'd
like to try.

Come on, let's solve this. I am eager to read your findings!
Best
Fabrizio
On Fri, May 7, 2021 at 6:57 AM shangruqi @.***> wrote:

Oh, I realize maybe it's @brizio73 https://github.com/brizio73 who did
the research in the article
https://support.intelrealsense.com/hc/en-us/community/posts/360052493073-Post-processing-filters-in-C-leak-and-segmentation-fault?page=2#comments
?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IntelRealSense/librealsense/issues/8321#issuecomment-834066712,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD4A6VGZVUIUSKPYMR2LOETTMNXMNANCNFSM4XFE2SEQ
.

Hi everyone.
I read some more code from master branch (commit 8f355d5e8), and I have some questions.
Firstly it's about frame class from src/archive.h, each of which has a ref_count and an owner as member. They are initialized to zero and nullptr respectively. frame can only be moved but not copied. On moving, both ref_count and owner is passed to the other object and the original values are reset and not used any longer. When ref_count count down to zero, some cleaning work (also involving owner) is triggered.
But release method didn't consider the situation when owner is nullptr.  That is to say, a simple snippet would crash:
auto f = new frame();
f.acquire();
f.release();

I think this is a "flaw" and should be fixed, although the class is working fine for most of times. But it crashes easily on "careless" use of it.
More on this topic, if you check src/source.cpp line 117, it also implies that owner is not null, which cause another kind of crash sometimes. While in the move constructor of frame we can see that owner to be nullptr is checked. So I concluded that it is allowed to be nullptr, but usually it is not. So I turned to look for where the owner is set.
The only place where owner is given a value in frame::publish method. It is called in class frame_archive, a manager class that in charge of the lifetime of a frame. It creates frames, manages memory, and maybe recycle of them. The owner of frame just points to an archive, indicating where it was created and by whom it is managed. From frame_archive::alloc_and_track we see that a newly allocated frame is bound to an archive shortly after its creation, and the frame is not published yet then. So I think it's not probable that the nullptr crash happens because of the short gap between frame creation and given an owner.
Then another idea came to me when I got aware of recycling of frames. There might be some mistakes if a frame has already been recycled but someone is still holding a pointer to the address. In my opinion, frame_holder is essentially a pointer to a frame with something facilitates its usage.
Do you think the crash is caused by recycling and an incorrect pointer? Is that possible?
As for frame_holder, I have some other questions. In this constructor frame_holder(frame_interface* f), the frame is not acquired, but in the destructor, the frame is released ? Won't there be an imbalance ? But when a frame_holder is cloned, the acquire is called. I'm confused by the code and like to figure out how it works correctly.
And in the end, why bother designing a ref_count and frame_holder (as a pointer) , why not use shared_ptr ?

My thinkings here are certainly not 100% correct, half analyzing + half guessing maybe.
But maybe that reflect how "people" will think during purely reading the codes.
Please tell my if there's something I missed, especially if I misunderstood some c++ syntax.
Later I'll try to build and run it, change some code and play with it.
Thank you.

Hi @ev-mp, please would it be possible to provide some additional advice about in this case? Thank you.


cli: 'sous singreqid' command

Always brings back the singularity request ID for a deployment,
whether it has been set explicitly or not.

Usage:
sous singreqid -cluster <cluster> ...other flags...

This is pretty rough, at minimum you need -cluster flag, but can explicitly set -repo -flavor -offset as well. Better would be a flag on sous query gdm to populate that field for all deployments returned, which I could do tomorrow if that's wanted.

          1 Error

:no_entry_sign:
Please include a CHANGELOG entry.

  Generated by :no_entry_sign: Danger


[MPQEditor] Create or edit mixed precision quantization json file.

This commit allows to create or edit mixed precision quantization json file.
To use the tool the following actions are suggested:

right-click in explorer any circle model
context menu should contain "Create MPQ json" - click it
provide name for new .json
after creation of new  json we may edit it

Related: #1491
ONE-vscode-DCO-1.0-Signed-off-by: s.malakhov<EMAIL_ADDRESS>

More info:

Q) How visq info is created? Is it assumed to be generated before? If so, it would be better to give instruction on how to make visq info  (e.g., making a small question mark icon near the "Load visq info" button). BTW, is it possible to create visq info in ONE-vscode?
(optional) I think it is better to show the model graph by default when the tab is first created. I guess most users will want to select layers in the graph with visq info.

Q) How visq info is created? Is it assumed to be generated before?

Yes, for this draft it was generated before.

If so, it would be better to give instruction on how to make visq info (e.g., making a small question mark icon near the "Load visq info" button)

ok.

BTW, is it possible to create visq info in ONE-vscode?

I'll investigate it.

(optional) I think it is better to show the model graph by default when the tab is first created. I guess most users will want to select layers in the graph with visq info.

Ok.
I'll be back with reworked draft.

Currently the workflow looks like this:
https://user-images.githubusercontent.com/112689352/219636894-f2a4c0d1-3fe0-40a4-8d71-e73fa93df4b8.mp4

BTW, is it possible to create visq info in ONE-vscode?

I've tried to introduce visq data computation into MPQEditor and it occured to be heavy:
input for float model
input for quantized model
input for h5 data
ouput for MPEIR mode
ouput for MSE mode
...
to be continued
IMHO for visq component we may try to create additional command in ONE-vscode.
@jinevening
May be we could do another item in context menu for circle file like "Create VISQ data" ?

@jinevening @seanshpark
Please see docs/MPQEditor.md for readme.
For now model-graph-view is opened by default.
And help btn is also introduced into visq_path input.

Thanks for video attach at https://github.com/Samsung/ONE-vscode/pull/1505#issuecomment-1434501372 :)
Q1) what happens if wrong json (not visq info content) is selected in visq info ?
Q2) what happens if wrong json (visq info content but for different model) is selected in visq info ?
model.json filename doesn't seem to be appropriate. we can't distinguish by just .json. how about use model.blabla.json ? @jinevening , do you have any good word for blabla ?

1/ what is this icon?
2/ may use "Edit mixed precision quantization json file" ? for M.P.Q.

About GUI
Q1) what are default parameters? what happens if we switch between uint8 and int16 ?
Q2) same question for Granularity
Q3) from select node with MPQEditor view and from graph view, selection information seems strange. look at X button.
With right click context menu > open with > text editor
1/ it would be better to save json file with formatted not in single line
2/ edit-save each view should sync. please check if the content are same.
With Model Graph is shown
1/ after graph is visible, close window by X in the TAB
-> check button doesn't work afterwards
2/ Open visq.json file -> graph is changed to visquv -> close graph view -> open graph view again
-> view is not visquv
I got this popup. cannot understand about the message

In README, please describe GUI actions for each controls(GUI components) and what it does.
Purpose of this description is (1) to make you develop the GUI part is working correctly and (2) let users understand the actions what this feature provides.
And please check with interactions with controls that you assume don't matter each other but can interact. This test is to let you handle exceptions what user can do beyond your user scenario.
I think this is know as monkey test.

About GUI no.2
Save MPQEditor json file -> close all windows -> do it again

json file name is provided same as the first place --> maybe add number prefix like (1) for the name if exist?

Save MPQEditor json file -> close all windows -> open json file

plain json text editor is opened
users will expect to see MPQEditor view

From https://github.com/Samsung/ONE-vscode/pull/1505#issuecomment-1436918918,

May be we could do another item in context menu for circle file like "Create VISQ data" ?

Looks good to me. "Create visq data" is a different job from MPQ editor. So it may be done in another issue.

model.json filename doesn't seem to be appropriate. we can't distinguish by just .json. how about use model.blabla.json ? @jinevening , do you have any good word for blabla ?

For that purpose, model.qconfig.json or model.mpq.json would be ok. Or it may be possible to open the json file and check if it contains proper keys ("default_quantization_dtype" and "default_granularity")

Looks good to me. "Create visq data" is a different job from MPQ editor. So it may be done in another issue.

Ok. I'll create another issue.

For that purpose, model.qconfig.json or model.mpq.json would be ok. Or it may be possible to open the json file and check if it contains proper keys ("default_quantization_dtype" and "default_granularity")

Ok. IMHO mpq looks good.

1/ what is this icon? 2/ may use "Edit mixed precision quantization json file" ? for M.P.Q. or just Edit MPQ json file ?

Icon is suggested to be used as general info about the tool
Text message is changed to "Edit mixed precision quantization json file"

Q1) what are default parameters? what happens if we switch between uint8 and int16 ?
Q2) same question for Granularity
Q3) from select node with MPQEditor view and from both graph view; select and unselect from both view. selection information seems strange. look at X button.

Q1) and Q2) - default parameters of quantization are used for all layers in the neural network, except for nodes in 'LAYERS' section. So if we switch from uint8 to int16, the whole network will be quantized into 'int16'. As for the Granularity field all convolution layers are quantized using either layer or channel mode of granularity.
Q3) model-graph-view contains all layers of the neural network, while 'channels' section contains only specific nodes.
So if we will check some nodes in 'LAYERS' section we may remove them using X button.

With Model Graph is shown
1/ after graph is visible, close window by X in the TAB
-> check button doesn't work afterwards
2/ Open visq.json file -> graph is changed to visquv -> close graph view -> open graph view again
-> view is not visquv

It will be fixed.

I got this popup. cannot understand about the message

Sorry. It will be changed to:
"visq.json file with layer-wise quantization errors"

About GUI no.2
Save MPQEditor json file -> close all windows -> do it again
* json file name is provided same as the first place --> maybe add number prefix like `(1)` for the name if exist?

This option looks good.

Save MPQEditor json file -> close all windows -> open json file
* plain json text editor is opened --> users will expect to see MPQEditor view

Fixed.

1/ document: ratio is not nice to read. text in image is too large compared to text of doc.
2/ MPQWorkflow.gif is not visible in preview.
3/ https://github.com/Samsung/ONE-vscode/pull/1505#issuecomment-1437705870

1/ it would be better to save json file with formatted not in single line not applied

4/ with visq path, select a file not a visq json file -> graph loading doesn't work
5/ https://github.com/Samsung/ONE-vscode/pull/1505#discussion_r1112402710 not applied
6/ GUI

default value settings and layer settings proportion is not good

like + and x button is too large compared to text of uint8, int16
maybe add separation line between default settings and layer settings

Model graph is shown -> Show model graph
icon of Edit mixed precision... --> cannot catch what it is. maybe remove.
Edit mixed precision... is this something like a title? if so, how about enlarge text size.

7/ + and x buttons are disabled when ONE package is not installed. some message would be helpful.

8/ use a quite long model, like inception. in graph view, select bottom node. scroll to top. select also top node (with CTRL key down) --> graph is scrolled to somewhere. it would be better to say in the last selected node.

10/ ? help text looks like Serif. other texts are Sanserif. better to use one type.

11/ order of controls in ? X [visq path] (search) --> [visq path] (search) X ?

@seanshpark @dayo09 @jinevening
thank you for your review.

1/ document: ratio is not nice to read. text in image is too large compared to text of doc.

Fixed.

2/ MPQWorkflow.gif is not visible in preview.

Fixed

3/ #1505 (comment)
* `1/ it would be better to save json file with formatted not in single line` not applie

Fixed.

4/ with visq path, select a file not a visq json file -> graph loading doesn't work

Fixed.

5/ #1505 (comment) not applied

Seems to be fixed. Default parameters is a disctinct figure.

6/ GUI

Fixed.

7/ + and x buttons are disabled when ONE package is not installed. some message would be helpful.

Fixed. Without installed package there is info baloon with message "you need to install ONE Toolchain fo radding more layers to edit"

8/ use a quite long model, like inception. in graph view, select bottom node. scroll to top. select also top node (with CTRL key down) --> graph is scrolled to somewhere. it would be better to say in the last selected node.

Fixed.

9/ maybe provide multiple select without CTRL down?

But this feature is needed at 'selector' mode too, Are you ok with that?

10/ ? help text looks like Serif. other texts are Sanserif. better to use one type.

All fonts are default for now, Pictures use 'Sansserif; font

11/ order of controls in ? X [visq path] (search) --> [visq path] (search) X ?
or ? [visq path] search X

Fixed.

4/ not fixed
5/ I'll fix this later
8/ not fixed
9/

But this feature is needed at 'selector' mode too, Are you ok with that?

No, not ok.
10/ not fixed. I'm using English Windows 10 and still shows Serif(maybe Times New Roman)

Q) is first check button for each item used only to select for remove button X?
then why not add X button at each item right most position?
we can replace first check button and the X button.

12/ item layout seems strange depending on the region width

this overlaps and not good

waste with empty space

8/ not fixed
it would be better to say in the last selected node

@seanshpark
Seems like to stay in the last selected node we have 2 options:

disable _scrollToSelected either in constructor or through some kind of message
scrollToSelection scrolls just to last selected element

currently option 2 is implemented.
which one is more preferrable?
or may be there is another option, which i don't see right now?

@seanshpark

Q) is first check button for each item used only to select for remove button X?
then why not add X button at each item right most position?
we can replace first check button and the X button

Fixed.

12/ item layout seems strange depending on the region width

Improved.

10/ not fixed. I'm using English Windows 10 and still shows Serif(maybe Times New Roman)

Please correct me if i'm wrong. AFAIK readme.md don't have font settings, at least all other 'readme.md' files n the project don't have font settings.
Page layout (index.html) of all text elements was changed to:
font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
TODO README.md changes.

Please note error message on failure in the right-bottom part of the screen after that it reverts view window to selector mode.

Still "loading" and I don't see any error message.

Still "loading" and I don't see any error message.

@seanshpark
Could you please provide invalid .visq.json file and the .circle model for it, so that i will be able to reproduce the bug.

... invalid .visq.json file

plz try with any json or binary file

@seanshpark

Still "loading" and I don't see any error message.

Thank you. I reproduced it for another type of json. Fixed. Also the edit field was disabled and only the file name is shown to prevent user from hanging on invalid path.

font not fixed

Currently font to .help class is the same as vscode-font-familywhich is used to render other vscode text elements.

@seanshpark @dayo09 @jinevening
Is it possible to merge it after splitting? Or is the draft it in its preliminary phase?

Is it possible to merge it after splitting? Or is the draft it in its preliminary phase?

Please go on with posting PRs. Single context of changes will help review.
If there are any other comments about the changes, we can discuss in each PRs.

Please go on with posting PRs. Single context of changes will help review.
If there are any other comments about the changes, we can discuss in each PRs.

Ok.


Setting default values

Hey
I'm trying to set default values in a form the virtus way. But it  looks like this is not working. Am I overlooking something?
    attribute :warranty, Float, default: 50

That should work fine unless you are populating the form with .from_params or .from_model as the values will be overwritten by the values from the params or model.
I've just tested this and it works for me:
class MyForm < Rectify::Form
  attribute :warranty, Float, default: 50
end

form = MyForm.new
form.warranty #=> 50.0

I typically use .new in the new action of a controller and .from_model in the edit action. Then use .from_params in both the create and update actions as you want to populate the from from the values entered by the user.
Does that help at all?
Andy

That is indeed the issue. Thanks for the quick response!


Allow timestamp format to not include YYYY/MM/DD

Some logs have no YYYY/MM/DD:

We can include a default year in the merge menu but not a default Day and Month.

@nmcgregor403 thanks for the issue report, I've put it into the queue. We will care about it.

chipmunk 3 doesn't include merge & time/date detecting functionality.


Add toolbar on case-page for logged in users

Show: Current state (published/unpublished)
Actions: [Edit] [Publish/unpublish] [Delete]

Implemented in PR #165.


Should not change expired time if key unchanged

Previously, if the keys of a user aren't changed, we still update the cached keys, which resulted in the expired time of keys being unwillingly extended. This PR fixed that

LGTM


Honda: emulate convenience blinker from stalk

Closes #21130

[ ] Check convenience blinker duration (currently guessed at 3 seconds)
[ ] Check what happens after two short pressed of the stalk. Does the second press add to the convenience blinker time?
[ ] Test in car

Finished testing in 2018 Accord 1.5T, all went well - route 053abdc1032b7ecf|2021-06-23--18-15-03--8
Admittedly, I intended to test immediately swapping between left-right blinker positions but forgot.


Updates for Python 3.12 and new rms modules

Updated all requirements to most recent packages.
Minor changes to remove deprecation warnings related to numpy >= 1.25.
Tested with Python 3.12 and all tests pass.
Verified old venv with Python 3.11 and previous requirements still pass with deprecation changes.

The new version of rms-julian causes failures in the OOPS hosts tests for Juno.

Due to the failure with rms-julian>=2.0 I have changed requirements.txt to freeze in the old version rms-julian==0.0.5. With this version the hosts test pass. There is an open issue in the rms-julian repo to look into this issue further.


Windows build

Hi,
I want to build this package for windows.
I'm using visual studio 2013 but when I compile this package I got this erros
    bcd.c
    c:\users\m-r\appdata\local\temp\pip-build-rbuqyz8g\libwapiti\cwapiti\src\model.h(33) : fatal error C1083: Cannot open include file: 'sys/time.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\BIN\\cl.exe' failed with exit status 2

This answer  said that 'sys/time.h' not supported on windows.
what can I do for fixing this problem?

Can you try a gcc compiler.

yes, I can.
which gcc compiler?
which options I must use?

<sys/times.h> is for POSIX system only.
On Windows you can try #include <time.h>
Or if the non standard functions are used have a look here

I don't have access to a win computer right now but maybe you can try installing gcc with Cygwin. This link might be of help.

@kermitt2 it is still failed after I changed to #include <time.h> with MSVC12 compiler.
But it is appreciated if someone can make it compatible with MSVC compiler.

I did replace <sys/times.h> with #include <time.h> as @kermitt2 said. but I receive following error:
$ c:\python36\python.exe setup.py build
running build
running build_py
running egg_info
writing libwapiti.egg-info\PKG-INFO
writing dependency_links to libwapiti.egg-info\dependency_links.txt
writing requirements to libwapiti.egg-info\requires.txt
writing top-level names to libwapiti.egg-info\top_level.txt
reading manifest file 'libwapiti.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'libwapiti.egg-info\SOURCES.txt'
running build_ext
building 'libwapiti' extension
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Icwapiti/src -Ilibwapi
ti -Ic:\python36\include -Ic:\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Progr
am Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0
\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\
shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" /T
ccwapiti/src/bcd.c /Fobuild\temp.win32-3.6\Release\cwapiti/src/bcd.obj -std=c99
cl : Command line warning D9002 : ignoring unknown option '-std=c99'
bcd.c
d:\MYNAME\libraries\libwapiti-0.2.1\cwapiti\src\options.h(95): error C2057: expected constant expression
d:\MYNAME\libraries\libwapiti-0.2.1\cwapiti\src\options.h(95): error C2466: cannot allocate an array of constant size 0
d:\MYNAME\libraries\libwapiti-0.2.1\cwapiti\src\model.h(92): error C2079: 'timer' uses undefined struct 'timeval'
d:\MYNAME\libraries\libwapiti-0.2.1\cwapiti\src\tools.h(38): warning C4005: 'min': macro redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\stdlib.h(1283): note: see previous definition of 'min'
d:\MYNAME\libraries\libwapiti-0.2.1\cwapiti\src\tools.h(39): warning C4005: 'max': macro redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\stdlib.h(1282): note: see previous definition of 'max'
cwapiti/src/bcd.c(118): error C2057: expected constant expression
cwapiti/src/bcd.c(118): error C2466: cannot allocate an array of constant size 0
cwapiti/src/bcd.c(118): error C2087: 'psi': missing subscript
cwapiti/src/bcd.c(119): error C2057: expected constant expression
cwapiti/src/bcd.c(119): error C2466: cannot allocate an array of constant size 0
cwapiti/src/bcd.c(119): error C2087: 'alpha': missing subscript
cwapiti/src/bcd.c(120): error C2057: expected constant expression
cwapiti/src/bcd.c(120): error C2466: cannot allocate an array of constant size 0
cwapiti/src/bcd.c(120): error C2087: 'beta': missing subscript
cwapiti/src/bcd.c(174): error C2057: expected constant expression
cwapiti/src/bcd.c(174): error C2466: cannot allocate an array of constant size 0
cwapiti/src/bcd.c(174): error C2087: 'psiuni': missing subscript
cwapiti/src/bcd.c(177): error C2057: expected constant expression
cwapiti/src/bcd.c(177): error C2466: cannot allocate an array of constant size 0
cwapiti/src/bcd.c(177): error C2087: 'psiidx': missing subscript
cwapiti/src/bcd.c(179): error C2057: expected constant expression
cwapiti/src/bcd.c(179): error C2466: cannot allocate an array of constant size 0
cwapiti/src/bcd.c(179): error C2087: 'alpha': missing subscript
cwapiti/src/bcd.c(180): error C2057: expected constant expression
cwapiti/src/bcd.c(180): error C2466: cannot allocate an array of constant size 0
cwapiti/src/bcd.c(180): error C2087: 'beta': missing subscript
cwapiti/src/bcd.c(212): error C2057: expected constant expression
cwapiti/src/bcd.c(212): error C2466: cannot allocate an array of constant size 0
cwapiti/src/bcd.c(212): error C2087: 'e': missing subscript
cwapiti/src/bcd.c(212): error C2133: 'e': unknown size
cwapiti/src/bcd.c(297): error C2057: expected constant expression
cwapiti/src/bcd.c(297): error C2466: cannot allocate an array of constant size 0
cwapiti/src/bcd.c(297): error C2133: 'cnt': unknown size
cwapiti/src/bcd.c(297): error C2133: 'lcl': unknown size
cwapiti/src/bcd.c(316): warning C4244: 'function': conversion from 'const uint64_t' to 'std::size_t', possible loss of data
cwapiti/src/bcd.c(317): warning C4244: 'function': conversion from 'const uint64_t' to 'std::size_t', possible loss of data
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2

I have extracted the library in D:\MYNAME\Libraries\libwapiti-0.2.1
What can I do?

Any updates to this problem? Did anyone have success compiling Wapiti on windows?

hello @wmac ! Have you looked at @boumenot fork?  https://github.com/boumenot/Wapiti
We're using it in GROBID and it runs well on Windows.


Proxy

Sry for spam, its my first commit on github.

Soory, I can't merge at this point.
But I wrote your name into the code:
https://github.com/D3vl0per/Valorant-watcher/blob/f31f37ece53faee5600f12ed5b5384997617898d/app.js#L25


feat: add rdma support

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:

/kind cleanup
/kind feature
What this PR does / why we need it:
add support for rdma
Which issue(s) this PR fixes:

Special notes for your reviewer:
Does this PR introduce a user-facing change?:

none

Because no one has reviewed for a long time, I merge it first to avoid blocking the integration of subsequent features(fully tested).


docs(pe): DOC-425 add example policy

Resolves Jira: [DOC 425]

Add new example for deployment window.
Redo the links to the opa.pipeline packages page so that the examples go directly to the example policy instead of just to the top of the page.
Break up "Example Policy 1." There were actually 2 example policies there.
Rename "Example Policy" to a more meaningful name.

https://deploy-preview-784--armory-docs.netlify.app/docs/armory-admin/policy-engine/policy-engine-use/packages/opa.pipelines/#deployment-window

LGTM


fix: checking if the project's azion.config exists

Bonus
simplify merging of azion.config.js
update createAzionConfigFile to use defineConfig

:tada: This PR is included in version 4.0.1-stage.2 :tada:
The release is available on:

npm package (@stage dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Added translations for Norwegian(bokmål)

Hi @erik-vik - Can you clean up the conflicts and I'll get that merged in.. thanks!


Fix #757 - Some effects are running extreme slowly.

Summary
Fix #757, set sleeptime to 1ms rather than 1s, if latchtime=0.
What kind of change does this PR introduce? (check at least one)

[X] Bugfix
[ ] Feature
[ ] Code style update
[ ] Refactor
[ ] Docs
[ ] Build-related changes
[ ] Other, please describe:

If changing the UI of web configuration, please provide the before/after screenshot:
Does this PR introduce a breaking change? (check one)

[ ] Yes
[X] No

If yes, please describe the impact and migration path for existing setups:
The PR fulfills these requirements:

[ ] When resolving a specific issue, it's referenced in the PR's body (e.g. Fixes: #xxx[,#xxx], where "xxx" is the issue number)

If adding a new feature, the PR's description includes:

[ ] A convincing reason for adding this feature
[ ] Related documents have been updated (docs/docs/en)
[ ] Related tests have been updated

To avoid wasting your time, it's best to open a feature request issue first and wait for approval before working on it.
Other information:
Fix #757

Nice thank you 👍🏻


raise timeout on page with iframe from spotify

Hey,
I have a frontpage that loads a widgets(using apotomo). This works totally fine but when I added a widget that renders a spotify embed playlist I get a timeout error, gist here.
My view is simply doing this:
<div class="spotify gutter-top">
  <iframe src="https://embed.spotify.com/?uri=spotify:user:118680911:playlist:2CZ3dbHb7DIU60ZfUd8u1C&theme=white" width="300" height="380" frameborder="0" allowtransparency="true">
  </iframe>
</div>

and my tests:
scenario "renders the spotify on a social group", :js, :focus do
      widgets = [spotify_widget]

      visit frontpage_path(frontpage)
      within(:css, 'div.spotify') do
        expect(page).to have_xpath '//iframe[@src="https://embed.spotify.com/?uri=spotify:user:118680911:playlist:2CZ3dbHb7DIU60ZfUd8u1C&theme=white"]'
      end
    end

Do you have any idea what can be provoking the problem or how can I debug this?

Closing due to lack of response


config/rukpak: Add the HA webhook configurations to a patch file

Moves the HA webhook deployment configurations to a patch file to make it easier to toggle this configuration on/off for local crc development usage.
Signed-off-by: timflannagan<EMAIL_ADDRESS>

Looks good to me as well, don't have override perms.

This is another no-op while we bootstrap the repository. Manually applying the requisite labels.
/label px-approved
/label qe-approved
/label docs-approved


Compatibility with cypress-cucumber-preprocessor

Hi,
I just wanted to ask if there could be some compatibility added to the cypress-tags command from the cypress-cucumber-preprocessor plugin.
From what I've noticed running parallel on a cypress-tags command will not actually run anything in parallel (execution time stay the same even with 100+ tests) and also the .json report files don't get generated for any of the specs.
I don't really understand the mechanism behind this parallelization, but since cypress-tags is a wrapper of the cypress run command, I would assume it could also work in parallel.
Cucumber is very popular and the cy-cucumber-preprocessor plugin is used on a lot of projects I've seen, so I think it would be great if there was any support for it in parallel execution.

I am using cypress-cucumber-preprocessor and figured out to configure this plugin.
Cypress.json
{
"baseUrl": "https://google.com",
"env": {
"TAGS": "not @ignore",
"environment": "staging"
}
}
Below are the changes required in the plugin code 'cli.js'.
splitting by space will create problem for cucumber tags, as tags will contain spaces. i.e. TAGS='@ui-smoke and not @abc_ui and not @ignore'. so we need to allow arguments to be comma-separated and shouldn't split the args by space.
Place 1:
const CY_SCRIPT_ARGS = argv.args ? [argv.args.trim()] : [];
Place 2:
const child = spawn(pckManager, [                 'run',                 ${CY_SCRIPT},                 isYarn ? '' : '--',                 '--reporter',                 'cypress/support/helpers/json-stream-reporter.js',                 '--spec',                 command.tests,                 **'--env',**                 ...CY_SCRIPT_ARGS             ]);
once this is done, you can pass the tags as arguments cypress-parallel -s test:run:headless -t 5 -d 'cypress/integration/specs/ui' -a CYPRESS_baseUrl='https://www.google.com',TAGS='@ui-smoke and not @abc_ui and not @ignore',environment='staging'
Have tested and it is working as expected. Hope this helps. Can someone please implement the above changes and publish it?

Hi @prasanmgc I tried what you have suggested, but I am getting error "Please check the parameters, it should be key=value, empty space are not allowed!"

while running this command with cucumber project it is showing error as 'error: unknown option: -d'.
My command is :
npx cypress run -t 2 -d 'cypress/integration/step_definitions/ui' -a TAGS='@smoke and not (@skip or @underfix)'
My step definition files are in the folder cypress/integration/step_definitions/ui
Can i please know where i have gone wrong

Any update on this one? Can we use this plugin to execute Cypress Cucumber tests using tags?

I did some experimenting and current cypress-parallel and cypress-cucumber-preprocessor are working together. You can start tests by filtering them using tags.
"cy:single": "cypress run --env name=local,TAGS='@sanity'"
"cy:parallel": "cypress-parallel -s cy:single -t 2 -d cypress/e2e/tryMe -m false",


[C++][Python] Generating Parquet with Pandas

Describe the bug, including details regarding any error messages, version, and platform.
Hi team,
Am trying to save a csv to parquet using Pandas, but some times am facing issues like type conversations where a column is object but most the values are numeric. If one value in that column is alphanumeric then its causing issue like ("Could not convert 'A5000' with type str: tried to convert to double", 'Conversion failed for column REFERENCE_KEY3 with type object').
But explicitly i defining individual column types before saving to parquet and REFERENCE_KEY3 is a object. Please help for this scenario.
sample script:
merged_df = merged_df.astype({col: typ_conv[oracle_type] for col, oracle_type in m.items()})
merged_df['REFERENCE_KEY3'].dtype   # dtype('O')
merged_df.to_parquet('sample.parquet', index=False)

Info:
Name: pandas
Version: 1.1.5
Name: pyarrow
Version: 6.0.1
Component(s)
Parquet, Python

but most the values are numeric

Seems in 'A5000', the type of input data is not the same? Parquet only store the data with same type in a Parquet file

Hi @mapleFU thanks for your quick response. So do you mean that column should have same data types?
But we're defining column type right, will it not consider it as string?

But we're defining column type right, will it not consider it as string?

Hmmm I think it's defined as a "double" rather than string during writing to file, I'm not so familiar with pandas, would you mind provide a simplest reproduce way(maybe with some self-generated data?)

This is how my data look like

Col1
Col2
Col3
Col4

1
aed
2019-05-10T08:31:41.000+00:00

2
wef
2019-05-10T08:31:41.000+00:00

3
aed
2019-05-10T08:31:41.000+00:00

4
wef
2019-05-10T08:31:41.000+00:00
92

5
aed
2019-05-10T08:31:41.000+00:00
115

6
wef
2019-05-10T08:31:41.000+00:00
138

7
aed
2019-05-10T08:31:41.000+00:00

8
wef
2019-05-10T08:31:41.000+00:00
A184

9
aed
2019-05-10T08:31:41.000+00:00
207

10
wef
2019-05-10T08:31:41.000+00:00
230

11
aed
2019-05-10T08:31:41.000+00:00

12
wef
2019-05-10T08:31:41.000+00:00

13
aed
2019-05-10T08:31:41.000+00:00
299

14
wef
2019-05-10T08:31:41.000+00:00
322

so the REFERENCE_KEY3 column is like Col4, value at row 8 it's causing issue for me while saving as parquet and the column type is defined as object(string) in pandas.

Hey got resolved by changing pandas dtypes to String instead of Object and is working now.
Thanks @mapleFU for your quick response.


use setState instead of direct assignment

fixes #1
We are using this component in https://github.com/Kentico/cloud-sample-app-react and it does not look good to have warnings in the sample application.
I have just change what does the react see as a best practice - the state is updating asynchronously using setState method.

👍

@Chevtek, do you have any ETA when you are able to merge the fix?

@karpikpl, @mynameistechno, @chevex
I could publish the fixed version as a new npm package.

Please do.

Thanks you guys. Been going through some rough stuff for the last year and haven't had time to follow up with anything. I just merged this in and I'll publish it soon. Thanks for going the extra mile to get a fix out for everyone :)

🤣  I have just published the fixed version 😆
https://www.npmjs.com/package/@simply007org/react-spinners

Right, hence why I'm thanking you for getting a fix out despite my absence😉


Enhancement of intervall based journals

Hi,
i would love to use intervall based journals in some cases but the way this journal-type uses indexing doesn't fit for me.
E.g. talking about sprints.
You just can increase index by 1. So if starting with Sprint 1 and letting run for a while you end up by e.g. Sprint 234.
Or if choosing yearly reset you get Sprint 1 to Sprint 26 (just example number) each year.
But that's not what I need. For example if the cadence are Releases.
Than I need Release1-Sprint1 to Release1-Sprint7 and then next Sprints are called Release2-Sprint1 to Release2-Sprint7. So as you can see there are more increasing numbers than just an index-number at the end as it's implemented now.
Other use-case are Planning-Intervals called PI24-1, PI24-2, PI24-3, PI24-4, PI25-1, PI25-2 and so on. Don't want to use calendar-based quarters here because PIs start-dates don't match with calendar-quarters.
BR
Volli

If I get correctly second example by  - there interval based with 3 month duration and yearly index reset  should work
Or are there other conditions for it?
as for Release - Sprint example
could you please give more context

is Release duration fixed or it can fluctuate?
is there other level possible (like milestone or whatever)
how would you invision configuring this? as I don't have a good idea for now

If I get correctly second example by - there interval based with 3 month duration and yearly index reset should work

If the interval is in line with the calendar , yes.

Or are there other conditions for it?

Yes, simple example would be if someone want's to plan not along calendar but along his age/life-years.
In this case the reset is not at the end of a year but on his birthday.
I could imagine a third option for "index change" here: "reset after x occurences"
So as a user you can say "after (e.g.) 4 journal-pages are created reset index"

as for Release - Sprint example could you please give more context

is Release duration fixed or it can fluctuate?
is there other level possible (like milestone or whatever)
how would you invision configuring this? as I don't have a good idea for now

same as above: "reset after x occurences"
allow more than one index (in all use cases that come to my mind just 2 diffrent index-numbers + "reset after x occurences" would be sufficient.

for the Release-Sprint-example
{{journal_name}}{{index1}}Sprint{{index2}}
Journal Name: Release
Index1= 4711
Index change "increasing"
Index2 = 1
Index change "reset after 6 occurences"
would lead to:

Release4711Sprint1
Release4711Sprint2

Release4711Sprint1

Release4711Sprint1

Release4711Sprint1

Release4711Sprint1

thanks for examples
Index1= 35
Index change "increasing"
Index2 = 1
Index change "reset after 4 occurences"

just increasing index in first case won't be enough as it doesn't need to increase with every node (as increasing does) but rather on index3 reset
nevertheless I got the idea and will think on how to better implement it

oh, yes your right.
Thank you for thinking about it


Better SparklineBars

Fixed #14
Fixed an issue with antialiasing of svg. See screenshots.
Better code style, removed unused variables, added used props into propTypes

Before:

After:

I think the precision doesn't matter in case of sparklines.

I agree, visual fidelity is better than theoretical precision.
I am slightly concerned with high dpi devices though, since there the actual pixels are 2x or 3x (or now I think go up to 4x).
Still, I think your version is better.

I don't think HiDPI is an issue here, since round values will just multiplicated.


Add clinical trials source

This PR adds a source processor for clinicaltrials.gov. The extraction could be done in several ways, in this approach we model the trials themselves as nodes, and add relations for drugs being tested in a given trial, as well as relations for diseases that a given trial is conducted for.

This is good as an initial implementation but could benefit from a more sophisticated implementation of getting groundings for drugs and diseases by combining the (incomplete) MeSH IDs provided in the data and the ones obtained from grounding. This could be done in a follow-up PR later.


Port 3.4.2

refactor + port to godot 3.4.2 + code opt

Hey, great to see you're still working on this. I started using your codebase in my own personal project about a year ago. Keep up the good work!

thx @adam80027. this is also a base of a project that i started like 3 years ago. then I put it on pause due to studies and work. now that I have more time I hope to finish it. best wishes for your projects!


Make ntp server configurable during provisioning

Currently phew is hardcoded to pool.ntp.org but for some environments this might not be accessible or desirable.
Being able to change this to another ntp server, in my instance I have my own stratum 1 ntp server locally, would mean that any clock synchronization would not rely on a potentially unstable internet connection.
I've raised pimoroni/phew#16 which covers the part in phew where this would need to be done to support this during enviro's provisioning.

Thanks for suggesting this. As the firmware is just local to your PicoW you can edit the relevant code line on your specific board if you wish to get something working now.
I do agree though that being able to specify it would be preferable. Were you thinking it would be something the user gets asked during provisioning? I can imagine most users don't know what ntp loop to choose, so I'm not sure about it being an always present setup step. Perhaps just a line in the config file that you can edit?
I'm curious what your thoughts are

I'm doing it currently by manually editing the file.
I raised this because not everyone would know where to do this. If it's a config entry then that would be good as an alternative to provisioning.

I think that this might be resolved by better documentation on where things like this are within the code, rather than spraying too many options around.
Anyone who wants to edit the ntp server address is likely to know what one looks like, so can find it be searching, but it being flagged either with a comment or in general documentation (if space saving is a issue) would be useful.


Relational databases as source

When the data source is a table, the YML file shows the line corresponding to the source field as:
sources:
  - [name_of-the_table~SQL2008]

this does not work when transforming the YML file to an RML file. The problem is fixed by modifying the YML file manually as follows:
sources:
  - table: name_of-the_table

Is it possible that this line was generated this way directly from Mapeathor?

I think the problem is when the YARRRML mapping wants to be translated to R2RML, instead of RML.
Bug identified and reproduced


Authentication interface should return Optional< Principal>

Right now the Authentication interface assumes a username/password.  If instead something like a JsonWebToken is used to authenticate (e.g. via web socket ), then there is not concept of a username, until after such time as the JWT is decoded.   Therefore it makes most sense to me to change the return values of the authentication interface to something like Optional<java.security.Principal>    In this way we can indicate LACK of authentication as as Optional.absent()    while a successful authentication would be indicated with a class which implements the java.security.Principal interface. (which may be as simple as a wrapper around said username ).
An additional advantage to this interface is that the pre-authenticated Principal can be one of the parameters into the IAuthorizater's  two methods, and hence allows the possibility of passing more data into the authorizer than a simple username. (e.g. groups, or roles ).

This could be an interesting feature, but 2 considerations arises:

the use of Optional is not available in Java 7, by now Moquette uses JDK 7 but shold be ported on 8
the username is mandatory because is used in the grants to the topics.

But what is it this JsonWebToken?

#1 is certainly a potential problem.  Perhaps ask on the mailing list how many people would be concerned about swapping up to java 8 ?  If the project wants to stay on java 7 then it could also just return "null" for failure to authenticate.
#2 username is mandatory on the INPUT to the authentication (though we should also consider using client certificates for authentication as well ).  However authorization should start with a Principal, because this object could be the result of multiple possible processes including username/password or client certificate authentication.