https://github.com/likianta/lk-utils
A set of utility wrappers made for data processing.
https://github.com/likianta/lk-utils
Last synced: 6 months ago
JSON representation
A set of utility wrappers made for data processing.
- Host: GitHub
- URL: https://github.com/likianta/lk-utils
- Owner: likianta
- Created: 2020-10-08T14:05:39.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-02-19T03:57:39.000Z (8 months ago)
- Last Synced: 2025-02-19T04:29:20.669Z (8 months ago)
- Language: Python
- Homepage:
- Size: 514 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.zh.md
Awesome Lists containing this project
README
# LK Utils
[δΈζη](./README.zh.md)
lk-utils is a set of utilities to make data processing more simple and fluent.
# Install
```shell
pip install lk-utils
```lk-utils requires python 3.8 or higher version.
# Usage
## subproc
### new thread decorator
```python
from lk_utils import new_threaddef 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
```python
from lk_utils import new_threaddef 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
```python
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:
```python
from lk_utils import run_cmd_argsdef 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
```python
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
```python
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
```python
from lk_utils import filesniff as fsfor 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
```python
from lk_utils import read_and_write as rwdata_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
```python
from lk_utils import excel as exlreader = exl.ExcelReader(file_i)
# accepts '.xls' and '.xlsx' files.
... # TODO:CompleteExamplewriter = exl.ExcelWriter(file_o)
# accepts only '.xlsx' files.
... # TODO:CompleteExample
writer.save()```
## nlp
*TODO*