kcliutils
Description
Python cli utils for faster development
Install
pip install kcliutils
pip3 install kcliutils
How to use
1. Package related
npp/new_python_package
- Run in an empty folder with git checked out
- Creates a new empty package, with default files, such as .gitignore, README.md, setup.py, demo.py, LICENSE, etc.
# cd to desired folder with .git in it
npp package_name
# or
new_python_package package_name
npp test_package_name
will generate
upp/upgrade_python_package
- Run in an already existing project folder
- Updates setup.py with dependencies, bumps version number
- Updates install_dependencies.sh and requirements.txt
- Updates readme with dependencies, copies the contents of 'demo.py' to the usage section of the reeadme
- NOTE: to make this work properly, the packege had to be created with npp.
# cd to desired folder with .git in it
upp
# or
upgrade_python_package
ppp/publish_python_package
- Calls upp, publishes to pypi and installs the new version
# cd to desired folder with .git in it
ppp "Optional commit message"
# or
publish_python_package "Optional commit message"
prpipush/upgrade_push_install
- Same as ppp, but without publishing on pypi (for private, github-hosted packages)
# cd to desired folder with .git in it
prpipush "Optional commit message"
# or
upgrade_push_install "Optional commit message"
2. Formatting
cl/clean_lines
- Cleans the ending useless spaces from every line
# cd to desired folder
cl
# or
clean_lines
- Updates the lengh of each separator comment line generated with the file generators from this package.
# cd to desired folder
migrate_comment_line_len Optional_length_which_defaults_to_your_settings
3. Git
psh/push
- stages/commits everything and pushes to github
# cd to desired folder
psh "Optional commit message"
# or
push "Optional commit message"
ftch/fetch
# cd to desired folder
ftch
# or
fetch
pll/pull
# cd to desired folder
pll
# or
pull
4. Pip
pipu/pip_uninstall
pipu PACKAGE_NAME
# or
pip_uninstall PACKAGE_NAME
pipi/pipiu/pip_install
pipi PACKAGE_NAME
# or
pipiu PACKAGE_NAME
# or
pip_install PACKAGE_NAME
pipir/pip_reinstall
- pip uninstall && pip install
pipir PACKAGE_NAME
# or
pip_reinstall PACKAGE_NAME
5. New files
pyreqs/python_requirements
- creates a requirements.txt file with all the used dependencies
pyreqs
# creates 'requirements.txt'
# or
python_requirements
pif/create_python_install_file
- creates an install_dependencies.sh file with all the used dependencies
pif
# creates 'install_dependencies.sh'
# or
create_python_install_file
npc/new_python_class
- creates a python file with a class-like formatting
npc file_name
# creates 'file_name.py' class 'FileName' in it
# also accepts relative path 'relative/path/to/file_name'
# or
new_python_class file_name
generated file contents
class TestClass:
def __init__(
self
):
return
npa/new_python_api
- creates a python file with a api-like formatting (conforming ksimpleapi)
npa file_name
# creates 'file_name.py' class 'FileName' in it
# also accepts relative path 'relative/path/to/file_name'
# or
new_python_api file_name
generated file contents
from typing import Optional, Dict
from ksimpleapi import Api
class FileName(Api):
@classmethod
def extra_headers(cls) -> Optional[Dict[str, any]]:
return {
}
npe/new_python_enum
- creates a python file with a enum-like formatting
npe file_name
# creates 'file_name.py' enum 'FileName' in it
# also accepts relative path 'relative/path/to/file_name'
# or
new_python_enum file_name
generated file contents
from enum import Enum
class FileName(Enum):
Template = 0
npf/new_python_file
- creates a python file with a default file formatting
npf file_name
# creates 'file_name.py'
# also accepts relative path 'relative/path/to/file_name'
# or
new_python_file file_name
generated file contents
npfl/new_python_flow
- creates a python file with a flow-like formatting (check example)
npfl file_name
# creates 'file_name.py'
# also accepts relative path 'relative/path/to/file_name'
# or
new_python_flow file_name
generated file contents
nps/new_python_subpackage
- creates a new subpackage at the desired relative path
nps SUB_PACKAGE_NAME_OR_RELATIVE_PATH
# or
new_python_subpackage SUB_PACKAGE_NAME_OR_RELATIVE_PATH
nps test_subpackage
will generate
Dependencies
bullet, jsoncodable, kcu, kdependencies