Giter Site home page Giter Site logo

Comments (7)

wanaryytel avatar wanaryytel commented on June 9, 2024 1

This is also true for PD011 with .values(), e.g. Flask request object has an attribute values, too.

from pandas-vet.

wanaryytel avatar wanaryytel commented on June 9, 2024 1

A quick hack (that could be optional for example) would be to check if pandas is imported in the file. Sure, it won't work for a lot of cases, but for a lot of cases it also will work.

from pandas-vet.

gahjelle avatar gahjelle commented on June 9, 2024 1

Regarding the case for PD011 - .values, one check could be for the parentheses. I get a lot of false positives because I'm using both pandas and dictionaries. Looping through the values of the dictionary with .values() triggers PD011.

I'm not really familiar with the AST, so I don't know if this is an easy check or not.

from pandas-vet.

deppen8 avatar deppen8 commented on June 9, 2024

Indeed. I should create a new Issue detailing this, but the problem is that many of our checks rely on the type of the object being a pandas object. This is a fundamental issue with static linting in Python because the AST doesn't know what type a thing is.

I am open to suggestions on how to get around this, but it will likely be a big job. For now, the undesirable workaround is to turn off checks that are particularly bothersome.

from pandas-vet.

deppen8 avatar deppen8 commented on June 9, 2024

A quick hack (that could be optional for example) would be to check if pandas is imported in the file. Sure, it won't work for a lot of cases, but for a lot of cases it also will work.

I have considered this. If you'd like to put in a PR that adds this, I'd be happy to take a look at it.

from pandas-vet.

daviddavo avatar daviddavo commented on June 9, 2024

What about type hinting?

Mypy uses the typed-ast package, but this has been included on the ast on Python 3.8+

So, in python < 3.8 you can use typed-ast, and on python 3.8+ you can just use the ast

Using type hinting, this shouldn't be a false positive:

import pandas as pd

bl: UnixDateBuilder = UnixDateBuilder()
bl.sub(month=3).change(day=1, hour=0, minute=0, second=0)

You can get the type of something using typing.get_type_hints()

Example from towardsdatascience: https://towardsdatascience.com/python-type-hints-docstrings-7ec7f6d3416b

from pandas-vet.

simchuck avatar simchuck commented on June 9, 2024

from pandas-vet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.