Skip to main content

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

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

If you're not sure about the file name format, learn more about wheel file names.

lk_utils-3.7.5-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

Details for the file lk_utils-3.7.5-py3-none-any.whl.

File metadata

  • Download URL: lk_utils-3.7.5-py3-none-any.whl
  • Upload date:
  • Size: 48.5 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for lk_utils-3.7.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2c0f31724f4bad68c6dcbb8bd46c257cb007e3e99641cde34e61ecbbc5f7069c
MD5 dfc89160815b1991368cf9997379422b
BLAKE2b-256 b5d0e7122e8acc72ab4ac6a3ca1c87b98ba30a8bdf79692c4929c12662e5c51b

See more details on using hashes here.

Release history Release notifications | RSS feed

3.8.0

1 file

This release

3.7.5 This release

1 file

3.7.4

1 file

3.7.3

1 file

3.7.2

1 file

3.7.1

1 file

3.7.0

1 file

3.6.1

1 file

3.6.0

1 file

3.5.2

1 file

3.5.1

1 file

3.5.0

1 file

3.4.3

1 file

3.4.2

1 file

3.4.1

1 file

3.4.0

1 file

3.3.0

1 file

3.2.1

1 file

3.2.0

1 file

3.1.3

1 file

3.1.2

1 file

3.1.1

1 file

3.1.0

1 file

3.0.1

1 file

3.0.0

1 file

2.10.9

1 file

2.10.8

1 file

2.10.7

1 file

2.10.6

1 file

2.10.5

1 file

2.10.4

1 file

2.10.3

1 file

2.10.2

1 file

2.10.1

1 file

2.10.0

1 file

2.9.5

1 file

2.9.4

1 file

2.9.3

1 file

2.9.2

1 file

2.9.1

1 file

2.9.0

1 file

2.8.1

1 file

2.8.0

1 file

2.7.3

1 file

2.7.2

1 file

2.7.1

1 file

2.7.0

1 file

2.6.1

1 file

2.6.0

1 file

2.5.6

1 file

2.5.5

1 file

2.5.4

1 file

2.5.3

1 file

2.5.2

1 file

2.5.1

1 file

2.5.0

1 file

2.4.1

1 file

2.4.0

1 file

2.3.2

2 files

2.3.1

2 files

2.3.0

2 files

2.2.1

2 files

2.2.0

2 files

2.1.3

2 files

2.1.2

2 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

1.4.4

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.1

2 files

1.3.0

2 files

1.2.11

2 files

1.2.10

1 file

1.2.2

2 files

1.1.6

2 files

1.1.5

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page