text:
Demo for YoloV8

Would be good if this repo had a demo for how to implement YOLOv8.
I've started with modifying the code from the YOLOv7 demo, but am hitting some issues.
from ultralytics import YOLO
...
 # self.model = torch.hub.load("WongKinYiu/yolov7", "custom", model_path)
self.model = YOLO(model_path)
Here's how the model can be loaded with the new ultralytics repo compared to the YOLOv7 one.
However, at the step of the code that converts the bounding boxes to norfair_detections, particularly here:
detections_as_xyxy = yolo_detections.xyxy[0]
I'm having some issues extracting the xyxy from the YOLOv8 results object to a valid format.
Any help would be greatly appreciated!

Hello @kenifxyz, a YOLOv8 demo would indeed be beneficial. For now, I'm providing you with code to make Norfair works for your model.
As you pointed out, it's necessary to modify the function that transforms YOLO detections into Norfair detections. The code below adjusts this function to accommodate the new model.
import logging
from typing import List

import numpy as np
import torch
from ultralytics import YOLO

from norfair import Detection, Tracker, Video, draw_boxes

# Disable logging from the ultralytics package
logger_name = "ultralytics"
logging.getLogger(logger_name).setLevel(logging.CRITICAL)

def yolov8_detections_to_norfair_detections(
    yolo_detections: torch.tensor, track_points: str = "bbox"  # bbox or centroid
) -> List[Detection]:
    """convert detections_as_xywh to norfair detections"""
    norfair_detections: List[Detection] = []

    if track_points == "centroid":
        for object in yolo_detections:
            detections_as_xywh = object.boxes.xywh
            scores = object.boxes.conf
            classes = object.boxes.cls
            for detection_as_xywh, score, class_id in zip(detections_as_xywh, scores, classes):
                centroid = np.array([detection_as_xywh[0].item(), detection_as_xywh[1].item()])
                scores = np.array([score.item()])
                norfair_detections.append(
                    Detection(points=centroid, scores=scores, label=int(class_id))
                )
    elif track_points == "bbox":
        for object in yolo_detections:
            detections_as_xyxy = object.boxes.xyxy
            scores = object.boxes.conf
            classes = object.boxes.cls
            for detection_as_xyxy, score, class_id in zip(detections_as_xyxy, scores, classes):
                bbox = np.array(
                    [
                        [detection_as_xyxy[0].item(), detection_as_xyxy[1].item()],
                        [detection_as_xyxy[2].item(), detection_as_xyxy[3].item()],
                    ]
                )
                scores = np.array([score, score])
                norfair_detections.append(
                    Detection(points=bbox, scores=scores, label=int(class_id))
                )

    return norfair_detections

video = Video(input_path=<path-to-your-video>)

tracker = Tracker(distance_function="iou", distance_threshold=0.7, past_detections_length=0)

model = YOLO("models/yolov8n.pt")

for frame in video:
    yolo_detections = model(frame)
    detections = yolov8_detections_to_norfair_detections(yolo_detections)
    tracked_objects = tracker.update(detections=detections)
    frame = draw_boxes(frame, tracked_objects)
    video.write(frame)

If you have any further questions, please don't hesitate to ask.

Hey @DiegoFernandezC, that works perfectly! Thanks so much!

If I may add something useful to this discussion, I found this snippet of code super handy but kind of sluggish. Therefore, I optimized a bit the function yolov8_detections_to_norfair_detections with a few (tiny) changes. Just for reference, it went from around 2fps rate to more than 5fps. Again thanks for your support @DiegoFernandezC and hope someone else will find this code helpful.
`
def yolov8_detections_to_norfair_detections(
yolo_detections: torch.tensor, track_points: str = "bbox"  # bbox or centroid
) -> List[Detection]:
"""convert yolo_detections to Norfair's detections"""
norfair_detections: np.ndarray = np.array([])
if track_points == "centroid":
    for object in yolo_detections:
        detections_as_xywh = object.boxes.xywh
        scores = object.boxes.conf
        classes = object.boxes.cls
        for detection_as_xywh, score, class_id in zip(detections_as_xywh, scores, classes):
            centroid = np.array([detection_as_xywh[0].item(), detection_as_xywh[1].item()])
            scores = np.array([score.item()])
            np.append(norfair_detections, Detection(points=centroid, scores=scores, label=int(class_id))
            )

elif track_points == "bbox":
    for object in yolo_detections:
        detections_as_xyxy = object.boxes.xyxy
        scores = object.boxes.conf
        classes = object.boxes.cls
        for detection_as_xyxy, score, class_id in zip(detections_as_xyxy, scores, classes):
            bbox = np.array(
                [
                    [detection_as_xyxy[0].item(), detection_as_xyxy[1].item()],
                    [detection_as_xyxy[2].item(), detection_as_xyxy[3].item()],
                ]
            )
            scores = np.array([score.item()])
            np.append(norfair_detections, Detection(points=bbox, scores=scores, label=int(class_id)))

return list(norfair_detections)

`

authors: DiegoFernandezC delomeo kenifxyz

repo: tryolabs/norfair


text:
WSL fixes

set quality: stable
mmm, stable should only be in production version, lets see.

lets see

source: gharchive/pull-request

authors: Himanshu-Singh-Chauhan nang-dev

repo: trypear/pearai-app

license: MIT

license_type: permissive

license_source: github-api


text:
wrapper configuration is being ignored

Describe the bug
in eslint flat config when i configure a wrapper it does not work, the type enforcement is applied only on the sql tag and not the wrapper function
To Reproduce
use the following configuration

then notice that the fix is applied only to the sql tag and not the wrapper

Expected behavior
the typings check to be applied on the wrapper

It's unrelated to the flat config. It seems like you've specified 2 targets.

for a wrapper
for an sql tag

According to your issue description, I'm not sure why you've specified the second target. Try removing the tag target from your config.

@Newbie012 it is resulting in the same problem
basically I am exporting a tag named SQL to work with typeorm

reverting back to using safeql tag also doesn't work

can you share a minimal reproduction?

source: gharchive/issue

repo: ts-safeql/safeql


text:
Add SOT23 footprint and initial test

Add SOT23 package definition

can you post a screenshot of what the footprint looks like? Note that we won't need to do this in the future if we integrate circuit-to-svg CC @imrishabh18

I think the debug server is broken so we'll probably need to do that ASAP @imrishabh18, I can do it today if you're busy

sorry @abhijitxy you're finding all the issues... our debug server literally just broke like 3 days ago so logSoup doesn't show you the visualization anymore T-T

@imrishabh18 whenever somebody does logSoup we just need to run circuit-to-svg instead and have it drop an svg. We can just do it for a single test for now, so basically:

introduce a snapshotSoup(..) function (ideally into a test fixture, i.e. getTestFixture().snapshotSoup
Demonstrate usage with a single test

Ohh okay, I was working on this issue https://github.com/tscircuit/footprinter/issues/14 and had made progress. I will push my update

@seveibar please review it!!

authors: abhijitxy imrishabh18 seveibar

repo: tscircuit/footprinter


text:
Refactor Function.prototype.override to api.impress.override

Now override syntax, for example in mixinApplication:
impress.security.mixinApplication = impress.security.mixinApplication.override(function(application) {
  this.inherited(application); // call parent method
  // code
};

But will be like this:
impress.override(impress.security.mixinApplication, function mixinApplication(application) {
  mixinApplication.inherited.call(this, par); // call parent method
  // code
});

Done in version 0.1.198

repo: tshemsedinov/impress


text:
Bug in TCP-based cross-server RPC

2015-07-29T20:40:28.499Z
Master(8148/C2N0)
[impress]
ReferenceError: application is not defined
  Socket.<anonymous> (impress.cloud.tcp.js:29:31)
  Socket.emit (events.js:107:17)
  net.js:459:14
  process._tickDomainCallback (node.js:381:11)

2015-07-29T21:29:54.466Z
Master(34258/C1N0)
[impress]
Error: read ECONNRESET
  exports._errnoException (util.js:746:11)
  TCP.onread (net.js:559:26)

2015-07-29T21:30:32.486Z
Master(35288/C1N0)
[impress]
Error: write EPIPE
  exports._errnoException (util.js:746:11)
  WriteWrap.afterWrite (net.js:775:14)

Double re connection detected
Master terminates on client connection reset


text:
protocol: replace uv_try_write with uv_write

Inspired by yodaos-project/ShadowNode#223
Closes #278
Not very thoroughly tested.
Welcome to modify this patch. Because I'm neither familiar with libuv nor ttyd.

uv_write is asynchronous, can't be used in libwebsockets callback.

Closing as it don't resolve the issue.

Sorry. I tested it again, it works, applied the patch on master.

license: mit

license_source: bigquery


text:
🛑 tso.ch is down

In 0def1aa, tso.ch (https://tso.ch) was down:

HTTP code: 502
Response time: 711 ms

Resolved: tso.ch is back up in 2213b27 after 7 minutes.

repo: tsolenthaler/upptime


text:
UberEatsのスクレイピングリダイレクト対策対応

ブラウザ直URL叩きだと、自分がログインしている住所にリダイレクトされる。

たぶん、seleniumからブラウザ操作して検索を押す必要がある。
その対応までは、手動で住所を入力してその後にcrawlする。

repo: tsu-nera/ubereats-analysis


text:
Allow for multi-line processing

I couldn't really find a way to process multiple lines in one go. My use case for example might be, while reading articles, discussions and so on, I would be copying names of different products, books, movies or songs, afterwards I would paste them into a text editor and process them there into multi-line splits if they aren't already (using vim/regex, textsoap, popclip extensions and so on). It would then be perfect if I can run a searchlink on all the lines instead of manually doing it one by one, since such lists can easily be 50+ items.
It does seem intuitive that SL would run on all the selected items, so I don't think this can break many people workflows, but if you believe it might, having an additional quick action for multi-line processing (I think better than manually flagging the multi-liners for them to be processed or not) could resolve such confusion.

That's what the [](!search) syntax is for. The single-line (!search [text]) syntax can't be easily distinguished from other text. The ![text](!search) syntax is  contained and you can process an entire document all at once.

authors: matru ttscoff

repo: ttscoff/searchlink


text:
DumpConfig not print lua block content

package main

import (
	"fmt"

	"github.com/tufanbarisyildirim/gonginx"
	"github.com/tufanbarisyildirim/gonginx/parser"
)

func main() {
	p := parser.NewStringParser(`
server {
location = /foo {
rewrite_by_lua_block {
res = ngx.location.capture("/memc",
{ args = { cmd = "incr", key = ngx.var.uri } } # comment contained unexpect '{'
# comment contained unexpect '}'
)
t = { key="foo", val="bar" }
}
}
}
`)

	c := p.Parse()
	fmt.Println(gonginx.DumpConfig(c, gonginx.IndentedStyle))

}

result
server {
    location = /foo {
        rewrite_by_lua_block {

        }
    }
}

Thanks for reporting @ermazi

authors: ermazi tufanbarisyildirim

repo: tufanbarisyildirim/gonginx


text:
fixing bug where exception thrown in connection close kills worker

If a connection handler (or any code executed from within) throws an exception, this will currently kill the worker.  This can eventually lead to a connection leak if while the dead worker is closing all its connections in postStop, another handle also throws an exception.

Current coverage is 80.50%

Merging #282 into master will decrease coverage by -2.21% as of 50e47d4

@@            master   #282   diff @@
=====================================
  Files           54     70    +16
  Stmts         2973   3519   +546
  Branches         0    442   +442
  Methods
=====================================
+ Hit           2459   2833   +374
  Partial          0      0
- Missed         514    686   +172

Review entire Coverage Diff as of 50e47d4

Powered by Codecov. Updated on successful CI builds.

:+1:

:+1:

:+1:

authors: DanSimon aliyakamercan benblack86 codecov-io nsauro

repo: tumblr/colossus


text:
OOM while trying to convert a 70B model to 4.75 bits on a 4090

Hi there, amazing work as always.
I was trying to quant airoboros 70B 1.4.1 to EXL2 4.75bit, on a 4090, but got OOM.
-- Linear: model.layers.1.mlp.up_proj
 -- 0.05:3b/0.95:2b 32g s4         2.17 bpw    rfn_error: 0.07471
 -- 0.25:3b/0.75:2b 32g s4         2.38 bpw    rfn_error: 0.07147
 -- 0.1:4b/0.4:3b/0.5:2b 32g s4    2.72 bpw    rfn_error: 0.06525
 -- 0.1:4b/0.9:3b 32g s4           3.22 bpw    rfn_error: 0.03174
 -- 1.0:3b 128g s4                 3.03 bpw    rfn_error: 0.03467
 -- 1.0:3b 32g s4                  3.13 bpw    rfn_error: 0.03220
 -- 0.05:4b/0.95:3b 32g s4         3.17 bpw    rfn_error: 0.03195
 -- 0.4:4b/0.6:3b 32g s4           3.53 bpw    rfn_error: 0.02977
 -- 0.6:4b/0.4:3b 64g s4           3.66 bpw    rfn_error: 0.02904
 -- 1.0:4b 128g s4                 4.03 bpw    rfn_error: 0.01724
 -- 1.0:4b 32g s4                  4.13 bpw    rfn_error: 0.01503
 -- 1.0:5b 128g s4                 5.03 bpw    rfn_error: 0.00859
 -- 0.1:6b/0.9:5b 32g s4           5.22 bpw    rfn_error: 0.00761
 -- 0.4:6b/0.6:5b 32g s4           5.53 bpw    rfn_error: 0.00724
 -- 1.0:6b 128g s4                 6.03 bpw    rfn_error: 0.00451
 -- 0.1:8b/0.9:6b 128g s4          6.22 bpw    rfn_error: 0.00445
 -- 1.0:8b 32g s4                  8.13 bpw    rfn_error: 0.00299
 -- Time: 9.78 seconds
 -- Linear: model.layers.1.mlp.down_proj
Traceback (most recent call last):
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllamav2\convert.py", line 168, in <module>
    measure_quant(job, save_job, model)
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllamav2\conversion\quantize.py", line 246, in measure_quant
    test_quants(module.down_proj, pre_down, down, qparams_options, results)
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllamav2\conversion\quantize.py", line 105, in test_quants
    lq.prepare()
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllamav2\conversion\adaptivegptq.py", line 214, in prepare
    hessian_inv = torch.cholesky_inverse(hessian_inv)
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 3.06 GiB. GPU 0 has a total capacty of 23.99 GiB of which 0 bytes is free. Of the allocated memory 17.64 GiB is allocated by PyTorch, and 4.18 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

Is VRAM usage increased, as bits go higher when converting the model?
Also, I have 2x4090. It is possible to split the conversion between the 2 GPUs?
Thanks in advance!

Have you tried decreasing the quality? BTW airoboros published the 2.2 version already.

Have you tried decreasing the quality? BTW airoboros published the 2.2 version already.

@ortegaalfredo  I will get home in some hours and I will try with lower sizes.
And, yep, but for my usage, 1.4.1 is still the best one for me. 2.2 seems to be interesting on the coding side for me, but I will skip it for now. (Tested it on normal GPTQ with 64g)

Tried 4.25 bits but got OOM after 1 layer.
-- Linear: model.layers.2.mlp.up_proj
 -- 0.05:3b/0.95:2b 32g s4         2.17 bpw    rfn_error: 0.10699
 -- 0.25:3b/0.75:2b 32g s4         2.38 bpw    rfn_error: 0.10248
 -- 0.1:4b/0.4:3b/0.5:2b 32g s4    2.72 bpw    rfn_error: 0.09387
 -- 0.1:4b/0.9:3b 32g s4           3.22 bpw    rfn_error: 0.04660
 -- 1.0:3b 128g s4                 3.03 bpw    rfn_error: 0.05096
 -- 1.0:3b 32g s4                  3.13 bpw    rfn_error: 0.04715
 -- 0.05:4b/0.95:3b 32g s4         3.17 bpw    rfn_error: 0.04688
 -- 0.4:4b/0.6:3b 32g s4           3.53 bpw    rfn_error: 0.04370
 -- 0.6:4b/0.4:3b 64g s4           3.66 bpw    rfn_error: 0.04266
 -- 1.0:4b 128g s4                 4.03 bpw    rfn_error: 0.02548
 -- 1.0:4b 32g s4                  4.13 bpw    rfn_error: 0.02217
 -- 1.0:5b 128g s4                 5.03 bpw    rfn_error: 0.01270
 -- 0.1:6b/0.9:5b 32g s4           5.22 bpw    rfn_error: 0.01128
 -- 0.4:6b/0.6:5b 32g s4           5.53 bpw    rfn_error: 0.01074
 -- 1.0:6b 128g s4                 6.03 bpw    rfn_error: 0.00673
 -- 0.1:8b/0.9:6b 128g s4          6.22 bpw    rfn_error: 0.00665
 -- 1.0:8b 32g s4                  8.13 bpw    rfn_error: 0.00462
 -- Time: 9.17 seconds
 -- Linear: model.layers.2.mlp.down_proj
Traceback (most recent call last):
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllamav2\convert.py", line 168, in <module>
    measure_quant(job, save_job, model)
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllamav2\conversion\quantize.py", line 246, in measure_quant
    test_quants(module.down_proj, pre_down, down, qparams_options, results)
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllamav2\conversion\quantize.py", line 105, in test_quants
    lq.prepare()
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllamav2\conversion\adaptivegptq.py", line 214, in prepare
    hessian_inv = torch.cholesky_inverse(hessian_inv)
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 3.06 GiB. GPU 0 has a total capacty of 23.99 GiB of which 0 bytes is free. Of the allocated memory 17.64 GiB is allocated by PyTorch, and 4.59 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

Closing as I got this answer from turbo
Yes, it seems like it needs just a little bit more than 24 GB when you exceed 4.0 bits. Problem is that it has to run inference at full precision to use the calibration data, so it needs at least one full-precision layer loaded, along with at least a slice of the hidden state for the 200k tokens it's calibrating on. I'll be working on optimizing that, I guess.

authors: Panchovix ortegaalfredo


text:
Error quantizing models on recent commit

I am getting an error quantizing a model with a command that worked about 9 days ago, using the same measurements json created 9 days ago.
Gonna roll back the commits and try to find the one that fixes it.
Command used:
python convert.py --in_dir /home/alpha/Storage/Models/Raw/CapyTessBorosYi-34B-200K-DARE-Ties -o /home/alpha/FastModels/scratch -m /home/alpha/FastModels/capytessborosmes.json --cal_dataset /home/alpha/Documents/medium.parquet -l 2048 -r 200 -ml 2048 -mr 40 -gr 200 -ss 4096 -b 3.1 -hb 6 -cf /home/alpha/FastModels/CapyTessBorosYi-34B-200K-DARE-Ties-exl2-31bpw-fiction -nr

Log:
...
 -- Token embeddings again...
 -- Quantizing...
 -- Layer: model.layers.0 (Attention)
Traceback (most recent call last):
  File "/home/alpha/AI/exllamav2/convert.py", line 300, in <module>
    quant(job, save_job, model)
  File "/home/alpha/AI/exllamav2/conversion/quantize.py", line 586, in quant
    outputs = module.forward(x, cache, attn_mask, intermediates = True)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alpha/AI/exllamav2/exllamav2/attn.py", line 247, in forward
    return self.forward_torch(hidden_states, cache, attn_mask, past_len, intermediates, loras = loras, position_offsets = position_offsets)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alpha/AI/exllamav2/exllamav2/attn.py", line 554, in forward_torch
    ext_c.rope_(query_states, constants.sin, constants.cos, past_len, num_attention_heads, head_dim, offset_tensor)
TypeError: rope_(): incompatible function arguments. The following argument types are supported:
    1. (arg0: torch.Tensor, arg1: torch.Tensor, arg2: torch.Tensor, arg3: int, arg4: int, arg5: int) -> None

Invoked with: tensor([[[[-1.5244e+00, -8.3789e-01,  3.4912e-01,  ...,  6.6772e-02,
           -1.9275e-01, -1.6797e-01],
          [ 4.1870e-01,  6.6223e-02,  5.8777e-02,  ...,  2.0117e-01,
            4.4586e-02, -2.1289e-01],
          [ 4.6924e-01,  1.5417e-01, -2.1805e-02,  ..., -3.3594e-01,
            4.5483e-01, -5.4785e-01],
          ...,
          [ 1.3074e-01, -1.1396e+00, -6.9523e-04,  ...,  4.3701e-01,
           -4.8798e-02, -1.8457e-01],
          [ 1.6861e-02,  4.4629e-01,  2.3682e-01,  ...,  2.7661e-01,
            1.5167e-02, -9.0271e-02],
          [ 8.5400e-01,  1.6240e+00,  8.3252e-01,  ...,  2.8687e-01,
            1.6028e-01,  1.6223e-01]],

         [[-1.6797e+00, -1.0273e+00,  1.4380e-01,  ..., -4.4458e-01,
           -9.0218e-04, -6.3867e-01],
          [ 3.6938e-01,  2.4918e-02,  2.1143e-01,  ...,  8.4595e-02,
            1.5369e-01, -1.3635e-01],
          [ 3.2495e-01,  5.7343e-02,  7.4280e-02,  ..., -2.5610e-01,
           -9.8145e-02, -3.9941e-01],
          ...,
          [ 5.3223e-01, -9.7852e-01,  2.2778e-01,  ...,  3.7256e-01,
            5.4962e-02, -2.1692e-01],
          [ 1.5466e-01,  7.1094e-01,  3.5693e-01,  ...,  2.0300e-01,
            3.1567e-01,  8.7097e-02],
          [ 9.2627e-01,  1.9463e+00,  1.0293e+00,  ...,  2.7905e-01,
           -9.4910e-02,  1.8201e-01]],

         [[-5.5078e-01, -9.9170e-01,  4.5679e-01,  ..., -3.8550e-01,
            1.0199e-01, -3.4277e-01],
          [ 3.8892e-01, -2.5146e-01,  4.2651e-01,  ...,  1.5259e-02,
            1.0284e-01, -3.7720e-01],
          [ 1.0101e-01,  2.2070e-01,  8.9355e-02,  ..., -2.8003e-01,
            5.1666e-02, -5.7861e-01],
          ...,
          [-3.7354e-01, -4.0894e-01,  3.9185e-02,  ...,  9.4238e-02,
            3.3716e-01, -3.9209e-01],
          [-6.4258e-01, -2.2083e-01, -2.4048e-01,  ...,  2.6343e-01,
            2.4243e-01, -1.6321e-01],
          [ 5.9668e-01,  1.0107e+00,  5.1270e-01,  ..., -9.2957e-02,
           -3.9648e-01,  3.1543e-01]],

         ...,

         [[-1.4062e+00, -7.1924e-01, -5.5328e-02,  ..., -3.3646e-03,
            1.2061e-01, -3.6133e-01],
          [-4.1565e-02, -2.2412e-01,  2.1399e-01,  ..., -2.4399e-02,
            5.2582e-02, -3.6621e-01],
          [ 2.1594e-01, -7.2021e-02,  3.8013e-01,  ..., -4.2505e-01,
            3.2129e-01, -5.8105e-01],
          ...,
          [ 4.2944e-01, -2.9102e-01,  3.7427e-01,  ...,  2.5195e-01,
           -2.4036e-01, -4.1565e-02],
          [ 2.4133e-01,  1.1969e-01,  1.8433e-01,  ...,  3.3350e-01,
           -1.6113e-01,  4.2694e-02],
          [ 1.0371e+00,  1.1045e+00,  9.1846e-01,  ...,  7.2363e-01,
            2.5293e-01,  7.9346e-02]],

         [[-2.0332e+00, -1.2363e+00,  4.5959e-02,  ...,  1.8848e-01,
            1.8372e-01, -4.7681e-01],
          [ 4.7412e-01,  1.0803e-01,  2.3376e-01,  ...,  1.7322e-01,
            1.3196e-01, -2.9321e-01],
          [ 6.6406e-01,  1.4709e-01,  1.8945e-01,  ..., -3.1885e-01,
            1.4380e-01, -6.6650e-01],
          ...,
          [ 6.4209e-01, -1.7227e+00,  4.6362e-01,  ...,  6.5137e-01,
            1.9043e-02,  2.7252e-02],
          [ 1.9141e-01,  5.3320e-01,  4.4824e-01,  ...,  3.6890e-01,
           -1.8030e-01, -4.2749e-01],
          [ 1.1953e+00,  2.5215e+00,  1.0449e+00,  ...,  4.6313e-01,
            8.4412e-02, -6.8604e-02]],

         [[-7.6611e-01, -1.3174e+00,  5.9814e-01,  ..., -3.7817e-01,
            1.5454e-01, -4.4067e-01],
          [ 4.9292e-01, -1.5076e-01,  2.3730e-01,  ...,  1.6174e-01,
           -7.4341e-02, -1.9507e-01],
          [ 8.0505e-02,  2.9224e-01, -3.8501e-01,  ..., -4.2651e-01,
            3.5864e-01, -6.8066e-01],
          ...,
          [ 1.1074e+00, -3.1763e-01,  9.1650e-01,  ..., -2.4805e-01,
           -3.2251e-01, -2.6392e-01],
          [-3.1738e-01, -2.3145e-01, -1.9336e-01,  ...,  1.3550e-01,
           -1.5884e-02,  7.7637e-02],
          [ 6.7480e-01,  1.3789e+00,  4.9731e-01,  ..., -4.3365e-02,
           -6.3330e-01, -6.1066e-02]]]], device='cuda:0', dtype=torch.float16), tensor([[[[ 0.0000e+00,  0.0000e+00,  0.0000e+00,  ...,  0.0000e+00,
            0.0000e+00,  0.0000e+00],
          [ 8.4131e-01,  7.0752e-01,  5.7910e-01,  ...,  4.1723e-07,
            2.9802e-07,  2.3842e-07],
          [ 9.0918e-01,  1.0000e+00,  9.4434e-01,  ...,  8.3447e-07,
            6.5565e-07,  5.3644e-07],
          ...,
          [-7.0007e-02,  7.2754e-01,  9.9951e-01,  ...,  8.2336e-02,
            6.4758e-02,  5.0873e-02],
          [-8.7744e-01,  1.8173e-02,  7.9346e-01,  ...,  8.2336e-02,
            6.4758e-02,  5.0873e-02],
          [-8.7793e-01, -6.9092e-01,  2.9468e-01,  ...,  8.2336e-02,
            6.4758e-02,  5.0873e-02]]]], device='cuda:0', dtype=torch.float16), tensor([[[[ 1.0000e+00,  1.0000e+00,  1.0000e+00,  ...,  1.0000e+00,
            1.0000e+00,  1.0000e+00],
          [ 5.4053e-01,  7.0703e-01,  8.1543e-01,  ...,  1.0000e+00,
            1.0000e+00,  1.0000e+00],
          [-4.1626e-01, -8.6355e-04,  3.2935e-01,  ...,  1.0000e+00,
            1.0000e+00,  1.0000e+00],
          ...,
          [-9.9756e-01, -6.8604e-01, -3.7231e-02,  ...,  9.9658e-01,
            9.9805e-01,  9.9854e-01],
          [-4.7998e-01, -1.0000e+00, -6.0889e-01,  ...,  9.9658e-01,
            9.9805e-01,  9.9854e-01],
          [ 4.7876e-01, -7.2266e-01, -9.5557e-01,  ...,  9.9658e-01,
            9.9805e-01,  9.9854e-01]]]], device='cuda:0', dtype=torch.float16), 0, 56, 128, tensor(..., device='meta', size=(1, 1))

Found it, its 99f6ac30373c29d3fae2bccb846e45497153008d that breaks quantizing.
89885be0feee057d0ac4b29c9b23458ae88328e3 works.
Specifically this change here?
https://github.com/turboderp/exllamav2/commit/99f6ac30373c29d3fae2bccb846e45497153008d#diff-2429505d6f3b79085069b7c9a692a068d019d7b2e7fb23ff6fdbc89d28038005L542-R555

Separate note, the new optimization works great. I used to OOM at the very end with this command (and had to go in and edit the gpu flag for the job), but now it completes with the same command :+1:

I imagine you've got the exllamav2 package installed, and you've pulled the latest changes but not rebuilt the extension. 'pip uninstall exllamav2' should do it, then it should build use the JIT version while quanting, which has the updated function prototype for rope_.

That sounds like exactly what happened, thanks.

authors: brucethemoose turboderp


text:
Getting an error as column 'id' requires hydrate data from getKeyVaultSecret but none is available on azure_key_vault_secret table. Closes #104

Integration test logs

Logs
SETUP: tests/azure_key_vault_secret []

PRETEST: tests/azure_key_vault_secret

TEST: tests/azure_key_vault_secret
Running terraform
data.azurerm_client_config.current: Refreshing state...
data.null_data_source.resource: Refreshing state...
azurerm_resource_group.named_test_resource: Creating...
azurerm_resource_group.named_test_resource: Creation complete after 4s [id=/subscriptions/3510ae4d-530b-497d-8f30-53b9616fc6c1/resourceGroups/turbottest12044]
azurerm_key_vault.named_test_resource: Creating...
azurerm_key_vault.named_test_resource: Still creating... [10s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [20s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [30s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [40s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [50s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [1m0s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [1m10s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [1m20s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [1m30s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [1m40s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [1m50s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [2m0s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [2m10s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [2m20s elapsed]
azurerm_key_vault.named_test_resource: Still creating... [2m30s elapsed]
azurerm_key_vault.named_test_resource: Creation complete after 2m33s [id=/subscriptions/3510ae4d-530b-497d-8f30-53b9616fc6c1/resourceGroups/turbottest12044/providers/Microsoft.KeyVault/vaults/turbottest12044]
azurerm_key_vault_secret.named_test_resource: Creating...
azurerm_key_vault_secret.named_test_resource: Creation complete after 5s [id=https://turbottest12044.vault.azure.net/secrets/turbottest12044/4aa5a2cbec2e4cc3a3122e70b34d1bec]

Warning: Deprecated Resource

The null_data_source was historically used to construct intermediate values to
re-use elsewhere in configuration, the same can now be achieved using locals

Apply complete! Resources: 3 added, 0 changed, 0 destroyed.

Outputs:

location = westus
resource_aka = azure://https://turbottest12044.vault.azure.net/secrets/turbottest12044/4aa5a2cbec2e4cc3a3122e70b34d1bec
resource_aka_lower = azure://https://turbottest12044.vault.azure.net/secrets/turbottest12044/4aa5a2cbec2e4cc3a3122e70b34d1bec
resource_id = https://turbottest12044.vault.azure.net/secrets/turbottest12044/4aa5a2cbec2e4cc3a3122e70b34d1bec
resource_name = turbottest12044
secret_uri_without_version = https://turbottest12044.vault.azure.net/secrets/turbottest12044
secret_version = 4aa5a2cbec2e4cc3a3122e70b34d1bec
subscription_id = 3510ae4d-530b-497d-8f30-53b9616fc6c1

Running SQL query: test-get-query.sql
[
  {
    "content_type": "text",
    "enabled": true,
    "id": "https://turbottest12044.vault.azure.net/secrets/turbottest12044/4aa5a2cbec2e4cc3a3122e70b34d1bec",
    "name": "turbottest12044",
    "recoverable_days": 7,
    "recovery_level": "CustomizedRecoverable+Purgeable",
    "region": "westus",
    "resource_group": "turbottest12044",
    "subscription_id": "3510ae4d-530b-497d-8f30-53b9616fc6c1",
    "value": "steampipe",
    "vault_name": "turbottest12044"
  }
]
✔ PASSED

Running SQL query: test-list-query.sql
[
  {
    "id": "https://turbottest12044.vault.azure.net/secrets/turbottest12044/4aa5a2cbec2e4cc3a3122e70b34d1bec",
    "name": "turbottest12044"
  }
]
✔ PASSED

Running SQL query: test-not-found-query.sql
null
✔ PASSED

Running SQL query: test-turbot-query.sql
[
  {
    "akas": [
      "azure:///subscriptions/3510ae4d-530b-497d-8f30-53b9616fc6c1/resourceGroups/turbottest12044/providers/Microsoft.KeyVault/vaults/turbottest12044/secrets/turbottest12044",
      "azure:///subscriptions/3510ae4d-530b-497d-8f30-53b9616fc6c1/resourcegroups/turbottest12044/providers/microsoft.keyvault/vaults/turbottest12044/secrets/turbottest12044"
    ],
    "name": "turbottest12044",
    "tags": {
      "name": "turbottest12044"
    },
    "title": "turbottest12044"
  }
]
✔ PASSED

POSTTEST: tests/azure_key_vault_secret

TEARDOWN: tests/azure_key_vault_secret

SUMMARY:

1/1 passed.

Example query results

Results
Add example SQL query results here (please include the input queries as well)

@Subhajit97 I already mentioned in this issue that GET operation is not allowed on disable secret if someone tries to query select * from azure_key_vault_secret where name = 'secrettest123' and vault_name = 'vaulttest1234'; on disable secret it throws this error
Error: keyvault.BaseClient#GetSecret: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error. Status=403 Code="Forbidden" Message="Operation get is not allowed on a disabled secret." InnerError={"code":"SecretDisabled"}

This query works only on enable secret.

@Subhajit97 I already mentioned in this issue that GET operation is not allowed on disable secret if someone tries to query select * from azure_key_vault_secret where name = 'secrettest123' and vault_name = 'vaulttest1234'; on disable secret it throws this error
Error: keyvault.BaseClient#GetSecret: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error. Status=403 Code="Forbidden" Message="Operation get is not allowed on a disabled secret." InnerError={"code":"SecretDisabled"}

This query works only on enable secret.

Yes, but if someone runs a query without knowing the resource state, it should not return any error.
Error: keyvault.BaseClient#GetSecret: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error. Status=403 Code="Forbidden" Message="Operation get is not allowed on a disabled secret." InnerError={"code":"SecretDisabled"}

Instead of returning error, we should safely handle this error.

repo: turbot/steampipe-plugin-azure


text:
A bad  result ?

I have tried to implement this theme in my firefox v71 (Ubuntu 19.19) but I think that the result does not resemble what it should be.

The latest commit is for Firefox 72. You can either upgrade or try this version: https://github.com/turing753/minimal-functional-fox/tree/b44440d9dd9f7052b5dfbefc072e1262c365061c

I have used that version and now it looks great. Thank you.

Glad to help!


text:
Address data race issues

As discovered in https://github.com/tus/tusd/issues/1192, Go's data race detector reports a number of issues in tusd when running its tests and as a standalone process.
In this PR, we investigate and try to address them.

First CI run finds four issues:
github.com/tus/tusd/v2/pkg/handler:
--- FAIL: TestPatch (3.05s)
    --- FAIL: TestPatch/StopUpload (1.01s)
        testing.go:1399: race detected during execution of test
    --- FAIL: TestPatch/InterruptRequestHandling (0.00s)
        testing.go:1399: race detected during execution of test

==================
WARNING: DATA RACE
Write at 0x00c000017220 by goroutine 205:
  github.com/tus/tusd/v2/pkg/handler.(*bodyReader).closeWithError()
      /home/runner/work/tusd/tusd/pkg/handler/body_reader.go:123 +0x54
  github.com/tus/tusd/v2/pkg/handler.UnroutedHandler.newContext.func1()
      /home/runner/work/tusd/tusd/pkg/handler/context.go:66 +0x152

Previous read at 0x00c000017220 by goroutine 202:
  github.com/tus/tusd/v2/pkg/handler.(*bodyReader).Read()
      /home/runner/work/tusd/tusd/pkg/handler/body_reader.go:44 +0x4d
  io.ReadAll()
      /opt/hostedtoolcache/go/1.23.2/x64/src/io/io.go:712 +0x86
  github.com/tus/tusd/v2/pkg/handler_test.readerMatcher.Matches()
      /home/runner/work/tusd/tusd/pkg/handler/utils_test.go:118 +0x7d
  github.com/tus/tusd/v2/pkg/handler_test.(*readerMatcher).Matches()
      <autogenerated>:1 +0x64
  github.com/golang/mock/gomock.(*Call).matches()
      /home/runner/go/pkg/mod/github.com/golang/mock@v1.6.0/gomock/call.go:318 +0x905
  github.com/golang/mock/gomock.callSet.FindMatch()
      /home/runner/go/pkg/mod/github.com/golang/mock@v1.6.0/gomock/callset.go:74 +0x231
  github.com/golang/mock/gomock.(*Controller).Call.func1()
      /home/runner/go/pkg/mod/github.com/golang/mock@v1.6.0/gomock/controller.go:225 +0x1b0
  github.com/golang/mock/gomock.(*Controller).Call()
      /home/runner/go/pkg/mod/github.com/golang/mock@v1.6.0/gomock/controller.go:247 +0xc6
  github.com/tus/tusd/v2/pkg/handler_test.(*MockFullUpload).WriteChunk()
      /home/runner/work/tusd/tusd/pkg/handler/handler_mock_test.go:223 +0x225
  github.com/tus/tusd/v2/pkg/handler.(*UnroutedHandler).writeChunk()
      /home/runner/work/tusd/tusd/pkg/handler/unrouted_handler.go:898 +0x8ef
  github.com/tus/tusd/v2/pkg/handler.(*UnroutedHandler).PatchFile()
      /home/runner/work/tusd/tusd/pkg/handler/unrouted_handler.go:794 +0x8e8
  github.com/tus/tusd/v2/pkg/handler.NewHandler.func1()
      /home/runner/work/tusd/tusd/pkg/handler/handler.go:58 +0x7aa
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.23.2/x64/src/net/http/server.go:2220 +0x47
  github.com/tus/tusd/v2/pkg/handler.NewHandler.(*UnroutedHandler).Middleware.func2()
      /home/runner/work/tusd/tusd/pkg/handler/unrouted_handler.go:267 +0xfdb
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.23.2/x64/src/net/http/server.go:2220 +0x47
  github.com/tus/tusd/v2/pkg/handler.(*Handler).ServeHTTP()
      <autogenerated>:1 +0x70
  github.com/tus/tusd/v2/pkg/handler_test.(*httpTest).Run()
      /home/runner/work/tusd/tusd/pkg/handler/utils_test.go:78 +0x63e
  github.com/tus/tusd/v2/pkg/handler_test.TestPatch.func16()
      /home/runner/work/tusd/tusd/pkg/handler/patch_test.go:703 +0xf8a
  github.com/tus/tusd/v2/pkg/handler_test.TestPatch.SubTest.func35()
      /home/runner/work/tusd/tusd/pkg/handler/subtest_test.go:25 +0x125
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44

Goroutine 205 (running) created at:
  github.com/tus/tusd/v2/pkg/handler.UnroutedHandler.newContext()
      /home/runner/work/tusd/tusd/pkg/handler/context.go:60 +0x5ab
  github.com/tus/tusd/v2/pkg/handler.NewHandler.(*UnroutedHandler).Middleware.func2()
      /home/runner/work/tusd/tusd/pkg/handler/unrouted_handler.go:170 +0xd7
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.23.2/x64/src/net/http/server.go:2220 +0x47
  github.com/tus/tusd/v2/pkg/handler.(*Handler).ServeHTTP()
      <autogenerated>:1 +0x70
  github.com/tus/tusd/v2/pkg/handler_test.(*httpTest).Run()
      /home/runner/work/tusd/tusd/pkg/handler/utils_test.go:78 +0x63e
  github.com/tus/tusd/v2/pkg/handler_test.TestPatch.func16()
      /home/runner/work/tusd/tusd/pkg/handler/patch_test.go:703 +0xf8a
  github.com/tus/tusd/v2/pkg/handler_test.TestPatch.SubTest.func35()
      /home/runner/work/tusd/tusd/pkg/handler/subtest_test.go:25 +0x125
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44

Goroutine 202 (running) created at:
  testing.(*T).Run()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x825
  github.com/tus/tusd/v2/pkg/handler_test.SubTest()
      /home/runner/work/tusd/tusd/pkg/handler/subtest_test.go:12 +0x808
  github.com/tus/tusd/v2/pkg/handler_test.TestPatch()
      /home/runner/work/tusd/tusd/pkg/handler/patch_test.go:633 +0x789
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44
==================

==================
WARNING: DATA RACE
Write at 0x00c0000173a0 by goroutine 214:
  github.com/tus/tusd/v2/pkg/handler.(*bodyReader).closeWithError()
      /home/runner/work/tusd/tusd/pkg/handler/body_reader.go:123 +0x54
  github.com/tus/tusd/v2/pkg/handler.UnroutedHandler.newContext.func1()
      /home/runner/work/tusd/tusd/pkg/handler/context.go:66 +0x152

Previous read at 0x00c0000173a0 by goroutine 211:
  github.com/tus/tusd/v2/pkg/handler.(*bodyReader).Read()
      /home/runner/work/tusd/tusd/pkg/handler/body_reader.go:44 +0x4d
  io.ReadAll()
      /opt/hostedtoolcache/go/1.23.2/x64/src/io/io.go:712 +0x86
  github.com/tus/tusd/v2/pkg/handler_test.readerMatcher.Matches()
      /home/runner/work/tusd/tusd/pkg/handler/utils_test.go:118 +0x7d
  github.com/tus/tusd/v2/pkg/handler_test.(*readerMatcher).Matches()
      <autogenerated>:1 +0x64
  github.com/golang/mock/gomock.(*Call).matches()
      /home/runner/go/pkg/mod/github.com/golang/mock@v1.6.0/gomock/call.go:318 +0x905
  github.com/golang/mock/gomock.callSet.FindMatch()
      /home/runner/go/pkg/mod/github.com/golang/mock@v1.6.0/gomock/callset.go:74 +0x231
  github.com/golang/mock/gomock.(*Controller).Call.func1()
      /home/runner/go/pkg/mod/github.com/golang/mock@v1.6.0/gomock/controller.go:225 +0x1b0
  github.com/golang/mock/gomock.(*Controller).Call()
      /home/runner/go/pkg/mod/github.com/golang/mock@v1.6.0/gomock/controller.go:247 +0xc6
  github.com/tus/tusd/v2/pkg/handler_test.(*MockFullUpload).WriteChunk()
      /home/runner/work/tusd/tusd/pkg/handler/handler_mock_test.go:223 +0x225
  github.com/tus/tusd/v2/pkg/handler.(*UnroutedHandler).writeChunk()
      /home/runner/work/tusd/tusd/pkg/handler/unrouted_handler.go:898 +0x8ef
  github.com/tus/tusd/v2/pkg/handler.(*UnroutedHandler).PatchFile()
      /home/runner/work/tusd/tusd/pkg/handler/unrouted_handler.go:794 +0x8e8
  github.com/tus/tusd/v2/pkg/handler.NewHandler.func1()
      /home/runner/work/tusd/tusd/pkg/handler/handler.go:58 +0x7aa
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.23.2/x64/src/net/http/server.go:2220 +0x47
  github.com/tus/tusd/v2/pkg/handler.NewHandler.(*UnroutedHandler).Middleware.func2()
      /home/runner/work/tusd/tusd/pkg/handler/unrouted_handler.go:267 +0xfdb
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.23.2/x64/src/net/http/server.go:2220 +0x47
  github.com/tus/tusd/v2/pkg/handler.(*Handler).ServeHTTP()
      <autogenerated>:1 +0x70
  github.com/tus/tusd/v2/pkg/handler_test.(*httpTest).Run()
      /home/runner/work/tusd/tusd/pkg/handler/utils_test.go:78 +0x63e
  github.com/tus/tusd/v2/pkg/handler_test.TestPatch.func18()
      /home/runner/work/tusd/tusd/pkg/handler/patch_test.go:810 +0xd4a
  github.com/tus/tusd/v2/pkg/handler_test.TestPatch.SubTest.func37()
      /home/runner/work/tusd/tusd/pkg/handler/subtest_test.go:25 +0x125
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44

Goroutine 214 (running) created at:
  github.com/tus/tusd/v2/pkg/handler.UnroutedHandler.newContext()
      /home/runner/work/tusd/tusd/pkg/handler/context.go:60 +0x5ab
  github.com/tus/tusd/v2/pkg/handler.NewHandler.(*UnroutedHandler).Middleware.func2()
      /home/runner/work/tusd/tusd/pkg/handler/unrouted_handler.go:170 +0xd7
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.23.2/x64/src/net/http/server.go:2220 +0x47
  github.com/tus/tusd/v2/pkg/handler.(*Handler).ServeHTTP()
      <autogenerated>:1 +0x70
  github.com/tus/tusd/v2/pkg/handler_test.(*httpTest).Run()
      /home/runner/work/tusd/tusd/pkg/handler/utils_test.go:78 +0x63e
  github.com/tus/tusd/v2/pkg/handler_test.TestPatch.func18()
      /home/runner/work/tusd/tusd/pkg/handler/patch_test.go:810 +0xd4a
  github.com/tus/tusd/v2/pkg/handler_test.TestPatch.SubTest.func37()
      /home/runner/work/tusd/tusd/pkg/handler/subtest_test.go:25 +0x125
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44

Goroutine 211 (running) created at:
  testing.(*T).Run()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x825
  github.com/tus/tusd/v2/pkg/handler_test.SubTest()
      /home/runner/work/tusd/tusd/pkg/handler/subtest_test.go:12 +0x908
  github.com/tus/tusd/v2/pkg/handler_test.TestPatch()
      /home/runner/work/tusd/tusd/pkg/handler/patch_test.go:757 +0x889
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44
==================

github.com/tus/tusd/v2/pkg/s3store:
--- FAIL: TestConcatUploadsUsingMultipart (0.00s)
    testing.go:1399: race detected during execution of test
--- FAIL: TestWriteChunkCleansUpTempFiles (0.00s)
    testing.go:1399: race detected during execution of test

==================
WARNING: DATA RACE
Read at 0x00c000334030 by goroutine 109:
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).concatUsingMultipart.func1()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:1005 +0x8a5
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).concatUsingMultipart.gowrap1()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:1006 +0x61

Previous write at 0x00c000334030 by goroutine 108:
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).concatUsingMultipart()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:984 +0x34c
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).ConcatUploads()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:909 +0x298
  github.com/tus/tusd/v2/pkg/s3store.TestConcatUploadsUsingMultipart()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store_test.go:1310 +0x2bb5
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44

Goroutine 109 (running) created at:
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).concatUsingMultipart()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:990 +0x15c
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).ConcatUploads()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:909 +0x298
  github.com/tus/tusd/v2/pkg/s3store.TestConcatUploadsUsingMultipart()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store_test.go:1310 +0x2bb5
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44

Goroutine 108 (running) created at:
  testing.(*T).Run()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x825
  testing.runTests.func1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:2168 +0x85
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.runTests()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:2166 +0x8be
  testing.(*M).Run()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:2034 +0xf17
  main.main()
      _testmain.go:107 +0x164
==================

==================
WARNING: DATA RACE
Write at 0x00c000168430 by goroutine 120:
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).uploadParts.func2()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:515 +0x715
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).uploadParts.gowrap2()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:522 +0x6e

Previous write at 0x00c000168430 by goroutine 119:
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).uploadParts.func2()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:515 +0x715
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).uploadParts.gowrap2()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:522 +0x6e

Goroutine 120 (running) created at:
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).uploadParts()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:501 +0xdf5
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).WriteChunk()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:430 +0x477
  github.com/tus/tusd/v2/pkg/s3store.TestWriteChunkCleansUpTempFiles()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store_test.go:1462 +0x1232
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44

Goroutine 119 (running) created at:
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).uploadParts()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:501 +0xdf5
  github.com/tus/tusd/v2/pkg/s3store.(*s3Upload).WriteChunk()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store.go:430 +0x477
  github.com/tus/tusd/v2/pkg/s3store.TestWriteChunkCleansUpTempFiles()
      /home/runner/work/tusd/tusd/pkg/s3store/s3store_test.go:1462 +0x1232
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44
==================

The data race belonging to the logger setup, as mentioned in https://github.com/tus/tusd/issues/1192#issue-2541044142 by @wongak, is not reported by the test suite. Another thing we have to look into separately.

repo: tus/tusd


text:
数据表格，树形数据，如果新增的话，不会展开，请问有办法做到吗

This function solves the problem (这个功能解决的问题)
数据表格，树形数据，如果新增的话，不会展开，请问可以做到新增之后，这一行马上展开吗
Expected API (期望的 API)
数据表格，树形数据，如果新增的话，不会展开，想要新增之后，这一行马上展开

大大0.0，快来看看，

自己控制 expanded-keys 实现？

repo: tusen-ai/naive-ui


text:
希望Modal组件能够增加一个可拖动的功能

问题的清晰而简明的描述
当前的 Modal 不能够鼠标拖动，就导致 Modal 打开的时候页面上的内容被遮挡，有些场景下用户在填写 Modal 中的表单时会参照页面上的内容，被遮挡 Modal 遮挡之后就很不方便
建议的解决方案
迫切希望新增 Modal 的可拖动功能
备选方案
No response
附加上下文
No response
验证

[ ] 阅读 贡献指南。
[ ] 检查是否已经存在请求相同功能的问题，以避免创建重复的问题。
[ ] 阅读 文档。

但凡你翻一翻也能看到
https://github.com/tusen-ai/naive-ui/issues/5501

什么时候官方支持呢？

authors: Layne1018 codeDevStory fxjs


text:
Create Frog-Position-After-T-Seconds.java

Problem link : https://leetcode.com/problems/frog-position-after-t-seconds/

Thank u @VadirajKranam for the contribution and support

authors: VadirajKranam tusharxoxoxo


text:
Custom loading icon does not hide when updating toast type

Please provide the environment you discovered this bug in.
 <ngx-sonner-toaster
   <hlm-icon
          loading-icon
          name="lucideLoader2"
          class="animate animate-spin" />
  </ngx-sonner-toaster>

Description
I am currently using SpartanUi and when I add a custom icon for the loading toast, if I update the loading toast to any other state (success, error, etc.), the loading icon remains visible, even when using toast.promise().

Please provide the exception or error you saw
No response
Other information
No response
I would be willing to submit a PR to fix this issue

[ ] Yes
[X] No

:tada: This issue has been resolved in version 2.0.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

repo: tutkli/ngx-sonner


text:
Moes Smart LED Bulb WB-TD5-RWW-GU10-MS (BP5758) FW: v1.5.21

Hello,
attempted to flash third party firmware on a couple of these bulbs. First one was able to do so with the 1.3.21 firmware. The second bulb was not so forgiving. Smart Life shows it to be v1.5.21. I did not see this listed in any profile nor in the confirmed patched firmware list. Attempted to use a few different profiles but no success. I decided to tear the bulb apart and pulled a fw dump directly. I hope this helps.
readResult_BK7231N_QIO_gu10moes_2023-29-6--21-16-41.zip

Unfortunately, this one now joins the list of known patched.  Serial flashing will be the only option for this bulb.

authors: Cossid johnsmoses

repo: tuya-cloudcutter/tuya-cloudcutter


text:
ifrared.GetRemotes does not parse json correctly

Using this code:
	remote, err := infrared.GetRemotes("44035216d8bfc0d320fc")
	if err != nil {
		fmt.Printf("Error is %v", err)
		return
	}
	fmt.Printf("Remote is %v", remote)

results in this error:
Error is json: cannot unmarshal array into Go struct field GetRemotesResponse.result of type struct { CategoryID string "json:\"category_id\""; BrandID string "json:\"brand_id\""; BrandName string "json:\"brand_name\""; RemoteID string "json:\"remote_id\""; RemoteName string "json:\"remote_name\""; RemoteIndex string "json:\"remote_index\""; OperatorID string "json:\"operator_id\""; AreaID string "json:\"area_id\""; IPTVType int "json:\"iptv_type\""; T int64 "json:\"t\"" }
Problem is here: https://github.com/tuya/tuya-cloud-sdk-go/blob/6316e457519552a38b75477bfc360216edd005d5/api/infrared/get_remotes.go#L32
Should be:
Result []struct {

Thanks for feedback. I will fix it

authors: LvBay rafaelvdberg

repo: tuya/tuya-cloud-sdk-go


text:
Bresser "ClimateConnect Tuya" (Smart 7-in-1 weather station) is reported as unsupported in HA with no entities found

Describe the bug
I am trying to integrate the Bresser "ClimateConnect Tuya" (Smart 7-in-1 weather station) - which is branded as a tuya compatible device - into Home Assistant through the tuya integration.
The device is recognized in the tuya IoT platform and in the tuya integration but information on the device give the following
"Device info: Smart 7-in-1 weather station (unsupported) by Tuya "
"Controls: This device has no entities"
Device info
Bresser Smart 7-in-1 weather station
https://www.bresser.de/en/Weather-Time/BRESSER-7-in-1-ClimateConnect-Tuya-Smart-Home-Weather-Station.html
Expected behavior
I am supposed to have access to all sensors of the device through the tuya integation but got none.
Diagnostics for integrations and devices
tuya-bbb6fff01ac39a7445edf904e4f16229-Smart 7-in-1 weather station-1f9eaa7c161614a9cbab07d9e68750e8.json (3).txt

Happy new year and thanks a lot for your support !

Same issue

Issue duplicated, let me share the original issue requested in october...  https://github.com/home-assistant/core/issues/79942

Just use Tuya Local. Config info can be obtained from iot.tuya.com after creating a project and pairing the app

sorry, was this sorted out anyhow? I' interested in this weather station, but only if cleanly integrable in HA
thanks

Same issue

Same issue here

Hi,
did anyone of you try local tuya? I think that might be a way to go, however I don't have this weather station to test

Just use Tuya Local. Config info can be obtained from iot.tuya.com after creating a project and pairing the app

Can you confirm it is working for you with local tuya?

Yep. Has been running for 6 months or so. There is a guide on youtube on
how to set local tuya up. It takes 1 hr or so to do but then everything is
reported. Remember to buy the bresser station with tuya. The have some that
do not have tuya.See screenshot from my home assistant.
Even bought the bresser pool termometer and added that. No problems.
[image: billede.png]
On Fri, Aug 18, 2023 at 10:24 AM bono122b @.***> wrote:

Just use Tuya Local. Config info can be obtained from iot.tuya.com after
creating a project and pairing the app
Can you confirm it is working for you with local tuya?
—
Reply to this email directly, view it on GitHub
https://github.com/tuya/tuya-home-assistant/issues/898#issuecomment-1683550199,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHPNUCPJGHZNUYSEJ3JYAWTXV4RCPANCNFSM6AAAAAAT3Z3BQY
.
You are receiving this because you commented.Message ID:
@.***>

--
Anders Vadgaard
Västra Häglinge 2159
282 73 Sösdala
e-mail: @.***

Yep. Has been running for 6 months or so. There is a guide on youtube on
how to set local tuya up. It takes 1 hr or so to do but then everything is
reported. Remember to buy the bresser station with tuya. The have some that
do not have tuya.See screenshot from my home assistant.
Even bought the bresser pool termometer and added that. No problems.
https://www.youtube.com/results?search_query=tuya+local

Thank you! I have local tuya already configured for another device (tuya power socket was showing only one entity in HA for 'normal' tuya, with local tuya it was showing more) so I was curious if it is going to be similar for weather station. Guess I will buy Bresser tuya and report here about the results.
BR

Yep. Has been running for 6 months or so. There is a guide on youtube on how to set local tuya up. It takes 1 hr or so to do but then everything is reported. Remember to buy the bresser station with tuya. The have some that do not have tuya.See screenshot from my home assistant. https://ibb.co/vst902M
Even bought the bresser pool termometer and added that. No problems.
https://www.youtube.com/results?search_query=tuya+local

@superaum3
Did you setup your locan instanse anew? Because i allready had it running as "local" but the weather station is only listed under devices, same as for Masadido

Yep. Has been running for 6 months or so. There is a guide on youtube on how to set local tuya up. It takes 1 hr or so to do but then everything is reported. Remember to buy the bresser station with tuya. The have some that do not have tuya.See screenshot from my home assistant. https://ibb.co/vst902M
Even bought the bresser pool termometer and added that. No problems.
https://www.youtube.com/results?search_query=tuya+local

Remove old integration. Follow the youtube videos. Remember first to add the item on the phone app and at the Tuya website to get all the keys ect and then add tuya local
https://ibb.co/y0yPsHj

Allright.. So.. I had in fact NOT installed the Tuya Local from HACS, only the std. one from integrations..
I have now corrected this, and have the weather station setup, i do however have a small problem the temperatures in/out are wrong or rather there is a comma og puntuation missing, for example it gives me the result of 206 degrees celsius when in fact the correct temperature is 20,6 degrees (yes in Denmark, we use . and , differently).. The same is for the Barometer it states 10089 when the pressure is 1008.. I can see from the debug menu in dev at Tuya, that the results are the same there, so it's not as such an error with the tuya local addon.. On my Android phone the results are correct..

I am also a dane, but running my HA in english with regional settings that is european. You can just make a template sensor to correct this and divide by 10. Template sensors are easy to make once you understand them. Here are some I made for the Bresser weatherstation to change some of its standard outputs I wanted in a different format.
I calculates the cardinal direction (N, S, E, W ect.) from the degress that the bresser station reports.

platform: template
sensors:
bresser_wind:
unique_id: '5601b1fc-d3e1-11ed-afa1-0242ac120002'
friendly_name: Wind direction
value_template: >
{% set direction = ['(N)','(NE)','(E)','(SE)','(S)','(SW)','(W)','(NW)'] %}
{% set degree = states('sensor.bresser_weather_station_wind_bearing')|float %}
{{ direction[((degree+11.25)/45)|int] }}
icon_template: mdi:weather-windy

`- platform: template
sensors:
bresser_wind:
unique_id: '5601b1fc-d3e1-11ed-afa1-0242ac120002'
friendly_name: Wind direction
value_template: >
{% set direction = ['(N)','(NE)','(E)','(SE)','(S)','(SW)','(W)','(NW)'] %}
{% set degree = states('sensor.bresser_weather_station_wind_bearing')|float %}
{{ direction[((degree+11.25)/45)|int] }}
icon_template: mdi:weather-windy

platform: template
sensors:
wind_speed_name:
unique_id: '7ee84bda-d3e1-11ed-afa1-0242ac120002'
friendly_name: Beaufort Wind speed
value_template: >
{% set wind = state_attr('weather.my_weather_station', 'wind_speed')|float %}
{% if wind <= 1 %}Calm
{% elif wind <= 1.5 %}Light air
{% elif wind <= 3.3 %}Light
{% elif wind <= 5.5 %}Gentle
{% elif wind <= 7.9 %}Moderate
{% elif wind <= 10.7 %}Fresh
{% elif wind <= 13.8 %}Strong
{% elif wind <= 17.1 %}Windy
{% elif wind <= 20.7 %}Fresh wind
{% elif wind <= 24.4 %}Strong wind
{% elif wind <= 28.4 %}Storm
{% elif wind <= 32.6 %}Violent
{% else %} > 32.7 %}Hurricane
{%- endif %}
icon_template: mdi:weather-windy
`

and if you use mushroom template cards you can also get the icon to change according to the direction from the Wind direction template with the below code

{% if is_state("sensor.bresser_wind", "N") %}
          mdi:arrow-down-thick
        {% elif is_state("sensor.bresser_wind", "(NE)") %}
          mdi:arrow-bottom-right-thick
        {% elif is_state("sensor.bresser_wind", "(E)") %}
           mdi:arrow-left-thick
        {% elif is_state("sensor.bresser_wind", "(SE)") %}
           mdi:arrow-top-right-thick
        {% elif is_state("sensor.bresser_wind", "(S)") %}
           mdi:arrow-up-thick
        {% elif is_state("sensor.bresser_wind", "(SW)") %}
           mdi:arrow-top-left-thick
        {% elif is_state("sensor.bresser_wind", "(W)") %}
           mdi:arrow-right-thick
        {% elif is_state("sensor.bresser_wind", "(NW)") %}
           mdi:arrow-bottom-left-thick
        {% else %}
          mdi:home
        {% endif %}

Thank you! I have local tuya already configured for another device (tuya power socket was showing only one entity in HA for 'normal' tuya, with local tuya it was showing more) so I was curious if it is going to be similar for weather station. On screenshot attached by you I can see that there is no entity for wind speed - is it not available?
BR

Yep. Has been running for 6 months or so. There is a guide on youtube on how to set local tuya up. It takes 1 hr or so to do but then everything is reported. Remember to buy the bresser station with tuya. The have some that do not have tuya.See screenshot from my home assistant. https://ibb.co/vst902M
Even bought the bresser pool termometer and added that. No problems.
https://www.youtube.com/results?search_query=tuya+local

Thank you! I have local tuya already configured for another device (tuya power socket was showing only one entity in HA for 'normal' tuya, with local tuya it was showing more) so I was curious if it is going to be similar for weather station. On screenshot attached by you I can see that there is no entity for wind speed - is it not available?
BR

Yep. Has been running for 6 months or so. There is a guide on youtube on how to set local tuya up. It takes 1 hr or so to do but then everything is reported. Remember to buy the bresser station with tuya. The have some that do not have tuya.See screenshot from my home assistant. https://ibb.co/vst902M
Even bought the bresser pool termometer and added that. No problems.
https://www.youtube.com/results?search_query=tuya+local

since you get so many entities there was not room in the screenshot.
here is another with wind direction ect..
https://ibb.co/mN3W8Rd

Thx! I will loook into that, and probably check out the mushroom template cards also!

@bono122b I am guessing that you are running local tuya and not tuya local. Look at my screenshots. Tuya Local is a HACS component. All my entities where imported automatically as far as I remember. If you need to rename then just look at the display that is part of the bresser station and compare values to find out what is what. :-)

@superaum3 ; hello, what kind of entity do you use for the wind direction ? number, switch, sensor (in local tuya)..... ;)

@Totche5962 The wind direction from the station is just a number, and as I wrote I use Tuya Local not Local Tuya. I am pretty sure that Tuya Local just imports them correctly.
If you are referring to the Beaufort wind scale you need to define a weather template, which will also help you easily setup a standard or custom weather card with the data from the bresser weather station. Look below

platform: template
sensors:
bresser_wind:
unique_id: '5601b1fc-d3e1-11ed-afa1-0242ac120002'
friendly_name: Wind direction
value_template: >
{% set direction = ['(N)','(NE)','(E)','(SE)','(S)','(SW)','(W)','(NW)'] %}
{% set degree = states('sensor.bresser_weather_station_wind_bearing')|float %}
{{ direction[((degree+11.25)/45)|int] }}
icon_template: mdi:weather-windy

platform: template
sensors:
wind_speed_name:
unique_id: '7ee84bda-d3e1-11ed-afa1-0242ac120002'
friendly_name: Beaufort Wind speed
value_template: >
{% set wind = state_attr('weather.my_weather_station', 'wind_speed')|float %}
{% if wind <= 1 %}Calm
{% elif wind <= 1.5 %}Light air
{% elif wind <= 3.3 %}Light
{% elif wind <= 5.5 %}Gentle
{% elif wind <= 7.9 %}Moderate
{% elif wind <= 10.7 %}Fresh
{% elif wind <= 13.8 %}Strong
{% elif wind <= 17.1 %}Windy
{% elif wind <= 20.7 %}Fresh wind
{% elif wind <= 24.4 %}Strong wind
{% elif wind <= 28.4 %}Storm
{% elif wind <= 32.6 %}Violent
{% else %} > 32.7 %}Hurricane
{%- endif %}
icon_template: mdi:weather-windy

Hello, i am new into the templates.
I have the Bresser climate connect integrated too, but I am trying to use your template and its sending me unavailable.
My doubts are, ( the wind_speed_name, and weather.my_weather_station and wind_speed, that I don't know how to adapt those on my ha.
Thanks for your help.

@isa12345678
I suggest that you readup on templates on the home assistant website and maybe also look at some youtube videos. This will help you to understand. Templating has in the last 3 months become even easier as it is now part of the helpers in home assistant. See
The above will work if you get the right entities. Unavailable is likely because your entity is not named the same as mine
sensor.bresser_weather_station_wind_bearing
It may be bresser_wind_bearing or something similar.
To see what entites the integration makes available you either go under developer and search for bresser or go to integrations and find the names of these under Local Tuya.  See the previously posted link to a screenshot from my Home Assistant with 32 entities under integrations
https://imgbb.com/y0yPsHj

@isa12345678 I suggest that you readup on templates on the home assistant website and maybe also look at some youtube videos. This will help you to understand. Templating has in the last 3 months become even easier as it is now part of the helpers in home assistant. See
The above will work if you get the right entities. Unavailable is likely because your entity is not named the same as mine sensor.bresser_weather_station_wind_bearing
It may be bresser_wind_bearing or something similar. To see what entites the integration makes available you either go under developer and search for bresser or go to integrations and find the names of these under Local Tuya. See the previously posted link to a screenshot from my Home Assistant with 32 entities under integrations https://imgbb.com/y0yPsHj

Thank you for your fast response.
I have the integration now with tuya local instead of local tuya that I had before and I have got the same identities discovered.
I will check YouTube videos to understand better the templates.
Thank you for your help.

After messing around with local tuya for ages without being able to get it to work with my Bresser weather station, it finally dawned on me what was wrong when I read @superaum3 post. There are at least TWO different versions of local tuya and I used the wrong one - doh.
I had used "local tuya" which can certainly show the values, but all sensors have to be created manually and since there are many it is not the right way to go.
But @superaum3's post showed that there is also a local tuya called "tuya local" and it doesn't exactly make things easier that they have almost the same name. When I searched for integrations in my HACS, only "local tuya" came up and not "tuya local", so I assumed I had the right one.
The correct one for my Bresser 7i1 weather station is tuya local
And voila - all the sensors are detected automatically in HA

@JudgeFredd I Just migrated platform and had to setup it again and in fact you need to add the sensors individually and to your question on it missing comma og punctuation. There is each time you add a sensor to add a factor at the bottom.
Add 0.1 if you get 206, then you get 20.6 or 20,6  degress depending on your regional setup. You can also add on addtional zero by stating 10. As mentioned before templating which now can be done from the UI can also fix this issue when you want to change one input to another - either from numeric or strings.

For those still interested (or willing to go further)n here is what I am using for the  local tuya setup of the weather station
        "bfd1270378c5907972ix6r": {
          "friendly_name": "Smart 7-in-1 weather station",
          "host": "192.168.1.xxx",
          "local_key": "06efbc551caa24d9",
          "protocol_version": "3.3",
          "enable_debug": false,
          "entities": [
            {
              "friendly_name": "In Temperature",
              "unit_of_measurement": "°C",
              "device_class": "temperature",
              "scaling": 0.1,
              "id": 1,
              "platform": "sensor"
            },
            {
              "friendly_name": "In Humidity",
              "unit_of_measurement": "%",
              "device_class": "humidity",
              "scaling": 0.1,
              "id": 2,
              "platform": "sensor"
            },
            {
              "friendly_name": "Sensor3",
              "id": 3,
              "platform": "sensor"
            },
            {
              "friendly_name": "Sensor9",
              "id": 9,
              "platform": "sensor"
            },
            {
              "friendly_name": "Sensor10",
              "id": 10,
              "platform": "sensor"
            },
            {
              "friendly_name": "Sensor11",
              "id": 11,
              "platform": "sensor"
            },
            {
              "friendly_name": "Sensor12",
              "id": 12,
              "platform": "sensor"
            },
            {
              "friendly_name": "Sensor13",
              "id": 13,
              "platform": "sensor"
            },
            {
              "friendly_name": "Sensor30",
              "id": 30,
              "platform": "sensor"
            },
            {
              "friendly_name": "Sensor31",
              "id": 31,
              "platform": "sensor"
            },
            {
              "friendly_name": "Out Temperature",
              "unit_of_measurement": "°C",
              "device_class": "temperature",
              "scaling": 0.1,
              "id": 38,
              "platform": "sensor"
            },
            {
              "friendly_name": "Out Humidity",
              "unit_of_measurement": "%",
              "device_class": "humidity",
              "scaling": 1.0,
              "id": 39,
              "platform": "sensor"
            },
            {
              "friendly_name": "Air Pressure",
              "unit_of_measurement": "hPa",
              "device_class": "pressure",
              "scaling": 0.1,
              "id": 54,
              "platform": "sensor"
            },
            {
              "friendly_name": "Sensor55",
              "id": 55,
              "platform": "sensor"
            },
            {
              "friendly_name": "Wind Speed",
              "unit_of_measurement": "m/s",
              "scaling": 0.1,
              "id": 56,
              "platform": "sensor"
            },
            {
              "friendly_name": "Gust",
              "unit_of_measurement": "m/s",
              "scaling": 0.1,
              "id": 57,
              "platform": "sensor"
            },
            {
              "friendly_name": "Wind Direction",
              "id": 58,
              "platform": "sensor"
            },
            {
              "friendly_name": "Daily Rain Fall",
              "unit_of_measurement": "mm",
              "scaling": 0.001,
              "id": 60,
              "platform": "sensor"
            },
            {
              "friendly_name": "Rain Rate",
              "unit_of_measurement": "mm/h",
              "scaling": 0.001,
              "id": 61,
              "platform": "sensor"
            },
            {
              "friendly_name": "UV index",
              "scaling": 0.1,
              "id": 62,
              "platform": "sensor"
            },
            {
              "friendly_name": "Light Intensity",
              "unit_of_measurement": "lux",
              "scaling": 1.0,
              "id": 63,
              "platform": "sensor"
            },
            {
              "friendly_name": "Dew Point",
              "unit_of_measurement": "°C",
              "device_class": "temperature",
              "scaling": 0.1,
              "id": 64,
              "platform": "sensor"
            },
            {
              "friendly_name": "Feels Like",
              "unit_of_measurement": "°C",
              "device_class": "temperature",
              "scaling": 0.1,
              "id": 65,
              "platform": "sensor"
            },
            {
              "friendly_name": "Heat Index",
              "unit_of_measurement": "°C",
              "device_class": "temperature",
              "scaling": 0.1,
              "id": 66,
              "platform": "sensor"
            },
            {
              "friendly_name": "Windchill",
              "unit_of_measurement": "°C",
              "device_class": "temperature",
              "scaling": 0.1,
              "id": 67,
              "platform": "sensor"
            },
            {
              "friendly_name": "Sensor68",
              "id": 68,
              "platform": "sensor"
            },
            {
              "friendly_name": "Wind Direction Deg",
              "unit_of_measurement": "Deg",
              "id": 101,
              "platform": "sensor"
            }

Anyone experiencing disconnection ? Sometime the logo wifi on the station is blinking and the data are not available.

Anyone experiencing disconnection ? Sometime the logo wifi on the station is blinking and the data are not available.

Same here, the station is 2 meters from the internet box, and regular disconnections

The correct one for my Bresser 7i1 weather station is tuya local
And voila - all the sensors are detected automatically in HA

That's the key!!!! After months trying all the possible things, I have discovered that exist tuya local and local tuya... (facepalm)
Thanks @kbubandt to open my eyes and help to fix my problem. After change from "local tuya" to "tuya local", now is working perfectly.

the weather station gets disconnected from wifi no matter what I have tried.
this is the log from tuya iot account

2024-02-10 12:41:10 | Offline | Offline | closed | device itself |
-- | -- | -- | -- | -- | --
2024-02-10 12:30:23 | Offline | Offline | closed | device itself |
2024-02-10 12:22:23 | Offline | Offline | closed | device itself |
2024-02-10 12:10:15 | Offline | Offline | closed | device itself |
2024-02-10 11:31:24 | Offline | Offline | closed | device itself |
2024-02-10 10:56:17 | Offline | Offline | closed | device itself |
2024-02-10 10:06:23 | Offline | Offline | closed | device itself |
2024-02-10 08:24:07 | Offline | Offline | closed | device itself
the disconnection from wifi is random , even if the wifi signal is very strong, the gateway si placed 1 m from the wifi router.
I have tried everything : guest wifi netowrk, normal network, changed router, changed channel for wifi bgn, it radnomly disconnects and reconnects to wifi network after a few minutes.
any fix for this type of disconnection?

Anyone experiencing disconnection ? Sometime the logo wifi on the station is blinking and the data are not available.

Same here, the station is 2 meters from the internet box, and regular disconnections

+1

Anyone experiencing disconnection ? Sometime the logo wifi on the station is blinking and the data are not available.

Meto.. Works to just reset power, but pretty anoying.
Happens les often, now that i have switched to unifi UX, though..

Okay, I ran into the same pit with "local tuya" and "tuya local" at first.
So I installed the apparently better "Tuya local" (which is not in HACS) but for the life of me I cannot set it up in "Tuya Local". I have all the necessary IDs/values but the integration just answers with

I tried different protocol versions, including "auto" but to no avail, that error dialog appears again.
Except when I select 3.4 – then I get:

How did you guys manage to integrate the Bresser 7-in-1 weather station???

You need to use localtuya. Tuya integration and the Tuya Local Hacs will not work as far as I have tried. Use Hacs and install localtuya. Then as shown in myoutube and other places you need to download the Tuya app and ad it there and then get a tuya developer account free and the get the keys to add it. From there you need to configure one or all sensors from the station. Some will require a thousand separator 0.1 in the configuration instead of the default 1, so 246 becomes 24.6 c/f or hPa 10987 becomes 1098.7.
It requires a little work and patience, but still works

@bono122b I am guessing that you are running local tuya and not tuya local. Look at my screenshots. Tuya Local is a HACS component. All my entities where imported automatically as far as I remember. If you need to rename then just look at the display that is part of the bresser station and compare values to find out what is what. :-)

??? In August 2023 you said, "Tuya local" was the way to go, right? And that all the entities were imported automatically.
Now you're saying "Local Tuya" is the way to go?
I'm confused.

Yes. You are correct. These integrations and their developers update their code over time. So something from more than a year ago may sometimes do not apply anymore. I just tested this morning and actually both local tuya and tuya local now works for me. Localtuya need manual config and TuyaLocal has automatic config after entering deviceid, localkey and IP. Only thingbthat does not work is the standard Tuya integration (not hacs). Also if you read in this developers last update then there is a new possibility to use smartlife app and no dev iot account, but have not tried yet. To your problem I would guess that you got the deviceid, IP or localkey wrong, since it just does not work with the three values provided. Try localtuya and see. If same problem then probably wrong values.

authors: JudgeFredd Masadido MassiPi Sthev61800 Totche5962 bono122b cipcoc isa12345678 kbubandt kennyxxl lennvilardi liouma mcortinas metawops superaum3 wizu

repo: tuya/tuya-home-assistant


text:
🛑 Recruit Connect - Website is down

In 35f2a02, Recruit Connect - Website (https://recruitconnect.vn) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Recruit Connect - Website is back up in 8c8f2b8.

repo: tuyencaovn/recruituptime


text:
🛑 KKK is down

In e091d8b, KKK (https://www.kkk.tsk.tr) was down:

HTTP code: 0
Response time: 0 ms

Resolved: KKK is back up in a4caf8c after 20 minutes.

repo: tuz-z/upp


text:
预览有时字体不对

最新版本，
Version 1.10.1

是放置久了以后还是 方便给一下系统版本吗

我的也出现这个问题了,还不太好复现,重启电脑就好了

我优化了一个版本，最近会发布一下，请关注最新的更新，预计这几天了。

authors: Likelihoood jykSS tw93


text:
on sale in my store

Is it possible to get all the liquors on sale which are available at my specific store?

Could you elaborate? My understanding is that OLCC sale prices are state wide. Are you looking for inventory at your local store?

Yes, inventory at local store which has items on sale. What happens is I see the on-sale prices, I have to copy and paste the product id into oregonliquorsearch.com to see if the inventory is there.
For example:
http://www.oregonliquorprices.com/products/0649c/
means I have to search for 0649C and specify my local store etc.
It's a rather sucky process.
It would be useful if I could select a default location too and have it show things available in the vincinity.
http://oregonliquorsearch.com/servlet/FrontController?view=global&action=search&radiusSearchParam=10&productSearchParam=0649C&locationSearchParam=97701&btnSearch=Search
This is my result for this particular product.
In addition, it would be excellent ot be able to sort the results on pricing.

That's a great suggestion.
If the OLCC published data on current store inventories I could easily add this to my site. However, it doesn't appear they provide this info in a way I could easily import it.
For example, I import the monthly price data from this CSV (comma separated values) file every month:
http://www.olcc.state.or.us/pdfs/NumericPriceListNextMonth.csv
Unfortunately there's no document that I can find containing inventory data.
I'll send them an email and see if I can work something out.

Wow, love how they have a csv in a directory labeled pdfs

btw, something you can do in the meantime, is like the item ID to a selected store, and redirect it to oregonliquorsearch so it's at least just a one click ordeal

Yeah, I was thinking that could be a good option. I'll look into adding a link. In the meantime I also sent an email to the OLCC requesting that data. I've had success with this in the past as it's how I originally imported the store info.

repo: twaddington/django-olcc


text:
ISSUE in loading asset on local machine with Prodcution ENViorment

"NetworkError: 500 Internal Server Error  - http://localhost:3000/assets/compiled/theme"
this type or error i faced even  i dont know what is this error every thing is working fine i load assets many time precompiled it also still facing such an error

We are unable to provide assistance with troubleshooting such a generic error.

authors: cvrebert rabnawazPikesSoft

repo: twbs/bootstrap-sass


text:
Extra padding on .tab-content

Extra padding on .tab-content
Content sits very close to the border of the tabs, and it doesn't look very natural...
.tab-content {
  padding: 10px;
  > .tab-pane {
    display: none;
  }
  > .active {
    display: block;
  }
}

@mdo, why?

authors: SalahAdDin fubarhouse

repo: twbs/bootstrap


text:
Add way to get back to docs from theme site

Having themes on the homepage is nice but clicking it accidentally and not having a clear way back other than a back button can be frustrating.

I guess it's a little confusing having three links which lead to other pages with different layouts (Themes, Expo, Blog) right next to links which lead to sites with the same layout.

We'll be unifying those pages soon. In the mean time, I'd like to leave them as-is to avoid flip flopping.

Closing as this isn't a docs-specific problem <3. Will open an issue on our other repo for the themes site.

authors: hnrch02 kkirsche mdo zacechola


text:
Avoid the empty div with "Optional: clear cols if their content doesn't match in height" @ v4-alpha

Instead using a empty div in markup like:

I suggest something like:

With some implementation like
$max-clear-cols: 5;
@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
  	@for $i from 2 through $max-clear-cols {
  		.clear-#{$breakpoint}-#{$i} >*:nth-child(n) { clear:none; }
    	.clear-#{$breakpoint}-#{$i} >*:nth-child(#{$i}n+#{$i+1}) { clear:both; }
  	}
  }
}

You don't need to add an extra clearfix for a row that has uneven heights—the row takes care of that. The only times you need a separate element is when you have more than 12 columns in a row (e.g., you're putting two row's worth of content into a single row) or need to tweak wrapping behavior within the same row at different breakpoints. This adds too many new classes to address an already solved problem.
Thanks though!

authors: mdo semmais


text:
Carousel problem on Safari

Hi,
I found bug on Safari (newest macOS). I think that action doesn't prevent until change slide is finished.
https://media.giphy.com/media/l41JSNp6lP306HCla/giphy.gif - here is example (gif)
On Chrome works fine (you can't change slide while animation).
Example is from your documentation.

@rshmiraf: please try the latest v4-dev. It should work.

authors: XhmikosR rshmiraf


text:
Online Customizer for 4.x

Hello,
Just wanted to mention that the lack of this feature https://getbootstrap.com/docs/3.4/customize/ is the only reason that stops me from migrating to version 4.x of Bootstrap.
And to be more specific - I'm talking about the component selection... the whole theming section is not that important (we can always override something we don't like in a custom css file) but being able to choose which css and js components to include is crucial, especially nowadays when everyone is using mobile devices and bandwidth is important (plus google penalizes slower loading sites).
You can all agree that Bootstrap is quite a large project and most of the time not everything that comes with it is needed for every site... for example why should I make the visitors download code for modals and forms if the site they open doesn't have any?
I know that you've said in the past that you won't add this feature to version 4, but please reconsider it for performance reasons... if not - could you at least publish the source of the current customizer so someone else could make it work with the latest version (I tried searching for it but couldn't find anything).

@Johann-S created this one: https://johann-s.github.io/bs-customizer/.

Thank you, that is exactly what I needed!
Just a small suggestion - since this is made by an official team member you guys might want to add it to the main site - for example the reason I posted here is because I couldn't find it after a few different google searches... and back in the day when I was looking around for a framework to replace what I had cobbled on my own, the customizer was the cherry on top that made me choose Bootstrap :)

same here, will submit a PR to the doc because it's really useful...
On only need a custom grid system, don't want to setup webpack loaders just for building it once for all

authors: Sledge-Hammer mdo slorber


text:
fix generation of man directories

When inspecting the output of a locally-built opam package, I noticed that the shell expansion used to create the man directories wasn't working as expected, so I updated the builder to fix the issue.
Before:
$ tree ./result/share/
./result/share/
└── man
    └── man{1,2,3,4,5,7,8,9}

3 directories, 0 files

After:
$ tree ./result/share/
./result/share/
└── man
    ├── man1
    ├── man2
    ├── man3
    ├── man4
    ├── man5
    ├── man6
    ├── man7
    ├── man8
    └── man9

11 directories, 0 files

Thanks!

authors: balsoft henrytill

repo: tweag/opam-nix


text:
project: add 'twilight-mention' utility crate

Add a small utility crate named 'twilight-mention'. twilight-mention is a crate for creating display formatters that mention various twilight-model types.
It includes two types: a Mention trait and a MentionFormat struct. The Mention trait includes a mention method that will create a MentionFormat struct. The MentionFormat struct implements std::fmt::Display and will format a mention for the given resource.
Supported resources include things like channel IDs, guild channels, the current user, emojis and emoji IDs, roles, users.
Here's an example:
use twilight_mention::Mention;
use twilight_model::id::UserId;

let user_id = UserId(123);
let message = format!("Hey there, {}!", user_id.mention());

This crate isn't included as part of the main twilight crate and is listed in the readme as an additional, non-core crate. Instead of putting the crate at the project root, I put it in a new utils folder. This folder can be used for smaller utilities like these and makes them appear less important, since that was one of the concerns.
Project is being transferred from https://github.com/rarity-rs/mention because I consider it to be complete.

This is great!!
Any interest in having code in this crate to go the other direction (incoming Discord message with mentions -> message with formatted mentions like in the clients)?
I've got some code I wrote to do that here https://github.com/Cldfire/mc-server-wrapper/blob/master/mc-server-wrapper/src/discord/util.rs#L42

I'm not sure I gather what that does exactly, I might need an input->output example

The tests are good examples https://github.com/Cldfire/mc-server-wrapper/blob/master/mc-server-wrapper/src/discord/util.rs#L445

Oh, I see, missed that. The problem that I see is that this utility starts entangling with other crates.. besides that, in this case it depends on the in memory cache, but in theory it should work for any cache backend, but we don't really have that abstraction down yet. This might be a little too specific of a use case, but since the name "twilight-mention" is a little open-ended I'd be in favour of supporting not only formatters to create mentions but to parse mentions out of text (so without the replacement).

So like return the indices of the parsed mentions in the string and then the caller can handle replacement? Yeah that makes sense, if I get around to it I'll put a PR together
Do y'all have a discord I could join? Would be nice to be able to discuss stuff with ya

Sure, we're on serenity's server for the time being

authors: Cldfire vivianhellyer

repo: twilight-rs/twilight

license: ISC


text:
Teams view task card highlighting

Summary
Adding a Task Card wrapper to enable highlighting with yellow or red border based on configurable Handle Time thresholds.
Show queue name on the Task Card instead of phone number
Checklist

[x] Tested changes end to end
[x] Any config changes added to all environment files
[x] Completed README template for new features in /docs/docs/feature-library/ and added feature row entry into the /docs/docs/feature-library/00_overview.md file

[x] Feature summary - high level summary of what the feature does
[x] Flex User Experience with animations - animations with descriptions if necessary of the user experience in Flex
[x] Setup and dependencies - description of any setup steps required for this feature
[x] How does it work? - description of plumbing supporting feature

[x] Added PR Label "ready-for-review"
[x] Requested one or more reviewers for the PR

Merging Task Card Highlighting