[Bug]:  Key-error during HPO with WandB

Describe the bug
I get a key-error when doing HPO using WandB.
Dataset
MVTec
Model
PatchCore
Steps to reproduce the behavior

Install anomalib
python tools/hpo/sweep.py --model patchcore --model_config src/anomalib/models/patchcore/config.yaml --sweep_config tools/hpo/configs/wandb.yaml

Expected behavior
I would expect the sweep to start..
Screenshots
No response
Pip/GitHub
pip
What version/branch did you use?
No response
Configuration YAML
---------
sweep.yml
---------
observation_budget: 10
method: bayes
metric:
  name: pixel_AUROC
  goal: maximize
parameters:
  learning_rate:
    min: 1e-5
    max: 1e-1
  optimizer:
    values: ["adam","sgd"]
  dataset:
    category: capsule
  model:
    backbone:
      values: [resnet18, wide_resnet50_2]

--------
PatchCore config
--------
dataset:
  name: mvtec
  format: mvtec
  path: ./datasets/MVTec
  task: segmentation
  category: bottle
  train_batch_size: 32
  test_batch_size: 32
  num_workers: 1
  image_size: 256 # dimensions to which images are resized (mandatory)
  center_crop: 224 # dimensions to which images are center-cropped after resizing (optional)
  normalization: imagenet # data distribution to which the images will be normalized: [none, imagenet]
  transform_config:
    train: null
    eval: null
  test_split_mode: from_dir # options: [from_dir, synthetic]
  test_split_ratio: 0.2 # fraction of train images held out testing (usage depends on test_split_mode)
  val_split_mode: same_as_test # options: [same_as_test, from_test, synthetic]
  val_split_ratio: 0.5 # fraction of train/test images held out for validation (usage depends on val_split_mode)
  tiling:
    apply: false
    tile_size: null
    stride: null
    remove_border_count: 0
    use_random_tiling: False
    random_tile_count: 16

model:
  name: patchcore
  backbone: wide_resnet50_2
  pre_trained: False
  layers:
    - layer3
  coreset_sampling_ratio: 0.1
  num_neighbors: 9
  normalization_method: min_max # options: [null, min_max, cdf]

metrics:
  image:
    - F1Score
    - AUROC
  pixel:
    - F1Score
    - AUROC
  threshold:
    method: adaptive #options: [adaptive, manual]
    manual_image: null
    manual_pixel: null

visualization:
  show_images: False # show images on the screen
  save_images: True # save images to the file system
  log_images: True # log images to the available loggers (if any)
  image_save_path: patchcore/mvtec/bottle/run/images # path to which images will be saved
  mode: full # options: ["full", "simple"]

project:
  seed: 0
  path: ./results

logging:
  logger: [wandb] # options: [comet, tensorboard, wandb, csv] or combinations.
  log_graph: True  # Logs the model graph to respective logger.

optimization:
  export_mode: null # options: onnx, openvino

# PL Trainer Args. Don't add extra parameter here.
trainer:
  enable_checkpointing: true
  default_root_dir: null
  gradient_clip_val: 0
  gradient_clip_algorithm: norm
  num_nodes: 1
  devices: 1
  enable_progress_bar: true
  overfit_batches: 0.0
  track_grad_norm: -1
  check_val_every_n_epoch: 1 # Don't validate before extracting features.
  fast_dev_run: false
  accumulate_grad_batches: 1
  max_epochs: 50
  min_epochs: null
  max_steps: -1
  min_steps: null
  max_time: null
  limit_train_batches: 1.0
  limit_val_batches: 1.0
  limit_test_batches: 1.0
  limit_predict_batches: 1.0
  val_check_interval: 1.0 # Don't validate before extracting features.
  log_every_n_steps: 50
  accelerator: auto # <"cpu", "gpu", "tpu", "ipu", "hpu", "auto">
  strategy: null
  sync_batchnorm: false
  precision: 32
  enable_model_summary: true
  num_sanity_val_steps: 0
  profiler: null
  benchmark: false
  deterministic: false
  reload_dataloaders_every_n_epochs: 0
  auto_lr_find: false
  replace_sampler_ddp: true
  detect_anomaly: false
  auto_scale_batch_size: false
  plugins: null
  move_metrics_to_cpu: false
  multiple_trainloader_mode: max_size_cycle

Logs
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/requests/__init__.py:109: RequestsDependencyWarning: urllib3 (1.26.14) or chardet (None)/charset_normalizer (3.1.0) doesn't match a supported version!
  warnings.warn(
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/anomalib/config/config.py:238: UserWarning: The seed value is now fixed to 0. Up to v0.3.7, the seed was not fixed when the seed value was set to 0. If you want to use the random seed, please select `None` for the seed value (`null` in the YAML file) or remove the `seed` key from the YAML file.
  warn(
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/anomalib/config/config.py:275: UserWarning: config.project.unique_dir is set to False. This does not ensure that your results will be written in an empty directory and you may overwrite files.
  warn(
[rank: 0] Global seed set to 0
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/requests/__init__.py:109: RequestsDependencyWarning: urllib3 (1.26.14) or chardet (None)/charset_normalizer (3.1.0) doesn't match a supported version!
  warnings.warn(
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/anomalib/config/config.py:238: UserWarning: The seed value is now fixed to 0. Up to v0.3.7, the seed was not fixed when the seed value was set to 0. If you want to use the random seed, please select `None` for the seed value (`null` in the YAML file) or remove the `seed` key from the YAML file.
  warn(
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/anomalib/config/config.py:275: UserWarning: config.project.unique_dir is set to False. This does not ensure that your results will be written in an empty directory and you may overwrite files.
  warn(
[rank: 1] Global seed set to 0
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/requests/__init__.py:109: RequestsDependencyWarning: urllib3 (1.26.14) or chardet (None)/charset_normalizer (3.1.0) doesn't match a supported version!
  warnings.warn(
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/requests/__init__.py:109: RequestsDependencyWarning: urllib3 (1.26.14) or chardet (None)/charset_normalizer (3.1.0) doesn't match a supported version!
  warnings.warn(
wandb: Agent Starting Run: tfvdtelj with config:
wandb: 	learning_rate: 0.05701225120472204
wandb: 	model.backbone: wide_resnet50_2
wandb: 	optimizer: adam
wandb: Agent Starting Run: 6edtodhp with config:
wandb: 	learning_rate: 0.0268687292737814
wandb: 	model.backbone: resnet18
wandb: 	optimizer: sgd
Run tfvdtelj errored: AttributeError("'function' object has no attribute 'keys'")
wandb: ERROR Run tfvdtelj errored: AttributeError("'function' object has no attribute 'keys'")
wandb: Currently logged in as: tor-arnth. Use `wandb login --relogin` to force relogin
wandb: WARNING Ignored wandb.init() arg project when running a sweep.
wandb: wandb version 0.14.2 is available!  To upgrade, please run:
wandb:  $ pip install wandb --upgrade
wandb: Tracking run with wandb version 0.14.0
wandb: Run data is saved locally in ./wandb/run-20230410_200952-6edtodhp
wandb: Run `wandb offline` to turn off syncing.
wandb: Agent Starting Run: b65xplws with config:
wandb: 	learning_rate: 0.030693667871486703
wandb: 	model.backbone: resnet18
wandb: 	optimizer: adam
Run b65xplws errored: AttributeError("'function' object has no attribute 'keys'")
wandb: ERROR Run b65xplws errored: AttributeError("'function' object has no attribute 'keys'")
wandb: Resuming run sweepy-sweep-1
wandb: ⭐ View project at https://wandb.ai/tor-arnth/patchcore_mvtec
wandb: 🧹 View sweep at https://wandb.ai/tor-arnth/patchcore_mvtec/sweeps/l2e38kmv
wandb: 🚀 View run at https://wandb.ai/tor-arnth/patchcore_mvtec/runs/6edtodhp
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/torchmetrics/utilities/prints.py:36: UserWarning: Metric `PrecisionRecallCurve` will save all targets and predictions in buffer. For large datasets this may lead to large memory footprint.
  warnings.warn(*args, **kwargs)
FeatureExtractor is deprecated. Use TimmFeatureExtractor instead. Both FeatureExtractor and TimmFeatureExtractor will be removed in a future release.
GPU available: True (cuda), used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs
`Trainer(limit_train_batches=1.0)` was configured so 100% of the batches per epoch will be used..
`Trainer(limit_val_batches=1.0)` was configured so 100% of the batches will be used..
`Trainer(limit_test_batches=1.0)` was configured so 100% of the batches will be used..
`Trainer(limit_predict_batches=1.0)` was configured so 100% of the batches will be used..
`Trainer(val_check_interval=1.0)` was configured so validation will run at the end of the training epoch..
You are using a CUDA device ('NVIDIA A30') that has Tensor Cores. To properly utilize them, you should set `torch.set_float32_matmul_precision('medium' | 'high')` which will trade-off precision for performance. For more details, read https://pytorch.org/docs/stable/generated/torch.set_float32_matmul_precision.html#torch.set_float32_matmul_precision
wandb: Sweep Agent: Waiting for job.
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/torchmetrics/utilities/prints.py:36: UserWarning: Metric `ROC` will save all targets and predictions in buffer. For large datasets this may lead to large memory footprint.
  warnings.warn(*args, **kwargs)
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/pytorch_lightning/core/optimizer.py:183: UserWarning: `LightningModule.configure_optimizers` returned `None`, this fit will run with no optimizer
  rank_zero_warn(

  | Name            | Type                     | Params
-------------------------------------------------------------
0 | image_threshold | AnomalyScoreThreshold    | 0
1 | pixel_threshold | AnomalyScoreThreshold    | 0
2 | model           | PatchcoreModel           | 2.8 M
3 | image_metrics   | AnomalibMetricCollection | 0
4 | pixel_metrics   | AnomalibMetricCollection | 0
-------------------------------------------------------------
2.8 M     Trainable params
0         Non-trainable params
2.8 M     Total params
11.131    Total estimated model params size (MB)
wandb: WARNING Config item 'learning_rate' was locked by 'sweep' (ignored update).
wandb: WARNING Config item 'optimizer' was locked by 'sweep' (ignored update).
SLURM auto-requeueing enabled. Setting signal handlers.
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/pytorch_lightning/trainer/connectors/data_connector.py:224: PossibleUserWarning: The dataloader, train_dataloader, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 96 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.
  rank_zero_warn(
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py:1609: PossibleUserWarning: The number of training batches (7) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch.
  rank_zero_warn(
/home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/pytorch_lightning/trainer/connectors/data_connector.py:224: PossibleUserWarning: The dataloader, val_dataloader 0, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 96 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.
  rank_zero_warn(
Create sweep with ID: l2e38kmv
Sweep URL: https://wandb.ai/tor-arnth/patchcore_mvtec/sweeps/l2e38kmv
wandb: Job received.
wandb: Agent Starting Run: w5ckatl4 with config:
wandb: 	learning_rate: 0.05802934016250325
wandb: 	model.backbone: resnet18
wandb: 	optimizer: sgd
Create sweep with ID: ya55wjys
Sweep URL: https://wandb.ai/tor-arnth/patchcore_mvtec/sweeps/ya55wjys
Run w5ckatl4 errored: AttributeError("'function' object has no attribute 'keys'")
wandb: ERROR Run w5ckatl4 errored: AttributeError("'function' object has no attribute 'keys'")
Detected 3 failed runs in the first 60 seconds, killing sweep.
wandb: ERROR Detected 3 failed runs in the first 60 seconds, killing sweep.
wandb: To disable this check set WANDB_AGENT_DISABLE_FLAPPING=true
Epoch 0:  60%|██████    | 6/10 [00:08<00:05,  1.42s/it, loss=nan, /home/toap/.conda/envs/anomaliv_env2/lib/python3.8/site-packages/pytorch_lightning/loops/optimization/optimizer_loop.py:138: UserWarning: `training_step` returned `None`. If this was on purpose, ignore this warning...
  self.warning_cache.warn("`training_step` returned `None`. If this was on purpose, ignore this warning...")
Epoch 0: 100%|██████████| 10/10 [00:15<00:00,  1.54s/it, loss=nan, v_num=odhp, pEpoch 0: 100%|██████████| 10/10 [00:15<00:00,  1.54s/it, loss=nan, v_num=odhp, pEpoch 0:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 1:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 1:  10%|█         | 1/10 [00:01<00:13,  1.47s/it, loss=nan, v_num=odhp, piEpoch 1:  10%|█         | 1/10 [00:01<00:13,  1.48s/it, loss=nan, v_num=odhp, piEpoch 1:  20%|██        | 2/10 [00:02<00:08,  1.09s/it, loss=nan, v_num=odhp, piEpoch 1:  20%|██        | 2/10 [00:02<00:08,  1.09s/it, loss=nan, v_num=odhp, piEpoch 1:  30%|███       | 3/10 [00:02<00:06,  1.03it/s, loss=nan, v_num=odhp, piEpoch 1:  30%|███       | 3/10 [00:02<00:06,  1.02it/s, loss=nan, v_num=odhp, piEpoch 1:  40%|████      | 4/10 [00:03<00:05,  1.09it/s, loss=nan, v_num=odhp, piEpoch 1:  40%|████      | 4/10 [00:03<00:05,  1.09it/s, loss=nan, v_num=odhp, piEpoch 1:  50%|█████     | 5/10 [00:04<00:04,  1.14it/s, loss=nan, v_num=odhp, piEpoch 1:  50%|█████     | 5/10 [00:04<00:04,  1.13it/s, loss=nan, v_num=odhp, piEpoch 1:  60%|██████    | 6/10 [00:05<00:03,  1.17it/s, loss=nan, v_num=odhp, piEpoch 1:  60%|██████    | 6/10 [00:05<00:03,  1.17it/s, loss=nan, v_num=odhp, piEpoch 1:  70%|███████   | 7/10 [00:05<00:02,  1.26it/s, loss=nan, v_num=odhp, piEpoch 1:  70%|███████   | 7/10 [00:05<00:02,  1.26it/s, loss=nan, v_num=odhp, piEpoch 1:  80%|████████  | 8/10 [00:13<00:03,  1.70s/it, loss=nan, v_num=odhp, piEpoch 1:  90%|█████████ | 9/10 [00:14<00:01,  1.60s/it, loss=nan, v_num=odhp, piEpoch 1: 100%|██████████| 10/10 [00:14<00:00,  1.48s/it, loss=nan, v_num=odhp, pEpoch 1: 100%|██████████| 10/10 [00:15<00:00,  1.56s/it, loss=nan, v_num=odhp, pEpoch 1: 100%|██████████| 10/10 [00:15<00:00,  1.56s/it, loss=nan, v_num=odhp, pEpoch 1:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 2:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 2:  10%|█         | 1/10 [00:01<00:11,  1.32s/it, loss=nan, v_num=odhp, piEpoch 2:  10%|█         | 1/10 [00:01<00:12,  1.34s/it, loss=nan, v_num=odhp, piEpoch 2:  20%|██        | 2/10 [00:02<00:08,  1.02s/it, loss=nan, v_num=odhp, piEpoch 2:  20%|██        | 2/10 [00:02<00:08,  1.02s/it, loss=nan, v_num=odhp, piEpoch 2:  30%|███       | 3/10 [00:02<00:06,  1.08it/s, loss=nan, v_num=odhp, piEpoch 2:  30%|███       | 3/10 [00:02<00:06,  1.08it/s, loss=nan, v_num=odhp, piEpoch 2:  40%|████      | 4/10 [00:03<00:05,  1.13it/s, loss=nan, v_num=odhp, piEpoch 2:  40%|████      | 4/10 [00:03<00:05,  1.13it/s, loss=nan, v_num=odhp, piEpoch 2:  50%|█████     | 5/10 [00:04<00:04,  1.17it/s, loss=nan, v_num=odhp, piEpoch 2:  50%|█████     | 5/10 [00:04<00:04,  1.17it/s, loss=nan, v_num=odhp, piEpoch 2:  60%|██████    | 6/10 [00:05<00:03,  1.19it/s, loss=nan, v_num=odhp, piEpoch 2:  60%|██████    | 6/10 [00:05<00:03,  1.19it/s, loss=nan, v_num=odhp, piEpoch 2:  70%|███████   | 7/10 [00:05<00:02,  1.29it/s, loss=nan, v_num=odhp, piEpoch 2:  70%|███████   | 7/10 [00:05<00:02,  1.29it/s, loss=nan, v_num=odhp, piEpoch 2:  80%|████████  | 8/10 [00:20<00:05,  2.56s/it, loss=nan, v_num=odhp, piEpoch 2:  90%|█████████ | 9/10 [00:21<00:02,  2.36s/it, loss=nan, v_num=odhp, piEpoch 2: 100%|██████████| 10/10 [00:21<00:00,  2.17s/it, loss=nan, v_num=odhp, pEpoch 2: 100%|██████████| 10/10 [00:22<00:00,  2.26s/it, loss=nan, v_num=odhp, pEpoch 2: 100%|██████████| 10/10 [00:22<00:00,  2.27s/it, loss=nan, v_num=odhp, pEpoch 2:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 3:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 3:  10%|█         | 1/10 [00:01<00:11,  1.33s/it, loss=nan, v_num=odhp, piEpoch 3:  10%|█         | 1/10 [00:01<00:12,  1.34s/it, loss=nan, v_num=odhp, piEpoch 3:  20%|██        | 2/10 [00:02<00:08,  1.02s/it, loss=nan, v_num=odhp, piEpoch 3:  20%|██        | 2/10 [00:02<00:08,  1.02s/it, loss=nan, v_num=odhp, piEpoch 3:  30%|███       | 3/10 [00:02<00:06,  1.08it/s, loss=nan, v_num=odhp, piEpoch 3:  30%|███       | 3/10 [00:02<00:06,  1.08it/s, loss=nan, v_num=odhp, piEpoch 3:  40%|████      | 4/10 [00:03<00:05,  1.14it/s, loss=nan, v_num=odhp, piEpoch 3:  40%|████      | 4/10 [00:03<00:05,  1.14it/s, loss=nan, v_num=odhp, piEpoch 3:  50%|█████     | 5/10 [00:04<00:04,  1.18it/s, loss=nan, v_num=odhp, piEpoch 3:  50%|█████     | 5/10 [00:04<00:04,  1.18it/s, loss=nan, v_num=odhp, piEpoch 3:  60%|██████    | 6/10 [00:04<00:03,  1.20it/s, loss=nan, v_num=odhp, piEpoch 3:  60%|██████    | 6/10 [00:05<00:03,  1.20it/s, loss=nan, v_num=odhp, piEpoch 3:  70%|███████   | 7/10 [00:05<00:02,  1.30it/s, loss=nan, v_num=odhp, piEpoch 3:  70%|███████   | 7/10 [00:05<00:02,  1.30it/s, loss=nan, v_num=odhp, piEpoch 3:  80%|████████  | 8/10 [00:29<00:07,  3.69s/it, loss=nan, v_num=odhp, piEpoch 3:  90%|█████████ | 9/10 [00:30<00:03,  3.38s/it, loss=nan, v_num=odhp, piEpoch 3: 100%|██████████| 10/10 [00:30<00:00,  3.09s/it, loss=nan, v_num=odhp, pEpoch 3: 100%|██████████| 10/10 [00:31<00:00,  3.16s/it, loss=nan, v_num=odhp, pEpoch 3: 100%|██████████| 10/10 [00:31<00:00,  3.16s/it, loss=nan, v_num=odhp, pEpoch 3:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 4:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 4:  10%|█         | 1/10 [00:01<00:12,  1.34s/it, loss=nan, v_num=odhp, piEpoch 4:  10%|█         | 1/10 [00:01<00:12,  1.36s/it, loss=nan, v_num=odhp, piEpoch 4:  20%|██        | 2/10 [00:02<00:08,  1.03s/it, loss=nan, v_num=odhp, piEpoch 4:  20%|██        | 2/10 [00:02<00:08,  1.03s/it, loss=nan, v_num=odhp, piEpoch 4:  30%|███       | 3/10 [00:02<00:06,  1.08it/s, loss=nan, v_num=odhp, piEpoch 4:  30%|███       | 3/10 [00:02<00:06,  1.07it/s, loss=nan, v_num=odhp, piEpoch 4:  40%|████      | 4/10 [00:03<00:05,  1.14it/s, loss=nan, v_num=odhp, piEpoch 4:  40%|████      | 4/10 [00:03<00:05,  1.13it/s, loss=nan, v_num=odhp, piEpoch 4:  50%|█████     | 5/10 [00:04<00:04,  1.17it/s, loss=nan, v_num=odhp, piEpoch 4:  50%|█████     | 5/10 [00:04<00:04,  1.17it/s, loss=nan, v_num=odhp, piEpoch 4:  60%|██████    | 6/10 [00:05<00:03,  1.20it/s, loss=nan, v_num=odhp, piEpoch 4:  60%|██████    | 6/10 [00:05<00:03,  1.20it/s, loss=nan, v_num=odhp, piEpoch 4:  70%|███████   | 7/10 [00:05<00:02,  1.30it/s, loss=nan, v_num=odhp, piEpoch 4:  70%|███████   | 7/10 [00:05<00:02,  1.29it/s, loss=nan, v_num=odhp, piEpoch 4:  80%|████████  | 8/10 [00:42<00:10,  5.29s/it, loss=nan, v_num=odhp, piEpoch 4:  90%|█████████ | 9/10 [00:43<00:04,  4.79s/it, loss=nan, v_num=odhp, piEpoch 4: 100%|██████████| 10/10 [00:43<00:00,  4.35s/it, loss=nan, v_num=odhp, pEpoch 4: 100%|██████████| 10/10 [00:44<00:00,  4.43s/it, loss=nan, v_num=odhp, pEpoch 4: 100%|██████████| 10/10 [00:44<00:00,  4.43s/it, loss=nan, v_num=odhp, pEpoch 4:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 5:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 5:  10%|█         | 1/10 [00:01<00:12,  1.35s/it, loss=nan, v_num=odhp, piEpoch 5:  10%|█         | 1/10 [00:01<00:12,  1.36s/it, loss=nan, v_num=odhp, piEpoch 5:  20%|██        | 2/10 [00:02<00:08,  1.02s/it, loss=nan, v_num=odhp, piEpoch 5:  20%|██        | 2/10 [00:02<00:08,  1.02s/it, loss=nan, v_num=odhp, piEpoch 5:  30%|███       | 3/10 [00:02<00:06,  1.08it/s, loss=nan, v_num=odhp, piEpoch 5:  30%|███       | 3/10 [00:02<00:06,  1.08it/s, loss=nan, v_num=odhp, piEpoch 5:  40%|████      | 4/10 [00:03<00:05,  1.13it/s, loss=nan, v_num=odhp, piEpoch 5:  40%|████      | 4/10 [00:03<00:05,  1.13it/s, loss=nan, v_num=odhp, piEpoch 5:  50%|█████     | 5/10 [00:04<00:04,  1.17it/s, loss=nan, v_num=odhp, piEpoch 5:  50%|█████     | 5/10 [00:04<00:04,  1.17it/s, loss=nan, v_num=odhp, piEpoch 5:  60%|██████    | 6/10 [00:05<00:03,  1.20it/s, loss=nan, v_num=odhp, piEpoch 5:  60%|██████    | 6/10 [00:05<00:03,  1.19it/s, loss=nan, v_num=odhp, piEpoch 5:  70%|███████   | 7/10 [00:05<00:02,  1.29it/s, loss=nan, v_num=odhp, piEpoch 5:  70%|███████   | 7/10 [00:05<00:02,  1.29it/s, loss=nan, v_num=odhp, piEpoch 5:  80%|████████  | 8/10 [00:58<00:14,  7.26s/it, loss=nan, v_num=odhp, piEpoch 5:  90%|█████████ | 9/10 [00:58<00:06,  6.54s/it, loss=nan, v_num=odhp, piEpoch 5: 100%|██████████| 10/10 [00:59<00:00,  5.93s/it, loss=nan, v_num=odhp, pEpoch 5: 100%|██████████| 10/10 [01:00<00:00,  6.01s/it, loss=nan, v_num=odhp, pEpoch 5: 100%|██████████| 10/10 [01:00<00:00,  6.01s/it, loss=nan, v_num=odhp, pEpoch 5:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 6:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 6:  10%|█         | 1/10 [00:01<00:14,  1.58s/it, loss=nan, v_num=odhp, piEpoch 6:  10%|█         | 1/10 [00:01<00:14,  1.58s/it, loss=nan, v_num=odhp, piEpoch 6:  20%|██        | 2/10 [00:02<00:09,  1.14s/it, loss=nan, v_num=odhp, piEpoch 6:  20%|██        | 2/10 [00:02<00:09,  1.14s/it, loss=nan, v_num=odhp, piEpoch 6:  30%|███       | 3/10 [00:03<00:07,  1.01s/it, loss=nan, v_num=odhp, piEpoch 6:  30%|███       | 3/10 [00:03<00:07,  1.01s/it, loss=nan, v_num=odhp, piEpoch 6:  40%|████      | 4/10 [00:03<00:05,  1.06it/s, loss=nan, v_num=odhp, piEpoch 6:  40%|████      | 4/10 [00:03<00:05,  1.06it/s, loss=nan, v_num=odhp, piEpoch 6:  50%|█████     | 5/10 [00:04<00:04,  1.11it/s, loss=nan, v_num=odhp, piEpoch 6:  50%|█████     | 5/10 [00:04<00:04,  1.11it/s, loss=nan, v_num=odhp, piEpoch 6:  60%|██████    | 6/10 [00:05<00:03,  1.14it/s, loss=nan, v_num=odhp, piEpoch 6:  60%|██████    | 6/10 [00:05<00:03,  1.14it/s, loss=nan, v_num=odhp, piEpoch 6:  70%|███████   | 7/10 [00:05<00:02,  1.24it/s, loss=nan, v_num=odhp, piEpoch 6:  70%|███████   | 7/10 [00:05<00:02,  1.24it/s, loss=nan, v_num=odhp, piEpoch 6:  80%|████████  | 8/10 [01:16<00:19,  9.56s/it, loss=nan, v_num=odhp, piEpoch 6:  90%|█████████ | 9/10 [01:17<00:08,  8.58s/it, loss=nan, v_num=odhp, piEpoch 6: 100%|██████████| 10/10 [01:17<00:00,  7.77s/it, loss=nan, v_num=odhp, pEpoch 6: 100%|██████████| 10/10 [01:18<00:00,  7.85s/it, loss=nan, v_num=odhp, pEpoch 6: 100%|██████████| 10/10 [01:18<00:00,  7.85s/it, loss=nan, v_num=odhp, pEpoch 6:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 7:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 7:  10%|█         | 1/10 [00:01<00:12,  1.40s/it, loss=nan, v_num=odhp, piEpoch 7:  10%|█         | 1/10 [00:01<00:12,  1.41s/it, loss=nan, v_num=odhp, piEpoch 7:  20%|██        | 2/10 [00:02<00:08,  1.06s/it, loss=nan, v_num=odhp, piEpoch 7:  20%|██        | 2/10 [00:02<00:08,  1.06s/it, loss=nan, v_num=odhp, piEpoch 7:  30%|███       | 3/10 [00:02<00:06,  1.05it/s, loss=nan, v_num=odhp, piEpoch 7:  30%|███       | 3/10 [00:02<00:06,  1.05it/s, loss=nan, v_num=odhp, piEpoch 7:  40%|████      | 4/10 [00:03<00:05,  1.11it/s, loss=nan, v_num=odhp, piEpoch 7:  40%|████      | 4/10 [00:03<00:05,  1.11it/s, loss=nan, v_num=odhp, piEpoch 7:  50%|█████     | 5/10 [00:04<00:04,  1.15it/s, loss=nan, v_num=odhp, piEpoch 7:  50%|█████     | 5/10 [00:04<00:04,  1.15it/s, loss=nan, v_num=odhp, piEpoch 7:  60%|██████    | 6/10 [00:05<00:03,  1.18it/s, loss=nan, v_num=odhp, piEpoch 7:  60%|██████    | 6/10 [00:05<00:03,  1.17it/s, loss=nan, v_num=odhp, piEpoch 7:  70%|███████   | 7/10 [00:05<00:02,  1.27it/s, loss=nan, v_num=odhp, piEpoch 7:  70%|███████   | 7/10 [00:05<00:02,  1.27it/s, loss=nan, v_num=odhp, piEpoch 7:  80%|████████  | 8/10 [01:36<00:24, 12.12s/it, loss=nan, v_num=odhp, piEpoch 7:  90%|█████████ | 9/10 [01:37<00:10, 10.89s/it, loss=nan, v_num=odhp, piEpoch 7: 100%|██████████| 10/10 [01:38<00:00,  9.84s/it, loss=nan, v_num=odhp, pEpoch 7: 100%|██████████| 10/10 [01:39<00:00,  9.92s/it, loss=nan, v_num=odhp, pEpoch 7: 100%|██████████| 10/10 [01:39<00:00,  9.92s/it, loss=nan, v_num=odhp, pEpoch 7:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 8:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 8:  10%|█         | 1/10 [00:01<00:12,  1.36s/it, loss=nan, v_num=odhp, piEpoch 8:  10%|█         | 1/10 [00:01<00:12,  1.36s/it, loss=nan, v_num=odhp, piEpoch 8:  20%|██        | 2/10 [00:02<00:08,  1.04s/it, loss=nan, v_num=odhp, piEpoch 8:  20%|██        | 2/10 [00:02<00:08,  1.04s/it, loss=nan, v_num=odhp, piEpoch 8:  30%|███       | 3/10 [00:03<00:07,  1.02s/it, loss=nan, v_num=odhp, piEpoch 8:  30%|███       | 3/10 [00:03<00:07,  1.02s/it, loss=nan, v_num=odhp, piEpoch 8:  40%|████      | 4/10 [00:03<00:05,  1.05it/s, loss=nan, v_num=odhp, piEpoch 8:  40%|████      | 4/10 [00:03<00:05,  1.05it/s, loss=nan, v_num=odhp, piEpoch 8:  50%|█████     | 5/10 [00:04<00:04,  1.04it/s, loss=nan, v_num=odhp, piEpoch 8:  50%|█████     | 5/10 [00:04<00:04,  1.04it/s, loss=nan, v_num=odhp, piEpoch 8:  60%|██████    | 6/10 [00:05<00:03,  1.08it/s, loss=nan, v_num=odhp, piEpoch 8:  60%|██████    | 6/10 [00:05<00:03,  1.08it/s, loss=nan, v_num=odhp, piEpoch 8:  70%|███████   | 7/10 [00:05<00:02,  1.17it/s, loss=nan, v_num=odhp, piEpoch 8:  70%|███████   | 7/10 [00:05<00:02,  1.17it/s, loss=nan, v_num=odhp, piEpoch 8:  80%|████████  | 8/10 [02:00<00:30, 15.07s/it, loss=nan, v_num=odhp, piEpoch 8:  90%|█████████ | 9/10 [02:01<00:13, 13.50s/it, loss=nan, v_num=odhp, piEpoch 8: 100%|██████████| 10/10 [02:01<00:00, 12.19s/it, loss=nan, v_num=odhp, pEpoch 8: 100%|██████████| 10/10 [02:02<00:00, 12.27s/it, loss=nan, v_num=odhp, pEpoch 8: 100%|██████████| 10/10 [02:02<00:00, 12.27s/it, loss=nan, v_num=odhp, pEpoch 8:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 9:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 9:  10%|█         | 1/10 [00:01<00:12,  1.36s/it, loss=nan, v_num=odhp, piEpoch 9:  10%|█         | 1/10 [00:01<00:12,  1.38s/it, loss=nan, v_num=odhp, piEpoch 9:  20%|██        | 2/10 [00:02<00:09,  1.15s/it, loss=nan, v_num=odhp, piEpoch 9:  20%|██        | 2/10 [00:02<00:09,  1.15s/it, loss=nan, v_num=odhp, piEpoch 9:  30%|███       | 3/10 [00:03<00:07,  1.02s/it, loss=nan, v_num=odhp, piEpoch 9:  30%|███       | 3/10 [00:03<00:07,  1.02s/it, loss=nan, v_num=odhp, piEpoch 9:  40%|████      | 4/10 [00:04<00:06,  1.01s/it, loss=nan, v_num=odhp, piEpoch 9:  40%|████      | 4/10 [00:04<00:06,  1.01s/it, loss=nan, v_num=odhp, piEpoch 9:  50%|█████     | 5/10 [00:04<00:04,  1.04it/s, loss=nan, v_num=odhp, piEpoch 9:  50%|█████     | 5/10 [00:04<00:04,  1.04it/s, loss=nan, v_num=odhp, piEpoch 9:  60%|██████    | 6/10 [00:05<00:03,  1.08it/s, loss=nan, v_num=odhp, piEpoch 9:  60%|██████    | 6/10 [00:05<00:03,  1.07it/s, loss=nan, v_num=odhp, piEpoch 9:  70%|███████   | 7/10 [00:06<00:02,  1.12it/s, loss=nan, v_num=odhp, piEpoch 9:  70%|███████   | 7/10 [00:06<00:02,  1.12it/s, loss=nan, v_num=odhp, piEpoch 9:  80%|████████  | 8/10 [02:28<00:37, 18.58s/it, loss=nan, v_num=odhp, piEpoch 9:  90%|█████████ | 9/10 [02:29<00:16, 16.61s/it, loss=nan, v_num=odhp, piEpoch 9: 100%|██████████| 10/10 [02:30<00:00, 15.01s/it, loss=nan, v_num=odhp, pEpoch 9: 100%|██████████| 10/10 [02:30<00:00, 15.09s/it, loss=nan, v_num=odhp, pEpoch 9: 100%|██████████| 10/10 [02:30<00:00, 15.09s/it, loss=nan, v_num=odhp, pEpoch 9:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1ScEpoch 10:   0%|          | 0/10 [00:00<?, ?it/s, loss=nan, v_num=odhp, pixel_F1SEpoch 10:  10%|█         | 1/10 [00:01<00:12,  1.38s/it, loss=nan, v_num=odhp, pEpoch 10:  10%|█         | 1/10 [00:01<00:12,  1.40s/it, loss=nan, v_num=odhp, pEpoch 10:  20%|██        | 2/10 [00:02<00:08,  1.06s/it, loss=nan, v_num=odhp, pEpoch 10:  20%|██        | 2/10 [00:02<00:08,  1.06s/it, loss=nan, v_num=odhp, pEpoch 10:  30%|███       | 3/10 [00:02<00:06,  1.05it/s, loss=nan, v_num=odhp, pEpoch 10:  30%|███       | 3/10 [00:02<00:06,  1.05it/s, loss=nan, v_num=odhp, pEpoch 10:  40%|████      | 4/10 [00:03<00:05,  1.10it/s, loss=nan, v_num=odhp, pEpoch 10:  40%|████      | 4/10 [00:03<00:05,  1.10it/s, loss=nan, v_num=odhp, pEpoch 10:  50%|█████     | 5/10 [00:04<00:04,  1.14it/s, loss=nan, v_num=odhp, pEpoch 10:  50%|█████     | 5/10 [00:04<00:04,  1.14it/s, loss=nan, v_num=odhp, pEpoch 10:  60%|██████    | 6/10 [00:05<00:03,  1.17it/s, loss=nan, v_num=odhp, pEpoch 10:  60%|██████    | 6/10 [00:05<00:03,  1.17it/s, loss=nan, v_num=odhp, pEpoch 10:  70%|███████   | 7/10 [00:05<00:02,  1.26it/s, loss=nan, v_num=odhp, pEpoch 10:  70%|███████   | 7/10 [00:05<00:02,  1.26it/s, loss=nan, v_num=odhp, pixel_F1Score=0.414, pixel_AUROC=0.798]

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Please tell me if you need more information

Besides the error you are getting please be aware that changing the learning rate or optimizer wont' have any impact on patchcores performance

Thank you for the input Alex do you mind elaborating a bit? If I don't use a pre-trained model and want to train the CNN responsible for extracting mid-level-features from the 'backbone', learning rate/optimizers wont have an effect because of what?

Thank you for the input Alex do you mind elaborating a bit? If I don't use a pre-trained model and want to train the CNN responsible for extracting mid-level-features from the 'backbone', learning rate/optimizers wont have an effect because of what?
Which hyperparameters can I tweak to expereiment? Is it these: input_size: tuple[int, int], layers: list[str], backbone: str = "wide_resnet50_2", pre_trained: bool = True, num_neighbors: int = 9, from the documentation (https://openvinotoolkit.github.io/anomalib/_modules/anomalib/models/patchcore/torch_model.html#PatchcoreModel.forward)
Appologies for my ignorance.

You will always use pre-trained models because patchcore only extracts features and stores them without any weight updates. You can train a new model for feature extraction but this isnt the point of patchcore and using the anomalib training code wont do that.
Changing the backbone model and the layers might have an impact on the performance, input image size might might have as well.
Maybe reading the original Paper will make things clearer to you

I've read the paper, but what confuses me is what an "epoch" entails if we're not training a neural network?

I've read the paper, but what confuses me is what an "epoch" entails if we're not training a neural network?

An epoch means going through all training images

But why would the performance then change per epoch?

But why would the performance then change per epoch?

It doesn't or a you seeing something else?

But why would the performance then change per epoch?

It doesn't or are you seeing something else?

The performance increases until epoch 4 and then declines until epoch 7 where it is static until epoch 50.

You have a neural network which is e.g. wide_resnet50_2 trained on imagenet. You extract image features from the layers you specify and store them in a memory-bank coreset

Can you comment on this "The performance increases until epoch 4 and then declines until epoch 7 where it is static until epoch 50. Which is somewhat the same I see for the 20-25 runs that I have done."
Is it because the train-part and the test-part runs parallel?

Can you comment on this "The performance increases until epoch 4 and then declines until epoch 7 where it is static until epoch 50. Which is somewhat the same I see for the 20-25 runs that I have done."
Is it because the train-part and the test-part run parallel?

I dont know exactly why this happens. On what scale is the accuracy improving across the epochs? I guess using pre_trained: False will not get you close to the original results?

Is it a 0.01 variation..

Is it a 0.01 variation..

ok this might be due to some randomness that is used somewhere in the process.

Can you comment on this "The performance increases until epoch 4 and then declines until epoch 7 where it is static until epoch 50. Which is somewhat the same I see for the 20-25 runs that I have done."
Is it because the train-part and the test-part run parallel?

I dont know exactly why this happens. On what scale is the accuracy improving across the epochs? I guess using pre_trained: False will not get you close to the original results?

What does "pre-trained" mean in this context? What exactly is pre-trained?

Can you comment on this "The performance increases until epoch 4 and then declines until epoch 7 where it is static until epoch 50. Which is somewhat the same I see for the 20-25 runs that I have done."
Is it because the train-part and the test-part run parallel?

I dont know exactly why this happens. On what scale is the accuracy improving across the epochs? I guess using pre_trained: False will not get you close to the original results?

What does "pre-trained" mean in this context? What exactly is pre-trained?

Trained  on imagenet. Please try to read and understand the patchcore Paper, read the padim and some referenced papers as well..

with the latest anomalib version I cannot reproduce this error. I am able to run the sweep using your config file. However, as @alexriedel1 mentioned there is no need for running this sweep for patchcore.
I'm moving this to Q&A since the discussion here is important and could be useful to other users.


Logging improvements

Duplicate type CdcNotification from class com.fadv.xtdforce.people.jms.fn.OnCdcNotification
if (resolveOutcome.hasThrown()) {
LOGGER.atError().log("Resolution failed", resolveOutcome.getThrown());
return;
}

Can't reproduce.


make 64-bit time_t back to unsigned

Summary
it has been changed by https://github.com/apache/nuttx/pull/10303 without any explicit mentions. i suppose it was a mistake.
see https://github.com/apache/nuttx/pull/8201 and referenced PRs for previous discussions.
Impact
Testing

@yamt probably a mistake because for 32-bit he used uint32_t!

@yamt https://github.com/apache/nuttx/pull/10303 is needed to pass LTP test case.

Is the LTP test a part of the CI run?

I mean, does the LTP test fail with unsigned 64-bit time_t?

@yamt #10303 is needed to pass LTP test case. From https://en.wikipedia.org/wiki/Unix_time, most POSIX OS(except 32bit QNX) define time_t to signed integer, so it's better to follow others choice to improve the compatibility with other POSIX implementation at least for 64bit time_t.

While I agree we can benefit from following the majority, IMO it's more important to be consistent within nuttx. Pros and cons have been discussed in the referenced PRs. It doesn't seem appropriate to revert it almost silently.

@yamt #10303 is needed to pass LTP test case. From https://en.wikipedia.org/wiki/Unix_time, most POSIX OS(except 32bit QNX) define time_t to signed integer, so it's better to follow others choice to improve the compatibility with other POSIX implementation at least for 64bit time_t.

While I agree we can benefit from following the majority, IMO it's more important to be consistent within nuttx.

If you prefer consistent, I suggest changing 32bit time_t to signed.

Pros and cons have been discussed in the referenced PRs.

Compatibility is always top priority of NuttX design principle.

It doesn't seem appropriate to revert it almost silently.

The reason already highlights in #10303.

Is the LTP test a part of the CI run?

We run LTP internally, and plan to enable it on github In 24Q1.

LGTM! Let's merge the change if the LTP test pass

No, LTP will break if we merging this patch.

@yamt #10303 is needed to pass LTP test case. From https://en.wikipedia.org/wiki/Unix_time, most POSIX OS(except 32bit QNX) define time_t to signed integer, so it's better to follow others choice to improve the compatibility with other POSIX implementation at least for 64bit time_t.

While I agree we can benefit from following the majority, IMO it's more important to be consistent within nuttx.

If you prefer consistent, I suggest changing 32bit time_t to signed.

as you know, 32 bit time_t overlaps too soon.

Pros and cons have been discussed in the referenced PRs.

Compatibility is always top priority of NuttX design principle.

in reality, i guess it depends on other factors as well.
otherwise, why has it been using unsigned time_t?

It doesn't seem appropriate to revert it almost silently.

The reason already highlights in #10303.

"highlights"? it actually didn't even mention the change at all.

I am natural whether 64bit time_t is signed or unsigned before, that's why I merged #8201 after the discussion. But since #8201 break some LTP test case, now I prefer 64bit(or even 32bit) time_t to signed.

ok, there is no problem with changing your mind.
what's wrong with disabling the "some LTP test case"?
i guess it's minor parts of it which actually assumes time_t type. isn't it the case?

I mean, does the LTP test fail with unsigned 64-bit time_t as #10303 does not state anything about change from unsigned to signed, but is about moving type definitions into a proper file, so sign change there is not obvious.

It's mistake. LTP case do not need change unsigned 64-bit time_t, only need define in <sys/types.h>.
https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/definitions/time_h/7-3-buildonly.c

@xiaoxiang781216 so which LTP test fails with this change? POSIX does not mandate time_t to be signed, so if the test case fails then LTP test case should be updated.

@xiaoxiang781216 so which LTP test fails with this change? POSIX does not mandate time_t to be signed, so if the test case fails then LTP test case should be updated.

Ok, it's a false report as @fxysunshine reply here: https://github.com/apache/nuttx/pull/11466#issuecomment-1872523591.


Use of SCET in attribute name to indicate Ephemeris Time

The acronym SCET (SpaceCraft Event Time) is used to identify where time is measured - normally on the spacecraft , but sometimes on the ground at time of receipt, i.e. Earth Received Time (ERT). SCET can be represented as UTC, ET, SCLK, etc.   Since you are using the term to indicate time represented as J2000 ephemeris time, I suggest that you use _ET rather than _SCET in the attribute name.

Closed by #29


refactored output_parsers

Several output parsers belong to the langchain_community package.

Created langchain_community.output_parsers namespace
Moved several parsers to community package

@hwchase17 The OpenAI and pandas parsers are rolled back :)

It is conflicting with too many new updates. I'll redo it from cratch


Brian/set token optimizations

Pull Request Test Coverage Report for Build 913

21 of 21 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.003%) to 99.777%

Totals

Change from base Build 891:
0.003%

Covered Lines:
317

Relevant Lines:
317

💛  - Coveralls


How to type/display शृंगार with Kokila font?

Kokila font is presented on https://learn.microsoft.com/en-us/typography/font-list/kokila as a font "primarily meant for use in displaying Hindi text in documents." One Hindi word we are unable to represent is Kokila in शृंगार, namely the display of the first conjunct (शृं). It shows as श्रृं.
Current and expected are depicted below:

The closest I can get is below, which is incorrect:

This thread discusses the issue in greater detail: https://groups.google.com/g/technical-hindi/c/ozHt0UyJ5Aw?pli=1
Is there any solution for displaying शृंगार as per correct/standard Hindi using Kokila font?

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

ID: 3c1df5ef-aecd-50be-593e-f5a8272afdf8
Version Independent ID: 854fa645-b308-024e-d848-f4577ec1a6f6
Content: Kokila font family - Typography
Content Source: typographydocs/font-list/kokila.md
Product: typography
GitHub Login: @alib-ms
Microsoft Alias: alib

Kokila lacks the special ligature glyph needed to represent the traditional form of this combination.
If adding this ligature, @alib-ms, consider also the ligature with the vocalic r̄ sign, although this would be very rare and specific to Sanskrit:

Thank you for the feedback. I have created a work item to add these missing ligatures in the Kokila font family.

@alib-ms Any idea when a release date for a new version of Kokila font family that includes that work item could be (even if a very non-committal, broad estimate)? Anything I can do to contribute to that effort to accelerate a new release with that work item?

Yes. All the –Ra letters with merged rakar stroke are ligature glyphs, and so would be the special forms with vocalic vowel signs, as in the Sanskrit Text font.
This may be of interest to you. This is the complete set of consonant+vowel special ligatures in the Tiro Devanagari Sanskrit font. Some of these are pretty specific to Sanskrit, so might not be suitable for a font primarily targeting modern Hindi use, but perhaps let Ali know if you think any more of these are missing from Kokila and should be added?

/dDa_dSignVocalicR  /dDa_dSignVocalicRr  /dDDa_dSignVocalicR  /dRa_dSignU  /dRa_dSignUu  /dRa_dSignVocalicR  /dRa_dSignVocalicL  /dRa_dSignVocalicRr  /dRa_dSignVocalicLl  /dSha_dSignVocalicR  /dSha_dSignVocalicRr  /dHa_dSignU  /dHa_dSignUu  /dHa_dSignVocalicR  /dHa_dSignVocalicRr  /dHRa_dSignU  /dHRa_dSignUu

@alib-ms Great to hear! Please let me know if/how I can help with any testing and verifcation.

If adding this ligature, @alib-ms, consider also the ligature with the vocalic r̄ sign, although this would be very rare and specific to Sanskrit:

We also work with a large Sankrit corpus. It is often mixed with Hindi, so this would be very useful and complete in implemenation even if rarely used. Thanks for pointing it out @tiroj .

Quick before and after.

kaanchan please share some valid words with both ligatures.

kaanchan please share some valid words with both ligatures.

@alib-ms This is what the editing department was able to share immediately:
शृंगार
शृंखला
शृगाल
They could not come up with any words from memory that use the double Ri lagature, but acknowledged it would be a Sankrit use-case.
We do do a fair bit of Hindu + Sankrit documentation, research, and editing so if/when that scenario arrives, it will be great if Kokila handles it.
I will try and create a list of multiple words for both ligatures over the next few days.

Thank you, kaanchan! Appreciate your help.
I got the Kokila font family almost completed. As noted above I have added both ligatures. I will also update the Aparajita and Utsaah font families accordingly.

The long ṝ vowel is, so far as I know, non-naturally occurring in Sanskrit phonology, so may never occur in any actual words. It is a sort of theoretical construct that completes the algorithmic models of Sanskrit grammarians.

@alib-ms

kaanchan please share some valid words with both ligatures.
Here are some Sanskrit words from sanskritdictionary.com:
अभिविशॄ
अपिशॄ
अवशॄ
निःशॄ
निर्विशॄ
पराशॄ
परिशॄ

It appears to be a full root per Paninian grammar:

Note how the above text had to mix the two forms of ś because their typeface did not support the śṝ combination are now supporting for Kokila!
And here is an example of śṝ (शॄ) rendered in siddhanta-cakravat-webfont. A nice use-case for a font being able to generate this combination.

To type this word “शृंगार” the user will type the following sequence of characters.
U+0936 U+0943 U+0902 U+0917 U+093E U+0930
Using the Kokila font, the results:

No special formatting is needed. input method will be exactly the same only the results will differ from old font vs new font. if you add the Zero Width Joiner then you will not get the ligature form.

@alib-ms How will a user be able to input

Is there any way to input this ligature, in particular? Curious because it says "in source". If so, how can it be done? This question is separate from the new ligature which allows for creating words like shringar.

I have Developed a Vedakshar typeface just like metal Typeface

I have resolved the reported issues with our Devanagari fonts. The updated fonts will be included in the upcoming release of Office and the Windows 11 update. If you have any further questions or concerns, please feel free to reopen the issue. I sincerely appreciate your valuable input and feedback. Thank you very much.


FW Log Live View - Layout consistency & space use

Make controls area layout more consistent with other log pages.
Reduce unused/inefficient vertical space use.

only works on wide screens, we keep it as is.


V1.0

Copied over from master CFL Repo
Fixed File Structure to be compatible with Arduino Libraries

What other modules use the category Sensors ?

Bosch IMU Shield
Adafruit Accessory and Accelorometer Shields
Adafruit temperature, humidity, pressure, altitude, gesture, proximity, and light sensors
Sparkfun sensor libraries including Si7021
etc..


Promise typing incompatible between ES5 and ES6 emit

For -t ES5, I use the es6-promise typing here:
https://github.com/borisyankov/DefinitelyTyped/blob/00e7f3fede5f2df55b56c72f40a144824f0f0bfa/es6-promise/es6-promise.d.ts
which looks like
interface Thenable<R> {
	then<U>(onFulfilled?: (value: R) => U | Thenable<U>,  onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
}

declare class Promise<R> implements Thenable<R> {
	then<U>(onFulfilled?: (value: R) => U | Thenable<U>,  onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
...
}

For -t ES6 the Promise API is now in the lib.es6.d.ts distributed with TypeScript, which has:
interface Promise<T> {
    then<TResult>(onfulfilled?: (value: T) => TResult | Promise<TResult>, onrejected?: (reason: any) => TResult | Promise<TResult>): Promise<TResult>;
...
}

The main difference being the type inheritance from Thenable.
Now code that works against -t ES5 gets a compile error with -t ES6:
angular2/src/facade/async.ts (31,25): Argument of type '(value: any) => T | Thenable<T>' is not assignable to parameter of type '(value: T) => T | Promise<T>'.
  Type 'T | Thenable<T>' is not assignable to type 'T | Promise<T>'.
    Type 'Thenable<T>' is not assignable to type 'T | Promise<T>'.
      Type 'Thenable<T>' is not assignable to type 'Promise<T>'.
        Types of property 'then' are incompatible.
          Type '<U>(onFulfilled?: (value: T) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>) =>...' is not assignable to type '<TResult>(onfulfilled?: (value: T) => TResult | Promise<TResult>, onrejected?: (reason: any) => T...'.
            Type 'Thenable<any>' is not assignable to type 'Promise<any>'.

and here is our use-site:
https://github.com/angular/angular/blob/master/modules/angular2/src/facade/async.ts
Also, it is a problem that the es6-promise.d.ts declares Promise as a class rather than an interface; that collides with the identifier declared in lib.es6.d.ts.
What is the right general strategy to deal with typings such that the same code can target both ES5 and ES6?
For this specific issue, it seems like the right answer is to change the DefinitelyTyped es6-promise.d.ts to match the shape declared in lib.es6.d.ts. Sound right?

+1

@rbuckton this will need to go in release-1.5 branch as well as master.

@niemyjski  and @alexeagle can you give the latest library file a try? https://github.com/Microsoft/TypeScript/blob/master/bin/lib.es6.d.ts

I have got a simmilar problem with 1.9.0-dev.20160429.
I want to use es5 as target but rely on existing native Promise or polyfilled one.
So I started with this config (lib option here is reason to use 1.9.0):
{
  "compilerOptions": {
    "declaration": true,
    "sourceMap": true,
    "noImplicitAny": true,
    "module": "commonjs",
    "outDir": "lib",
    "target": "es5",
    "listFiles": true,
    "lib": ["es5", "dom", "es2015.promise"]
  },
  "exclude": [
    "node_modules",
    "typings/browser",
    "typings/browser.d.ts",
    "lib",
    "tests"
  ]
}

It works fine until I try to pass array of promises to Promise.all(). I got an error:
error TS2345: Argument of type 'Promise<T>[]' is not assignable to parameter of type '[T | PromiseLike<T>, T | PromiseLike<T>]'.
  Property '0' is missing in type 'Promise<T>[]'.

just found a fix:
interface PromiseConstructor {
  all<T>(values: PromiseLike<T>[]): Promise<[T]>;
}


Setup: Don't ask for Server URL if multi-cluster management feature flag is off

We can skip asking for the server URL in the setup flow if Rancher has been deployed with the multi-cluster management feature flag off.
We should, however, prompt the user for the server URL IF they activate the feature flag from the feature flags page (if it has not been set already).

Duplicate of https://github.com/rancher/dashboard/issues/3286 -- we'll close this one and use the other.

@gaktive we should generally close the newer duplicate.


Add information on how to remove data from a GitHub repo

Via @vincentvanhees:
In case you ever accidentally put a privacy sensitive or copyright protected file in your github repository then be aware that just removing it will not remove the file from the repository history, by which you may still get into trouble. To remove it from the entire repository history and all its branches follow:
https://help.github.com/articles/removing-sensitive-data-from-a-repository

hey Niels,
I made code snippet, where should it go?

@jspaaks Great! I think here https://github.com/NLeSC/guide/edit/master/software/version_control.md, though perhaps as an attachment or something if it breaks the flow of text too much. Perhaps use a gist?

Fixed in #126


Configurable mappings

Thought I'd lend you hand. Think it's merge-worthy?

@nkmathew Thanks for the update! Closes https://github.com/christoomey/vim-sort-motion/issues/5


Not able to extend a yaml anchor in config file

Title: Not able to extend a yaml anchor in config file
Description:

The yaml config parser of Envoy seems to support anchors. But it doesn't support merging keys from the anchors. For example the following works

access_log:
- name: envoy.access_loggers.file
  typed_config:
    "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
    path: "/dev/stdout"
    typed_json_format: &json_format
      timestamp: "%START_TIME%"
      level: info
...
...
...
access_log:
- name: envoy.access_loggers.file
  typed_config:
    "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
    path: "/dev/stdout"
    typed_json_format: *json_format

but this doesn't work

access_log:
- name: envoy.access_loggers.file
  typed_config:
    "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
    path: "/dev/stdout"
    typed_json_format: &json_format
      timestamp: "%START_TIME%"
      level: info
...
...
...
access_log:
- name: envoy.access_loggers.file
  typed_config:
    "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
    path: "/dev/stdout"
    typed_json_format:
      <<: *json_format
      level: warn

it produces

{
  "<<": {
    "timestamp": "2020-09-01T19:11:23.085Z",
    "level": "info"
  },
  "level": "warn"
}

the expected log output is
{
  "timestamp": "2020-09-01T19:11:23.085Z",
  "level": "warn"
}

Config:

Include the config used to configure Envoy.

admin:
  access_log_path: "/var/log/envoy/admin.log"
  address:
    socket_address:
      address: <IP_ADDRESS>
      port_value: 9000
static_resources:
  listeners:
  - address:
      socket_address:
        address: <IP_ADDRESS>
        port_value: 9080
    traffic_direction: INBOUND
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          codec_type: auto
          stat_prefix: ingress_http
          use_remote_address: true
          route_config:
            name: reverse_proxy
            virtual_hosts:
            - name: ingress_http
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                route:
                  cluster: reverse_proxy_cluster
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          access_log:
          - name: envoy.access_loggers.file
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
              path: "/dev/stdout"
              typed_json_format: &json_format
                "@timestamp": "%START_TIME%"
                ecs:
                  version: "1.5"
                log:
                  level: "info"  # default envoy log level
                service:
                  name: "my-service"
                  version: "1.0"
                host:
                  hostname: "%HOSTNAME%"
                http:
                  version: "%PROTOCOL%"
                  request:
                    method: "%REQ(:METHOD)%"
                    duration: "%DURATION%"
                    body:
                      bytes: "%BYTES_RECEIVED%"
                    headers:  # not in ECS
                      id: "%REQ(X-REQUEST-ID)%"
                      authority: "%REQ(:AUTHORITY)%"
                      x_forwarded_for: "%REQ(X-FORWARDED-FOR)%"
                  response:
                    status_code: "%RESPONSE_CODE%"
                    flags: "%RESPONSE_FLAGS%"
                    body:
                      bytes: "%BYTES_SENT%"
                user_agent:
                  name: "%REQ(USER-AGENT)%"
                url:
                  path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%"
                client:
                  address: "%DOWNSTREAM_REMOTE_ADDRESS%"
                server:
                  address: "%UPSTREAM_HOST%"
                network:
                  direction: "inbound"
  - address:
      socket_address:
        address: <IP_ADDRESS>
        port_value: 9090
    traffic_direction: OUTBOUND
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: egress_http
          route_config:
            name: forward_proxy
            virtual_hosts:
            - name: egress_http
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                route:
                  cluster: forward_proxy_cluster
          http_filters:
          - name: envoy.filters.http.dynamic_forward_proxy
            typed_config:
              "@type": type.googleapis.com/envoy.config.filter.http.dynamic_forward_proxy.v2alpha.FilterConfig
              dns_cache_config:
                name: forward_proxy_cache_config
                dns_lookup_family: V4_ONLY
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          access_log:
          - name: envoy.access_loggers.file
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
              path: "/dev/stdout"
              typed_json_format:
                <<: *json_format
                network:
                  direction: "outbound"
  clusters:
  - name: reverse_proxy_cluster
    connect_timeout: 0.25s
    type: strict_dns
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: reverse_proxy_cluster
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: <IP_ADDRESS>
                port_value: 8080
  - name: forward_proxy_cluster
    connect_timeout: 1s
    lb_policy: CLUSTER_PROVIDED
    cluster_type:
      name: envoy.clusters.dynamic_forward_proxy
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig
        dns_cache_config:
          name: forward_proxy_cache_config
          dns_lookup_family: V4_ONLY
    transport_socket:
      name: envoy.transport_sockets.tls
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
        common_tls_context:
          validation_context:
            trusted_ca: {filename: /etc/ssl/certs/ca-certificates.crt}

This probably needs someone to dig into whether this is a yaml-cpp issue or if there is something that can be done on the Envoy side to support this.

@snowp it's indeed an yaml-cpp problem. Doesn't look like they want to support this because it's not in the official 1.2 spec. That's quite unfortunate. I guess this is not an Envoy problem per se.


Support custom pattern

Currently, we are using pattern {{file "path/to/the/file"}}
We should support custom it by user, such as:
%%file "path/to/the/file"%%
{{load "path/to/the/file"}}

support to change
{{
and
}}
The
file "file/path" is required


Less command not scrolling properly via mouse/touchpad

[x] I am on the latest Hyper.app version
[x] I have searched the issues of this repo and believe that this is not a duplicate

OS version and name: Antergos Linux (4.9.11 kernel)
Hyper.app version: 1.2.1
Link of a Gist with the contents of your .hyper.js: https://gist.github.com/c0mpute/5d5e20dcabd80e93f35a6995f35964f5
Relevant information from devtools (CMD+ALT+I on Mac OS, CTRL+SHIFT+I elsewhere): N/A
The issue is reproducible in vanilla Hyper.app: Yes

Issue

Hi,
I have an annoying problem when using the less command in Hyper. In any other terminal, I can scroll through the contents of the file in less using the touchpad. However, in Hyper, the touchpad scrolls the contents of the terminal history instead of the contents of the file in less. This superuser post explains it the best, but the root problem there has something to do with the LESS environment variable, which is the same in all terminals.
My guess is Hyper consumes all the mouse events before reaching less, which results in scrolling the terminal instead of the contents of the file.

Try this plugin: https://www.npmjs.com/package/hyperterm-alternatescroll

Hey there, please try again with the new Hyper v2 release and open a new issue if the problem stills exists. Thank you!


Inconsistent output between dotnet build and msbuild

There is a formatting difference between .NET Framework and .NET (Core) when it comes to double values.
Specifically, when a method has a double parameter with double.Epsilon as its default value, you get something like
  public void Foo(double arg = 4.94065645841247E-324D);

when using msbuild.exe (.NET Framework binary), but
  public void Foo(double arg = 5E-324D);

when using dotnet.exe (.NET Core binary).
This also happens with the "round trip compatible" formatting ("R"). It looks like using "G17" as format string has the same result on both platforms.
In addition, it may be desirable to detect and map "well known" values like double.Epsilon to their name.

The same applies to float values, with "G9" being the same-everywhere format string.


Upgrade Perun Pallet v0.2.0

This PR upgrades the Perun Pallet to version 0.2.0 and slightly revises the README.

My bad. The upgrade has already been merged, but the README update hasn't. Might create a separate PR for this with the correct branch name.


Amtool

Adds amtool per #149

/codefresh run apk

/codefresh run docker

/codefresh run apk

/codefresh run docker

@zloeber build is failing:
/bin/bash: /codefresh/volume/packages/tmp/build.mjnPAk/src/amtool: cannot execute binary file: Exec format e
rror

This is usally because package depends on libc6-compat
To debug, this is what I would run:
make docker/build/apk/shell
make -C vendor/amtool apk

Sorry, I'm looking into this and the build error is because the test of the executable is actually trying to run the tar.gz file for reasons I've yet to discern. I made some minor changes to fall more in line with what other packages are doing for instances where the repo name does not align with the app being installed but cannot seem to get the build to test properly regardless. I suppose the closest model app would be fzf (in theory at least). I'll keep digging into this when I can but will take any more hints you have to give :)

Aha, ok I will take a look. Don’t spend too much time ;)
Maybe look at where we define a “prepare*” target
I ran into this the other day, but forget which package.

I believe that the auto-label tasks are failing the build at this point. I haven't quite figured out the auto-label goals yet but I get make errors about the use of : and :: on the same task (I worked around the local build issues by changing the tasks but wasn't certain what else would be broken upstream because of it). In another pull request of more questionable value (feature/package_helpers) I left the makefile changes for auto-label though.
Thanks

I haven't quite figured out the auto-label goals yet but I get make errors about the use of : and :: on the same tas

re-run make init as this was fixed upstream in the build-harness https://github.com/cloudposse/build-harness/pull/187

Ignore all the auto-* failures - those won't run on forks due to github security model

Just one thing... The README.md is generated from the README.yaml. Make all your changes to the README.yaml, then rebuild.
Please rebuild the README.md by running the following commands:
make init
make readme/deps
make readme

There might be a lot of changes in the README.md as a result. That's okay!
Sorry for the inconvenience!

/codefresh run apk

/codefresh run docker


cannot parse list

Hi,
I could be missing something, but I am trying to parse the output of "zrange 'BF' 0 -1", which in the redis-cl environment returns a list, but in my c program I am unable to see the same list:
roughly my code flows along the lines of, using blocking mode:
void *reply;
va_start(ap,format);
reply=redisvCommand(ctx, format, ap);
va_end(ap);
if (!reply) error();
if (reply->type==REDIS_REPLY_ERROR) error();
if (reply->type != REDIS_REPLY_ARRAY) error();
syslog(LOG_INFO, " RESULT: Received (%d) elements ", reply->elements);
I get zero elements, so obviously cannot loop, but no logical errors as per the conditionals above.
Can you please provide feedback as to what I am doing wrong here?
regards

Did you consider the fact that the sorted set could indeed be empty (= nonexistent)?

As per my post, the same command manually returns a populated list in the redis client environment. i am trying to retrieve the same list programatically.

Hi
I think I worked out what the issue was. hiredis doesn't like  the  apostrophe round BF as in "zrange 'BF' 0 -1". if I remove that, then programming semantics are OK. It works though with the apostrophe in the coomand line client.
Seems like a feeble issue though for a mature client like hdredis; surely it should be able to cope with that, or issue some feedback if doesn't like it.

redisvCommand sends the command based on the format you give it. This format is split by spaces. It thus send the literal 'BF' as a key (that is a 4-character key). Of course this doesn't work.
redis-cli on the other hand is a smart command line tool, which does a lot more with your input, such as correctly parsing quote-surrounded text.


Fix clang-tidy step on CircleCI

Any background context you want to provide?
The clang-tidy checks have been disabled (unintentionally) on CircleCI since I changed it to do use a shallow clone. We still need the shallow clone to avoid copying the whole repo between steps, but I've changed it to do a full clone just for the clang-tidy step.

TBH, I think it would be best to use the CMAKE_CXX_CLANG_TIDY functionality and remove the script entirely. This catches more errors and doesn't need to be maintained...
Just make sure that the .clang-tidy file is being used.

Good idea. I didn't realize there was such an option to CMake. I'll update it to use that instead.

Does CMAKE_CXX_CLANG_TIDY work if we only have a shallow copy of our repo? Or will this always run clang-tidy on all targets?

This will run it on all targets, so no need for a full clone. It's potentially a bit slower to do it like this (haven't timed it) but gets rid of the additional script.


How to rapidly route internet back to ISP1 when its back online?

Helo there! Thanks for this amazing tool.
I have Cable Internet (ISP1) and 3G modem (ISP2) routed through a Raspberry Pi3b with this setup.
When Cable Internet (ISP1) goes down, 3G modem (ISP2) gets active and it works well.
But when Cable Internet (ISP1) is back online, the active connection keeps using 3G modem (ISP2).
There is a setting to rapidly route internet back to ISP1 when its back online?
Thanks!

This should be fixed in version 1.31, just released.


VTOL: Stall Test falure

Hi guys,
We've had a day for Stall Test the FW flight of our VTOL. We chose a dead weather in order to have clearer graphics.
Our PR_P and PR_I are a little stronger, but that is how we like if for this part of testing, so don't pay attention to this. In FW it is tracking well.
So the test is simple. Use cruise throttle and speed in manual. 0.6 throttle ~1580us and speed 14m/s then apply pitch up command gradually. Then lower the throttle bellow the middle again gradually pitch up and hold and finally lower even further the throttle and apply full pitch up command. At the end of this roller coaster the plane stalls. So the Bigaole FC does very well stall prevention techniques during all this three phases of flight. Approaching stall Bigaole starts to decrease the Pitch up input from the RC. Once the airspeed is so low that the plane stalls it starts rolling to one side. Gaining this little airspeed during the stall is enough for the Bigaole to level the plane back then again it rolls to the other side, and again the Bigaole gains control and levels it. In this manner finally we have some sort of crash landing, but in 90% of the cases a without any damage to the VTOL. Also from this situation we recovered very easily just by applying throttle. The Bigaole manages to just level the plane and recover.
I understand that you are developing a quad recovery procedures. But I think that very robust stall recovery mechanism will be very good for the novice user even in Manual Stabilized flight.
Here is the whole experiment
The stall speed is about 8-9 m/s

In the second image I offset the airpseed to make it visual over the other graphics.

I could not understand why the PX4 does allow me to stall the plane? Why does it followed its rate SP in the full Pitch Up command and crashed it. I see it gained speed probably after stall recovery but it was faaar away from stall to allow me at that very moment to give full pitch up command.
Here is the Log:
http://logs.uaventure.com/view/rC8brf6SzmZPMArDMsBpqj
Other than that the VTOL hovers transitions and flies perfect!

You flew in attitude mode. There is no stall protection because this is a manual flight mode. If you want stall protection don't fly in attitude. Use altitude control or position control.
The same way as a quad will crash if you apply too little throttle in attitude control mode, a plane will crash here. I also don't think that the flight mode name or type does mismatch expectations (except for the ones you had here).

@LorenzMeier So you are saying that I have to reply to a customer with crash for 1-5k USD they did not use the right mode?
In my opinion Stabalized flight is assisted mode, and that is how it is perceived by the average user, most of the time even by the advanced users. When in Stabalized flight despite the computer does not have control over the throttle it can apply stall techniques to safe the airplane or VTOL in FW flight. We used a 60 US simple stabilization 1x2cm with 3 gyros that does it... In our case we had enabled VT_FW_PERM_STAB = 1 in the PX4 which means the plane was in Stabalized despite it reported Manual in QGC.
Actually in the real aviation the stall warning is probably the single most important warning for the pilots. And in smaller planes it is implemented with mechanical sensor not with airspeed which shows its importance to the pilot.
In most cases stall maneuvers are made without applying throttle. There is even spin recovery procedures that does not include throttle. So stall can be recovered without throttle just by leveling a plane and giving 15deg slope angle.
Also I've seen a lot of guys with APM and OSD to have a stall warnings on their displays doing FPV. That was very very important for them when in manual Stabilized flight. It is not a bad idea to have a stall warning in the QGC and also to have it as MAV to the OSD.
Stall prevention and recovery is such a fundamentally important thing for the airplanes it should be implemented in all modes except Acrobatic modes. IE rate modes. Making a stall prevention in Stabalized FW Is just making sure that the plane will level itself during the moments of gaining speed. Trying to give 15degrees slope angle and also preventing my input when it is in conjunction of anti stall dynamics.
So now it turns out that you guys implement and work on Awarenes and Avoidance with super high tech sensors and algorithms and did not have the simple most important algorithm implemented in Stabalized. Of course it is easier the have it in Altitude and Position control with the Throttle but why not extend it to Stabalized.
In the era of Drone crashes bad publicity and regulations the producers of more reliable machines will rule the business.
We always presume our drones are going to be flown by amatures. This way we guarantee safety!!! Soon there will be nasty regulations about this aircraft. The advanced users make mistakes too. So that is why we rely on computers, to take in the moments we are off for some reason.
I dont understand what you mean by this:
"I also don't think that the flight mode name or type does mismatch expectations (except for the ones you had here)."

Notice that we did not remove the throttle. We just held it between 35-45% which should be far enough for stall recovery. Actually doing good stall recovery will be very good for the gliding abilities of the PX4 and make the indestructible glider controller.

Not a single multirotor on the market can be flown in stabilized. They only allow position control. It's your responsibility to not allow customers to get into the wrong flight mode. Let us know if you need support in QGC to disable particular flight modes from the configuration options.

:+1: for hiding flight modes in QGC. If nothing else I'd prefer to not see acro and rattitude as options when flying a plane.

I agree with you on the allowed modes. It would be fantastic if we could arm and take off in Altitude Control in quad mode of the VTOL, otherwise we cannot hide Manual mode.
We've had a problem before with a preset Acro switch to transition from Hover Stabilized to FW Stabilized. The Acro switch was reversed in both modes so we used VT_FW_PERM_STAB = 1 which is again some sort of problem concerning that it reports in QGC as only Manual in FW flight. May be this is corrected now we never tested again. But we will in two days.
Still it is not a bad idea to have a stall warning in QGC and to the OSD even in Manual FW flight. The usual case I've seen here for FPV plane flying is that they fly them Stabilized and half of the time they are gliding to safe power.

APM approach.
http://ardupilot.org/plane/docs/stall-prevention.html

Stall prevention on planes is a must as well as stall recovery. With APM I have still had stalls but that was due to bad airspeed sensors. They tried to solve the bad airspeed issue by adding AHRS wind max parameter for which after X wind resistance the flight controller switches to GPS and disregards the airspeed sensor. The solution they came up with half works I believe the only way to do it properly it to have 3 airspeed sensors and mounting the pitot tubes all side by side to eliminate the bad airspeed readings which lead to major issues in stall prevention.

@jcooper21 I think using 3 pitot tubes for prosumer or hobbist product is unpractical because of weight and complications. But I've seen decent results with just a gyro, accel and GPS to other smaller controllers.

I agree with you but it leaves a fundamental question to be answered. Is it PX4 pro as in professional or prosumer. If it's professional then that would be the best way for maximum redundancy. With that being said no one says a hobbiest has to use 3 airspeed sensor however best results would be achieved that was for stall prevention.


User data: checkUsernameAvailability

Checks to see if a username is available on the server.
Checks to see if a username is available, and valid, for the server.
The server should check to ensure that, at the time of the request, the
username requested is available for use. This includes verifying that an
application service has not claimed the username and that the username
fits the server's desired requirements (for example, a server could dictate
that it does not permit usernames with underscores).
Matrix clients may wish to use this API prior to attempting registration,
however the clients must also be aware that using this API does not normally
reserve the username. This can mean that the username becomes unavailable
between checking its availability and attempting to register it.

Completed.


chore: make context aware

Same as all the other ones, bit of clean up, bit of context awareness, bit of nan upgrade 👍

In this case npm test did not pass as standard was not installed.  Also the test did not match behavior on non-windows so I updated the test 👍


Always show meter event attributes

Always show meter event attributes, even if the event is not defined.

Note: attribute "description" is now "events"


success Msg on register

Description
A clear and concise description of what the PR does.

This PR does the following:

Adds ... #455
Updates ... Updated the feature

Related Issues
Fixes #455 .

Placeholder: "Fixes #455 "

Changes
List the detailed changes made in this PR.

Added a new feature to ... SignUpPage

Testing Instructions
Detailed instructions on how to test the changes. Include any setup needed and specific test cases.

Pull this branch.
Run npm install to install dependencies.
Run npm test to execute the test suite.
Verify that ...

Screenshots (if applicable)

Checklist
Make sure to check off all the items before submitting. Mark with [x] if done.

[ X] I have performed a self-review of my code
[ X] I have commented my code, particularly in hard-to-understand areas
[ X] My changes generate no new warnings
[ X] I am working on this issue under GSSOC

Description
A clear and concise description of what the PR does.

This PR does the following:

Adds ... [Feature Request]: success confirmation msg upon registering #455
Updates ... Updated the feature

Related Issues
Fixes #455 .

Placeholder: "Fixes [Feature Request]: success confirmation msg upon registering #455 "

Changes
List the detailed changes made in this PR.

Added a new feature to ... SignUpPage

Testing Instructions
Detailed instructions on how to test the changes. Include any setup needed and specific test cases.

Pull this branch.
Run npm install to install dependencies.
Run npm test to execute the test suite.
Verify that ...

Screenshots (if applicable)

Checklist
Make sure to check off all the items before submitting. Mark with [x] if done.

[ X] I have performed a self-review of my code
[ X] I have commented my code, particularly in hard-to-understand areas
[ X] My changes generate no new warnings
[ X] I am working on this issue under GSSOC

Kindly resolve these conflicts @Ishika-Gupta06


Code part: No notification of exceptions in postamble with any setting

If an exception is raised in the postamble, NUMBAS silently stops running it and continues the grading without any kind of notification. The below example demonstrates this, raising an exception that results in the following code being unreachable:
https://numbas.mathcentre.ac.uk/question/share/edit/a4e16511-5d8e-446f-931c-bdf7b287f85d
I realize there may be security issues with students triggering exceptions to peek into marking code via tracebacks, but this makes debugging code parts extremely difficult.

I don't know what if anything to do about this, but fixing this bug may break existing questions that were working - I am importing a question that calls a nonexistent function mark in the postamble but which worked fine because the postamble wasn't expected to do anything; now it marks every solution wrong. Easily fixed, but it is an example of a question that worked before this fix was applied and not after.


Language Support - Rust, Java, Kotlin?

Depfu seems to be very interesting, however it works only with languages that I (personally) don't use, hence my question: Is there any planned support for languages like Rust, Java or Kotlin?
In the Rust ecosystem you have the cargo package manager that uses a Cargo.tomland a Cargo.lockfile for dependency management.
In the Java/Kotlin ecosystem there are several tools, but I believe one of the most common is Gradle, although in this case the build process doesn't necessarily have a fixed structure.
Even if not these languages specifically I think it would be interesting for users to have an idea of which languages are planned to be supported, or maybe to allow for the community to contribute language support in some way.

@rpsrosario Thanks for that feedback. We're always interested to hear what other languages would be interesting for people, so I'll count these as votes for Gradle and Cargo. :)
The reason we haven't talked about plans to support other languages is because we haven't made any decisions yet, as we're still trying to figure out what would make the most sense for us.

@halfbyte Thank you for your answer :)
You mentioned that you'll count these as votes for Gradle and Cargo, is there someplace where people can check which languages / frameworks are being requested the most?

Closing this in favor of a more general issue: https://github.com/depfu/feedback/issues/38


Correctly handle resource variables in control_dependencies

This PR includes the FuncGraph changes required to rollforward #40564 and fixes handling of resource variables as input to control dependencies.
/cc @alextp @crccw

Looks like the cla/google bot is stuck (Just to confirm that I have signed the CLI and have contributed to TF in the past).

Can we please add some tests to this change? There seems to a be quite a few subtle changes here which are very hard to understand as to why they are needed.

@jaingaurav That's a fair point. Those changes are mainly required for fixing the AutoCastVariable issues when assigning to a variable in a distributed strategy and have been discussed in #40564 which was reverted due to internal failures on TPU.
Unfortunately the only way I was able to find a unittest for this was with the upcoming changes to AutoCastVariable. I resubmitted the changes in #41214 which includes a unittest which would fail without these changes and additional comments with links to the relevant discussion that try to answer the the comments you made.


Bluetooth: Controller: Fix access of uninitialized bt_dev.le.acl_pkts

ISO Synchronized Receiver only builds do not transmit and hence may not have any tx buffers allocated in a
Controller, leaving bt_dev.le.acl_pkts semaphore
uninitialized. Do not use the semaphore if no Tx buffers allocated in a Controller.
Regression in commit ef19c64f1b77 ("Bluetooth: host: poll on CTLR buffers instead of host TX queue").
Signed-off-by: Vinayak Kariappa Chettimada<EMAIL_ADDRESS>

Could you fix the prefix of the commit message? I almost reassigned this to you, but then noticed it’s actually a host change.


Enable new Ruff rules on CI

Description
Enable new Ruff rules on CI
Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library
[ ] Bump-up library or tool used for development (does not change the final image)
[x] CI configuration change
[ ] Konflux configuration change

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 92.48%. Comparing base (be25e61) to head (94ecc63).
Report is 16 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1782      +/-   ##
==========================================
- Coverage   95.01%   92.48%   -2.54%
==========================================
  Files          61       61
  Lines        2751     2755       +4
==========================================
- Hits         2614     2548      -66
- Misses        137      207      +70

see 8 files with indirect coverage changes

/override "Red Hat Konflux / ols-enterprise-contract / lightspeed-service"

/retest

/lgtm

/approve

/override "Red Hat Konflux / lightspeed-service-on-pull-request"
/override "Red Hat Konflux / ols-enterprise-contract / lightspeed-service"

/test ci/prow/e2e-ols-cluster-4-16

/test ci/prow/e2e-ols-cluster-4-16
/test ci/prow/e2e-ols-cluster-4-17

/test e2e-ols-cluster-4-16
/test e2e-ols-cluster-4-17

/unhold

/test e2e-ols-cluster-4-15
/test e2e-ols-cluster-4-16

/test e2e-ols-cluster-4-17

/test e2e-ols-cluster-4-17


Document kubeadm --skip-preflight-checks.

cc @kubernetes/sig-cluster-lifecycle

This change is

Needs a rebase yet @dgoodwin

Rebased.

LGTM


Remove C++11 header

Description
This was caught by someone writing a Conan package for SFML 2.6.0.
https://github.com/conan-io/conan-center-index/pull/18069#discussion_r1243817430
In practice this is a meaningless change but I'm fixing it for the sake of pedantry. Because C99 already provides fixed-width integers, we can rely on them. We can't use sf::Uint64 here since it's an unsigned long on some platforms and unsigned long long on others which apparently causes issues with using it as a parameter in a function pointer as is the case on line 112.

SFMLBuildMaster: Build this please.


remove compiler warnings of joinWith tests

Coverage decreased (-0.01%) to 93.35% when pulling 5f9e0851da9e74c12e04f5a62cb7aeb1a8ab7589 on PascalSchumacher:StringUtilsTest_compiler_warnings into d6dd2b4cd4a337c5517952680c3714e5d08e9cb8 on apache:master.

Thanks for merging! :)


missing foundation sfid in cla group update event

missing foundation sfid in cla group update event was preventing querying via the foundation sfid.

addresses PCC-814


Keeping a list of CMIP6 datasets for which the basic tutorial recipe does not work

It would be very helpful if those using, or attempting to use, the CMIP6 recipe would add their list of failures to this issue.
Some of these failures will not be fixable, but some will just need simple pre-processing or added xarray kwargs.
Hopefully we can keep track of them here.

Here is a failure:
dataset = 'IPSL-CM6A-LR.abrupt-4xCO2.r1i1p1f1.Lmon.cLeaf.gr'

What happens?
The netcdf files cannot be opened without specifying decode_coords=False in a simple xr.open_dataset() or in the recipe itself. For example:
file_url = fs_s3.open(input_urls[0], mode='rb')
ds = xr.open_dataset(file_url)
ds

gives the following error:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-11-ad8e2cbfca11> in <module>
      3
      4 file_url = fs_s3.open(input_urls[0], mode='rb')
----> 5 ds = xr.open_dataset(file_url)
      6 ds

/usr/local/python/anaconda3/envs/pangeo-forge3.8/lib/python3.8/site-packages/xarray/backends/api.py in open_dataset(filename_or_obj, group, decode_cf, mask_and_scale, decode_times, concat_characters, decode_coords, engine, chunks, lock, cache, drop_variables, backend_kwargs, use_cftime, decode_timedelta)
    555
    556     with close_on_error(store):
--> 557         ds = maybe_decode_store(store, chunks)
    558
    559     # Ensure source filename always stored in dataset object (GH issue #2550)

/usr/local/python/anaconda3/envs/pangeo-forge3.8/lib/python3.8/site-packages/xarray/backends/api.py in maybe_decode_store(store, chunks)
    451
    452     def maybe_decode_store(store, chunks):
--> 453         ds = conventions.decode_cf(
    454             store,
    455             mask_and_scale=mask_and_scale,

/usr/local/python/anaconda3/envs/pangeo-forge3.8/lib/python3.8/site-packages/xarray/conventions.py in decode_cf(obj, concat_characters, mask_and_scale, decode_times, decode_coords, drop_variables, use_cftime, decode_timedelta)
    644         raise TypeError("can only decode Dataset or DataStore objects")
    645
--> 646     vars, attrs, coord_names = decode_cf_variables(
    647         vars,
    648         attrs,

/usr/local/python/anaconda3/envs/pangeo-forge3.8/lib/python3.8/site-packages/xarray/conventions.py in decode_cf_variables(variables, attributes, concat_characters, mask_and_scale, decode_times, decode_coords, drop_variables, use_cftime, decode_timedelta)
    524             if "coordinates" in var_attrs:
    525                 coord_str = var_attrs["coordinates"]
--> 526                 var_coord_names = coord_str.split()
    527                 if all(k in variables for k in var_coord_names):
    528                     new_vars[k].encoding["coordinates"] = coord_str

AttributeError: 'Empty' object has no attribute 'split'

Attempted Fix:
Adding xarray_open_kwargs = {'decode_coords':False}, to the recipe gets past this problem.
But then, caching the input data:
for input_name in recipe.iter_inputs():
      recipe.cache_input(input_name)

throws another error:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-1fbdc3dc8329> in <module>
      4     # if caching the input:  (must also use if metadata_caching?)
      5     for input_name in recipe.iter_inputs():
----> 6         recipe.cache_input(input_name)
      7
      8     # use recipe to create the zarr store:

/usr/local/python/anaconda3/envs/pangeo-forge3.8/lib/python3.8/site-packages/pangeo_forge/recipe.py in cache_func(input_key)
    339             _copy_btw_filesystems(input_opener, target_opener)
    340             if self._cache_metadata:
--> 341                 self.cache_input_metadata(input_key)
    342
    343         return cache_func

/usr/local/python/anaconda3/envs/pangeo-forge3.8/lib/python3.8/site-packages/pangeo_forge/recipe.py in cache_input_metadata(self, input_key)
    444             metadata = ds.to_dict(data=False)
    445             mapper = self.metadata_cache.get_mapper()
--> 446             mapper[_input_metadata_fname(input_key)] = json.dumps(metadata).encode("utf-8")
    447
    448     @contextmanager

/usr/local/python/anaconda3/envs/pangeo-forge3.8/lib/python3.8/json/__init__.py in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
    229         cls is None and indent is None and separators is None and
    230         default is None and not sort_keys and not kw):
--> 231         return _default_encoder.encode(obj)
    232     if cls is None:
    233         cls = JSONEncoder

/usr/local/python/anaconda3/envs/pangeo-forge3.8/lib/python3.8/json/encoder.py in encode(self, o)
    197         # exceptions aren't as detailed.  The list call should be roughly
    198         # equivalent to the PySequence_Fast that ''.join() would do.
--> 199         chunks = self.iterencode(o, _one_shot=True)
    200         if not isinstance(chunks, (list, tuple)):
    201             chunks = list(chunks)

/usr/local/python/anaconda3/envs/pangeo-forge3.8/lib/python3.8/json/encoder.py in iterencode(self, o, _one_shot)
    255                 self.key_separator, self.item_separator, self.sort_keys,
    256                 self.skipkeys, _one_shot)
--> 257         return _iterencode(o, 0)
    258
    259 def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,

/usr/local/python/anaconda3/envs/pangeo-forge3.8/lib/python3.8/json/encoder.py in default(self, o)
    177
    178         """
--> 179         raise TypeError(f'Object of type {o.__class__.__name__} '
    180                         f'is not JSON serializable')
    181

TypeError: Object of type Empty is not JSON serializable

Naomi do you understand what it is about this dataset that is causing the error?

Actually, no, it is puzzling.  It looks perfectly normal when using decode_coords=False :
<xarray.Dataset>
Dimensions:      (axis_nbounds: 2, lat: 143, lon: 144, time: 3600)
Coordinates:
  * lat          (lat) float32 -90.0 -88.73 -87.46 -86.2 ... 87.46 88.73 90.0
  * lon          (lon) float32 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5
  * time         (time) datetime64[ns] 1850-01-16T12:00:00 1850-02-15 ... NaT
Dimensions without coordinates: axis_nbounds
Data variables:
    time_bounds  (time, axis_nbounds) datetime64[ns] ...
    cLeaf        (time, lat, lon) float32 ...
Attributes: (12/51)
    name:                   /ccc/work/cont003/gencmip6/p86maf/IGCM_OUT/IPSLCM...
    Conventions:            CF-1.7 CMIP-6.2
    creation_date:          2018-05-03T13:17:14Z
    description:            DECK: abrupt-4xCO2
    title:                  IPSL-CM6A-LR model output prepared for CMIP6 / CM...
    activity_id:            CMIP
    ...                     ...
    EXPID:                  abrupt-4xCO2
    CMIP6_CV_version:       cv=<IP_ADDRESS>-2-g63b123e
    dr2xml_md5sum:          00e1a4f623b35a33620b9828c66bd1c8
    model_version:          6.1.2
    tracking_id:            hdl:21.14100/ac30efbd-7121-4ee5-9fa8-c98255426b74
    history:                Thu Jul 26 18:44:23 2018: ncatted -O -a tracking_...

and seems fine when downloading and then opening the downloaded copy with xr.open_dataset() (without the decode_times=False)!  So only on the S3 copy when opening through the s3fs.S3FileSystem.  I will try a direct open, if their opendap server is working.
Here is the link to the file directly from esgf: cLeaf_Lmon_IPSL-CM6A-LR_abrupt-4xCO2_r1i1p1f1_gr_185001-214912.nc

... and it opens fine using the opendap url:
url = 'https://aws-cloudnode.esgfed.org/thredds/dodsC/CMIP6/CMIP/IPSL/IPSL-CM6A-LR/abrupt-4xCO2/r1i1p1f1/Lmon/cLeaf/gr/v20190118/cLeaf_Lmon_IPSL-CM6A-LR_abrupt-4xCO2_r1i1p1f1_gr_185001-214912.nc'
ds = xr.open_dataset(url)

so the only problem is with:
fs_s3 = s3fs.S3FileSystem(anon=True)

s3_url = 's3://esgf-world/CMIP6/CMIP/IPSL/IPSL-CM6A-LR/abrupt-4xCO2/r1i1p1f1/Lmon/cLeaf/gr/v20190118/cLeaf_Lmon_IPSL-CM6A-LR_abrupt-4xCO2_r1i1p1f1_gr_185001-214912.nc'
file_url = fs_s3.open(s3_url, mode='rb')
ds = xr.open_dataset(file_url)

So it sounds like we have found an s3fs bug? pinging @martindurant, our fsspec superhero 🦸

Just to help get to the bottom of it, could you try the following.
ds1 = ds.open_dataset(opendap_url, decode_coords=False).load()
ds2 = ds.open-dataset(s3_file, decode_coords=False).load()
ds1.identical(ds2)

This should help surface whatever tiny difference is behind this problem.

Logging from s3fs shows nothing more than a bunch of range requests for the given file, I don't see anything immediately suspicious

The ds1.identical(ds2) returns False - but the only thing that is different in the basic information is an extra attribute in the opendap example, ds1,  called 'DODS_EXTRA.Unlimited_Dimension:  time'.
opendap_url = 'https://aws-cloudnode.esgfed.org/thredds/dodsC/CMIP6/CMIP/IPSL/IPSL-CM6A-LR/abrupt-4xCO2/r1i1p1f1/Lmon/cLeaf/gr/v20190118/cLeaf_Lmon_IPSL-CM6A-LR_abrupt-4xCO2_r1i1p1f1_gr_185001-214912.nc'
fs_s3 = s3fs.S3FileSystem(anon=True)
s3_url = 's3://esgf-world/CMIP6/CMIP/IPSL/IPSL-CM6A-LR/abrupt-4xCO2/r1i1p1f1/Lmon/cLeaf/gr/v20190118/cLeaf_Lmon_IPSL-CM6A-LR_abrupt-4xCO2_r1i1p1f1_gr_185001-214912.nc'
s3_file = fs_s3.open(s3_url, mode='rb')

ds1 = xr.open_dataset(opendap_url, decode_coords=False).load()
ds2 = xr.open_dataset(s3_file, decode_coords=False).load()
ds1.identical(ds2)

False

print(ds1)

<xarray.Dataset>
Dimensions:      (axis_nbounds: 2, lat: 143, lon: 144, time: 3600)
Coordinates:

lat          (lat) float32 -90.0 -88.73 -87.46 -86.2 ... 87.46 88.73 90.0
lon          (lon) float32 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5
time         (time) datetime64[ns] 1850-01-16T12:00:00 1850-02-15 ... NaT
Dimensions without coordinates: axis_nbounds
Data variables:
time_bounds  (time, axis_nbounds) datetime64[ns] 1850-01-01 ...
Conventions:                     CF-1.7 CMIP-6.2
creation_date:                   2018-05-03T13:17:14Z
description:                     DECK: abrupt-4xCO2
title:                           IPSL-CM6A-LR model output prepared for C...
activity_id:                     CMIP
...                              ...
CMIP6_CV_version:                cv=<IP_ADDRESS>-2-g63b123e
dr2xml_md5sum:                   00e1a4f623b35a33620b9828c66bd1c8
model_version:                   6.1.2
tracking_id:                     hdl:21.14100/ac30efbd-7121-4ee5-9fa8-c98...
history:                         Thu Jul 26 18:44:23 2018: ncatted -O -a ...
DODS_EXTRA.Unlimited_Dimension:  time

print(ds2)

<xarray.Dataset>
Dimensions:      (axis_nbounds: 2, lat: 143, lon: 144, time: 3600)
Coordinates:

lat          (lat) float32 -90.0 -88.73 -87.46 -86.2 ... 87.46 88.73 90.0
lon          (lon) float32 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5
time         (time) datetime64[ns] 1850-01-16T12:00:00 1850-02-15 ... NaT
Dimensions without coordinates: axis_nbounds
Data variables:
time_bounds  (time, axis_nbounds) datetime64[ns] 1850-01-01 ...
Conventions:            CF-1.7 CMIP-6.2
creation_date:          2018-05-03T13:17:14Z
description:            DECK: abrupt-4xCO2
title:                  IPSL-CM6A-LR model output prepared for CMIP6 / CM...
activity_id:            CMIP
...                     ...
EXPID:                  abrupt-4xCO2
CMIP6_CV_version:       cv=<IP_ADDRESS>-2-g63b123e
dr2xml_md5sum:          00e1a4f623b35a33620b9828c66bd1c8
model_version:          6.1.2
tracking_id:            hdl:21.14100/ac30efbd-7121-4ee5-9fa8-c98255426b74
history:                Thu Jul 26 18:44:23 2018: ncatted -O -a tracking_...

The problem is with the coordinates attribute
ds2c = ds2.copy()
del ds2c.cLeaf.attrs['coordinates']
xr.decode_cf(ds2c)

type(ds2.cLeaf.attrs["coordinates"])
>>> h5py._hl.base.Empty

This looks like an h5py issue actually.

I got to the bottom of this in the xarray issue above.
It actually has nothing to do with fsspec. It's a difference between the netCDF4 engine and the h5netcdf engine in how they handle existing but empty attributes.
One way to solve this would be to use copy_input_to_local_file (see #87). Once you have a local file, xarray with default to engine='netCDF4'.

That is a fix for the recipe, perhaps, but when I just want to xr.open_dataset() using an S3 file-like object (in order to find a good chunk size, for example) it also does not work.  This is why I was using the opendap urls, before (but their opendap server has not been behaving well...).  How does copy_input_to_local_file manage this? Sorry, perhaps  I am being dense here.

Currently only h5netcdf can open files efficiently over http / s3 via fsspec. Your example has uncovered a bug in h5netcdf (https://github.com/pydata/xarray/issues/5172). Therefore, you will not be able to do what you want (open the file remotely) until that bug is fixed.

Another workaround would be to use a preprocessing function to drop the weird coordinates attribute. That is what is causing decode_coords to fail.

Yes, I like that suggestion.  It will be easy to document in our future Ag-style database of pre-concatenation issues and fixes.

@cisaacstern , yes, it looks like this issue is resolved with the newer h5netcdf. Thanks.  I would like to keep this issue open so we can continue to find examples of datasets with issues which can't be handled yet.
Nice work with the CMIP6 tutorial, by the way.  The CSV file actually has a column labeled temporal subset which could be used directly to get your keys argument for ConcatDim.


Service not showing in services.msc list

I have created a console application and tried to host it using TOPSHELF. Its working fine from command prompt but when trying  to install it, it is not getting visible in Services.msc list. Need help.
Thnaks & Regards,
Madhukar Jha

An old thread but it still happens so : In my case I opened a Command window from VS 2017 which I had launched as admin, but that didn't work - the console needs to be opened explicitly as Administrator.


Error after upgrading

Upgraded last night to the latest version, and received the following error:
/Users/levisbakalinsky/.oh-my-zsh/lib/misc.zsh:3: parse error near `then'
zsh 5.0.8 (x86_64-apple-darwin14.3.0)

:+1: Getting this as well

the pr for this, it will be merged soon.

Same here.
why there is no "stable" branch?

This was already reported multiple times and the fix should be merged ASAP.
@nick4fake currently our upgrade process is very poor but we will be working on it in the near future.

duplicate of https://github.com/robbyrussell/oh-my-zsh/pull/4002
please close.

This should be fixed now, @levisbakalinsky please confirm and close.