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.5
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 | Actions Reset |
|---|---|---|---|---|
| lk_utils-3.8.5-py3-none-any.whl | Python 3 | none | any | Details for lk_utils-3.8.5-py3-none-any.whl |
Release files / lk_utils-3.8.5-py3-none-any.whl
| Download URL | lk_utils-3.8.5-py3-none-any.whl |
|---|---|
| Size | 51.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
97581e85fc17137330313b8ad6d6c3a666330d4f243f4eb5263f38321dc9587a
|
|
BLAKE2b-256 checksum How to use checksums |
0580bb3f68dce604da55bdbaeb6a6365fcaf715af51b48fc6acf08c6a31ae9ec
|
| 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}
|
Security for lk-utils 3.8.5
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.