Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

inf treated as a number, which is very weird

Aperta
#118 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
python
Ambito
data

Direzione di ricerca

Inizia in patsy.parse_formula._read_python_expr e riproduci il problema con patsy.ModelDesc.from_formula("inf ~ x"). Ispeziona l'output di tokenize per l'espressione e confrontalo con i controlli attuali di int() e float(). Il lavoro è completato quando inf e nan possono essere usati come nomi di variabili della formula senza essere classificati come valori letterali numerici.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

As noted here: https://stackoverflow.com/questions/48371747/how-to-modify-a-liner-regression-in-python-3-6

This formula causes patsy to raise an error:

patsy.ModelDesc.from_formula("inf ~ x")

the problem is that in patsy.parse_formula._read_python_expr, patsy tries to figure out whether an arbitrary Python expression is a numeric literal, and the way it does this is by calling int(...) and float(...) on the expression, and seeing if they work.

In this case, float("inf") does work, so patsy decides that the Python expression inf is a numeric literal. Whoops.

The same thing probably happens if you try to use nan as a variable name in a formula.

I guess a more reliable way of checking for numeric literals would be to check the tokenize output: if an expression is a single token, and that token has type tokenize.NUMBER, then it's a numeric literal.

Lingua principale
Python
Stelle
989
Fork
107
Merge medio
21g 12h
PR unite (30g)
1

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di pydata/patsy

Tutte le issue di pydata/patsy

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.