Install
pip install py2ls
- Minimal version: pip install py2ls
- Light version: pip install py2ls[light]
- Full version: pip install py2ls[full]
- Or any combination like pip install py2ls[full,ml]
ips
listdir, basename, dirname, newfolder, finfo
e.g.,
fpath = "....../"
ips.listdir(fpath, kind='pdf', sort_by="size", ascending=0, output = 'df')
it filters the ‘.pdf’ files, and sort by the (file-size/name, length of name, create_time, mod_time, last_open_time …) it returns a DataFrame or BoxList (setting by ‘output’)
dir_data, dir_fig = newfolder(fpath, {'data', 'fig'}) # create folder
finfo(fpath) # get info: size, creation time, mod time, parent_path, fname, kind...
dir_lib(lib_of_interest) # get the fpath
list_func/func_list (same)
list functions in a package
fload, fsave, figsave
e.g.,
fload(fpath, kind=None, **kwargs)
load file (docx, pdf, image, md, json,csv,txt, html, yaml, xml, xlsx…) or save file.
# figsave, as used in matlab.
figsave(dir_save, "fname.pdf", dpi=300)
pdf2img, img2pdf, docx2pdf
extract images from a PDF, or merge images into a pdf file
pdf2img(dir_pdf, dir_save=None, page=None, kind="png",verbose=True, **kws)
pdf2img(fpath, page=[None, None]) # means extract all pages
# processing page: 1
# processing page: 2
# processing page: 3
# processing page: 4
# processing page: 5
img2pdf(dir_img, kind="jpeg",page=None, dir_save=None, page_size="a4", dpi=300)
docx2pdf(dir_docx, dir_save) # convert docx to pdf
paper_size
quickly get the size info
paper_size('a4') # [210, 297]
paper_size('card') # [85.6, 53.98]
str2num, num2str, str2list
str2num(“123.345 dollers”,2)# => 123.35 (float)
str2list("abcd") # ['a','b','c','d']
list2str(['a','b','c','d']) # 'abcd'
ssplit, sreplace
sreplace(text, dict_replace=None, robust=True)
ssplit(text, by="space", verbose=False, **kws) # by = "word", "sentence", ", ","num_strings","digital".....,"length", "upper followed lower", "lower followed upper"
text = "The most pronounced physiological changes in sleep occur in the brain.[10] The brain uses significantly less energy during sleep than it does when awake, especially during non-REM sleep. In areas with reduced activity, the brain restores its supply of adenosine triphosphate (ATP), the molecule used for short-term storage and transport of energy.[11] In quiet waking, the brain is responsible for 20% of the body's energy use, thus this reduction has a noticeable effect on overall energy consumption.[12]"
ssplit(text, by=["[10]", "[11]", "[12]"])
# ['The most pronounced physiological changes in sleep occur in the brain.',
# ' The brain uses significantly less energy during sleep than it does when awake, especially during non-REM sleep. In areas with reduced activity, the brain restores its supply of adenosine triphosphate (ATP), the molecule used for short-term storage and transport of energy.',
# " In quiet waking, the brain is responsible for 20% of the body's energy use, thus this reduction has a noticeable effect on overall energy consumption.",
# '']
ssplit(text[:30], by="len", length=5)
# ['The m', 'ost p', 'ronou', 'nced ', 'physi', 'ologi']
ssplit(text, by="non_alphanumeric")
# ['The most pronounced physiological changes in sleep occur in the brain.[',
# '10',
# '] The brain uses significantly less energy during sleep than it does when awake, especially during non-REM sleep. In areas with reduced activity, the brain restores its supply of adenosine triphosphate (ATP), the molecule used for short-term storage and transport of energy.[',
# '11',
# '] In quiet waking, the brain is responsible for ',
# '20',
# "% of the body's energy use, thus this reduction has a noticeable effect on overall energy consumption.[",
# '12',
# ']']
ssplit(text, by="sent")
#['The most pronounced physiological changes in sleep occur in the brain.',
#'[10] The brain uses significantly less energy during sleep than it does when awake, especially during non-REM sleep.',
#'In areas with reduced activity, the brain restores its supply of adenosine triphosphate (ATP), the molecule used for short-term storage and transport of energy.',
#"[11] In quiet waking, the brain is responsible for 20% of the body's energy use, thus this reduction has a noticeable effect on overall energy consumption.",
#'[12]']
ssplit(text, by="lowup")
# ["The most pronounced physiological changes in sleep occur in the brain.[10] The brain uses significantly less energy during sleep than it does when awake, especially during non-REM sleep. In areas with reduced activity, the brain restores its supply of adenosine triphosphate (ATP), the molecule used for short-term storage and transport of energy.[11] In quiet waking, the brain is responsible for 20% of the body's energy use, thus this reduction has a noticeable effect on overall energy consumption.[12]"]
sreplace(text, dict_replace=None, robust=True)
text= 'The most pronounced physiological changes in sleep occur in the brain.[10] '
'The brain uses significantly less energy during sleep than it does when '
'awake, especially during non-REM sleep. In areas with reduced activity, the '
'brain restores its supply of adenosine triphosphate (ATP), the molecule used '
'for short-term storage and transport of energy.[11] In quiet waking, the '
"brain is responsible for 20% of the body's energy use, thus this reduction "
'has a noticeable effect on overall energy consumption.[12]'
sreplace(text)
"The most pronounced physiological changes in sleep occur in the brain"
sreplace(text,{"sleep":"wakewake"}) # sreplace(text,dict(sleep="wakewake"))
"The most pronounced physiological changes in wakewake occur in the brain."
stats
FuncCmpt ( two groups cmp)
FuncCmpt(X1, X2, pmc='auto', pair='unpaired')
e.g.,
X1 = [19, 22, 16, 29, 24]
X2 = [20, 11, 17, 12, 22]
p, res = FumcCmpt(X1,X2, pmc='pmc', pair = 'unpair')
# normally distributed
# normally distributed
# unpaired t text
# t(8) = 1.81117, p=0.1077
p,res = FuncCmpt(x1,x2, pmc='pmc',pair='pair')
# paired t test
# t(4)=1.55556,p=0.19479
FuncMultiCmpt ( multiple groups cmp)
FuncMultiCmpt(pmc='pmc', pair='unpair', data=None, dv=None, factor=None,
ss_type=2, detailed=True, effsize='np2',
correction='auto', between=None, within=None,
subject=None, group=None
)
df = pd.DataFrame({'score': [64, 66, 68, 75, 78, 94, 98, 79, 71, 80,
91, 92, 93, 90, 97, 94, 82, 88, 95, 96,
79, 78, 88, 94, 92, 85, 83, 85, 82, 81],
'group': np.repeat(['strat1', 'strat2', 'strat3'],repeats=10)})
res = FuncMultiCmpt(pmc='auto',pair='unpaired',data=df, dv='score', factor='group', group='group')
res["APA"]
# ['group:F(2, 17)=9.71719,p=0.0016']
FuncStars
FuncStars(ax,
pval=None,
Ylim=None,
Xlim=None,
symbol='*',
yscale=0.95,
x1=0,
x2=1,
alpha=0.05,
fontsize=14,
fontsize_note=6,
rotation=0,
fontname='Arial',
values_below=None,
linego=True,
linestyle='-',
linecolor='k',
linewidth=.8,
nsshow='off',
symbolcolor='k',
tailindicator=[0.06, 0.06],
report=None,
report_scale=-0.1,
report_loc=None)
plots
stdshade
stdshade(ax=None,*args, **kwargs)
add_colorbar
add_colorbar(im, width=None, pad=None, **kwargs)
get_color
get_color(n=1, cmap='auto')
get_color(12)
# ['#474747',
# '#FF2C00',
# '#0C5DA5',
# '#845B97',
# '#58BBCC',
# '#FF9500',
# '#D57DBE',
# '#474747',
# '#FF2C00',
# '#0C5DA5',
# '#845B97',
# '#58BBCC']
get_color(5, cmap="jet") # ['#000080', '#000084', '#000089', '#00008d', '#000092']
get_color(5,cmap="rainbow") #['#8000ff', '#7e03ff', '#7c06ff', '#7a09ff', '#780dff']
img appearance
imgsets
imgsets(
img,
sets=None,
show=True,
show_axis=False,
size=None,
dpi=100,
figsize=None,
auto=False,
filter_kws=None,
)
img = imgsets(
fpath,
sets={"rota": -5, "sharp": 10},
dpi=200,
# show_axis=True,
)
figsave(dir_save, "test1_sharp.pdf")
img2 = imgsets(
fpath,
sets={"rota": -5, "crop": [100, 100, 300, 400], "sharp": 10},
dpi=200,
filter_kws={
"sharpen": 10,
},
# show_axis=True,
)
figsave(dir_save, "test2_crop.pdf")
fload(dir_img)
imgsets(img, sets={"color": 1.5}, show=0)
imgsets(img, sets={"pad": (300, 300), "bgcolor": (73, 162, 127)}, show=0)
imgsets(
img,
sets={"contrast": 1.3, "color": 1.5, "pad": (300, 300)},
show=0,
filter_kws=dict(sh=1050, EDG=10, gaus=5),
)
imgsets(
img,
sets={"color": 10.5},
show=0,
filter_kws=dict(EDGE_ENHANCE=50, EDGE_NHANCEmore=50),
)
imgsets(
img,
sets=dict(contr=1.5, rm="default"),
show=0,
# filter_kws=dict(sharp=1),
)
imgsets(
img,
sets=dict(contr=0, rm="default"),
show=0,
filter_kws=dict(sharp=1),
)
figsets
figsets(*args)
cm = 1 / 2.54
# plt.style.use("paper")
plt.figure(figsize=[8 * cm, 5 * cm])
for i in range(2, 4):
plt.plot(x, y * i, ls="-")
figsets(
plt.gca(),
{
"xlabel": f"time([{x[0]}:{x[-1]}])",
"ylabel": "Amplitude (signals)",
# "titel": "paper",
"xlim": [0, 600],
"xtick": np.arange(0, 620, 150),
"xlabel": "test xticklabel",
# "ylim": [-2.5, 2.5],
"sp": "go",
# "style": "paper",
"box": ":",
"grid": "on",
"minorticks": "on",
"ticks": {"c": "k"},
},
)
figsets('style','paper')
cm = 1/2.54 # centimeters in inches
fig, ax = plt.subplots(1, 1, figsize=(7*cm, 5*cm))
x = np.linspace(0, 2 * np.pi, 50) * 100
y = np.sin(x)
c=get_color(7)
for i in range(2,7):
plt.plot(x, y*i,c=c[i])
figsets(
ax,
{
"xlim": [0, 450],
# "ylim": [-1.5, 1.5],
"xlabel": "2222",
# "style":"paper",
"yticks": np.arange(-5,5, 2),
"ylabel": "ylabelsssss",
"xtkbel": range(0, 800, 100),
# "spine": 5,
"suptitle": "supertitle",
# "minorticks": "y",
# "ticksloc":"lt",
# "ticks": {"direction": "out",'c':'b'},
"rotation":45,
# 'box':"lt",
# "labellocation":'r',
# "ax_color":'b',
# 'grid':{"which":'minor','lw':1,"ls":'-.','c':'b','al':0.3},
},
)
Metadata
Release files for py2ls 0.2.7.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| py2ls-0.2.7.15.tar.gz | 5.0 MB | Without provenance | Details for py2ls-0.2.7.15.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| py2ls-0.2.7.15-py3-none-any.whl | Python 3 | none | any | Details for py2ls-0.2.7.15-py3-none-any.whl |
Total release size: 10.0 MB
Release files / py2ls-0.2.7.15.tar.gz
| Download URL | py2ls-0.2.7.15.tar.gz |
|---|---|
| Size | 5.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
206590642fdb1f4724d3bb4b13f05245319b9934ffed3172731e348f3f75e9be
|
|
BLAKE2b-256 checksum How to use checksums |
0cacfba717e97bca32396ee397c960621558ee033ffb96dfe551a2064ab53df5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.4 Darwin/25.2.0
|
Release files / py2ls-0.2.7.15-py3-none-any.whl
| Download URL | py2ls-0.2.7.15-py3-none-any.whl |
|---|---|
| Size | 5.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
79095d44f475d93ad7a16f8b410d1cf9a0db019a70e206db5a699cfd8bd05e32
|
|
BLAKE2b-256 checksum How to use checksums |
84f6fdfe5b4d2fcee138a703575b55e445a244d9e8ec5a401365d14aa47d47c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.4 Darwin/25.2.0
|
Security for py2ls 0.2.7.15
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.