AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / 问题

All perguntas(coding)

Martin Hope
Gery
Asked: 2025-04-27 01:32:50 +0800 CST

É possível atualizar uma visualização criada a partir de duas visualizações no PostgreSQL?

  • 5

Depois de pesquisar sobre esse assunto, não tenho certeza se é realmente possível fazer isso. Obrigado por qualquer dica.

Minha visão é criada assim:

create or replace view OutputView as
select * from view1
natural full outer join view2;

Usando:

update OutputView set colA = 'undefined' where colA is null;

dá:

ERROR:  cannot update view "OutputView"
DETAIL:  Views that do not select from a single table or view are not automatically updatable.
HINT:  To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule.

Sem sorte até agora com esse gatilho e regra. O problema é que algumas colunas na visualização de saída têm valores nulos porque essas colunas não existem nas visualizações originais, por exemplo:

view1
-----
colA colB
1    a
2    b

view2
-----
colB colC
100  x
200  y

OutputView
----------
colA  colB  colC
1     a     null
2     b     null
null  100   x
null  200   y
postgresql
  • 1 respostas
  • 60 Views
Martin Hope
zhanginou
Asked: 2025-04-27 01:12:29 +0800 CST

Traço de tipo para verificar se uma função pode ser compilada com um determinado tipo

  • 7

Tenho dois tipos, CustomNotCompatibleWithRun, CustomCompatibleWithRun, e uma run()função:

#include <iostream>
#include <type_traits>

template <typename T_>
struct CustomNotCompatibleWithRun { using T = T_; };

template <typename T_>
struct CustomCompatibleWithRun {
    using T = T_; 
    
    CustomCompatibleWithRun operator+(const CustomCompatibleWithRun& other)
    {
        CustomCompatibleWithRun res;
        res.a = a + other.a;
        res.b = b + other.b;
        return res;
    }
    
    void print() const
    {
        std::cout << "a, b = " << a << ", " << b << "\n";
    }
    
    T a;
    T b;
};

template <typename T>
T run(T a, T b) { return a+b; }

Quero escrever uma característica de tipo, IsTypeCompatibleWithRun, que verifica se um dado Type(cujo único contrato é ter um alias de tipo Type::T) pode ser usado na run()função. Ou seja:

int main() {
    using T = float;
    CustomCompatibleWithRun<T> obj1{.a = 1.f, .b = 2.f};
    CustomCompatibleWithRun<T> obj2{.a = 2.f, .b = 3.f};
    obj1.print(); // a, b = 1, 2
    obj2.print(); // a, b = 2, 3
    const auto obj3 = obj1 + obj2;
    obj3.print(); // a, b = 3, 5
    const auto obj4 = run(obj1, obj2);
    obj4.print(); // a, b = 3, 5
    CustomNotCompatibleWithRun<T> obj5{};
    CustomNotCompatibleWithRun<T> obj6{};
    // const auto obj7 = obj5 + obj6; // does not compile
    
    std::cout << "IsTypeCompatibleWithRun<CustomCompatibleWithRun>::value: " << IsTypeCompatibleWithRun<CustomCompatibleWithRun<T>>::value << "\n"; // should print 1
    std::cout << "IsTypeCompatibleWithRun<CustomNotCompatibleWithRun>::value: " << IsTypeCompatibleWithRun<CustomNotCompatibleWithRun<T>>::value << "\n"; // should print 0
}

Tentei as três opções abaixo:

template <typename Type, typename = void>
struct IsTypeCompatibleWithRun : std::false_type {};

// Option 1
template <typename Type>
struct IsTypeCompatibleWithRun<Type, decltype(void(run<typename Type::T>(std::declval<typename Type::T>(), std::declval<typename Type::T>())))> : std::true_type {};

// Option 2
template <typename Type>
struct IsTypeCompatibleWithRun<Type, decltype(void(std::declval<Type>() + std::declval<Type>()))> : std::true_type {};

// Option 3
template <typename Type>
struct IsTypeCompatibleWithRun<Type, std::void_t<decltype(run(std::declval<Type>(), std::declval<Type>()))>> : std::true_type {};

E apenas a Opção 2 funciona — pelo que entendi, isso ocorre porque forçamos o +operador dentro da própria característica de tipo, enquanto nas Opções 1 e 3, apenas a assinatura da run()função é verificada. No entanto, estou insatisfeito com a Opção 2 porque ela exige a repetição do corpo da função run()na própria característica de tipo. Neste exemplo simples, funciona bem, mas na minha aplicação, o corpo da run()função é muito mais complexo e é impossível repeti-lo dentro da característica de tipo.

Então tentei mudar a assinatura de run()para

template <typename T>
auto run(T a, T b)

mas o código nem compilava mais. Então tentei adicionar um tipo de retorno final

template <typename T>
auto run(T a, T b) -> decltype(a+b)

e agora a Opção 3 funcionaria, mas não a Opção 1. Por que isso?

De qualquer forma, o acima envolveria ter que repetir a a+bparte no tipo de retorno final, então não é uma solução para mim.

Existe uma maneira de obter esse traço de tipo sem alterar run()e depender apenas run()(e não repetir) seu corpo de função em C++ 14?

c++
  • 2 respostas
  • 81 Views
Martin Hope
Maks Verver
Asked: 2025-04-27 00:17:20 +0800 CST

Como adiciono uma dica de tipo para um parâmetro WriteableBuffer?

  • 7

Estou tentando adicionar um tipo de parâmetro ao readinto()método declarado em uma classe personalizada que deriva de RawIOBase, assim:

from io import RawIOBase

class Reader(RawIOBase):
    def readinto(self, buf: bytearray) -> int:
        pass  # actual implementation omitted

Mas os direitos autorais reclamam:

io.py:6:9 - error: Method "readinto" overrides class "_RawIOBase" in an incompatible manner
    Parameter 2 type mismatch: base parameter is type "WriteableBuffer", override parameter is type "bytearray"
      "Buffer" is not assignable to "bytearray" (reportIncompatibleMethodOverride)
1 error, 0 warnings, 0 informations 

Como corrijo isso? Observação: sei que posso remover a dica de tipo completamente. Quero atribuir a ela o tipo correto.

Estou usando Python 3.13.3 e direitos autorais 1.1.400.

python
  • 1 respostas
  • 55 Views
Martin Hope
Mohan
Asked: 2025-04-26 23:42:54 +0800 CST

Como posso impedir que uma tabela matplotlib se sobreponha a um gráfico?

  • 5

O MWE abaixo produz um gráfico como este:

insira a descrição da imagem aqui

Os rótulos das linhas, X, Y, Z, se sobrepõem ao lado direito do gráfico de barras de forma feia. Gostaria que fossem movidos mais para a direita, deixando uma pequena margem entre o gráfico e a tabela. A documentação de matplotlib.pyplot.table não possui nenhuma locopção que permita isso. O bboxargumento pode permitir, mas parece que seria necessário tentar e errar com diferentes caixas delimitadoras para que isso funcionasse.

Existe uma maneira de deixar isso mais claro?

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(9, 5), dpi=300)
ax = sns.barplot(
    x = range(1, 3),
    y = [15,30],
    legend=False,
)
plt.table(cellText=['A','B','C'], rowLabels=['X','Y','Z'], colWidths=[0.15], loc='right')
plt.show()
python
  • 3 respostas
  • 45 Views
Martin Hope
KOLYAN CAT4UP
Asked: 2025-04-26 23:19:09 +0800 CST

Usando métodos de classe, objetos de classe e genéricos junto com mypy

  • 6

Eu uso o seguinte código para criar subclasses da classe G e passar a elas o tipo de modelo que elas devem produzir.

from typing import TypeVar, Type


class A:
    @classmethod
    def model_validate(cls):
        print('Done')


T = TypeVar('T', bound=A)


class G[T]:
    def __init__(self, model: Type[T]):
        self.model = model

    def func(self) -> None:
        print(self.model.model_validate())


G[A](A).func()

Isso funciona bem, mas o mypy dá este erro:

error: "type[T]" has no attribute "model_validate"  [attr-defined]

O que estou fazendo errado?

python
  • 1 respostas
  • 31 Views
Martin Hope
Northernlad
Asked: 2025-04-26 22:48:11 +0800 CST

A consulta retorna uma data quando seleciono coluna WHERE = '' [duplicado]

  • 6
Esta pergunta já tem uma resposta aqui :
Por que inserir uma string vazia na coluna de data produz 1900-01-01 (1 resposta)
Fechado há 21 horas .

Estou executando uma consulta para verificar se algum registro contém um espaço em branco DateOfBirth, mas os dados retornados não são o que eu esperava.

Eu executei o seguinte:

SELECT TOP 5 DateOfBirth, *
FROM [MyDataBase].[dbo].[CustomerRecord] 
WHERE DateOfBirth = ''

Quando executo isso, meus resultados mostram linhas como esta:

EU IA Data de Nascimento Sobrenome
1 1900-01-01 Jones
2 1900-01-01 Diácono
6 1900-01-01 Bacon
10 1900-01-01 James
12 1900-01-01 Queimaduras

O Information_SCHEMA.Columnsmostra que a coluna é definida como datee COLUMN_DEFAULTé NULLe IS_NULLABLEestá definido como YES.

Então por que ele não retorna linhas em branco?

sql
  • 2 respostas
  • 58 Views
Martin Hope
Rainbobow
Asked: 2025-04-26 22:25:58 +0800 CST

Solicitações em Python com stream=True não funcionam como esperado ao usar a mecânica de pipe. Tentando obter a duração do vídeo distante.

  • 4

Estou tentando saber a duração de um arquivo de vídeo distante (digamos mp4).

Eu já sei como obter a duração de um arquivo de vídeo local :

import xml.etree.ElementTree as eltt, subprocess as spr

def size_from_fn(file_name):
    size = eltt.fromstring(
        spr.run(["ffprobe",
            "-i", file_name,
            "-show_format", "-output_format", "xml"
            ], stdout = spr.PIPE, stderr = spr.STDOUT).stdout.decode()
        ).find("format").get("duration")
    return size

def size_from_fd(file_descriptor):
    size = eltt.fromstring(
        spr.run(["ffprobe",
            "-i", "pipe:0",
            "-show_format", "-output_format", "xml"
            ], stdin = file_descriptor, stdout = spr.PIPE, stderr = spr.STDOUT).stdout.decode()
        ).find("format").get("duration")
    return size

def size_from_data(file_name):
    size = eltt.fromstring(
        spr.run(["ffprobe",
            "-i", "pipe:0",
            "-show_format", "-output_format", "xml"
            ], input = data, stdout = spr.PIPE, stderr = spr.STDOUT).stdout.decode()
        ).find("format").get("duration")
    return size

Tudo funciona perfeitamente

Também sei como obter uma solicitação HTTP como um descritor de arquivo:

import requests as rq

def url_to_fd(url):
    req = rq.get(url, stream = True)
    return req.raw

Também funciona

Entretanto a combinação dos dois falha com a mensagem de ffprobe:Invalid data found when processing input

Não tenho ideia do porquê, só sei que o descritor de arquivo retornado da URL tem a diferença de não ser pesquisável (leitura unidirecional), mas substitui este método de um descritor de arquivo normal:

with open("test.mp4", "rb") as f:
    f.seek = None
    size_of_fd(f)

isso funciona e assim mostra que ffprobenão usa nenhuma busca

Isso também funciona, então não sei o que está acontecendo:

def get_duration(url):
    complete_data = url_to_fd(url).read()
    return size_of_data(complete_data)

Meu problema é que os arquivos de vídeo podem ser arbitrariamente grandes, então não posso me dar ao luxo de baixar o vídeo inteiro.

URL do vídeo de teste

python
  • 1 respostas
  • 35 Views
Martin Hope
Bachi Shashikadze
Asked: 2025-04-26 21:19:51 +0800 CST

Slide do PowerPoint com dois gráficos lado a lado e texto descritivo na parte inferior do slide?

  • 6

Como posso criar uma apresentação do PowerPoint com apresentação em quarto, com dois gráficos lado a lado, e incluir texto descritivo na parte inferior de cada slide (como mostrado na captura de tela)? O problema é que o texto está aparecendo no segundo slide em vez de na parte inferior dos gráficos no mesmo slide.

---
title: "iris Presentation"
format: pptx
---
parts of the code are from: https://github.com/quarto-dev/quarto-cli/discussions/2403 
```{r, include=FALSE}
library(tidyverse)

# Create histogram for each species
spec_name <- unique(iris$Species)

make_hist <- function(spec) {
  iris |> 
    filter(Species == spec) |> 
    ggplot(aes(x = Petal.Length)) +
    geom_histogram(bins = 10, fill = "steelblue", color = "white") +
    labs(title = paste("Petal Length Histogram -", spec))
}

list_hist <- map(spec_name, make_hist)

# Create a second set of plots (random scatter plots)
make_random_plot <- function() {
  tibble(x = rnorm(50), y = rnorm(50)) |> 
    ggplot(aes(x, y)) +
    geom_point(color = "darkorange") +
    labs(title = "Random Scatter Plot")
}

list_random <- map(spec_name, ~ make_random_plot())

# Combine into a data frame
df <- tibble(spec = spec_name, 
             plot1 = list_hist, 
             plot2 = list_random)
```

```{r}
#| output: asis
res <- pmap_chr(df, \(spec, plot1, plot2) {
  knitr::knit_child(text = c(
    paste0("## ", spec, " - Summary"),
    
    "```{r}",
    "#| echo: false",
    "#| layout-ncol: 2",
    "plot1",
    "plot2",
    "```",
    
    "",
    
    paste("This slide shows the distribution of Petal Length for", spec,
          "alongside a comparison scatter plot of random values.")
  ), envir = environment(), quiet = TRUE)
})
cat(res, sep = '\n')
```

Saída desejada:

fd

  • 1 respostas
  • 56 Views
Martin Hope
Valentin Vignal
Asked: 2025-04-26 21:17:16 +0800 CST

Como simular $env/static/public com vitest?

  • 5

Estou usando uma variável env MY_VARque uso de$env/static/public

import { MY_VAR } from '$env/static/public';

export const myVar = MY_VAR === 'true';

Gostaria de simular isso em alguns testes, para suportar os dois cenários: MY_VARbuild true/ false. Mas não consigo. Estou usando o vitest.

Tentei configurar um arquivo simulado __mock__/env/static/public.tscom:

export const MY_VAR = 'false';

com vitest.config.ts:

export default defineConfig(({ mode }) => ({
    // ...
    resolve: {
        alias: {
            '$env/static/public': path.resolve(__dirname, '__mocks__/env/static/public')
        }
    }
}));

Também tentei algumas combinações de vi.mock, vi.hoisted, vi.spyOnmas não consegui fazer funcionar.

Como posso simular $env/static/publiccom vitest?

svelte
  • 1 respostas
  • 21 Views
Martin Hope
hhk
Asked: 2025-04-26 21:00:04 +0800 CST

Ao testar a tarefa de fluxo de ar com pytest, recebi um erro

  • 6

Ao testar o fluxo de ar com o pytest, recebi um erro.

# tests/conftest.py

import datetime
import pytest
from airflow.models import DAG

@pytest.fixture
def test_dag():
    return DAG(
        "test_dag",
        default_args={
            "owner": "airflow",
            "start_date": datetime.datetime(2025, 4, 5),
            "end_date": datetime.datetime(2025, 4, 6)
        },
        schedule=datetime.timedelta(days=1)
    )

# tests/test_instance_context.py

import datetime

from airflow.models import BaseOperator
from airflow.models.dag import DAG
from airflow.utils import timezone

class SampleDAG(BaseOperator):
    template_fields = ("_start_date", "_end_date")

    def __init__(self, start_date, end_date, **kwargs):
        super().__init__(**kwargs)
        self._start_date = start_date
        self._end_date = end_date
    
    def execute(self, context):
        context["ti"].xcom_push(key="start_date", value=self.start_date)
        context["ti"].xcom_push(key="end_date", value=self.end_date)
        return context


def test_execute(test_dag: DAG):
    task = SampleDAG(
        task_id="test",
        start_date="{{ prev_ds }}",
        end_date="{{ ds }}",
        dag=test_dag
    )

    task.run(
        start_date=test_dag.default_args["start_date"], 
        end_date=test_dag.default_args["end_date"]
    )

    expected_start_date = datetime.datetime(2025, 4, 5, tzinfo=timezone.utc)
    expected_end_date = datetime.datetime(2025, 4, 6, tzinfo=timezone.utc)
    assert task.start_date == expected_start_date
    assert task.end_date == expected_end_date

O código de teste foi aprovado, mas tenho um problema aqui.

tests/test_instance_context.py [2025-04-26T12:51:18.289+0000] {taskinstance.py:2604} INFO - Dependencies not met for <TaskInstance: test_dag.test manual__2025-04-05T00:00:00+00:00 [failed]>, dependency 'Task Instance State' FAILED: Task is in the 'failed' state.
[2025-04-26T12:51:18.303+0000] {taskinstance.py:2604} INFO - Dependencies not met for <TaskInstance: test_dag.test manual__2025-04-06T00:00:00+00:00 [failed]>, dependency 'Task Instance State' FAILED: Task is in the 'failed' state.   
.

Quero testar task.run para ver a diferença entre task.rune task.execute. quando passo variáveis ​​jinja, o airflow renderiza automaticamente as variáveis ​​pelo método run.

Então, eu quero ver prev_ds, ds, start_date, end_date renderizados com sucesso. Mas recebi um erro acima.

python
  • 1 respostas
  • 29 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve