Refactor: EPH consumer

I'd like to propose a refactor on the EPH host to follow some functional principles to reduce potential side effects, improve readability, as well as make the code more maintainable and testable. This PR has the following approaches:

EPH Factory created to remove the business logic from the main class.

Event Processor registering and execution separated in two methods to address a single responsibility principle.
EventProcessorResult model used as output of the Event Processor execution instead of void in order to remove side effects that would not be captured by the application

EventProcessorResult with lombok @NonNull annotation to ensure no nullable properties are created
ErrorNotificationHandler and EventProcessor created as a separated classes to improve maintainability and readability
EventProcessorHostConfiguration model created to improve readability, make it testable and ensure no nullable properties are created
TestConsumerEPH.java renamed by Main.java, as Test* naming convention can bring the wrong perception that it's a class for unit tests

Looks good to me! Thanks for adding these improvements to the code!


diebahn: 2.4.0 -> 2.5.0

Description of changes
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

btw any way to add some kind of metadata so search.nixos.org pulls it up once someone looks up "railway"?

I think we could add it to the description, so it would show up when someone searches "railway".
Maybe something like Travel with all your train information in one place, also known as railway.

railway is taken by Railway.app CLI. I guess gnome.railway would be good?

All packages in gnome package set are official Gnome applications and projects if I'm not mistaken. I don't think railway is one of them.

It's a GNOME Circle app, not sure if it counts https://apps.gnome.org/ ctrl+f Railway

Other Gnome circle apps aren't in gnome package set as well, so it probably doesn't count unfortunately.


Update test configuration

Use new LAMMPS build without libjpeg dependency workaround when possible
Test HOOMD 3.10.0

Need to wait for HOOMD 3.10.0 to come to conda-forge and rerun those tests, then this is good to merge.

This is a straightforward update and all tests pass, merging without review.


Update sbt-wartremover, wartremover to 2.4.15

Updates

org.wartremover:sbt-wartremover
org.wartremover:wartremover

from 2.4.1 to 2.4.15.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.4.1).
You might want to review and update them manually.
project/plugins.sbt

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.wartremover" } ]

labels: library-update, semver-patch, old-version-remains

Superseded by #136.


Removed the skelton executables from gem package

Hi, I did install this gem. I found the this gem contained the skelton code generated by bundle gem.
This executable will put the user PATH globally. Is it the intentional?

Hello.
Actually, don't remember this part at all :)

Thank you for PR!


add cheesevim

please (its my nvim distribution)

I'll give it a quick test this weekend.  I will if it bootstraps itself.  It fails, I'll post the errors so they can be corrected.


Why not use JavaScript getters?

 Why not use JavaScript getters?
JavaScript objects have support for getters: (works everywhere except on IE8)

http://ejohn.org/blog/javascript-getters-and-setters/
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects

Why not use them (optionally) instead of .get() and .getIn()? Especially for server-side code and for applications that aren't focusing IE8 this could be really helpful.

Unfortunately, without this you can't pass Map values to 3-rd party code.
It breaks all of React mixins, e.g. linkState. Same with List.size instead of List.length...
I thought this library is proved to be compatible with React, but I was wrong.
Perhaps I overestimate the rate of evolution :(
Any forecasts on when this might change?

@ivan-kleshnin
You can use .toJS() for most things, since the whole point of Immutable data structures is that the shouldn't be changed by outside methods.
If you want the two-way data binding from linkState you can use this library I made for the purpose: reactlink-immutable

Map is API compatible with the ES6 Map, but not JS Object - unfortunately the language does not provide a capability to do that. There's some discussion in the JavaScript technical committee to find a way to provide read API compatibility performantly, but even with a decision made, it will be months or even more than a year from a first browser adopter, and many years until browsers with that feature are widespread to the point that we can rely on such a feature.
Unfortunately that means custom data structures in JavaScript must have a different read API from Object and Array for the foreseeable future.

@idolize

You can use .toJS() for most things, since the whole point of Immutable data structures is that they shouldn't be changed by outside methods. If you want the two-way data binding from linkState you can use this library I made for the purpose: reactlink-immutable

Yeah, I went that road. Then went back. Unfortunately with both ImmutableJS and Mori your datastructures begin to look very messy. The probability of bugs increases, not decreases.
At least for me. So I switched back to native ones.

FWIW, Object.defineProperty is now just as fast as getting/setting via methods. https://jsperf.com/getter-setter/8

@scottmas awesome! @leebyron any interest in a PR adding getter support?


Space around table

Description
Space around the tables in git compare
Fixes #25
Type of Change:

Code
User Interface

Screenshots

Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[x] I have added tests/screenshots(If any) that prove my fix is effective or that my feature works

@Aakansha99 please review this.


MPIVecEnv

Hello,
I was trying to find a way to make the ARS implementation I was working on in this pr faster. My first thought was a drop in replacement for SubprocVecEnv that uses mpi4py instead. I implemented a first pass here. It is quick and dirty, but still a working proof of concept to see if there is any performance to be gained here.
I am seeing modest speedups in rollout collection time. For pendulum-v0 with 10 environments I am finding it 4-5x faster than Dummy and Subproc. For HumanoidBulletEnv-v0 with 10 environments I am finding it 8x faster than Dummy and 2x Faster than SubProc. It might be possible to squeeze more performance out of it but probably this is 80% of what can be achieved using this approach.
This is just for rollout collections, any actual speedup to algorithms using this vec env are going to be smaller, but for on policy algorithms probably still significant.
I wanted to ask if this or something like it had been considered, IIRC mpi4py was a big headache to support, but perhaps by confining that dependency to contrib/ most of the headache will disappear. Can also look at for example torch distributed, but I think that will cause a similar number of headaches for most likely less speed.
This is another thing I would interested in contributing (over the following weeks ...). But again, only if there is interest.

Hello,
it looks interesting, do you have a minimal code example on how it works?
the synchronization is done after each step?
In fact, I have the plan to have a complete PPO MPI version at some point in SB3 contrib (#11 ) where each core also compute gradients.

Yes, the examples I made for testing live here. The synchronization happens at each steps, each call to G/gather is blocking.
I figure the proposed vec env could be used by any existing sb3 algorithm for a modest speedup, and maybe by future "MPI aware" algorithms for bigger gains.

Yes, the examples I made for testing live here.

thanks =) but I'm afraid this won't work with the current SB3 implementation...

OK, I'm not seeing why that is though?


Fix settings issue whereby Paypal currency was not set correctly in the admin area

Fixes issue #3

Oops, thanks! :+1:

:)


Subutai Management console does not allow to execute commands with special symbols

@soffokl please check and close

checked


updating ip add check script

Pull Request Functional Test Report for #2702 / 4d1a1ee9a05bd32bd390d0dbcba578ca93cce43c
No tests identified for validation.
Help

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 52.21%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1654

Relevant Lines:
3168

💛  - Coveralls

I'm not sure if using Martian 240/8 in test (e.g. for routing) would be a challenge to OTHER major vendors. @dplore can you help investigate? Thanks.

FYI, @dplore @bensons @liulk @cprabha I plan to deprecate current PR with the following ones:

https://github.com/openconfig/featureprofiles/pull/2733
https://github.com/openconfig/featureprofiles/pull/2732


add pySCHISM integration to CoupledModelDriver

@zacharyburnettNOAA, I have a couple of questions about adding PySCHISM. Please let me know if I need to create separate tickets for each to discuss on this repo:

PySCHISM is not published yet, how should I add dependency in setup.cfg? Should I just assume users install PySCHISM separately?
PySCHISM has similar implementations for tides and other forcings. Should I create "duplicate" items in the coupled model driver or should I add a higher level abstraction for forcing types?

By duplicate I mean to have ADCIRCTidalForcingJSON as well as PySCHISMTidalForcingJSON, etc.
The main issue is that field types within each *JSON class is based on the specific ADCIRC classes, and I don't want to assume that PySCHISM is exactly the same, although they might be very similar

PySCHISM is not published yet, how should I add dependency in setup.cfg? Should I just assume users install PySCHISM separately?

I've moved the configuration into pyproject.toml in the main branch, where you can do this:
[tool.poetry.dependencies]
requests = { git = "https://github.com/requests/requests.git" }

https://python-poetry.org/docs/dependency-specification/#git-dependencies
If you rebase feature/schism onto main, you'll get this change and will be able to add this line to the .toml

PySCHISM has similar implementations for tides and other forcings. Should I create "duplicate" items in the coupled model driver or should I add a higher level abstraction for forcing types?

By duplicate I mean to have ADCIRCTidalForcingJSON as well as PySCHISMTidalForcingJSON, etc.
The main issue is that field types within each *JSON class is based on the specific ADCIRC classes, and I don't want to assume that PySCHISM is exactly the same, although they might be very similar

yes, it would probably be best to make the TidalForcingJSON an abstract parent of two implementations, one for ADCIRC and one for SCHISM. The parent could probably implement some common fields, if there are any

Some of PySCHISM operations (fetching NWM or GFS/HRRR/ERA5 data) requires internet access. But if I submit the generate job to slurm then it won't be able to download. Have you had such an issue with ADCIRCPy or all of its required data is always offline?

I had a similar problem with the Hera processing nodes. I ended up modifying large parts of ADCIRCpy to be able to either call to the Internet or only use local files if specified, and that seems to have solved the issue.
To test this functionality I used pytest-socket to disable Internet access for certain tests to ensure that it wouldn't try to access network resources if given a file: https://github.com/oceanmodeling/StormEvents/blob/15ef8efaaf664c6478110b6cc247766da943bcf1/tests/test_nhc.py#L225-L252

Codecov Report

Merging #136 (c84c137) into main (1f23f21) will decrease coverage by 21.35%.
The diff coverage is 31.77%.

@@             Coverage Diff             @@
##             main     #136       +/-   ##
===========================================
- Coverage   74.32%   52.96%   -21.36%
===========================================
  Files          18       34       +16
  Lines        1819     3587     +1768
===========================================
+ Hits         1352     1900      +548
- Misses        467     1687     +1220

Flag
Coverage Δ

python3.9-Linux
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

coupledmodeldriver/client/check_completion.py
0.00% <0.00%> (ø)

coupledmodeldriver/client/generate_adcirc.py
0.00% <0.00%> (ø)

coupledmodeldriver/client/generate_schism.py
0.00% <0.00%> (ø)

coupledmodeldriver/client/initialize_schism.py
0.00% <0.00%> (ø)

coupledmodeldriver/client/unqueued_runs.py
0.00% <0.00%> (ø)

coupledmodeldriver/generate/adcirc/__init__.py
100.00% <ø> (ø)

coupledmodeldriver/generate/adcirc/check.py
0.00% <0.00%> (ø)

coupledmodeldriver/generate/schism/check.py
0.00% <0.00%> (ø)

coupledmodeldriver/generate/schism/generate.py
8.88% <8.88%> (ø)

coupledmodeldriver/generate/schism/script.py
26.25% <26.25%> (ø)

... and 32 more

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 a97e5ec...c84c137. Read the comment docs.

@zacharyburnett, this pull request is ready for review. Can you please take a look at the changes when you have time? I rebased (squash, reorder) my changes at the end so that the commits are cleaned up.
There are a couple of things I had to do to get all tests passing. I was wondering if you see any issues with these changes and if you have any suggestions other than removing the test from test matrix:

I noticed tests in macos (ADCIRC tests) run into segmentation error on python-3.7, so I removed 3.7 from matrix. I didn't know how to keep ubuntu with python-3.7 but skip all tests for macos with python-3.7; linux w/ 3.7 tests go through fine. Do you have a better way in mind?
Due to some issues in PySCHISM, (local function definition) the macos tests for PySCHISM generation fail. Since this is a PySCHISM issue and not CoulpedModelDriver issue, I just skip the PySCHISM test (using pytest.mark.skipif)  for macos
PySCHISM relies on cfdm package, but the package doesn't support Python 3.10 (3.x). So I removed 3.x from tests and also limited the support (in pyproject.toml) to >=3.7, <3.10.

The issue is because coupledmodeldriver.generate imports both generate.schism and generate.adcirc which in turn import pyschism and adcircpy, even if the test is for ADCIRC model, the package fails to be imported as it always tries to import pyschism as well and importing pyschism results in cfdm being loaded which fails on 3.10.

All the tests required for the pull request are passing now, except 3.7 and 3.x that I had to remove. Given all above:

Should I override and merge with admin rights or do you have other ideas?
Also should 3.7 and 3.10 be required tests for future pulls?

@zacharyburnett I figured out how to exclude an item from test matrix! I'll add back python 3.7 testing, but still there's nothing I can do for 3.x/3.10. I'll remove the latter from the test requirements for now.

I apologize, I meant to respond earlier about that but did not get to it, but I'm glad you figured it out!

the only thing is it looks like this will decrease code coverage by about 5%, maybe you could add more tests for different combinations of SCHISM and forcings, but otherwise it looks great

Thank you for your feedback. I think compared to ADCIRC the coverage is not very different, but I'll take another look to see if there's any room for improvement. For now only tidal forcing support is added for SCHISM. I'll add all the other forcing combinations for schism in future feature branches and will add the tests as well.


Timings.Connect is not recorded

SocketsHttpHandler internally implements a connection pool which is not visible to a delegating handler. HttpClientHandler appears to use Win32 networking as its underlying implementation. So neither appear to be amenable to inspecting the connection time.
It may be possible to fork the .NET core implementation of SocketsHttpHandler (or submit a PR to add logging hooks), but for now this is outside the scope of the project.


Add console support

Add console support for Identity

Awesome! You may want this in the main gem group though if you want it to be available in production.

@brandur makes sense. Fixed


Reproduce on RAP dataset

hi, thanks for open source.
I tried to reproduce the results on RAP datasets.
There is quite a gap between paper and my reproduction.
Paper :

My reproduction:
Last epoch:

The 10th epoch:

I found the 10th epoch is much closer to the paper results.
How do you chose your best result ? (The best mA epoch or Recall epoch ?）

HI, i also want to reproduce on RAP dataset, I am troubled by a problem:
I use the way in pedestrian-attribute-recognition-pytorch to process Rap dataset.
I got two files: rap_partition.pkl and rap_partition.pkl
These two files cannot be directly applied to this project because of different formats.
How can I turn them into usable？
Can I have some suggestions? Thank you very much

HI, i also want to reproduce on RAP dataset, I am troubled by a problem:
I use the way in pedestrian-attribute-recognition-pytorch to process Rap dataset.
I got two files: rap_partition.pkl and rap_partition.pkl
These two files cannot be directly applied to this project because of different formats.
How can I turn them into usable？
Can I have some suggestions? Thank you very much

refer to #4

hi, thanks for open source.
I tried to reproduce the results on RAP datasets.
There is quite a gap between paper and my reproduction.
Paper :

My reproduction:
Last epoch:

The 10th epoch:

I found the 10th epoch is much closer to the paper results.
How do you chose your best result ? (The best mA epoch or Recall epoch ?）

Did you correctly use the dataset and code?
I achieve the results after about 30 epochs, refer to the Supplementary Material for more training detals.


[BUG] When Running Manim Slides it gives me typeError

Description
I'm trying to run manim-slides, but it gives me this very weird error. i cant even access the version of it. this is what error looks like:
Traceback (most recent call last):
  File "C:\Python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Python39\Scripts\manim-slides.exe\__main__.py", line 4, in <module>
  File "C:\Python39\lib\site-packages\manim_slides\__main__.py", line 8, in <module>
    from .convert import convert
  File "C:\Python39\lib\site-packages\manim_slides\convert.py", line 89, in <module>
    class Converter(BaseModel):  # type: ignore
  File "C:\Python39\lib\site-packages\manim_slides\convert.py", line 90, in Converter
    presentation_configs: conlist(PresentationConfig, min_length=1)  # type: ignore[valid-type]
  File "C:\Python39\lib\site-packages\pydantic\types.py", line 869, in conlist
    return Annotated[List[item_type], annotated_types.Len(min_length or 0, max_length)]
TypeError: Len() takes no arguments

This is my code:
from manimlib import *
from manim_slides import Slide
import numpy as np

# To watch one of these scenes, run the following:
# manimgl example_scenes.py OpeningManimExample
# Use -s to skip to the end and just save the final frame
# Use -w to write the animation to a file
# Use -o to write it to a file and open it once done
# Use -n <number> to skip ahead to the n'th animation of a scene.

class rectangle(Slide):
    def construct(self):
        box1 = Rectangle(stroke_color = RED_C, stroke_opacity = 0.7, fill_color = RED_B, fill_opacity=0.5, height = 1, width = 2).shift(3 * RIGHT)
        name1 = Text("Discriminator D(z)", font_size = 18).move_to(box1.get_center())

        box2 = Rectangle(stroke_color = GREEN_C, stroke_opacity = 0.7, fill_color = GREEN_B, fill_opacity=0.5, height = 1, width = 2).shift(2.5 * DOWN + 3.75 * LEFT)
        name2 = Text("Generator G(z)", font_size = 18).move_to(box2.get_center())

        box3 = Rectangle(stroke_color = GREY_A, stroke_opacity = 0.7, fill_color = BLACK, fill_opacity=0, height = 2, width = 2).shift(2.5 * UP + 1 * LEFT)
        name3 = Text("Real Images", font_size = 18).move_to(box3.get_top())

        image1r = ImageMobject("../manim/logo/10.jpg").scale(0.25).move_to(box3.get_center()).shift(0.5 * UP + 0.5 * LEFT)
        image2r = ImageMobject("../manim/logo/1012.jpg").scale(0.25).move_to(box3.get_center()).shift(0.5 * UP + 0.5 * RIGHT)
        image3r = ImageMobject("../manim/logo/1022.jpg").scale(0.25).move_to(box3.get_center()).shift(0.5 * DOWN + 0.5 * LEFT)
        image4r = ImageMobject("../manim/logo/1032.jpg").scale(0.25).move_to(box3.get_center()).shift(0.5 * DOWN + 0.5 * RIGHT)

        box4 = Rectangle(stroke_color = GREY_A, stroke_opacity = 0.7, fill_color = BLACK, fill_opacity=0.5, height = 2, width = 1).shift(2.5 * DOWN + 5.6 * LEFT)
        name4 = Text("\n 0.000 \n -0.234 \n -3.456 \n 1.293 \n 0.015 \n ... \n -1.102 \n 0.998 \n -0.122", font_size = 18).move_to(box4.get_center())

        brace1 = Brace(box4, LEFT)
        name5 = Text("100", font_size = 18).next_to(brace1, LEFT)
        name6 = Text("Random Noise", font_size = 18).next_to(box4, 0.25 * TOP)

        box7 = Rectangle(stroke_color = GREY_A, stroke_opacity = 0.7, fill_color = BLACK, fill_opacity=0, height = 2, width = 2).shift(2.5 * DOWN + 1 * LEFT)
        name7 = Text("Fake Images", font_size = 18).move_to(box7.get_bottom())

        image1f = ImageMobject("../manim/logo/generated_plot_epoch-960.png").scale(0.25).move_to(box7.get_center()).shift(0.5 * UP + 0.5 * LEFT)
        image2f = ImageMobject("../manim/logo/generated_plot_epoch-961.png").scale(0.25).move_to(box7.get_center()).shift(0.5 * UP + 0.5 * RIGHT)
        image3f = ImageMobject("../manim/logo/generated_plot_epoch-962.png").scale(0.25).move_to(box7.get_center()).shift(0.5 * DOWN + 0.5 * LEFT)
        image4f = ImageMobject("../manim/logo/generated_plot_epoch-963.png").scale(0.25).move_to(box7.get_center()).shift(0.5 * DOWN + 0.5 * RIGHT)

        arrow_1 = Arrow(start = box3.get_right(), end = box1.get_left(), color = WHITE)
        arrow_2 = Arrow(start = box7.get_right(), end = box1.get_left(), color = WHITE)
        arrow_3 = Arrow(start = box2.get_right(), end = box7.get_left(), color = WHITE)
        arrow_4 = Arrow(start = box4.get_right(), end = box2.get_left(), color = WHITE)

        self.play(ShowCreation(box4), ShowCreation(name4), ShowCreation(brace1), ShowCreation(name5), ShowCreation(name6))
        self.next_slide()

        self.play(ShowCreation(arrow_4), ShowCreation(box2), ShowCreation(name2))
        self.next_slide()

        self.play(ShowCreation(arrow_3), ShowCreation(box7), ShowCreation(name7), ShowCreation(image1f), ShowCreation(image2f), ShowCreation(image3f), ShowCreation(image4f))
        self.play(ShowCreation(box3), ShowCreation(name3), ShowCreation(image1r), ShowCreation(image2r), ShowCreation(image3r), ShowCreation(image4r))
        self.next_slide()

        self.play(ShowCreation(arrow_1), ShowCreation(arrow_2), ShowCreation(box1), ShowCreation(name1))
        self.wait()

And this is what i tried to run:
manim-slides .\example_scenes.py rectangle

Version
I can't access it, because it gives me that error when checking version
Platform
Windows
Screenshots
No response
Additional information
No response

Hello @NikoMolecule, thank you for reporting this issue!
If manim-slides --version fails, can you show what pip show manim_slides outputs?
Second, manim-slides .\example_scenes.py rectangle is not a valid command.
If you want to render the slide, please use manim-slides render --GL .\example_scenes.py rectangle. If you want to present them, please use manim-slides rectangle.

Can you check the version of Pydantic? pip show pydantic

@jeertmans it outputed this:
Name: pydantic
Version: 2.6.4
Summary: Data validation using Python type hints
Home-page:
Author:
Author-email: Samuel Colvin<EMAIL_ADDRESS>Eric Jolibois<EMAIL_ADDRESS>Hasan Ramezani<EMAIL_ADDRESS>Adrian Garcia Badaracco<EMAIL_ADDRESS>Terrence Dorsey<EMAIL_ADDRESS>David Montague<EMAIL_ADDRESS>Serge Matveenko<EMAIL_ADDRESS>Marcelo Trylesinski<EMAIL_ADDRESS>Sydney Runkle<EMAIL_ADDRESS>David Hewitt<EMAIL_ADDRESS>License:
Location: c:\python39\lib\site-packages
Requires: annotated-types, pydantic-core, typing-extensions
Required-by: inflect, manim-slides, pydantic-extra-types

Are you using Python 3.9.7? Looks like this is an issue due to this Python version, see https://github.com/microsoft/semantic-kernel/issues/4430#issuecomment-1912617602 and https://github.com/pydantic/pydantic/issues/7745#issuecomment-1748812800.
The best solution might be to upgrade your Python version :-)

@jeertmans I deleted python 3.9.7. and installed 3.11.9 and now when typing manim-slides --version i get this error:
'manim-slides' is not recognized as an internal or external command,
operable program or batch file.

even tho pip show manim-libs prints output

This just means you either did not install Manim slides correctly, or that the script is installed in a folder that is not located in PATH. Google that error and you should find a solution, this is a very common issue :)

@jeertmans well i tried to fix it and when calling python -m manim-slides i got this error:
C:\Program Files\Python311\python.exe: No module named manim-slides.__main__; 'manim-slides' is a package and cannot be directly executed

@jeertmans well i tried to fix it and when calling python -m manim-slides i got this error:
C:\Program Files\Python311\python.exe: No module named manim-slides.__main__; 'manim-slides' is a package and cannot be directly executed

You need to use an underscore « _ » instead of the hyphen when you call it via Python modules :)
So it is manim_slides and not manim-slides.


minor correction on predictions JSON

for the example of POST v1/model/prediction/<int:prediction_id>/tiles

oops. thanks you @gaoxm !


how to use node module

I'm trying to use a node module (iohook) but appears the message: Cannot find module 'iohook'. Is it possible to use node module with electron.net?

Hello @leovictor
how would you like to use your feature request?
Best,
Gregor

Hello Gregor,
What is the solution for this ? If I want to use iohook package to be added in my electronize build, then what should I do ?
Thanks in advance..

Hi @sachin-devitpl
the HostHook API allows you to execute your own JavaScript/TypeScript code on the host process.
Create first an ElectronHostHook directory via the Electron.NET CLI, with the following command: electronize add hosthook.
In this directory you can install any NPM packages and embed your own JavaScript/TypeScript code. It is also possible to respond to events from the host process.
You find the sample source code in ours Demo-App (ElectronNET.WebApp) Controllers\HostHookController.cs and in the ElectronHostHook folder.
Cheers,
Gregor


Bug - HR / Manager portal - GC email requirement

Description
When an HR advisor who already has a manager account tries to log-in to the HR advisor account for the first time, they are asked to provide a government email. Because they have already provide that information for the manager account, however, they would receive an error message when trying to enter their email again. We currently work around it but asking the HR advisor to add a "+" to their email address.

[ ] Regression test written.

Jerbo and Jasmita also encountered this during a user testing session.

Jasmita, could you please try and write out steps for reproducibility?


Uncaught ReferenceError: regeneratorRuntime is not defined

Library Affected:
workbox-webpack-plugin
Browser & Platform:
Was found on Chrome v51
Bug:
I am using this plugin like so:
new GenerateSW({
    babelPresetEnvTargets: ["last 4 versions", "safari >= 7"],
    cacheId: 'sw',
    cleanupOutdatedCaches: true,
    clientsClaim: true,
    exclude: [/\.map$/, /stats\.json$/],
    inlineWorkboxRuntime: true,
    runtimeCaching: [
        {
            urlPattern: /^https:\/\/fonts\.googleapis\.com.*/,
            handler: 'StaleWhileRevalidate',
        },
    ],
    skipWaiting: true,
    sourcemap: false,
    swDest: 'sw.js',
}),

This error is coming through into the browser console:
Uncaught ReferenceError: regeneratorRuntime is not defined

As a workaround, I'd suggest omitting babelPresetEnvTargets from your configuration, and explicitly running your babel configuration against your generated service worker file after the webpack compilation completes.
Alternatively, you can switch to InjectManifest mode and webpack will compile your swSrc file using the options you have configured for your main compilation, including the babel config.
(FWIW, the earliest version of Safari to support service workers is Safari 11.1, so targeting safari >= 7 in your transpilation might not be what you want.)

Could you please explain why removing babelPresetEnvTargets and transpiling sw.js after webpack has created it are different from each other - they appear to be doing the exact same thing?

If you run your own babel transpilation process after Workbox generates a service worker, you have control over adding in additional configuration options, like including the https://babeljs.io/docs/en/babel-plugin-transform-runtime or https://babeljs.io/docs/en/babel-plugin-transform-regenerator plugins for compatibility with browsers that support service workers but don't support other modern JavaScript features.

I'm surprised that adding this babelPresetEnvTargets property with those values would have meant that it would work in Chrome 81 (Desktop), because this supports Service Workers ?

When you set babelPresetEnvTargets, there's a single transpilation performed, and a single service worker file output. You can think of it as meeting the requirements of the "lowest common denominator" based on your babelPresetEnvTargets configuration.
If your babelPresetEnvTargets configuration includes a browser that doesn't have support for generators, then the single service worker file that's output will include code that references regeneratorRuntime. If regeneratorRuntime isn't available (which it wouldn't be if you're using a transpilation configured by Workbox), then the code will fail to run on any browser—it's failing on modern browsers that have generator support because there's now a dependency on the missing regeneratorRuntime.
As suggested, you can either perform your own transpilation after Workbox produces a service worker file, and in that transpilation, add in support for the regeneratorRuntime (check the babel documentation for exactly how you'd do that). Alternatively, you could ensure that you set Workbox's babelPresetEnvTargets to only include browsers that have generator support, and the service worker file that Workbox creates should work across all of those browsers.
I'm leaving this issue open because it's definitely something that we could help prevent from happening—I think Workbox could conditionally add the regeneratorRuntime to the service workers it transpiles without incurring a larger bundle size when it's not needed. But what I'm offering in the meantime is some workarounds that should address your issue.

I have now switched to the InjectManifest method:
new InjectManifest({
            dontCacheBustURLsMatching: /^\/static\/modern\/(components\/([a-z0-9-]+\/)*|scenes\/([a-z0-9-]+\/)*)?[0-9a-z-]+\.[0-9a-z-]+\.js$/,
            exclude: [/\.map$/, /stats\.json$/],
            swDest: 'sw.js',
            swSrc: './src/utilities/service-worker/sw-source.js',
        }),

Our webpack babel config states:
"last 4 versions", "safari >= 7"

But when I run es-check against this (checking for es5) it fails with:

· erroring file: ./dist/static/legacy/sw.js
· error: SyntaxError: The keyword 'const' is reserved (1:1414)

Am I correct in thinking that Webpack should have transpiled my service worker source file to es5?

InjectManifest mode will create a childCompiler instance under the hood, and a lot of of the webpack configuration is inherited from the main, "parent" compilation. I've heard that the plugins from the parent compilation aren't applied consistently, though, so InjectManifest supports a webpackCompilationPlugins option that you could use to add in, e.g., your plugin to perform the transpilation:
https://github.com/GoogleChrome/workbox/blob/04ba6442c466d2e8197fe586672143d201af3a61/packages/workbox-webpack-plugin/src/inject-manifest.js#L118-L119

Alternatively, you can switch to InjectManifest mode and webpack will compile your swSrc file using the options you have configured for your main compilation, including the babel config.

Is this true? I can't get passed the error in the OP with using what you've suggested in this thread. Here's my stuff: https://github.com/JeremiGendron/react-typescript-pwa-poc/tree/master/lib/frontend
Check config/webpack.config.js, run yarn build, open with serve and see error.
(I'm aware my service worker is not very well formed, but shouldn't be getting this error anyway)
LMK if I missed something

@jeffposnick I'm trying to utilize the babel loader configuration from within my webpack config file. Given this is a loader and not a plugin, should this be expected to work?

On my end, seems like it's a general misconfiguration issue. Using async functions at all (which were previously only in my SW entry) causes this error to throw. So it's a problem with by webpack/babel config and not the plugin.

@JeremiGendron Isn't "regenerator": true the default though - how could this have made the difference?

Alternatively, you can switch to InjectManifest mode and webpack will compile your swSrc file using the options you have configured for your main compilation, including the babel config.

I am using injectManifest and facing the below issue.
service-worker.js:158 Uncaught (in promise) TypeError: Cannot read property 'async' of undefined
    at Object.navigationHandler [as handle] (service-worker.js:158)
    at Router.handleRequest (Router.js:196)
    at eval (Router.js:63)

Webpack plugin
new InjectManifest({
        swSrc: './src/service-worker.js',
        swDest: 'service-worker.js',
    })

Relevant service worker code
navigationPreload.enable();
const networkOnly = new NetworkOnly();
const navigationHandler = async (params) => {
  try {
    // Attempt a network request.
    return await networkOnly.handle(params);
  } catch (error) {
    // If it fails, return the cached HTML.
    return caches.match(FALLBACK_HTML_URL, {
      cacheName: CACHE_NAME,
    });
  }
};

// Register this strategy to handle all navigations.
registerRoute(
  new NavigationRoute(navigationHandler)
);

and, Yes this is the code from workbox documentation and I am not able to run it.

An alternative workaround is to ignore babel or use an alternative babel.config
Example (for service worker file sw.js)
webpack.config.js
// normal babel config (with preset env)
const babelLoader= {
    loader: 'babel-loader',
    options: {configFile: path.resolve(__dirname, "./babel.config.js")}
}

// babel config for work box (without preset env)
const workboxBabelLoader = {
    loader: 'babel-loader',
    options: {configFile: path.resolve(__dirname, "./babel.workbox.config.js")}
}

// Normal Babel Rule
const babelRule = {
    test: /\.jsx?$/,
    // ignore anything with workbox and sw.js within path
    exclude: /(workbox|sw.js)/,
    use: [babelLoader]
};

// WorkBox Babel Rule
const workboxBabelRule = {
     // may need to tweak this using a function instead of just regex
     test: /(workbox|sw.js)/,
     use: [workboxBabelLoader]
}

Use workboxBabelRule and babelRule
export default = {
   ...
   module: {
       rules: {
             ....
             // add the rules here
       }
   }
}

I got the same error when using workbox-webpack-plugin 5.1.4 with webpack 5.2.0 and with InjectManifest().  I have fixed the problem by setting the target browser in my .babelrc to a more recent browser (Chrome 58). I'm a bit confused by the answer given above  about regeneratorRuntime not being available after compilation

If regeneratorRuntime isn't available (which it wouldn't be if you're using a transpilation configured by Workbox)
since regeneratorRuntime is a dependency of both Babel and of Workbox.

Any news on this? I had this issue using Next.js and Next-PWA which uses Workbox. Because it's a third-party lib (next-pwa) that uses another third-party lib (workbox) inside a framework with its own webpack/babel setup (next.js) it's really crazy to go and try to understand why the bug appears and where and how it should be handled. I mean, this issue creates a domino effect for the third party libs and it should be handled somehow in Workbox either by including the polyfill and/or documenting this clearly so that everybody must know about it and handle it.

Any news on this? I had this issue using Next.js and Next-PWA which uses Workbox. Because it's a third-party lib (next-pwa) that uses another third-party lib (workbox) inside a framework with its own webpack/babel setup (next.js) it's really crazy to go and try to understand why the bug appears and where and how it should be handled. I mean, this issue creates a domino effect for the third party libs and it should be handled somehow in Workbox either by including the polyfill and/or documenting this clearly so that everybody must know about it and handle it.

Hey all. Sorry for not updating this for a while.
@phil-w, the babelPresetEnvTargets setting is available when you're using the GenerateSW plugin.
If you're using the InjectManifest plugin, then any Babel plugins from the parent compilation is applied to the child compilation that outputs your service worker.
@mycolaos, if you could point me to a GitHub project or some other code archive that includes a full setup which reproduces the problem you're seeing, I'll dive into it and tell you what needs to be configured where, and potentially see how those changes could be upstreamed to the source projects.
In general, one option that wasn't mentioned yet is that if you want to pull in the regenerator runtime into your service worker, it can be explicitly loaded from, e.g., the unpkg CDN (or using a local copy that you maintain). The mechanism for loading it varies depending on which webpack plugin you're using:

GenerateSW: add importScripts<EMAIL_ADDRESS>to your Workbox configuration.
InjectManifest: add importScripts('https://unpkg.com/regenerator-runtime@0.13.7/runtime.js'); to the top of your swSrc file.

Again, you can replace those URLs with a copy of the regenerator-runtime code served from a local URL if you'd rather not rely on a CDN.

Hi there,
Workbox is moving to a new engineering team within Google. As part of this move, we're declaring a partial bug bankruptcy to allow the new team to start fresh. We realize this isn't optimal, but realistically, this is the only way we see it working. For transparency, here're the criteria we applied:

For PRs, we closed everything that doesn't target the current v7 branch.
For Issues, we closed everything that was created before 2024.

Thanks, and we hope for your understanding!
The Workbox team


refactor some code.

What about this implementation? :fries:

Codecov Report

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

@@          Coverage Diff          @@
##           master     #8   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           3      3
  Lines          18     19    +1
=====================================
+ Hits           18     19    +1

Impacted Files
Coverage Δ

Flags/Sources/Flag+Emoji.swift
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

LGTM 👻


fix: able to run the Vue.js demo

Installed three.js to be able to run the vue.js demo

Hi @Zeng95 thanks for your PR!
I cannot reproduce the issue. Were you using and older version of three.js? I did a fresh git clone and the vue demo just worked. What do you think the issue is?

fixes #41


Travis OS X build

To be really useful we have to ensure that Boost Matheval builds on all platforms.

Fixed in d8cebd105f89fdca3e2cdcc3bb8548ef4821dd01


Allow Activity selection for Android

Description
We would like a feature that allows us to select the starter Activity when we launch an Android application to capture. This would be useful for us because it is quite common for some Activities to run on a process different from the default MAIN Activity and therefore they cannot be captured with RenderDoc.
There should be a list of the selectable Activities (which can be launched by other applications) but it seems to me that we can't obtain every Activity from the APK with an adb command.
I have tried adb shell dumpsys package [package-name] with some applications but only those Activities are listed which has an <intent-filter>. (Those Activities which have the android:exported attribute set to "true" are not included even though they can be launched by other applications too.)

That commit adds an extra browse step when selecting android applications to select the activity within each package. An entry #DefaultActivity is given for users that don't care about activities and just want to launch the package as normal.
If your activity isn't listed due to the implementation details of adb shell dumpsys then I suggest making a small change to your application to list a dummy intent-filter for the activity you want to launch, so that it is listed.


What is the MSRV policy of this crate

Compiler support: requires rustc 1.34+

I read that on the README, but what is the policy of this crate with regards to changing that? Is there a commitment to keeping the MSRV within a major semver version? Either way, I think it makes sense to document such in the README.

There isn't a policy, it's only whatever I feel like supporting.


Max crash while loading or executing Python scripts

Hi
Thanks for the amazing work. It's really something that is missing for Max users!
I have been playing around with the externals, either from package or compiled, on my 2015 MacBook with 10.15 (used make homebrew-ext). While sending messages to the py object, Max has crashed:
Max(45323,0x1119fbdc0) malloc: *** error for object 0x12695e1d0: pointer being freed was not allocated
The patch is pretty basic, just the minimum to test the possibilities of py-js and python.
Any hint is welcome.

Hi @mainspare
Thanks for your interest in py-js
Sending messages to objects is something that's quite well demonstrated in the included patcher files.
I suggest you looking at py-js/patchers/py_general.maxpat for a working example.
Note that before sending messages between named objects (i.e. objects with specified scripting names), you have to send the [py] object a [scan] message.
This step is necessary since it requests the [py]  object to scan the whole patch for objects with names. Without doing this, it will not work. See the examples in this file.

@francescopapaleo
How did you get along with solution outlined above?

@shakfu
I had already seen the tutorials, and I don't doubt a second that py-js work well.
My Max is crashing also when there's only one [py] object in the patch and no other named instances. The only answer that I could find is that my compiling process was warning about a numpy conflict, hence my script (that imports numpy)   must be the cause of these crashes. I wanted to do more tests with simplified patches and script, but didn't have time. I'll come back to it asap

I think that's the problem. Numpy support is still a work-in-progress so I'd try your script with the numpy import

Yes, absolutely. Thanks a lot for getting back!

I've disabled the auto-enabling of numpy in api.pyx if it is importable. It is now manually enabled at the Makefile level. Previously this worked out-of-the-box in a local install of py-js (if numpy was available), but required an installation of numpy into the external or package in another portable variations, so was not so straightforward for someone who just wanted to use the features of the cython api (and not numpy).
I've also enabled python 3.11.x support for all build variations.
I suggest you try again and play around with py-js/patchers/py_general.maxpat

@francescopapaleo
Any further progress after recent changes?

Hi @shakfu, I haven't had the opportunity to recompile and test. Will do asap.

@francescopapaleo Ok, let me know how it goes when you can.
I have personally tested your sequence on macOS 13.2.1 (Ventura) on an intel MacBook pro with homebrew python installed (python 3.11.2) as follows:
git clone https://github.com/shakfu/py-js.git
cd py-js
make homebrew-ext
open patchers/py_general.maxpat

Now click on the [scan] button in the bottom left of the patcher, and experiment with sending objects using the buttons around it.

@francescopapaleo did you every manage to test this as per the above?


Discord embedded photos are very small

Hello, and thanks for the project!
I'm on a Discord that's using bsky.link to share with the uninvited masses, and the embeds look like this:

For comparison, here's a psky embed with the desired behavior:

I don't know anything about how embeds work, but I might come back with a pull request if I find the time.

Let me take a look! We are probably missing a bit of metadata. Feel free to file a PR if you would like, too!

Ah, I see. Per a stackoverflow answer, discord requires twitter metadata. Per my own experimentation the only needed addition is:
<meta name="twitter:card" content="summary_large_image">

Feel free to file a PR if you would like!


nixos/prometheus-pve-exporter: Use LoadCredentials to make configFiles readable to DynamicUser

Description of changes
This PR introduces LoadCredential to the systemd service, when the user defines a configFile.
As this exporter service was/is using DynamicUser = true, its not possible to chown that file to make it readable.
systemd has the LoadCredential function for that. It loads the given files to $CREDENTIAL_DIR and make it readable for the system service user.
Sadly this does not work for environment files, so i am disabling that in the case a user is using this.
I am not sure how this module was used/tested before without making the secrets world readable.
Another approach to fix it, would be to disable it in every case, but i still think that DynamicUser is a quite nice thing for isolation.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@NukaDuka could you do by chance a review here?  I am pinging you as you have been the original author adding this prometheus exporter.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/692


Introduce mix credo and deal the report

Credo may be useful for static analysis of Elixir code.
https://github.com/rrrene/credo

Here is the result on credo branch
  Software Design
┃
┃ [D] → Found a TODO tag in a comment: # TODO: :int16であればInt16型が使えるようにする(目標)
┃       lib/rclex.ex:445 #(Rclex.initialize_msgs)

  Code Readability
┃
┃ [R] ↗ The condition of `if` should not be wrapped in parentheses.
┃       lib/rclex/timer.ex:12:5 #(Rclex.Timer.timer_loop)
┃ [R] ↗ Function/macro/guard names should be written in snake_case.
┃       lib/rclex.ex:230:7 #(Rclex.get_message_type_from_std_msgs_msg_Int16)
┃ [R] → Modules should have a @moduledoc tag.
┃       lib/rclex/timer.ex:1:11 #(Rclex.Timer)
┃ [R] → Modules should have a @moduledoc tag.
┃       lib/rclex/subscriber.ex:1:11 #(Rclex.Subscriber)
┃ [R] → Modules should have a @moduledoc tag.
┃       lib/rclex/macros.ex:1:11 #(Rclex.Macros)
┃  ...  (1 more, use `--all` to show them)

  Refactoring opportunities
┃
┃ [F] → Function takes too many parameters (arity is 9, max is 8).
┃       lib/rclex.ex:266:7 #(Rclex.rcl_wait_set_init)

  Warnings - please take a look
┃
┃ [W] ↗ There should be no unused return values for Enum functions.
┃       lib/rclex/subscriber.ex:47:5 #(Rclex.Subscriber.subscribe_loop)
┃ [W] ↗ There should be no unused return values for Enum functions.
┃       lib/rclex/subscriber.ex:35:5 #(Rclex.Subscriber.subscribe_loop)

Please report incorrect results: https://github.com/rrrene/credo/issues

Analysis took 0.09 seconds (0.01s to load, 0.08s running 45 checks on 7 files)
99 mods/funs, found 2 warnings, 1 refactoring opportunity, 6 code readability issues, 1 software design suggestion.

Showing priority issues: ↑ ↗ →  (use `mix credo explain` to explain issues, `mix credo --help` for options).

I decide that this issue will be closed when we could deal/discuss the result report from Credo.

Long time has been passed since this Issue published,,, So we merged main (the latest development status) to credo branch to tackle this issue again.
Here is the result of mix credo on https://github.com/rclex/rclex/tree/742b640badba887c8875549ddcef6412f92642e0
$ mix credo
Checking 8 source files ...

  Software Design
┃
┃ [D] → Found a TODO tag in a comment: # TODO:
┃       :int16であればInt16型が使えるようにする(目標)
┃       lib/rclex.ex:466 #(Rclex.initialize_msgs)

  Code Readability
┃
┃ [R] ↗ The condition of `if` should not be wrapped in parentheses.
┃       lib/rclex/timer.ex:12:5 #(Rclex.Timer.timer_loop)
┃ [R] ↗ Function/macro/guard names should be written in snake_case.
┃       lib/rclex.ex:251:7 #(Rclex.get_message_type_from_std_msgs_msg_Int16)
┃ [R] → Modules should have a @moduledoc tag.
┃       lib/rclex/timer.ex:1:11 #(Rclex.Timer)
┃ [R] → Modules should have a @moduledoc tag.
┃       lib/rclex/subscriber.ex:1:11 #(Rclex.Subscriber)
┃ [R] → Modules should have a @moduledoc tag.
┃       lib/rclex/macros.ex:1:11 #(Rclex.Macros)
┃  ...  (17 more, use `--all` to show them)

  Refactoring opportunities
┃
┃ [F] → Function takes too many parameters (arity is 9, max is 8).
┃       lib/rclex.ex:287:7 #(Rclex.rcl_wait_set_init)

  Warnings - please take a look
┃
┃ [W] ↗ There should be no unused return values for Enum functions.
┃       lib/rclex/subscriber.ex:47:5 #(Rclex.Subscriber.subscribe_loop)
┃ [W] ↗ There should be no unused return values for Enum functions.
┃       lib/rclex/subscriber.ex:35:5 #(Rclex.Subscriber.subscribe_loop)

  Consistency
┃
┃ [C] ↗ There are spaces around operators most of the time, but not
┃       here.
┃       test/rclex_test.exs:29:64 #(RclexTest)
┃ [C] ↗ There is no whitespace around parentheses/brackets most of the
┃       time, but here there is.
┃       test/rclex_test.exs:29 #(RclexTest)

Please report incorrect results: https://github.com/rrrene/credo/issues

Analysis took 0.1 seconds (0.01s to load, 0.1s running 45 checks on 8 files)
102 mods/funs, found 2 consistency issues, 2 warnings, 1 refactoring opportunity, 22 code readability issues, 1 software design suggestion.

Showing priority issues: ↑ ↗ →  (use `mix credo explain` to explain issues, `mix credo --help` for options).

┃ [R] → Modules should have a @moduledoc tag.
┃       lib/rclex/timer.ex:1:11 #(Rclex.Timer)
┃ [R] → Modules should have a @moduledoc tag.
┃       lib/rclex/subscriber.ex:1:11 #(Rclex.Subscriber)
┃ [R] → Modules should have a @moduledoc tag.
┃       lib/rclex/macros.ex:1:11 #(Rclex.Macros)
┃ [R] → Modules should have a @moduledoc tag.
┃       lib/rclex/publisher.ex:1:11 #(Rclex.Publisher)

fixed:
https://github.com/rclex/rclex/commit/de8f3600c996eb85e74f49035be91ccaa77039df

  Code Readability
┃
┃ [R] ↗ The condition of `if` should not be wrapped in parentheses.
┃       lib/rclex/timer.ex:12:5 #(Rclex.Timer.timer_loop)

fixed:
https://github.com/rclex/rclex/commit/960efac9bbf6a2163e0c355a923dac40f3b369f0

  Code Readability
┃
┃ [R] ↗ Function/macro/guard names should be written in snake_case.
┃       lib/rclex.ex:251:7 #(Rclex.get_message_type_from_std_msgs_msg_Int16)

fixed:
https://github.com/rclex/rclex/commit/3930c8e4e002fdf1f5eb620f83a15111acc1aeff

  Software Design
┃
┃ [D] → Found a TODO tag in a comment: # TODO:
┃       :int16であればInt16型が使えるようにする(目標)
┃       lib/rclex.ex:466 #(Rclex.initialize_msgs)

This is published as the issue https://github.com/rclex/rclex/issues/35

The Rests of report from credo could not be fixed since they are the specification of Rclex and ROS 2 APIs.
  Refactoring opportunities
┃
┃ [F] → Function takes too many parameters (arity is 9, max is 8).
┃       lib/rclex.ex:292:7 #(Rclex.rcl_wait_set_init)

  Warnings - please take a look
┃
┃ [W] ↗ There should be no unused return values for Enum functions.
┃       lib/rclex/subscriber.ex:52:5 #(Rclex.Subscriber.subscribe_loop)
┃ [W] ↗ There should be no unused return values for Enum functions.
┃       lib/rclex/subscriber.ex:40:5 #(Rclex.Subscriber.subscribe_loop)


Support for HashWithIndifferentAccess / Symbolized Keys

One of the predominant use cases of this SDK is IMHO writing Rails applications. Therefore it would make sense that this SDK supports Rails conventions as much as much as possible. Unfortunately it doesn't do that currently in term of keys as symbols vs strings.
The desirable version
map_attr :my_data, default_value: { items: [] }
throws an error while, as the syntax required is
map_attr :my_data, default_value: { 'items' => [] }.
Same for ERB:
<% my_data.except(:name).keys.each do |key| %>
does not work but needs to be
<% my_data.except("name").keys.each do |key| %>
This is very un-rails-y, both in models as in views, as using HashWithIndifferentAccess gives you at least both options. If you don't want to support this out of the box due to the dependency to ActiveSupport, I would at least making an option when ActiveSupport is available (or automatically use it).

Adding this as a feature request.
We don't want to take a dependency on ActiveSupport since this is rails-agnostic and often used outside of the context of rails.  However, this seems like reasonable behavior to support and I see two options to do so:

We can add a new configuration option to the map_attr that allows you to specify the class used, eg: map_attr :my_data, klass: ActiveSupport::HashWithIndifferentAccess.  This requires explicit configuration to opt into.

We patch the MapMarshaler in aws-sdk-rails to automatically use HashWithIndifferentAccess.  aws-sdk-rails already contains a number of convenience features that make using the SDK easier in the context of rails, so this might reasonably fit in that context.

The patch (which you could also apply in your own code) would look something like:
module IndifferentMapMarshaler
  def type_cast(raw_value)
    ActiveSupport::HashWithIndifferentAccess.new(super)
  end
end

Aws::Record::Marshalers::MapMarshaler.extend(IndifferentMapMarshaler)

@alextwoods I would vote for Option 2 as it seems to me the more flexible Option - and it doesn't require configuration, which is an added bonus. Thanks for the patch and pointing out to the piece of code.

Just as a heads up, I am using that code since several months and it works really fine. So I can only encourage you to include it in the Gem.

Hi @alextwoods - any progress regarding the configuration option?

We have not prioritized aws-record work right now. Does the patch still work for you? I think as far as options go, we could implement a klass option like above or consider this for aws-record-rails.

@mullermp that's sad to hear (regarding deprioritize aws-record, I'll write a bit more to that in issue 143).
The patch works only partly. It doesn't throw an error anymore, so that's good. But it's not a full support lf HashWithIndifferentAccess which leads to the problem that I always have to differ between symbols and strings in the code when having a map_attr.
Example (which the patch already in place):
class Input
  include Aws::Record
  map_attr :data
end

result = Input.create(data: { 'test1' => 'test2', 'test3' => { 'test4' => 'test5', 'test6' => 'test7' } } )
>> result.data
=> {"test1"=>"test2", "test3"=>{"test4"=>"test5", "test6"=>"test7"}}
>> result.data['test1']
=> "test2"
>> result.data[:test1]
=> nil

As you see, that is really a pity and led to many weird errors in the code when there's nil where a value should be and then you realize, ah, it's a map attr, so I can't use symbols anymore. I would really appreciate a solultion (at least with aws-record-rails) where all map_attr hashes can be HashWithIndifferentAccess.
Best,
Thomas


.fit files can also be named .FIT

[] tests added / passed
I'm not really sure how to add an test for the copy_fit_files function
[X] Ensure pre-commit formatting checks are passing
[X]  changelog entry

My device a 920XT create files named .FIT instead of .fit, it seemed an easy fixed, so here you go :)

Hi @gotiniens :wave:
Awesome! Thanks for your contribution! Good catch, upper case .FIT could of course be a quite common thing.
However, I want to point out one more thing. You touched the fit_collector.py which is in charge of copying the fit files from your device to the target directory on the machine workoutizer is running on (mostly referenced with path_to_trace_dir). Since we also want these "collected" files to be imported subsequently, we would have to also touch the file_importer.py.
Using the .lower() approach works just fine. Could you please also apply this to the following lines?

https://github.com/fgebhart/workoutizer/blob/main/wkz/file_importer.py#L239 to also support the import of upper case .GPX files
https://github.com/fgebhart/workoutizer/blob/main/wkz/file_importer.py#L242 to also support the import of upper case .FIT files
https://github.com/fgebhart/workoutizer/blob/main/wkz/file_importer.py#L261 required to initially get a list of all files having the supported formats

That should cover everything. No worries about the tests, I will add them afterwards.
Thanks again, cheers.

No problem, thank you for the awesome piece of software!
Although I am not completly sure how the docker dev environment works, It imported my example FIT file, so it looks to be working now.
06-14 17:38:02 - DEBUG - wkz.tools.sse - File Import started: Found 1 activity files in /workspaces/workoutizer/tracks. Please wait.
06-14 17:38:02 - INFO - wkz.file_importer - importing /workspaces/workoutizer/tracks/B1GC4959.FIT ...
06-14 17:38:02 - DEBUG - wkz.file_importer - parsing FIT file ...
06-14 17:38:03 - DEBUG - wkz.file_helper.fit_parser - found date: 2021-01-16 12:14:48+00:53

I'm not sure about the merge conflict, but it seems te be easily resolved when merging.

Awesome, thanks! 🎉
The merge conflict was caused by another PR which I merged in between - resolved it.

@gotiniens
Also, if you have trouble spinning up the docker environment, feel free to open a issue in case things are not behaving like expected on your side.
The docker environment is useful when doing development and running tests and so on. For actually running a "productive" version of workoutizer I would rather suggest to set up an additional (isolated) virtual environment and simply install workoutizer using pip install workoutizer. If you should have questions/issues on that I'd happy to discuss this also in either an issue or in the discussions.
Enjoy!


Obfuscate or Encrypt Passwords with OrientDB 2.1.x

OrientDB Version: 2.1.20
Java Version: 1.6
OS: Windows
Expected behavior
I'd like the passwords in the  element of the orientdb-server-config.xml to be obfuscated (ideally encrypted). The 2.1 documentation: http://orientdb.com/docs/2.1.x/Server-Security.html shows this example:
    <users>         <user name="root" password="{SHA-256}55F95B91628EF3E679628ACB23AE" resources="*" />         <user name="guest" password="guest" resources="connect,server.listDatabases,server.dblist" />     </users>
What confuses me is this note: "Beginning with version 2.2, OrientDB hashes the passwords using PBKDF2WithHmacSHA256 algorithm if it's running on Java 8 or major, otherwise PBKDF2WithHmacSHA1 with a configurable SALT." Does this mean that passwords can only be obfuscated starting at version 2.2, or did you just add a new hashing algorithm? If the latter, in the example above, do I simply replace {SHA-256} by {SHA-1}? Or can I use {SHA-256} too? Is there way to actually encrypt the password (as opposed to just a hash)?
Actual behavior
Passwords are in the clear.

I've answered my own question. I am able to obfuscate the password at least with SHA-1 which is good enough for me at the moment.

If you follow these steps, you can also reset the password and it should be encrypted.
Restoring the Server's User root

Open the config/orientdb-server-config.xml file and remove the "root" user entry
Remove the tag true at the end of the file
On next restart of the server, a new root password is asked again

Scott

I spoke too fast. Somehow, my application was still able to connect to the database after changing the password. However, I am not able to connect to the Studio app.
In my orientdb-server-config.xml file, I replaced this entry:
<user resources="*" password="admin" name="admin"/>
By:
<user resources="*" password="{SHA-1}d033e22ae348aeb5660fc2140aec35850c4da997" name="admin"/>
Since the password is the same, I'd expect Studio to continue to authorize the admin / admin user. However, it no longer does.

@smolinari the OrientDB server is embedded into a web application, so I do not have the ability to answer prompts, at least not easily. Ideally, I'm looking for the ability to generate the SHA-1 or SHA-256 hash myself, then paste them in the  tag. I've generated the SHA-1 hash above using this: www.sha1-online.com. Please let me know if I am just fundamentally misunderstanding something or refer me to documentation as appropriate.

There are two admin users. The super admin, which is the password in the config to gain access to the server itself and then the admin user for the database administration. To change the database admin password from "admin", you have to change the user in the OUser class like this:
update OUser set password = 'some-new-password' where name = 'admin'
Scott

Ok thanks. Is there any good way to restore the root password (to a new encrypted password) without answering a prompt at startup?

I believe you can create a SHA256 hash and insert it into the orient-server-config.xml file like so:

No guarantee it will work though. Let me know, if it does. I'd try it out myself, but I am using the Docker container version and it doesn't have a text editor. I could probably sed it in, but I'm too lazy to figure out the right command. LOL!
Scott

It does not work for me. I found this issue which seems to be a duplicate: https://github.com/orientechnologies/orientdb/issues/5078, which seems to acknowledge the issue and recommend upgrading to 2.2. Is this not working in 2.1?
My root password is "password". I created a SHA-256 hash. I used the OrientDB helper function to generate the hash just in case there is something unusual about it.
<user resources="*" password="{SHA-256}5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8" name="root"/>
When I switch the value back to "password", it starts working again.

I believe the ability to control the hash type (i.e. with {SHA-256}) was added in 2.2. Sorry, I didn't realize you were using 2.1. No chance of upgrading?
Scott

If you can also use the console, you have this available:
http://orientdb.com/docs/last/Console-Command-Set-Server-User.html
http://orientdb.com/docs/last/Console-Command-Drop-Server-User.html
http://orientdb.com/docs/last/Console-Command-List-Server-Users.html
Scott

I had some problems upgrading to 2.2 so I aborted the project for the time being. I plan to revisit this but obfuscating the password is an immediate issue. Can you confirm that it is not possible to obfuscate passwords with 2.1?

I'm about 90% sure changing the password can only be done with the deletion, then restarting the server in Version 2.1.X. All other features came in 2.2.
Scott

Ok thanks. Just to be completely sure, my immediate need to change the root password but to encrypt it. The problem which I am trying to solve is having clear text passwords in orient-server-config.xml. Can you confirm that password encryption cannot be done in 2.1 (even through the deletion method)?

I think @luigidellaquila can probably better ensure when root user password encryption was possible. Hopefully he can chime in.
Scott

Thank you for the pointer @smolinari
Let me assign it to @SDIPro for a check
Thanks!
Luigi


PhysicalSky is NaN or uninitialized when no directional light in scene

Godot version:
4.0.dev c9413b513fd2fb95e9b71d886e01a04e379bb969
OS/device including version:
Windows 10.0.19041.746
Nvidia RTX 2080 Ti driver 452.06
Issue description:
When I create a physical sky, I expect something sky-like.
 This is because the sky is actually NaN, not black.

It also seems to be sharing information from other scenes until the editor is restarted, which makes the issue more confusing to diagnose.
Steps to reproduce:

Create a new project or open existing
Double click default_env.tres
Expand Sky. Then, in the Sky fleld, click Sky to expand the sky object.
In the Sky Material box, create a new PhysicalSky
Tada! NaN everywhere.

Sharing data from other scenes:

Open another scene.
Create a directional light there. Rotate it for fun
Go back to the first unnamed scene. Suddenly it's not NaN any more.

Minimal reproduction project:
Happens in any project.

Are you sure it is NaNs? The physical sky is just black unless you add a light. Much like our own sky, the color comes from the sun.

It's NaN if I've never opened another scene. You can tell because the gizmo doesn't blend over the blackness properly:
If I open another scene with a directional light and move back, the skybox shows color in it, despite having no light.
I'd be fine if it is "just black until you add a light" but this should be defined behavior, not random depending on the last scene you had open.
I'll change the bug title to say "uninitialized" instead of NaN because that's the real issue

I thought I had already added logic to detect if there is a sun or not. But it appears I haven't.
I guess an appropriate fix would be to just wrap the entire fragment function in an if statement like:
if (LIGHT0_ENABLED) {
//everything that is currently in fragment
} else {
COLOR = texture(night_sky, SKY_COORDS).xyz;
}

I'll be away from my computer until late tonight, so do you mind trying this fix locally? You can just "convert to shader material" and then copy this into the resulting shader.

I have tested out on current master and I can't reproduce the issue.
Here is what it looks like for me:

So please try out the shader change I suggested above and let me know if it works for you!

Yes, can confirm that fixes the issue. Thanks!
I did notice that if two directional lights are present in the scene, PhysicalSky seems to receive a random directional light, and doesn't support multiple directional lights...
I suspect because of how the inputs are exposed, that properly supporting multiple directional lights in the sky shader would be messy with lots of duplicate code, and that's why not even the built-in sky shaders support multiple directional lights.
In my opinion, It would be more straightforward if lights were an array (or accessor function)... then you'd simply start out with the night sky texture and add the contribution from each light on top. Then, instead of using an if statement around LIGHT0_ENABLED and copying and pasting duplicate code for each directional light, it would be a simple matter of looping through each light and adding its influence...

I did notice that if two directional lights are present in the scene, PhysicalSky seems to receive a random directional light, and doesn't support multiple directional lights.

Please open another bug report with an MRP.

I suspect because of how the inputs are exposed, that properly supporting multiple directional lights in the sky shader would be messy with lots of duplicate code, and that's why not even the built-in sky shaders support multiple directional lights.

Supporting multiple lights is easy. Just look at the ProceduralSkyShader which supports up to 4. The reason the PhysicalSkyShader only supports one sun is because earth only has one sun, not because of a technical limitation.

What’s the correct steps for getting PhysicalSky to show anything but black? I’ve tried add a DirectionalLight3D and it’s still black, does it need to be positioned correctly?

@elvisish It should have an energy above 0 and it should be pointing somewhat downwards

@elvisish It should have an energy above 0 and it should be pointing somewhat downwards

Thanks, I found it started working as soon as I added a texture2d node to night sky, but I didn't even specify a texture, just added the resource lol


Add document describes the new feature that Incremental Snapshot Framework for Oracle CDC Connector

Is your feature request related to a problem? Please describe.
Add document describes the new feature that Incremental Snapshot Framework for Oracle CDC Connector
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

#1719


Unable to pass ref to ModalBody

components: ModalBody
reactstrap version #8.9.0
import method es
react version #16.14.0
bootstrap version #4.5.3

What is happening?
When trying to add a ref to ModalBody it remains nulll
What should be happening?
The ref should be passed either as ref or innerRef.
Steps to reproduce issue

Create a ref with const modalBodyRef = useRef(null);
Create a Modal
Add ModalBody as a child to the Modal passing the ref from step 1
Setup logging using useEffect

Error message in console
None, consoling out the ref just shows null
Code
Example File:
import React, { useRef, useEffect } from 'react';
import { Modal, ModalBody } from 'reactstrap';

const TestModal = () => {
  const modalBodyRef = useRef(null);
  useEffect(() => {
    console.log({ modalBodyRef });
  });

  return (
    <Modal>
      <ModalBody ref={modalBodyRef}>This is the body of the Modal</ModalBody>
    </Modal>
  );
};

export default TestModal;

ModalBody currently doesn't accept refs.  Interested in sending a PR?

I can give it a shot


Fix function header typos interfering with docs generation

Good catches. Coincidentally, I'm currently rewriting my docs generator, and the new one just caught these yesterday. I'm not quite ready to commit my new docs generator, so I'll merge this in the meantime.


PSNR

What is the official PSNR value for the small dataset you provided?

https://github.com/zhaofuq/LOD-3DGS/issues/9
This is the value generated by my self-developed algorithm, and I feel that the PSNR is too high, which is somewhat abnormal.

The scene is a bit blurry, maybe 3000 images have only been iterated for 3 weeks, which is too few

This is the value generated by my self-developed algorithm, and I feel that the PSNR is too high, which is somewhat abnormal.

The PSNR is correct. The value during training is a bit higher than that during evaluation.


Upgrade requirements

Codecov Report

Merging #44 (778e723) into main (9778aa5) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #44   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines           50        50
  Branches         6         6
=========================================
  Hits            50        50

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 9778aa5...778e723. Read the comment docs.


Integrate SAWS

Here's a first cut at integrating SAWS into aws-shell.

Styled autocompletion menus
Bottom toolbar options

Placeholder options for now, curious what others think might be good options

New fish-style completions

Toolbar: https://github.com/awslabs/aws-shell/issues/26
Lexer: https://github.com/awslabs/aws-shell/issues/27
Fish completions: https://github.com/awslabs/aws-shell/issues/28
Persistent command history: https://github.com/awslabs/aws-shell/issues/29

The linked issues are now resolved/merged.
Closing this ticket.


Don't enable nix-bash-completions when using Nix 2.4

Motivation for this change
Nix 2.4 has its own completion script which collides with nix-bash-completions.
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Nix 2.4 does not conflict with nix-zsh-completions ?

No, it doesn't provide any zsh completion support.


EAS CLI Apple Developer Authentication Fails

Build/Submit details page URL
No response
Summary
I submitted a build via EAS cli with the following command: eas build --profile internalDevelopment --platform ios, and was asked for a 2-factor code. I didn't have my 2-factor code handy, so I control+c'd the terminal window. After I had my 2-factor code, I tried logging in again, and after inputting my password, I received the following error from the CLI:
Authentication with Apple Developer Portal failed!     Error: getaddrinfo ENOTFOUND     developer.apple.com     Code: ENOTFOUND
I ran the command again with the EXPO_NO_KEYCHAIN=1 env variable, and was asked for my two-factor code. However, after inputting a successful two-factor code, I saw the following output.
› Saving Apple ID password to the local Keychain   Learn more ✔ Logged in New session Authentication with Apple Developer Portal failed!     Error: getaddrinfo ENOTFOUND     developer.apple.com     Code: ENOTFOUND error Command failed with exit code 1.
Please let me know what I need to do to fix this, or if Apple's servers are experiencing problems. Thank you.
Managed or bare?
Bare
Environment
expo-env-info 1.0.5 environment info:
System:
OS: macOS 12.4
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 14.18.3 - /usr/local/bin/node
Yarn: 1.22.17 - /opt/homebrew/bin/yarn
npm: 8.5.0 - ~/.npm-global/bin/npm
Managers:
CocoaPods: 1.11.2 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.4, iOS 15.4, macOS 12.3, tvOS 15.4, watchOS 8.5
IDEs:
Android Studio: 2020.3 AI-203.7717.56.2031.7935034
Xcode: 13.3.1/13E500a - /usr/bin/xcodebuild
npmPackages:
expo: ~44.0.0 => 44.0.5
react: 17.0.1 => 17.0.1
react-dom: 17.0.1 => 17.0.1
react-native: 0.64.3 => 0.64.3
react-native-web: 0.17.1 => 0.17.1
npmGlobalPackages:
eas-cli: 0.47.0
expo-cli: 5.2.0
Expo Workflow: bare
Error output
› Log in to your Apple Developer account to continue ✔ Apple ID: …<EMAIL_ADDRESS>› Restoring session<EMAIL_ADDRESS>› Session expired Local session › Using password for<EMAIL_ADDRESS>from your local Keychain   Learn more ✖ Logging in... Authentication with Apple Developer Portal failed!     Error: getaddrinfo ENOTFOUND     idmsa.apple.com     Code: ENOTFOUND error Command failed with exit code 1.
Reproducible demo or steps to reproduce from a blank project
See summary.

It looks like an intermittent issue with Apple servers. Is this still not working for you? Are you using some kind of proxy?

It's working again now. Thanks!


what hardware configuration is needed to run scroll-prover?

i've watched Ye's speech about Scroll architecture, and now i wanna run scroll-prover, so i am curious that what hardware configuration is needed? Is it really need 500+ DRAM and 8+ GB GPU memory? And what hardware configuration is when dev team testing this repo (circuit, prover, verifier, etc.) ?

I was getting Out of Memory errors and then bumped up to a 500MB RAM instance and it was able to complete.


Problems installing/opening ASReview -

Describe the bug
After installing python and ASReview I get the following error during installing ASreview:
WARNING: The script asreview.exe is installed in 'C:\Users\VNOB-0716\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
To Reproduce
Unistalled ASreview and installed it again but same error remains. Try to open ASreviw via the folder of python but that didnt work either.
Screenshots
If applicable, add screenshots to help explain your problem.

Version information
Windows

python 3.11.3
ASReview 1.0

Additional context
Had some problem with pip before but did manage to fix that.

Hi @YNoteboom. Try adding C:\Users\VNOB-0716\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310 to your 'PATH' in environment variables

Have you tried the solution offered here: https://asreview.readthedocs.io/en/latest/troubleshooting.html#unknown-command-pip?

Yes, thank you so much. Did not found the 'read the docs' but will use in future, very helpfull!
This was the solution:
python -m asreview lab


Add license to output of pip show

This PR adds license info to the output of the pip show globus_action_provider_tools command:
Before:
Name: globus-action-provider-tools
Version: 0.11.2
Summary: Tools to help developers build services that implement the Action Provider specification.
Home-page: None
Author: Jim Pruyne
Author-email<EMAIL_ADDRESS>License: None
Location: /Users/uriel/Projects/github.com/globus/action-provider-tools/.venv/lib/python3.6/site-packages
Requires: pybase62, isodate, jsonschema, globus-sdk, dogpile.cache, pyyaml, pydantic, arrow
Required-by:

After:
Name: globus-action-provider-tools
Version: 0.11.2
Summary: Tools to help developers build services that implement the Action Provider specification.
Home-page: None
Author: Jim Pruyne
Author-email<EMAIL_ADDRESS>License: Apache-2.0
Location: /Users/uriel/Projects/github.com/globus/action-provider-tools/.venv/lib/python3.6/site-packages
Requires: pybase62, isodate, jsonschema, globus-sdk, dogpile.cache, pyyaml, pydantic, arrow
Required-by:

@jimPruyne that's a really generous offer. I've switched the ordering for now and I'm open to making the jump at some point to list a globus address as the main contact.


docs: updated issues link

Description of changes: No issue available. Small documentation change so the issues link is the correct.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thank you :)


Push PyMoose to PyPI

Under what name? pymoose is taken, so is moose

Pushed a placeholder project under moose-python https://pypi.org/project/moose-python/

maybe we close this issue once we have a pymoose wheel pushed there?

heavily considering switching to maturin for building the pymoose rust bindings, because it seems to simplify publishing python/rust hybrid packages, via instructions from this post and this GH action

Has the package already been published?
I performed pip install python-moose, but executing import pymoose as pm gives me:
Traceback (most recent call last):
  File "/home/.../test_moose.py", line 5, in <module>
    import pymoose as pm
ModuleNotFoundError: No module named 'pymoose'

Ah sorry, seems like I lost track of this issue. The package has not been published to PyPI yet, but feel free to install from source using this cmake target in the meantime.


Fix Spelling Mistake in Colors Documentation

OnTertiary has a double entry when the second should be for OnTertiaryDark

Wrong branch.
Duplicate https://github.com/enisn/UraniumUI/pull/69


Internationalized Array String still not editable if existing instance does not exist

Describe the bug
When using an internationalized string field in an array field, the field is uneditable and says This internationalized field currently has no translations.
This issue has been reported previously here #37 and appears to have been fixed #40, but it still exists for me on the latest release
A clear and concise description of what the bug is.
Expected behavior
When you add an internationalizesArrayString field to an array component, the field should allow you add translations
Screenshots
If applicable, add screenshots to help explain your problem.

Which versions of Sanity are you using?
Run sanity versions in the terminal and copy-paste the result here.
@sanity/cli (global)                   3.19.0 (up to date)
@sanity/document-internationalization   2.0.1 (up to date)
@sanity/eslint-config-studio            2.0.4 (latest: 3.0.1)
@sanity/icons                           2.4.1 (latest: 2.6.0)
@sanity/scheduled-publishing            1.2.1 (up to date)
@sanity/ui                              1.7.8 (latest: 1.8.3)
@sanity/vision                         3.19.0 (up to date)
sanity                                 3.19.0 (up to date)

sanity-plugin-internationalized-array 1.10.3

What operating system are you using?
Which versions of Node.js / npm are you running?
node v18.16.1

This happened to me too, first field I thought to try this on was a nested one, couldn't figure out why I couldn't add languages until I say @bobinska-dev workaround: https://github.com/sanity-io/sanity-plugin-internationalized-array/issues/37#issuecomment-1662392111


Rename Docs WG to Editorial Board

It seems there's consensus to rename the WG to “Editorial Board”. This PR does the rename in the docs.

[ ] Get the board itself to agree
[ ] Get SC sign-off

Get the board itself to agree

@Mariatta @willingc @nedbat @julienpalard
Not sure whether it is in scope here or best discussed as a separate issue, but there still appears to be some related potential for confusion around the "Documentation Team" versus the "Documentation community". The difference, if there is any, does not appear to be clearly defined in the charter and "team [members]" and "community [members]" seem to be used semi-interchangeably some places here, so I suggest instead of imply some kind of three-level hierarchy that doesn't seem to exist in practice, at least under these names.
Therefore, I suggest we either make the Documentation Team an actual GitHub team/align it with the Docs Triagers team, and make that clear in these documents, or just simplify things to just the Editorial Board and the wider Docs Community (or Docs Team, but using one term consistently).

According to the voting rules, the proposal was successful if we can count GitHub reviews as votes.
Do all members of the WG/Board agree that this is a suitable voting venue?
Or should a vote be held again somewhere else?
(I don't enjoy legalities, but this is an official-looking charter.)

I am fine with this counting as a voting venue.

This is now 18 months old and despite several approvals still in draft mode. Why is it stalled?

This PR is outdated and should be closed.
It is about renaming ring 2 as the Editorial Board, but PEP 732 added a new ring 3 called the EB instead:

https://peps.python.org/pep-0732/#motivation
Please could the board open a new PR to update this repo to reflect the current state after the PEP has been accepted?
The PEP also still needs to be marked as final, please could the board deal with that too?
Finally, how should people contact the board with questions? Will you create a repo, like the Steering and Typing Councils?

Just to update the community, that the editorial board probably won't be able to respond until January due to winter holiday break. We have a meeting scheduled in the second week of January where we will discuss how we will get organized and engage with the community.

Okay, closing this one. We will take care of it in the new year.


[QUESTION]  - using Depends() to mock function inside endpoint

First check
Hi,
I would like to do a unit test to validate the call from my endpoint and data that will be sent in the body of the request, but I can't replace my subscribe_service function with a mock, would that be possible?
Example
@newsletter_router.post(
    "/subscribe",
    response_model=NewsletterResponse,
    status_code=status.HTTP_201_CREATED,
)
async def subscribe_no_auth(
    subscribe_data: NewsletterBase,
    subscribe: subcribe_service = Depends()
):
    try:
        news = await subscribe(subscribe_data)

In this case, when I use depends within the function it interprets it as a query param, but I just didn't want it to be a query param it would be there just for me to try to overrides_dependencies with my mock.
Would it be possible?
Thanks

Hi @jonatasoli yeah, it will be possible, depends on which library you're using for the testing.
I assume, that you're using pytest or default unittest, if you're using one of them, please check the next references
pytest mock
unittest mock
And four your case, you particularly need to check unittest mock patch method.

Hello @myusko
I'm using pytest, so when I use pytest-mock it doesn't work in TestClient, because it uses my original function, so I thought about using override_dependences to make the mock, but then I need to use Depends in the function what is making it behave like a query..

@jonatasoli I faced the same issue and I solved the problem using mocking the function used in the depends.
Let me show you.
@newsletter_router.post("/subscribe")
async def subscribe_no_auth(
    subscribe_data: NewsletterBase,
    subscribe: subcribe_service = Depends(my_function))

def my_function_mock():
    return Mock()

@mock.patch('subscribe_no_auth', new=my_function_mock)
def test_subscribe_no_auth():
     pass

That's what I have meant, you don't need to mock the Depends class, you should mock the function which you are using inside the Depends.

@jonatasoli I faced the same issue and I solved the problem using mocking the function used in the depends.
Let me show you.

@newsletter_router.post("/subscribe")

async def subscribe_no_auth(

    subscribe_data: NewsletterBase,

    subscribe: subcribe_service = Depends(my_function))

def my_function_mock():

    return Mock()

@mock.patch('subscribe_no_auth', new=my_function_mock)

def test_subscribe_no_auth():

     pass

@KiraPC
i think i'm doing it wrong, when i do so subscribe subscribe_data becomes a mandatory query.

That's what I have meant, you don't need to mock the Depends class, you should mock the function which you are using inside the Depends.

so when i do that subscrobe_data in addition to focusing on the body also becomes a mandatory query i must be doing something wrong i think.

@jonatasoli
I'm not at computer now, anyway, I created a simple boilerplate with fastapi just this morning, and it includes also unittest, you could check it.
https://github.com/KiraPC/fastapi-mvc-boilerplate
Let me know if can be useful for you.

@KiraPC
I made a gist file just to show my current structure, it is similar to what you did, however I am not using classes I am using the functions directly.
In the case of my example it creates a query, in which case would I have to transform my service into a class?
https://gist.github.com/jonatasoli/9864abfd9bc3b4e992981647bdced614

@jonatasoli  Hi man, I think you have some confusion.
The FastApi Depends function invoke your target function when the endpoint is triggered.
So, in the case of your implementation, defining subscribe as Depends(subscribe_service) means that, when it is evaluated. subscribe is an instance of NewsletterCreateResponse.
But I think that is not what you expect.
So, using a class in this case, can do for you.
class SubscribeService:
     def __init__(self):
           pass

     async def your_magic_fn(self, news_data):
          # do your stuff here

@newsletter_router.post(
    "/subscribe",
    response_model=NewsletterCreateResponse,
    status_code=status.HTTP_201_CREATED,
)
async def subscribe_no_auth(
    subscribe_data: NewsletterBase,
    subscribe: SubscribeService = Depends()
):
    try:
        news = await subscribe.your_magic_fn(subscribe_data)
        return news
    except Exception as e:
        raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=_detail_msg)

I hope now that is clear for you.

Hi @KiraPC
I believe I understand, in my case subscribe_service needs to be inside a class to be able to just invoke the function.
Thanks.

@jonatasoli
Yes,
You need to do that because your function need an input parameter.
That is also why your endpoint expect a mandatory query parameter, that for use was NewsLetter model type.
Anyway, does that solved you issue?

Hello @KiraPC, yes thanks to explain :D

Thanks for the help here everyone! 👏  🙇
Thanks for reporting back and closing the issue @jonatasoli  👍

Sorry for the long delay! 🙈  I wanted to personally address each issue/PR and they piled up through time, but now I'm checking each one in order.


Hugo Version of Minima

Hey Adi. Thanks for making Minima and I've made a Hugo version of it. Check it out.

Wow, it's super neat!


Please add a horizontal split feature for the vscode integrated terminal

Please add a horizontal split feature for the vscode integrated terminal. An example of this is shown in the screenshot attached in the Terminator terminal emulator. In Terminator this can be activated by using Ctrl + Shift + O. This feature would complement the exsiting vertical Split Terminal feature in vscode. Thanks.

If you turn on the Secondary Side Bar, then drag your Terminal tab off the Panel onto the Secondary Side Bar, you'll find that split terminals have that orientation. See #116833.
Another technique is to split your editor area into two groups, one above the other. Then drag existing terminals into these groups. Or use the Create New Terminal in Editor Area command from the palette.

Thanks for the tips @gjsjohnmurray. It would be handy to have an integrated button for doing this type of split within the terminal panel, like exists already for the vertical split:

The method you suggested works OK as a work around though, but doesn't feel as neat as the existing vertical split method:

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Bump the golangci-lint version

What this PR does:

bump the golangci-lint version
fix the failed checks

Why we need it:
I found the golangci-lint panics in the CI with logs below.
  /home/runner/work/_temp/reviewdog-YGym2u/golangci-lint-1.46.2-linux-amd64/golangci-lint run --out-format line-number
  panic: load embedded ruleguard rules: rules/rules.go:13: can't load fmt

  goroutine 1 [running]:
  github.com/go-critic/go-critic/checkers.init.22()
  	github.com/go-critic/go-critic@v0.6.3/checkers/embedded_rules.go:47 +0x4b4
  /home/runner/work/_temp/reviewdog-YGym2u/reviewdog -f=golangci-lint -name=golangci -reporter=github-pr-check -filter-mode=added -fail-on-error=false -level=error

ref; https://github.com/pipe-cd/pipecd/actions/runs/12371025156/job/34526255488
I ran the make lint/go in my local, I got the error below.
ERRO Running error: context loading failed: failed to load packages: failed to load with go/packages: err: exit status 1: stderr: go: go.mod requires go >= 1.22.4 (running go 1.21.3; GOTOOLCHAIN=local)

Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

How are users affected by this change:
Is this breaking change:
How to migrate (if breaking change):

There are no warnings/errors at the CI logs.
https://github.com/pipe-cd/pipecd/actions/runs/12385095982/job/34570765468?pr=5434
Running golangci-lint with reviewdog 🐶 ...
  /home/runner/work/_temp/reviewdog-Vf41uH/golangci-lint-1.62.2-linux-amd64/golangci-lint run --out-format line-number
  /home/runner/work/_temp/reviewdog-Vf41uH/reviewdog -f=golangci-lint -name=golangci -reporter=github-pr-check -filter-mode=added -fail-on-error=false -level=error


bug提交测试

Version of js-screen-shot
1.3.0
Operating system and its version
MacOS
Browser and its version
12.11
Sandbox to reproduce
No response
What happened?
No response
报错信息
No response

Hello @MagicalProgrammer. Your feedback has been received, and you will be notified in the issue area when the problem is resolved.
你好 @MagicalProgrammer，已收到你反馈的问题，问题解决后将在issue区域通知你。