[WIP] Add support for dict overrides

Proposed changes
This PR updates the config manager and override validator to support dict overrides
Types of changes
What types of changes does your code introduce to agents-aea?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist
Put an x in the boxes that apply.

[x] I have read the CONTRIBUTING doc
[x] I am making a pull request against the develop branch (left side). Also you should start your branch off our develop.
[x] Lint and unit tests pass locally with my changes and CI passes too
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have checked that code coverage does not decrease.
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Codecov Report

Merging #284 (b831e33) into main (65a5a10) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #284   +/-   ##
=======================================
  Coverage   94.67%   94.67%
=======================================
  Files         312      312
  Lines       25276    25288   +12
=======================================
+ Hits        23929    23941   +12
  Misses       1347     1347

Flag
Coverage Δ

unittests
94.67% <100.00%> (+<0.01%)
:arrow_up:

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

Impacted Files
Coverage Δ

aea/configurations/manager.py
100.00% <100.00%> (ø)

aea/configurations/validation.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


amazon-ssm-agent: add the system's software to the path

Follow up to #342584.
Similarly to that PR, it is surprising that software which was installed by the user isn't available to a script run over ssm by default.
When executing commands with ssm, users will now have more predictable access to baked-in software instead of an extremely bare-minimum set currently there.
Description of changes

Things done

Built on platform(s)

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.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

[ ] Fits CONTRIBUTING.md.

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

The problem is that ssm by default executes /bin/sh and also doesn't spawn a login shell
You can at least change the shell in the AWS console to bash and that fixes the path issue too I think.
I wish ssm was a bit more well behaved. It also doesn't integrate with PAM and thus misses logind session management etc

That makes sense... pretty annoying. Thank you, @arianvp!

btw @arianvp do you think this and #342584 are backport worthy?

Yeh I think they're fine to backport? I wouldn't expect this to break anything


should we remove support for Go 1.8?

Go 1.8 is not officially supported anymore and it's showing side effects due to it. Running go lint on travis will either fail on the old import path like this:
$ go get -u github.com/golang/lint/...
package github.com/golang/lint: code in directory /home/travis/gopath/src/github.com/golang/lint expects import "golang.org/x/lint"
package github.com/golang/lint/golint: code in directory /home/travis/gopath/src/github.com/golang/lint/golint expects import "golang.org/x/lint/golint"

or using the new import path we error out like this:
$ go get -u golang.org/x/lint/golint
# golang.org/x/tools/go/internal/gcimporter
../../../golang.org/x/tools/go/internal/gcimporter/bexport.go:212: obj.IsAlias undefined (type *types.TypeName has no field or method IsAlias)

I'm running into these issues with ocsql and need to either set-up a vendored linter for 1.8 or deprecate 1.8 if we don't officially support it anymore. The README of opencensus-go still lists support for 1.8 and up. According to the opencensus.io quickstart guides we're at 1.9 and up.
Another thing I noticed is that we currently only test the opencensus-go repo against 1.11 (both Travis and AppVeyor) where our travis.yml comments AppVeyor as testing 1.8 (which it doesn't).
Are we following the official Go language support schedule or are we more conservative (which I hope)? If we are, we should even deprecate support for Go 1.9 which sounds rather drastic.
@rakyll @bogdandrutu @ramonza @odeke-em

We can remove the 1.8 support. If 1.8 support is a huge breaking issue for anyone, please update this issue with your concerns and see how we can help. The entire ecosystem is adopting a support model that aligns with the Go's official support model. I assume more significant components will be already broken if are already on 1.8.

Stated requirements now at Go 1.9 or above.


Feature/unit tests/infra 30040/fields tests

unit tests for standard_lib/fields_tests

LGTM

:tada: This PR is included in version 1.6.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[Monitor] Make Monitor exception handler case insensitive.

Partially address #6120. The rest of that issue belongs with the service team.

This checklist is used to make sure that common guidelines for a pull request are followed.

[X] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

[X] I adhere to the Command Guidelines.

View a preview at https://prompt.ws/r/Azure/azure-cli/6301
This is an experimental preview for @microsoft users.


How to handle it error about python3 bin/train.py -cn lama-fourier location=places_standard?

[2023-04-06 16:36:06,834][main][CRITICAL] - Training failed due to unexpected EOF, expected 4658175 more bytes. The file might be corrupted.:
Traceback (most recent call last):
File "bin/train.py", line 50, in main
training_model = make_training_model(config)
File "/home/zrr/lama/saicinpainting/training/trainers/init.py", line 22, in make_training_model
return cls(config, **kwargs)
File "/home/zrr/lama/saicinpainting/training/trainers/default.py", line 32, in init
super().init(*args, **kwargs)
File "/home/zrr/lama/saicinpainting/training/trainers/base.py", line 110, in init
self.loss_resnet_pl = ResNetPL(**self.config.losses.resnet_pl)
File "/home/zrr/lama/saicinpainting/training/losses/perceptual.py", line 96, in init
segmentation=segmentation)
File "/home/zrr/lama/models/ade20k/base.py", line 136, in get_encoder
return ModelBuilder.build_encoder(arch=arch_encoder, fc_dim=fc_dim, weights=path)
File "/home/zrr/lama/models/ade20k/base.py", line 94, in build_encoder
torch.load(weights, map_location=lambda storage, loc: storage), strict=False)
File "/home/zrr/.conda/envs/lama/lib/python3.6/site-packages/torch/serialization.py", line 608, in load
return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
File "/home/zrr/.conda/envs/lama/lib/python3.6/site-packages/torch/serialization.py", line 794, in _legacy_load
deserialized_objects[key]._set_from_file(f, offset, f_should_read_directly)
RuntimeError: unexpected EOF, expected 4658175 more bytes. The file might be corrupted.

Hey, unfortunately not enough info to help


Calculation of advection with area expansion?

Might be that I'm missing something obvious as always, but I'm wondering if there's a potential issue in the calculation of the advection of the conserved quantities when there's an area expansion.  For example, for rho, the code is essentially (starting on line 2283 in eqns.cpp):
fCrossSection[0] = CalculateCrossSection( CellProperties.s[0]/Params.L );
fCrossSection[1] = CalculateCrossSection( CellProperties.s[1]/Params.L );
fCrossSection[2] = CalculateCrossSection( CellProperties.s[2]/Params.L );
fCellVolume = fCrossSection[1] * CellProperties.cell_width;
LowerValue = CellProperties.rho[0] * CellProperties.v[0];
UpperValue = CellProperties.rho[2] * CellProperties.v[2];
CellProperties.rho_term[0] = - ( UpperValue - LowerValue ) / fCellVolume;
CellProperties.drhobydt = CellProperties.rho_term[0];

which seems to be

Should it be this?

That is, change the numerator as such:
LowerValue = CellProperties.rho[0] * CellProperties.v[0] * fCrossSection[0];
UpperValue = CellProperties.rho[2] * CellProperties.v[2] * fCrossSection[2];

Or what I am missing?

It’s okay. The advected quantities are actually pre-multiplied by the cross-section before the values (Q1, Q2, etc.) used for the advection scheme (Barton’s method) are calculated. See lines 1642 – 1645 in eqns.cpp, for example.
From: Jeffrey Reep @.>
Sent: Monday, August 19, 2024 10:27 PM
To: rice-solar-physics/HYDRAD @.>
Cc: Subscribed @.***>
Subject: [rice-solar-physics/HYDRAD] Calculation of advection with area expansion? (Issue #107)
Might be that I'm missing something obvious as always, but I'm wondering if there's a potential issue in the calculation of the advection of the conserved quantities when there's an area expansion. For example, for rho, the code is essentially (starting on line 2283 in eqns.cpp):
fCrossSection[0] = CalculateCrossSection( CellProperties.s[0]/Params.L );
fCrossSection[1] = CalculateCrossSection( CellProperties.s[1]/Params.L );
fCrossSection[2] = CalculateCrossSection( CellProperties.s[2]/Params.L );
fCellVolume = fCrossSection[1] * CellProperties.cell_width;
LowerValue = CellProperties.rho[0] * CellProperties.v[0];
UpperValue = CellProperties.rho[2] * CellProperties.v[2];
CellProperties.rho_term[0] = - ( UpperValue - LowerValue ) / fCellVolume;
CellProperties.drhobydt = CellProperties.rho_term[0];
which seems to be
current.png (view on web) https://github.com/user-attachments/assets/1637ab94-40e9-4e8c-8189-806f46a7af97
Should it be this?
possible.png (view on web) https://github.com/user-attachments/assets/33562692-e70c-4fc8-baf8-8257384eb549
That is, change the numerator as such:
LowerValue = CellProperties.rho[0] * CellProperties.v[0] * fCrossSection[0];
UpperValue = CellProperties.rho[2] * CellProperties.v[2] * fCrossSection[2];
Or what I am missing?
—
Reply to this email directly, view it on GitHub https://github.com/rice-solar-physics/HYDRAD/issues/107 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ACC6C7QPU63NCCXTIYRRJZ3ZSKZRBAVCNFSM6AAAAABMY77G4WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGQ3TINRTG43DSMQ .
You are receiving this because you are subscribed to this thread.  https://github.com/notifications/beacon/ACC6C7SUI2F6BB3G6RB7UDLZSKZRBA5CNFSM6AAAAABMY77G4WWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHJG77ZPQ.gif Message ID: @.*** @.***> >

Aha!  That's what I'm missing.  Thank you, Steve!


Is there a way to check which one is the current route?

I have a navigation bar when I call Get.toNamed(routeName) whenever I tap on a button.
But I'd like to prevent that call when the currentRoute is the same as routeName.
Couldn't find a way to get the current route name except from within the middleware. Would be nice to get an accesor to the current route from Get directly, like Get.currentRoute or something

class MiddleWare {
static MiddleWare _instance;
factory MiddleWare() {
if (_instance == null) instance = MiddleWare.();
return _instance;
}
MiddleWare._();
static Routing _routing;
static Routing get routing => _routing;
static observer(Routing rt) {
_routing = rt;
}
}
class Foo {
yourMethod() {
if(MiddleWare.routing.current == routeName){
//Made anything
}
}
}

Awesome, thanks

Couple things:

Can't we just get Get.CurrentRoute? Would be much nicer.
Why do we have to do this and how does it work... seems like a bizarre solution (just curious)

Couple things:

Can't we just get Get.CurrentRoute? Would be much nicer. The currently selected page is an important part of global state, should be readily accessible?
Why do we have to do this (Create a Middleware class)... seems like a bizarre solution (just curious)

Currently Get.currentRoute does the job.
This issue is very old, it is version 1.0 of Get, at that time there were not even 1/3 of the resources that Get has today.

Ah, my bad. I assumed the list on pub.dev README was exhaustive.
Thanks for the framework, it's really impressive.


Expose Integration Flow Endpoint as API and Test the Flow

Tutorials: https://developers.sap.com/tutorials/cp-starter-isuite-api-management.html
Hello, the tutorial does not work when publishing the api on APIM. Every call returns a bad gateway error.
if there is any missing configuration, so please added it on tutorial so others can finish the tutorial (I believe this is the purpose)
Also, many other colleagues are having the same issue https://answers.sap.com/questions/13607305/api-management-error-502-bad-gateway.html?childToView=13774953.
Just to conclude, I believe tutorial and tool should be stable enough for developers to use. this create a high engagement and strong bonds with the dev community.

Colleagues, any update ?

I just found the solution.
the set of roles should be assigned to the user:
APIManagement.SelfService.Administrator
APIPortal.Administrator
APIPortal.Guest
APIPortal.Service.CatalogIntegration
AuthGroup.API.Admin
AuthGroup.API.ApplicationDeveloper
AuthGroup.APIPortalRegistration
AuthGroup.Content.Admin
AuthGroup.ContentAuthor
AuthGroup.SelfService.Admin
AuthGroup.Site.Admin
Integration_Provisioner
OpenConnectors_User
PI_Administrator
PI_Business_Expert
PI_Integration_Developer
PI_Read_Only
trial-content-developer


Improve query performance with HBase

fix #2177

@JackyYangPassion address this PR?

Is it still in progress?

Thank you everyone for reviewing and giving this PR #2364 to fix in the future.


CSS Variables Added Two Times

I use this configurations:
import { defineConfig } from "@unocss/vite";
import presetUno from "@unocss/preset-uno";
import { presetDue } from "duecss";

export default defineConfig({
  presets: [presetUno(), presetDue()],
  theme: {
    colors: {
      primary: {
        DEFAULT: "#943D40",
        50: "#DDACAE",
        100: "#D79D9F",
        200: "#CB8183",
        300: "#BF6467",
        400: "#B1494C",
        500: "#943D40",
        600: "#6C2D2F",
        700: "#451C1E",
        800: "#1D0C0C",
        900: "#000000",
      },
      accent: {
        DEFAULT: "#C3A19D",
        50: "#FFFFFF",
        100: "#FFFFFF",
        200: "#F1EAE9",
        300: "#E2D2D0",
        400: "#D2B9B6",
        500: "#C3A19D",
        600: "#AE807A",
        700: "#95615B",
        800: "#724A46",
        900: "#4F3430",
      },
    },
  },
});

but some css variables are applied two times:

Wow, never thought someone might actually use duecss! I will look into it.

This seems to be an issue of the UnoCSS JIT engine used. I couldn't reproduce the issue anymore.


feat: I’d like the “Remember Password for Browser Session” to be toggled on by default. I know it’s potentially less secure, but at least for now while we’re in alpha (with our warning already telling them they’re using at their own risk) I’d like to fall on the side of favoring UX.

Fixed in PR #31


Avoid allocations in boundary flux for parabolic RHS

The previous implementation caused allocations due to the slicing.

Credits for pin-pointing the allocations go to @jlchan, I just noticed this while working on the mortars & amr for parabolic terms.


Flutter Upgrade doesn't work as intended

Though there are newer versions of flutter channel beta, running flutter upgrade does not work.
I even tried running flutter channel to make sure I am on beta.
Steps to Reproduce
Run flutter upgrade

flutter upgrade
Flutter is already up to date on channel beta
Flutter 1.20.0 • channel beta • https://github.com/flutter/flutter.git
Framework • revision 916c3ac648 (13 days ago) • 2020-08-01 09:01:12 -0700
Engine • revision d6ee1499c2
Tools • Dart 2.9.0 (build 2.9.0-21.10.beta)

flutter doctor -v
[√] Flutter (Channel beta, 1.20.0, on Microsoft Windows [Version
    10.0.19041.450], locale en-US)
    • Flutter version 1.20.0 at C:\Users\Aneesh\flutter
    • Framework revision 916c3ac648 (13 days ago), 2020-08-01 09:01:12 -0700
    • Engine revision d6ee1499c2
    • Dart version 2.9.0 (build 2.9.0-21.10.beta)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at C:\Users\Aneesh\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.1
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 4.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b01)

[√] VS Code (version 1.48.0)
    • VS Code at C:\Users\Aneesh\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.13.2

[√] Connected device (3 available)
    • Web Server (web) • web-server • web-javascript • Flutter Tools
    • Chrome (web)     • chrome     • web-javascript • Google Chrome
      84.0.4147.125
    • Edge (web)       • edge       • web-javascript • Microsoft Edge
      84.0.522.58

• No issues found!

Did you have a stable Internet Connection  ?
I have also faced the same issue . Improving the Internet speed had fixed it 😀

You can navigate to the flutter folder in the terminal and run git pull.
After that you can run flutter upgrade again
This worked for me :)

@martinloesethjensen thanks, it worked
But I don't think this is supposed happen
So for know I'll keep this issue open as it may be a bug

I'd try running flutter upgrade --force
if it fails you may want to post the output of flutter upgrade -f -v

Hey @iapicca, in the flutter docs, we have been instructed to run flutter upgrade to upgrade our versions of flutter. However that doesn't work and it doesn't seem to be an issue from my side (i.e, internet error or git remote conflicts) so I assumed it as a bug. Please correct me if I am wrong

I believe for an issue to be workable should be reproducible
for example flutter upgrade -v could provide an insight about the underlying processes;
please consider that the issue you are describing might have been caused by changes in the root folder (more fixes)
in which case is definitely not a bug

@iapicca , @martinloesethjensen was able to reproduce this issue

I have not tried to reproduce it after I had the successful flutter upgrade to version 1.20.2

@martinloesethjensen , I followed your steps and it worked. I think this issue is only reproducible in flutter version 1.20.0 . But I can't be sure until I try to upgrade to the next beta

I doubt that without providing logs
this issue will be workable

@iapicca , sorry but we'll either have to wait for the next beta or if this is a problem with v1.20.0, then I won't be able to reproduce it

@sidrao2006 and @iapicca I just ran flutter downgrade and got to version 1.20.1 that was last active version.
After that I ran the flutter upgrade command without any issues.
I'm unsure to why it happened in the first place as I haven't made any changes to the flutter root 🤔

I will try to see if I can reproduce it with version 1.20.0

No success to reproduce it for me with 1.20.0

I am unable to downgrade to 1.20.0

@sidrao2006 you can run git checkout 1.20.0 and then you will be on the commit for that tag (840c920)
You can only run flutter upgrade when you are on either dev, stable, beta, and master, so because you would be in a detached state with the checkout as mentioned above, then you would have to run flutter channel.
I found out that when you run git describe --tags on the stable channel it will return the latest git tag for the stable branch. This would in this case be 1.20.2. So I don't think we can reproduce it. Unless there's some other way that I don't know of 😄
If this happens again in the future then I agree with @iapicca that providing more info with flutter upgrade -v would be the best.

@martinloesethjensen , yep. I could try to reproduce it by using flutter version 1.20.0

Note: This is a deprecated command and will be removed in a future update

Also, it leaves flutter in a detached state as well

Hi @sidrao2006
I see there's an open issue addressing the case you described.  https://github.com/flutter/flutter/issues/63485
Please follow up on that issue, I'm closing the current one as a duplicate.
If you disagree, please write in the comments and I will reopen it.
Thank you

Alright thanks


Improve the service section

Is your feature request related to a problem? Please describe.
The service section is not aligned with the theme of the website.

It doesn't look like the services are clickable. Rest of the clickable elements have a zoom in hover effect. So the continuity of the website and the user experience get effected.

The colour used in the background of each service also doesn't match with the colour pallete of the website.

Describe the solution you'd like.

We can remove the text that says "click to know more" instead add a zoom in hover effect that will hint the user that its clickable.

We can change it to the light blue that is used in the logo of the website. And the colour of icon of the services to the dark blue used in the website's logo.

Describe alternatives you've considered.
Instead of the flipping effect, we can just mention the description of each service in the front.
Add any other context or screenshots about the feature request here.
No response

Hey @TusharKesarwani , @ni5arga
I can solve this issue, as my skills are aligned with this issue,
Please assign me this issue, so that i can work on it.

Sure @ananya-sh

@agamjotsingh18 can you assign this task to me under GSSoC'23


feat(types): better local test context support

fix #1798.
This pr only changes types, no underlying JavaScript codes are altered.
This pr passed build and all tests on my local machine.

Thanks, I've found a better approach without changing the ChainableFunction signature (since it is exported and may be troublesome for dependencies). I also add a unit test. I'll open another pr soon.


[5.2] Fix logout when user doesn't use the "remember me" functionality

Fixes: https://github.com/laravel/framework/issues/12054

@crynobone  I guess this is the best we can do right now. Any additional thoughts?

So if the remember token is null it will never be refreshed? How would it ever be populated in the first place?

Just put a remember_token on your database table if you are autenticating that model.

In fact, it would be populated at login (if requested). But that's fair! To me isn't a problem. 👍  But I have saw a lot of people on forums with this issue (that generates a Query Exception).


Improve error messages

bold (here) message
only 10 surrounding tokens printed around the error location
no implied currly braces in loader error message

Great, thank you!


missing README file in /solr

the main README file points to the README files in the subdirs, but there is no such file in /solr

there seems to be a README file now but it does not contain any helpful info


How to use Landmarks

Hi,
Currently I'm trying to use the lamdmarks feature, and so have written a node that publishes LandmarkList messages to /landmark. This works as intended, however, my implementation relies on a callback that detects said landmarks which only happens sparsely. As a result, Cartographer hangs during the times when no messages are published to this topic as it seems to consider landmarks with the same priority as sensor data from, i.e., a laser.
When no messages are published by my node, cartographer spams the following:
[/cartographer  WARN<PHONE_NUMBER>.562266708,<PHONE_NUMBER>.807942259]: W0626 15:02:53.000000 31787 ordered_multi_queue.cc:155] Queue waiting for data: (0, landmark)
When it receives a single message, this is outputted:
[/cartographer  INFO<PHONE_NUMBER>.665043171,<PHONE_NUMBER>.912012996]: I0626 15:02:23.000000 31787 ordered_multi_queue.cc:172] All sensor data for trajectory 0 is available starting at '636603310389015659'.
Afterwards, it continues to log the "Queue waiting..." message.
Does landmark data have to be constantly published or does Cartographer also support feeding in single landmarks at sparse timestamps? I didn't find documentation on how to do it correctly.

In order to make Cartographer calculations deterministic we strictly time order sensor data using the collator. But you only know in what order to publish data when you have already seen data from all other sources. Sparse sources pose a problem to that strategy.
You should publish empty landmark messages when you have nothing observed to unblock the queue. BTW this is also done for fixed frame poses (e.g. GPS): if there is no fix, you publish an empty fixed frame pose message.

Thanks for the quick response-- this seems to have fixed all the issues.
Does Cartographer require a specified frequency, or is 10Hz okay?

Hmm, I’d probably match my slowest sensor, so 10Hz sounds right.
On Tue, Jun 26, 2018 at 4:40 PM George Hartt<EMAIL_ADDRESS>wrote:

Thanks for the quick response-- this seems to have fixed all the issues.
Does Cartographer require a specified frequency, or is 10Hz okay?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/googlecartographer/cartographer_ros/issues/909#issuecomment-400333978,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AX4C8RfAMEWFy-GAmqY6xlEUoqnU_tStks5uAkfvgaJpZM4U37mp
.

--
Christoph Schütte
Software Engineer
<EMAIL_ADDRESS>+49 89 839309134
Google Germany GmbH
Erika-Mann-Straße 33
80636 München
Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Diese E-Mail ist vertraulich.  Vielen Dank.
This e-mail is confidential. If you are not the right addressee please do
not forward it, please inform the sender, and please erase this e-mail
including any attachments. Thanks.

Thanks for your help @cschuet =)

Hi，could you provide a demo that publishes the landmarker data. Thinks.
My email address is<EMAIL_ADDRESS>

Does cartographer expect the landmark observations to contain the pose in the world (map) frame?
I actually would like to provide the observations only in the sensor frame (e.g. base_laser_link).

@mojovski No, the landmark observations are relative to the tracking frame of Cartographer.
Here you can see the respective landmark cost function that is minimized during optimization: https://google-cartographer.readthedocs.io/en/latest/cost_functions.html#landmark-cost-function
Implementations of these cost functors are here: https://github.com/googlecartographer/cartographer/tree/master/cartographer/mapping/internal/optimization/cost_functions

#1077 this might help. I uploaded a bag file with landmarks and instructions how to launch it.

Thanks for your help @pifon2a

An additional question:
Currently, I think every landmark has to deliver a unique ID. If the same landmark is observed again, the same ID needs to be provided. However, quite often there is the case that the camera is able to detect the object and classify it into groups. E.g. the camera is able to detect traffic signs and to state that this sign is a "priority road sign" but it's not able to say if it's exactly the same sign as seen before.
Do you know if there is a possibility to handle these classified but indistinguishable types of landmarks?

@Lorjuo, currently we do not support non-unique landmarks, but we have plans for 2019 to experiment with object instance reconciliation and also with tracking non-static objects.

Hi @Lorjuo and @pifon2a we identify the landmarks by its position assuming, that there is only one within the support of x meters. This makes them "unique". However, I dont have results demonstrating the improvement of the robot localization yet. To come probably next week or next year. ;)


Optizoom brakes desktop emergency leave gesture

Describe the bug?
Optizoom brakes desktop emergency leave gesture
To Reproduce

Download Optizoom
Hold down shift and double tap escape quickly
you will notice that the gesture does not make you leave from the current world you're in

Expected behavior
holding down shift and double tapping escape should make me leave the current world I'm in as usual
Screenshots
No response
Resonite Version Number
Beta 2<IP_ADDRESS>8
What Platforms does this occur on?
Windows
What headset if any do you use?
Desktop
Log Files
DESKTOP-DAN95E7 - 2<IP_ADDRESS>8 - 2024-05-05 09_49_21.log
Additional Context
No response
Reporters
@epicEaston197

This might be because of a malformed config i don't know though

okay fix the config file to have proper enabled state but even when disabled I still can't do the emergency leave gesture

I ran into this as the ctrl-tab world switching stopped working with only optizoom running.
Looks to cause Userspace.OnCommonUpdate() to not continue to run, so all the keybinds that are defined in there do not work.
such as the ones mentioned above, f3 debug and world switching.
6:13:14 AM.497 (  0 FPS)	Exception when Updating object: Element: ID9400, Type: FrooxEngine.Userspace, World: Userspace, IsRemoved: False, IsDestroyed: False, IsDisposed: False, Enabled: True
Element: ID8900, Type: FrooxEngine.Slot, World: Userspace, IsRemoved: False, Slot name: Userspace, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID2400, Type: FrooxEngine.Slot, World: Userspace, IsRemoved: False, Slot name: Root, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID0, Type: FrooxEngine.World, World: Userspace, IsRemoved: False

Exception:
System.NullReferenceException: Object reference not set to an instance of an object
  at Optizoom.Optizoom+SpyglassUserspacePatch.Update (FrooxEngine.Userspace __instance) [0x00098] in <767c6f8317f64f778e51e6535ee6d471>:0
  at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.FrooxEngine.Userspace.OnCommonUpdate_Patch1(FrooxEngine.Userspace)
  at FrooxEngine.ComponentBase`1[C].InternalRunUpdate () [0x0001f] in <c3737839dc104e58a55be26c246bcfac>:0
  at FrooxEngine.UpdateManager.RunUpdates () [0x0007c] in <c3737839dc104e58a55be26c246bcfac>:0 ```

I ran into this as the ctrl-tab world switching stopped working with only optizoom running. Looks to cause Userspace.OnCommonUpdate() to not continue to run, so all the keybinds that are defined in there do not work. such as the ones mentioned above, f3 debug and world switching.
6:13:14 AM.497 (  0 FPS)	Exception when Updating object: Element: ID9400, Type: FrooxEngine.Userspace, World: Userspace, IsRemoved: False, IsDestroyed: False, IsDisposed: False, Enabled: True
Element: ID8900, Type: FrooxEngine.Slot, World: Userspace, IsRemoved: False, Slot name: Userspace, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID2400, Type: FrooxEngine.Slot, World: Userspace, IsRemoved: False, Slot name: Root, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID0, Type: FrooxEngine.World, World: Userspace, IsRemoved: False

Exception:
System.NullReferenceException: Object reference not set to an instance of an object
  at Optizoom.Optizoom+SpyglassUserspacePatch.Update (FrooxEngine.Userspace __instance) [0x00098] in <767c6f8317f64f778e51e6535ee6d471>:0
  at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.FrooxEngine.Userspace.OnCommonUpdate_Patch1(FrooxEngine.Userspace)
  at FrooxEngine.ComponentBase`1[C].InternalRunUpdate () [0x0001f] in <c3737839dc104e58a55be26c246bcfac>:0
  at FrooxEngine.UpdateManager.RunUpdates () [0x0007c] in <c3737839dc104e58a55be26c246bcfac>:0 ```

Just as an FYI, the CTRL+Tab breaking (without the exception) happens without any mods installed for me.

Works fine here with no mods or with all but optizoom.

I ran into this as the ctrl-tab world switching stopped working with only optizoom running. Looks to cause Userspace.OnCommonUpdate() to not continue to run, so all the keybinds that are defined in there do not work. such as the ones mentioned above, f3 debug and world switching.
6:13:14 AM.497 (  0 FPS)	Exception when Updating object: Element: ID9400, Type: FrooxEngine.Userspace, World: Userspace, IsRemoved: False, IsDestroyed: False, IsDisposed: False, Enabled: True
Element: ID8900, Type: FrooxEngine.Slot, World: Userspace, IsRemoved: False, Slot name: Userspace, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID2400, Type: FrooxEngine.Slot, World: Userspace, IsRemoved: False, Slot name: Root, T: [0; 0; 0], R: [0; 0; 0; 1], S: [1; 1; 1], ActiveSelf: True, IsDestroyed: False
Element: ID0, Type: FrooxEngine.World, World: Userspace, IsRemoved: False

Exception:
System.NullReferenceException: Object reference not set to an instance of an object
  at Optizoom.Optizoom+SpyglassUserspacePatch.Update (FrooxEngine.Userspace __instance) [0x00098] in <767c6f8317f64f778e51e6535ee6d471>:0
  at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.FrooxEngine.Userspace.OnCommonUpdate_Patch1(FrooxEngine.Userspace)
  at FrooxEngine.ComponentBase`1[C].InternalRunUpdate () [0x0001f] in <c3737839dc104e58a55be26c246bcfac>:0
  at FrooxEngine.UpdateManager.RunUpdates () [0x0007c] in <c3737839dc104e58a55be26c246bcfac>:0 ```

Interestingly I haven't been able to get optizoom to throw this error, though I was able to experience the world switch and close keybinds not working
Annoyingly it's hard to pinpoint what specifically causes the problem because rebuilding the mod seems to fix it for me
@epicEaston197 could you try this version of the mod, it's just a rebuild against the latest resonite version
Optizoom.zip

Yep my issue is fixed thanks!

I'll also add that just swapping to the rebuilt dll appears to have fixed it for me as well.


Skips through every song

When a song is clicked to be played, it doesn't play it just skips through every single song it can play/skip through.

This is a known issue. We are occasionally hitting the SoundCloud rate limits, we've reached out to SoundCloud to have them increased but have not heard back from them yet.
Please follow the progress at https://github.com/gillesdemey/Cumulus/issues/89


Add Json.Folder

This change introduces a new way to fold Json values that's a little more verbose than Json#fold but is faster and involves fewer allocations. It also seems to perform better than pattern matching on the (package-private) Json constructors in the benchmark included here:
FoldingBenchmark.withFold          thrpt   40   6073.949 ±  47.519  ops/s
FoldingBenchmark.withFoldWith      thrpt   40  11401.499 ±  89.627  ops/s
FoldingBenchmark.withPatternMatch  thrpt   40   7537.532 ± 219.453  ops/s

The allocation rates also look pretty good:
FoldingBenchmark.withFold:gc.alloc.rate.norm          thrpt  5  150744.081 ±  0.003  B/op
FoldingBenchmark.withFoldWith:gc.alloc.rate.norm      thrpt  5  117752.045 ±  0.008  B/op
FoldingBenchmark.withPatternMatch:gc.alloc.rate.norm  thrpt  5  132024.068 ±  0.005  B/op

The benchmark is intended to test idiomatic use of the three styles.
The primary motivation for this change is #654—I'm adding a couple new Json constructors and would prefer to avoid using pattern matching even internally, but I don't want to pay the extra cost of fold. I believe it's a reasonable addition even apart from #654, though.
I've also added asNull and withNull methods for the sake of consistency, since I've found myself wanting these a couple of times recently.
After this addition the recommendation would continue to be something like "start with fold or the asX or withX methods" but with a new "unless you know the performance cost is unacceptable, in which case there's foldWith".

Codecov Report

Merging #656 into master will increase coverage by 0.44%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #656      +/-   ##
==========================================
+ Coverage   83.68%   84.13%   +0.44%
==========================================
  Files          70       70
  Lines        2090     2111      +21
  Branches      150      146       -4
==========================================
+ Hits         1749     1776      +27
+ Misses        341      335       -6

Impacted Files
Coverage Δ

...les/core/shared/src/main/scala/io/circe/Json.scala
78.84% <100%> (+4.54%)
:arrow_up:

.../core/shared/src/main/scala/io/circe/Printer.scala
96.15% <100%> (+0.2%)
:arrow_up:

.../core/shared/src/main/scala/io/circe/Decoder.scala
90.25% <0%> (-0.37%)
:arrow_down:

...re/shared/src/main/scala/io/circe/JsonNumber.scala
96.84% <0%> (+1.05%)
:arrow_up:

...rc/main/scala/io/circe/shapes/SizedInstances.scala
92.85% <0%> (+14.28%)
: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 8fed678...0d5b8f8. Read the comment docs.

@vkostyukov Yep—the change is pretty small with this PR, but I've got a follow-up coming with some bigger improvements (In particular I'm thinking of adding an optional setting for printers that lets them reuse string builders via thread locals, which has a pretty big impact).

Nice @travisbrown! That sounds pretty cool - I'd probably be down to have that setting on by default in finch-circe.

@vkostyukov Yeah, I think for most users it would make sense, but I'm wary of cases where it could cause problems in application servers, so it'll probably be behind a printer.reuseStringBuilders option, at least for now.


chore: fix explore pills

SUMMARY
Multiple small cosmetic tweaks to Explore:

Use the alert color for the "Altered" pill instead of the current mustardy one
Add alert type to Label component. I didn't migrate the AlteredSliceTag to the new component yet as the dark colors are slightly off in the alert color (the outline is set to the dark color if the label has a click handler). Will do it in a follow up once the colors are sorted out.
Remove redundant tooltip from RowCount pill
Remove suffix prop from RowCount component for consistency and make rowCount prop optional
Use pluralized translation for RowCount: when row count is one, the result is "1 row", otherwise "2 rows" etc
Capitalize "cached" to "Cached" to be in line with "Altered" pill
Convert some tests from JS to TS and migrate from Enzyme to RTL.

AFTER
Changes after ("1 row"/"4 rows" (pluralized), same RowCount for Results and Chart container, no tooltip for RowCount pill, capitalized "Cached", yellow "Altered" pill)
https://user-images.githubusercontent.com/33317356/165481521-b76dc8a3-e508-4514-93c4-f7fc231fdd05.mp4
The new Label storybook with alert type:

The new RowCount storybook with singular/plural entries and removed suffix:

BEFORE
Changes after ("1 rows"/"4 rows" (always pluralized), different RowCount for Results and Chart container, redundant tooltip for RowCount pill, uncapitalized "cached", mustardy "Altered" pill)
https://user-images.githubusercontent.com/33317356/165482105-0d6e814d-53b9-4219-843c-0d764d5b449f.mp4
Previous storybooks:

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Ping @kasiazjc for design review!

I wonder if the text should be black for the yellow label (same as gray label). What do you think @kasiazjc?

I wonder if the text should be black for the yellow label (same as gray label).

Here's what it would look like:

We may have a new issue with WCAG contrast between the white/yellow (which is why things went mustard-y in the first place), but we have to pick our battles.

Here's that "white on the new yellow background" test that fails: https://webaim.org/resources/contrastchecker/?fcolor=FFFFFF&bcolor=FCC700

We may have a new issue with WCAG contrast between the white/yellow (which is why things went mustard-y in the first place), but we have to pick our battles.

I personally prefer the yellow/black text version but I'm fine with either version 😉

Let's go with the grey option so it passes the accessibility check.

Let's go with the grey text so it passes the accessibility check.

Will update accordingly, thanks @jess-dillard !

For transparency, here's the check based on the new foreground:
https://webaim.org/resources/contrastchecker/?fcolor=323232&bcolor=FCC700


Fixed linting issue

This fixes the linting issue in file src/api/user.js.
The issue was that decodedToken was initialize in the try catch which had let to 'decodedToken' is not defined         no-undef error.

Could You please apply it to master first - then we'll merge it to develop as well?

OK, I'm releaseing develop to master - so it's fine


Update the OAuth error view name

the error view names were changed in https://github.com/Jasig/cas/commit/c941a083875e96b79a951dec5b8cf1c44e8ea03c but not updated for OAuth.
This will need to be backported to 4.1 and 4.2

Done


[Event Request] Report 790 Calculate Inventory - OnBeforeQuantityOnHandBufferFindAndInsert2

Hi,
Would it be possible to get an OnAfterBOMBufferRoundCostsOnBeforeBOMBufferModify event in Report 790 (Calculate Inventory), like this :
dataitem("Warehouse Entry"; "Warehouse Entry")
            {
                DataItemLink = "Item No." = FIELD("No."), "Variant Code" = FIELD("Variant Filter"), "Location Code" = FIELD("Location Filter");

                trigger OnAfterGetRecord()
                begin
                    if not "Item Ledger Entry".IsEmpty() then
                        CurrReport.Skip();   // Skip if item has any record in Item Ledger Entry.

                    Clear(QuantityOnHandBuffer);
                    QuantityOnHandBuffer."Item No." := "Item No.";
                    QuantityOnHandBuffer."Location Code" := "Location Code";
                    QuantityOnHandBuffer."Variant Code" := "Variant Code";

                    GetLocation("Location Code");
                    if Location."Bin Mandatory" and not Location."Directed Put-away and Pick" then
                        QuantityOnHandBuffer."Bin Code" := "Bin Code";

                    //******START
                    OnBeforeQuantityOnHandBufferFindAndInsert2(QuantityOnHandBuffer, "Warehouse Entry", LotSerialNoBreakDown);
                    //******END
                    OnBeforeQuantityOnHandBufferFindAndInsert(QuantityOnHandBuffer, "Warehouse Entry");
                    if not QuantityOnHandBuffer.Find then
                        QuantityOnHandBuffer.Insert();   // Insert a zero quantity line.
                end;
            }

[IntegrationEvent(false, false)]
    local procedure OnBeforeQuantityOnHandBufferFindAndInsert2(var QuantityOnHandBuffer: Record "Inventory Buffer"; WarehouseEntry: Record "Warehouse Entry"; LotSerialNoBreakDown: Boolean)
    begin
    end;

What is this LotSerialNoBreakDown variable that you request here and in most of your other requests for this report?
I see no such variable in baseapp for any country. Which version are you using?

Sorry, I did not see this variable before. I close the issue and investigate further on my side.


feature(cli): don't block forever waiting on stdin

Description:
I use the swc cli via bazel. I noticed today that bazel is unable to supply input to the compile subcommand via stdin because it does not pass this check in the current code:
if atty::is(atty::Stream::Stdin) {
    return None;
}

It seems you probably do not want this check to remain in the long-run, as, as far as I understand it, it means that processes not invoked via a TTY will not be able to supply input for compilation via stdin, which seems like an unwanted limitation.
It got me thinking about how supplying input via stdin probably should work for the compile subcommand. I'm not at all sure that I got it right, but I wanted to try an alternative; so here it is.
In this PR I propose the following:

If files are supplied as arguments, stdin is ignored. The user has indicated he/she wants to compile the files listed explicitly as arguments.
If no files are supplied as arguments, the user is indicating that he/she wants input to be read from stdin.
However, because you don't want reading from stdin to block forever in the case where users accidentally call swc compile with no file arguments and without passing information over stdin, you probably want reading from stdin to timeout after a reasonable period of time and report an error.

It turns out that reading from stdin with a timeout is actually an interesting problem, but this PR accomplishes it using a mini event loop from mio on unix and the standard Windows API on windows.
An alternative design would be to use an asynchronous runtime such as tokio to add timeouts, but that would involve many other changes to the current structure. Since you don't currently have an architecture that uses an async runtime, I opted to implement "reading from stdin with a timeout" without using one, but depending on what you think I also could see benefits in re-architecting the program to use tokio.
Note: I have another "cleanup" PR outstanding (#5003). This does not base itself off of that, but rather off of the current code. If #5003 lands (even partially), I'll rebase these changes on top of that.

BREAKING CHANGE:
This changes the API for reading input for compilation as described above.

Related issue (if exists):

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Brian Myers seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Cannot find sun.net.www.protocol.file.FileURLConnection

The part that's copying the model files (without running from jar build) is using sun.net.www.protocol.file.FileURLConnection. But this thing seems to be outdated at some point. So if run 'mvn pacakge' without -DskipTests, it will try to use sun.net.www.protocol.file.FileURLConnection and thus fail.
I haven't yet found a replacement of sun.net.www.protocol.file.FileURLConnection from search. This is a piece of copied exmaple code, so I don't really know how it works ;)
Thanks to anybody who knows how to fix this.

T E S T S
Running org.yinwang.pysonar.TestRefs
Verifying tests:
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.184 sec <<< FAILURE!
testRefs(org.yinwang.pysonar.TestRefs)  Time elapsed: 0.14 sec  <<< ERROR!
java.lang.IllegalAccessError: class org.yinwang.pysonar.$ (in unnamed module @0x4d18685a) cannot access class sun.net.www.protocol.file.FileURLConnection (in module java.base) because module java.base does not export sun.net.www.protocol.file to unnamed module @0x4d18685a
at org.yinwang.pysonar.$.copyResourcesRecursively($.java:200)
at org.yinwang.pysonar.Analyzer.copyModels(Analyzer.java:141)
at org.yinwang.pysonar.Analyzer.(Analyzer.java:71)
...

Found solution at https://github.com/playframework/playframework/issues/10883. Fixing..


Fix RangeMaintainingScrollPhysics

It now uses the scroll metrics as they stood at the end of the last frame.
It previously used a weird combination of the old extents and the newish position, which led to some weird effects when the position had been changed in expectation of a viewport or content dimension change.
Fixes https://github.com/flutter/flutter/issues/60288 again.

cc @goderbauer Would you mind reviewing this? It's the same patch as before plus an extra commit to fix review comments from the last PR.

So did you figure out what causes the internal test failed at the first land?

Also resolves #63935 , #64899 ?

@xu-baolin We're pretty sure those failures were because tests were assuming the incorrect behavior that has been in the tree for a while (they were all new tests).

Hi all,
This PR crashed the pull_to_refresh plugin which possibly affects a huge amount of users (pub score 98%).
You can find a stackTrace / bug here:
https://github.com/peng8350/flutter_pulltorefresh/issues/352
The issue is in applyContentDimensions within scroll_position.dart. If I revert the function to the commit before this PR, the issue disappears.
Is there any chance to revert this change?

Is there any chance to revert this change?

I think we don't revert a commit for a package, but you can try to fix it by making a PR to the package.

@AlexV525 Thanks for answering. Sorry, there has been a misunderstanding. I was not talking about the whole commit, I just meant the affected function.
Sure, I could just hand in a PR which reverts the function to before this commit. Anyhow, I guess this would brake the feature(s)/bugfixes @Hixie introduced with his PRs.
Anyhow, if I don't hear anything until tonight, I'll hand in a PR, as this issue just affects too many people.

I just meant the affected function.

Because those commits you saw were squashed and merged as a single commit, there are no handy way to partially revert a commit inside them.

Sure, I could just hand in a PR which reverts the function to before this commit. Anyhow, I guess this would brake the feature(s)/bugfixes @Hixie introduced with his PRs.

I suggest you land the PR in the package repo, because it did fix something but might be a breaking change for some packages. That require packages update too.

Yeah, the right way to fix this is to fix the package. But in the future, the best thing is to have the package's tests submitted to the flutter/tests repository (https://github.com/flutter/tests), since we guarantee that we won't break tests submitted to that repo without first working with the package or application owner to migrate their code.

Hi all, Thanks for your responses. There are good news, the maintainer of pull_to_refresh just updated the library to support the most recent flutter revision. So there's no issue here anymore :-).


Add RuntimeError in _distn_infrastructure.py in fit() method

This PR is one proposal to fix #10300 from the discussion w/ @chrisb83  @WarrenWeckesser  and  @kmundnic (who opened the issue). From the discussion on the issue thread it is not clear to me if we want to implement a nan_policy for fit or simply throw an error. Given the inconsistency in the current behavior any fix will change the behavior of the fit() method. I'd rather have the fix w/minimal disruption to the user base, not sure if this approach or nan_policy has less disruption. This implementation was quicker to put together than a full nan_policy. However, if we want a full nan_policy we should close this PR w/o merging and I'll work towards implementing a nan_policy. The 3 commits here are minimal, and replicate the issue in #10300 and resolve the issue by throwing a RuntimeError with a descriptive message of the issue.

it is not clear to me if we want to implement a nan_policy for fit or simply throw an error.

My impression was that throwing an error was the prefered option. (nan_policy has quite a few issues)

It will probably be a week or so before I can give a real review of this.  For now I'll just note that several of the distributions (e.g. norm, beta and a few others) override the fit method, so they will have to be updated individually.

My impression was that throwing an error was the prefered option. (nan_policy has quite a few issues)

@chrisb83 after reading again it is clear to me the consensus on throwing an error. Not sure why I hadn't caught that before.

It will probably be a week or so before I can give a real review of this. For now I'll just note that several of the distributions (e.g. norm, beta and a few others) override the fit method, so they will have to be updated individually.

I know you're busy @WarrenWeckesser and your comments are always helpful. I added some lines into the overridden .fit() methods and added full distributional unit test coverage.

@chrisb83 could we also add a 1.4.0 release tag on this so we at least revisit before the next release? (hopefully gets in sooner).

could we also add a 1.4.0 release tag on this so we at least revisit before the next release?

Yes, done

could we also add a 1.4.0 release tag on this so we at least revisit before the next release?

Yes, done

Thanks @tylerjereddy !

I just rebased the branch off master, commit 2b41710, the branch was pretty stale (~662 commits behind master). There was only 1 conflict in the TestFitMethod looks like some things were either removed or factored out to a different file. After the conflict resolutions the stats tests all pass on my local.

I just rebased the branch off master, commit 2b41710, the branch was pretty stale (~662 >commits behind master). There was only 1 conflict in the TestFitMethod looks like some things >were either removed or factored out to a different file. After the conflict resolutions the stats >tests all pass on my local.
Would be great to get this into the 1.4.0 release.

I also added a backport candidate label. I'm still unclear on what items we usually backport. This one seems like a good candidate b/c it makes inconsistent behavior in the fit() methods consistent. If the committer thinks it isn't a backport candidate that's fine too but figured I'd label so we consider it for the backport.

I'm still unclear on what items we usually backport

Usually just bug fixes--is this bad enough to be considered a bug?

I'm still unclear on what items we usually backport

Usually just bug fixes--is this bad enough to be considered a bug?

I'm not sure, the behavior on some fit methods if nan or inf is part of fitting data is inconsistent across  distributions.
Sounds like this isn't a bug, it isn't too serious, whatever behavior a user is seeing they've likely been seeing for awhile.
I'll remove the backport label, thanks for clarifying @tylerjereddy

@WarrenWeckesser Any concerns here? It looks like you were planning to review but didn't get around to it. Beyond that, it seems reviewer comments were addressed.

+1 for the consistent handling of non-finite values. I'm OK with raising an exception. This leaves open the possibility of adding the nan_policy argument sometime in the future. One thing to be aware of: the change here raises an exception on nan or inf. nan_policy has been specifically about nan, not inf. I think expanding the nan_policy to include handling of inf in a consistent and backwards-compatible way is something we can do. I'm just noting that once we commit here to raising on inf, a future addition of a nan_policy argument must provide an option for raising errors on inf (along with nan). That is, we'll need an API for nan_policy that has an option for erroring on just nan or for erroring on any non-finite values, and the nan_policy for the fit method would need to use the option "raise on nan or inf" as its default.

I agree that we likely want to have something to handle nan and something to handle inf.
I'm not sure that nan_policy is the best name for it though :).
Maybe we could factor out an inf_policy and a nan_policy?
Seems a bit weird to label nan_policy if it is really nan and inf that are handled by the method.
Maybe I'm splitting hairs here but it could be a non_finite policy which delegates to nan_policy and inf_policy.

Surprisingly no conflicts on rebase and perhaps my "largest" rebase yet:
(scipy-dev) Lucass-MacBook:scipy rlucas$ git rev-list e90bafdfe1fa7266f3e3befc7f82368ce38bdf9f   2b417108907ff3254fe1 | wc -l
   22226

@tylerjereddy @WarrenWeckesser I've removed the context manager as requested. Please let me know if you'd like anything else changed.
We can take the nan_policy naming discussion to the dev-list.

Thanks Warren. I added a brief note under backwards incompatible changes in the release notes wiki.


File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 21:49:46 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 21:49:47 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 21:49:47 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 21:51:44 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 21:51:44 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 21:53:44 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 21:53:45 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 21:54:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 21:55:09 WARNING (MainThread) [homeassistant.helpers.entity] Update of binary_sensor.hive_hub_status is taking over 10 seconds
2022-01-10 21:55:09 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.thermostat_1 is taking over 10 seconds
2022-01-10 21:55:09 WARNING (MainThread) [homeassistant.helpers.entity] Update of sensor.thermostat_1_battery_level is taking over 10 seconds
2022-01-10 21:55:09 WARNING (MainThread) [homeassistant.helpers.entity] Update of switch.thermostat_1_heat_on_demand is taking over 10 seconds
2022-01-10 21:55:14 WARNING (MainThread) [homeassistant.components.binary_sensor] Updating hive binary_sensor took longer than the scheduled update interval 0:00:15
2022-01-10 21:55:14 WARNING (MainThread) [homeassistant.components.climate] Updating hive climate took longer than the scheduled update interval 0:00:15
2022-01-10 21:55:14 WARNING (MainThread) [homeassistant.components.sensor] Updating hive sensor took longer than the scheduled update interval 0:00:15
2022-01-10 21:55:14 WARNING (MainThread) [homeassistant.components.switch] Updating hive switch took longer than the scheduled update interval 0:00:15
2022-01-10 21:55:45 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 21:55:45 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 21:57:45 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 21:57:45 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 21:59:45 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 21:59:45 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:00:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 22:01:45 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:01:45 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:02:04 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:02:35 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:03:46 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:03:46 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:05:46 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:05:46 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:06:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 22:06:39 WARNING (MainThread) [homeassistant.helpers.entity] Update of binary_sensor.hive_hub_status is taking over 10 seconds
2022-01-10 22:06:39 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.thermostat_1 is taking over 10 seconds
2022-01-10 22:06:39 WARNING (MainThread) [homeassistant.helpers.entity] Update of sensor.thermostat_1_battery_level is taking over 10 seconds
2022-01-10 22:06:39 WARNING (MainThread) [homeassistant.helpers.entity] Update of switch.thermostat_1_heat_on_demand is taking over 10 seconds
2022-01-10 22:06:44 WARNING (MainThread) [homeassistant.components.binary_sensor] Updating hive binary_sensor took longer than the scheduled update interval 0:00:15
2022-01-10 22:06:44 WARNING (MainThread) [homeassistant.components.climate] Updating hive climate took longer than the scheduled update interval 0:00:15
2022-01-10 22:06:44 WARNING (MainThread) [homeassistant.components.sensor] Updating hive sensor took longer than the scheduled update interval 0:00:15
2022-01-10 22:06:44 WARNING (MainThread) [homeassistant.components.switch] Updating hive switch took longer than the scheduled update interval 0:00:15
2022-01-10 22:07:46 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:07:46 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:09:46 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:09:46 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:11:47 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:11:47 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:12:02 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:12:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 22:13:47 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:13:47 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:15:47 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:15:47 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:17:47 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:17:47 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:18:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 22:19:48 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:19:48 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:21:48 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:21:48 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:23:48 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:23:48 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:24:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 22:25:49 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:25:49 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:27:49 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:27:50 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:29:49 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:29:49 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:30:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 22:31:49 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:31:49 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:33:49 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:33:50 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:35:50 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:35:50 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:36:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 22:37:50 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:37:50 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:39:43 ERROR (MainThread) [custom_components.reolink_dev] Error requesting reolink data: Cannot connect to host <IP_ADDRESS>:443 ssl:default [Connect call failed ('<IP_ADDRESS>', 443)]
2022-01-10 22:39:50 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:39:50 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:40:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:40:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:40:40 WARNING (SyncWorker_4) [homeassistant.components.rpi_power.binary_sensor] Under-voltage was detected. Consider getting a uninterruptible power supply for your Raspberry Pi.
2022-01-10 22:41:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:41:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:41:51 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:41:51 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:42:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:42:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 22:43:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:43:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:43:51 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:43:51 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:44:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:44:13 ERROR (MainThread) [homeassistant.components.alexa.state_report] Timeout sending report to Alexa
2022-01-10 22:44:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:45:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:45:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:45:51 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:45:51 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:46:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:46:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:47:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:47:51 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:47:51 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:48:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:48:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 22:49:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:49:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:49:48 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:49:52 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:49:52 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":10}'
2022-01-10 22:50:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:50:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:50:48 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:51:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:51:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:51:48 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:51:52 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:51:52 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":9}'
2022-01-10 22:51:55 WARNING (MainThread) [homeassistant.helpers.entity] Update of binary_sensor.hive_hub_status is taking over 10 seconds
2022-01-10 22:51:55 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.thermostat_1 is taking over 10 seconds
2022-01-10 22:51:55 WARNING (MainThread) [homeassistant.helpers.entity] Update of sensor.thermostat_1_battery_level is taking over 10 seconds
2022-01-10 22:51:55 WARNING (MainThread) [homeassistant.helpers.entity] Update of switch.thermostat_1_heat_on_demand is taking over 10 seconds
2022-01-10 22:52:00 WARNING (MainThread) [homeassistant.components.binary_sensor] Updating hive binary_sensor took longer than the scheduled update interval 0:00:15
2022-01-10 22:52:00 WARNING (MainThread) [homeassistant.components.climate] Updating hive climate took longer than the scheduled update interval 0:00:15
2022-01-10 22:52:00 WARNING (MainThread) [homeassistant.components.sensor] Updating hive sensor took longer than the scheduled update interval 0:00:15
2022-01-10 22:52:00 WARNING (MainThread) [homeassistant.components.switch] Updating hive switch took longer than the scheduled update interval 0:00:15
2022-01-10 22:52:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:52:48 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:53:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:53:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:53:48 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:53:52 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:53:52 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":11}'
2022-01-10 22:54:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:54:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 22:54:48 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:55:03 ERROR (Thread-7) [tuya_iot] Unexpected disconnection.7
2022-01-10 22:55:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:55:48 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:55:52 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:55:52 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":11}'
2022-01-10 22:56:16 ERROR (MainThread) [homeassistant.components.soma.sensor] Connection to SOMA Connect failed
2022-01-10 22:56:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:56:48 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:57:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:57:48 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:57:53 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:57:53 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":11}'
2022-01-10 22:58:18 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:58:48 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:59:03 ERROR (MainThread) [homeassistant.components.soma.cover] Connection to SOMA Connect failed
2022-01-10 22:59:54 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 22:59:54 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":11}'
2022-01-10 23:00:33 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 505, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 560, in _async_write_ha_state
unit_of_measurement = self.unit_of_measurement
File "/config/custom_components/netdaemon/entity.py", line 49, in unit_of_measurement
return self._coordinator.data[self.entity_id][ATTR_UNIT]
KeyError: 'sensor.leithtides'
2022-01-10 23:01:42 ERROR (MainThread) [custom_components.reolink_dev] Timeout fetching reolink data
2022-01-10 23:01:53 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 23:01:53 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":11}'
2022-01-10 23:03:54 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/available: b'online'
2022-01-10 23:03:54 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home/camera/infojson: b'{"free":11}'```

Ah gotcha - here you go - thanks
ha.log


Add workload version to juju status

This PR adds the Synapse version to the workload version so the user can check using the juju status command.
The version can be obtained through a request to the API.
The workload version is set on config-change event for a particular reason: when the charm is deployed, waits for a server_name config. So the user must set by using "juju config synapse server_name=foo". There is a retry configuration because Synapse is restarted after the change.
What happens after merging it:

Add docs to metadata
Add alive check
Add new method to get version
Add unit and integration tests

Generally speaking, raising an exception within a function and then handling it within the same function is confusing for the reader and indicates opportunities to improve the error handling flow in a function


pip requirements.txt and build to 32bit fix

Fixed so that pip modules installed with wheel or setup.py can be compiled down to 32 bit
Added requirements.txt with the empty gamemode. Modules can then be managed via the file.

Did you test building the plugin with docker and then using the build on a normal system / vm ?

No, didn't do that, I should do that first :)

Tested and working. I had forogotten to handle the copying if the file into context, which should be fine now. Also named it pip-modules.txt to make it clear what the file is for.

My terminal output
foxy@floof:~/Documents/pysamp-test/docker$ sudo ./server.sh
Sending build context to Docker daemon  14.32MB
Step 1/22 : ARG BASE
Step 2/22 : ARG TYPE=Debug
Step 3/22 : FROM $BASE
 ---> 2c047404e52d
Step 4/22 : RUN apt-get update && apt-get install -y build-essential g++ cmake g++-multilib git
 ---> Using cache
 ---> 7286a6821c3d
Step 5/22 : RUN apt-get install -f
 ---> Using cache
 ---> 95aec8c6e576
Step 6/22 : RUN git clone --depth 1 --branch v4.6.1 https://github.com/Zeex/sampgdk.git /root/sampgdk
 ---> Using cache
 ---> 37a7eae8f55f
Step 7/22 : RUN git clone https://github.com/Y-Less/samp-plugin-sdk.git /root/sampsdk
 ---> Using cache
 ---> 1f3e919faeac
Step 8/22 : RUN apt-get update && apt-get install -y python2.7 python-pip
 ---> Using cache
 ---> 23e367c0264a
Step 9/22 : RUN pip install ply
 ---> Using cache
 ---> 335b7d7e307f
Step 10/22 : RUN mkdir /root/sampgdk/build
 ---> Using cache
 ---> f2074359ddc9
Step 11/22 : RUN cd /root/sampgdk/build && cmake .. -DSAMP_SDK_ROOT=/root/sampsdk -DSAMPGDK_STATIC=ON -DSAMPGDK_BUILD_AMALGAMATION=ON -DCMAKE_BUILD_TYPE=$TYPE
 ---> Using cache
 ---> 08bba94402a3
Step 12/22 : RUN cmake --build /root/sampgdk/build --config $TYPE
 ---> Using cache
 ---> 7ce20fd6e5d5
Step 13/22 : RUN cmake --build /root/sampgdk/build --config $TYPE --target install
 ---> Using cache
 ---> 06db70bac8fa
Step 14/22 : RUN dpkg --add-architecture i386
 ---> Using cache
 ---> 23584f51c444
Step 15/22 : RUN apt-get update && apt-get install -y software-properties-common
 ---> Using cache
 ---> 7e8a03b084ec
Step 16/22 : RUN add-apt-repository ppa:deadsnakes/ppa
 ---> Using cache
 ---> 2ca5d13f0749
Step 17/22 : RUN apt-get update && apt-get install -y python3.8-dev:i386 libpython3.8-dev:i386
 ---> Using cache
 ---> 0f93eed5ccf9
Step 18/22 : RUN apt-get update && apt-get install -y gdb vim valgrind libc6-dbg:i386
 ---> Using cache
 ---> f69b7ac1fdfd
Step 19/22 : WORKDIR /usr/src/pysamp
 ---> Using cache
 ---> 4cf0921d9232
Step 20/22 : COPY . .
 ---> 3bfe75931fbc
Step 21/22 : RUN [ "cmake", "./src", "-G", "Unix Makefiles", "-DCMAKE_BUILD_TYPE=Debug", "-DSAMPSDK_DIR=/root/sampsdk", "-DSAMPGDK_DIR=/root/sampgdk", "-DPYTHON_INCLUDE_DIRS=/usr/include/i386-linux-gnu/python3.8", "-DPYTHON_LIBRARY=/usr/lib/i386-linux-gnu/libpython3.8.so", "-DPYTHON_STATIC_LIBRARY=libpython3.8.so.1.0", "-DPYTHON_VERSION=3.8.6" ]
 ---> Running in 833b8f4efde0
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /usr/bin/python3.8 (found suitable version "3.8.7", minimum required is "3.8.6")
-- Found PythonLibs: /usr/lib/i386-linux-gnu/libpython3.8.so (found suitable version "3.8.7", minimum required is "3.8.6")
-- Looking for alloca.h
-- Looking for alloca.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for malloc.h
-- Looking for malloc.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Found SAMPSDK: /root/sampsdk
-- PYTHON_LIBRARY = /usr/lib/i386-linux-gnu/libpython3.8.so
-- PYTHON_EXECUTABLE = /usr/bin/python3.8
-- PYTHON_INCLUDE_DIRS = /usr/include/python3.8
-- SAMPGDK_LIBRARY = /usr/local/lib/libsampgdk.a
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/src/pysamp
Removing intermediate container 833b8f4efde0
 ---> bc4a778f08c9
Step 22/22 : CMD make; cp ./PySAMP.so /target/
 ---> Running in 360e772cf917
Removing intermediate container 360e772cf917
 ---> 7fb5857d481f
Successfully built 7fb5857d481f
Successfully tagged pysamp/make:latest
Scanning dependencies of target PySAMP
[ 14%] Building CXX object CMakeFiles/PySAMP.dir/root/sampsdk/amxplugin.cpp.o
[ 28%] Building CXX object CMakeFiles/PySAMP.dir/main.cpp.o
In file included from /usr/src/pysamp/src/main.cpp:5:0:
/usr/src/pysamp/generated/config.h:4:0: warning: "PYSAMP_VERSION" redefined
 #define PYSAMP_VERSION "1.2.0 (" __DATE__ " " __TIME__ ")"

<command-line>:0:0: note: this is the location of the previous definition
In file included from /usr/src/pysamp/src/main.cpp:5:0:
/usr/src/pysamp/generated/config.h:5:0: warning: "PYTHON_VERSION" redefined
 #define PYTHON_VERSION "3.8.6"

<command-line>:0:0: note: this is the location of the previous definition
[ 42%] Building C object CMakeFiles/PySAMP.dir/root/sampgdk/build/lib/sampgdk/sampgdk.c.o
cc1: warning: command line option '-std=c++11' is valid for C++/ObjC++ but not for C
[ 57%] Building CXX object CMakeFiles/PySAMP.dir/pysamp/pysamp.cpp.o
[ 71%] Building CXX object CMakeFiles/PySAMP.dir/pysamp/pygamemode.cpp.o
[ 85%] Building CXX object CMakeFiles/PySAMP.dir/bindings/const.cpp.o
[100%] Linking CXX shared module PySAMP.so
[100%] Built target PySAMP
Sending build context to Docker daemon  14.32MB
Step 1/12 : ARG BASE
Step 2/12 : FROM $BASE
 ---> 2c047404e52d
Step 3/12 : RUN dpkg --add-architecture i386
 ---> Using cache
 ---> c557296fd7ef
Step 4/12 : RUN apt-get -qq update && apt-get -qq install software-properties-common
 ---> Using cache
 ---> 9a20e088441f
Step 5/12 : RUN add-apt-repository ppa:deadsnakes/ppa
 ---> Using cache
 ---> 2abb0b8a9b10
Step 6/12 : RUN apt-get -qq update &&     apt-get -qq install libc6-dev:i386 gcc:i386 &&     apt-get -qq install python3.8:i386 libpython3.8:i386 python3-pip &&     apt-get -qq install python3.8-dev:i386
 ---> Using cache
 ---> fe71bbfe6919
Step 7/12 : RUN apt-get -qq install libc6:i386 libncurses5:i386 libstdc++6:i386
 ---> Using cache
 ---> b6735475b2de
Step 8/12 : RUN apt-get -qq install gcc-i686-linux-gnu
 ---> Using cache
 ---> 19ce868acfaa
Step 9/12 : COPY ./docker/pip-modules.txt pip-modules.txt
 ---> 13121656af41
Step 10/12 : RUN python3.8 -m pip install --upgrade pip &&     python3.8 -m pip install -r pip-modules.txt --no-cache-dir
 ---> Running in 2adcd73c1494
Collecting pip
  Downloading https://files.pythonhosted.org/packages/fe/ef/60d7ba03b5c442309ef42e7d69959f73aacccd0d86008362a681c4698e83/pip-21.0.1-py3-none-any.whl (1.5MB)
Installing collected packages: pip
  Found existing installation: pip 9.0.1
    Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr
Successfully installed pip-21.0.1
Requirement already satisfied: asn1crypto in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 2)) (0.24.0)
Requirement already satisfied: cryptography in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 3)) (2.1.4)
Requirement already satisfied: idna in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 4)) (2.6)
Requirement already satisfied: keyring in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 5)) (10.6.0)
Requirement already satisfied: keyrings.alt in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 6)) (3.0)
Collecting numpy
  Downloading numpy-1.20.2-cp38-cp38-manylinux2010_i686.whl (13.3 MB)
Requirement already satisfied: pycrypto in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 8)) (2.6.1)
Requirement already satisfied: pygobject in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 9)) (3.26.1)
Requirement already satisfied: python-apt in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 10)) (1.6.5+ubuntu0.5)
Requirement already satisfied: pyxdg in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 11)) (0.25)
Requirement already satisfied: SecretStorage in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 12)) (2.3.1)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 13)) (1.11.0)
Collecting tornado
  Downloading tornado-6.1-cp38-cp38-manylinux2010_i686.whl (427 kB)
Requirement already satisfied: unattended-upgrades in /usr/lib/python3/dist-packages (from -r pip-modules.txt (line 15)) (0.1)
Installing collected packages: tornado, numpy
Successfully installed numpy-1.20.2 tornado-6.1
Removing intermediate container 2adcd73c1494
 ---> 44d5c14fcbd6
Step 11/12 : WORKDIR /server
 ---> Running in d4f8110def8c
Removing intermediate container d4f8110def8c
 ---> b49373f63e65
Step 12/12 : CMD ["/bin/bash", "-c", "./samp03svr 2>&1 "]
 ---> Running in 70759d65787f
Removing intermediate container 70759d65787f
 ---> 5313f351b2a5
Successfully built 5313f351b2a5
Successfully tagged pysamp/server:latest
PySAMP 1.2.0 (Apr  3 2021 23:10:51) for python3.8.6

Started server on port: 7777, with maxplayers: 50 lanmode is OFF.