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 filesys 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 filesys 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
Metadata
Release files for lk-utils 3.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lk_utils-3.8.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / lk_utils-3.8.1-py3-none-any.whl
| Download URL | lk_utils-3.8.1-py3-none-any.whl |
|---|---|
| Size | 51.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
62022ab76d41f72d5b4c9c8ca8e2e98fa701dc88ce3bd0730d53305d017dc473
|
|
BLAKE2b-256 checksum How to use checksums |
b80fd89fb00f98d65b13f415a3f4b024bbfba692a9f7d3630b2979ab0b0c276a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|