Python/Pandas/Flake8:在导入中运行代码以扩展数据帧-如何避免F401未使用的导入?
我已经编写了一个模块,使用文件my_pandas_addon.py以自定义扩展名扩展pandas.DataFrame:Python/Pandas/Flake8:在导入中运行代码以扩展数据帧-如何避免F401未使用的导入?,python,pandas,dataframe,flake8,Python,Pandas,Dataframe,Flake8,我已经编写了一个模块,使用文件my_pandas_addon.py以自定义扩展名扩展pandas.DataFrame: import pandas as pd # some more custom classes & functionality here (...) # and finally: @pd.api.extensions.register_dataframe_accessor("my_addon") class MyAddon(): def __
import pandas as pd
# some more custom classes & functionality here (...)
# and finally:
@pd.api.extensions.register_dataframe_accessor("my_addon")
class MyAddon():
def __init__(self, df):
self._df = df
def do_something(self):
print("Working!")
在另一个文件中,我现在可以导入此模块并立即使用我的函数:
import pandas as pd
import my_pandas_addon ## <---- HERE: F401 'my_pandas_addon' imported but unused
def foo(df):
df.my_addon.do_something() # <---- here I am using my addon
将熊猫作为pd导入
导入my_pandas_addon###“只需将#noqa添加到import.Works,但这对我来说似乎有点奇怪。”
可能没有滥用导入my_pandas_addon
的副作用那么奇怪:)更重要的是,删除decorator,然后调用register_plugin()
在程序入口点中?(不在my\u pandas\u addon.py
)或者,您可以有一个\uuuu init\uuuuu.py
文件来为您进行所有注册。但是我的“程序入口点”在哪里?我不知道。最终,您需要在程序的一开始就知道您需要注册插件。在我所有的测试可执行文件中,可能存在于某个地方的所有程序都包含一个函数,该函数在某些子函数中使用了我的新插件。似乎不合理。此外,init在这里也不能解决任何问题(如何解决?)。最后,将df作为第一个参数的自由函数可能是一个有效的解决方法。因此,myu-plugin(df.foo()
而不是df.myu-plugin.foo()
。然而,这在笔记本电脑中并不是很好。“只需在import.Works中添加#noqa,但这对我来说似乎有点奇怪。”
可能没有滥用import my_pandas_addon
的副作用那么奇怪:)更严重的是,删除decorator,然后调用register_plugin()
在程序入口点中?(不在my\u pandas\u addon.py
)或者,您可以有一个\uuuu init\uuuuu.py
文件来为您进行所有注册。但是我的“程序入口点”在哪里?我不知道。最终,您需要在程序的一开始就知道您需要注册插件。在我所有的测试可执行文件中,可能存在于某个地方的所有程序都包含一个函数,该函数在某些子函数中使用了我的新插件。似乎不合理。此外,init在这里也不能解决任何问题(如何解决?)。最后,将df作为第一个参数的自由函数可能是一个有效的解决方法。因此,myu-plugin(df.foo()
而不是df.myu-plugin.foo()
。然而,这在笔记本电脑中并不是很好。