LK Utils is a set of utility wrappers made for data processing.
Project description
LK Utils
lk-utils is a set of utility wrappers to make data processing more simple and fluent.
Install
pip install lk-utils
the default pip install doesn't include extra dependencies. to get extra support for excel or nlp processing, pip install this:
pip install lk-utils # to add lk-logger (required dependency)
pip install lk-utils[exl] # to add lk-logger, xlrd, xlsxwriter
pip install lk-utils[nlp] # to add lk-logger, pypinyin
pip install lk-utils[all] # to add all of the above
lk-utils requires Python 3.8 or higher version.
Usage
subproc
new thread decorator
from lk_utils.subproc import new_thread
@new_thread(daemon=True, singleton=False)
def background_loop():
from time import sleep
i = 0
while i < 10:
i += 1
print(i)
sleep(1)
x = background_loop()
print(type(x)) # -> threading.Thread
run in new thread
from lk_utils.subproc import run_new_thread
def background_loop():
from time import sleep
i = 0
while i < 10:
i += 1
print(i)
sleep(1)
x = run_new_thread(background_loop, args=None, kwargs=None, daemon=True)
print(type(x)) # -> threading.Thread
run cmd args
from lk_utils.subproc import run_cmd_shell, run_cmd_args
run_cmd_shell('python -m pip list')
run_cmd_args('python', '-m', 'pip', 'list')
mklink, mklinks
"""
example structure:
|= from_dir
|= folder_xxx
|- file_xxx.txt
|= to_dir_1 # empty
|= to_dir_2 # not empty
|- ...
"""
from lk_utils.subproc import mklink, mklinks
mklink('/from_dir', '/to_dir_1')
mklinks('/from_dir', '/to_dir_2')
"""
result:
|= from_dir
|= folder_xxx
|- file_xxx.txt
|= to_dir_1 # this is a symlink
|= to_dir_2
|- ...
|= folder_xxx # this is a symlink
|- file_xxx.txt # this is a symlink
"""
filesniff
get current dir, get relative path
import os
from lk_utils import filesniff as fs
print(fs.currdir()
== os.path.dirname(__file__)).replace('\\', '/')) # -> True
print(fs.relpath('..')
== os.path.dirname(fs.currdir())) # -> True
list files/dirs
from lk_utils import filesniff as fs
for path, name in fs.find_files('.'): # this is an generator.
print(path, name)
# the first element is the **abspath**, the second is path's
# basename (<- os.path.basename(path))
for path in fs.find_file_paths('.'): # this is a list[str]
print(path)
for name in fs.find_file_names('.'): # this is a list[str]
print(name)
# more:
# fs.findall_files
# fs.findall_file_paths
# fs.findall_file_names
#
# fs.find_dirs
# fs.find_dir_paths
# fs.find_dir_names
#
# fs.findall_dirs
# fs.findall_dir_paths
# fs.findall_dir_names
read_and_write
loads and dumps
from lk_utils import read_and_write as rw
data_r = rw.loads(file_i)
# it recognizes json, yaml, pkl as sturctured data. others are treated as
# plain text.
data_w = ...
rw.dumps(data_w, file_o)
# it recognizes json, yaml, pkl as sturctured data. others are treated as
# plain text.
below are marked as deprecated.
excel
excel reader and writer
from lk_utils import excel as exl
reader = exl.ExcelReader(file_i)
# accepts '.xls' and '.xlsx' files.
... # TODO:CompleteExample
writer = exl.ExcelWriter(file_o)
# accepts only '.xlsx' files.
... # TODO:CompleteExample
writer.save()
nlp
TODO
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
lk-utils-2.3.2.tar.gz
(104.5 kB
view details)
Built Distribution
lk_utils-2.3.2-py3-none-any.whl
(116.4 kB
view details)
File details
Details for the file lk-utils-2.3.2.tar.gz
.
File metadata
- Download URL: lk-utils-2.3.2.tar.gz
- Upload date:
- Size: 104.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.0 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d3380904693228db538c163b79f5f86aab1192e1eef67dfdd0625fdc403b78e |
|
MD5 | 7b27bab237ec023c6abbcd3f317b8401 |
|
BLAKE2b-256 | d12da5c840ed00f128ab87242282c12c22ce8094e085e147c54a0ad40b4c83cc |
File details
Details for the file lk_utils-2.3.2-py3-none-any.whl
.
File metadata
- Download URL: lk_utils-2.3.2-py3-none-any.whl
- Upload date:
- Size: 116.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.0 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8398ce7468efe233342faf558037f6f1a4c4335db612b9c0a9b755823c68a02 |
|
MD5 | 436dc241e633cba8cbc1c162636d6cf6 |
|
BLAKE2b-256 | 8a659b4a9403839f4360f496076e426931e2e52ba8614665bb3c2f4f5df10039 |