LK Utils is a set of utility wrappers made for data processing.
Project description
LK Utils
lk-utils is a set of utilities to make data processing more simple and fluent.
Install
pip install lk-utils
lk-utils requires python 3.8 or higher version.
Usage
subproc
new thread decorator
from lk_utils import new_thread
def main(files: list[str]) -> None:
for f in files:
handle_file(f)
@new_thread()
def handle_file(file: str) -> None:
# do something
...
fetch results from threads
from lk_utils import new_thread
def main(files: list[str]) -> None:
pool = []
for f in files:
thread = handle_file(f)
pool.append(thread)
...
for thread in pool:
result = thread.join()
print(result)
@new_thread()
def handle_file(file: str) -> str:
# do something
...
run cmd args
from lk_utils import run_cmd_args
from lk_utils import run_cmd_shell
run_cmd_args('python', '-m', 'pip', 'list')
run_cmd_shell('python -m pip list')
advanced filter:
from lk_utils import run_cmd_args
def pip_install(
dest: str,
url_index: str = None
) -> None:
run_cmd_args(
('python', '-m', 'pip'),
('install', '-r', 'requirements.txt'),
('-t', dest),
('-i', url_index),
)
mklink, mklinks
from lk_utils import mklink, mklinks
mklink('/from_dir', '/to_dir_1')
mklinks('/from_dir', '/to_dir_2')
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
lk_utils-2.9.4-py3-none-any.whl
(25.2 kB
view details)
File details
Details for the file lk_utils-2.9.4-py3-none-any.whl
.
File metadata
- Download URL: lk_utils-2.9.4-py3-none-any.whl
- Upload date:
- Size: 25.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.0 Darwin/21.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | efe314371f720bff446868dcef51717bdff987ca88c4b075b8aab00bcff16f0a |
|
MD5 | a9bd72f6370f5be3f0472c5c2ad0e9ff |
|
BLAKE2b-256 | cbf7c4b9be2e0d2e13589b444492578943979b82f000d436c31db3edf6d3ac51 |