Skip to main content

LK Utils is a set of utility wrappers made for data processing.

Project description

LK Utils

lk-utils is a set of utility wrappers to make data processing more simple and fluent.

Install

pip install lk-utils

the default pip install doesn't include extra dependencies. to get extra support for excel or nlp processing, pip install this:

pip install lk-utils  # to add lk-logger (required dependency)
pip install lk-utils[exl]  # to add lk-logger, xlrd, xlsxwriter
pip install lk-utils[nlp]  # to add lk-logger, pypinyin
pip install lk-utils[all]  # to add all of the above

lk-utils requires Python 3.8 or higher version.

Usage

subproc

new thread decorator

from lk_utils.subproc import new_thread

@new_thread(daemon=True, singleton=False)
def background_loop():
    from time import sleep
    i = 0
    while i < 10:
        i += 1
        print(i)
        sleep(1)

x = background_loop()
print(type(x))  # -> threading.Thread

run in new thread

from lk_utils.subproc import run_new_thread

def background_loop():
    from time import sleep
    i = 0
    while i < 10:
        i += 1
        print(i)
        sleep(1)

x = run_new_thread(background_loop, args=None, kwargs=None, daemon=True)
print(type(x))  # -> threading.Thread

run cmd args

from lk_utils.subproc import run_cmd_shell, run_cmd_args
run_cmd_shell('python -m pip list')
run_cmd_args('python', '-m', 'pip', 'list')

mklink, mklinks

"""
example structure:
    |= from_dir
       |= folder_xxx
       |- file_xxx.txt
    |= to_dir_1    # empty
    |= to_dir_2    # not empty
       |- ...
"""

from lk_utils.subproc import mklink, mklinks
mklink('/from_dir', '/to_dir_1')
mklinks('/from_dir', '/to_dir_2')

"""
result:
    |= from_dir
       |= folder_xxx
       |- file_xxx.txt
    |= to_dir_1         # this is a symlink
    |= to_dir_2
       |- ...
       |= folder_xxx    # this is a symlink
       |- file_xxx.txt  # this is a symlink
"""

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lk-utils-2.3.2.tar.gz (104.5 kB view details)

Uploaded Source

Built Distribution

lk_utils-2.3.2-py3-none-any.whl (116.4 kB view details)

Uploaded Python 3

File details

Details for the file lk-utils-2.3.2.tar.gz.

File metadata

  • Download URL: lk-utils-2.3.2.tar.gz
  • Upload date:
  • Size: 104.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.0 Windows/10

File hashes

Hashes for lk-utils-2.3.2.tar.gz
Algorithm Hash digest
SHA256 5d3380904693228db538c163b79f5f86aab1192e1eef67dfdd0625fdc403b78e
MD5 7b27bab237ec023c6abbcd3f317b8401
BLAKE2b-256 d12da5c840ed00f128ab87242282c12c22ce8094e085e147c54a0ad40b4c83cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lk_utils-2.3.2-py3-none-any.whl
  • Upload date:
  • Size: 116.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.0 Windows/10

File hashes

Hashes for lk_utils-2.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e8398ce7468efe233342faf558037f6f1a4c4335db612b9c0a9b755823c68a02
MD5 436dc241e633cba8cbc1c162636d6cf6
BLAKE2b-256 8a659b4a9403839f4360f496076e426931e2e52ba8614665bb3c2f4f5df10039

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page