Comments (4)
Any thoughts on how to implement this check?
The AST node will look the same for both (ast.Call
), so this needs to include a separate semantic check to determine the type of the base object:
type(pd) # <class 'module'>
type(df) # <class 'pandas.core.frame.DataFrame'>
We can still use the AST to confirm that node.func.attr == 'merge'
from pandas-vet.
Without exploring this, my first thought is maybe to catch all pd.
calls and then check for merge
. Anything besides pd.
at the start of .merge
is fine. If someone calls their DataFrame 'pd
', they have bigger problems.
from pandas-vet.
Please ignore my closing of the issue - I mis-clicked.
from pandas-vet.
So to be clear, the AST does not retain any of the pandas semantics, so it doesn't have any idea what type of object the .merge()
method is applied to. Without implementing some other way to determine the object type, we can infer based on the name of the object.
We can actually add one additional check to this -- if the object name is pd
and the method has at least two arguments (left, right, ... )
. All of the other arguments have default values, so only df.merge()
could have a single argument.
from pandas-vet.
Related Issues (20)
- pandas-vet should run when flake-8 invoked by pre-commit HOT 1
- Automate releases to PyPI and conda-forge
- Challenging PD008: .at can be useful HOT 3
- False positive: dict().values()
- False positive: PD005 for regex `sub` method HOT 1
- New approach to docs with JupyterBook HOT 1
- Use generator expressions when possible HOT 2
- inplace set to a variable raises exception
- PD011 - shoud be to_numpy() instead of to_array()?
- Improve contributor experience HOT 1
- Constant column check with `nunique` HOT 2
- `PD012` is outdated HOT 1
- Improve official docs
- Check for proper `reset_index`
- torch.Tensor.sort return type values access PD011 false positive
- Add nox support to run tests, flake8, black locally HOT 1
- Add banners to Readme. HOT 1
- Add check for python functions that should be pandas methods
- Add notes about disabling checks to README
- Conda and pip install (0.2.2) not showing plugins with flake8 --version; 0.2.1 works HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pandas-vet.