[python-package] Fix mypy errors for fit() incompatible signature

Contributes to https://github.com/microsoft/LightGBM/issues/3867.
mypy currently raises the following errors regarding the signature of the fit() method:
python-package\lightgbm\sklearn.py:987: error: Signature of "fit" incompatible with supertype "LGBMModel"  [override]
python-package\lightgbm\sklearn.py:987: note:      Superclass:
python-package\lightgbm\sklearn.py:987: note:          def fit(self, X: Any, y: Any, sample_weight: Any = ..., init_score: Any = ..., group: Any = ..., eval_set: Any = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Any = ..., eval_class_weight: Any = ..., eval_init_score: Any = ..., eval_group: Any = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., feature_name: Any = ..., categorical_feature: Any = ..., callbacks: Any = ..., init_model: Union[str, Path, Booster, LGBMModel, None] = ...) -> Any
python-package\lightgbm\sklearn.py:987: note:      Subclass:
python-package\lightgbm\sklearn.py:987: note:          def fit(self, X: Any, y: Any, sample_weight: Any = ..., init_score: Any = ..., eval_set: Any = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Any = ..., eval_init_score: Any = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float,
bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., feature_name: Any = ..., categorical_feature: Any = ..., callbacks: Any = ..., init_model: Union[str, Path, Booster, LGBMModel, None] = ...) -> Any
python-package\lightgbm\sklearn.py:1033: error: Signature of "fit" incompatible with supertype "LGBMModel"  [override]
python-package\lightgbm\sklearn.py:1033: note:      Superclass:
python-package\lightgbm\sklearn.py:1033: note:          def fit(self, X: Any, y: Any, sample_weight: Any = ..., init_score: Any = ..., group: Any = ..., eval_set: Any = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Any = ..., eval_class_weight: Any = ..., eval_init_score: Any = ..., eval_group: Any = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., feature_name: Any = ..., categorical_feature: Any = ..., callbacks: Any = ..., init_model: Union[str, Path, Booster, LGBMModel, None] = ...) -> Any
python-package\lightgbm\sklearn.py:1033: note:      Subclass:
python-package\lightgbm\sklearn.py:1033: note:          def fit(self, X: Any, y: Any, sample_weight: Any = ..., init_score: Any = ..., eval_set: Any = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Any = ..., eval_class_weight: Any = ..., eval_init_score: Any = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., feature_name: Any = ..., categorical_feature: Any = ..., callbacks: Any = ..., init_model: Union[str, Path, Booster, LGBMModel, None] = ...) -> Any
python-package\lightgbm\dask.py:1164: error: Signature of "fit" incompatible with supertype "LGBMClassifier"  [override]
python-package\lightgbm\dask.py:1164: note:      Superclass:
python-package\lightgbm\dask.py:1164: note:          def fit(self, X: Any, y: Any, sample_weight: Any = ..., init_score: Any = ..., eval_set: Any = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Any = ...,
eval_class_weight: Any = ..., eval_init_score: Any = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., feature_name: Any = ..., categorical_feature: Any = ..., callbacks: Any = ..., init_model: Union[str, Path, Booster, LGBMModel, None] = ...) -> Any
python-package\lightgbm\dask.py:1164: note:      Subclass:
python-package\lightgbm\dask.py:1164: note:          def fit(self, X: Union[Any, Any], y: Union[Any, Any, Any], sample_weight: Union[Any, Any, None] = ..., init_score: Union[Any, Any, Any, None] = ..., eval_set: Optional[List[Tuple[Union[Any, Any], Union[Any, Any, Any]]]] = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Optional[List[Union[Any, Any]]] = ..., eval_class_weight: Optional[List[Union[Dict[Any, Any], str]]] = ..., eval_init_score: Optional[List[Union[Any, Any, Any]]] = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., **kwargs: Any) -> DaskLGBMClassifier
python-package\lightgbm\dask.py:1164: error: Signature of "fit" incompatible with supertype "LGBMModel"  [override]
python-package\lightgbm\dask.py:1164: note:          def fit(self, X: Any, y: Any, sample_weight: Any = ..., init_score: Any = ..., group: Any = ..., eval_set: Any = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Any = ..., eval_class_weight: Any = ..., eval_init_score: Any = ..., eval_group: Any = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., feature_name: Any = ..., categorical_feature: Any = ..., callbacks: Any = ..., init_model: Union[str, Path, Booster, LGBMModel, None] = ...) -> Any
python-package\lightgbm\dask.py:1164: note:          def fit(self, X: Union[Any, Any], y: Union[Any, Any, Any], sample_weight: Union[Any, Any, None] = ..., init_score: Union[Any, Any, Any, None] = ..., eval_set: Optional[List[Tuple[Union[Any, Any], Union[Any, Any, Any]]]] = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Optional[List[Union[Any, Any]]] = ..., eval_class_weight: Optional[List[Union[Dict[Any, Any], str]]] = ..., eval_init_score: Optional[List[Union[Any, Any, Any]]] = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., **kwargs: Any) -> DaskLGBMClassifier
python-package\lightgbm\dask.py:1336: error: Signature of "fit" incompatible with supertype "LGBMRegressor"  [override]
python-package\lightgbm\dask.py:1336: note:      Superclass:
python-package\lightgbm\dask.py:1336: note:          def fit(self, X: Any, y: Any, sample_weight: Any = ..., init_score: Any = ..., eval_set: Any = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Any = ...,
eval_init_score: Any = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., feature_name: Any = ..., categorical_feature: Any = ..., callbacks: Any = ..., init_model: Union[str, Path, Booster, LGBMModel, None] = ...) -> Any
python-package\lightgbm\dask.py:1336: note:      Subclass:
python-package\lightgbm\dask.py:1336: note:          def fit(self, X: Union[Any, Any], y: Union[Any, Any, Any], sample_weight: Union[Any, Any, None] = ..., init_score: Union[Any, Any, None] = ..., eval_set: Optional[List[Tuple[Union[Any, Any], Union[Any, Any, Any]]]] = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Optional[List[Union[Any, Any]]] = ..., eval_init_score: Optional[List[Union[Any, Any]]] = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., **kwargs: Any) -> DaskLGBMRegressor
python-package\lightgbm\dask.py:1336: error: Signature of "fit" incompatible with supertype "LGBMModel"  [override]
python-package\lightgbm\dask.py:1336: note:          def fit(self, X: Any, y: Any, sample_weight: Any = ..., init_score: Any = ..., group: Any = ..., eval_set: Any = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Any = ..., eval_class_weight: Any = ..., eval_init_score: Any = ..., eval_group: Any = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., feature_name: Any = ..., categorical_feature: Any = ..., callbacks: Any = ..., init_model: Union[str, Path, Booster, LGBMModel, None] = ...) -> Any
python-package\lightgbm\dask.py:1336: note:          def fit(self, X: Union[Any, Any], y: Union[Any, Any, Any], sample_weight: Union[Any, Any, None] = ..., init_score: Union[Any, Any, None] = ..., eval_set: Optional[List[Tuple[Union[Any, Any], Union[Any, Any, Any]]]] = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Optional[List[Union[Any, Any]]] = ..., eval_init_score: Optional[List[Union[Any, Any]]] = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., **kwargs: Any) -> DaskLGBMRegressor
python-package\lightgbm\dask.py:1489: error: Signature of "fit" incompatible with supertype "LGBMRanker"  [override]
python-package\lightgbm\dask.py:1489: note:      Superclass:
python-package\lightgbm\dask.py:1489: note:          def fit(self, X: Any, y: Any, sample_weight: Any = ..., init_score: Any = ..., group: Any = ..., eval_set: Any = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Any = ..., eval_init_score: Any = ..., eval_group: Any = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., eval_at: Union[List[int], Tuple[int, ...]] = ..., feature_name: Any = ..., categorical_feature: Any = ..., callbacks: Any = ..., init_model: Union[str, Path, Booster, LGBMModel, None] = ...) -> Any
python-package\lightgbm\dask.py:1489: note:      Subclass:
python-package\lightgbm\dask.py:1489: note:          def fit(self, X: Union[Any, Any], y: Union[Any, Any, Any], sample_weight: Union[Any, Any, None] = ..., init_score: Union[Any, Any, None] = ..., group: Union[Any, Any, None] = ..., eval_set: Optional[List[Tuple[Union[Any, Any], Union[Any, Any, Any]]]] = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Optional[List[Union[Any, Any]]] = ..., eval_init_score: Optional[List[Union[Any, Any]]] = ..., eval_group: Optional[List[Union[Any, Any]]] = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., eval_at: Union[List[int], Tuple[int, ...]] = ..., **kwargs: Any) -> DaskLGBMRanker
python-package\lightgbm\dask.py:1489: error: Signature of "fit" incompatible with supertype "LGBMModel"  [override]
python-package\lightgbm\dask.py:1489: note:          def fit(self, X: Any, y: Any, sample_weight: Any = ..., init_score: Any = ..., group: Any = ..., eval_set: Any = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Any = ..., eval_class_weight: Any = ..., eval_init_score: Any = ..., eval_group: Any = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., feature_name: Any = ..., categorical_feature: Any = ..., callbacks: Any = ..., init_model: Union[str, Path, Booster, LGBMModel, None] = ...) -> Any
python-package\lightgbm\dask.py:1489: note:          def fit(self, X: Union[Any, Any], y: Union[Any, Any, Any], sample_weight: Union[Any, Any, None] = ..., init_score: Union[Any, Any, None] = ..., group: Union[Any, Any, None] = ..., eval_set: Optional[List[Tuple[Union[Any, Any], Union[Any, Any, Any]]]] = ..., eval_names: Optional[List[str]] = ..., eval_sample_weight: Optional[List[Union[Any, Any]]] = ..., eval_init_score: Optional[List[Union[Any, Any]]] = ..., eval_group: Optional[List[Union[Any, Any]]] = ..., eval_metric: Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]], List[Union[str, Union[Callable[[ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]], Callable[[ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any], ndarray[Any, Any]], Union[Tuple[str, float, bool], List[Tuple[str, float, bool]]]]]]], None] = ..., eval_at: Union[List[int], Tuple[int, ...]] = ..., **kwargs: Any) -> DaskLGBMRanker

Notes for Reviewers
This was tested by running mypy as documented in https://github.com/microsoft/LightGBM/issues/3867.
mypy \
    --exclude='python-package/compile/|python-package/build' \
    --ignore-missing-imports \
    python-package/

Thanks for helping with this!
But I'm sorry, I disagree with most of the proposed changes. The fit() methods of the estimators in lightgbm.sklearn should not be identical to each other...they expect different arguments for the different machine learning tasks (e.g., group is only relevant to ranking).

Since mypy does not accept different signatures for child classes, these errors regarding differences in the signature are unsolvable then. Would you rather just silence them with # type: ignore?

Would you rather just silence them with # type: ignore?

I'm willing to look at a proposal for that! I'd want to be sure that #type: ignore is at the lowest level possible... e.g., if it's possible I'd prefer to not stop type checking at LGBMClassifier.fit() and all the way down, so mypy could still catch issues like "y should be a pandas Series or numpy array but you passed a list".
If it's possible to specifically opt out of these signature-mismatch warnings, that would be even better.

If it's possible to specifically opt out of these signature-mismatch warnings, that would be even better.

It is possible! I've reverted the previous changes and added the override ignore tag to the fit method to silence these errors specifically.

Thanks again for the help @IdoKendo !


Fix netatmo_public sensor to use netatmo authentication

Description:
netatmo_public was broken due to changes in #23429.
Related issue (if applicable): fixes #23474
Pull request in home-assistant.io with documentation (if applicable): home-assistant/home-assistant.io#<home-assistant.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly (example).
[ ] New dependencies have been added to requirements in the manifest (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Any reason this isnt in the 0.92.2 milestones?
This fix should probably be pushed out in the 0.92.2 patch.

@SiliconAvatar it's now tagged.


WIP: import/export preparations

REDMINE-16810

Coverage remained the same at 99.299% when pulling 937fd5b61cbf49ad27ad501ca5a11a24b8f91f65 on DanielKuhn:feature/import-export-preparations into 770b15b3476f53cdd90fa5c036148dc43f903f91 on codevise:master.


[SETUP-BUG] RuntimeError when executing fob.compute_uniqueness(dataset)

Following a simple tutorial. My dataset works and is shown in the 51 app. However when executing a simple one liner:
import fiftyone.brain as fob
fob.compute_uniqueness(dataset)
I get an error:
RuntimeError: Error(s) in loading state_dict for Network: 	Missing key(s) in state_dict: "prep\conv.weight", "prep\bn.weight", "prep\bn.bias", "prep\bn.running_mean", "prep\bn.running_var", "layer1\conv.weight", "layer1\bn.weight", "layer1\bn.bias", "layer1\bn.running_mean", "layer1\bn.running_var", "layer1\residual\res1\conv.weight", "layer1\residual\res1\bn.weight", "layer1\residual\res1\bn.bias", "layer1\residual\res1\bn.running_mean", "layer1\residual\res1\bn.running_var", "layer1\residual\res2\conv.weight", "layer1\residual\res2\bn.weight", "layer1\residual\res2\bn.bias", "layer1\residual\res2\bn.running_mean", "layer1\residual\res2\bn.running_var", "layer2\conv.weight", "layer2\bn.weight", "layer2\bn.bias", "layer2\bn.running_mean", "layer2\bn.running_var", "layer3\conv.weight", "layer3\bn.weight", "layer3\bn.bias", "layer3\bn.running_mean", "layer3\bn.running_var", "layer3\residual\res1\conv.weight", "layer3\residual\res1\bn.weight", "layer3\residual\res1\bn.bias", "layer3\residual\res1\bn.running_mean", "layer3\residual\res1\bn.running_var", "layer3\residual\res2\conv.weight", "layer3\residual\res2\bn.weight", "layer3\residual\res2\bn.bias", "layer3\residual\res2\bn.running_mean", "layer3\residual\res2\bn.running_var".  	Unexpected key(s) in state_dict: "prep_conv.weight", "prep_bn.weight", "prep_bn.bias", "prep_bn.running_mean", "prep_bn.running_var", "prep_bn.num_batches_tracked", "layer1_conv.weight", "layer1_bn.weight", "layer1_bn.bias", "layer1_bn.running_mean", "layer1_bn.running_var", "layer1_bn.num_batches_tracked", "layer1_residual_res1_conv.weight", "layer1_residual_res1_bn.weight", "layer1_residual_res1_bn.bias", "layer1_residual_res1_bn.running_mean", "layer1_residual_res1_bn.running_var", "layer1_residual_res1_bn.num_batches_tracked", "layer1_residual_res2_conv.weight", "layer1_residual_res2_bn.weight", "layer1_residual_res2_bn.bias", "layer1_residual_res2_bn.running_mean", "layer1_residual_res2_bn.running_var", "layer1_residual_res2_bn.num_batches_tracked", "layer2_conv.weight", "layer2_bn.weight", "layer2_bn.bias", "layer2_bn.running_mean", "layer2_bn.running_var", "layer2_bn.num_batches_tracked", "layer3_conv.weight", "layer3_bn.weight", "layer3_bn.bias", "layer3_bn.running_mean", "layer3_bn.running_var", "layer3_bn.num_batches_tracked", "layer3_residual_res1_conv.weight", "layer3_residual_res1_bn.weight", "layer3_residual_res1_bn.bias", "layer3_residual_res1_bn.running_mean", "layer3_residual_res1_bn.running_var", "layer3_residual_res1_bn.num_batches_tracked", "layer3_residual_res2_conv.weight", "layer3_residual_res2_bn.weight", "layer3_residual_res2_bn.bias", "layer3_residual_res2_bn.running_mean", "layer3_residual_res2_bn.running_var", "layer3_residual_res2_bn.num_batches_tracked".
Could it be that PyTorch 1.11 is not supported?
System information

OS: Win10
FiftyOne installed: from pip
FiftyOne version:  0.15.1
PyTorch version: 1.11.0
Python version: 3.7.13

Duplicate of https://github.com/voxel51/fiftyone/issues/840. See https://github.com/voxel51/fiftyone/issues/840#issuecomment-920979914 for a recommendation to bypass this Windows-specific error.


Update caniuse-lite to 1.0.30000951

Pull Request Test Coverage Report for Build 265

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.3%) to 94.898%

Totals

Change from base Build 259:
0.3%

Covered Lines:
58

Relevant Lines:
60

💛  - Coveralls


[Bug]: Deleting super property

Describe the bug
ReferenceError is expected when running the input code, but output code is terminated normally.
Input code
class x { static y = delete super [ 0 ] ; }

Config
No response
Playground link
https://play.swc.rs/?version=1.3.14&code=H4sIAAAAAAAAA0vOSSwuVqhQqFYoLkksyUxWqFSwVUhJzUktSVUoLi1ILVKIVjBQiFWwVqgFAGhAQhIrAAAA&config=H4sIAAAAAAAAA0WMTQrEIAxG75K1286id5hDBCctFv9IUhgR714tlu7C915ehUMsrBUyshCPS0pU%2FMMKZAOKZZcVTNf6tKEXagYUeScdiiyd%2BZSEJjUQXHRbGSWbQmYSeRHG3T9m66GQfucYKmjJdAc%2F0N7G%2FHPynaLySe0Cj9ke9LUAAAA%3D
Expected behavior
input.js throws ReferenceError:
$ node input.js
input.js:1
class x { static 0 = delete super [ 0 ] ; }
                     ^

ReferenceError: Unsupported reference to 'super'
    at <static_initializer> (input.js:1:22)
    at Object.<anonymous> (input.js:1:1)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47

Node.js v18.11.0

Actual behavior
output.js is terminated normally:
$ node output.js # no error

Version
1.3.14 (default SWC playground)
Additional context
No response

Since nobody is relying on this and it would always leads to a ReferenceError, the best solution would be simply ban it on parse time.

I'm not sure if this worth a fix


NTR: single strand DNA repair

Please provide as much information as you can:

Suggested term label:  single strand DNA repair

Definition (free text) The repair of single strand DNA. A variety of different single strand DNA (ssDNA) repair pathways have been reported that include single strand break repair, the repair of methylated, alkylated and damaged ssDNA and the  removal of uracil.

Reference, in format PMID:#######: PMID: 18775698, PMID: 31981739

Gene product name and ID to be annotated to this term: ALKBH3 Q96Q83, FTO Q9C0B1, NEIL3 Q8TAT5, UNG (UNG2) P13051

Parent term(s):  GO:0006281 DNA repair

Children terms (if applicable) : GO:0000012 single strand break repair

Synonyms (please specify, EXACT, BROAD, NARROW or RELATED)

EXACT: single-strand DNA repair

EXACT: ssDNA repair

Cross-references

For enzymes, please provide RHEA and/or EC numbers.

ALKBH3 Q96Q83 EC:<IP_ADDRESS>
FTO Q9C0B1 EC:<IP_ADDRESS>
NEIL3 Q8TAT5 EC:<IP_ADDRESS>
UNG (UNG2) P13051 EC:<IP_ADDRESS>

Any other information: this term is required if the GO terms GO:0080111 DNA demethylation and GO:0035552 oxidative single-stranded DNA demethylation are being obsoleted. Also note I am assuming that GO:0006307 DNA dealkylation involved in DNA repair will be obsoleted.

Hi @RLovering
It would be great to align to DNA repair pathways -

ALKBH3 Q96Q83: BP seems to be truly missing, something like 'reversal of alkylating DNA damage ? See https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2262034/)
FTO Q9C0B1 EC:<IP_ADDRESS>: same as for ALKBH3
NEIL3 Q8TAT5 is involved in GO:0036297 interstrand cross-link repair (does single-stranded make sense?
UNG (UNG2) P13051 EC:<IP_ADDRESS>is involved in base-excision repair (GO:0006284): I can create a 'single-strand' version of this pathway?

What do you think ?
Thanks, Pascale

Hi Pascale
your suggestion seems very sensible. I am not sure how useful having a term for ssDNA mechanisms v just DNA mechanisms would be. Maybe this would just increase the number of terms unneccessarily. But some enzymes do seem to prefer ssDNA rather than dsDNA so maybe this is useful?
The article you found is very nice, I always try to get more recent articles in case there has been a change in the understanding. So all but one of the pathways in their Figure 1 are covered by GO terms:
(1) the direct reversal pathway, (2) the mismatch repair (MMR) pathway GO:0006298, (3) the nucleotide excision repair (NER) pathway, GO:0006283 (4) the base excision repair (BER) pathway GO:0006284, (5) the homologous recombination (HR) pathway, GO:0000725 (GO has terms for ss and ds repair here) and (6) the non-homologous end joining (NHEJ) pathway GO:0006303.
Note that the term GO:0006307 DNA dealkylation involved in DNA repair does exist, so perhaps the new term you suggest (reversal of alkylating DNA damage) is not needed? the term you suggest could be added as a synonym? It just wasn't clear that this term would be kept.
Therefore, I will associate the term GO:0006307 DNA dealkylation involved in DNA repair with the ALKBH3 and FTO - if you decide to remove this term presumably the annotations can be moved to 'reversal of alkylating DNA damage' if that is a new terms. And I will make sure the other proteins are associated with the terms you suggest.
Other than DNA repair other DNA modifications need to be put into context of the processes they contribute to.
We also need to link DNA methylation and demethylation with regulation of gene expression/epigenetics https://www.abcam.com/epigenetics/dna-methylation-and-demethylation : 'Active DNA demethylation occurs in a cycle, starting with 5mC and finishing with an unmodified C. 5mC is initially oxidized to 5-hydroxymethlcytosine (5hmC), which is further oxidized to 5-formylcytosine (5fC), and finally, this is oxidized once more to 5-carboxylcytosine (5caC). 5fC and 5caC can be removed from DNA by thymine DNA glycosylase (TDG) in combination with base excision repair (BER) to result in an unmodified C.'
Obviously demethylation pathway ends with BER but the repair was not to 'damaged DNA' but part of changing the epigenetics status of the DNA.
So for this there are:
GO:0044027 negative regulation of gene expression via CpG island methylation
GO:0044029 positive regulation of gene expression via CpG island demethylation
Although only 4 genes are associated with these terms, based on expt data, and I don't think any are demethylases. So looking at Wikipedia: https://en.wikipedia.org/wiki/DNA_demethylation and then the UniProt records and PubMed the following human genes need to be associated with the GO:0044029 positive regulation of gene expression via CpG island demethylation term:
TET1 Q8NFU7 - UniProt
OGG1 O15527 - https://pubmed.ncbi.nlm.nih.gov/35098021/
EGR1 P18146 - https://pubmed.ncbi.nlm.nih.gov/35098021/; https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6715719/
TET2 Q6N021 - UniProt; https://pubmed.ncbi.nlm.nih.gov/24315485/
TET3 O43151 - UniProt
Will also see if I can do these annotations easily too
Ruth

PS for RNA repair is it worth having GO:0042245 RNA repair is_a child: RNA dealkylation involved in RNA repair? I haven't looked at other mechanisms of RNA repair but FTO is supposed to be involved in this process

PPS I am leaving oxidative single-stranded DNA demethylation for now - waiting for you to confirm is ssDNA terms will be created

Good point it might be difficult to decide, when curating, if the repair is ss or ds, but remember changing a modificated base is not a break repair. GO:0000012 single strand break repair already exists, probably needs the exact synonyms to be added:
Single-Strand Break Repair pathway
SSBR pathway
So some of the modified bases are methylated and may be demethylated -which are part of epigenetic modifications therefore not repair, others are modified due to damage. https://pubmed.ncbi.nlm.nih.gov/18775698/ and https://pubmed.ncbi.nlm.nih.gov/31981739/

@ValWood according to @colinlog, ChatGPT was a bit creative here, these pathways are for dsDNA, it is not clear that single-stranded DNA is repaired in cells, but it seems like people use this in assays, for some reason.

According to Colin, this is not physiological.

Reactome does not show SSBR as an independent pathway but as a component of base excision repair (BER), nucleotide excision repair (NER) and mismatch repair (MMR) pathways. In all three cases, SSBs are enzymatically created either upon removal of damaged bases (BER) or in the process of excision of damaged (NER) or mismatched (MMR) nucleotides. This is followed by gap filling by DNA polymerases and, finally, ligation of the nick by DNA ligases. The combinations of endonucleases that create SSBs and DNA polymerases that fill in the gaps differ between BER, NER, and MMR. If there is an SSB with no additional damage to surrounding bases, it is likely just simply ligated, which on its own does not constitute a pathway. The involvement of DSBR mechanisms in SSBR is true only in the sense that a DSB is nothing more than two SSBs across each other in close proximity. In essence, different SSBR mechanisms exist as subpathways of other DNA repair pathways. When SSBs occur on their own, with no additional damage, is their sealing a physiological process or just a molecular function of DNA ligases?

I'd say the DNA polymerisation and ligation catalytic steps are MFs within
each of these DNA repair processes (BER, MMS, NER).
What Pascale and I were trying to convey, is that although the cellular
reactants on which the enzymes catalyse reactions are formally speaking
single DNA strands, they are in fact base paired with a second antiparallel
complementary DNA strand. That is what was damged in the first place and
that is what the repair pathway products are. These are therefore double
strand DNA repair pathways.
It is not the case that two 'loose single strands get ligated' or that
3'OH group of a n unpaired single DNA strand is used to add nucleotides, as
can be seen when RNA polyadenylase or terminal transferases add adenosine
to the 3'end of a single strand nucleic acid polymers.
On Tue, Dec 12, 2023 at 6:18 PM MarijaOM @.***> wrote:

Reactome does not show SSBR as an independent pathway but as a component
of base excision repair (BER), nucleotide excision repair (NER) and
mismatch repair (MMR) pathways. In all three cases, SSBs are enzymatically
created either upon removal of damaged bases (BER) or in the process of
excision of damaged (NER) or mismatched (MMR) nucleotides. This is followed
by gap filling by DNA polymerases and, finally, ligation of the nick by DNA
ligases. The combinations of endonucleases that create SSBs and DNA
polymerases that fill in the gaps differ between BER, NER, and MMR. If
there is an SSB with no additional damage to surrounding bases, it is
likely just simply ligated, which on its own does not constitute a pathway.
The involvement of DSBR mechanisms in SSBR is true only in the sense that a
DSB is nothing more than two SSBs across each other in close proximity. In
essence, different SSBR mechanisms exist as subpathways of other DNA repair
pathways. When SSBs occur on their own, with no additional damage, is their
sealing a physiological process or just a molecular function of DNA ligases?
—
Reply to this email directly, view it on GitHub
https://github.com/geneontology/go-ontology/issues/26500#issuecomment-1852472719,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALZVLKHPXLRF7IN43A3XJWDYJCGXFAVCNFSM6AAAAAA74CGU42VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJSGQ3TENZRHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

Thanks for the comments - my understanding is that we have all the terms that we need. Closing this one,


Update Set-PnPWeb.md

Type

[ ] Bug Fix
[ ] New Feature
[x] Sample

Related Issues?
None
What is in this Pull Request ?
Example, and missing parameter description.
Question: Would it perhaps make sense to remove the Header parameters (SiteLogoUrl, HeaderLayout, HeaderEmphasis, HideTitleInHeader) from Set-PnPWeb cmdlet since they are already available in Set-PnPWebHeader cmdlet and even a bit extended there?

Fair point, although I'm a little bit hesitant. We cannot just remove it as existing scripts might rely on it, but we could mark it as obsolete and then remove it half a year down the road or so. If I look at the implementation of SiteLogoUrl, I see that Set-PnPWeb uses CSOM to set it while Set-PnPWebHeader uses a direct SPO API call to set it. They might eventually do the same, but it's a bit hard to say for sure for all possible scenarios (i.e. group backed, standalone, comms, teams, etc). I'm tempted therefore to play safe and keep them both.
@gautamdsheth  What are your thoughts on the raised question?


Practice the Document processing model - Exercises1 and 2

Hi.
I read the documentation for the exercises in the title and I followed the instructions.
I have a problem with result. The 'document processed email' is sent twice (it should be sent just one). Is there a bug?
Thanks

@Brambi-Amb Please let me know which code sample you are asking about so I can assign someone to follow up. thanks

Hi,
I have downloaded AIBuilder_Lab.zip and I have followed the instruction in the following script: 03_Document processing.pdf
Thanks


Subgraph Radio Frontend

Introduction
As it operates, Subgraph Radio surfaces and handles a wide range of data, including:

Messages flowing through the Graphcast network on the subgraph-radio pubsub topic
Underlying Waku data (number of connected peers, boot nodes, other metadata)
Miscellaneous data used for the Radio's internal operations

The Radio handles this data and saves some of it to an in-memory store. That store gets persisted to a local JSON file at an interval, in order for the Radio to pick up where it left off between reruns. The data in the store is made available through a GraphQL endpoint that is exposed on the Radio's HTTP server. Aside from that, some of the data flowing through the Radio is being tracked with the help of Prometheus metrics and can be optionally exposed for scraping by a Prometheus server. The combination of the data in the store and the metrics serves as a base for the Grafana dashboard configuration. We can already see that the Radio has access to a pool of useful data that can be sampled at any time.
Subgraph Radio also defines multiple helper functions that are used to gather external data, needed for it's internal logic. This includes helpers for querying data from different GraphQL APIs (Core Network Subgraph, Registry Subgraph), as well as different parts of the Indexer stack - Graph Node endpoint(s), (optionally) Indexer Management Server, etc. These helpers can be used to fetch any data that might not be readily available in the store, but can be important especially for more complex and highly specific tasks.
Problem statement
All of the data mentioned above is currently scattered in different places and it's hard for users to find what they need, especially if they want to dig deeper and understand a specific event, like when and why a POI divergence has happened, which Indexers agree or disagree with the user's locally generated POI, how they're separated in groups, and more. All this is in the context of the POI cross-checking feature of Subgraph Radio, but a user might also be interested to know when a Subgraph Developer has signalled an intent to upgrade their Subgraph, who that Developer is, when was the last time they published a new version, etc, in the case of the Subgraph Upgrade Pre-sync feature. Looking forward the use cases for a richer interface to the Radio's data set will only grow larger.
Existing tooling
Subgraph Radio users can currently utilise the Grafana dashboard JSON provided in the repo, in order to set up their dashboard and monitor different panels based on Prometheus metrics exposed by the Radio. That provides a snapshot of the current state of the Radio and also some historical data of how the metrics have changed over time.
While the Grafana dashboard is certainly helpful for monitoring the state of the Radio, diving further into the Radio's data needs to happen through the HTTP server's GraphQL API. The GraphQL API provides a lot of useful query options, it has its limitations, after all it can only serve data that's readily available to the Radio (in other words - data that is saved locally).
To illustrate the issue more clearly - let's say a user monitors Subgraph Radio using the Grafana dashboard, they notice a POI divergence for a given subgraph on a given block. They then use the HTTP server's GraphQL endpoint to see all the senders that have sent a public POI that differs from the user's locally generated public POI. This is enough manual work as it is, but on top of that the user is still unable to identify those senders by their display name or Indexer URL, for instance. To do that, the user would have to send more request to the Network subgraph GraphQL endpoint.
Potential solution
Abstract
Subgraph Radio can serve a frontend application that utilises the in-memory store to visualise POI comparison results, as well as other useful data. This frontend should provide an intuitive interface for users to click-through items and dig deeper into relevant data.
Specific (implementation ideas)
Basic
We can start with a single view, similar to the Comparison Results panel from the Grafana dashboard (also drawing inspiration from Poifier's interface). It's important to note that the goal of this frontend is not to mimick/duplicate the panels in the dashboard, the dashboard will remain in use, which is why we don't need to copy or replicate the other panels.
This Comparison Results table view should immediately convey the following information:

Subgraphs being actively cross-checked
Blocks that the comparisons have happened at
The comparison results themselves
Number of matching and divergent Subgraphs
The consensus public POI for each Subgraph
Stake weight of each public POI
Sender groups (by public POI)

This table view should be customisable, users should be able to filter results by subgraph, block, comparison result, sender(s), etc. Applying more than one filter at a time should be supported as well. Users should also be able to click on items such as, for instance, Subgraph deployment hash, sender address, block number, to dig deeper and view all the information we can provide for that item (for instance if it's a block number - we should display all the Subgraphs that were compared at that block number, if it's a Subgraph - all the comparison results we've saved for that Subgraph, all the senders that have also attested public POIs for it, all the blocks we've compared it on, etc).
All of this filtering and partitioning of data should use client-side routing.
Advanced
After the basic tabular view is in place, we can start supporting more advanced operations, such as:

Sending graphql requests to the Radio's internal GraphQL endpoint, for more custom and/or complex queries if needed
Sending graphql requests to the Core Network and Registry Subgraphs to get more detailed sender data
Interfacing with other parts of the Indexer stack like Graph Node endpoint(s), Indexer Agent, etc
Sending messages
Changing the Radio's configurations on the fly

Implementation Issues

[ ] https://github.com/graphops/subgraph-radio/issues/59

some quick feedbacks

Messages flowing through the Graphcast network on the subgraph-radio pubsub topic

subgraph-radio is not a pubsub topic, it is part of a content topic

The GraphQL API provides a lot of useful query options, it has its limitations, after all it can only serve data that's readily available to the Radio (in other words - data that is saved locally).

This limitation isn't true; there are existing resolvers that query network subgraph (basic indexer info) and we used to do computations upon query requests, which was improved through persisting states.

user is still unable to identify those senders by their display name or Indexer URL, for instance. To do that, the user would have to send more request to the Network subgraph GraphQL endpoint.

This point can be easily resolved through adding the desired fields in our existing queries to the network subgraph, or a new variant of the existing query that includes display name and url.

Sending graphql requests to the Radio's internal GraphQL endpoint, for more custom and/or complex queries if needed
Sending graphql requests to the Core Network and Registry Subgraphs to get more detailed sender data

There's existing graphql playground interfaces for radio and the subgraphs. I'm failing to see understand why this should be part of the subgraph radio FE.
If there should be an aggregated place for making graphql requests, it might be out of scope here.

Interfacing with other parts of the Indexer stack like Graph Node endpoint(s), Indexer Agent, etc

Could you provide an example of how to use this

Sending messages

What kind of messages? How is this different from graphcast-web?

Changing the Radio's configurations on the fly

This can be implemented independently; indexer can use the API to update a config and doesn't require a frontend.

Overall I think the problem statement can be solved without an FE. My main concerns being

when do we expect an indexer to use the FE?
If we know the type of info they might be interested in, why not have the radio operator automatically generate it and send it through notification?
Does it really make sense for a radio to have a grafana dashboard, a http server with restful and graphql APIs, notifications, and a separate frontend?
A listener radio frontend makes more sense to me as a page of graphops explorer
It would be good to have a mermaid diagram demonstrating how the frontend is expected to interact with existing components of the radio/sdk, as well as initial sketches of what you think the initial page should look like.

Good points @hopeyen

when do we expect an indexer to use the FE?
I'd expect Indexers to use the FE the same way they'd use the frontend view of poifier, when they want a more interactive and feature rich environment compared to the Grafana dashboard. It makes interacting with all of the other Radio components a lot easier, can be a "one stop shop", and can reduce a lot of manual workflow on the user's side, as well as make the flow a whole lot easier. Generally it could aid user experience a lot.

Does it really make sense for a radio to have a grafana dashboard, a http server with restful and graphql APIs, notifications, and a separate frontend?

Nothing wrong with multiple options of interacting with/monitoring the Radio I think, different users will have different preferences.

A listener radio frontend makes more sense to me as a page of graphops explorer

Yes, for aggregated data meant for the explorer, having a listener Radio running somewhere and querying its GraphQL endpoint, then visualising that on the explorer, seems like the best option. The Subgraph Radio frontend would help us on that front as well because we would undergo a similar effort here (fetching data from a Radio's GraphqQL endpoint and visualising it, with options for users to customise the views)

If we know the type of info they might be interested in, why not have the radio operator automatically generate it and send it through notification?

This can be harder to customise on the user's end compared to a frontend, it can also be a one-time thing and might not require a scheduled notification

What kind of messages? How is this different from graphcast-web?
It is very different because our "flagship" implementation of Graphcast will always be in Rust, we would much rather use the Radio (that's already running) to send messages via a web interface using this frontend, compared to graphcast-js. Graphcast-js is for cases where an underlying Rust-based Radio isn't there.

Could you provide an example of how to use this

This can be as simple as just fetching and visualising data from them that might be relevant to Subgraph Radio

This can be implemented independently; indexer can use the API to update a config and doesn't require a frontend.

Agreed, but as with other things - a frontend makes it easier for the user.

There's existing graphql playground interfaces for radio and the subgraphs. I'm failing to see understand why this should be part of the subgraph radio FE.
If there should be an aggregated place for making graphql requests, it might be out of scope here.

We don't want to have "an aggregated place for making graphql requests", but we can alleviate the need of users having to construct their queries in the graphql playground(s) every time if we identify useful repeating queries, we can fetch and provide that data upfront (this can also be customised through the frontend).

This point can be easily resolved through adding the desired fields in our existing queries to the network subgraph, or a new variant of the existing query that includes display name and url.

This is fair. That way we avoid needing multiple querie both on the GraphQL playground and in the frontend.

subgraph-radio is not a pubsub topic, it is part of a content topic

Ah my bad, that's more proper wording indeed.

This limitation isn't true; there are existing resolvers that query network subgraph (basic indexer info) and we used to do computations upon query requests, which was improved through persisting states.

I agree it's not true as far as the Radio's internal operations are concerned, but I think it still is when we consider what users can query for on the GraphQL endpoint


can't find volar split editor button but only the vite preview button with latest vscode and volar

i lose the split button in latest version of vscode and volar.

I think it has defaulted to being hidden, you should be able to get it to show up again by checking the volar options in vscode and enabling it again!

I think it has defaulted to being hidden, you should be able to get it to show up again by checking the volar options in vscode and enabling it again!

thank you!! i found and enabled the split editors in settings


Added embed2 which returns a table structure

The proposed change added new wrapper for pgml.embed, this will instead of return a single row, return a table structure which is very useful for batch processing strings.
Example usage is
select * from
    pgml.embed2('all-MiniLM-L6-v2', (select array_agg(phrase) from (select * from phrases limit 10)));

To import the function is as follows:
CREATE OR REPLACE FUNCTION pgml."embed2"(
    transformer TEXT,
    inputs TEXT[],
    kwargs JSONB DEFAULT '{}'
) RETURNS TABLE (text TEXT, embedding real[])
    LANGUAGE c IMMUTABLE STRICT PARALLEL SAFE AS 'MODULE_PATHNAME', 'embed_batch2_wrapper';

So it turns out the batching is not really necessary to achieve speed. When running on CPU within the Postgres python VM, you really need to torch.set_num_threads(1) in order to get the maximum speed. Leaving it to the default value, which is the number of CPUs was creating the slow down problems for me. It will still use all the CPUs when use threads=1.
I am using a debian system, with python 3.11 and postgres 16 to test all this.

So it turns out the batching is not really necessary to achieve speed. When running on CPU within the Postgres python VM, you really need to torch.set_num_threads(1) in order to get the maximum speed. Leaving it to the default value, which is the number of CPUs was creating the slow down problems for me. It will still use all the CPUs when use threads=1.
I am using a debian system, with python 3.11 and postgres 16 to test all this.

Ah, so this is actually another hit on #1161


Add eigen as a new backend

:octocat: cibot: Thank you for posting issue #822. The person in charge will reply soon.

This is delayed as this might have little or no performance gain


RDKIT molzip error

for the above core with two R1 lables molzip throwing error pl refer the below pic.
unable to get the core + two R1 combinations

is there any solution for the above issue ?

I'm not experienced with the molzip functionality, but i think your issue is that you have two atoms that have the same mapping number 1. i.e. your problem is not a bug just wrong usage.
observe:
Chem.MolToSmiles(Chem.molzip(Chem.MolFromSmiles("O([*:1])([*:2]).C[*:1].C[*:2]")))

gives the expected output COC.
using duplicate mappings:
Chem.MolToSmiles(Chem.molzip(Chem.MolFromSmiles("O([*:1])([*:1]).C[*:1].C[*:2]")))

gives error
RuntimeError: Invariant Violation
	molzip: bond info already exists for end atom with label:1
	Violation occurred on line 997 in file Code/GraphMol/ChemTransforms/MolFragmenter.cpp
	Failed Expression: !bond.b
	RDKIT: 2023.03.3
	BOOST: 1_78

I'm not experienced with the molzip functionality, but i think your issue is that you have two atoms that have the same mapping number 1. i.e. your problem is not a bug just wrong usage.
observe:
Chem.MolToSmiles(Chem.molzip(Chem.MolFromSmiles("O([*:1])([*:2]).C[*:1].C[*:2]")))

gives the expected output COC.
using duplicate mappings:
Chem.MolToSmiles(Chem.molzip(Chem.MolFromSmiles("O([*:1])([*:1]).C[*:1].C[*:2]")))

gives error
RuntimeError: Invariant Violation
	molzip: bond info already exists for end atom with label:1
	Violation occurred on line 997 in file Code/GraphMol/ChemTransforms/MolFragmenter.cpp
	Failed Expression: !bond.b
	RDKIT: 2023.03.3
	BOOST: 1_78

Then how to achieve the below combination using rdkit ?

many ways to do that, here is one:
import itertools
mols=[]
for f1,f2 in itertools.combinations_with_replacement(["CCC","c1ccccc1"],2):
    mols.append(Chem.molzip(Chem.MolFromSmiles(
        f"[*:1]c1ccccc1([*:2]).{f1}[*:1].{f2}[*:2]")))
d=Draw.MolsToGridImage(mols)
display(d)

outputs

many ways to do that, here is one:
import itertools
mols=[]
for f1,f2 in itertools.combinations_with_replacement(["CCC","c1ccccc1"],2):
    mols.append(Chem.molzip(Chem.MolFromSmiles(
        f"[*:1]c1ccccc1([*:2]).{f1}[*:1].{f2}[*:2]")))
d=Draw.MolsToGridImage(mols)
display(d)

outputs

what does the core have 2 R1s , 2 R2 s , 1 R3 ?


yarn book:serve - fix errors

Please provider more info on what needs to be fixed here.

Am I correct that the issue is that shared components are not loaded in "book" mode?

@asvae ?

@jean-moldovan you can talk with @smellyshovel. I discussed this matter with him recently.
In short serve:book has too many errors/problems. Should have none.


Allow for Suggesting Edits to Words and Adding Examples to Existing Words

Currently, there is functionality only in development that allows for a user to suggest a new word.
There needs to be the functionality to suggest an edit to an existing word. There also needs the ability to create new examples associated with a word.
Allow for a user to suggest edits to existing words and create examples for words.

Closed by #217


NullPointerException occurs sometimes when destroying map

Hey,
Can we prevent the following fatal exception by checking that object reference isnt null ?
com.xxxx.xxxx E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.xxxx.xxxx, PID: 996
java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Set java.util.HashMap.keySet()' on a null object reference
 at plugin.google.maps.PluginMarker$3.run(PluginMarker.java:133)
 at android.os.Handler.handleCallback(Handler.java:739)
 at android.os.Handler.dispatchMessage(Handler.java:95)
 at android.os.Looper.loop(Looper.java:148)
 at android.app.ActivityThread.main(ActivityThread.java:7331)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Occurs occasionally in PluginMarker.java:133 when i left the map view. I think "race condition" occurs (async code), so this code got called after object is nullified. If we can assure "priority" execution during cleanup, it will be interesting for stability, but i have no idea how to do this in async context.
Adding a safe check like you did on other part of the code should solve the issue :
    if (objects == null) {
      return;
    }

Regards,

Thanks.


integrate client

add chat client by forking

Codecov Report
Patch and project coverage have no change.

Comparison is base (cb270e3) 76.09% compared to head (e0b821f) 76.09%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff            @@
##             master       #6   +/-   ##
=========================================
  Coverage     76.09%   76.09%
  Complexity       82       82
=========================================
  Files            24       24
  Lines           205      205
  Branches          6        6
=========================================
  Hits            156      156
  Misses           46       46
  Partials          3        3

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@Andrew-Sem i suppose that chat client should be placed in resources folder of qa-rest module, take a look at this, please.
And admin crud should be placed in resources of qa-admin module.
What do you think?

@Andrew-Sem but I'm not sure if the link I provided shows the right way to do it

@Andrew-Sem also it looks like what we need
simply put your chat client in the qa-rest module and admin-crud in the qa-admin module.

@l3r8yJ thank you for your suggestion, i think the best way to do this as done here link
In our case it will be main/client for both: qa-rest and qa-admin
What do u think about it?

@Andrew-Sem nice, go ahead

@Andrew-Sem can i merge?

@l3r8yJ yep


Apply exponential resize strategy to reserve

Fixes #175.

Test failure is spurious, due to a cosmetic change in error formatting for the trybuild tests in Rust beta.


File - Export (To XML and Linked Resources to XML) do not work

Both menu items (To XML and Linked Resources to XML) do not work due to the same reason why the Repository Export did not work.
It can be fixed by the same way as the Repository Export was fixed by cbbb2452be65d6b719219c143dd9f1f7d4430c8b, but it will stay unfixed until it gets some requests.

Fixed by 5ce56d2032d9a89fb1bd242e880d0679ec04b449 and 816e2a8505d877d9f8778bc5806026853d30fd00.


Make travis build and upload binaries by branch/tag/revision

Steal pip wheel upload from here https://github.com/MonetDB/MonetDBLite-Python/blob/master/.travis.yml

Use upx to compress binaries before uploading

need static linking for shell. needs to be a standalone binary. shared objects for linux perhaps not req.

implemented, binaries available at https://downloads.duckdb.org/rev/[long git commit hash]/index.html


wrong content type returned

Hi I have a flask app that returns content type application/zip but when i run it using serverless-wsgi it seems like the content type is changed to text/plain. any idea what i might be doing wrong? Thanks

This looks like a similar issue https://github.com/awslabs/aws-serverless-express/issues/104

It looks like setting apigwBinary using https://github.com/maciejtreder/serverless-apigw-binary did work, though it took a while. i guess i just have to wait couple more minutes after it is set
  apigwBinary:
    types:
      - 'application/zip'


3.11 lxc image copy with alias no longer works

Required information

Distribution: Ubuntu 18 server LTS
Distribution version: 18.04
lxc info:

config: {}
api_extensions:
- storage_zfs_remove_snapshots
- container_host_shutdown_timeout
- container_stop_priority
- container_syscall_filtering
- auth_pki
- container_last_used_at
- etag
- patch
- usb_devices
- https_allowed_credentials
- image_compression_algorithm
- directory_manipulation
- container_cpu_time
- storage_zfs_use_refquota
- storage_lvm_mount_options
- network
- profile_usedby
- container_push
- container_exec_recording
- certificate_update
- container_exec_signal_handling
- gpu_devices
- container_image_properties
- migration_progress
- id_map
- network_firewall_filtering
- network_routes
- storage
- file_delete
- file_append
- network_dhcp_expiry
- storage_lvm_vg_rename
- storage_lvm_thinpool_rename
- network_vlan
- image_create_aliases
- container_stateless_copy
- container_only_migration
- storage_zfs_clone_copy
- unix_device_rename
- storage_lvm_use_thinpool
- storage_rsync_bwlimit
- network_vxlan_interface
- storage_btrfs_mount_options
- entity_description
- image_force_refresh
- storage_lvm_lv_resizing
- id_map_base
- file_symlinks
- container_push_target
- network_vlan_physical
- storage_images_delete
- container_edit_metadata
- container_snapshot_stateful_migration
- storage_driver_ceph
- storage_ceph_user_name
- resource_limits
- storage_volatile_initial_source
- storage_ceph_force_osd_reuse
- storage_block_filesystem_btrfs
- resources
- kernel_limits
- storage_api_volume_rename
- macaroon_authentication
- network_sriov
- console
- restrict_devlxd
- migration_pre_copy
- infiniband
- maas_network
- devlxd_events
- proxy
- network_dhcp_gateway
- file_get_symlink
- network_leases
- unix_device_hotplug
- storage_api_local_volume_handling
- operation_description
- clustering
- event_lifecycle
- storage_api_remote_volume_handling
- nvidia_runtime
- container_mount_propagation
- container_backup
- devlxd_images
- container_local_cross_pool_handling
- proxy_unix
- proxy_udp
- clustering_join
- proxy_tcp_udp_multi_port_handling
- network_state
- proxy_unix_dac_properties
- container_protection_delete
- unix_priv_drop
- pprof_http
- proxy_haproxy_protocol
- network_hwaddr
- proxy_nat
- network_nat_order
- container_full
- candid_authentication
- backup_compression
- candid_config
- nvidia_runtime_config
- storage_api_volume_snapshots
- storage_unmapped
- projects
- candid_config_key
- network_vxlan_ttl
- container_incremental_copy
- usb_optional_vendorid
- snapshot_scheduling
- container_copy_project
- clustering_server_address
- clustering_image_replication
- container_protection_shift
- snapshot_expiry
- container_backup_override_pool
- snapshot_expiry_creation
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:
- tls
environment:
  addresses: []
  architectures:
  - x86_64
  - i686
  certificate: |
    -----BEGIN CERTIFICATE-----
    MIICEjCCAZigAwIBAgIQHedtNufeXenWomoLld/KFzAKBggqhkjOPQQDAzA3MRww
    GgYDVQQKExNsaW51eGNvbnRhaW5lcnMub3JnMRcwFQYDVQQDDA5yb290QHVidW50
    dV8xODAeFw0xOTAxMTcwMDMyMDhaFw0yOTAxMTQwMDMyMDhaMDcxHDAaBgNVBAoT
    E2xpbnV4Y29udGFpbmVycy5vcmcxFzAVBgNVBAMMDnJvb3RAdWJ1bnR1XzE4MHYw
    EAYHKoZIzj0CAQYFK4EEACIDYgAEjMEKkcFSHQpJ2oC8zjdMDeLrBJA99ND66OdA
    YDGokhh9fQ/ErZC5ytcPN5tC/3JhebvWP9bqlJNKRIfOANrPkzgGktn6HbGyFENO
    53JDKsump1tVQF1GLc1LauKuG6Kro2kwZzAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l
    BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAyBgNVHREEKzApggl1YnVudHVf
    MTiHBArTNwmHEP2yLCb05AAAAhxC//4PtQCHBAoAAwEwCgYIKoZIzj0EAwMDaAAw
    ZQIxAKfVK0t6mTC0w/8y/RyIdn1UFnwKthndA8DuOHxFC1P9OXrCjrrdoX+lQ0Xy
    +ltDiQIwGnHJBiqvrZqlj/Nmi1upulRI1nlYe8m/ApQu9mRlsrTb0Z8OuyePnM4h
    3gIWc8AC
    -----END CERTIFICATE-----
  certificate_fingerprint: 7de9b91ffb5d88a585b0ffedcb7165b41c6c0c3ec5b08f66cbf1deb0b366c218
  driver: lxc
  driver_version: 3.1.0
  kernel: Linux
  kernel_architecture: x86_64
  kernel_version: 4.15.0-45-generic
  server: lxd
  server_pid: 19913
  server_version: "3.11"
  storage: dir | btrfs
  storage_version: 1 | 4.4
  server_clustered: false
  server_name: ubuntu_18
  project: default

Issue description
The following command no longer works:
lxc image copy images:alpine/3.8 local: --alias ds-alpine

I have run this command verbatim as part of a shell script, and it has worked without fail for many weeks. This morning it fails with Failed to create alias ds-alpine. If I change the alias it still fails.
By contrast the following works:
lxc image copy images:alpine/3.8 local:
lxc image alias create ds-alpine 58c19f2ea03c

I didn't change anything to my setup. However I am using the snap package of LXD that I think auto-updates, and I presume that it updated to 3.11 overnight.

Nevermind. All of a sudden iIt works now. I didn't change a thing, however the VM that I have this on has a bad tendency to time-drift, and when I wake my computer up from sleep in the AM it can take a while for the time to sync. I suppose there might be something time-related that caused the failure I saw this AM.


Support returning CxxString as rust::String

We need to support functions, that return std::string by value:
class Foo {
virtual ~Foo() = 0;
virtual std::string toString() const = 0;
};

class Bar final : public Foo{
~Bar() {}
std::string toString() const {
// returns some new std::string
}
};

std::shared_ptr<Foo> makeFoo() {
  return std::make_shared<Bar>();
}

It would be great, if we could do auto binding like this:
#[cxx::bridge]
mod ffi {
  unsafe extern "C++" {
    type Foo;

    fn makeFoo() -> SharedPtr<Foo>;

    fn toString(self: &Foo) -> String;  // Auto binding std::string by value to rust::String
  }
}

fn main() {
  //...
  let foo = makeFoo();
  println!("Foo is {}", foo.toString());
  //...
}

It's logical - when we return the std::string by value from some function, we want the std::string to be owned by caller code

It seems that you cannot own a CxxString in Rust. https://github.com/dtolnay/cxx/blob/3dafaede930026394649639ac0798aa39d6b439f/src/cxx_string.rs#L26-L33
I did a quick Googling, and found that C++ standard seems to allow this implementation. If so, then there's no way to pass a std::string to Rust safely, due to different move semantics in Rust (moving in Rust is just memcpy).

It seems, that you misunderstood the concept in the message above.
We do not need to own a CxxString in rust. If C++ function returns std::string by value, it means the function doesn't care about the string.
We can just get content of the std::string and put it to the rust::String, then pass latter by the value.  We don't have to own the first stdd::string at all

Sorry. I deleted the comment after I realized that.

I would prefer not to do this. std::string and Rust String are totally different types with different invariants, and it would be inappropriate to silently + lossily + expensively transform one into the other at the level that CXX is targeting.

To be more explicit on "lossily" -- the Rust String type has a utf8 invariant whereas it's possible for std::string to be any arbitrary bytes. Transforming arbitrary bytes into utf8 is either lossy or fallible, neither of which is a good fit for CXX to be doing automatically in a signature like that.

Ok, maybe we should have some Trait or directive to mark the method return type to be auto-converted.
Because if you have the library with the interface:
namespace NS {
struct IReadable {
static std::shared_ptr<IReadable> create();
virtual std::string toString() const = 0;
}
}

You can't just declare toString method in an rs  file like this:
//...
type IRedable;
fn toString(self: &IRedable) -> CxxString;
//...

Because you can't give the result of the method by value. You have to write wrapper to convert the std::string to rust::String for each method, like this in the C++ code. But now, you can't just call it like a method of the interface, you must do a lot of work. Look at this:
File wrapper.hpp
namespace NS {
std::shared_ptr<IReadable> IReadable_create();  // This one, because you can't declare static method of the class
rust::String _IReadable_toString(const std::shared_ptr<IReadable>& myself);  // This one, because you can't return `std::string` by value
}

I omit wrapper.cpp  to simplify, but you understand it's quite simple because it's just a boilerplate.
Now, you have to do following code inside your main.rs
//... In cxxbridge
type IRedable;
fn IReadable_create() -> SharedPtr<IReadable>;
fn _IReadable_toString(myself: &SharedPtr<IReadable>) -> String;  // Coz you can't just pass an IReadable by const reference
//...

//... below cxxbridge
impl IRedable {
 pub fn create() -> SharedPtr<IReadable> {
  return IReadable_create();
 }
 pub fn toString(myself: &SharedPtr<IReadable>) -> String {
  return _IReadable_toString(myself);
 }
}

fn main() {
  let a = IReadable::create();  //  It's a necessary evil
  let s = IReadable::toString(&a);  // It's ugly, isn't it?
}

And it's not so hard if I have only one class with the toString method. But NO!
I have about 30 classes with those methods, and I have to write about 30 wrappers, as I described above.
But it's unnecessary, isn't it? The CXX could just auto generate binding from the std::string to rust::String (we have methods data() and size() inside the std::string, it's enough). And if someone returns just std::string by value from the function, he doesn't want to know who owns that string and how.
If I marked the method above like this:
//...
type IRedable;
#[derive(AutoConvertReturnedString)]                                // Something like that
fn toString(self: &IRedable) -> String;
//...

I can decide, if it's a good idea to auto convert this particular returned value from the std::string to the rust::String

autocxx is designed to make it easier to use cxx to interface with existing code. It's still pretty immature but you might want to have a look.
For the specific case of functions which return std::string, it creates a C++ wrapper function which converts the std::string to std::unique_ptr<std::string>. cxx can cope happily with that type in the form of UniquePtr<CxxString>. That way, you don't have to deal with any of the UTF8 issues which dtolnay@ mentions: instead the recipient code in Rust can decide whether to convert to a byte buffer, lossily convert to UTF8 or checked convert to UTF8.

Yeah, but the official documents state that it's not recommended to use this library in the production code. So, I prefer to avoid it. Am I wrong?

 It's something I work on in my "spare time". I do believe it will get to the point where I remove that recommendation, but that's probably a few months off.


Curious about commit messages

Hi,
I've been using ultimate-autopair and it's working great for me. I like to follow the work by reading commit messages but it's very hard the way It's done in this project. The commit message is just the files which were changed I believe? Is it not hard even for you to go back and see what's been done?

Well if other people are interested in the commit messages, then I will gladly write commit messages with detail.

+100. And standard coding conventions (style, formatting, etc.) too. Thank you for accepting such requests.


alinux AMI needs security updates

The currently configured Amazon Linux AMI offers to do security updates when logged into -- maybe, update the image?  Thanks!

Hi @notestaff,
we are going to release an updated image with the oncoming release of ParallelCluster.
Thank you

New release v2.4.0 with AMI updated


Add strEthnicity to player

JsonMapper_Exception: JSON property "strEthnicity" does not exist in object of type NklKst\TheSportsDb\Entity\Player\Player

Will be fixed next week because of vacation.

Fixed by b8c8f6fd52d39f49edf95a20aa9c98862fb145ba


Problem with big integers

Hello, I'm implementing encode/decode and noticed a problem with both of them when using big numbers. I'm using the following set of data.
let barr = [**1531842146400**,[1332, 0, "0.3.0-dev", "0.3.0-dev", "4.0.2", "866191031649643", "8935101811542082547", "M95FAR02A08","AXN_2.32_3337_15010801", 3, 0],[1398, 8, NSSimpleValue(nil), NSSimpleValue(nil), NSSimpleValue(nil), NSSimpleValue(nil), NSSimpleValue(nil)],[1376, 7, 1]] as [Any]

 let cc = CBOR.encode(barr as NSArray)

which encoded using the playground results in 9f1b00000164a8e830608b1905340069302e332e302d64657669302e332e302d64657665342e302e326f38363631393130333136343936343373383933353130313831313534323038323534376b4d393546415230324130387641584e5f322e33325f333333375f313530313038303103008719057608f6f6f6f6f6831905600701ff
My problem is that the first value<PHONE_NUMBER>400 since it's a bit integer can't be encoded (crashes) and when decoding it returns an empty array not showing any values. But if I use a smaller number everything works fine. What can I do to work around this situation?
Thanks

Hello joaopedro,
Thanks for opening this issue. I will check and work on it soon. Until that, you can fork the repository and try to resolve it by making the "pull requests".

Hello, I've tested your new code changes and I'm getting different crashes now. On decoding I still get an empty array due to the big integer since its the first member of the array. On encoding I'm getting a crashes on an optional.
My encoding test case:
        let strinx  = Array<UInt8>(hex:  "9f1b00000164a8e830608b1905340069302e332e302d64657669302e332e302d64657665342e302e326f38363631393130333136343936343373383933353130313831313534323038323534376b4d393546415230324130387641584e5f322e33325f333333375f313530313038303103008719057608f6f6f6f6f6831905600701ff")

        let decoded = (try! CBOR.decode(strinx))!

        print(decoded)

My decoding test case
        let cv = [NSNumber(value: UInt64(integerLiteral:<PHONE_NUMBER>400)),[1332,0 , "0.3.0-dev", "0.3.0-dev","4.0.2","866191031649643", "8935101811542082547","M95FAR02A08","AXN_2.32_3337_15010801",3,0],[1398,8,NSSimpleValue(nil),NSSimpleValue(nil),NSSimpleValue(nil),NSSimpleValue(nil),NSSimpleValue(nil)],[1376,7,1]] as [Any]

            print(CBOR.encode(cv as NSArray))

The crash

Thank you

Hello,
I've seen the issues, will work on them.

Hey,
Is it possible to create a release with this fix~
Thanks!


feature(checkbox): Add ripple effect to checkbox

R: @jelbourn

Comments addressed. Please take another look. Thanks!

LGTM


pacaur -Scc inconsistency in input

When issuing pacaur -Scc, I get three prompts: The first two are the ones from the respective pacman command, the third one is about removing files from AUR cache.
Now, the first two prompts need me to press 'y' or 'n' and then 'Enter' to answer, but for the last one just pressing 'y' or 'n' sets the answer.
I believe this last prompt should be changed to wait for 'Enter' as well, for two reasons:

consistency with the previous two
possibility to change your mind!

Agree, something should be done here,

I just notice that the same holds when issuing pacaur -Syu: the prompt for pacman repostories requires pressing 'Enter' after 'y' or 'n' whereas the prompt for AUR packages does not.
I don't know if it is something centralized, so I thought I should report this case as well.

I don't know if it is something centralized, so I thought I should report this case as well.

Note the speedy prompt is intentional (see #371), and I don't think it is really an issue when using -Syu with the repository update part handled by pacman. With -Scc, however, that issue is annoying because both kind of prompt happen after one another.

Done in 5d5c502c373600c5755ebe2d7a1a2128b7663f35, using non speedy pacman style.


ISPN-10848 Change site status only after failures

https://issues.jboss.org/browse/ISPN-10848

@danberindei updated and tried to improve the javadoc/documentation.

changes:

updated minTimeToWait() javadoc
updated the tests
added link to xsite documentation

Integrated, thanks Pedro!


Fix acks not on ActiveMQ Artemis: use ack MESSAGE frame header, not message-id

From spec:

If the message is received from a subscription that requires explicit acknowledgment (either client or client-individual mode) then the MESSAGE frame MUST also contain an ack header with an arbitrary value. This header will be used to relate the message to a subsequent ACK or NACK frame.

Previously we've used message-id header, not we use ack.

Closes #89


Support for centos in HTCondor deployment solution

I've added 3 features to this GDM solution

Support for centos: I've added a property in the condor-cluster.yaml to pass debian or centos as base OS
Support to specify the OS versions: through a property, a user can pass the version of the os e.g. to install debian 8 or centos 6
Support to specify the (stable) version of HTCondor: through a property, a user can pass the version of HTCondor to install from the stable repository.

i tried the modifications with the default centos and that worked fine.  then i changed the configuration to debian version 9 and i got the following error:
Aug 14 17:25:06 condor-submit startup-script: INFO startup-script: The following packages have unmet dependencies:
Aug 14 17:25:06 condor-submit startup-script: INFO startup-script:  condor : Depends: libssl1.0.0 (>= 1.0.1) but it is not installable
Aug 14 17:25:06 condor-submit startup-script: INFO startup-script: E: Unable to correct problems, you have held broken packages.

here is my condor-cluster.yaml file:
# [START cluster_yaml]
imports:
- path: condor.jinja

resources:
- name: condor-cluster
  type: condor.jinja
  properties:
    count: 2
    zone: us-central1-f
    email<EMAIL_ADDRESS>    instancetype: n1-standard-4
    instanceosfamily: debian
    instanceosversion: 9
    #    condorversion: 8.4.11~dfsg.1-1
    #    condorversion: 8.4.11-1.el7
#  [END cluster_yaml]

i see we are not providing debian 8 images any longer... hmm.
The resource 'projects/debian-cloud/global/images/family/debian-8'\     \ was not found
let me try with debian 9 and an older version of htcondor...  8.4.11~dfsg.1-1
yup, that works fine...
ok.  looks good to me... don't know why the latest stable version of htcondor requires libssl1.0.0 while the older version wants libssl1.1...
anyway, LGTM...

The latest stable version of condor requires a libssl > 1.0.0, which we have trouble installing as a dependency on debian 9. To get around this problem, for example you can install an earlier stable version of condor (e.g. use condorversion: 8.4.11~dfsg.1-1).


Two Vuex Orm Instances On same Page Error

const database = new VuexORM.Database()

database.register(User)
Vue.use(Vuex);

export default new Vuex.Store({
     plugins: [VuexORM.install(database)],
     ...store
})

let packageDB = new orm.Database()

packageDB.register(Package)
Vue.use(Vuex);

export default new Vuex.Store({
     plugins: [orm.install(packageDB)],
     ...store
});

vendor.js:12347 TypeError: this.getters(...) is not a function
    at<EMAIL_ADDRESS>
but works fine if there only on usage of vuex orm

@wkasem Hi! Thank you for the feedback. I'm not sure what is the issue here. Are you trying to install 2 databases to 2 Vuex Store instance?

yes , i have two vue instances each one with it's own database

@wkasem Just checking in. Do you had any progress on this?

No , no Fix For This issue

OK. I'm not sure if having multiple Vuex Store instance will ever be supported, but supporting multiple Vuex ORM Database instance are planned at issue #360. Let's follow up there!


Create test

Don't test on public repos that automatically notify thousands of people in the process.


Setup a Containerized Docker MySQL Database Server and use PHPMyAdmin or Adminer for Viewing the MySQL Database

We ask that you please be patient as our team works through approving and publishing all articles/tutorials in a timely manner. Allow 1-3 days for a topic to be reviewed and/or approved - allow 3-7 days for an articles to be reviewed and/or published.
Be sure to visit our Resources Page for tools, resources, and example articles to go over.
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
NOTE: We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
We're looking for the first 2-3 paragraphs of the article that appropriately summarize what your article will be about.
Proposed title of article
Your title should be descriptive of the article/tutorial. Be Specific. Use keyword research to gain your article higher ranking.
Introduction paragraph (2-3 paragraphs):
You can use several relational database management systems (RDBMS) to run SQL queries, such as MySQL PostgreSQL, SQLite SimpleDB, and Elasticsearch. At times it is hectic to set up an SQL server in your local computer. Let's say you are using a Windows environment and you want to run a MySQL database server. In this case, you have download software that supports the RDBMS and Apache server to run SQL commands and access your databases and records, such as WAMP and XAMPP. While installing these environments, something can go wrong, or maybe your computer needs other dependencies and libraries locally installed to support these programs. This makes it hard, especially for a beginner configure, a WAMP server to run SQL queries. Furthermore, it can be hard to specify which versions of MySQL you want to run. You have to download that specific version and reinstall it on your computer.
With docker, things get a little easier. This time you don't need to install all dependencies that you locally need to set up a MySQL server. Docker helps you to containerize software environments so that you can run them as containers. This way, you set a couple of commands that you want your application environment to run on. Then docker will execute these instructions for you, set up that specific environment, and deliver fully packaged and containerized application dependencies and libraries. This allows you to specify things like the version of the MySQL server you want to run.
You don't need to install and configure the MYSQL environment to access databases and records. Docker provides you with images (official software) that you use and run within your docker containers, such as PHPMyAdmin, Adminer, and Sequel Pro (for Mac OS), to access your record database.
When you need to execute SQL queries, you will only set up a dockerize yml file, run a few commands, and docker will set everything ready for you. As a beginner, you can be able to run and use SQL queries in a containerized environment.
In this tutorial, we will dockerize a MySQL Database Server and set up PHPMyAdmin or Adminer to interact with the MySQL Database. In simple words, dockerize means create a docker image (a virtualized instance) of an application.
Whenever you are dockerizing an application, you first need to write a docker-compose file and specify the instances you want to containerize to form your application stack. Let's go ahead and demonstrate how we can create this MYSQL, PHPMyAdmin, or Adminer stack.
Key takeaways:
Set up docker and docker-compose
Write docker-compose.yml
Set MYSQL sever
Set and run PHPMyAdmin
Set and run Adminer as an alternative to PHPMyAdmin
References:
Please list links to any published content/research that you intend to use to support/guide this article.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

@Wachira48
Seems like a helpful topic - lets please be sure it add value beyond what can be found in the official docs and other blog sites. Lets also make sure that it does not overlap with any existing EngEd articles or incoming topic suggestions (if you haven't already) to avoid any potential article closure. - approved
I know we recently published an article about compose I believe - might be useful to reference (if applicable).


Remove soft dependency on treydock/gpg_key

Remove soft dependency on treydock/gpg_key

Needs to be verified before merging.

do we not have acceptance tests for that :P

Just tested your changes on centos 6 and 7 flawlessly. Would be great to see this PR merged ;)

we'll just merge it, and let it sort out :P


Feature/prev release asset

Added the functionality to download an asset from previous release

Yeah, I agree. I've added all the logic here because I found to be not as easy as I would want to check what is the previous release tag in curl commands, but let me to try to do a bit more with curl in this regard

Yes, I found the way to get previous release tag in bash commands! I'll update the tool shortly


fix: Do not pass blank luis endpoint value to runtime

Description
This PR excludes the luis:endpointKey value from the command line arguments if neither the endpoint or authoring kye is present.
Passing in a blank value for this can cause windows to misintepret the following keys, which can make QNA fail.
Task Item
Fixes #7220

Coverage decreased (-0.01%) to 50.945% when pulling 7d409be91bc164af9fb8ff11bf5f32fc2f258723 on benbrown/excludeemptylukey into bdc1a28e7dec32c4b643b122f0ad0c266ef93635 on main.


Invocation performance on consumer side turns bad under presure

[x] I have searched the issues of this repository and believe that this is not a duplicate.
[x] I have checked the FAQ of this repository and believe that this is not a duplicate.

Environment

Dubbo version: 2.6.3
Operating System version: Centos 7
Java version: 1.8

Steps to reproduce this issue
For some time we found some performance jitter under some high loads points. Generally like the chart below (Figure 1) showing the latency on provider side didn't change much but latency on consumer side had a big deterioration.

Figure 1

The count of providers in the figure 1 is 3 in three nodes. Each nodes has 4 cores and 16G.
We have tried:

Check the nat gateway band width and connections monitor
30MB/s max and less then 3000 connections. They don't hit the limit.
Try to separate to a new connection for one service to see whether the problem is in ONE connection model.
The chart is capture after that and issue continues.
Check the tomcat thread pool usage
Though i think it's irrelevant to the issue but i have integrated Sentinel to make sure the tomcat thread pool will not be full.
Doubt if it's a vpc's performance problem (They are deployed in Aliyun.com) but we found similar issue in our IDC cluster as Figure 2.
6 Providers deployed.

Figure 2

Now we are continue figuring out what the problem is. Did anyone hit this issue and kindly gives some advices?
Thanks

any update, any finding? @jasonjoo2010

any update, any finding? @jasonjoo2010

It's complicated and several factors affect this. For example TCP congestion in OS layer and link layer take a role here. It still a continuous optimizing thing now. I will pay back a new issue if i find something that can be optimized in dubbo.


Is there windows version of ingest-data.sh?

it would be great if there is one since my elastic search env is on Windows.

by the way, I mean the file at https://github.com/elastic/examples/tree/master/Machine Learning/Getting Started Examples/user_activity

thanks, I am able to run the sh script with Git Bash: https://stackoverflow.com/a/37478310


Support Arm64 in ResolveAssemblyReferences

If you attempt to use a .winmd with an implementation DLL in native ARM64, you get an error like
Unknown processor architecture. The implementation file "whatever.dll" for "whatever.winmd" had an ImageFileMachine value of "0xAA64". If you wish to use this implementation file make sure the "ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch" property in your project is set to "Warning" or "None".

We should add to the list of known architectures here:
https://github.com/Microsoft/msbuild/blob/3b3c3ea645cc529120c762cf2a8504ff960f7fb2/src/Tasks/AssemblyDependency/ReferenceTable.cs#L2773-L2794
Note: there's no corresponding entry in SystemProcessorArchitecture, so implementation may not be totally trivial.

Note: we're also misclassifying the target arch of the output assembly:
https://github.com/Microsoft/msbuild/blob/3b3c3ea645cc529120c762cf2a8504ff960f7fb2/src/Tasks/AssemblyDependency/ResolveAssemblyReference.cs#L2907-L2935
It'll read MSIL when we ask for ARM64.

Fixed by #4389


recipes-bsp: firmware-qcom-dragonboard845c fix installation of renesas

When renesas firmware loader landed upstream [1] there is a common name
for the firmware so install the K2026090.mem as renesas_usb_fw.mem.
[1] https://github.com/torvalds/linux/commit/a66d21d7dba84deeaf3b296c43eafc11094b6f09
Signed-off-by: Aníbal Limón<EMAIL_ADDRESS>

@ndechesne Still not getting ROM flashed with this changes, I will sync with Vinod about it.


Add username flag in create-user command

Ensure consistency of name/username flags between create-user and change-password commands

Add username flag in create-user command
Deprecate name flag in create-user command

fix #6174

Codecov Report

Merging #6534 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #6534      +/-   ##
==========================================
- Coverage   40.42%   40.41%   -0.01%
==========================================
  Files         404      404
  Lines       54094    54094
==========================================
- Hits        21865    21862       -3
- Misses      29217    29219       +2
- Partials     3012     3013       +1

Impacted Files
Coverage Δ

modules/log/file.go
75.52% <0%> (-2.1%)
:arrow_down:

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 592e6c3...e5c33b5. Read the comment docs.

docs/content/doc/usage/command-line.en-us.md should be updated as part of this PR as well to document the change (probably fine to just change name to username there)

Hmm actually, since this is tagged 1.9.0 the docs should probably include mention of both options since they aren't versioned at all (I forget!). People downloading a current release wouldn't have access to this change. Maybe something like "As of gitea 1.9.0, use the --username flag instead"

If I understand well, the doc on gitea.io comes from the master branch.
I will improve the doc as you say to be fine for both versions.
Something like
--name value: Username. Required. As of gitea 1.9.0, use the --username flag instead
--username value: Username. Required. New in gitea 1.9.0
And for the example, keeping the --name flag and adding a comment
gitea admin create-user --name myname --password asecurepassword --email<EMAIL_ADDRESS>As of gitea 1.9.0, use the --username flag instead


[IOTDB-2614]Fix inserting tablet with null value in TsFileWriter

Bug description：
When encapsulating TEXT type data in a tablet and using tsFileWriter to write it with null value may cause NPE in page writer and also may report "Flushed data size is inconsistent with computation!" exception.

Coverage decreased (-0.02%) to 65.594% when pulling 2a64ce6db26f1e65d8d7e56409db7a16aa9582b5 on choubenson:fixTsFileWriter into 0d2cad6dbf3f8d9a43242f28d07c8c90fcc4d2c2 on apache:master.


font teaching app

Your Feature Request
would be nice if there was a simple app with a gui you could feed fonts to teach tesseract
I have some sub files Im feeding it..and they are pretty simple font subs and tesseract is getting some very simple letters totally wrong
an italic I is being turned in a [     ..and other weird choices
does anyone know how many fonts tesseract was taught on?
I have a font pack of 1 million fonts Id like to teach it
also why do I get the idea that the people who could really help to make tesseract nearly perfect ...don't want to help with it...cause theres to much money in paid OCR and AI software

..cause there to much money in paid OCR and AI software

The big money goes to propriety software, not to open source software.

please, ASSIGN ME THIS ISSUE

Please explain why. What is you plan?

please, ASSIGN ME THIS ISSUE

would if I could

I think the fonts trained are the ones listed here: https://fossies.org/linux/misc/ghostscript-10.02.0.tar.xz/ghostscript-10.02.0/tesseract/src/training/language-specific.sh


wip

Context
Changes proposed in this pull request
Guidance to review
Checklist

[ ] Make sure all information from the Trello card is in here
[ ] Attach to Trello card
[ ] Rebased master
[ ] Cleaned commit history
[ ] Tested by running locally

https://www.youtube.com/watch?v=j_QLzthSkfM

this is not needed and already implemented elsewhere


Arbitrary Duration in Submission::drop?

What is the reason for this weird Duration at Submission::drop? Why is it equal to u64::MAX divided by a billion?
https://github.com/tomaka/vulkano/blob/master/vulkano/src/command_buffer/inner.rs#L2114

We creation a Duration of u64::MAX nanoseconds.

Which I presume is the maximum supported by Vulkan?

Yes. Any higher Duration will panic I think.

Closing as code has been reworked and all timeouts are now optional.


Whether the object position is strictly required to be consistent？

This method seems to be very sensitive to the position of the object. Will the displacement of the object in the image have a significant effect?

Yes, indeed. So this point is a direction worthy of improvement.

@GlassyWing Not only the position of the objects needs to be consistent but also you need to have access to the test data beforehand in order to find optimal threshold. Which being said defeats the purpose, this method is however more accurate but not robust at all.

@GlassyWing Can I ask you if you're refering to this particular implementation or to the paper itself?

the object position is not required to be consistent