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 / user-8075540

Daniel Walker's questions

Martin Hope
Daniel Walker
Asked: 2025-03-24 23:25:46 +0800 CST

Servindo o aplicativo React estaticamente do FastAPI

  • 6

Tenho um aplicativo React que estou tentando servir estaticamente do FastAPI. Tenho todos os meus artefatos de build do React na minha staticpasta. Então, meu aplicativo FastAPI se parece com isso:

static/
    assets/
        index-lATvXaZG.js
    index.html
app.py

Em app.py , tenho:

app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="react")

@app.get("")
@app.get("/")
@app.get("/index.html")
def serve_index():
    return FileResponse("static/index.html")

No entanto, quando index.htmlé carregado, o cliente compreensivelmente faz uma solicitação GET para /assets/index-lATvXaZG.js. Claro, FastAPI não consegue encontrar isso.

Existe alguma configuração que eu possa colocar no meu aplicativo React (ou, talvez, na minha configuração FastAPI) para alinhar os caminhos?

html
  • 2 respostas
  • 45 Views
Martin Hope
Daniel Walker
Asked: 2025-03-07 04:06:58 +0800 CST

Validador de campo não chamado no SQLModel

  • 6

Tenho uma configuração FastAPI do formulário:

class Foo(sqlmodel.SQLModel, table=True):
    id: typing.Optional[int] = sqlmodel.Field(primary_key=True)
    data: str

    @pydantic.field_validator("data", mode="before")
    def serialize_dict(cls, value):
        if isinstance(value, dict):
            return json.dumps(value)
        return value


@app.post("/foos")
def create_foo(foo: Foo, session: sqlmodel.Session = fastapi.Depends(get_session)):
    session.add(foo)
    session.commit()
    return fastapi.Response()

Eu então POSTO

{
    "data": {
        "bar": 5
    }
}

para /foos. No entanto, isso está lançando uma exceção SQL porque o datavalor não pôde ser vinculado. Depois de colocar algumas instruções de log, descobri que foo.dataé a dicte não a str. Além disso, confirmei que meu validador nunca é chamado.

Já que SQLModelherda de pydantic.BaseModel, eu teria pensado que poderia usar tal validador. O que estou esquecendo?

Este é o sqlmodel 0.0.23 com pydantic 2.10.6.

python
  • 1 respostas
  • 20 Views
Martin Hope
Daniel Walker
Asked: 2025-01-07 23:33:22 +0800 CST

Contagem de referência de um objeto não inicializado

  • 6

Tenho algum código Objective C compilado com ARC:

void func(void) {
    NSString *string;

    // Do some stuff.  Maybe return early.

    string = @"initialized";

    // Other stuff.
}

Como o ARC lida com um ponteiro de objeto não inicializado? Eu assumo que, como um ponteiro C, stringinicialmente contém lixo de pilha. Se sim, então como o ARC sabe o que fazer com ele se, digamos, eu retornasse antes de inicializar a variável?

Preciso inicializá-lo para, digamos, nil, para evitar vazamentos de memória?

Importa se a referência foi para um objeto ou bloco de despacho em vez de um NSObject?

objective-c
  • 1 respostas
  • 19 Views
Martin Hope
Daniel Walker
Asked: 2024-02-14 05:49:18 +0800 CST

Opção docker-compose não suportada: init

  • 6

Estou executando o docker-compose 1.25.0 no Ubuntu 20.04. Meu arquivo de configuração se parece com

version: "3"

services:
  foo:
    image: some_image
    init: true
    ...

Quando corro docker-compose up, recebo

The compose file './docker-compose.yaml' is invalid because:
Unsupported config option for services.foo: 'init'

De acordo com a documentação , a initopção foi adicionada no formato de arquivo da versão 2.2. De acordo com isto , esse formato de arquivo é compatível com as versões 1.13.0+ do Compose.

docker-compose
  • 1 respostas
  • 21 Views
Martin Hope
Daniel Walker
Asked: 2023-12-01 23:59:25 +0800 CST

Botão não responde após clicar no campo de texto

  • 5

Estou apenas começando com o desenvolvimento de aplicativos Android e me deparei com um erro estranho ao implementar um arquivo OnClickListener. Comecei com uma "Atividade de visualizações vazias" no Android Studio. Adicionei, entre outros elementos da interface do usuário, a Button, an EditTexte a ScrollViewcontendo a TextView. Defino um OnClickListenerno botão para que uma mensagem logcat seja emitida.

Quando clico no botão, ele emite a mensagem logcat conforme o esperado. No entanto, assim que clico no campo de texto, o botão deixa de responder pelo restante da vida útil do aplicativo. O estranho é que tudo funciona perfeitamente se eu remover o arquivo ScrollView.

Aqui está meu MRE:

atividade_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/startErrorText"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/startButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="160dp"
        android:layout_marginTop="30dp"
        android:layout_marginEnd="160dp"
        android:text="Start"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textField" />

    <EditText
        android:id="@+id/textField"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="80dp"
        android:layout_marginTop="48dp"
        android:layout_marginEnd="80dp"
        android:ems="10"
        android:hint="Enter some text"
        android:inputType="text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="409dp"
        android:layout_height="585dp"
        android:layout_marginStart="1dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="1dp"
        android:layout_marginBottom="2dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/startButton"
        app:layout_constraintVertical_bias="1.0">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/logView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>
    </ScrollView>

</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.kt

package com.example.test

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.view.View.OnClickListener
import android.widget.Button

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val button: Button = findViewById(R.id.startButton)
        button.setOnClickListener(object : OnClickListener {
            override fun onClick(v: View?) {
                Log.i("MyApp", "Button pressed")
            }
        })
    }
}

Aqui está a saída do logcat:

ziparchive              com.example.test                     W  Unable to open '/data/data/com.example.test/code_cache/.overlay/base.apk/classes3.dm': No such file or directory
ziparchive              com.example.test                     W  Unable to open '/data/app/~~6ohH-jaL6kb5-3S5sLz1rw==/com.example.test-21xtpoSa2I8lnFAMirvZRA==/base.dm': No such file or directory
ziparchive              com.example.test                     W  Unable to open '/data/app/~~6ohH-jaL6kb5-3S5sLz1rw==/com.example.test-21xtpoSa2I8lnFAMirvZRA==/base.dm': No such file or directory
nativeloader            com.example.test                     D  Configuring clns-6 for other apk /data/app/~~6ohH-jaL6kb5-3S5sLz1rw==/com.example.test-21xtpoSa2I8lnFAMirvZRA==/base.apk. target_sdk_version=34, uses_libraries=, library_path=/data/app/~~6ohH-jaL6kb5-3S5sLz1rw==/com.example.test-21xtpoSa2I8lnFAMirvZRA==/lib/arm64, permitted_path=/data:/mnt/expand:/data/user/0/com.example.test
GraphicsEnvironment     com.example.test                     V  Currently set values for:
GraphicsEnvironment     com.example.test                     V    angle_gl_driver_selection_pkgs=[]
GraphicsEnvironment     com.example.test                     V    angle_gl_driver_selection_values=[]
GraphicsEnvironment     com.example.test                     V  ANGLE GameManagerService for com.example.test: false
GraphicsEnvironment     com.example.test                     V  com.example.test is not listed in per-application setting
GraphicsEnvironment     com.example.test                     V  Neither updatable production driver nor prerelease driver is supported.
libEGL                  com.example.test                     D  loaded /vendor/lib64/egl/libEGL_emulation.so
AppCompatDelegate       com.example.test                     D  Checking for metadata for AppLocalesMetadataHolderService : Service not found
libEGL                  com.example.test                     D  loaded /vendor/lib64/egl/libGLESv1_CM_emulation.so
libEGL                  com.example.test                     D  loaded /vendor/lib64/egl/libGLESv2_emulation.so
om.example.test         com.example.test                     W  Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed)
om.example.test         com.example.test                     W  Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed)
Compatibil...geReporter com.example.test                     D  Compat change id reported: 210923482; UID 10191; state: ENABLED
Compatibil...geReporter com.example.test                     D  Compat change id reported: 171228096; UID 10191; state: ENABLED
Compatibil...geReporter com.example.test                     D  Compat change id reported: 237531167; UID 10191; state: DISABLED
OpenGLRenderer          com.example.test                     W  Unknown dataspace 0
OpenGLRenderer          com.example.test                     W  Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
OpenGLRenderer          com.example.test                     W  Failed to initialize 101010-2 format, error = EGL_SUCCESS
Gralloc4                com.example.test                     I  mapper 4.x is not supported
OpenGLRenderer          com.example.test                     E  Unable to match the desired swap behavior.
AutofillManager         com.example.test                     D  notifyViewEnteredForFillDialog:1073741824
EGL_emulation           com.example.test                     D  app_time_stats: avg=145.48ms min=0.87ms max=1433.47ms count=10
EGL_emulation           com.example.test                     D  app_time_stats: avg=181.58ms min=13.65ms max=2822.69ms count=17
MyApp                   com.example.test                     I  Button pressed
ProfileInstaller        com.example.test                     D  Installing profile for com.example.test
EGL_emulation           com.example.test                     D  app_time_stats: avg=39.13ms min=0.77ms max=1255.29ms count=48
Compatibil...geReporter com.example.test                     D  Compat change id reported: 163400105; UID 10191; state: ENABLED
ImeTracker              com.example.test                     I  com.example.test:39ecb7d6: onRequestShow at ORIGIN_CLIENT_SHOW_SOFT_INPUT reason SHOW_SOFT_INPUT
InputMethodManager      com.example.test                     D  showSoftInput() view=androidx.appcompat.widget.AppCompatEditText{4a6450d VFED..CL. .F.P..ID 250,132-830,256 #7f0801f9 app:id/textField aid=1073741824} flags=0 reason=SHOW_SOFT_INPUT
AssistStructure         com.example.test                     I  Flattened final assist data: 1492 bytes, containing 1 windows, 8 views
InsetsController        com.example.test                     D  show(ime(), fromIme=true)
InteractionJankMonitor  com.example.test                     D  Build configuration failed!
                                                                                                    java.lang.IllegalArgumentException: Must pass in a valid surface control if only instrument surface; 
                                                                                                        at com.android.internal.jank.InteractionJankMonitor$Configuration.validate(InteractionJankMonitor.java:1259)
                                                                                                        at com.android.internal.jank.InteractionJankMonitor$Configuration.<init>(InteractionJankMonitor.java:1217)
                                                                                                        at com.android.internal.jank.InteractionJankMonitor$Configuration.<init>(Unknown Source:0)
                                                                                                        at com.android.internal.jank.InteractionJankMonitor$Configuration$Builder.build(InteractionJankMonitor.java:1197)
                                                                                                        at com.android.internal.jank.InteractionJankMonitor.begin(InteractionJankMonitor.java:611)
                                                                                                        at android.view.inputmethod.ImeTracker$ImeJankTracker.onRequestAnimation(ImeTracker.java:717)
                                                                                                        at android.view.InsetsController$InternalAnimationControlListener$2.onAnimationStart(InsetsController.java:448)
                                                                                                        at android.animation.Animator$AnimatorListener.onAnimationStart(Animator.java:695)
                                                                                                        at android.animation.Animator$AnimatorCaller$$ExternalSyntheticLambda0.call(Unknown Source:4)
                                                                                                        at android.animation.Animator.callOnList(Animator.java:669)
                                                                                                        at android.animation.Animator.notifyListeners(Animator.java:608)
                                                                                                        at android.animation.Animator.notifyStartListeners(Animator.java:625)
                                                                                                        at android.animation.ValueAnimator.startAnimation(ValueAnimator.java:1334)
                                                                                                        at android.animation.ValueAnimator.start(ValueAnimator.java:1149)
                                                                                                        at android.animation.ValueAnimator.start(ValueAnimator.java:1173)
                                                                                                        at android.view.InsetsController$InternalAnimationControlListener.onReady(InsetsController.java:470)
                                                                                                        at android.view.InsetsAnimationThreadControlRunner.lambda$new$0(InsetsAnimationThreadControlRunner.java:129)
                                                                                                        at android.view.InsetsAnimationThreadControlRunner.$r8$lambda$3zGKYd3XPzPnvMO2hiF8a88M6T0(Unknown Source:0)
                                                                                                        at android.view.InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda2.run(Unknown Source:6)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:205)
                                                                                                        at android.os.Looper.loop(Looper.java:294)
                                                                                                        at android.os.HandlerThread.run(HandlerThread.java:67)
ImeTracker              com.example.test                     I  com.example.test:39ecb7d6: onShown
EGL_emulation           com.example.test                     D  app_time_stats: avg=213.12ms min=0.85ms max=500.33ms count=5
EGL_emulation           com.example.test                     D  app_time_stats: avg=500.68ms min=499.36ms max=502.83ms count=3

Isso java.lang.IllegalArgumentExceptionocorre apenas algumas vezes, mas o bug geral ocorre sempre.

  • 2 respostas
  • 40 Views
Martin Hope
Daniel Walker
Asked: 2023-08-30 23:31:00 +0800 CST

O atributo malloc não aceita argumentos

  • 9

Eu criei um par de funções:

void destroy_foo(void *ptr);
void *create_foo(void);

Como os nomes sugerem, estes funcionam de forma semelhante a malloce free. Eu gostaria de usar o malloc atributo de função gcc para informar o compilador sobre esse relacionamento para que esse código gerasse um aviso com -fanalyzer:

void *ptr = create_foo();
destroy_foo(ptr);
destroy_foo(ptr);

Seguindo os exemplos do link mencionado acima, fiz

void *create_foo(void) __attribute__ ((malloc (destroy_foo)));

Embora o gcc (11.4.0) esteja bem com isso, o clang (14.0.0) reclama

error: 'malloc' attribute takes no arguments
void *create_foo(void) __attribute__ ((malloc (destroy_foo)));
                                       ^

Meu entendimento foi que os atributos do gcc funcionaram bem com o clang.

c
  • 1 respostas
  • 65 Views

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