what is wrong when it execute “sh train.sh”

sh train.sh
ubun:2375340:2375340 [0] NCCL INFO Bootstrap : Using [0]enp4s0:<IP_ADDRESS><0>
ubun:2375340:2375340 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation
ubun:2375340:2375340 [0] NCCL INFO NET/IB : No device found.
ubun:2375340:2375340 [0] NCCL INFO NET/Socket : Using [0]enp4s0:<IP_ADDRESS><0>
ubun:2375340:2375340 [0] NCCL INFO Using network Socket
NCCL version 2.7.8+cuda10.2
ubun:2375341:2375341 [0] NCCL INFO Bootstrap : Using [0]enp4s0:<IP_ADDRESS><0>
ubun:2375341:2375341 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation
ubun:2375341:2375341 [0] NCCL INFO NET/IB : No device found.
ubun:2375341:2375341 [0] NCCL INFO NET/Socket : Using [0]enp4s0:<IP_ADDRESS><0>
ubun:2375341:2375341 [0] NCCL INFO Using network Socket
ubun:2375341:2375387 [0] init.cc:573 NCCL WARN Duplicate GPU detected : rank 1 and rank 0 both on CUDA device 1000
ubun:2375341:2375387 [0] NCCL INFO init.cc:840 -> 5
ubun:2375341:2375387 [0] NCCL INFO group.cc:73 -> 5 [Async thread]
ubun:2375340:2375386 [0] init.cc:573 NCCL WARN Duplicate GPU detected : rank 0 and rank 1 both on CUDA device 1000
ubun:2375340:2375386 [0] NCCL INFO init.cc:840 -> 5
ubun:2375340:2375386 [0] NCCL INFO group.cc:73 -> 5 [Async thread]
Traceback (most recent call last):
File "runner.py", line 70, in
Traceback (most recent call last):
File "runner.py", line 70, in
main()
File "runner.py", line 50, in main
main()
File "runner.py", line 50, in main
init_distributed_mode()
File "runner.py", line 31, in init_distributed_mode
init_distributed_mode()
File "runner.py", line 31, in init_distributed_mode
torch.distributed.init_process_group(backend='nccl')
File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 455, in init_process_group
torch.distributed.init_process_group(backend='nccl')
File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 455, in init_process_group
barrier()
File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 1960, in barrier
barrier()
File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 1960, in barrier
work = _default_pg.barrier()
work = _default_pg.barrier()
RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:784, invalid usage, NCCL version 2.7.8
RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:784, invalid usage, NCCL version 2.7.8
Traceback (most recent call last):
File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/launch.py", line 260, in
main()
File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/launch.py", line 256, in main
cmd=cmd)
subprocess.CalledProcessError: Command '['/home/ubuntu/anaconda3/envs/lrgt/bin/python', '-u', 'runner.py', '--local_rank=1']' returned non-zero exit status 1.

sh train.sh ubun:2375340:2375340 [0] NCCL INFO Bootstrap : Using [0]enp4s0:<IP_ADDRESS><0> ubun:2375340:2375340 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation ubun:2375340:2375340 [0] NCCL INFO NET/IB : No device found. ubun:2375340:2375340 [0] NCCL INFO NET/Socket : Using [0]enp4s0:<IP_ADDRESS><0> ubun:2375340:2375340 [0] NCCL INFO Using network Socket NCCL version 2.7.8+cuda10.2 ubun:2375341:2375341 [0] NCCL INFO Bootstrap : Using [0]enp4s0:<IP_ADDRESS><0> ubun:2375341:2375341 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation ubun:2375341:2375341 [0] NCCL INFO NET/IB : No device found. ubun:2375341:2375341 [0] NCCL INFO NET/Socket : Using [0]enp4s0:<IP_ADDRESS><0> ubun:2375341:2375341 [0] NCCL INFO Using network Socket
ubun:2375341:2375387 [0] init.cc:573 NCCL WARN Duplicate GPU detected : rank 1 and rank 0 both on CUDA device 1000 ubun:2375341:2375387 [0] NCCL INFO init.cc:840 -> 5 ubun:2375341:2375387 [0] NCCL INFO group.cc:73 -> 5 [Async thread]
ubun:2375340:2375386 [0] init.cc:573 NCCL WARN Duplicate GPU detected : rank 0 and rank 1 both on CUDA device 1000 ubun:2375340:2375386 [0] NCCL INFO init.cc:840 -> 5 ubun:2375340:2375386 [0] NCCL INFO group.cc:73 -> 5 [Async thread] Traceback (most recent call last): File "runner.py", line 70, in Traceback (most recent call last): File "runner.py", line 70, in main() File "runner.py", line 50, in main main() File "runner.py", line 50, in main init_distributed_mode() File "runner.py", line 31, in init_distributed_mode init_distributed_mode() File "runner.py", line 31, in init_distributed_mode torch.distributed.init_process_group(backend='nccl') File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 455, in init_process_group torch.distributed.init_process_group(backend='nccl') File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 455, in init_process_group barrier() File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 1960, in barrier barrier() File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 1960, in barrier work = _default_pg.barrier() work = _default_pg.barrier() RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:784, invalid usage, NCCL version 2.7.8 RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:784, invalid usage, NCCL version 2.7.8 Traceback (most recent call last): File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/launch.py", line 260, in main() File "/home/ubuntu/anaconda3/envs/lrgt/lib/python3.6/site-packages/torch/distributed/launch.py", line 256, in main cmd=cmd) subprocess.CalledProcessError: Command '['/home/ubuntu/anaconda3/envs/lrgt/bin/python', '-u', 'runner.py', '--local_rank=1']' returned non-zero exit status 1.

Hi, do you use one GPU or multiple GPUs?

thanks so much for your quick reply. I reinstall pytorch framework corresponds to the newer cuda 12.2 version. it is ok. I only use the single GPU device. Do you think there will be any problems with a single GPU?

We run successfully using a single GPU. It needs to change the corresponding parameters in the script (we descript it in READEME.md. By the way, what's the version of pytorch in your environment?

thanks so much for your quick reply. I reinstall pytorch framework corresponds to the newer cuda 12.2 version. it is ok. I only use the single GPU device. Do you think there will be any problems with a single GPU?

We run successfully using a single GPU. It needs to change the corresponding parameters in the script (we descript it in READEME.md). By the way, what's the version of pytorch in your environment?

sorry, later for reply.  my computer's disk crash.  pytorch in my environment is 2.2.2

thanks so much for your quick reply. I reinstall pytorch framework corresponds to the newer cuda 12.2 version. it is ok. I only use the single GPU device. Do you think there will be any problems with a single GPU?

We run successfully using a single GPU. It needs to change the corresponding parameters in the script (we descript it in READEME.md). By the way, what's the version of pytorch in your environment?

sorry, later for reply. my computer's disk crash. pytorch in my environment is 2.2.2

Hi, your version of pytorch seems to be high. We recommend using pytorch version 1.7.1.

thanks so much for your quick reply. I reinstall pytorch framework corresponds to the newer cuda 12.2 version. it is ok. I only use the single GPU device. Do you think there will be any problems with a single GPU?

We run successfully using a single GPU. It needs to change the corresponding parameters in the script (we descript it in READEME.md). By the way, what's the version of pytorch in your environment?

sorry, later for reply. my computer's disk crash. pytorch in my environment is 2.2.2

Hi, your version of pytorch seems to be high. We recommend using pytorch version 1.7.1.

OK. I will try with prtorch 1.7.1. thanks so much for your comments.

I use the pytorch1.7.1, but there are the following error, would you please give some suggestion? thanks so much.
WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/4c6e4bc79308e23e480060a68009533d since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/6f5df8d6d0d77039be286ae2fb79c470 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/12900e06f0f4ec9e49f471d054f6b528 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/686a53aff9209c258d25d8990968dc68 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/20c2bcd71abffc2a93add66353cae8ec since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/a53312711cd84c9fcfea3d4fc15719ea since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/83d2a7a4cd616008e19ccaf2c9aa161d since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/4719acf1c3e56fb489d39b85991ba25a since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/1d6bcf04874000a9ea96bfd37cd8bdfb since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/e72c59779e1a85f05308b39b1b1978d6 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/340bed24d1dbd33ba9142e7277ee08f1 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/2e447f96f152a33a7428866500a95dd8 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/953adc8c58842c1281d9d9b1473043a2 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/3c3161464bb86b2d3ece64552d44d319 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/c48ed09355e7ab34275e12937d8e1776 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/d4882179bb3a1868abc6b16fdb345d24 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/fa63720ea3f8bd379a6e43b878d5b335 since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/54da496566d05afb568b456e2715b08f since volume file not exists.
[WARNING] 2024-05-17 14:11:37,677 Ignore sample 04530566/a88fa5daf540c14a4f6190a680acb783 since volume file not exists.
[INFO] 2024-05-17 14:11:37,677 Complete collecting files of the dataset. Total files: 0.

[INFO] 2024-05-17 14:11:38,412 Parameters in Decoder: 29798625.
[INFO] 2024-05-17 14:11:38,412 Parameters in Merger: 14172674.
Setting sync_batchnorm ...
Traceback (most recent call last):
File "runner.py", line 70, in
main()
File "runner.py", line 59, in main
train_net(cfg)
File "/home/ubuntu/PointCloudProjects/Long-Range-Grouping-Transformer/core/train.py", line 69, in train_net
train_writer, val_writer = pipeline.setup_writer(cfg)
File "/home/ubuntu/PointCloudProjects/Long-Range-Grouping-Transformer/core/pipeline_train.py", line 165, in setup_writer
train_writer = SummaryWriter(os.path.join(cfg.DIR.LOGS, 'train'))
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/tensorboardX/writer.py", line 240, in init
self.file_writer = FileWriter(logdir=log_dir)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/tensorboardX/writer.py", line 184, in init
event_writer = EventFileWriter(logdir, max_queue, flush_secs)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/tensorboardX/event_file_writer.py", line 118, in init
directory_check(self._logdir)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/tensorboardX/event_file_writer.py", line 37, in directory_check
os.makedirs(path)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
[Previous line repeated 2 more times]
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/os.py", line 220, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/PATH'
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 860622) of binary: /home/ubuntu/anaconda3/envs/lrgt_env/bin/python
Traceback (most recent call last):
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/launch.py", line 193, in
main()
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/launch.py", line 189, in main
launch(args)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/launch.py", line 174, in launch
run(args)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/run.py", line 713, in run
)(*cmd_args)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/launcher/api.py", line 131, in call
return launch_agent(self._config, self._entrypoint, list(args))
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/launcher/api.py", line 261, in launch_agent
failures=result.failures,
torch.distributed.elastic.multiprocessing.errors.ChildFailedError:
runner.py FAILED
Failures:
<NO_OTHER_FAILURES>
Root Cause (first observed failure):
[0]:
time      : 2024-05-17_14:11:40
host      : ubun
rank      : 0 (local_rank: 0)
exitcode  : 1 (pid: 860622)
error_file: <N/A>
traceback : To enable traceback see: https://pytorch.org/docs/stable/elastic/errors.html

What configuration issue causes the error below?

[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/d608bdcd8a87f3af7d2dc2b4ad06dc44 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/aac813074775281a4163d08524f89006 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/6737f75bb87e3cc0847c4e55bb965ab0 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/27e9a27b6e3b49c227ac692756be9e24 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/a5fa8ae8f743d5498052128bafa4f7d8 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5456c7546e3f3c3d9c5408f4f799fe72 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/7b602de66f5eff247991cd6455da4fb3 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/e3923f2d2fc2d1d39263b5578aef09fa since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/8497e02fa1662113776d8bc79b9caa2c since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/f5a0bce67dca5ccbe3de75b155d3b403 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/39875815bdfdce2193b1b9ed21f1fb92 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/ff2b8253ca3190d5d65fb76f5f0a1db7 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5e8ce498a93fb7eae1a9c234926c21e2 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/e49935adf322de2f77e672c4996ec4a3 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5b86640d3bc2e43decac3f40526a2cc2 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/a431fbb7e58ef0c46c03c11657c96c60 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/8b335b0be37debefd85e5191b992b560 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5bc8a432a5911a4c14621506c22882a0 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/2dbe5ea82a45443b71f3cc81eb6c076e since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/1522b8c3c28a9d57ace571be2585c620 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/14241942d79f89226587cb13c78fb9b since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/80d381a6760185d8c45977b13fbe7645 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/313aaf9d79105fea82fd5ed7e39258c7 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/eadf347da5aa8877da97052ff1f36504 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/7400be7b247ce021be99fd8a5f540d8f since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/954c459bc6762abc24f2ecb72410a6d9 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/ddd02c6fb780d4f6c683d3e7114aaa37 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/358bac5415f0773941d6cd38228b9631 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5d301491ba435b71257fc1c453f165b6 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/a70c472cef0c354dba2abf2ecc57eeda since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5e9890e2f4cab96dbc6cd96a5e6546c since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/d74ea3567f8861dc182929c56117755a since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/52fb0261b905147d2fe023c7dc3e5231 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/296f0b6a15012e33d87f29c9afcc633e since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/4d8ae6327ab4ed301e66f1783a4812d7 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/8877086211c9976cd27beaa6c9701d39 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/6cc258399daf767ae1942965937d3cef since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/147fd27a40793d7e9bbe4f1047e9e5fd since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/70dcc0d460cacce0e63ec060b551ac57 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/bb248dedd82b2f28deed0e4a55ad5dd6 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/4e6264af2f2c3e135a15c264bb25007a since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/320683da0d8bd1f394a6427195fa0bd9 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/ad8623ad47d72317eda0f8d4b3ce03d since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/3216e49e5dd304956bed41d0253513f3 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/e6a9f9135e36b6c17c0ab7347b9e831a since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5d48d75153eb221b476c772fd813166d since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/c189e1768a4f291d4de203ef6842ee61 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/a2f46716962afe72b106d5ef46e12c19 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/9625f56fdbada3377220891f188bc420 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/20d1090d07a49fe927ac692756be9e24 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/6e1781a84b5dbda6fb3e64e796c0391a since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/3b8c16861667747fcfea3d4fc15719ea since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/e88c7403ff401716b7002bddf0942f8e since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/408cdd476e8bb202852ae095a967f0ca since volume file not exists.
[WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/cce41dda51ef0335a413908c0e169330 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/2b17c0705ee0426e53b2b4f48361e0b2 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/cdd493581ed137c5a6dae8586082d789 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/29af666e04825f66576378847ca0b69 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/6a0da87e5858b4373e45dd2f173cbf9b since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/bbf1507f7126733665224ccd01ad35d4 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/7a1754186937d247ad78ed9a26ab1091 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/799d446d33e604f990f7927ebadab5fc since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/bf0084fbcc74d5632754043d4b10740c since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/e1e3c053f4b4f1405e45696ec6d1a105 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/8c3148ee031b15446e0dbba30ac27e8 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/7eedbeaa5216ff06ccd600f441988364 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/9119eaa9b5996cd3b1bb46d2556ba67d since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/ee09bd0664e0a02292b9fcc49a614e2b since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/5a0ca7a6df97542e69c3c818538357ad since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/82138919402b3b8f642f9e27aaf0c47a since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/1356fcf0ea4a95bcbe7ca2216dc1576a since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/201fdafa7287d2fe8a55122197709269 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/133c9fa2562498d28ae10bd53dffee76 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/f8d3af1d1a20123c249ba97ee36ba54 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/7b568afff918289614621506c22882a0 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/3899f8b55ec9f1db8a1ec28cb7d97871 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/5eb2d085267142f26192896700aa3bd4 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/65f78142a6c33a89ea7dce1646d86149 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/e64bb04b54022e708d7bd537eb907025 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/2571a0b3d1eb9280f26f17fb5c4740a9 since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/fd52c80ae21d19251e0d0f6bac6856eb since volume file not exists.
[WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/a9737969ac039c9323dfd33205b06c1a since volume file not exists.

I think the above nonexisting volume file result in the following error, is it right? how to solve it? thanks.
Merger: Similar Token Merger (STM)
[INFO] 2024-05-17 14:37:54,622 Parameters in Encoder: 85892352.
[INFO] 2024-05-17 14:37:54,622 Parameters in Decoder: 29798625.
[INFO] 2024-05-17 14:37:54,623 Parameters in Merger: 14172674.
Setting sync_batchnorm ...
/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/optim/lr_scheduler.py:134: UserWarning: Detected call of lr_scheduler.step() before optimizer.step(). In PyTorch 1.1.0 and later, you should call them in the opposite order: optimizer.step() before lr_scheduler.step().  Failure to do this will result in PyTorch skipping the first value of the learning rate schedule. See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate
"https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate", UserWarning)
[INFO] 2024-05-17 14:37:55,954 [Epoch 1/110] EpochTime = 0.611 (s) Loss = 0.0000
0it [00:00, ?it/s]
Traceback (most recent call last):
File "runner.py", line 70, in
main()
File "runner.py", line 59, in main
train_net(cfg)
File "/home/ubuntu/PointCloudProjects/Long-Range-Grouping-Transformer/core/train.py", line 179, in train_net
iou = test_net(cfg, epoch_idx + 1, val_data_loader, val_file_num, val_writer, encoder, decoder, merger)
File "/home/ubuntu/PointCloudProjects/Long-Range-Grouping-Transformer/core/test.py", line 111, in test_net
test_iou = torch.cat(test_iou, dim=0)
NotImplementedError: There were no tensor arguments to this function (e.g., you passed an empty list of Tensors), but no fallback function is registered for schema aten::_cat.  This usually means that this function requires a non-empty list of Tensors, or that you (the operator writer) forgot to register a fallback function.  Available functions are [CPU, CUDA, QuantizedCPU, BackendSelect, Python, Named, Conjugate, Negative, ADInplaceOrView, AutogradOther, AutogradCPU, AutogradCUDA, AutogradXLA, AutogradLazy, AutogradXPU, AutogradMLC, AutogradHPU, AutogradNestedTensor, AutogradPrivateUse1, AutogradPrivateUse2, AutogradPrivateUse3, Tracer, UNKNOWN_TENSOR_TYPE_ID, Autocast, Batched, VmapMode].
CPU: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/build/aten/src/ATen/RegisterCPU.cpp:18433 [kernel]
CUDA: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/build/aten/src/ATen/RegisterCUDA.cpp:26493 [kernel]
QuantizedCPU: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/build/aten/src/ATen/RegisterQuantizedCPU.cpp:1068 [kernel]
BackendSelect: fallthrough registered at /opt/conda/conda-bld/pytorch_1640811792945/work/aten/src/ATen/core/BackendSelectFallbackKernel.cpp:3 [backend fallback]
Python: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/aten/src/ATen/core/PythonFallbackKernel.cpp:47 [backend fallback]
Named: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/aten/src/ATen/core/NamedRegistrations.cpp:7 [backend fallback]
Conjugate: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/aten/src/ATen/ConjugateFallback.cpp:18 [backend fallback]
Negative: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/aten/src/ATen/native/NegateFallback.cpp:18 [backend fallback]
ADInplaceOrView: fallthrough registered at /opt/conda/conda-bld/pytorch_1640811792945/work/aten/src/ATen/core/VariableFallbackKernel.cpp:64 [backend fallback]
AutogradOther: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradCPU: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradCUDA: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradXLA: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradLazy: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradXPU: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradMLC: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradHPU: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradNestedTensor: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradPrivateUse1: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradPrivateUse2: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
AutogradPrivateUse3: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/VariableType_3.cpp:10215 [autograd kernel]
Tracer: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/torch/csrc/autograd/generated/TraceType_3.cpp:11593 [kernel]
UNKNOWN_TENSOR_TYPE_ID: fallthrough registered at /opt/conda/conda-bld/pytorch_1640811792945/work/aten/src/ATen/autocast_mode.cpp:466 [backend fallback]
Autocast: fallthrough registered at /opt/conda/conda-bld/pytorch_1640811792945/work/aten/src/ATen/autocast_mode.cpp:305 [backend fallback]
Batched: registered at /opt/conda/conda-bld/pytorch_1640811792945/work/aten/src/ATen/BatchingRegistrations.cpp:1016 [backend fallback]
VmapMode: fallthrough registered at /opt/conda/conda-bld/pytorch_1640811792945/work/aten/src/ATen/VmapModeRegistrations.cpp:33 [backend fallback]
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 946051) of binary: /home/ubuntu/anaconda3/envs/lrgt_env/bin/python
Traceback (most recent call last):
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/launch.py", line 193, in
main()
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/launch.py", line 189, in main
launch(args)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/launch.py", line 174, in launch
run(args)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/run.py", line 713, in run
)(*cmd_args)
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/launcher/api.py", line 131, in call
return launch_agent(self._config, self._entrypoint, list(args))
File "/home/ubuntu/anaconda3/envs/lrgt_env/lib/python3.6/site-packages/torch/distributed/launcher/api.py", line 261, in launch_agent
failures=result.failures,
torch.distributed.elastic.multiprocessing.errors.ChildFailedError:
runner.py FAILED
Failures:
<NO_OTHER_FAILURES>
Root Cause (first observed failure):
[0]:
time      : 2024-05-17_14:38:01
host      : ubun
rank      : 0 (local_rank: 0)
exitcode  : 1 (pid: 946051)
error_file: <N/A>
traceback : To enable traceback see: https://pytorch.org/docs/stable/elastic/errors.html

What configuration issue causes the error below? the first nonexisting volume file as below, it can be found in directory ShapeNetVox32 and ShapeNetRending.   [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/d608bdcd8a87f3af7d2dc2b4ad06dc44 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/aac813074775281a4163d08524f89006 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/6737f75bb87e3cc0847c4e55bb965ab0 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/27e9a27b6e3b49c227ac692756be9e24 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/a5fa8ae8f743d5498052128bafa4f7d8 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5456c7546e3f3c3d9c5408f4f799fe72 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/7b602de66f5eff247991cd6455da4fb3 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/e3923f2d2fc2d1d39263b5578aef09fa since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/8497e02fa1662113776d8bc79b9caa2c since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/f5a0bce67dca5ccbe3de75b155d3b403 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/39875815bdfdce2193b1b9ed21f1fb92 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/ff2b8253ca3190d5d65fb76f5f0a1db7 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5e8ce498a93fb7eae1a9c234926c21e2 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/e49935adf322de2f77e672c4996ec4a3 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5b86640d3bc2e43decac3f40526a2cc2 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/a431fbb7e58ef0c46c03c11657c96c60 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/8b335b0be37debefd85e5191b992b560 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5bc8a432a5911a4c14621506c22882a0 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/2dbe5ea82a45443b71f3cc81eb6c076e since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/1522b8c3c28a9d57ace571be2585c620 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/14241942d79f89226587cb13c78fb9b since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/80d381a6760185d8c45977b13fbe7645 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/313aaf9d79105fea82fd5ed7e39258c7 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/eadf347da5aa8877da97052ff1f36504 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/7400be7b247ce021be99fd8a5f540d8f since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/954c459bc6762abc24f2ecb72410a6d9 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/ddd02c6fb780d4f6c683d3e7114aaa37 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/358bac5415f0773941d6cd38228b9631 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5d301491ba435b71257fc1c453f165b6 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/a70c472cef0c354dba2abf2ecc57eeda since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5e9890e2f4cab96dbc6cd96a5e6546c since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/d74ea3567f8861dc182929c56117755a since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/52fb0261b905147d2fe023c7dc3e5231 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/296f0b6a15012e33d87f29c9afcc633e since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/4d8ae6327ab4ed301e66f1783a4812d7 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/8877086211c9976cd27beaa6c9701d39 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/6cc258399daf767ae1942965937d3cef since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/147fd27a40793d7e9bbe4f1047e9e5fd since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/70dcc0d460cacce0e63ec060b551ac57 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/bb248dedd82b2f28deed0e4a55ad5dd6 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/4e6264af2f2c3e135a15c264bb25007a since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/320683da0d8bd1f394a6427195fa0bd9 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/ad8623ad47d72317eda0f8d4b3ce03d since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/3216e49e5dd304956bed41d0253513f3 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/e6a9f9135e36b6c17c0ab7347b9e831a since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/5d48d75153eb221b476c772fd813166d since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/c189e1768a4f291d4de203ef6842ee61 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/a2f46716962afe72b106d5ef46e12c19 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/9625f56fdbada3377220891f188bc420 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/20d1090d07a49fe927ac692756be9e24 since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/6e1781a84b5dbda6fb3e64e796c0391a since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/3b8c16861667747fcfea3d4fc15719ea since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/e88c7403ff401716b7002bddf0942f8e since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/408cdd476e8bb202852ae095a967f0ca since volume file not exists. [WARNING] 2024-05-17 14:37:53,858 Ignore sample 04530566/cce41dda51ef0335a413908c0e169330 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/2b17c0705ee0426e53b2b4f48361e0b2 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/cdd493581ed137c5a6dae8586082d789 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/29af666e04825f66576378847ca0b69 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/6a0da87e5858b4373e45dd2f173cbf9b since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/bbf1507f7126733665224ccd01ad35d4 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/7a1754186937d247ad78ed9a26ab1091 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/799d446d33e604f990f7927ebadab5fc since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/bf0084fbcc74d5632754043d4b10740c since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/e1e3c053f4b4f1405e45696ec6d1a105 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/8c3148ee031b15446e0dbba30ac27e8 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/7eedbeaa5216ff06ccd600f441988364 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/9119eaa9b5996cd3b1bb46d2556ba67d since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/ee09bd0664e0a02292b9fcc49a614e2b since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/5a0ca7a6df97542e69c3c818538357ad since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/82138919402b3b8f642f9e27aaf0c47a since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/1356fcf0ea4a95bcbe7ca2216dc1576a since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/201fdafa7287d2fe8a55122197709269 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/133c9fa2562498d28ae10bd53dffee76 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/f8d3af1d1a20123c249ba97ee36ba54 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/7b568afff918289614621506c22882a0 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/3899f8b55ec9f1db8a1ec28cb7d97871 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/5eb2d085267142f26192896700aa3bd4 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/65f78142a6c33a89ea7dce1646d86149 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/e64bb04b54022e708d7bd537eb907025 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/2571a0b3d1eb9280f26f17fb5c4740a9 since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/fd52c80ae21d19251e0d0f6bac6856eb since volume file not exists. [WARNING] 2024-05-17 14:37:53,859 Ignore sample 04530566/a9737969ac039c9323dfd33205b06c1a since volume file not exists.

Hi, you may need to check the path of your dataset.


Component Enhancement: inline justify

MLOps project card:

page["project_2"] = ui.form_card(
    box="projects",
    items=[
        ui.text_xl("Project Name 2"),
        ui.inline(
            items=[
                ui.text("Owner: michelle@h2o.ai"),
                ui.text("Wed Aug 18 15:09:35 PDT 2021")
            ],
            justify="justify"  # functionality missing - we want these items to be at the start and end of the width
        ),
...
)

Today the only justify options for ui.inline are start and end. We would like to include a justify option which would be the equivalent to how text is shown in a newspaper - have items and the start and end, and equally spread in the middle as needed.
https://xd.adobe.com/view/eebb600c-026b-4ca1-bb6b-0a439235452b-bbe8/specs/

Duplicate of #534

@mtanco the feature you are describing is not achievable via justify. You need to control the width (Experiment count, 21, Deployed Model Version, 32 - all have to have the same width) which is introduced in #795.
The inline prop introduced in #534 will allow correct positioning of owner - date pair in your example.


macOS TK Depreciation

Running pico_project.py results in a completely black window being displayed, and the following warning is issued:
DEPRECATION WARNING: The system version of Tk is deprecated and may be removed in a future release. Please don't rely on it. Set TK_SILENCE_DEPRECATION=1 to suppress this warning.

I am running macOS 12.2.1 on a MacBook Pro (15-inch, 2019).

You need to download Python3 from python.org and install it. Then everything will be fine.
I am using macOS 12.2.1 (Monterey) on a MacBook Pro (16-inch, 2019) and a Mac Pro (Late 2013).
It seems to be no problem.

You need to download Python3 from python.org and install it. Then everything will be fine.

That's interesting, thanks :+1:
@JamesH65 Maybe it's worth mentioning that in this repo's README.md ?

You need to download Python3 from python.org and install it.

The recommended way to install Python is via Homebrew, see Section 9.1 in "Getting started with Raspberry Pi Pico".

UPDATE: I was able to get it working by installing tk-tcl via Homebrew and then re-installing Python via pyenv. Finding a Python version that would build on macOS was a whole different can of worms, but at least the GUI is all good now :).
Closing since it is more of a Python/Tk problem than a RPi problem.


Enhacement - Add system type to the Systems description tab

Both options would be interesting to provide further description on the systems. The information could then be used to colorize the Lateral Movement diagram. Type would refer to the type of the system, e. g., Desktop, Server, Phone, IoT device, Other. This could be a combobox.

Merged. Thanks @febrezo


gh.vercte.net No longer brings you to Forumoji

Forumoji is no longer showing up when you go to https://vercte.github.io/forumoji/. At least for me: It's only bringing up a 404.
@vercte I swear your username used to be loptse, did you change it recently? If so: that might be why.

yeah i’ll fix that. got tired of having two different usernames so changed
it to vercte
On Sat, Apr 13, 2024 at 4:12 PM Steve0Greatness @.***>
wrote:

Forumoji is no longer showing up when you go to
https://vercte.github.io/forumoji/. At least for me: It's only bringing
up a 404.
@vercte https://github.com/vercte I swear your username used to be
loptse, did you change it recently? If so: that might be why.
—
Reply to this email directly, view it on GitHub
https://github.com/vercte/forumoji/issues/80, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATJZIQRZEXQNTV3U74SD6XTY5G3W7AVCNFSM6AAAAABGF2CDEOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI2DCOBRGMZTCNI
.
You are receiving this because you were mentioned.Message ID:
@.***>

Thank! I'll close this as completed as this problem appears to be fixed(Forumoji is no longer giving a 404).


questions about the imu.csv

Thanks for your work, i have 3 questions about the imu.csv:
1 IMU data formart is [GPSTime,angvel_z,angvel_y,angvel_x,accelz,accely,accelx], are the units  [rad s^-1] and  [m s^-2] ?
2 It seems that gravitational acceleration has been substructed from [accelz] ,right ?
3 From pyboreas/tutorials/intro.ipynb, T_camera_applanix = np.matmul(T_camera_lidar, get_inverse_tf(T_applanix_camera)), is it right ?
I am trying to run ORBSLAM3 with boreas dataset, do you have any tutorials for VIO?

Hi Kailthen,
Apologies for the delayed response.

Yes.
Yes.
No, that's not correct. Note that we define transformations as T_b_a where this represents the the pose from a to b, alternatively this matrix transforms data in frame a into frame b. In your provided code, np.matmul(T_camera_lidar, get_inverse_tf(T_applanix_camera)) is wrong because this multiplies: T_c_l * T_c_a, the inner indices (l, c) don't match so this isn't allowed. Have a look at section 7.3 from this book for a more detailed explanation.

If you want T_camera_applanix, you can get this from the calibration using the following:
import numpy.linalg as npla
bd = BoreasDataset(root, split=split, verbose=True)
seq = bd.sequences[0]
calib = seq.calib
T_camera_applanix = calib.T_camera_lidar @ npla.inv(calib.T_applanix_lidar)

We don't have any tutorials for doing VIO with the boreas dataset, unfortunately.
Hopefully that answers your questions. Let me know if there is anything else I can help with.


Can't install using anaconda on OSX 10.11.6

I can't seem to get it to install on OSX 10.11.6 using the anaconda python distribution. Following your instructions:
(python2) ➜  src git clone https://github.com/scottopell/aggdraw-64bits
Cloning into 'aggdraw-64bits'...
remote: Counting objects: 216, done.
remote: Total 216 (delta 0), reused 0 (delta 0), pack-reused 216
Receiving objects: 100% (216/216), 308.91 KiB | 367.00 KiB/s, done.
Resolving deltas: 100% (105/105), done.
Checking connectivity... done.
(python2) ➜  src cd aggdraw-64bits
(python2) ➜  aggdraw-64bits git:(master) python setup.py build_ext -i
=== freetype support disabled
running build_ext
building 'aggdraw' extension
creating build
creating build/temp.macosx-10.5-x86_64-2.7
creating build/temp.macosx-10.5-x86_64-2.7/agg2
creating build/temp.macosx-10.5-x86_64-2.7/agg2/src
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c aggdraw.cxx -o build/temp.macosx-10.5-x86_64-2.7/aggdraw.o
aggdraw.cxx:504:55: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        PyObject* buffer = PyObject_CallMethod(image, "tobytes", NULL);
                                                      ^
aggdraw.cxx:530:64: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        self->draw = new draw_adaptor<agg::pixfmt_gray8>(self, "L");
                                                               ^
aggdraw.cxx:533:64: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        self->draw = new draw_adaptor<agg::pixfmt_rgb24>(self, "RGB");
                                                               ^
aggdraw.cxx:536:64: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        self->draw = new draw_adaptor<agg::pixfmt_bgr24>(self, "BGR");
                                                               ^
aggdraw.cxx:539:65: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        self->draw = new draw_adaptor<agg::pixfmt_rgba32>(self, "RGBA");
                                                                ^
aggdraw.cxx:639:62: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        result = PyObject_CallFunction(aggdraw_getcolor_obj, "O", color);
                                                             ^
aggdraw.cxx:1059:47: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    result = PyObject_CallMethod(self->image, "frombytes", "N", buffer);
                                              ^
aggdraw.cxx:1059:60: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    result = PyObject_CallMethod(self->image, "frombytes", "N", buffer);
                                                           ^
aggdraw.cxx:1114:5: warning: delete called on 'draw_adaptor_base' that is
      abstract but has non-virtual destructor [-Wdelete-non-virtual-dtor]
    delete self->draw;
    ^
aggdraw.cxx:1133:31: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "width", "opacity", NULL };
                              ^
aggdraw.cxx:1133:40: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "width", "opacity", NULL };
                                       ^
aggdraw.cxx:1133:49: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "width", "opacity", NULL };
                                                ^
aggdraw.cxx:1164:31: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "opacity", NULL };
                              ^
aggdraw.cxx:1164:40: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "opacity", NULL };
                                       ^
aggdraw.cxx:1195:31: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "file", "size", "opacity", NULL };
                              ^
aggdraw.cxx:1195:40: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "file", "size", "opacity", NULL };
                                       ^
aggdraw.cxx:1195:48: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "file", "size", "opacity", NULL };
                                               ^
aggdraw.cxx:1195:56: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "file", "size", "opacity", NULL };
                                                       ^
aggdraw.cxx:169:21: warning: unused variable 'FontType' [-Wunused-variable]
static PyTypeObject FontType = {
                    ^
19 warnings generated.
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_arc.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_arc.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_bezier_arc.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_bezier_arc.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_curves.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_curves.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_path_storage.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_path_storage.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_rasterizer_scanline_aa.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_rasterizer_scanline_aa.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_trans_affine.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_trans_affine.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_vcgen_contour.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_vcgen_contour.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_vcgen_stroke.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_vcgen_stroke.o
g++ -bundle -undefined dynamic_lookup -L/Users/diego/anaconda/envs/python2/lib -arch x86_64 -arch x86_64 build/temp.macosx-10.5-x86_64-2.7/aggdraw.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_arc.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_bezier_arc.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_curves.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_path_storage.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_rasterizer_scanline_aa.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_trans_affine.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_vcgen_contour.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_vcgen_stroke.o -L/Users/diego/anaconda/envs/python2/lib -o /Users/diego/src/aggdraw-64bits/aggdraw.so
(python2) ➜  aggdraw-64bits git:(master) python setup.py install
=== freetype support disabled
running install
running build
running build_ext
building 'aggdraw' extension
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c aggdraw.cxx -o build/temp.macosx-10.5-x86_64-2.7/aggdraw.o
aggdraw.cxx:504:55: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        PyObject* buffer = PyObject_CallMethod(image, "tobytes", NULL);
                                                      ^
aggdraw.cxx:530:64: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        self->draw = new draw_adaptor<agg::pixfmt_gray8>(self, "L");
                                                               ^
aggdraw.cxx:533:64: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        self->draw = new draw_adaptor<agg::pixfmt_rgb24>(self, "RGB");
                                                               ^
aggdraw.cxx:536:64: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        self->draw = new draw_adaptor<agg::pixfmt_bgr24>(self, "BGR");
                                                               ^
aggdraw.cxx:539:65: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        self->draw = new draw_adaptor<agg::pixfmt_rgba32>(self, "RGBA");
                                                                ^
aggdraw.cxx:639:62: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
        result = PyObject_CallFunction(aggdraw_getcolor_obj, "O", color);
                                                             ^
aggdraw.cxx:1059:47: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    result = PyObject_CallMethod(self->image, "frombytes", "N", buffer);
                                              ^
aggdraw.cxx:1059:60: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    result = PyObject_CallMethod(self->image, "frombytes", "N", buffer);
                                                           ^
aggdraw.cxx:1114:5: warning: delete called on 'draw_adaptor_base' that is
      abstract but has non-virtual destructor [-Wdelete-non-virtual-dtor]
    delete self->draw;
    ^
aggdraw.cxx:1133:31: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "width", "opacity", NULL };
                              ^
aggdraw.cxx:1133:40: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "width", "opacity", NULL };
                                       ^
aggdraw.cxx:1133:49: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "width", "opacity", NULL };
                                                ^
aggdraw.cxx:1164:31: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "opacity", NULL };
                              ^
aggdraw.cxx:1164:40: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "opacity", NULL };
                                       ^
aggdraw.cxx:1195:31: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "file", "size", "opacity", NULL };
                              ^
aggdraw.cxx:1195:40: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "file", "size", "opacity", NULL };
                                       ^
aggdraw.cxx:1195:48: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "file", "size", "opacity", NULL };
                                               ^
aggdraw.cxx:1195:56: warning: conversion from string literal to 'char *' is
      deprecated [-Wc++11-compat-deprecated-writable-strings]
    static char* kwlist[] = { "color", "file", "size", "opacity", NULL };
                                                       ^
aggdraw.cxx:169:21: warning: unused variable 'FontType' [-Wunused-variable]
static PyTypeObject FontType = {
                    ^
19 warnings generated.
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_arc.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_arc.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_bezier_arc.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_bezier_arc.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_curves.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_curves.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_path_storage.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_path_storage.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_rasterizer_scanline_aa.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_rasterizer_scanline_aa.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_trans_affine.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_trans_affine.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_vcgen_contour.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_vcgen_contour.o
gcc -fno-strict-aliasing -I/Users/diego/anaconda/envs/python2/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Iagg2/include -I/Users/diego/anaconda/envs/python2/include/python2.7 -c agg2/src/agg_vcgen_stroke.cpp -o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_vcgen_stroke.o
creating build/lib.macosx-10.5-x86_64-2.7
g++ -bundle -undefined dynamic_lookup -L/Users/diego/anaconda/envs/python2/lib -arch x86_64 -arch x86_64 build/temp.macosx-10.5-x86_64-2.7/aggdraw.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_arc.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_bezier_arc.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_curves.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_path_storage.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_rasterizer_scanline_aa.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_trans_affine.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_vcgen_contour.o build/temp.macosx-10.5-x86_64-2.7/agg2/src/agg_vcgen_stroke.o -L/Users/diego/anaconda/envs/python2/lib -o build/lib.macosx-10.5-x86_64-2.7/aggdraw.so
running install_lib
copying build/lib.macosx-10.5-x86_64-2.7/aggdraw.so -> /Users/diego/anaconda/envs/python2/lib/python2.7/site-packages
running install_egg_info
Removing /Users/diego/anaconda/envs/python2/lib/python2.7/site-packages/aggdraw-1.1_64bits-py2.7.egg-info
Writing /Users/diego/anaconda/envs/python2/lib/python2.7/site-packages/aggdraw-1.1_64bits-py2.7.egg-info

I then issue a self test, as described on the aggdraw repo and I get:
(python2) ➜  aggdraw-64bits git:(master) python selftest.py
Traceback (most recent call last):
  File "selftest.py", line 5, in <module>
    import Image
ImportError: No module named Image

But then I fire up ipython to try and import aggdraw and I get:
(python2) ➜  aggdraw-64bits git:(master) ipython
Python 2.7.11 |Anaconda 4.0.0 (x86_64)| (default, Dec  6 2015, 18:57:58)
Type "copyright", "credits" or "license" for more information.

IPython 4.1.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: from aggdraw import *

In [2]:

But when I then try to install the missing requirements I get:
(python2) ➜  manim git:(master) pip install -r requirements.txt
Collecting aggdraw===2.0 (from -r requirements.txt (line 1))
  Could not find a version that satisfies the requirement aggdraw===2.0 (from -r requirements.txt (line 1)) (from versions: )
No matching distribution found for aggdraw===2.0 (from -r requirements.txt (line 1))
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
(python2) ➜  manim git:(master)

I searched the ImportError: No module named Image error during the self test, and I came across the mention of PIL vs Pillow

I deleted the aggdraw===2.0 line from requirements.txt, since it can't be installed by pip, then re-try pip install -r requirements.txt to install Pillow.  Then try the selftest.py in aggdraw.

hm I tried that but then got this:
➜  manim git:(master) subl requirements.txt
➜  manim git:(master) pip install -r requirements.txt
Collecting colour==0.1.2 (from -r requirements.txt (line 1))
  Downloading colour-0.1.2.tar.gz
Collecting numpy==1.11.0 (from -r requirements.txt (line 2))
  Downloading numpy-1.11.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (3.8MB)
    100% |████████████████████████████████| 3.8MB 171kB/s
Collecting Pillow==1.7.8 (from -r requirements.txt (line 3))
  Downloading Pillow-1.7.8.zip (410kB)
    100% |████████████████████████████████| 419kB 1.1MB/s
Collecting progressbar==2.3 (from -r requirements.txt (line 4))
  Downloading progressbar-2.3.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/mh/f311201s7p1dvk5sp293lmh40000gn/T/pip-build-a1_yrp4i/progressbar/setup.py", line 5, in <module>
        import progressbar
      File "/private/var/folders/mh/f311201s7p1dvk5sp293lmh40000gn/T/pip-build-a1_yrp4i/progressbar/progressbar/__init__.py", line 59, in <module>
        from progressbar.widgets import *
      File "/private/var/folders/mh/f311201s7p1dvk5sp293lmh40000gn/T/pip-build-a1_yrp4i/progressbar/progressbar/widgets.py", line 121, in <module>
        class FileTransferSpeed(Widget):
      File "/Users/diego/anaconda/lib/python3.5/abc.py", line 133, in __new__
        cls = super().__new__(mcls, name, bases, namespace)
    ValueError: 'format' in __slots__ conflicts with class variable

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/mh/f311201s7p1dvk5sp293lmh40000gn/T/pip-build-a1_yrp4i/progressbar/
➜  manim git:(master) ✗

That seems unrelated so ill look into that and report back. Thanks!

the last error occurs with python3. I reckon, this rep is meant to be built with python 2.

the aggdraw self test doesn't work on my end either, and everything works fine for me. So that's just a red herring.
(note I just forked the aggdraw repo onto github, I'm not a dev on it)

closing old issue


Updating middleware authentication code to allow for public facing REST ...

Updating middleware authentication code to allow for public facing REST endpoints.
Changes are made so that relevant information (posts, users, tags) can be accessible via public REST endpoints, without requiring a user to be logged in. Among other things, this allows the development of single page application for ghost.
This was developed in parallel with ghost-angular, an adaptation of casper into a single-page-application theme.

Hi @patrickdbakke, welcome :)
I appreciate the time you've spent on this, however our API endpoints are very deliberately behind authentication at this point in time. There is information on our public roadmap and the open oauth/api issues which details our plans to add OAuth to the API in the near future.

Thanks @ErisDS. Let me know if I can contribute towards the open oauth work.


ComicVIne has blocked ComicTagger

(I apologize. I saw an older issue that seemed to deal with the comicvine API rate limiting and since it was not closed I assumeed it was still under revision. My mistake)
Is there a way to look at logging related to the Comicvine API?
I'm on mac and checked both the built-in log window and the console but I can't find the specific of the error I've been getting the past two days: Searching for metadata fails and testing the API says the API is not valid.

I can access Comicvine OK, and I can get results querying the API via direct URL with my API Key. Removing the API key from Comicvine doesn't make a difference in the messages.
https://comicvine.gamespot.com/api/volumes/?api_key=XXXXX_APIKEY&format=json&sort=name:asc&filter=name:Walking Dead
I've been doing a ton of searches lately, refreshing my library's tags (mostly migrating to comicrack and getting the missing information), but for the past two days it hasn't worked. I thought my IP or my API Key were borked but trying manually doesn't seem to give problems.
When seeing the API details it says it has no limits.

Same issue with v1.5.5 on Windows. Can access comicvine manually fine and even scraping in comicrack with scraper script works with the same api key.

So it appears that comicvine has specifically blocked ComicTagger: https://comicvine.gamespot.com/forums/api-developers-2334/comictagger-blocked-on-comicvine-2316231/
You can try this and see that it fails
curl -i 'https://comicvine.gamespot.com/api/search/?api_key=63a92cc70ce2d0b371a73c1071cffc8921243d95&forma t=json&resources=volume&query=test&field_list=volume%2Cname&page=1&limit=1' -H 'User-Agent: comictagger/1.5.5'
You can replace comictagger with literally anything else and then it will work
curl -i 'https://comicvine.gamespot.com/api/search/?api_key=63a92cc70ce2d0b371a73c1071cffc8921243d95&forma t=json&resources=volume&query=test&field_list=volume%2Cname&page=1&limit=1' -H 'User-Agent: literally anything else/1.5.5'

I thought I was going crazy, but good we have some kind of confirmation. Can confirm as well... replaced the user-agent in postman with comictagger/1.5.5 and no go. Put it back to PostmanRuntime/7.32.3 and worked without issue.

Interesting. I guess it's time to put the user agent string as a configurable field like many browsers do :(

Interesting. I guess it's time to put the user agent string as a configurable field like many browsers do :(

That's a really bad idea. Clearly, ComicVine has an issue with ComicTagger and circumventing their block is a good way to give ComicVine a reason to shut down their API (which is a free service that as far as I'm aware isn't monetized and costs them money).
It's worth contacting ComicVine to see if there is something the devs can modify in CT to alleviate ComicVine's concern. Now, getting in ComicVine while most likely take awhile since they don't seem to monitor the dev forums very closely.

It's unfortunate.  They definitely should have reached out first.  Certainly in the past no one there ever made a stink about using their publicly available API as long as every user had a key and respected the rate limit.
I suspect that  some manager at the new owners was seeing that the most common user agent string  that was hitting the API had "comictagger" in it, and decided to save some bit of bandwidth.  If that's the case, the issue isn't that ComicTagger in particular is abusing the system, but it might be most identifiable application hitting the API.  I do note at least one other popular open source app that uses a random user agent for each CV connection via user_agent2.
The Terms of Use here don't appear to have changed.  I don't think ComicTagger's usage patterns have changed.  It may be that it's overall usage has gone up, though.
But if they're making moves like this then I'm guessing the API is already on the edge of being shut down.

I suspect that some manager at the new owners was seeing that the most common user agent string that was hitting the API had "comictagger" in it, and decided to save some bit of bandwidth. If that's the case, the issue isn't that ComicTagger in particular is abusing the system, but it might be most identifiable application hitting the API. I do note at least one other popular open source app that uses a random user agent for each CV connection via user_agent2.

Yeah, someone told me Mylar was doing that. I'm not a fan of trying to gaming the system like that, since it makes debugging problems tougher for the server admins and gives ComicVine more incentive to close down the API.

The Terms of Use here don't appear to have changed. I don't think ComicTagger's usage patterns have changed. It may be that its overall usage has gone up, though.

Agreed. I'm guessing CT's usage has gone up a decent amount over the years, and all those new users probably just shit-hammer the API tagging their whole collections when they first start using it. 😱

But if they're making moves like this then I'm guessing the API is already on the edge of being shut down.

Yup, the writings been on the wall for awhile now, and I wouldn't be surprised they stop offering it in the next year or two.

The next version of CT implements some proper rate limiting (and some severe rate limiting for the builtin key). But even just the standard speed of CT didn't go much over. I also have plugins for CT at like 90% completed so when you are pip installing CT you can just add another package (currently the only one that exists is https://github.com/mizaki/comictagger-metron-talker) and it will show up in the GUI.
I'm also not a fan of trying to get around the system, especially when there are other options (Marvel API, Metron, using a GCD export, various manga websites)

I have opened a ticket on their ZenDesk, we'll see what happens

The next version of CT implements some proper rate limiting (and some severe rate limiting for the builtin key). But even just the standard speed of CT didn't go much over. I also have plugins for CT at like 90% completed so when you are pip installing CT you can just add another package (currently the only one that exists is https://github.com/mizaki/comictagger-metron-talker) and it will show up in the GUI.
I'm also not a fan of trying to get around the system, especially when there are other options (Marvel API, Metron, using a GCD export, various manga websites)

I do have one for GCD too but it involves converting the mysql dump to sqlite with a random script I found. (I looked for a python sqldump to sqlite but couldn't find one.) I will ask GCD if they are willing to do a sqlite export direct. (Or someone else can if they want to get there first.) If people want to test out the alpha version, I can put it up.
The Metron one I'm not sure if anyone other than me has tested but should be working.

I do have one for GCD too but it involves converting the mysql dump to sqlite with a random script I found. (I looked for a python sqldump to sqlite but couldn't find one.) I will ask GCD if they are willing to do a sqlite export direct. (Or someone else can if they want to get there first.) If people want to test out the alpha version, I can put it up.

I'd find it unlikely GCD will handle the conversion, since Django doesn't natively have the option to dump in a different database format.

I was not aware GCD made the SQL database available. I can't find this in their resource pages. Do you have a link?

https://docs.comics.org/wiki/Main_Page#Database

I'd find it unlikely GCD will handle the conversion, since Django doesn't natively have the option to dump in a different database format, tho they could dump it in json or yml format.

I'm not dev, but are you sure on that? It seems from their documentation they do support it: https://docs.djangoproject.com/en/4.2/ref/databases/#sqlite-notes
If we change line 102 here to "django.db.backends.sqlite" we should be able to create a base install using sqlite.
https://github.com/GrandComicsDatabase/gcd-django/blob/cebb581bfe9f10e3d239f67d8385fb76ce8170d2/settings.py#L102C29-L102C29

I'm not dev, but are you sure on that? It seems from their documentation they do support it: https://docs.djangoproject.com/en/4.2/ref/databases/#sqlite-notes
If we change line 102 here to "django.db.backends.sqlite" we should be able to create a base install using sqlite.
https://github.com/GrandComicsDatabase/gcd-django/blob/cebb581bfe9f10e3d239f67d8385fb76ce8170d2/settings.py#L102C29-L102C29

@DieselTech Umm, that would require the GCD to change what DB they're running in production, which I think I can confidently say they won't do. It's not a trivial thing to switch DB back-ends on a long running Django project, since you would need handle the historical model migrations and then export the existing MySQL data (about 2GB) into SQLite db (and that's assuming they aren't using some MySQL-only features).

that would require the GCD to change what DB they're running in production

Oh no I wasn't suggesting that GCD make the changes. I'm not expecting them to do anything more than just provide the .sql dump. I was saying WE could fork the project and make the changes needed. It's going to be massive effort on our end but I'm willing to help with it if it means the outcome is a sqlite database.

@DieselTech Oh, if that's the case it's easier to run something like mysql2sqlite to convert it to a SQLite dump, than bother setting up a Django instance to accomplish the same thing.
This tangent came up since @mizaki mentioned contacting GCD about providing a SQLite dump, and I didn't really think that was something that'd be easy for them to do.

I looked around for months for something that did just that, even considered writing my own. Damn that saves me time. Well I have it in sqlite format and ran a few checks on it to make sure everything looks good so far.
If needed I can re-host the file for others to grab. It ballooned to 4.5GB

Also having the same problem. Any temporary fix for this?? @lordwelch

I'm not going to support any workarounds for ComicTagger, CV has specifically chosen to block it and that is their choice.
Now comicvine scraper I don't believe is blocked
https://github.com/cbanack/comic-vine-scraper it is a plugin for ComicRack which you can download from the internet archive https://web.archive.org/web/20181018173957/http://comicrack.cyolito.com/downloads
You can also use Mylar https://github.com/mylar3/mylar3 they use an old modified version of CT internally that still works due to their modifications.
In the next few weeks I plan on having at least one new source as an option for ComicTagger so it will no longer depend on the good graces of ComicVine to be useful.
Currently still no response from ComicVine on why CT was blocked, Fandom is a fairly small company with a lot of websites so I'm not surprised that they haven't responded yet.

We don't know why. But how a block is implemented is almost never documented it's usually expected that you'll notice if your blocked. In this case if you use a user-agent identifying the app as ComicTagger you get an http 403 error code which means forbidden

Simply start sending out a generic useragent string .
The same thing has happened to other another project too , 1 year ago . And that is what they did to work around it .

@protofolius See https://github.com/comictagger/comictagger/issues/501#issuecomment-1692066852 and https://github.com/comictagger/comictagger/issues/501#issuecomment-1694736329 for why I won't be doing this. If ComicVine doesn't want us to use their service then I won't. Metron was started specifically to make an alternative to ComicVine and is a viable alternative among others. If ComicVine does not budge on blocking ComicTagger, I will move the ComicVine code to a separate repository and those that wish to use a workaround will be able to make their modifications on a fork. I have plans for loading plugins from the ComicTagger settings folder to make ComicTagger a little more useful even when it goes into disrepair (there are still plugins for ComicRack that get use today even though it's been years since it got an update, and you have to go to the Internet Archive to even download it anymore). However, there are currently a lot of changes since the last release 1.5.5 and some things are still in-flux or need further refinement before I work on that in particular. The next alpha release will have some other source as an option.

I'm getting movement on my ticket! He's pinging the engineering team. We'll see what happens.

I'm getting movement on my ticket! He's pinging the engineering team. We'll see what happens.

Are the ticket views public or are they locked down to your account?

They are limited to the account, I think if I cc you on the email you would be able to see it. My CV account is using<EMAIL_ADDRESS>Send me an email and I can try.

ComicVine API is responding now!

I have an email where someone said it's working now, and sure enough it is, but their comment appears to be lost in the void...

I can confirm it works with 1.5.5 available thru pip3 install and v1.6.0a5.dev70 in development branch:

I closed out the ticket yesterday, they unblocked it but didn't provide a reason. I'm just happy they unblocked us. I'll leave this issue open until the next alpha release.

ComicVIne is unblocked and 1.6.0-alpha.6: Hal Jordan now has https://metron.cloud as an alternative. This issue is now resolved.


refactor: generate function refactored to reduce cognitive complexity

generate function refactored to smaller individual functions to reduce cognitive complexity
Related issue(s):
issue #1040

You also have a linting issue 🙂

@jonaslagoni  Thank you for the much-needed feedback, I've made the changes can you please review it again?

@all-contributors please add @swastiksuvam55 for code


Improve F3D logging system and add VTK output to --verbose

A quick impl to fix https://github.com/f3d-app/f3d/issues/966
Open questions:

Is a string based option the right choice here ? I dont like using an integer value because it may be complex to add values in "between" and it may be unclear to users.

Should I had another verbose level deeper than Debug instead of relying on Debug ? If not, do we even need the change of option in applicative side ?

If we do need it, should I deprecate --quiet ?

I'd appreciate your thoughts @Meakk @snoyer

Looks reasonable to me

Is a string based option the right choice here ? I dont like using an integer value because it may be complex to add values in "between" and it may be unclear to users.

I think that's ok.
I also think that deprecating --quiet for --verbose=QUIET makes sense. Also, maybe it'd be more convenient if the value is case insensitive. Personally, I think --verbose=quiet looks nicer ^^


Uploaded files expected to make Qiskit software configured to be published through Open Horizon Services.

@tahira-tariq would you like me to merge this, or are there further updates you were planning to make?

@t-fine there aren't any other updates I'm planning on making, so if you could merge it that would be great!

@t-fine would you mind merging this whenever you get the chance, please?

@tahira-tariq sorry for the delay on this, I was out Monday and Tuesday but I'll check this out and merge this right now! Thanks for the reminder with the request @joewxboy 👍🏻

@tahira-tariq You need to sign this commit with "Signed-off-by: your-email-address@com"  See above for the DCO details.


Implement a "force loopback IP" feature

Add a option to force loopback IP instead of try to find which IP should use.

https://github.com/NDVM/NDVM/pull/2


make stuff responsive

Remove ugly text shadow, make navbar links bold
Make stuff responsive, collapse navbar into a dropdown menu for mobile screens (wasn't sure if you guys wanted to keep the sidebar, but I personally hate it so I made a top dropdown instead. just an idea, perhaps worth keeping.)
Small copy change (thought it's better that way)

Društvo monolitičnih commitov. :laughing:


Fixed to HandleKick and HandleNick

HandleKick was using case sensitive comparison to check whether or not it is "me" who got kicked and was failing because of how the cases are preserved at some servers. So this PR changes that to Case-Ignore comparison
HandleNick was not updating the internal object models when a user changes his nick. The consequence of that bug? When a user gets kicked AFTER the fact that he has changed his nick and object models that hold his nick weren't updated are still reflecting the old nick are not found in the Collections, and HandleKick() crashes with a KeyNotFoundException. Also, HandleKick was using case-sensitive comparison to check if it is "me" who got nick changed, this PR changed it to case-ignore.
-- fahadash

Did you change line endings? I can't read this diff.

The line-endings are in Windows format, consistent with all of the other Handler files I've seen. As you can probably notice in this file as well, the line endings were inconsistent within the file itself as well, with part of the file using Windows-style line-endings and the rest of it using UNIX-style line-endings..
I suggest, for the sake of consistency, that the repository should standardize on Windows line-endings, especially since more often than not, this code would be used on Windows.
I have no way of reverting line-endings for only part of the file, so if you don't like this submission, please close the pull-request without merging the changes in.

Well, alright. I'll standardize on Unix line endings because that's what I use, though.


docs(recursive): add category example + include imports for easy copy…

in this PR I add a new example for recursive. Imports are included to allow quick copy/paste, otherwise the user has to include one by one. Also it gives a better idea of the real amount of imports it's going to be required
the example is the one mentioned in #72
does this sound interesting to be added? in the end I think it is because it's a more "feets on the ground" example comparing it to something like a binary tree example (the only current one)

Thank you! I will probably review it on the weekend or next week.


Add note to upgrade guide to not try upgrading to 5.0 and switching to the Kotlin DSL at the same time.

Context

Several users have reported issues with trying to upgrade to Gradle 5.0 and switching to the Kotlin DSL at the same time. Doing both at the same time, makes it difficult to determine which step is causing the problem.
Therefore, we should remind users in the 4.x to 5.0 upgrade guide that they should upgrade their Groovy builds to 5.0 before trying to switch to the Kotlin DSL.

@jlstrater I think this can be closed as it has already been merged and part of the 5.2 release.

Oh yes! Thank you for the reminder. I'm used to tagging my PRs so they close the issue automatically. ☺


Error when trying to create file

Hey
Trying to create a file, I am getting an error thrown that reads:
Error: E5108: Error executing lua Vim:E739: Cannot create directory /XXXXXXXXXX/cppcache/src: file already exists
stack traceback:
	[C]: in function 'mkdir'
	.../.local/share/nvim/lazy/ouroboros/lua/ouroboros/init.lua:86: in function 'on_confirm'
	/usr/share/nvim/runtime/lua/vim/ui.lua:103: in function 'input'
	.../.local/share/nvim/lazy/ouroboros/lua/ouroboros/init.lua:81: in function 'switch'
	[string ":lua"]:1: in main chunk

I noticed in the switch function, you have an extra - I think vim.fn.mkdir(path, "-p")
In the neovim docs they do not https://neovim.io/doc/user/builtin.html#E739

Hey, looks like you're right. I haven't run into this myself yet (maybe an OS-dependent thing) but I just merged #7 which should solve this.


Control of functions directly from HA (creation of entity?)

1st, TKS for your work.
Is it possible to implement a "full screen button" control, and maybe other buttons, directly from HA? (perhaps through a creation of the related entities)

Unfortunately it is not possible from a card to create sensors or services, but you can use Browser Mod to do this: https://github.com/thomasloven/hass-browser_mod
First install Browser Mod from HACS, and configure it by following the documentation here: https://github.com/thomasloven/hass-browser_mod?tab=readme-ov-file#quickstart
Once you have registered your web browser with Browser Mod, you can run javascript code to the browser from a Home Assistant service called browser_mod.javascript.
For example if you want your browser to go fullscreen, call this service with your browser as target:

Then you can call this service from automation, or from a button card...
There are some other javascript codes, e.g. to refresh the page the javascript code is document.location.reload();

TOP ! Thanks a lot

Unfortunately it is not possible from a card to create sensors or services, but you can use Browser Mod to do this: https://github.com/thomasloven/hass-browser_mod
First install Browser Mod from HACS, and configure it by following the documentation here: https://github.com/thomasloven/hass-browser_mod?tab=readme-ov-file#quickstart
Once you have registered your web browser with Browser Mod, you can run javascript code to the browser from a Home Assistant service called browser_mod.javascript.
For example if you want your browser to go fullscreen, call this service with your browser as target:

Then you can call this service from automation, or from a button card...
There are some other javascript codes, e.g. to refresh the page the javascript code is document.location.reload();

did try this but didn't seem to work which is a shame..the command was sent and a green tick to state as much, but no change at the device itself.   other than having browsermod in place, are there any other things that would stop this from working or would be required to ensure this works?

Maybe a javascript blocker can be the cause. You can try to disable any adblocker / use a private browsing window. Under "Targets" > "Choose device" are you able to select your browser?

i can choose the browser correctly...it sees it...but it just doesnt seem to do anything


Nested comments with Reply to support.

Please investigate how nested comments can be supported, so that commenters can reply to older comments.
I can think this can be achieved if each comment stores the id (timestamp) of its parent comment and itself.

I've added support for a new generated field of type uniqueId. When present, it will append a field with a unique id to the entry files:
In the config:
generatedFields:
  nameOfYourField: # you can call it whatever you want
    type: "uniqueId"

I've added this to the preview server. Submit your form to https://dev.staticman.net instead of https://api.staticman.net.
I believe this is all you need from the service itself to implement what you're after. You should be able to build the rest on your site, which should be something along the lines of:

Add a field to allowedFields called something like parentId
In your Liquid templates, cycle through comments that don't have a parentId field and render them (these are the main comments)
For each of the above, cycle through the comments again and find any comments with a parentId that is equal to the id of the comment you were rendering (these are your replies)

As for the submit form, you need to build some sort of JavaScript routine that injects in the form a fields[parentId] field with the id of the comment you're replying to.
Does that make sense?
Let me know how you get on.

Been thinking about this and how best to achieve a useful reply system. I'd like to have an email notification system, so that you choose to be notified when someone replies to one of your comments.
The most obvious approach would be to use a database where we'd store subscriptions as a pair of comment id + email address. However, I'd really want Staticman to stay in a course of not storing any data whatsoever on its infrastructure.
I thought we could still use the site's repository to store this, by having a file that acts as the notifications db, where e-mail addresses would be encrypted (with the approach suggested by @zburgermeiszter on #20).
We could use the GitHub API to read and write to this file, effectively transforming it into a flat-file database.
Is this just a 💩  idea? Would love some thoughts.

Comment reply notifications are the one thing I've missed since going static. I like the flat-file database idea.
The uniqueId generated field looks very useful too, so thanks for that!. Will have to give that a go to implement comment replies on my sites.

You can use Mailchimp (Mandrill), or something else for sending email updates.
Usually these services are free up to few thusand emails per month.

Yeah, I found SparkPost, which offers 100,000 emails per month for free.

Seems good.

@mmistakes I'm changing this quite substantially to support comment replies and email notifications, so you might want to hold on implementing this.
For example, I'm removing the uniqueId transform and make it a field that is always added to entries.
Will share more details soon.

Thanks for the heads-up @eduardoboucas. I'll watch this space for future developments.

🎉

I would recommend to have email address verifications, if you are serious about email notifications.
As, it is possible for me to fill in any valid and random email address while commenting. This would mean they would get email notifications. Also, you dont want to have your SparkPost API key blocked for spamming.

Also if you end up using the approach of using a public/private key pair as proposed by @zburgermeiszter in #20. You could have everyone get their own SparkPost API key and then send that in encrypted form to staticman API.

I would recommend to have email address verifications, if you are serious about email notifications.
As, it is possible for me to fill in any valid and random email address while commenting. This would mean they would get email notifications.

Receiving an email and clicking on a link to confirm that you're okay with receiving further emails seems like a very convoluted process for such a simple thing. I don't think I've ever seen something like this — can you find an example?

You could have everyone get their own SparkPost API key and then send that in encrypted form to staticman API.

I want to allow this possibility, at least in a future release, but I don't want to force it. Using SparkPost means configuring a domain, which some people might not have. I want to make it simple and accessible for everyone.
Plus, the 100k monthly limit offered by SparkPost should be enough for a while. If people want to make absolutely sure their emails will be sent, then they can supply their own API keys.

Or alternatively simply use OAuth only without allowing visitors to enter their name and email address.

Some CSS magic for nested comments. Might be useful.

It would be good to somehow handle the commenters as users for email notification purposes.
It would allow them to update their addresses in opposite to savind encrypted email address for each comment.
It is quite easy with the proposed OAuth login where the OAuth provider provides you with an ID.

It is related to this issue:
Do you plan to add RSS support for comments?
Some people prefer it instead of email, and it's possible to do a lot of magic with it.
For example you can set up an IFTTT event to send email when there's a new item on the list.

Closing in favour of #42.


Add 'time_taken' of each check to JSON response

I like to use the JSON response with load balancer. Less data transferred.
But once health check takes long, there is no information, which check took long.
The HTML response has the durations but if you have to read the actual response in terminal etc. it's quite unreadable
plugin.time_taken could be added to the JSON response as well. The JSON response is much more readable as it is (even without any indent).

Hi @maszaa,
If you built it, I will review it 👍
Best,
Joe