Skip to content

Use an enum for infer_dtype return values? #29868

Open
@TomAugspurger

Description

@TomAugspurger

While working in #29799, it was quite hard to add a new return value from lib.infer_dtype. There are many places where we do something like

inferred_dtype = lib.infer_dtype(values)

if inferred_dtype == "string":
    ...

if inferred_dtype in {"datetime", "integer"}
    ...

It was hard to grep for these. Could we instead define an enum

class InferredType(enum.Enum):
    STRING: "string"
    INTEGER: "intger"
    MIXED_INTEGER: "mixed-integer"
    ...

And then return InferredType.INTEGER, and update all our checks for

if inferred_dtype == InferredType.INTEGER

I think this should be entirely backwards compatible, since we're still just returning the string.

Metadata

Metadata

Assignees

No one assigned

    Labels

    InternalsRelated to non-user accessible pandas implementationRefactorInternal refactoring of code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions