Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
a{text-decoration: none !important;color:lightkblue;font-weight:bold;} a:focus,a:active,a:hover{color:hotpink !important;}A Python Processing Tool for Vasp Input/Output. A CLI is available in Powershell, see Vasp2Visual.
▶
Index●
▶
Example
▶
StaticPlots
▶
InteractivePlots
▶
SpinProjectedSurfaces
▶
StructureIO
▶
Widgets
▶
MainAPI
pip install pivotpy
pivotpy
in regular terminal to quickly launch documentation any time.pivotpy
in system terminal to launch DOCS.pivotpy_get_poscar
to download POSCAR.pivotpy_get_kpath
to create fine controlled KPATH.Use pp.plt2text(colorful=True/False)
after matplotlib's code and your figure will appear in terminal. You need to zoom out alot to get a good view like below.
Tip: Use file matplotlib2terminal.py on github independent of this package to plot in terminal.
See GIF here:
Navigate to ipyslides or do pip install ipyslides
to create beautiful data driven presentation in Jupyter Notebook.
import os, pivotpy as pp
with pp.set_dir('E:/Research/graphene_example/ISPIN_1/bands'):
vr = pp.Vasprun(elim=[-5,5])
print('Try Follwing Methods:')
for v in dir(vr):
if not v.startswith('_'):
print('vr.'+v)
Try Follwing Methods:
vr.Fermi
vr.data
vr.elim
vr.fermi
vr.get_band_info
vr.get_en_diff
vr.get_fermi
vr.iplot_dos_lines
vr.iplot_rgb_lines
vr.kticks
vr.poscar
vr.select
vr.splot_bands
vr.splot_color_lines
vr.splot_dos_lines
vr.splot_en_diff
vr.splot_rgb_lines
vr.to_json
vr.to_pickle
import matplotlib.pyplot as plt
ax1,ax2 = pp.get_axes((6,3),ncols=2)
ax1.plot(vr.data.scsteps['e_fr_energy'],lw=3, label = 'e_fr_energy',color='k')
ax1.plot(vr.data.scsteps['e_0_energy'],lw=0.7,ls='dashed',label='e_0_energy',color='skyblue')
ax1.set_ylabel('Energy (eV)')
ax1.set_xlabel('Iteration Number')
ax1.legend()
vr.poscar.splot_lat(ax=ax2,plane='xy')
X, Y, Z = vr.data.poscar.coords.T
q = ax2.quiver(X,Y,*vr.data.force[:,:2].T,scale=25,color='r')
ax2.quiverkey(q, 0.7, 1, 7, 'Force (arb. units)')
ax2.add_legend()
#collapse_input
import pivotpy as pp, numpy as np
import matplotlib.pyplot as plt
vr1=pp.Vasprun('E:/Research/graphene_example/ISPIN_2/bands/vasprun.xml')
vr2=pp.Vasprun('E:/Research/graphene_example/ISPIN_2/dos/vasprun.xml')
axs = pp.get_axes(ncols=3,widths=[2,1,2.2],sharey=True,wspace=0.05,figsize=(8,2.6))
elements=[0,[0],[0,1]]
orbs=[[0],[2],[1,3]]
labels=['s','$p_z$','$(p_x+p_y)$']
ti_cks=dict(ktick_inds=[0,30,60,-1],ktick_vals=['Γ','M','K','Γ'])
args_dict=dict(elements=elements,orbs=orbs,labels=labels,elim=[-20,15],colormap='viridis',)
vr1.splot_bands(ax=axs[0],**ti_cks,elim=[-20,15])
vr1.splot_rgb_lines(ax=axs[2],**args_dict,**ti_cks,colorbar=False)
vr2.splot_dos_lines(ax=axs[1],vertical=True,spin='both',include_dos='pdos',**args_dict,legend_kwargs={'ncol': 3})
axs[2].color_cube(loc=(0.7,0.25),size=0.35)
pp._show()
[0;92m Given 0 at position 1 of sequence => 'C': range(0, 2). To just pick one ion, write it as [0].[00m
args_dict['labels'] = ['s','p_z','p_x+p_y']
args_dict.pop('colormap')
fig1 = vr1.iplot_rgb_lines(**args_dict)
#pp.iplot2html(fig1) #Do inside Google Colab, fig1 inside Jupyter
from IPython.display import Markdown
Markdown("[See Interactive Plot](https://massgh.github.io/InteractiveHTMLs/iGraphene.html)")
pivotpy.sio
module or pivotpy.api.POSCAR
class for details on generating mesh and path of KPOINTS as well as using Materials Projects' API to get POSCAR right in the working folder. Below is a screenshot of interactive BZ plot. You can double click
on blue points and hit Ctrl + C
to copy the high symmetry points relative to reciprocal lattice basis vectors.pivotpy.sio.splot_bz
.Amost every bandstructure and DOS plot function has an argument interp_nk
which is a dictionary with keys n
(Number of additional points between adjacent points) and k
(order of interpolation 0-3). n > k
must hold.
#collapse_input
import pivotpy as pp, matplotlib.pyplot as plt
plt.style.use('ggplot')
k = vr1.data.kpath
ef = vr1.data.bands.Fermi
evals = vr1.data.bands.evals.SpinUp - ef
#Let's interpolate our graph to see effect. It is useful for colored graphs.
knew,enew=pp.interpolate_data(x=k,y=evals,n=10,k=3)
plot = plt.plot(k,evals,'m',lw=5,label='real data')
plot = plt.plot(k,evals,'w',lw=1,label='interpolated',ls='dashed')
pp.splots.add_text(ax=plt.gca(),txts='Graphene')
check out the class pivotpy.LOCPOT
to visulize local potential/charge and magnetization in a given direction.
Some tasks are very tideious in python while just a click way in powershell. See below, and try to list processes in python yourself to see the difference!
pp.utils.ps2std(ps_command='(Get-Process)[0..4]')
[32;1m NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName[0m
[32;1m ------ ----- ----- ------ -- -- -----------[0m
22 6.92 8.27 0.33 14100 1 AcrobatNot…
6 1.29 5.68 0.00 7724 0 Aggregator…
19 7.22 20.85 0.00 5608 0 AppHelperC…
26 39.25 57.59 0.48 2064 1 Applicatio…
9 1.67 6.88 0.00 5264 0 armsvc
%%ps/%ps
foo
by %%ps --out foo
foo = %ps powershell_command
Put below code in ipython profile's startup file (create one) "~/.ipython/profile_default/startup/powershell_magic.py"
from IPython.core.magic import register_line_cell_magic
from IPython import get_ipython
@register_line_cell_magic
def ps(line, cell=None):
if cell:
return get_ipython().run_cell_magic('powershell',line,cell)
else:
get_ipython().run_cell_magic('powershell','--out posh_output',line)
return posh_output.splitlines()
Additionally you need to add following lines in "~/.ipython/profile_default/ipython_config.py" file to make above magic work.
from traitlets.config.application import get_config
c = get_config()
c.ScriptMagics.script_magics = ['powershell']
c.ScriptMagics.script_paths = {
'powershell' : 'powershell.exe -noprofile -command -',
'pwsh': 'pwsh.exe -noprofile -command -'
}
%%ps
Get-ChildItem 'E:\Research\graphene_example\'
Directory: E:\Research\graphene_example
Mode LastWriteTime Length Name
---- ------------- ------ ----
da---- 6/9/2022 10:33 AM ISPIN_1
da---- 5/9/2020 1:05 PM ISPIN_2
-a---- 5/9/2020 1:01 PM 75331 OUTCAR
-a---- 5/9/2020 1:01 PM 240755 vasprun.xml
x = %ps (Get-ChildItem 'E:\Research\graphene_example\').Name
x
['ISPIN_1', 'ISPIN_2', 'OUTCAR', 'vasprun.xml']
a{text-decoration: none !important;color:lightkblue;font-weight:bold;}
a:focus,a:active,a:hover{color:hotpink !important;}
▶
Index●
▶
Example
▶
StaticPlots
▶
InteractivePlots
▶
SpinProjectedSurfaces
▶
StructureIO
▶
Widgets
▶
MainAPI
FAQs
A description of your project
We found that pivotpy demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.