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
Emerson Cox
Asked: 2025-04-28 01:35:35 +0800 CST

Como posso excluir uma linha de um arquivo csv?

  • 7

insira a descrição da imagem aqui insira a descrição da imagem aqui

Quando tento excluir uma linha do meu arquivo CSV, ele exclui todo o resto e, em seguida, inverte a linha e separa os caracteres em suas próprias colunas. Não tenho ideia do que está acontecendo. Acima, estão as imagens que mostram o antes e o depois do meu arquivo CSV quando tento excluí-lo. Não tenho ideia do que está acontecendo e é muito estranho. Aqui está meu código e o problema está na linha 95:

import csv
import sys

FILENAME = "guests.csv"

def exit_program():
    print("Terminating program.")
    sys.exit()

def read_guests():
    try:
        guests = []
        with open(FILENAME, newline="") as file:
            reader = csv.reader(file)
            for row in reader:
                guests.append(row)
        return guests
    except FileNotFoundError as e:
##        print(f"Could not find {FILENAME} file.")
##        exit_program()
        return guests
    except Exception as e:
        print(type(e), e)
        exit_program()

def write_guests(guests):
    try:
        with open(FILENAME, "w", newline="") as file:
##            raise BlockingIOError("Error raised for testing.")
            writer = csv.writer(file)
            writer.writerows(guests)
    except OSError as e:
        print(type(e), e)
        exit_program()
    except Exception as e:
        print(type(e), e)
        exit_program()

def list_guests(guests):
    number_of_guests = 0
    number_of_members = 0
    total_fee = 0
    for i, guests in enumerate(guests, start=1):
        print(f"{i}. Name:        {guests[0]} {guests[1]}\n   Meal:        {guests[2]} \n   Guest Type:  {guests[3]} \n   Amount due:  ${guests[4]}")
        if guests[3] == "guest":
            number_of_guests +=1
        if guests[3] == "member":
            number_of_members +=1
        total_fee += 22
              
    print("Number of members: " +str(number_of_members))
    print("Number of guests: " +str(number_of_guests))
    print("Total fee paid by all attendees: " +str(total_fee))
    print()
    
def add_guests(guests):
    fname = input("First name: ")
    lname = input("Last name: ")
    while True:
        try:
            meal = str(input("Meal(chicken, vegetarian, or beef): "))
        except ValueError:
            print("Please enter a meal. Please try again.")
            continue
        if meal == "beef" :
            break
        if meal == "chicken" :
            break
        if meal == "vegetarian" :
            break
        else:
            print("Please enter a meal:(chicken, vegetarian, or beef)")

    while True:
        attendee_type = input("Are you a 'member' or 'guest'?")
        if attendee_type == "member" :
            break
        if attendee_type == "guest" :
            break
        else:
            print("Please enter either 'member' or 'guest': ")
    fee = 22
    
    
    guest = [fname, lname, meal, attendee_type, fee]
    guests.append(guest)
    write_guests(guests)
    print(f"{fname} was added.\n")

def delete_guest(guests):

    name = input("Enter the guest's first name: ")
    for i, guests in enumerate(guests, start=1):
        if name == guests[0]:
            del guests[i]

            write_guests(guests)
                
            print(f"{name} removed from catalog.")
            print("")
            break
    print(f"{name} doesn't exist in the list.")

def menu_report(guests):
    number_of_beef = 0
    number_of_chicken = 0
    number_of_vegetarian = 0
    for i, guests in enumerate(guests, start=1):
        if guests[2] == "beef":
            number_of_beef +=1
        if guests[2] == "chicken":
            number_of_chicken +=1
        if guests[2] == "vegetarian":
            number_of_vegetarian +=1
              
    print("Number of Chicken entrees: " +str(number_of_chicken))
    print("Number of Beef entrees: " +str(number_of_beef))
    print("Number of vegetarian Meals: " +str(number_of_vegetarian))
    print()

def display_menu():
    print("COMMAND MENU")
    print("list - List all guests")
    print("add -  Add a guest")
    print("del -  Delete a guest")
    print("menu - Report menu items")
    print("exit - Exit program")
    print()    

def main():
    print("The Guests List program")
    print("")
    guests = read_guests()
    while True:
        display_menu()
        command = input("Command: ")
        if command.lower() == "list":
            list_guests(guests)
        elif command.lower() == "add":
            add_guests(guests)
        elif command.lower() == "del":
            delete_guest(guests)
        elif command.lower() == "menu":
            menu_report(guests)
        elif command.lower() == "exit":
            break
        else:
            print("Not a valid command. Please try again.\n")
    print("Bye!")
    quit()

if __name__ == "__main__":
    main()

Isto é para uma tarefa que vence amanhã! arg!

Pensei que ele excluiria a linha, mas, em vez disso, ele salvou apenas essa linha e transformou cada entrada em uma coluna dessa linha em sua própria linha. Cada caractere na linha original agora estava separado em sua própria coluna.

python
  • 2 respostas
  • 37 Views
Martin Hope
Omar AlSuwaidi
Asked: 2025-04-28 01:21:44 +0800 CST

Como extrair corretamente todas as linhas duplicadas com uma condição em um Polars DataFrame?

  • 8

Dado um dataframe polar, quero extrair todas as linhas duplicadas e também aplicar uma condição de filtro adicional, por exemplo:

import polars as pl

df = pl.DataFrame({
    "name": ["Alice", "Bob", "Alice", "David", "Eve", "Bob", "Frank"],
    "city": ["NY", "LA", "NY", "SF", "LA", "LA", "NY"],
    "age": [25, 30, 25, 35, 28, 30, 40]
})

# Trying this:
df.filter((df.is_duplicated()) & (pl.col("city") == "NY"))  # error

Entretanto, isso resulta em um erro:

SchemaError: não é possível descompactar séries de tipos objectembool

O que faz alusão que df.is_duplicated()retorna uma série do tipo object, mas na realidade, é uma BooleanSeries.

Surpreendentemente, reordenar os predicados colocando a expressão primeiro faz com que funcione ( mas por quê? ):
df.filter((pl.col("city") == "NY") & (df.is_duplicated())) # works!gera corretamente:

shape: (2, 3)
┌───────┬──────┬─────┐
│ name  ┆ city ┆ age │
│ ---   ┆ ---  ┆ --- │
│ str   ┆ str  ┆ i64 │
╞═══════╪══════╪═════╡
│ Alice ┆ NY   ┆ 25  │
│ Alice ┆ NY   ┆ 25  │
└───────┴──────┴─────┘

Entendo que a abordagem ideal ao filtrar duplicatas com base em um subconjunto de colunas é usar pl.struct, como:
df.filter((pl.struct(df.columns).is_duplicated()) & (pl.col("city") == "NY")) # works
O que funciona bem com a condição de filtro adicional.

No entanto, não estou usando intencionalmente pl.structporque meu dataframe real tem 40 colunas e quero verificar se há linhas duplicadas com base em todas as colunas, exceto três, então fiz o seguinte:
df.filter(df.drop("col1", "col2", "col3").is_duplicated()) O que funciona bem e é muito mais conveniente do que escrever todas as 37 colunas em um arquivo pl.struct. No entanto, isso falha ao adicionar uma condição de filtro adicional à direita, mas não à esquerda :

df.filter(
    (df.drop("col1", "col2", "col3").is_duplicated()) & (pl.col("col5") == "something")
    )  # breaks!

df.filter(
    (pl.col("col5") == "something") & (df.drop("col1", "col2", "col3").is_duplicated())
    )  # works!

Por que a ordem dos predicados (Série e Expressão vs. Expressão e Série) importa.filter()neste caso? Esse é um comportamento intencional em Polars ou um bug?

python
  • 1 respostas
  • 38 Views
Martin Hope
Ildar
Asked: 2025-04-28 01:21:08 +0800 CST

Como interceptar todos os pacotes da interface eth0 do contêiner pelo aplicativo dpdk no contêiner docker

  • 7

Configurei hugepages, criei um contêiner e implantei o aplicativo dpdk no contêiner, mas meu aplicativo retorna 0 para rte_eth_dev_count_avail, o que posso perder

  • argumentos que passo para aplicação:
/usr/bin/fwdd -l 0-3 -n 4 --vdev=net_tap0,iface=eth0
  • configurar páginas enormes
function setup_hugepages()
{
    echo "Setup hugepages"
    sysctl -w vm.nr_hugepages=1024
    echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

    MOUNT_POINT="/mnt/huge"
    if [ ! $(mountpoint -q "${MOUNT_POINT}") ]; then
        echo "Mounting hugepages"
        mkdir -p ${MOUNT_POINT}
        mount -t hugetlbfs nodev ${MOUNT_POINT}
    else
        echo "Hugepages are already mounted at ${MOUNT_POINT}"
    fi
}
  • criar contêiner
docker run -itd --privileged --cap-add=ALL \
    -v /sys/bus/pci/devices:/sys/bus/pci/devices \
    -v /sys/kernel/mm/hugepages:/sys/kernel/mm/hugepages \
    -v /sys/devices/system/node:/sys/devices/system/node \
    -v /dev:/dev \
    -v /mnt/huge:/mnt/huge \
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
    --name nstk nstk_image
  • parte do aplicativo dpdk
int main(int argc, char* argv[])
{
    int ret = rte_eal_init(argc, argv);
    if (ret < 0) {
        NSTK_LOG_DEBUG("Error: EAL initialization failed");
        return EXIT_FAILURE;
    }

    if (rte_eth_dev_count_avail() == 0) {
        NSTK_LOG_DEBUG("Error: No available Ethernet ports");
        return EXIT_FAILURE;
    }
...
c
  • 1 respostas
  • 71 Views
Martin Hope
Antonio Sesto
Asked: 2025-04-28 01:17:11 +0800 CST

A estratificação falha no train_test_split

  • 5

Considere o seguinte código:


import pandas as pd
from sklearn.model_selection import train_test_split


# step 1
ids = list(range(1000))
label = 500 * [1.0] + 500 * [0.0]
df = pd.DataFrame({"id": ids, "label": label})

# step 2
train_p = 0.8
val_p = 0.1
test_p = 0.1

# step 3
n_train = int(len(df) * train_p)
n_val = int(len(df) * val_p)
n_test = len(df) - n_train - n_val

print("* Step 3")
print("train:", n_train)
print("val:", n_val)
print("test:", n_test)
print()

# step 4
train_ids, test_ids = train_test_split(df["id"], stratify=df.label, test_size=n_test, random_state=42)

# step 5
print("* Step 5. First split")
print( df.loc[df.id.isin(train_ids), "label"].value_counts() )
print( df.loc[df.id.isin(test_ids), "label"].value_counts() )
print()

# step 6
train_ids, val_ids = train_test_split(train_ids, stratify=df.loc[df.id.isin(train_ids), "label"], test_size=n_val, random_state=42)

# step 7
train_df = df[df["id"].isin(train_ids)]
val_df = df[df["id"].isin(val_ids)]
test_df = df[df["id"].isin(test_ids)]

# step 8
print("* Step 8. Final split")
print("train:", train_df["label"].value_counts())
print("val:", val_df["label"].value_counts())
print("test:", test_df["label"].value_counts())


com saída:

* Step 3
train: 800
val: 100
test: 100

* Step 5. First split
label
1.0    450
0.0    450
Name: count, dtype: int64
label
1.0    50
0.0    50
Name: count, dtype: int64

* Step 8. Final split
train: label
0.0    404
1.0    396
Name: count, dtype: int64
val: label
1.0    54
0.0    46
Name: count, dtype: int64
test: label
1.0    50
0.0    50
Name: count, dtype: int64
  1. Crie um Dataframe com 1000 elementos perfeitamente balanceados entre classe 1 e 0 (positiva e negativa);
  2. Defina a proporção de exemplos que devem ser incluídos nas partições de treinamento, validação e teste. Gostaria de 800 exemplos na divisão de treinamento e 100 exemplos em cada uma das outras duas.
  3. Calcule os tamanhos das três partições e imprima seus valores.
  4. Execute a primeira divisão para obter o conjunto de teste, estratificado em label.
  5. Imprima as estatísticas de rótulo da primeira divisão. As duas partições ainda estão balanceadas.
  6. Execute a segunda divisão em treinamento e validação, estratificada em label.
  7. Selecione exemplos
  8. Estatísticas de etiquetas de impressão.

Como você pode ver, a segunda divisão na etapa 6 não produz uma divisão balanceada (estatísticas impressas na etapa 8). Após a primeira divisão, os exemplos (saída na etapa 5) ainda estão balanceados e seria possível realizar uma segunda divisão mantendo um equilíbrio de classes perfeito.

O que estou fazendo errado?

python
  • 1 respostas
  • 37 Views
Martin Hope
zaber8787利巴
Asked: 2025-04-28 00:29:36 +0800 CST

O Py-cord é compatível com o novo recurso Comandos de Instalação do Usuário do Discord?

  • 6

Recentemente, descobri que o Discord foi atualizado com um recurso chamado "Instalação do Usuário", que permite aos usuários instalar bots em suas contas pessoais, não apenas em servidores. Pelo que entendi, isso permite que os usuários usem certos comandos de bot em servidores onde o bot não está oficialmente presente.

Estou desenvolvendo um bot do Discord usando py-cord e quero implementar esse novo recurso, mas não consigo encontrar nenhuma informação sobre ele na documentação.

Minhas perguntas são:

  1. O py-cord já suporta o recurso Comandos de Instalação do Usuário do Discord?
  2. Se suportado, como posso definir e implementar um comando no py-cord que pode ser instalado por usuários e usado em qualquer servidor?
  3. Existem decoradores relevantes ou configurações especiais para marcar esses tipos de comandos?

Minha estrutura de código atual:

import discord
from discord.ext import commands

bot = commands.Bot()

# Regular slash command
@bot.slash_command(name="hello", description="Say hello")
async def hello(ctx):
    await ctx.respond(f"Hello, {ctx.author.name}!")

# I want to know how to modify this to be a user-installable command
# @bot.???_command(name="usercommand")
# async def user_command(ctx):
#     await ctx.respond("This is a user-installed command")

bot.run("TOKEN")

Obrigado por qualquer orientação ou sugestão!

python
  • 1 respostas
  • 27 Views
Martin Hope
Saisiva A
Asked: 2025-04-28 00:12:39 +0800 CST

Como o MRO do Python funciona em herança hierárquica e múltipla

  • 4

Até agora, isso está me deixando confuso. Como entender o código abaixo para obter o resultado? Alguém pode explicar abaixo duas partes da saída como o fluxo realmente acontece? A primeira parte mostra a saída como "C" e a segunda parte como "A".

class A:
    def fun1(self):
        print("A")
 
class B(A):
    def fun1(self):
        print('B')
 
class C(A):
    def fun1(self):
        print("C")
 
class D(B, C):
    def fun1(self):
        super(B, self).fun1()  
 
obj = D()
obj.fun1()  **# How output will be 'C' in this case ?**
output : C 

class A:
    def fun1(self):
        print("A")

class B(A):
    def fun1(self):
        print("B")

class C(A):
    def fun1(self):
        print("C")

class D(B, C):
    def fun1(self):
        super(C, self).fun1()  

obj = D()
obj.fun1()  **# How output will be 'A' in this case ?**
output : A   
python
  • 1 respostas
  • 33 Views
Martin Hope
Cristi
Asked: 2025-04-27 23:27:46 +0800 CST

Como corrigir "Não é possível criar uma instância da classe ViewModel" ao usar o Hilt?

  • 6

Estou fazendo um curso do JetPack Compose e estou tentando executar um projeto de exemplo mostrando o uso do ViewModel junto com o Hilt.

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()

        setContent {
            Surface(color = MaterialTheme.colorScheme.background) {
                val noteViewModel: NoteViewModel = hiltViewModel<NoteViewModel>()
                // NoteApp(noteViewModel)
            }
        }
    }
}

Para inicializar o ViewModel eu também tentei

 noteViewModel by viewModels()

e

 noteViewModel = hiltViewModel()

O código do ViewModel é o seguinte:

@HiltViewModel
class NoteViewModel @Inject constructor(private val repository: NoteRepository) : ViewModel() {
    //private var noteList = mutableStateListOf<Note>()

    private val _noteList = MutableStateFlow<List<Note>>(emptyList())
    val noteList = _noteList.asStateFlow()

    init {
        //noteList.addAll(NotesDataSource.loadDataNotes())
        viewModelScope.launch(Dispatchers.IO) {
            repository.getAllNotes().distinctUntilChanged().collect { listOfNotes ->
                if (listOfNotes.isEmpty()) {
                    Log.d("JetNote", "EmptyList")
                } else {
                    _noteList.value = listOfNotes
                }
            }
        }
    }

    fun addNote(note: Note) = viewModelScope.launch {
        repository.addNote(note)
    }

    fun updateNote(note: Note) = viewModelScope.launch {
        repository.updateNote(note)
    }

    fun removeNote(note: Note) = viewModelScope.launch {
        repository.deleteNote(note)
    }
}

A configuração do AppModule para o Hilt é a seguinte:

@InstallIn(SingletonComponent::class)
@Module
object AppModule {

    @Singleton
    @Provides
    fun provideNotesDao(noteDatabase: NoteDatabase) : NoteDatabaseDao = noteDatabase.noteDao()

    @Singleton
    @Provides
    fun provideAppDatabase(@ApplicationContext context: Context) : NoteDatabase =
        Room.databaseBuilder(
            context,
            NoteDatabase::class.java,
            "notes_db"
        ).fallbackToDestructiveMigration().build()
}

Código do NoteRepository:

class NoteRepository @Inject constructor(private val noteDatabaseDao: NoteDatabaseDao) {
    suspend fun addNote(note: Note) = noteDatabaseDao.insert(note)
    suspend fun updateNote(note: Note) = noteDatabaseDao.update(note)
    suspend fun deleteNote(note: Note) = noteDatabaseDao.deleteNote(note)
    suspend fun deleteAllNotes() = noteDatabaseDao.deleteAll()
    fun getAllNotes(): Flow<List<Note>> = noteDatabaseDao.getNotes().flowOn(Dispatchers.IO).conflate()
}

O erro que recebo ao executar o aplicativo é:

java.lang.RuntimeException: Cannot create an instance of class com.course.jetnote.screens.NoteViewModel
........................
Caused by: java.lang.NoSuchMethodException: com.course.jetnote.screens.NoteViewModel.<init> []

E esta é minha configuração do Gradle:

build.gradle.kts:

plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.kotlin.android)
    alias(libs.plugins.kotlin.compose)
}

android {
    namespace = "com.course.jetnote"
    compileSdk = 35

    defaultConfig {
        applicationId = "com.course.jetnote"
        minSdk = 26
        targetSdk = 35
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
    kotlinOptions {
        jvmTarget = "11"
    }
    buildFeatures {
        compose = true
    }

    packaging {
        resources {
            excludes += "/META-INF/gradle/incremental.annotation.processors"
            excludes += "META-INF/androidx/room/room-compiler-processing/LICENSE.txt"
        }
    }

}

configurations.implementation {
    exclude(group = "org.jetbrains", module = "annotations")
}


dependencies {

    implementation(libs.androidx.core.ktx)
    implementation(libs.androidx.lifecycle.runtime.ktx)
    implementation(libs.androidx.activity.compose)
    implementation(platform(libs.androidx.compose.bom))
    implementation(libs.androidx.ui)
    implementation(libs.androidx.ui.graphics)
    implementation(libs.androidx.ui.tooling.preview)
    implementation(libs.androidx.material3)
    implementation(libs.androidx.lifecycle.viewModelCompose)
    implementation(libs.hilt.android)
    implementation(libs.hilt.compiler)
    implementation(libs.androidx.hilt.navigation.compose)
    implementation(libs.room.ktx)
    implementation(libs.room.runtime)
    implementation(libs.room.compiler)
    implementation(libs.kotlinx.coroutines.android)
    implementation(libs.androidx.room.runtime.android)

    testImplementation(libs.junit)
    androidTestImplementation(libs.androidx.junit)
    androidTestImplementation(libs.androidx.espresso.core)
    androidTestImplementation(platform(libs.androidx.compose.bom))
    androidTestImplementation(libs.androidx.ui.test.junit4)
    debugImplementation(libs.androidx.ui.tooling)
    debugImplementation(libs.androidx.ui.test.manifest)
}

lib.versions.toml:

[versions]
agp = "8.8.2"
kotlin = "2.0.0"
coreKtx = "1.15.0"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
lifecycleRuntimeKtx = "2.8.7"
activityCompose = "1.10.1"
composeBom = "2024.04.01"
androidxLifecycle = "2.8.7"

androidxHiltNavigationCompose = "1.0.0"
hilt = "2.56.2"
hiltExt = "1.0.0"

room = "2.6.0"

kotlinxCoroutines = "1.10.0"
kotlinxDatetime = "0.6.0"
kotlinxSerializationJson = "1.8.0"
roomRuntimeAndroid = "2.7.1"

[libraries]
 androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
 junit = { group = "junit", name = "junit", version.ref = "junit" }
 androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
 androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
 androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
 androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
 androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
 androidx-ui = { group = "androidx.compose.ui", name = "ui" }
 androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
 androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
 androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
 androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
 androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
 androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
 androidx-lifecycle-viewModelCompose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" }


hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" }
hilt-ext-compiler = { group = "androidx.hilt", name = "hilt-compiler", version.ref = "hiltExt" }
androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" }



#Database
room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }
room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" }
room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }

#Kotlin Coroutines, serialization, datetime...
kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" }
kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDatetime" }
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" }
androidx-room-runtime-android = { group = "androidx.room", name = "room-runtime-android", version.ref = "roomRuntimeAndroid" }

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
  • 1 respostas
  • 64 Views
Martin Hope
Toby Speight
Asked: 2025-04-27 22:48:56 +0800 CST

Por que meu intervalo transformado não tem um iterador válido?

  • 7

Quero uma visão dos caracteres de um fluxo de entrada:

    auto input = std::stringstream{"abcd"};
    using Iter = std::istreambuf_iterator<char>;
    auto s = std::ranges::subrange{Iter{input}, Iter{}};

Até aqui, tudo bem. Agora, eu transformo essa visualização (usando uma transformação de identidade para simplificar):

    auto t = s | std::views::transform(std::identity{});

Embora esta visão transformada tenha uma validade value_type(ou seja, esta afirmação passa):

    using T = decltype(t);
    static_assert(std::is_same_v<char, std::ranges::range_value_t<T>>);

o tipo de iterador dele não tem um:

    static_assert(std::is_same_v<char, std::iterator_traits<std::ranges::iterator_t<T>>::value_type>);

Isso falha com

view.cc: In function 'int main()':
view.cc:27:90: error: 'value_type' is not a member of 'std::iterator_traits<std::ranges::transform_view<std::ranges::subrange<std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ranges::subrange_kind::unsized>, std::identity>::_Iterator<false> >'
   27 |     static_assert(std::is_same_v<char, std::iterator_traits<std::ranges::iterator_t<T>>::value_type>);
      |                                                                                          ^~~~~~~~~~
view.cc:27:100: error: template argument 2 is invalid
   27 |     static_assert(std::is_same_v<char, std::iterator_traits<std::ranges::iterator_t<T>>::value_type>);
      |                   

A razão pela qual isso é importante para mim é que quero usar as características do iterador em um adaptador de visualização posterior.


A investigação sugere que o iterador da visualização de transformação não possui seu iterator_categorymembro. O código funciona bem quando passo um intervalo mais capaz, como std::stringpara a transformação, mas falha com esse intervalo não direto.


Código completo (também no Compiler Explorer ):

#include <functional>
#include <iterator>
#include <ranges>
#include <sstream>
#include <string>
#include <type_traits>

int main()
{
#ifdef PASS
    auto input = std::string{"abcd"};
    std::ranges::forward_range auto s = std::ranges::subrange(input.begin(), input.end());
#else
    auto input = std::stringstream{"abcd"};
    using Iter = std::istreambuf_iterator<char>;
    std::ranges::input_range auto s = std::ranges::subrange{Iter{input}, Iter{}};
#endif

    using S = decltype(s);
    static_assert(std::is_same_v<char, std::ranges::range_value_t<S>>);
    static_assert(std::is_same_v<char, std::iterator_traits<std::ranges::iterator_t<S>>::value_type>);

    auto t = s | std::views::transform(std::identity{});
    using T = decltype(t);
    static_assert(std::is_same_v<char, std::ranges::range_value_t<T>>);
    static_assert(std::is_same_v<char, std::ranges::iterator_t<T>::value_type>);
    static_assert(std::is_base_of_v<std::input_iterator_tag, std::ranges::iterator_t<T>::iterator_category>);
    static_assert(std::is_same_v<char, std::iterator_traits<std::ranges::iterator_t<T>>::value_type>);
}
c++
  • 1 respostas
  • 63 Views
Martin Hope
theKMan747
Asked: 2025-04-27 22:22:09 +0800 CST

Existe uma maneira de determinar se um tipo não está definido?

  • 7

Tenho um tipo Type_##typedependente de uma determinada macro type_create:

#define type_create(type) { \
    typedef struct { \
        type* ptr, \
    } Type_##type; \

e tenho algumas macros dependentes dele. Agora estou pensando se posso fazer algo como #ifndefpara um tipo, por exemplo,

#ifndef Type_int
type_create(int);
#endif

exceto para tipos.

c
  • 1 respostas
  • 50 Views
Martin Hope
tcgconsolee
Asked: 2025-04-27 21:46:04 +0800 CST

Por que o Flask SQLalchemy está me dando um erro "nenhuma tabela: usuários"?

  • 7
import os
from flask import Flask, render_template, redirect, url_for, request
from flask_login import LoginManager, UserMixin, login_user, current_user, logout_user
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///db.sqlite"
db = SQLAlchemy()
 
login_manager = LoginManager(app)

class Users(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(250), unique=True,
                         nullable=False)
    password = db.Column(db.String(250),
                         nullable=False)
    location = db.Column(db.String(250),
                         nullable=False)
 
db.init_app(app)
app.app_context().push()
with app.app_context():
    db.create_all()



@login_manager.user_loader
def loader_user(user_id):
    return Users.query.get(user_id)

@app.route('/register', methods=["GET", "POST"])
def register():

    if request.method == "POST":
        if not db.session.query(Users).filter_by(username=request.form.get("uname")).count() < 1:
            return render_template("sign_up.html", value = "USER ALREADY EXISTS")
        if request.form.get("uname") == "":
            return render_template("sign_up.html", value = "USERNAME IS BLANK")
        if request.form.get("psw") == "":
            return render_template("sign_up.html", value = "PASSWORD IS BLANK")
        if request.form.get("loc") == "":
            return render_template("sign_up.html", value = "LOCATION IS BLANK")
        user = Users(username=request.form.get("uname"),
                     password=request.form.get("psw"),
                     location=request.form.get("loc"))
    
        db.session.add(user)    
        db.session.commit()
    
    
        return redirect(url_for("login"))

    return render_template("sign_up.html", value ="")


@app.route("/login", methods=["GET", "POST"])
def login():
    if current_user.is_authenticated:
        return redirect(url_for("index", logged_in = True, username = current_user.username))


    if request.method == "POST":
        user = Users.query.filter_by(
            username=request.form.get("uname")).first()
        if not user:
            return render_template("login.html", value = request.form.get("uname"))
    
    
        if user.password == request.form.get("psw"):
            login_user(user)
            return redirect(url_for("index", logged_in = True, username = user.username))
    return render_template("login.html")

if __name__ == "__main__":
    app.secret_key = 'kevin2000'
    app.config['SESSION_TYPE'] = 'filesystem'
    app.run(host ="0.0.0.0", port = 10000, debug=False)

Este é meu código e aqui estou recebendo este erro

Traceback (most recent call last):
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
    self.dialect.do_execute(
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\engine\default.py", line 945, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: users

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\flask\app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\flask\app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\flask\app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\flask\app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\theco\OneDrive\Documents\veil\app.py", line 41, in register
    if not db.session.query(Users).filter_by(username=request.form.get("uname")).count() < 1:
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\orm\query.py", line 3147, in count
    self._legacy_from_self(col).enable_eagerloads(False).scalar()
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\orm\query.py", line 2836, in scalar
    ret = self.one()
          ^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\orm\query.py", line 2809, in one
    return self._iter().one()  # type: ignore
           ^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\orm\query.py", line 2858, in _iter
    result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
                                                  ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\orm\session.py", line 2365, in execute
    return self._execute_internal(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\orm\session.py", line 2251, in _execute_internal
    result: Result[Any] = compile_state_cls.orm_execute_statement(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\orm\context.py", line 306, in orm_execute_statement
    result = conn.execute(
             ^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\engine\base.py", line 1416, in execute
    return meth(
           ^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\sql\elements.py", line 523, in _execute_on_connection
    return connection._execute_clauseelement(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\engine\base.py", line 1638, in _execute_clauseelement
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\engine\base.py", line 1843, in _execute_context
    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\engine\base.py", line 1983, in _exec_single_context
    self._handle_dbapi_exception(
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\engine\base.py", line 2352, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
    self.dialect.do_execute(
  File "C:\Users\theco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\sqlalchemy\engine\default.py", line 945, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: users
[SQL: SELECT count(*) AS count_1 
FROM (SELECT users.id AS users_id, users.username AS users_username, users.password AS users_password, users.location AS users_location 
FROM users 
WHERE users.username = ?) AS anon_1]
[parameters: ('xdgsdg',)]
(Background on this error at: https://sqlalche.me/e/20/e3q8)

Eu pesquisei em outros lugares, mas só falam que o db.create_all() não está lá. Eu também sou muito novo no Flask, então alguém pode me ajudar, por favor.

Eu também tentei db.drop_all() e depois db.create_all()

isso também não pareceu funcionar

se ajudar, também posso fornecer o sign_up.html de onde o erro está ocorrendo quando envio o formulário

python
  • 1 respostas
  • 32 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