summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-29 10:14:30 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-29 10:14:30 +0000
commit92199f7e364893e31bb1ef9db2bbc3ea9af78ca5 (patch)
treeff35eaa234bcf893378f329208885358d305f5b6
parentba30b31463c8aa4e27b67846597554100492cbbd (diff)
automatic import of python-kcliutils
-rw-r--r--.gitignore1
-rw-r--r--python-kcliutils.spec1537
-rw-r--r--sources1
3 files changed, 1539 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..69ff84a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/kcliutils-0.1.12.tar.gz
diff --git a/python-kcliutils.spec b/python-kcliutils.spec
new file mode 100644
index 0000000..d8c46dd
--- /dev/null
+++ b/python-kcliutils.spec
@@ -0,0 +1,1537 @@
+%global _empty_manifest_terminate_build 0
+Name: python-kcliutils
+Version: 0.1.12
+Release: 1
+Summary: kcliutils
+License: MIT License
+URL: https://github.com/kkristof200/py_cli_utils
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f5/bf/927ecfff0497974a37e1059894da76b33fd4f3f361baeea6b6b1c7775497/kcliutils-0.1.12.tar.gz
+BuildArch: noarch
+
+Requires: python3-bullet
+Requires: python3-jsoncodable
+Requires: python3-kcu
+Requires: python3-kdependencies
+
+%description
+# kcliutils
+
+![PyPI - package version](https://img.shields.io/pypi/v/kcliutils?logo=pypi&style=flat-square)
+![PyPI - license](https://img.shields.io/pypi/l/kcliutils?label=package%20license&style=flat-square)
+![PyPI - python version](https://img.shields.io/pypi/pyversions/kcliutils?logo=pypi&style=flat-square)
+![PyPI - downloads](https://img.shields.io/pypi/dm/kcliutils?logo=pypi&style=flat-square)
+
+![GitHub - last commit](https://img.shields.io/github/last-commit/kkristof200/py_cli_utils?style=flat-square)
+![GitHub - commit activity](https://img.shields.io/github/commit-activity/m/kkristof200/py_cli_utils?style=flat-square)
+
+![GitHub - code size in bytes](https://img.shields.io/github/languages/code-size/kkristof200/py_cli_utils?style=flat-square)
+![GitHub - repo size](https://img.shields.io/github/repo-size/kkristof200/py_cli_utils?style=flat-square)
+![GitHub - lines of code](https://img.shields.io/tokei/lines/github/kkristof200/py_cli_utils?style=flat-square)
+
+![GitHub - license](https://img.shields.io/github/license/kkristof200/py_cli_utils?label=repo%20license&style=flat-square)
+
+## Description
+
+Python cli utils for faster development
+
+## Install
+
+~~~~bash
+pip install kcliutils
+# or
+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.
+
+~~~~shell
+# cd to desired folder with .git in it
+
+npp package_name
+# or
+new_python_package package_name
+~~~~
+
+`npp test_package_name` will generate
+
+![npp result](https://i.imgur.com/3UUMDjY.png)
+
+#### 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.
+
+~~~~shell
+# 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
+
+~~~~shell
+# 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)
+
+~~~~shell
+# 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
+
+~~~~shell
+# cd to desired folder
+
+cl
+# or
+clean_lines
+~~~~
+
+
+#### migrate_comment_line_len
+ - Updates the lengh of each separator comment line generated with the file generators from this package.
+
+~~~~shell
+# 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
+
+~~~~shell
+# cd to desired folder
+
+psh "Optional commit message"
+# or
+push "Optional commit message"
+~~~~
+
+
+#### ftch/fetch
+ - git fetch
+
+~~~~shell
+# cd to desired folder
+
+ftch
+# or
+fetch
+~~~~
+
+
+#### pll/pull
+ - git pull
+
+~~~~shell
+# cd to desired folder
+
+pll
+# or
+pull
+~~~~
+
+
+### 4. Pip
+
+
+#### pipu/pip_uninstall
+ - pip uninstall
+
+~~~~shell
+pipu PACKAGE_NAME
+# or
+pip_uninstall PACKAGE_NAME
+~~~~
+
+
+#### pipi/pipiu/pip_install
+ - pip install -U
+
+~~~~shell
+pipi PACKAGE_NAME
+# or
+pipiu PACKAGE_NAME
+# or
+pip_install PACKAGE_NAME
+~~~~
+
+
+#### pipir/pip_reinstall
+ - pip uninstall && pip install
+
+~~~~shell
+pipir PACKAGE_NAME
+# or
+pip_reinstall PACKAGE_NAME
+~~~~
+
+
+### 5. New files
+
+#### pyreqs/python_requirements
+ - creates a requirements.txt file with all the used dependencies
+
+~~~~shell
+pyreqs
+# creates 'requirements.txt'
+# or
+python_requirements
+~~~~
+
+
+#### pif/create_python_install_file
+ - creates an install_dependencies.sh file with all the used dependencies
+
+~~~~shell
+pif
+# creates 'install_dependencies.sh'
+# or
+create_python_install_file
+~~~~
+
+
+#### npc/new_python_class
+ - creates a python file with a class-like formatting
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+
+
+# Pip
+
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# -------------------------------------- class: TestClass -------------------------------------- #
+
+class TestClass:
+
+ # ---------------------------------------- Init ---------------------------------------- #
+
+ def __init__(
+ self
+ ):
+ return
+
+
+ # ---------------------------------- Public properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Public methods ----------------------------------- #
+
+
+
+
+ # --------------------------------- Private properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Private methods ---------------------------------- #
+
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npa/new_python_api
+ - creates a python file with a api-like formatting (conforming [ksimpleapi](https://github.com/kkristof200/py_simpleapi))
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+from typing import Optional, Dict
+
+# Pip
+from ksimpleapi import Api
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# --------------------------------------- class: FileName -------------------------------------- #
+
+class FileName(Api):
+
+# -------------------------------------- Overrides ------------------------------------- #
+
+ @classmethod
+ def extra_headers(cls) -> Optional[Dict[str, any]]:
+ return {
+
+ }
+
+
+ # ---------------------------------- Public properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Public methods ----------------------------------- #
+
+
+
+
+ # --------------------------------- Private properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Private methods ---------------------------------- #
+
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npe/new_python_enum
+ - creates a python file with a enum-like formatting
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+from enum import Enum
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# --------------------------------------- enum: FileName --------------------------------------- #
+
+class FileName(Enum):
+ Template = 0
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npf/new_python_file
+ - creates a python file with a default file formatting
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+
+
+# Pip
+
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# ----------------------------------------- Public vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------- Private vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------- Private vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------- Private vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npfl/new_python_flow
+ - creates a python file with a flow-like formatting (check example)
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+
+
+# Pip
+
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# ------------------------------------------- Methods ------------------------------------------ #
+
+
+
+# -------------------------------------------- Paths ------------------------------------------- #
+
+
+
+
+# -------------------------------------------- Vars -------------------------------------------- #
+
+
+
+
+# -------------------------------------------- Flow -------------------------------------------- #
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### nps/new_python_subpackage
+ - creates a new subpackage at the desired relative path
+
+~~~~shell
+nps SUB_PACKAGE_NAME_OR_RELATIVE_PATH
+# or
+new_python_subpackage SUB_PACKAGE_NAME_OR_RELATIVE_PATH
+~~~~
+
+`nps test_subpackage` will generate
+
+![nps result](https://i.imgur.com/xNOBPPg.png)
+
+## Dependencies
+
+[bullet](https://pypi.org/project/bullet), [jsoncodable](https://pypi.org/project/jsoncodable), [kcu](https://pypi.org/project/kcu), [kdependencies](https://pypi.org/project/kdependencies)
+
+
+
+%package -n python3-kcliutils
+Summary: kcliutils
+Provides: python-kcliutils
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-kcliutils
+# kcliutils
+
+![PyPI - package version](https://img.shields.io/pypi/v/kcliutils?logo=pypi&style=flat-square)
+![PyPI - license](https://img.shields.io/pypi/l/kcliutils?label=package%20license&style=flat-square)
+![PyPI - python version](https://img.shields.io/pypi/pyversions/kcliutils?logo=pypi&style=flat-square)
+![PyPI - downloads](https://img.shields.io/pypi/dm/kcliutils?logo=pypi&style=flat-square)
+
+![GitHub - last commit](https://img.shields.io/github/last-commit/kkristof200/py_cli_utils?style=flat-square)
+![GitHub - commit activity](https://img.shields.io/github/commit-activity/m/kkristof200/py_cli_utils?style=flat-square)
+
+![GitHub - code size in bytes](https://img.shields.io/github/languages/code-size/kkristof200/py_cli_utils?style=flat-square)
+![GitHub - repo size](https://img.shields.io/github/repo-size/kkristof200/py_cli_utils?style=flat-square)
+![GitHub - lines of code](https://img.shields.io/tokei/lines/github/kkristof200/py_cli_utils?style=flat-square)
+
+![GitHub - license](https://img.shields.io/github/license/kkristof200/py_cli_utils?label=repo%20license&style=flat-square)
+
+## Description
+
+Python cli utils for faster development
+
+## Install
+
+~~~~bash
+pip install kcliutils
+# or
+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.
+
+~~~~shell
+# cd to desired folder with .git in it
+
+npp package_name
+# or
+new_python_package package_name
+~~~~
+
+`npp test_package_name` will generate
+
+![npp result](https://i.imgur.com/3UUMDjY.png)
+
+#### 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.
+
+~~~~shell
+# 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
+
+~~~~shell
+# 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)
+
+~~~~shell
+# 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
+
+~~~~shell
+# cd to desired folder
+
+cl
+# or
+clean_lines
+~~~~
+
+
+#### migrate_comment_line_len
+ - Updates the lengh of each separator comment line generated with the file generators from this package.
+
+~~~~shell
+# 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
+
+~~~~shell
+# cd to desired folder
+
+psh "Optional commit message"
+# or
+push "Optional commit message"
+~~~~
+
+
+#### ftch/fetch
+ - git fetch
+
+~~~~shell
+# cd to desired folder
+
+ftch
+# or
+fetch
+~~~~
+
+
+#### pll/pull
+ - git pull
+
+~~~~shell
+# cd to desired folder
+
+pll
+# or
+pull
+~~~~
+
+
+### 4. Pip
+
+
+#### pipu/pip_uninstall
+ - pip uninstall
+
+~~~~shell
+pipu PACKAGE_NAME
+# or
+pip_uninstall PACKAGE_NAME
+~~~~
+
+
+#### pipi/pipiu/pip_install
+ - pip install -U
+
+~~~~shell
+pipi PACKAGE_NAME
+# or
+pipiu PACKAGE_NAME
+# or
+pip_install PACKAGE_NAME
+~~~~
+
+
+#### pipir/pip_reinstall
+ - pip uninstall && pip install
+
+~~~~shell
+pipir PACKAGE_NAME
+# or
+pip_reinstall PACKAGE_NAME
+~~~~
+
+
+### 5. New files
+
+#### pyreqs/python_requirements
+ - creates a requirements.txt file with all the used dependencies
+
+~~~~shell
+pyreqs
+# creates 'requirements.txt'
+# or
+python_requirements
+~~~~
+
+
+#### pif/create_python_install_file
+ - creates an install_dependencies.sh file with all the used dependencies
+
+~~~~shell
+pif
+# creates 'install_dependencies.sh'
+# or
+create_python_install_file
+~~~~
+
+
+#### npc/new_python_class
+ - creates a python file with a class-like formatting
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+
+
+# Pip
+
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# -------------------------------------- class: TestClass -------------------------------------- #
+
+class TestClass:
+
+ # ---------------------------------------- Init ---------------------------------------- #
+
+ def __init__(
+ self
+ ):
+ return
+
+
+ # ---------------------------------- Public properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Public methods ----------------------------------- #
+
+
+
+
+ # --------------------------------- Private properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Private methods ---------------------------------- #
+
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npa/new_python_api
+ - creates a python file with a api-like formatting (conforming [ksimpleapi](https://github.com/kkristof200/py_simpleapi))
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+from typing import Optional, Dict
+
+# Pip
+from ksimpleapi import Api
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# --------------------------------------- class: FileName -------------------------------------- #
+
+class FileName(Api):
+
+# -------------------------------------- Overrides ------------------------------------- #
+
+ @classmethod
+ def extra_headers(cls) -> Optional[Dict[str, any]]:
+ return {
+
+ }
+
+
+ # ---------------------------------- Public properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Public methods ----------------------------------- #
+
+
+
+
+ # --------------------------------- Private properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Private methods ---------------------------------- #
+
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npe/new_python_enum
+ - creates a python file with a enum-like formatting
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+from enum import Enum
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# --------------------------------------- enum: FileName --------------------------------------- #
+
+class FileName(Enum):
+ Template = 0
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npf/new_python_file
+ - creates a python file with a default file formatting
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+
+
+# Pip
+
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# ----------------------------------------- Public vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------- Private vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------- Private vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------- Private vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npfl/new_python_flow
+ - creates a python file with a flow-like formatting (check example)
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+
+
+# Pip
+
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# ------------------------------------------- Methods ------------------------------------------ #
+
+
+
+# -------------------------------------------- Paths ------------------------------------------- #
+
+
+
+
+# -------------------------------------------- Vars -------------------------------------------- #
+
+
+
+
+# -------------------------------------------- Flow -------------------------------------------- #
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### nps/new_python_subpackage
+ - creates a new subpackage at the desired relative path
+
+~~~~shell
+nps SUB_PACKAGE_NAME_OR_RELATIVE_PATH
+# or
+new_python_subpackage SUB_PACKAGE_NAME_OR_RELATIVE_PATH
+~~~~
+
+`nps test_subpackage` will generate
+
+![nps result](https://i.imgur.com/xNOBPPg.png)
+
+## Dependencies
+
+[bullet](https://pypi.org/project/bullet), [jsoncodable](https://pypi.org/project/jsoncodable), [kcu](https://pypi.org/project/kcu), [kdependencies](https://pypi.org/project/kdependencies)
+
+
+
+%package help
+Summary: Development documents and examples for kcliutils
+Provides: python3-kcliutils-doc
+%description help
+# kcliutils
+
+![PyPI - package version](https://img.shields.io/pypi/v/kcliutils?logo=pypi&style=flat-square)
+![PyPI - license](https://img.shields.io/pypi/l/kcliutils?label=package%20license&style=flat-square)
+![PyPI - python version](https://img.shields.io/pypi/pyversions/kcliutils?logo=pypi&style=flat-square)
+![PyPI - downloads](https://img.shields.io/pypi/dm/kcliutils?logo=pypi&style=flat-square)
+
+![GitHub - last commit](https://img.shields.io/github/last-commit/kkristof200/py_cli_utils?style=flat-square)
+![GitHub - commit activity](https://img.shields.io/github/commit-activity/m/kkristof200/py_cli_utils?style=flat-square)
+
+![GitHub - code size in bytes](https://img.shields.io/github/languages/code-size/kkristof200/py_cli_utils?style=flat-square)
+![GitHub - repo size](https://img.shields.io/github/repo-size/kkristof200/py_cli_utils?style=flat-square)
+![GitHub - lines of code](https://img.shields.io/tokei/lines/github/kkristof200/py_cli_utils?style=flat-square)
+
+![GitHub - license](https://img.shields.io/github/license/kkristof200/py_cli_utils?label=repo%20license&style=flat-square)
+
+## Description
+
+Python cli utils for faster development
+
+## Install
+
+~~~~bash
+pip install kcliutils
+# or
+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.
+
+~~~~shell
+# cd to desired folder with .git in it
+
+npp package_name
+# or
+new_python_package package_name
+~~~~
+
+`npp test_package_name` will generate
+
+![npp result](https://i.imgur.com/3UUMDjY.png)
+
+#### 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.
+
+~~~~shell
+# 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
+
+~~~~shell
+# 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)
+
+~~~~shell
+# 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
+
+~~~~shell
+# cd to desired folder
+
+cl
+# or
+clean_lines
+~~~~
+
+
+#### migrate_comment_line_len
+ - Updates the lengh of each separator comment line generated with the file generators from this package.
+
+~~~~shell
+# 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
+
+~~~~shell
+# cd to desired folder
+
+psh "Optional commit message"
+# or
+push "Optional commit message"
+~~~~
+
+
+#### ftch/fetch
+ - git fetch
+
+~~~~shell
+# cd to desired folder
+
+ftch
+# or
+fetch
+~~~~
+
+
+#### pll/pull
+ - git pull
+
+~~~~shell
+# cd to desired folder
+
+pll
+# or
+pull
+~~~~
+
+
+### 4. Pip
+
+
+#### pipu/pip_uninstall
+ - pip uninstall
+
+~~~~shell
+pipu PACKAGE_NAME
+# or
+pip_uninstall PACKAGE_NAME
+~~~~
+
+
+#### pipi/pipiu/pip_install
+ - pip install -U
+
+~~~~shell
+pipi PACKAGE_NAME
+# or
+pipiu PACKAGE_NAME
+# or
+pip_install PACKAGE_NAME
+~~~~
+
+
+#### pipir/pip_reinstall
+ - pip uninstall && pip install
+
+~~~~shell
+pipir PACKAGE_NAME
+# or
+pip_reinstall PACKAGE_NAME
+~~~~
+
+
+### 5. New files
+
+#### pyreqs/python_requirements
+ - creates a requirements.txt file with all the used dependencies
+
+~~~~shell
+pyreqs
+# creates 'requirements.txt'
+# or
+python_requirements
+~~~~
+
+
+#### pif/create_python_install_file
+ - creates an install_dependencies.sh file with all the used dependencies
+
+~~~~shell
+pif
+# creates 'install_dependencies.sh'
+# or
+create_python_install_file
+~~~~
+
+
+#### npc/new_python_class
+ - creates a python file with a class-like formatting
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+
+
+# Pip
+
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# -------------------------------------- class: TestClass -------------------------------------- #
+
+class TestClass:
+
+ # ---------------------------------------- Init ---------------------------------------- #
+
+ def __init__(
+ self
+ ):
+ return
+
+
+ # ---------------------------------- Public properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Public methods ----------------------------------- #
+
+
+
+
+ # --------------------------------- Private properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Private methods ---------------------------------- #
+
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npa/new_python_api
+ - creates a python file with a api-like formatting (conforming [ksimpleapi](https://github.com/kkristof200/py_simpleapi))
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+from typing import Optional, Dict
+
+# Pip
+from ksimpleapi import Api
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# --------------------------------------- class: FileName -------------------------------------- #
+
+class FileName(Api):
+
+# -------------------------------------- Overrides ------------------------------------- #
+
+ @classmethod
+ def extra_headers(cls) -> Optional[Dict[str, any]]:
+ return {
+
+ }
+
+
+ # ---------------------------------- Public properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Public methods ----------------------------------- #
+
+
+
+
+ # --------------------------------- Private properties --------------------------------- #
+
+
+
+
+ # ----------------------------------- Private methods ---------------------------------- #
+
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npe/new_python_enum
+ - creates a python file with a enum-like formatting
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+from enum import Enum
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# --------------------------------------- enum: FileName --------------------------------------- #
+
+class FileName(Enum):
+ Template = 0
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npf/new_python_file
+ - creates a python file with a default file formatting
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+
+
+# Pip
+
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# ----------------------------------------- Public vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------- Private vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------- Private vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------- Private vars ---------------------------------------- #
+
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### npfl/new_python_flow
+ - creates a python file with a flow-like formatting (check example)
+
+~~~~shell
+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
+~~~~python
+# ------------------------------------------- Imports ------------------------------------------ #
+
+# System
+
+
+# Pip
+
+
+# Local
+
+
+# ---------------------------------------------------------------------------------------------- #
+
+
+
+# ------------------------------------------- Methods ------------------------------------------ #
+
+
+
+# -------------------------------------------- Paths ------------------------------------------- #
+
+
+
+
+# -------------------------------------------- Vars -------------------------------------------- #
+
+
+
+
+# -------------------------------------------- Flow -------------------------------------------- #
+
+
+
+# ---------------------------------------------------------------------------------------------- #
+~~~~
+
+
+#### nps/new_python_subpackage
+ - creates a new subpackage at the desired relative path
+
+~~~~shell
+nps SUB_PACKAGE_NAME_OR_RELATIVE_PATH
+# or
+new_python_subpackage SUB_PACKAGE_NAME_OR_RELATIVE_PATH
+~~~~
+
+`nps test_subpackage` will generate
+
+![nps result](https://i.imgur.com/xNOBPPg.png)
+
+## Dependencies
+
+[bullet](https://pypi.org/project/bullet), [jsoncodable](https://pypi.org/project/jsoncodable), [kcu](https://pypi.org/project/kcu), [kdependencies](https://pypi.org/project/kdependencies)
+
+
+
+%prep
+%autosetup -n kcliutils-0.1.12
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-kcliutils -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.12-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..b6725b5
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+5a6e6c36abefe6d7a90bc12fabf00a61 kcliutils-0.1.12.tar.gz