py2ls 0.2.3__py3-none-any.whl → 0.2.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
py2ls/.DS_Store CHANGED
Binary file
py2ls/data/usages_pd.json CHANGED
@@ -1,56 +1,56 @@
1
1
  {
2
- "pd.read_pickle": "pd.read_pickle(filepath_or_buffer,compression='infer',storage_options=None)",
3
- "df.to_pickle": "df.to_pickle(path,*,compression='infer',protocol=5,storage_options=None)",
4
- "pd.read_table": "pd.read_table(filepath_or_buffer,*,sep=<no_default>,delimiter=None,header='infer',names=<no_default>,index_col=None,usecols=None,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skipinitialspace=False,skiprows=None,skipfooter=0,nrows=None,na_values=None,keep_default_na=True,na_filter=True,verbose=<no_default>,skip_blank_lines=True,parse_dates=False,infer_datetime_format=<no_default>,keep_date_col=<no_default>,date_parser=<no_default>,date_format=None,dayfirst=False,cache_dates=True,iterator=False,chunksize=None,compression='infer',thousands=None,decimal='.',lineterminator=None,quotechar='\"',quoting=0,doublequote=True,escapechar=None,comment=None,encoding=None,encoding_errors='strict',dialect=None,on_bad_lines='error',delim_whitespace=<no_default>,low_memory=True,memory_map=False,float_precision=None,storage_options=None,dtype_backend=<no_default>)",
5
- "pd.read_csv": "pd.read_csv(filepath_or_buffer,*,sep=<no_default>,delimiter=None,header='infer',names=<no_default>,index_col=None,usecols=None,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skipinitialspace=False,skiprows=None,skipfooter=0,nrows=None,na_values=None,keep_default_na=True,na_filter=True,verbose=<no_default>,skip_blank_lines=True,parse_dates=None,infer_datetime_format=<no_default>,keep_date_col=<no_default>,date_parser=<no_default>,date_format=None,dayfirst=False,cache_dates=True,iterator=False,chunksize=None,compression='infer',thousands=None,decimal='.',lineterminator=None,quotechar='\"',quoting=0,doublequote=True,escapechar=None,comment=None,encoding=None,encoding_errors='strict',dialect=None,on_bad_lines='error',delim_whitespace=<no_default>,low_memory=True,memory_map=False,float_precision=None,storage_options=None,dtype_backend=<no_default>)",
6
- "df.to_csv": "df.to_csv(path_or_buf=None,*,sep=',',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,mode='w',encoding=None,compression='infer',quoting=None,quotechar='\"',lineterminator=None,chunksize=None,date_format=None,doublequote=True,escapechar=None,decimal='.',errors='strict',storage_options=None)",
7
- "pd.read_fwf": "pd.read_fwf(filepath_or_buffer,*,colspecs='infer',widths=None,infer_nrows=100,dtype_backend=<no_default>,iterator=False,chunksize=None,**kwds)",
8
- "pd.read_clipboard": "pd.read_clipboard(sep='\\\\s+',dtype_backend=<no_default>,**kwargs)",
9
- "pd.read_excel": "pd.read_excel(io,sheet_name=0,*,header=0,names=None,index_col=None,usecols=None,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrows=None,na_values=None,keep_default_na=True,na_filter=True,verbose=False,parse_dates=False,date_parser=<no_default>,date_format=None,thousands=None,decimal='.',comment=None,skipfooter=0,storage_options=None,dtype_backend=<no_default>,engine_kwargs=None)",
10
- "df.to_excel": "df.to_excel(excel_writer,*,sheet_name='Sheet1',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,startrow=0,startcol=0,engine=None,merge_cells=True,inf_rep='inf',freeze_panes=None,storage_options=None,engine_kwargs=None)",
11
- "classpandas.ExcelFile": "classpandas.ExcelFile(path_or_buffer,engine=None,storage_options=None,engine_kwargs=None)",
12
- "propertyExcelFile.book": "propertyExcelFile.book",
13
- "propertyExcelFile.sheet_names": "propertyExcelFile.sheet_names",
14
- "ExcelFile.parse": "ExcelFile.parse(sheet_name=0,header=0,names=None,index_col=None,usecols=None,converters=None,true_values=None,false_values=None,skiprows=None,nrows=None,na_values=None,parse_dates=False,date_parser=<no_default>,date_format=None,thousands=None,comment=None,skipfooter=0,dtype_backend=<no_default>,**kwds)",
15
- "Styler.to_excel": "Styler.to_excel(excel_writer,sheet_name='Sheet1',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,startrow=0,startcol=0,engine=None,merge_cells=True,encoding=None,inf_rep='inf',verbose=True,freeze_panes=None,storage_options=None)",
16
- "classpandas.ExcelWriter": "classpandas.ExcelWriter(path,engine=None,date_format=None,datetime_format=None,mode='w',storage_options=None,if_sheet_exists=None,engine_kwargs=None)",
17
- "pd.read_json": "pd.read_json(path_or_buf,*,orient=None,typ='frame',dtype=None,convert_axes=None,convert_dates=True,keep_default_dates=True,precise_float=False,date_unit=None,encoding=None,encoding_errors='strict',lines=False,chunksize=None,compression='infer',nrows=None,storage_options=None,dtype_backend=<no_default>,engine='ujson')",
18
- "pd.json_normalize": "pd.json_normalize(data,record_path=None,meta=None,meta_prefix=None,record_prefix=None,errors='raise',sep='.',max_level=None)",
19
- "df.to_json": "df.to_json(path_or_buf=None,*,orient=None,date_format=None,double_precision=10,force_ascii=True,date_unit='ms',default_handler=None,lines=False,compression='infer',index=None,indent=None,storage_options=None,mode='w')",
20
- "pd.io.json.build_table_schema": "pd.io.json.build_table_schema(data,index=True,primary_key=None,version=True)",
21
- "pd.read_html": "pd.read_html(io,*,match='.+',flavor=None,header=None,index_col=None,skiprows=None,attrs=None,parse_dates=False,thousands=',',encoding=None,decimal='.',converters=None,na_values=None,keep_default_na=True,displayed_only=True,extract_links=None,dtype_backend=<no_default>,storage_options=None)",
22
- "df.to_html": "df.to_html(buf=None,*,columns=None,col_space=None,header=True,index=True,na_rep='NaN',formatters=None,float_format=None,sparsify=None,index_names=True,justify=None,max_rows=None,max_cols=None,show_dimensions=False,decimal='.',bold_rows=True,classes=None,escape=True,notebook=False,border=None,table_id=None,render_links=False,encoding=None)",
23
- "Styler.to_html": "Styler.to_html(buf=None,*,table_uuid=None,table_attributes=None,sparse_index=None,sparse_columns=None,bold_headers=False,caption=None,max_rows=None,max_columns=None,encoding=None,doctype_html=False,exclude_styles=False,**kwargs)",
24
- "pd.read_xml": "pd.read_xml(path_or_buffer,*,xpath='./*',namespaces=None,elems_only=False,attrs_only=False,names=None,dtype=None,converters=None,parse_dates=None,encoding='utf-8',parser='lxml',stylesheet=None,iterparse=None,compression='infer',storage_options=None,dtype_backend=<no_default>)",
25
- "df.to_xml": "df.to_xml(path_or_buffer=None,*,index=True,root_name='data',row_name='row',na_rep=None,attr_cols=None,elem_cols=None,namespaces=None,prefix=None,encoding='utf-8',xml_declaration=True,pretty_print=True,parser='lxml',stylesheet=None,compression='infer',storage_options=None)",
26
- "df.to_latex": "df.to_latex(buf=None,*,columns=None,header=True,index=True,na_rep='NaN',formatters=None,float_format=None,sparsify=None,index_names=True,bold_rows=False,column_format=None,longtable=None,escape=None,encoding=None,decimal='.',multicolumn=None,multicolumn_format=None,multirow=None,caption=None,label=None,position=None)",
27
- "Styler.to_latex": "Styler.to_latex(buf=None,*,column_format=None,position=None,position_float=None,hrules=None,clines=None,label=None,caption=None,sparse_index=None,sparse_columns=None,multirow_align=None,multicol_align=None,siunitx=False,environment=None,encoding=None,convert_css=False)",
28
- "pd.read_hdf": "pd.read_hdf(path_or_buf,key=None,mode='r',errors='strict',where=None,start=None,stop=None,columns=None,iterator=False,chunksize=None,**kwargs)",
29
- "HDFStore.put": "HDFStore.put(key,value,format=None,index=True,append=False,complib=None,complevel=None,min_itemsize=None,nan_rep=None,data_columns=None,encoding=None,errors='strict',track_times=True,dropna=False)",
30
- "HDFStore.append": "HDFStore.append(key,value,format=None,axes=None,index=True,append=True,complib=None,complevel=None,columns=None,min_itemsize=None,nan_rep=None,chunksize=None,expectedrows=None,dropna=None,data_columns=None,encoding=None,errors='strict')",
31
- "HDFStore.get": "HDFStore.get(key)",
32
- "HDFStore.select": "HDFStore.select(key,where=None,start=None,stop=None,columns=None,iterator=False,chunksize=None,auto_close=False)",
33
- "HDFStore.info": "HDFStore.info()",
34
- "HDFStore.keys": "HDFStore.keys(include='pandas')",
35
- "HDFStore.groups": "HDFStore.groups()",
36
- "HDFStore.walk": "HDFStore.walk(where='/')",
37
- "pd.read_feather": "pd.read_feather(path,columns=None,use_threads=True,storage_options=None,dtype_backend=<no_default>)",
38
- "df.to_feather": "df.to_feather(path,**kwargs)",
39
- "pd.read_parquet": "pd.read_parquet(path,engine='auto',columns=None,storage_options=None,use_nullable_dtypes=<no_default>,dtype_backend=<no_default>,filesystem=None,filters=None,**kwargs)",
40
- "df.to_parquet": "df.to_parquet(path=None,*,engine='auto',compression='snappy',index=None,partition_cols=None,storage_options=None,**kwargs)",
41
- "pd.read_orc": "pd.read_orc(path,columns=None,dtype_backend=<no_default>,filesystem=None,**kwargs)",
42
- "df.to_orc": "df.to_orc(path=None,*,engine='pyarrow',index=None,engine_kwargs=None)",
43
- "pd.read_sas": "pd.read_sas(filepath_or_buffer,*,format=None,index=None,encoding=None,chunksize=None,iterator=False,compression='infer')",
44
- "pd.read_spss": "pd.read_spss(path,usecols=None,convert_categoricals=True,dtype_backend=<no_default>)",
45
- "pd.read_sql_table": "pd.read_sql_table(table_name,con,schema=None,index_col=None,coerce_float=True,parse_dates=None,columns=None,chunksize=None,dtype_backend=<no_default>)",
46
- "pd.read_sql_query": "pd.read_sql_query(sql,con,index_col=None,coerce_float=True,params=None,parse_dates=None,chunksize=None,dtype=None,dtype_backend=<no_default>)",
47
- "pd.read_sql": "pd.read_sql(sql,con,index_col=None,coerce_float=True,params=None,parse_dates=None,columns=None,chunksize=None,dtype_backend=<no_default>,dtype=None)",
48
- "df.to_sql": "df.to_sql(name,con,*,schema=None,if_exists='fail',index=True,index_label=None,chunksize=None,dtype=None,method=None)",
49
- "pd.read_gbq": "pd.read_gbq(query,project_id=None,index_col=None,col_order=None,reauth=False,auth_local_webserver=True,dialect=None,location=None,configuration=None,credentials=None,use_bqstorage_api=None,max_results=None,progress_bar_type=None)",
50
- "pd.read_stata": "pd.read_stata(filepath_or_buffer,*,convert_dates=True,convert_categoricals=True,index_col=None,convert_missing=False,preserve_dtypes=True,columns=None,order_categoricals=True,chunksize=None,iterator=False,compression='infer',storage_options=None)",
51
- "df.to_stata": "df.to_stata(path,*,convert_dates=None,write_index=True,byteorder=None,time_stamp=None,data_label=None,variable_labels=None,version=114,convert_strl=None,compression='infer',storage_options=None,value_labels=None)",
52
- "propertyStataReader.data_label": "propertyStataReader.data_label",
53
- "StataReader.value_labels": "StataReader.value_labels()",
54
- "StataReader.variable_labels": "StataReader.variable_labels()",
55
- "StataWriter.write_file": "StataWriter.write_file()"
2
+ "pd.read_pickle": "pd.read_pickle(filepath_or_buffer,compression='infer',storage_options=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_pickle.html",
3
+ "df.to_pickle": "df.to_pickle(path,*,compression='infer',protocol=5,storage_options=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_pickle.html",
4
+ "pd.read_table": "pd.read_table(filepath_or_buffer,*,sep=<no_default>,delimiter=None,header='infer',names=<no_default>,index_col=None,usecols=None,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skipinitialspace=False,skiprows=None,skipfooter=0,nrows=None,na_values=None,keep_default_na=True,na_filter=True,verbose=<no_default>,skip_blank_lines=True,parse_dates=False,infer_datetime_format=<no_default>,keep_date_col=<no_default>,date_parser=<no_default>,date_format=None,dayfirst=False,cache_dates=True,iterator=False,chunksize=None,compression='infer',thousands=None,decimal='.',lineterminator=None,quotechar='\"',quoting=0,doublequote=True,escapechar=None,comment=None,encoding=None,encoding_errors='strict',dialect=None,on_bad_lines='error',delim_whitespace=<no_default>,low_memory=True,memory_map=False,float_precision=None,storage_options=None,dtype_backend=<no_default>)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_table.html",
5
+ "pd.read_csv": "pd.read_csv(filepath_or_buffer,*,sep=<no_default>,delimiter=None,header='infer',names=<no_default>,index_col=None,usecols=None,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skipinitialspace=False,skiprows=None,skipfooter=0,nrows=None,na_values=None,keep_default_na=True,na_filter=True,verbose=<no_default>,skip_blank_lines=True,parse_dates=None,infer_datetime_format=<no_default>,keep_date_col=<no_default>,date_parser=<no_default>,date_format=None,dayfirst=False,cache_dates=True,iterator=False,chunksize=None,compression='infer',thousands=None,decimal='.',lineterminator=None,quotechar='\"',quoting=0,doublequote=True,escapechar=None,comment=None,encoding=None,encoding_errors='strict',dialect=None,on_bad_lines='error',delim_whitespace=<no_default>,low_memory=True,memory_map=False,float_precision=None,storage_options=None,dtype_backend=<no_default>)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_csv.html",
6
+ "df.to_csv": "df.to_csv(path_or_buf=None,*,sep=',',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,mode='w',encoding=None,compression='infer',quoting=None,quotechar='\"',lineterminator=None,chunksize=None,date_format=None,doublequote=True,escapechar=None,decimal='.',errors='strict',storage_options=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html#pandas.DataFrame.to_csv",
7
+ "pd.read_fwf": "pd.read_fwf(filepath_or_buffer,*,colspecs='infer',widths=None,infer_nrows=100,dtype_backend=<no_default>,iterator=False,chunksize=None,**kwds)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_fwf.html",
8
+ "pd.read_clipboard": "pd.read_clipboard(sep='\\\\s+',dtype_backend=<no_default>,**kwargs)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_clipboard.html#pandas.read_clipboard",
9
+ "pd.read_excel": "pd.read_excel(io,sheet_name=0,*,header=0,names=None,index_col=None,usecols=None,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrows=None,na_values=None,keep_default_na=True,na_filter=True,verbose=False,parse_dates=False,date_parser=<no_default>,date_format=None,thousands=None,decimal='.',comment=None,skipfooter=0,storage_options=None,dtype_backend=<no_default>,engine_kwargs=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_excel.html",
10
+ "df.to_excel": "df.to_excel(excel_writer,*,sheet_name='Sheet1',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,startrow=0,startcol=0,engine=None,merge_cells=True,inf_rep='inf',freeze_panes=None,storage_options=None,engine_kwargs=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_excel.html",
11
+ "pandas.ExcelFile": "pandas.ExcelFile(path_or_buffer,engine=None,storage_options=None,engine_kwargs=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.ExcelFile.html",
12
+ "ExcelFile.book": "ExcelFile.book\nhttps://pandas.pydata.org/docs/reference/api/pandas.ExcelFile.book.html",
13
+ "ExcelFile.sheet_names": "ExcelFile.sheet_names\nhttps://pandas.pydata.org/docs/reference/api/pandas.ExcelFile.sheet_names.html",
14
+ "ExcelFile.parse": "ExcelFile.parse(sheet_name=0,header=0,names=None,index_col=None,usecols=None,converters=None,true_values=None,false_values=None,skiprows=None,nrows=None,na_values=None,parse_dates=False,date_parser=<no_default>,date_format=None,thousands=None,comment=None,skipfooter=0,dtype_backend=<no_default>,**kwds)\nhttps://pandas.pydata.org/docs/reference/api/pandas.ExcelFile.parse.html",
15
+ "Styler.to_excel": "Styler.to_excel(excel_writer,sheet_name='Sheet1',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,startrow=0,startcol=0,engine=None,merge_cells=True,encoding=None,inf_rep='inf',verbose=True,freeze_panes=None,storage_options=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.to_excel.html",
16
+ "pandas.ExcelWriter": "pandas.ExcelWriter(path,engine=None,date_format=None,datetime_format=None,mode='w',storage_options=None,if_sheet_exists=None,engine_kwargs=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.ExcelWriter.html",
17
+ "pd.read_json": "pd.read_json(path_or_buf,*,orient=None,typ='frame',dtype=None,convert_axes=None,convert_dates=True,keep_default_dates=True,precise_float=False,date_unit=None,encoding=None,encoding_errors='strict',lines=False,chunksize=None,compression='infer',nrows=None,storage_options=None,dtype_backend=<no_default>,engine='ujson')\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_json.html",
18
+ "pd.json_normalize": "pd.json_normalize(data,record_path=None,meta=None,meta_prefix=None,record_prefix=None,errors='raise',sep='.',max_level=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.json_normalize.html",
19
+ "df.to_json": "df.to_json(path_or_buf=None,*,orient=None,date_format=None,double_precision=10,force_ascii=True,date_unit='ms',default_handler=None,lines=False,compression='infer',index=None,indent=None,storage_options=None,mode='w')\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_json.html",
20
+ "pd.io.json.build_table_schema": "pd.io.json.build_table_schema(data,index=True,primary_key=None,version=True)\nhttps://pandas.pydata.org/docs/reference/api/pandas.io.json.build_table_schema.html",
21
+ "pd.read_html": "pd.read_html(io,*,match='.+',flavor=None,header=None,index_col=None,skiprows=None,attrs=None,parse_dates=False,thousands=',',encoding=None,decimal='.',converters=None,na_values=None,keep_default_na=True,displayed_only=True,extract_links=None,dtype_backend=<no_default>,storage_options=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_html.html",
22
+ "df.to_html": "df.to_html(buf=None,*,columns=None,col_space=None,header=True,index=True,na_rep='NaN',formatters=None,float_format=None,sparsify=None,index_names=True,justify=None,max_rows=None,max_cols=None,show_dimensions=False,decimal='.',bold_rows=True,classes=None,escape=True,notebook=False,border=None,table_id=None,render_links=False,encoding=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_html.html",
23
+ "Styler.to_html": "Styler.to_html(buf=None,*,table_uuid=None,table_attributes=None,sparse_index=None,sparse_columns=None,bold_headers=False,caption=None,max_rows=None,max_columns=None,encoding=None,doctype_html=False,exclude_styles=False,**kwargs)\nhttps://pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.to_html.html",
24
+ "pd.read_xml": "pd.read_xml(path_or_buffer,*,xpath='./*',namespaces=None,elems_only=False,attrs_only=False,names=None,dtype=None,converters=None,parse_dates=None,encoding='utf-8',parser='lxml',stylesheet=None,iterparse=None,compression='infer',storage_options=None,dtype_backend=<no_default>)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_xml.html",
25
+ "df.to_xml": "df.to_xml(path_or_buffer=None,*,index=True,root_name='data',row_name='row',na_rep=None,attr_cols=None,elem_cols=None,namespaces=None,prefix=None,encoding='utf-8',xml_declaration=True,pretty_print=True,parser='lxml',stylesheet=None,compression='infer',storage_options=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_xml.html",
26
+ "df.to_latex": "df.to_latex(buf=None,*,columns=None,header=True,index=True,na_rep='NaN',formatters=None,float_format=None,sparsify=None,index_names=True,bold_rows=False,column_format=None,longtable=None,escape=None,encoding=None,decimal='.',multicolumn=None,multicolumn_format=None,multirow=None,caption=None,label=None,position=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_latex.html",
27
+ "Styler.to_latex": "Styler.to_latex(buf=None,*,column_format=None,position=None,position_float=None,hrules=None,clines=None,label=None,caption=None,sparse_index=None,sparse_columns=None,multirow_align=None,multicol_align=None,siunitx=False,environment=None,encoding=None,convert_css=False)\nhttps://pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.to_latex.html",
28
+ "pd.read_hdf": "pd.read_hdf(path_or_buf,key=None,mode='r',errors='strict',where=None,start=None,stop=None,columns=None,iterator=False,chunksize=None,**kwargs)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_hdf.html",
29
+ "HDFStore.put": "HDFStore.put(key,value,format=None,index=True,append=False,complib=None,complevel=None,min_itemsize=None,nan_rep=None,data_columns=None,encoding=None,errors='strict',track_times=True,dropna=False)\nhttps://pandas.pydata.org/docs/reference/api/pandas.HDFStore.put.html",
30
+ "HDFStore.append": "HDFStore.append(key,value,format=None,axes=None,index=True,append=True,complib=None,complevel=None,columns=None,min_itemsize=None,nan_rep=None,chunksize=None,expectedrows=None,dropna=None,data_columns=None,encoding=None,errors='strict')\nhttps://pandas.pydata.org/docs/reference/api/pandas.HDFStore.append.html",
31
+ "HDFStore.get": "HDFStore.get(key)\nhttps://pandas.pydata.org/docs/reference/api/pandas.HDFStore.get.html",
32
+ "HDFStore.select": "HDFStore.select(key,where=None,start=None,stop=None,columns=None,iterator=False,chunksize=None,auto_close=False)\nhttps://pandas.pydata.org/docs/reference/api/pandas.HDFStore.select.html",
33
+ "HDFStore.info": "HDFStore.info()\nhttps://pandas.pydata.org/docs/reference/api/pandas.HDFStore.info.html",
34
+ "HDFStore.keys": "HDFStore.keys(include='pandas')\nhttps://pandas.pydata.org/docs/reference/api/pandas.HDFStore.keys.html",
35
+ "HDFStore.groups": "HDFStore.groups()\nhttps://pandas.pydata.org/docs/reference/api/pandas.HDFStore.groups.html",
36
+ "HDFStore.walk": "HDFStore.walk(where='/')\nhttps://pandas.pydata.org/docs/reference/api/pandas.HDFStore.walk.html",
37
+ "pd.read_feather": "pd.read_feather(path,columns=None,use_threads=True,storage_options=None,dtype_backend=<no_default>)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_feather.html",
38
+ "df.to_feather": "df.to_feather(path,**kwargs)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_feather.html",
39
+ "pd.read_parquet": "pd.read_parquet(path,engine='auto',columns=None,storage_options=None,use_nullable_dtypes=<no_default>,dtype_backend=<no_default>,filesystem=None,filters=None,**kwargs)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_parquet.html",
40
+ "df.to_parquet": "df.to_parquet(path=None,*,engine='auto',compression='snappy',index=None,partition_cols=None,storage_options=None,**kwargs)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_parquet.html",
41
+ "pd.read_orc": "pd.read_orc(path,columns=None,dtype_backend=<no_default>,filesystem=None,**kwargs)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_orc.html",
42
+ "df.to_orc": "df.to_orc(path=None,*,engine='pyarrow',index=None,engine_kwargs=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_orc.html",
43
+ "pd.read_sas": "pd.read_sas(filepath_or_buffer,*,format=None,index=None,encoding=None,chunksize=None,iterator=False,compression='infer')\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_sas.html",
44
+ "pd.read_spss": "pd.read_spss(path,usecols=None,convert_categoricals=True,dtype_backend=<no_default>)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_spss.html",
45
+ "pd.read_sql_table": "pd.read_sql_table(table_name,con,schema=None,index_col=None,coerce_float=True,parse_dates=None,columns=None,chunksize=None,dtype_backend=<no_default>)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_sql_table.html",
46
+ "pd.read_sql_query": "pd.read_sql_query(sql,con,index_col=None,coerce_float=True,params=None,parse_dates=None,chunksize=None,dtype=None,dtype_backend=<no_default>)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_sql_query.html",
47
+ "pd.read_sql": "pd.read_sql(sql,con,index_col=None,coerce_float=True,params=None,parse_dates=None,columns=None,chunksize=None,dtype_backend=<no_default>,dtype=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_sql.html",
48
+ "df.to_sql": "df.to_sql(name,con,*,schema=None,if_exists='fail',index=True,index_label=None,chunksize=None,dtype=None,method=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html",
49
+ "pd.read_gbq": "pd.read_gbq(query,project_id=None,index_col=None,col_order=None,reauth=False,auth_local_webserver=True,dialect=None,location=None,configuration=None,credentials=None,use_bqstorage_api=None,max_results=None,progress_bar_type=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_gbq.html",
50
+ "pd.read_stata": "pd.read_stata(filepath_or_buffer,*,convert_dates=True,convert_categoricals=True,index_col=None,convert_missing=False,preserve_dtypes=True,columns=None,order_categoricals=True,chunksize=None,iterator=False,compression='infer',storage_options=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.read_stata.html",
51
+ "df.to_stata": "df.to_stata(path,*,convert_dates=None,write_index=True,byteorder=None,time_stamp=None,data_label=None,variable_labels=None,version=114,convert_strl=None,compression='infer',storage_options=None,value_labels=None)\nhttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_stata.html",
52
+ "StataReader.data_label": "StataReader.data_label\nhttps://pandas.pydata.org/docs/reference/api/pandas.io.stata.StataReader.data_label.html",
53
+ "StataReader.value_labels": "StataReader.value_labels()\nhttps://pandas.pydata.org/docs/reference/api/pandas.io.stata.StataReader.value_labels.html",
54
+ "StataReader.variable_labels": "StataReader.variable_labels()\nhttps://pandas.pydata.org/docs/reference/api/pandas.io.stata.StataReader.variable_labels.html",
55
+ "StataWriter.write_file": "StataWriter.write_file()\nhttps://pandas.pydata.org/docs/reference/api/pandas.io.stata.StataWriter.write_file.html"
56
56
  }
@@ -1,25 +1,25 @@
1
1
  {
2
- "relplot": "seaborn.relplot(data=None,*,x=None,y=None,hue=None,size=None,style=None,units=None,weights=None,row=None,col=None,col_wrap=None,row_order=None,col_order=None,palette=None,hue_order=None,hue_norm=None,sizes=None,size_order=None,size_norm=None,markers=None,dashes=None,style_order=None,legend='auto',kind='scatter',height=5,aspect=1,facet_kws=None,**kwargs)",
3
- "scatterplot": "seaborn.scatterplot(data=None,*,x=None,y=None,hue=None,size=None,style=None,palette=None,hue_order=None,hue_norm=None,sizes=None,size_order=None,size_norm=None,markers=True,style_order=None,legend='auto',ax=None,**kwargs)",
4
- "lineplot": "seaborn.lineplot(data=None,*,x=None,y=None,hue=None,size=None,style=None,units=None,weights=None,palette=None,hue_order=None,hue_norm=None,sizes=None,size_order=None,size_norm=None,dashes=True,markers=None,style_order=None,estimator='mean',errorbar=('ci',95),n_boot=1000,seed=None,orient='x',sort=True,err_style='band',err_kws=None,legend='auto',ci='deprecated',ax=None,**kwargs)",
5
- "displot": "seaborn.displot(data=None,*,x=None,y=None,hue=None,row=None,col=None,weights=None,kind='hist',rug=False,rug_kws=None,log_scale=None,legend=True,palette=None,hue_order=None,hue_norm=None,color=None,col_wrap=None,row_order=None,col_order=None,height=5,aspect=1,facet_kws=None,**kwargs)",
6
- "histplot": "seaborn.histplot(data=None,*,x=None,y=None,hue=None,weights=None,stat='count',bins='auto',binwidth=None,binrange=None,discrete=None,cumulative=False,common_bins=True,common_norm=True,multiple='layer',element='bars',fill=True,shrink=1,kde=False,kde_kws=None,line_kws=None,thresh=0,pthresh=None,pmax=None,cbar=False,cbar_ax=None,cbar_kws=None,palette=None,hue_order=None,hue_norm=None,color=None,log_scale=None,legend=True,ax=None,**kwargs)",
7
- "kdeplot": "seaborn.kdeplot(data=None,*,x=None,y=None,hue=None,weights=None,palette=None,hue_order=None,hue_norm=None,color=None,fill=None,multiple='layer',common_norm=True,common_grid=False,cumulative=False,bw_method='scott',bw_adjust=1,warn_singular=True,log_scale=None,levels=10,thresh=0.05,gridsize=200,cut=3,clip=None,legend=True,cbar=False,cbar_ax=None,cbar_kws=None,ax=None,**kwargs)",
8
- "ecdfplot": "seaborn.ecdfplot(data=None,*,x=None,y=None,hue=None,weights=None,stat='proportion',complementary=False,palette=None,hue_order=None,hue_norm=None,log_scale=None,legend=True,ax=None,**kwargs)",
9
- "rugplot": "seaborn.rugplot(data=None,*,x=None,y=None,hue=None,height=0.025,expand_margins=True,palette=None,hue_order=None,hue_norm=None,legend=True,ax=None,**kwargs)",
10
- "distplot": "seaborn.distplot(a=None,bins=None,hist=True,kde=True,rug=False,fit=None,hist_kws=None,kde_kws=None,rug_kws=None,fit_kws=None,color=None,vertical=False,norm_hist=False,axlabel=None,label=None,ax=None,x=None)",
11
- "catplot": "seaborn.catplot(data=None,*,x=None,y=None,hue=None,row=None,col=None,kind='strip',estimator='mean',errorbar=('ci',95),n_boot=1000,seed=None,units=None,weights=None,order=None,hue_order=None,row_order=None,col_order=None,col_wrap=None,height=5,aspect=1,log_scale=None,native_scale=False,formatter=None,orient=None,color=None,palette=None,hue_norm=None,legend='auto',legend_out=True,sharex=True,sharey=True,margin_titles=False,facet_kws=None,ci=<deprecated>,**kwargs)",
12
- "stripplot": "seaborn.stripplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,jitter=True,dodge=False,orient=None,color=None,palette=None,size=5,edgecolor=<default>,linewidth=0,hue_norm=None,log_scale=None,native_scale=False,formatter=None,legend='auto',ax=None,**kwargs)",
13
- "boxplot": "seaborn.boxplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=0.75,fill=True,dodge='auto',width=0.8,gap=0,whis=1.5,linecolor='auto',linewidth=None,fliersize=None,hue_norm=None,native_scale=False,log_scale=None,formatter=None,legend='auto',ax=None,**kwargs)",
14
- "violinplot": "seaborn.violinplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=0.75,fill=True,inner='box',split=False,width=0.8,dodge='auto',gap=0,linewidth=None,linecolor='auto',cut=2,gridsize=100,bw_method='scott',bw_adjust=1,density_norm='area',common_norm=False,hue_norm=None,formatter=None,log_scale=None,native_scale=False,legend='auto',scale=<deprecated>,scale_hue=<deprecated>,bw=<deprecated>,inner_kws=None,ax=None,**kwargs)",
15
- "boxenplot": "seaborn.boxenplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=0.75,fill=True,dodge='auto',width=0.8,gap=0,linewidth=None,linecolor=None,width_method='exponential',k_depth='tukey',outlier_prop=0.007,trust_alpha=0.05,showfliers=True,hue_norm=None,log_scale=None,native_scale=False,formatter=None,legend='auto',scale=<deprecated>,box_kws=None,flier_kws=None,line_kws=None,ax=None,**kwargs)",
16
- "pointplot": "seaborn.pointplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,estimator='mean',errorbar=('ci',95),n_boot=1000,seed=None,units=None,weights=None,color=None,palette=None,hue_norm=None,markers=<default>,linestyles=<default>,dodge=False,log_scale=None,native_scale=False,orient=None,capsize=0,formatter=None,legend='auto',err_kws=None,ci=<deprecated>,errwidth=<deprecated>,join=<deprecated>,scale=<deprecated>,ax=None,**kwargs)",
17
- "barplot": "seaborn.barplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,estimator='mean',errorbar=('ci',95),n_boot=1000,seed=None,units=None,weights=None,orient=None,color=None,palette=None,saturation=0.75,fill=True,hue_norm=None,width=0.8,dodge='auto',gap=0,log_scale=None,native_scale=False,formatter=None,legend='auto',capsize=0,err_kws=None,ci=<deprecated>,errcolor=<deprecated>,errwidth=<deprecated>,ax=None,**kwargs)",
18
- "countplot": "seaborn.countplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=0.75,fill=True,hue_norm=None,stat='count',width=0.8,dodge='auto',gap=0,log_scale=None,native_scale=False,formatter=None,legend='auto',ax=None,**kwargs)",
19
- "lmplot": "seaborn.lmplot(data,*,x=None,y=None,hue=None,col=None,row=None,palette=None,col_wrap=None,height=5,aspect=1,markers='o',sharex=None,sharey=None,hue_order=None,col_order=None,row_order=None,legend=True,legend_out=None,x_estimator=None,x_bins=None,x_ci='ci',scatter=True,fit_reg=True,ci=95,n_boot=1000,units=None,seed=None,order=1,logistic=False,lowess=False,robust=False,logx=False,x_partial=None,y_partial=None,truncate=True,x_jitter=None,y_jitter=None,scatter_kws=None,line_kws=None,facet_kws=None)",
20
- "regplot": "seaborn.regplot(data=None,*,x=None,y=None,x_estimator=None,x_bins=None,x_ci='ci',scatter=True,fit_reg=True,ci=95,n_boot=1000,units=None,seed=None,order=1,logistic=False,lowess=False,robust=False,logx=False,x_partial=None,y_partial=None,truncate=True,dropna=True,x_jitter=None,y_jitter=None,label=None,color=None,marker='o',scatter_kws=None,line_kws=None,ax=None)",
21
- "residplot": "seaborn.residplot(data=None,*,x=None,y=None,x_partial=None,y_partial=None,lowess=False,order=1,robust=False,dropna=True,label=None,color=None,scatter_kws=None,line_kws=None,ax=None)",
22
- "pairplot": "seaborn.pairplot(data,*,hue=None,hue_order=None,palette=None,vars=None,x_vars=None,y_vars=None,kind='scatter',diag_kind='auto',markers=None,height=2.5,aspect=1,corner=False,dropna=False,plot_kws=None,diag_kws=None,grid_kws=None,size=None)",
23
- "jointplot": "seaborn.jointplot(data=None,*,x=None,y=None,hue=None,kind='scatter',height=6,ratio=5,space=0.2,dropna=False,xlim=None,ylim=None,color=None,palette=None,hue_order=None,hue_norm=None,marginal_ticks=False,joint_kws=None,marginal_kws=None,**kwargs)",
24
- "plotting_context": "seaborn.plotting_context(context=None,font_scale=1,rc=None)"
2
+ "relplot": "seaborn.relplot(data=None,*,x=None,y=None,hue=None,size=None,style=None,units=None,weights=None,row=None,col=None,col_wrap=None,row_order=None,col_order=None,palette=None,hue_order=None,hue_norm=None,sizes=None,size_order=None,size_norm=None,markers=None,dashes=None,style_order=None,legend='auto',kind='scatter',height=5,aspect=1,facet_kws=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.relplot.html",
3
+ "scatterplot": "seaborn.scatterplot(data=None,*,x=None,y=None,hue=None,size=None,style=None,palette=None,hue_order=None,hue_norm=None,sizes=None,size_order=None,size_norm=None,markers=True,style_order=None,legend='auto',ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.scatterplot.html",
4
+ "lineplot": "seaborn.lineplot(data=None,*,x=None,y=None,hue=None,size=None,style=None,units=None,weights=None,palette=None,hue_order=None,hue_norm=None,sizes=None,size_order=None,size_norm=None,dashes=True,markers=None,style_order=None,estimator='mean',errorbar=('ci',95),n_boot=1000,seed=None,orient='x',sort=True,err_style='band',err_kws=None,legend='auto',ci='deprecated',ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.lineplot.html",
5
+ "displot": "seaborn.displot(data=None,*,x=None,y=None,hue=None,row=None,col=None,weights=None,kind='hist',rug=False,rug_kws=None,log_scale=None,legend=True,palette=None,hue_order=None,hue_norm=None,color=None,col_wrap=None,row_order=None,col_order=None,height=5,aspect=1,facet_kws=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.displot.html",
6
+ "histplot": "seaborn.histplot(data=None,*,x=None,y=None,hue=None,weights=None,stat='count',bins='auto',binwidth=None,binrange=None,discrete=None,cumulative=False,common_bins=True,common_norm=True,multiple='layer',element='bars',fill=True,shrink=1,kde=False,kde_kws=None,line_kws=None,thresh=0,pthresh=None,pmax=None,cbar=False,cbar_ax=None,cbar_kws=None,palette=None,hue_order=None,hue_norm=None,color=None,log_scale=None,legend=True,ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.histplot.html",
7
+ "kdeplot": "seaborn.kdeplot(data=None,*,x=None,y=None,hue=None,weights=None,palette=None,hue_order=None,hue_norm=None,color=None,fill=None,multiple='layer',common_norm=True,common_grid=False,cumulative=False,bw_method='scott',bw_adjust=1,warn_singular=True,log_scale=None,levels=10,thresh=0.05,gridsize=200,cut=3,clip=None,legend=True,cbar=False,cbar_ax=None,cbar_kws=None,ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.kdeplot.html",
8
+ "ecdfplot": "seaborn.ecdfplot(data=None,*,x=None,y=None,hue=None,weights=None,stat='proportion',complementary=False,palette=None,hue_order=None,hue_norm=None,log_scale=None,legend=True,ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.ecdfplot.html",
9
+ "rugplot": "seaborn.rugplot(data=None,*,x=None,y=None,hue=None,height=0.025,expand_margins=True,palette=None,hue_order=None,hue_norm=None,legend=True,ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.rugplot.html",
10
+ "distplot": "seaborn.distplot(a=None,bins=None,hist=True,kde=True,rug=False,fit=None,hist_kws=None,kde_kws=None,rug_kws=None,fit_kws=None,color=None,vertical=False,norm_hist=False,axlabel=None,label=None,ax=None,x=None)\nhttps://seaborn.pydata.org/generated/seaborn.distplot.html",
11
+ "catplot": "seaborn.catplot(data=None,*,x=None,y=None,hue=None,row=None,col=None,kind='strip',estimator='mean',errorbar=('ci',95),n_boot=1000,seed=None,units=None,weights=None,order=None,hue_order=None,row_order=None,col_order=None,col_wrap=None,height=5,aspect=1,log_scale=None,native_scale=False,formatter=None,orient=None,color=None,palette=None,hue_norm=None,legend='auto',legend_out=True,sharex=True,sharey=True,margin_titles=False,facet_kws=None,ci=<deprecated>,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.catplot.html#seaborn.catplot",
12
+ "stripplot": "seaborn.stripplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,jitter=True,dodge=False,orient=None,color=None,palette=None,size=5,edgecolor=<default>,linewidth=0,hue_norm=None,log_scale=None,native_scale=False,formatter=None,legend='auto',ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.stripplot.html#seaborn.stripplot",
13
+ "boxplot": "seaborn.boxplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=0.75,fill=True,dodge='auto',width=0.8,gap=0,whis=1.5,linecolor='auto',linewidth=None,fliersize=None,hue_norm=None,native_scale=False,log_scale=None,formatter=None,legend='auto',ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.boxplot.html#seaborn.boxplot",
14
+ "violinplot": "seaborn.violinplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=0.75,fill=True,inner='box',split=False,width=0.8,dodge='auto',gap=0,linewidth=None,linecolor='auto',cut=2,gridsize=100,bw_method='scott',bw_adjust=1,density_norm='area',common_norm=False,hue_norm=None,formatter=None,log_scale=None,native_scale=False,legend='auto',scale=<deprecated>,scale_hue=<deprecated>,bw=<deprecated>,inner_kws=None,ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.violinplot.html#seaborn.violinplot",
15
+ "boxenplot": "seaborn.boxenplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=0.75,fill=True,dodge='auto',width=0.8,gap=0,linewidth=None,linecolor=None,width_method='exponential',k_depth='tukey',outlier_prop=0.007,trust_alpha=0.05,showfliers=True,hue_norm=None,log_scale=None,native_scale=False,formatter=None,legend='auto',scale=<deprecated>,box_kws=None,flier_kws=None,line_kws=None,ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.boxenplot.html",
16
+ "pointplot": "seaborn.pointplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,estimator='mean',errorbar=('ci',95),n_boot=1000,seed=None,units=None,weights=None,color=None,palette=None,hue_norm=None,markers=<default>,linestyles=<default>,dodge=False,log_scale=None,native_scale=False,orient=None,capsize=0,formatter=None,legend='auto',err_kws=None,ci=<deprecated>,errwidth=<deprecated>,join=<deprecated>,scale=<deprecated>,ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.pointplot.html",
17
+ "barplot": "seaborn.barplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,estimator='mean',errorbar=('ci',95),n_boot=1000,seed=None,units=None,weights=None,orient=None,color=None,palette=None,saturation=0.75,fill=True,hue_norm=None,width=0.8,dodge='auto',gap=0,log_scale=None,native_scale=False,formatter=None,legend='auto',capsize=0,err_kws=None,ci=<deprecated>,errcolor=<deprecated>,errwidth=<deprecated>,ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.barplot.html",
18
+ "countplot": "seaborn.countplot(data=None,*,x=None,y=None,hue=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=0.75,fill=True,hue_norm=None,stat='count',width=0.8,dodge='auto',gap=0,log_scale=None,native_scale=False,formatter=None,legend='auto',ax=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.countplot.html",
19
+ "lmplot": "seaborn.lmplot(data,*,x=None,y=None,hue=None,col=None,row=None,palette=None,col_wrap=None,height=5,aspect=1,markers='o',sharex=None,sharey=None,hue_order=None,col_order=None,row_order=None,legend=True,legend_out=None,x_estimator=None,x_bins=None,x_ci='ci',scatter=True,fit_reg=True,ci=95,n_boot=1000,units=None,seed=None,order=1,logistic=False,lowess=False,robust=False,logx=False,x_partial=None,y_partial=None,truncate=True,x_jitter=None,y_jitter=None,scatter_kws=None,line_kws=None,facet_kws=None)\nhttps://seaborn.pydata.org/generated/seaborn.lmplot.html",
20
+ "regplot": "seaborn.regplot(data=None,*,x=None,y=None,x_estimator=None,x_bins=None,x_ci='ci',scatter=True,fit_reg=True,ci=95,n_boot=1000,units=None,seed=None,order=1,logistic=False,lowess=False,robust=False,logx=False,x_partial=None,y_partial=None,truncate=True,dropna=True,x_jitter=None,y_jitter=None,label=None,color=None,marker='o',scatter_kws=None,line_kws=None,ax=None)\nhttps://seaborn.pydata.org/generated/seaborn.regplot.html",
21
+ "residplot": "seaborn.residplot(data=None,*,x=None,y=None,x_partial=None,y_partial=None,lowess=False,order=1,robust=False,dropna=True,label=None,color=None,scatter_kws=None,line_kws=None,ax=None)\nhttps://seaborn.pydata.org/generated/seaborn.residplot.html",
22
+ "pairplot": "seaborn.pairplot(data,*,hue=None,hue_order=None,palette=None,vars=None,x_vars=None,y_vars=None,kind='scatter',diag_kind='auto',markers=None,height=2.5,aspect=1,corner=False,dropna=False,plot_kws=None,diag_kws=None,grid_kws=None,size=None)\nhttps://seaborn.pydata.org/generated/seaborn.pairplot.html",
23
+ "jointplot": "seaborn.jointplot(data=None,*,x=None,y=None,hue=None,kind='scatter',height=6,ratio=5,space=0.2,dropna=False,xlim=None,ylim=None,color=None,palette=None,hue_order=None,hue_norm=None,marginal_ticks=False,joint_kws=None,marginal_kws=None,**kwargs)\nhttps://seaborn.pydata.org/generated/seaborn.jointplot.html",
24
+ "plotting_context": "seaborn.plotting_context(context=None,font_scale=1,rc=None)\nhttps://seaborn.pydata.org/generated/seaborn.plotting_context.html"
25
25
  }
@@ -2,13 +2,14 @@ from .ips import *
2
2
  from .netfinder import fetch, get_soup
3
3
 
4
4
 
5
- def update_pd_usages(
5
+ def usage_pd(
6
6
  url="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_clipboard.html",
7
7
  dir_save=None,
8
8
  ):
9
9
  # extract each usage from its url
10
10
  def get_usage(url):
11
11
  # extract each usage from its url
12
+ print(f"trying: {url}")
12
13
  sp = get_soup(url, driver="se")
13
14
  return fetch(sp, where="dt")[0]
14
15
 
@@ -28,7 +29,7 @@ def update_pd_usages(
28
29
 
29
30
  usages = [get_usage(i) for i in links]
30
31
  dict_usage = {}
31
- for usage in usages:
32
+ for usage, link in zip(usages, links):
32
33
  if usage.startswith("DataFrame"):
33
34
  usage = usage.replace("DataFrame", "df")
34
35
  if usage.startswith("pandas"):
@@ -40,9 +41,9 @@ def update_pd_usages(
40
41
  str2rm = ["class", "property"]
41
42
  for str2rm_ in str2rm:
42
43
  if usage.startswith(str2rm_):
43
- usage = usage.replace(str2rm, "")
44
+ usage = usage.replace(str2rm_, "")
44
45
  funcname = ssplit(usage, by="(")[0]
45
- dict_usage.update({funcname: usage})
46
+ dict_usage.update({funcname: usage + f"\n{link}"})
46
47
  # save to local
47
48
  dir_save += "/" if not dir_save.endswith("/") else ""
48
49
  fsave(
@@ -51,7 +52,7 @@ def update_pd_usages(
51
52
  )
52
53
 
53
54
 
54
- def update_sns_usages(
55
+ def usage_sns(
55
56
  url="https://seaborn.pydata.org/generated/seaborn.swarmplot.html",
56
57
  dir_save=None,
57
58
  ):
@@ -72,8 +73,8 @@ def update_sns_usages(
72
73
 
73
74
  # extract each usage from its url
74
75
  def get_usage(url):
76
+ print(f"trying: {url}")
75
77
  sp = get_soup(url, driver="se")
76
- # preview(sp)
77
78
  return fetch(sp, where="dt")[0]
78
79
 
79
80
  if dir_save is None:
@@ -104,9 +105,9 @@ def update_sns_usages(
104
105
 
105
106
  usages = [get_usage(i) for i in links]
106
107
  dict_usage = {}
107
- for usage in usages:
108
+ for usage, link in zip(usages, links):
108
109
  dict_usage.update(
109
- {ssplit(usage, by="(")[0].replace("seaborn.", ""): usage[:-1]}
110
+ {ssplit(usage, by="(")[0].replace("seaborn.", ""): usage[:-1] + f"\n{link}"}
110
111
  )
111
112
  # save to local
112
113
  dir_save += "/" if not dir_save.endswith("/") else ""
py2ls/ips.py CHANGED
@@ -59,6 +59,21 @@ try:
59
59
  except NameError:
60
60
  pass
61
61
 
62
+ def plt_font(dir_font: str = "/System/Library/Fonts/Hiragino Sans GB.ttc"):
63
+ """
64
+ Add the Chinese font to the font manager
65
+ Args:
66
+ dir_font (str, optional): _description_. Defaults to "/System/Library/Fonts/Hiragino Sans GB.ttc".
67
+ """
68
+ import matplotlib.pyplot as plt
69
+ from matplotlib import font_manager
70
+
71
+ font_manager.fontManager.addfont(dir_font)
72
+ fontname_chinese = os.path.basename(dir_font).split(".")[0]
73
+
74
+ plt.rcParams["font.sans-serif"] = [fontname_chinese]
75
+ plt.rcParams["font.family"] = "sans-serif"
76
+ plt.rcParams["axes.unicode_minus"] = False
62
77
 
63
78
  # set 'dir_save'
64
79
  if "dar" in sys.platform:
@@ -255,16 +270,21 @@ def is_package_installed(package_name):
255
270
  return package_spec is not None
256
271
 
257
272
 
258
- def upgrade(module="py2ls"):
259
- # try:
260
- # pkg_resources.get_distribution(module)
261
- # except pkg_resources.DistributionNotFound:
262
- # subprocess.check_call([sys.executable, "-m", "pip", "install", module])
273
+ def upgrade(module="py2ls",uninstall=False):
274
+ """
275
+ Installs or upgrades a specified Python module.
276
+
277
+ Parameters:
278
+ module (str): The name of the module to install/upgrade.
279
+ uninstall (bool): If True, uninstalls the webdriver-manager before upgrading.
280
+ """
263
281
  if not is_package_installed(module):
264
282
  try:
265
283
  subprocess.check_call([sys.executable, "-m", "pip", "install", module])
266
284
  except subprocess.CalledProcessError as e:
267
285
  print(f"An error occurred while installing {module}: {e}")
286
+ if uninstall:
287
+ subprocess.check_call(["pip", "uninstall", "-y", "webdriver-manager"])
268
288
  try:
269
289
  subprocess.check_call(
270
290
  [sys.executable, "-m", "pip", "install", "--upgrade", module]
@@ -515,8 +535,8 @@ def strcmp(search_term, candidates, ignore_case=True, verbose=False, scorer="WR"
515
535
  similarity_scores = [fuzz.partial_ratio(str1_, word) for word in str2_]
516
536
  elif "W" in scorer.lower():
517
537
  similarity_scores = [fuzz.WRatio(str1_, word) for word in str2_]
518
- elif "Ratio" in scorer.lower():
519
- similarity_scores = [fuzz.Ratio(str1_, word) for word in str2_]
538
+ elif "ratio" in scorer.lower():#Ratio (Strictest)
539
+ similarity_scores = [fuzz.ratio(str1_, word) for word in str2_]
520
540
  else:
521
541
  similarity_scores = [fuzz.WRatio(str1_, word) for word in str2_]
522
542
  best_match_index = similarity_scores.index(max(similarity_scores))
@@ -528,7 +548,7 @@ def strcmp(search_term, candidates, ignore_case=True, verbose=False, scorer="WR"
528
548
  elif "W" in scorer.lower():
529
549
  best_match_score = fuzz.WRatio(str1_, str2_)
530
550
  elif "Ratio" in scorer.lower():
531
- best_match_score = fuzz.Ratio(str1_, str2_)
551
+ best_match_score = fuzz.ratio(str1_, str2_)
532
552
  else:
533
553
  best_match_score = fuzz.WRatio(str1_, str2_)
534
554
  if verbose:
@@ -543,6 +563,80 @@ def strcmp(search_term, candidates, ignore_case=True, verbose=False, scorer="WR"
543
563
  # str2 = ['PLoS Computational Biology', 'PLOS BIOLOGY']
544
564
  # best_match, idx = strcmp(str1, str2, ignore_case=1)
545
565
 
566
+ def cn2pinyin(
567
+ cn_str: Union[str, list] = None,
568
+ sep: str = " ",
569
+ fmt: str = "normal", # which style you want to set
570
+ ):
571
+ from pypinyin import pinyin, Style
572
+
573
+ """
574
+ Converts Chinese characters to Pinyin.
575
+ usage:
576
+ cn2pinyin(cn_str, sep="_", fmt="tone")
577
+ Args:
578
+ cn_str (str): Chinese string to convert.
579
+ sep (str): Separator for the output Pinyin string.
580
+ style (Style): "normal","tone", "tone2","tone3",
581
+ "finals","finals_tone","finals_tone2","finals_tone3",
582
+ "initials","bopomofo","bopomofo_first","cyrillic","pl",
583
+ Returns:
584
+ cn_str: The Pinyin representation of the Chinese string.
585
+ """
586
+ fmts = [
587
+ "normal",
588
+ "tone",
589
+ "tone2",
590
+ "tone3",
591
+ "finals",
592
+ "finals_tone",
593
+ "finals_tone2",
594
+ "finals_tone3",
595
+ "initials",
596
+ "bopomofo",
597
+ "bopomofo_first",
598
+ "cyrillic",
599
+ "pl",
600
+ ]
601
+ fmt = strcmp(fmt, fmts)[0]
602
+ if fmt == "normal":
603
+ style = Style.NORMAL
604
+ elif fmt == "tone":
605
+ style = Style.TONE
606
+ elif fmt == "tone2":
607
+ style = Style.TONE2
608
+ elif fmt == "tone3":
609
+ style = Style.TONE3
610
+ elif fmt == "finals":
611
+ style = Style.FINALS
612
+ elif fmt == "finals_tone":
613
+ style = Style.FINALS_TONE
614
+ elif fmt == "finals_tone2":
615
+ style = Style.FINALS_TONE2
616
+ elif fmt == "finals_tone3":
617
+ style = Style.FINALS_TONE3
618
+ elif fmt == "initials":
619
+ style = Style.INITIALS
620
+ elif fmt == "bopomofo":
621
+ style = Style.BOPOMOFO
622
+ elif fmt == "bopomofo_first":
623
+ style = Style.BOPOMOFO_FIRST
624
+ elif fmt == "cyrillic":
625
+ style = Style.CYRILLIC
626
+ elif fmt == "pl":
627
+ style = Style.PL
628
+ else:
629
+ style = Style.NORMAL
630
+ if not isinstance(cn_str,list):
631
+ cn_str=[cn_str]
632
+ pinyin_flat=[]
633
+ for cn_str_ in cn_str:
634
+ pinyin_string = pinyin(cn_str_, style=style)
635
+ pinyin_flat.append(sep.join([item[0] for item in pinyin_string]))
636
+ if len(pinyin_flat)==1:
637
+ return pinyin_flat[0]
638
+ else:
639
+ return pinyin_flat
546
640
 
547
641
  def counter(list_, verbose=True):
548
642
  c = Counter(list_)
@@ -1750,12 +1844,18 @@ def fload(fpath, kind=None, **kwargs):
1750
1844
  print(f"shape: {df.shape}")
1751
1845
  return df
1752
1846
 
1753
- def load_xlsx(fpath, **kwargs):
1847
+ def load_excel(fpath, **kwargs):
1754
1848
  engine = kwargs.get("engine", "openpyxl")
1755
1849
  verbose=kwargs.pop("verbose",False)
1756
1850
  if verbose:
1757
1851
  print_pd_usage("read_excel", verbose=verbose)
1758
1852
  df = pd.read_excel(fpath, engine=engine, **kwargs)
1853
+ try:
1854
+ meata=pd.ExcelFile(fpath)
1855
+ print(f"n_sheet={len(meata.sheet_names)},\t'sheetname = 0 (default)':")
1856
+ [print(f"{i}:\t{i_}") for i,i_ in enumerate(meata.sheet_names)]
1857
+ except:
1858
+ pass
1759
1859
  return df
1760
1860
 
1761
1861
  def load_ipynb(fpath, **kwargs):
@@ -1912,16 +2012,16 @@ def fload(fpath, kind=None, **kwargs):
1912
2012
  elif kind in ["ods", "ods", "odt"]:
1913
2013
  engine = kwargs.get("engine", "odf")
1914
2014
  kwargs.pop("engine", None)
1915
- return load_xlsx(fpath, engine=engine, **kwargs)
2015
+ return load_excel(fpath, engine=engine, **kwargs)
1916
2016
  elif kind == "xls":
1917
2017
  engine = kwargs.get("engine", "xlrd")
1918
2018
  kwargs.pop("engine", None)
1919
- content = load_xlsx(fpath, engine=engine, **kwargs)
1920
- display(content.head(2))
2019
+ content = load_excel(fpath, engine=engine, **kwargs)
2020
+ display(content.head(3))
1921
2021
  return content
1922
2022
  elif kind == "xlsx":
1923
- content = load_xlsx(fpath, **kwargs)
1924
- display(content.head(2))
2023
+ content = load_excel(fpath, **kwargs)
2024
+ display(content.head(3))
1925
2025
  return content
1926
2026
  elif kind == "ipynb":
1927
2027
  return load_ipynb(fpath, **kwargs)
@@ -2131,6 +2231,10 @@ def fsave(
2131
2231
 
2132
2232
  def save_csv(fpath, data, **kwargs):
2133
2233
  # https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html
2234
+
2235
+ verbose=kwargs.pop("verbose",False)
2236
+ if verbose:
2237
+ print_pd_usage("to_csv", verbose=verbose)
2134
2238
  kwargs_csv = dict(
2135
2239
  path_or_buf=None,
2136
2240
  sep=",",
@@ -2141,7 +2245,7 @@ def fsave(
2141
2245
  index=True,
2142
2246
  index_label=None,
2143
2247
  mode="w",
2144
- encoding=None,
2248
+ encoding="UTF-8",
2145
2249
  compression="infer",
2146
2250
  quoting=None,
2147
2251
  quotechar='"',
@@ -2159,26 +2263,31 @@ def fsave(
2159
2263
  df.to_csv(fpath, **kwargs_valid)
2160
2264
 
2161
2265
  def save_xlsx(fpath, data, **kwargs):
2266
+ verbose=kwargs.pop("verbose",False)
2267
+ sheet_name = kwargs.pop("sheet_name", "Sheet1")
2268
+ if verbose:
2269
+ print_pd_usage("to_excel", verbose=verbose)
2162
2270
  if any(kwargs):
2163
2271
  format_excel(df=data, filename=fpath, **kwargs)
2164
2272
  else:
2165
- kwargs.pop("format", None)
2166
- kwargs.pop("usage", None)
2167
- kwargs.pop("cell", None)
2168
- kwargs.pop("width", None)
2169
- kwargs.pop("height", None)
2170
- kwargs.pop("width", None)
2171
- kwargs.pop("height_max", None)
2172
- kwargs.pop("merge", None)
2173
- kwargs.pop("shade", None)
2174
- kwargs.pop("comment", None)
2175
- kwargs.pop("link", None)
2176
- kwargs.pop("protect", None)
2177
- kwargs.pop("number_format", None)
2178
- kwargs.pop("conditional_format", None)
2179
- kwargs.pop("index_default", None)
2273
+ # Remove non-relevant kwargs
2274
+ irrelevant_keys = [
2275
+ "format", "usage", "cell", "width", "height", "height_max", "merge",
2276
+ "shade", "comment", "link", "protect", "number_format", "conditional_format",
2277
+ "index_default"]
2278
+ for key in irrelevant_keys:
2279
+ kwargs.pop(key, None)
2280
+
2180
2281
  df = pd.DataFrame(data)
2181
- df.to_excel(fpath, **kwargs)
2282
+ # Check if the file exists, then append the sheet, otherwise create a new file
2283
+ try:
2284
+ # Use ExcelWriter with append mode if the file exists
2285
+ with pd.ExcelWriter(fpath, engine='openpyxl', mode='a', if_sheet_exists='new') as writer:
2286
+ df.to_excel(writer, sheet_name=sheet_name, index=False, **kwargs)
2287
+ except FileNotFoundError:
2288
+ # If file doesn't exist, create a new one
2289
+ df.to_excel(fpath, sheet_name=sheet_name, index=False, **kwargs)
2290
+
2182
2291
 
2183
2292
  def save_ipynb(fpath, data, **kwargs):
2184
2293
  # Split the content by code fences to distinguish between code and markdown
@@ -2451,10 +2560,13 @@ def listdir(
2451
2560
  verbose=True,
2452
2561
  ):
2453
2562
  if kind is None:
2563
+ ls=os.listdir(rootdir)
2564
+ ls = [f for f in ls if not f.startswith('.') and not f.startswith('~')]
2565
+ print(ls)
2454
2566
  df_all = pd.DataFrame(
2455
2567
  {
2456
- "fname": os.listdir(rootdir),
2457
- "fpath": [os.path.join(rootdir, i) for i in os.listdir(rootdir)],
2568
+ "fname": all_files,
2569
+ "fpath": [os.path.join(rootdir, i) for i in ls],
2458
2570
  }
2459
2571
  )
2460
2572
  display(df_all)
@@ -2480,6 +2592,7 @@ def listdir(
2480
2592
 
2481
2593
  if os.path.isdir(rootdir):
2482
2594
  ls = os.listdir(rootdir)
2595
+ ls = [f for f in ls if not f.startswith('.') and not f.startswith('~')]
2483
2596
  fd = [".fd", ".fld", ".fol", ".fd", ".folder"]
2484
2597
  i = 0
2485
2598
  f = {
@@ -2702,6 +2815,8 @@ def figsave(*args, dpi=300):
2702
2815
  img = arg # Store the PIL image if provided
2703
2816
 
2704
2817
  f_slash = "/" if "mac" in get_os().lower() else "\\"
2818
+ if dir_save is None:
2819
+ dir_save="./"
2705
2820
  dir_par = f_slash.join(dir_save.split(f_slash)[:-1])
2706
2821
  dir_ch = "".join(dir_save.split(f_slash)[-1:])
2707
2822
  if not dir_par.endswith(f_slash):
@@ -4301,17 +4416,6 @@ def preview(var):
4301
4416
  # preview(pd.DataFrame({"Name": ["Alice", "Bob"], "Age": [25, 30]}))
4302
4417
  # preview({"key": "value", "numbers": [1, 2, 3]})
4303
4418
 
4304
- def df_as_type(
4305
- df: pd.DataFrame,
4306
- columns: Optional[Union[str, List[str]]] = None,
4307
- astype: str = "datetime",
4308
- format: Optional[str] = None,
4309
- inplace: bool = True,
4310
- errors: str = "coerce", # Can be "ignore", "raise", or "coerce"
4311
- **kwargs,
4312
- ):
4313
- return df_astype(df=df,columns=columns,astype=astype,format=format,inplace=inplace,errors=errors,**kwargs)
4314
-
4315
4419
  # ! DataFrame
4316
4420
  def df_astype(
4317
4421
  df: pd.DataFrame,
@@ -4474,15 +4578,15 @@ def df_astype(
4474
4578
  return df
4475
4579
 
4476
4580
 
4477
- # ! DataFrame
4478
- def df_sort_values(df, column, by=None, ascending=True, inplace=False, **kwargs):
4581
+ # ! DataFrame
4582
+ def df_sort_values(df, column, by=None, ascending=True, inplace=True, **kwargs):
4479
4583
  """
4480
- Sort a DataFrame by a specified column based on a custom order.
4584
+ Sort a DataFrame by a specified column based on a custom order or by count.
4481
4585
 
4482
4586
  Parameters:
4483
4587
  - df: DataFrame to be sorted.
4484
4588
  - column: The name of the column to sort by.
4485
- - by: List specifying the custom order for sorting.
4589
+ - by: List specifying the custom order for sorting or 'count' to sort by frequency.
4486
4590
  - ascending: Boolean or list of booleans, default True.
4487
4591
  Sort ascending vs. descending.
4488
4592
  - inplace: If True, perform operation in place and return None.
@@ -4494,12 +4598,25 @@ def df_sort_values(df, column, by=None, ascending=True, inplace=False, **kwargs)
4494
4598
  if column not in df.columns:
4495
4599
  raise ValueError(f"Column '{column}' does not exist in the DataFrame.")
4496
4600
 
4497
- if not isinstance(by, list):
4498
- raise ValueError("custom_order must be a list.")
4601
+ if isinstance(by, str) and 'count' in by.lower():
4602
+ # Count occurrences of each value in the specified column
4603
+ value_counts = df[column].value_counts()
4499
4604
 
4500
- try:
4605
+ # Determine the order based on counts
4606
+ count_ascending = kwargs.pop("count_ascending", ascending)
4607
+ sorted_counts = value_counts.sort_values(ascending=count_ascending).index.tolist()
4608
+
4609
+ # Convert to a categorical type with the new order
4610
+ df[column] = pd.Categorical(df[column], categories=sorted_counts, ordered=True)
4611
+ # Set ascending to count_ascending for sorting
4612
+ ascending = count_ascending # Adjust ascending for the final sort
4613
+ elif isinstance(by, list):
4501
4614
  # Convert the specified column to a categorical type with the custom order
4502
4615
  df[column] = pd.Categorical(df[column], categories=by, ordered=True)
4616
+ else:
4617
+ raise ValueError("Custom order must be a list or 'count'.")
4618
+
4619
+ try:
4503
4620
  if inplace: # replace the original
4504
4621
  df.sort_values(column, ascending=ascending, inplace=True, **kwargs)
4505
4622
  print(f"Successfully sorted DataFrame by '{column}'")
@@ -4513,6 +4630,7 @@ def df_sort_values(df, column, by=None, ascending=True, inplace=False, **kwargs)
4513
4630
  return df
4514
4631
 
4515
4632
 
4633
+
4516
4634
  # # Example usage:
4517
4635
  # # Sample DataFrame
4518
4636
  # data = {
py2ls/netfinder.py CHANGED
@@ -31,7 +31,7 @@ from PIL import Image
31
31
  from duckduckgo_search import DDGS
32
32
  from datetime import datetime
33
33
  import time
34
- from py2ls import ips
34
+ from . import ips
35
35
 
36
36
  dir_save = "/Users/macjianfeng/Dropbox/Downloads/"
37
37
  # Set up logging
@@ -421,12 +421,25 @@ def fetch_all(
421
421
  prefs = {"profile.managed_default_content_settings.images": 2}
422
422
  chrome_options.add_experimental_option("prefs", prefs)
423
423
  # chrome_options.page_load_strategy = capability
424
+ try:
425
+ # Try to install ChromeDriver using webdriver-manager
424
426
 
425
- service = Service(ChromeDriverManager().install())
426
- # driver_path='/Users/macjianfeng/.wdm/drivers/chromedriver/mac64/127.0.6533.119/chromedriver-mac-arm64/chromedriver'
427
- # service=Service(executable_path=driver_path)
427
+ # driver_pah='/Users/macjianfeng/.wdm/drivers/chromedriver/mac64/129.0.6668.100/chromedriver-mac-arm64/chromedriver'
428
+ # service=Service(executable_path=driver_path)
428
429
 
429
- driver_ = webdriver.Chrome(service=service, options=chrome_options)
430
+ service = Service(ChromeDriverManager().install())
431
+ driver_ = webdriver.Chrome(service=service, options=chrome_options)
432
+ except Exception as e:
433
+ print(f"Error occurred: {e}")
434
+ print("Attempting to reinstall webdriver-manager...")
435
+ try:
436
+ ips.upgrade("webdriver-manager", uninstall=True)
437
+ service = Service(ChromeDriverManager().install())
438
+ driver_ = webdriver.Chrome(service=service, options=chrome_options)
439
+ except Exception as reinstall_error:
440
+ print(
441
+ f"Reinstallation failed: {reinstall_error}\n之前发生过类似的问题, 更新了webdriver-manager以后得到解决"
442
+ )
430
443
 
431
444
  # 隐式等等待
432
445
  if 3 < wait < 5:
py2ls/plot.py CHANGED
@@ -15,11 +15,119 @@ from .ips import fsave, fload, mkdir, listdir, figsave, strcmp, unique, get_os,
15
15
  from .stats import *
16
16
  from .netfinder import get_soup, fetch
17
17
 
18
-
19
18
  # Suppress INFO messages from fontTools
20
19
  logging.getLogger("fontTools").setLevel(logging.WARNING)
21
20
 
22
21
 
22
+ def add_text(ax=None, height_offset=0.5, fmt=".1f", **kwargs):
23
+ """Adds text annotations for various types of Seaborn and Matplotlib plots.
24
+ Args:
25
+ ax: Axes object.
26
+ height_offset: 0.5 (default) The vertical distance (offset) to place the text.
27
+ fmt: Default is ".1f" for one decimal place.
28
+ **kwargs: Additional keyword arguments for the text function
29
+ Usage:
30
+ ax = sns.barplot(x='Category', y='Values', data=data)
31
+ add_text(ax=ax, height_offset=1.0, color='black', fontsize=12)
32
+
33
+ The function will automatically detect the type of plot and add annotations accordingly.
34
+ It supports annotations for:
35
+ - **Bar Plots**: Displays the height of each bar.
36
+ - **Box Plots**: Shows the height of the boxes.
37
+ - **Scatter and Line Plots**: Displays the y-value for each point.
38
+ - **Histograms and KDE Plots**: Shows the maximum height of the bars.
39
+ - **Other Plots**: If the Axes contains containers, it handles those as well.
40
+ """
41
+ from matplotlib.collections import LineCollection
42
+
43
+ ha = kwargs.pop("ha", "center")
44
+ va = kwargs.pop("va", "bottom")
45
+ if ax is None:
46
+ ax = plt.gca()
47
+ # Check if the Axes has patches (for bar, count, boxen, violin, and other plots with bars)
48
+ # Check for artists (for box plots)
49
+ if hasattr(ax, "artists") and ax.artists:
50
+ print("artists")
51
+ for box in ax.artists:
52
+ if hasattr(box, "get_height") and hasattr(box, "get_y"):
53
+ height = box.get_y() + box.get_height() # For box plots
54
+
55
+ ax.text(
56
+ box.get_x() + box.get_width() / 2.0,
57
+ height + height_offset,
58
+ format(height, fmt),
59
+ ha=ha,
60
+ va=va,
61
+ **kwargs,
62
+ )
63
+
64
+ # Scatter plot or line plot
65
+ if hasattr(ax, "lines"):
66
+ print("lines")
67
+ for line in ax.lines:
68
+ if hasattr(line, "get_xydata"):
69
+ xdata, ydata = line.get_xydata().T # Get x and y data points
70
+ for x, y in zip(xdata, ydata):
71
+ ax.text(x, y + height_offset, format(y, fmt), **kwargs)
72
+
73
+ if hasattr(ax, "patches") and ax.patches:
74
+ print("patches")
75
+ for p in ax.patches:
76
+ if hasattr(p, "get_height"):
77
+ height = p.get_height() # For bar plots
78
+
79
+ ax.text(
80
+ p.get_x() + p.get_width() / 2.0,
81
+ height + height_offset,
82
+ format(height, fmt),
83
+ ha=ha,
84
+ va=va,
85
+ **kwargs,
86
+ )
87
+ # For histplot, kdeplot, rugplot
88
+ if hasattr(ax, "collections"):
89
+ print("collections")
90
+ for collection in ax.collections:
91
+ # If it is a histogram or KDE plot
92
+ if isinstance(collection, LineCollection):
93
+ for path in collection.get_paths():
94
+ if hasattr(path, "vertices"):
95
+ vertices = path.vertices
96
+ # Get the heights (y values) for histogram or KDE plots
97
+ ax.text(
98
+ vertices[:, 0].mean(),
99
+ vertices[:, 1].max() + height_offset,
100
+ format(vertices[:, 1].max(), fmt),
101
+ **kwargs,
102
+ )
103
+ # Handle point, strip, and swarm plots
104
+ elif isinstance(collection, LineCollection):
105
+ for path in collection.get_paths():
106
+ vertices = path.vertices
107
+ ax.text(
108
+ vertices[:, 0].mean(),
109
+ vertices[:, 1].max() + height_offset,
110
+ format(vertices[:, 1].max(), fmt),
111
+ **kwargs,
112
+ )
113
+ # Handle bar charts (not from seaborn)
114
+ if hasattr(ax, "containers"):
115
+ print("containers")
116
+ for container in ax.containers:
117
+ for bar in container:
118
+ if hasattr(bar, "get_height"):
119
+ height = bar.get_height()
120
+
121
+ ax.text(
122
+ bar.get_x() + bar.get_width() / 2.0,
123
+ height + height_offset,
124
+ format(height, fmt),
125
+ ha=ha,
126
+ va=va,
127
+ **kwargs,
128
+ )
129
+
130
+
23
131
  def heatmap(
24
132
  data,
25
133
  ax=None,
@@ -2710,7 +2818,7 @@ import matplotlib.pyplot as plt
2710
2818
  from PIL import Image
2711
2819
 
2712
2820
 
2713
- def thumbnail(dir_img_list: list, figsize=(10, 10), dpi=100, show=False, usage=False):
2821
+ def thumbnail(dir_img_list: list, figsize=(10, 10), dpi=100, show=False, verbose=False):
2714
2822
  """
2715
2823
  Display a thumbnail figure of all images in the specified directory.
2716
2824
 
@@ -2719,7 +2827,7 @@ def thumbnail(dir_img_list: list, figsize=(10, 10), dpi=100, show=False, usage=F
2719
2827
  figsize (tuple): Size of the figure (width, height) in inches.
2720
2828
  dpi (int): Dots per inch for the figure.
2721
2829
  """
2722
- if usage:
2830
+ if verbose:
2723
2831
  print(
2724
2832
  'thumbnail(listdir("./img-innere-medizin-ii", ["jpeg", "jpg", "png"]).fpath.tolist(),figsize=[5,5],dpi=200)'
2725
2833
  )
@@ -2766,7 +2874,7 @@ def plot_xy(
2766
2874
  y=None,
2767
2875
  ax=None,
2768
2876
  kind: str = None, # Specify the kind of plot
2769
- usage=False,
2877
+ verbose=False,
2770
2878
  # kws_figsets:dict=None,
2771
2879
  **kwargs,
2772
2880
  ):
@@ -2781,7 +2889,7 @@ def plot_xy(
2781
2889
  hue (str): Column name for the hue (color) grouping.
2782
2890
  ax: Matplotlib axes object for the plot.
2783
2891
  kind (str): Type of plot ('scatter', 'line', 'displot', 'kdeplot', etc.).
2784
- usage (bool): If True, print default settings instead of plotting.
2892
+ verbose (bool): If True, print default settings instead of plotting.
2785
2893
  **kwargs: Additional keyword arguments for the plot functions.
2786
2894
 
2787
2895
  Returns:
@@ -2804,8 +2912,8 @@ def plot_xy(
2804
2912
  kind = [kind]
2805
2913
  kind = [strcmp(i, valid_kinds)[0] for i in kind]
2806
2914
  else:
2807
- usage = True
2808
- if usage:
2915
+ verbose = True
2916
+ if verbose:
2809
2917
  if kind is not None:
2810
2918
  for k in kind:
2811
2919
  if k in valid_kinds:
@@ -2823,7 +2931,7 @@ def plot_xy(
2823
2931
  kind=["scatter","rug"],
2824
2932
  kws_rug=dict(height=0.2),
2825
2933
  kws_scatter=dict(s=20, color=get_color(3)[2]),
2826
- usage=0)
2934
+ verbose=0)
2827
2935
  """
2828
2936
  print(f"currently support to plot:\n{valid_kinds}\n\nusage:\n{usage_str}")
2829
2937
  return # Do not plot, just print the usage
@@ -2834,6 +2942,12 @@ def plot_xy(
2834
2942
  kws_figsets = v_arg
2835
2943
  kwargs.pop(k_arg, None)
2836
2944
  break
2945
+ kws_text = {}
2946
+ for k_arg, v_arg in kwargs.items():
2947
+ if "add" in k_arg and all(["t" in k_arg, "x" in k_arg]): # add_text
2948
+ kws_text = v_arg
2949
+ kwargs.pop(k_arg, None)
2950
+ break
2837
2951
 
2838
2952
  for k in kind:
2839
2953
  # indicate 'col' features
@@ -2947,7 +3061,8 @@ def plot_xy(
2947
3061
  kws_line = kwargs.pop("kws_line", kwargs)
2948
3062
  ax = sns.lineplot(ax=ax, data=data, x=x, y=y, **kws_line)
2949
3063
 
2950
- figsets(**kws_figsets)
3064
+ figsets(ax=ax, **kws_figsets)
3065
+ add_text(ax=ax, **kws_text)
2951
3066
  print(k, " ⤵ ")
2952
3067
  print(default_settings[k])
2953
3068
  print(
@@ -2978,7 +3093,7 @@ def volcano(
2978
3093
  alpha=0.8,
2979
3094
  legend=False,
2980
3095
  ax=None,
2981
- usage=False,
3096
+ verbose=False,
2982
3097
  kws_arrow=None,
2983
3098
  kws_text=None,
2984
3099
  **kwargs,
@@ -3035,11 +3150,11 @@ def volcano(
3035
3150
  edgecolor="0.5",
3036
3151
  kws_text=dict(fontsize=10, color="k"),
3037
3152
  kws_arrow=dict(style="-", color="k", lw=0.5),
3038
- # usage=True,
3153
+ # verbose=True,
3039
3154
  figsets=dict(ylim=[0, 10], title="df"),
3040
3155
  )
3041
3156
  """
3042
- if usage:
3157
+ if verbose:
3043
3158
  print(usage_str)
3044
3159
  return
3045
3160
  from adjustText import adjust_text
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: py2ls
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: py(thon)2(too)ls
5
5
  Author: Jianfeng
6
6
  Author-email: Jianfeng.Liu0413@gmail.com
@@ -1,4 +1,4 @@
1
- py2ls/.DS_Store,sha256=N6pp6R6M5ZPDw6IdIAnsHaAAOu8hWJASHMjjjKMNmOc,6148
1
+ py2ls/.DS_Store,sha256=9qxq9N5T7k6muGHxG5s6yEdEEYqEh8eDGT3w7LokxsU,6148
2
2
  py2ls/.git/COMMIT_EDITMSG,sha256=AdtqRHle5Ej2EBNPJY79v-SB454v5UK4wuPCPFELiFQ,11
3
3
  py2ls/.git/FETCH_HEAD,sha256=VM-2Jiw6iPaGu0ftg9xwq76OyNPWV0iT1nL0VWiL1zI,100
4
4
  py2ls/.git/HEAD,sha256=KNJb-Cr0wOK3L1CVmyvrhZ4-YLljCl6MYD2tTdsrboA,21
@@ -203,23 +203,23 @@ py2ls/data/styles/style6.json,sha256=tu-MYOT9x5Rorc-2IK6sy-J-frmz0RNdm65XAsDQKX4
203
203
  py2ls/data/styles/style7.json,sha256=StdUFwIVrS7T_6CDrADHMorzc0WZFWBM7IyYdO1TPHg,4447
204
204
  py2ls/data/styles/style8.json,sha256=8XUgkZtew8ebvjbAHlDHCSWUqNra3ktDvMCO4vNh-CM,4456
205
205
  py2ls/data/styles/style9.json,sha256=PLxvntbH_kfzZlnCTtCEAUVBGi5m6Lngb9C01rArQog,4769
206
- py2ls/data/usages_pd.json,sha256=XvFAwxKn6yYZztxmAhcqQ-kuYm6xBnLRx5aOLfvp3BQ,11060
207
- py2ls/data/usages_sns.json,sha256=Vu2kGIIMxxWxJ1kW0Ov7mq47DQwZa_-gwsXiW72A2ag,7788
206
+ py2ls/data/usages_pd.json,sha256=A76y7lr28BUBdggFN_50r-4My3Q51M_3y0ZcQ4LHSco,15077
207
+ py2ls/data/usages_sns.json,sha256=3OTu6T7n9HbQaFkz-UPMJ_9-Ug6Xjf7q5aDIvZ_6cHk,9246
208
208
  py2ls/db2ls.py,sha256=MMfFX47aIPIyu7fU9aPvX9lbPRPYOpJ_VXwlnWk-8qo,13615
209
209
  py2ls/doc.py,sha256=xN3g1OWfoaGUhikbJ0NqbN5eKy1VZVvWwRlhHMgyVEc,4243
210
210
  py2ls/export_requirements.py,sha256=x2WgUF0jYKz9GfA1MVKN-MdsM-oQ8yUeC6Ua8oCymio,2325
211
+ py2ls/fetch_update.py,sha256=jh2MQHREpCqzYhDmEnMpuIvQVf4_wD9pDdIziXoFE3E,4055
211
212
  py2ls/freqanalysis.py,sha256=F4218VSPbgL5tnngh6xNCYuNnfR-F_QjECUUxrPYZss,32594
212
213
  py2ls/ich2ls.py,sha256=3E9R8oVpyYZXH5PiIQgT3CN5NxLe4Dwtm2LwaeacE6I,21381
213
- py2ls/ips.py,sha256=uEpvsKo_E9eX49Icd60g-fQBDzmpGW65hJM9_mr6wuM,195254
214
- py2ls/netfinder.py,sha256=vgOOMhzwbjRuLWMAPyf_kh3HoOhsJ9dlA-tCkMf7kNU,55371
214
+ py2ls/ips.py,sha256=92b5_p1EM0VRsEylXln7oaI7eLmtcC3GkBcEHFTUkIU,199481
215
+ py2ls/netfinder.py,sha256=LwBkGITB_4BTNtY6RlKdEZVFW6epzMWlnqy2g03KtyU,56117
215
216
  py2ls/ocr.py,sha256=5lhUbJufIKRSOL6wAWVLEo8TqMYSjoI_Q-IO-_4u3DE,31419
216
- py2ls/plot.py,sha256=ynL5fz2jf1pD09FWkAayQOT3c4Jj64sjFHrkgCqdgAs,127193
217
+ py2ls/plot.py,sha256=dxZeD27TZMzccN8_kyqSJf72PdZJk45gLuTYAeDq81I,131906
217
218
  py2ls/setuptools-70.1.0-py3-none-any.whl,sha256=2bi3cUVal8ip86s0SOvgspteEF8SKLukECi-EWmFomc,882588
218
219
  py2ls/sleep_events_detectors.py,sha256=bQA3HJqv5qnYKJJEIhCyhlDtkXQfIzqksnD0YRXso68,52145
219
220
  py2ls/stats.py,sha256=DMoJd8Z5YV9T1wB-4P52F5K5scfVK55DT8UP4Twcebo,38627
220
221
  py2ls/translator.py,sha256=zBeq4pYZeroqw3DT-5g7uHfVqKd-EQptT6LJ-Adi8JY,34244
221
- py2ls/update2usage.py,sha256=9uLoipgM0k-xUy56XOa6v-sOim3mE5srdNiPzn03ALY,3964
222
222
  py2ls/wb_detector.py,sha256=7y6TmBUj9exCZeIgBAJ_9hwuhkDh1x_-yg4dvNY1_GQ,6284
223
- py2ls-0.2.3.dist-info/METADATA,sha256=QvoGrLUwlS0T7VI09f-OJ8tU1Z3VGCl0bJWbP73RCCg,20036
224
- py2ls-0.2.3.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
225
- py2ls-0.2.3.dist-info/RECORD,,
223
+ py2ls-0.2.4.dist-info/METADATA,sha256=-i9MH0eTedNkRUR6XQuj6rikJRNwp9U2eA1CskY6X1Y,20036
224
+ py2ls-0.2.4.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
225
+ py2ls-0.2.4.dist-info/RECORD,,
File without changes