# Introduction
[![PyPI version](https://img.shields.io/pypi/v/flex-cli.svg)](https://pypi.org/project/flex-cli)
[![Build Status](https://github.com/a42ss/flex-cli/actions/workflows/python-package.yml/badge.svg)](https://github.com/a42ss/flex-cli/actions/workflows/python-package.yml)
[![Coverage badge](https://raw.githubusercontent.com/a42ss/flex-cli/python-coverage-comment-action-data/badge.svg)](https://github.com/a42ss/flex-cli/tree/python-coverage-comment-action-data)
[![CodeQL](https://github.com/a42ss/flex-cli/actions/workflows/codeql-analysis.yml/badge.svg?branch=main)](https://github.com/a42ss/flex-cli/actions/workflows/codeql-analysis.yml)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6480/badge)](https://bestpractices.coreinfrastructure.org/projects/6480)
[![Docs badge](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://flex-cli.readthedocs.io/en/latest)
[![Chat badge](https://img.shields.io/badge/chat-IRC-brightgreen.svg)](https://github.com/a42ss/flex-cli/discussions)
[![License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://flex-cli.readthedocs.io/en/latest)
Local development productivity tools meant to smooth and ease developers day to day work.
It is meant to be cross-platform but for now is tested using MacOs and Ubuntu
## This are few examples
* unified command line interfaces for multiple cli tools
* interactive command line mode
- this act as an interactive wrapper on top of existing cli tools
- also allow extending the existing cli tools with auto-completion, input enhanced wizard or description
- allow switching between command namespaces in the same terminal
* Implement custom CLI tools using Python, fully integrate with all LCLI tool features:
- just write some code class or function and configure them to be wired in application
* use Fire to auto document Python objects, so all you should do is to focus on business logic
# Features
## Fire mode
In fire mode the application allow user to configure a hierarchy of objects that fit its needs for various project.
The user can navigate and execute the hierarchy using Fire library by Google.
"Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object."
https://github.com/google/python-fire
## Interactive mode
Most often during the development process developers are using various tools for various projects.
The interactive mode purpose is to improve productivity by offering auto-completion details on the spot.
This is implemented on top of python cmd package: https://docs.python.org/3/library/cmd.html
# Getting Started
## Installation process
Install from source
```bash
# Using invoke
invoke install
#from project root directory
./install
#or
python3 -m pip install -r requirements.txt
python3 -m pip install . --user
```
## Software dependencies
This is a Python package available as MIT License and is depending on following packages:
* fire https://github.com/google/python-fire/releases
* pinject https://github.com/google/pinject/releases
* PyYAML
* prompt_toolkit
* pyfiglet
* blessings
* tk
* appJar
* jsonschema
## Latest releases
- V-0.2.2 - First released version.
## API references
# Build and Test
## Build
```bash
# Using invoke
invoke build
```
## Test
```bash
# Using invoke
invoke test
invoke coverage
# Using pytest
py.test
pytest --cov=src/lcli/ .
```
# Use cases
[<img src="https://img.youtube.com/vi/L9orYXE1nlU/hqdefault.jpg" width="50%">](https://youtu.be/L9orYXE1nlU)
# Usage
## Configuration
# Author
[George Babarus](https://github.com/georgebabarus)
# Contribute
Feel free to contribute to this project and make developer life essayer:
- by submitting new ideas as a github issue [here](https://github.com/georgebabarus/lcli/issues/new)
- by making pull request with specific bug fixes
- for new features or architectural change please contact [George Babarus](https://github.com/georgebabarus) to avoid double work on any way.
# Useful links
* https://mypy.readthedocs.io/en/latest/generics.html#generics
* https://code-maven.com/interactive-shell-with-cmd-in-python
* https://www.journaldev.com/16140/python-system-command-os-subprocess-call
* https://stackoverflow.com/questions/3262569/validating-a-yaml-document-in-python
* https://github.com/oclif/oclif#-cli-types
* https://medium.com/the-z/getting-started-with-oclif-by-creating-a-todo-cli-app-b3a2649adbcf
* https://opensource.com/article/17/5/4-practical-python-libraries
Raw data
{
"_id": null,
"home_page": "https://github.com/a42ss/flex-docker",
"name": "flex-docker",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "docker-compose,docker,flex-cli,flex-docker,flex-docker-compose",
"author": "George Babarus",
"author_email": "george.babarus@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/89/3c/e86fdbbde16d7273ba98643e6ddb03bdf86d4c54e916ee5d02186cbafb3d/flex_docker-0.2.2.tar.gz",
"platform": null,
"description": "# Introduction\n\n[![PyPI version](https://img.shields.io/pypi/v/flex-cli.svg)](https://pypi.org/project/flex-cli)\n[![Build Status](https://github.com/a42ss/flex-cli/actions/workflows/python-package.yml/badge.svg)](https://github.com/a42ss/flex-cli/actions/workflows/python-package.yml)\n[![Coverage badge](https://raw.githubusercontent.com/a42ss/flex-cli/python-coverage-comment-action-data/badge.svg)](https://github.com/a42ss/flex-cli/tree/python-coverage-comment-action-data)\n[![CodeQL](https://github.com/a42ss/flex-cli/actions/workflows/codeql-analysis.yml/badge.svg?branch=main)](https://github.com/a42ss/flex-cli/actions/workflows/codeql-analysis.yml)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6480/badge)](https://bestpractices.coreinfrastructure.org/projects/6480)\n[![Docs badge](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://flex-cli.readthedocs.io/en/latest)\n[![Chat badge](https://img.shields.io/badge/chat-IRC-brightgreen.svg)](https://github.com/a42ss/flex-cli/discussions)\n[![License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://flex-cli.readthedocs.io/en/latest)\n\n \n\nLocal development productivity tools meant to smooth and ease developers day to day work. \nIt is meant to be cross-platform but for now is tested using MacOs and Ubuntu\n\n## This are few examples\n\n* unified command line interfaces for multiple cli tools\n* interactive command line mode\n\n - this act as an interactive wrapper on top of existing cli tools\n - also allow extending the existing cli tools with auto-completion, input enhanced wizard or description\n - allow switching between command namespaces in the same terminal\n\n* Implement custom CLI tools using Python, fully integrate with all LCLI tool features:\n - just write some code class or function and configure them to be wired in application\n\n* use Fire to auto document Python objects, so all you should do is to focus on business logic\n \n# Features\n\n## Fire mode\n\nIn fire mode the application allow user to configure a hierarchy of objects that fit its needs for various project.\nThe user can navigate and execute the hierarchy using Fire library by Google. \n\"Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.\"\nhttps://github.com/google/python-fire\n\n## Interactive mode\n\nMost often during the development process developers are using various tools for various projects.\nThe interactive mode purpose is to improve productivity by offering auto-completion details on the spot.\nThis is implemented on top of python cmd package: https://docs.python.org/3/library/cmd.html\n\n# Getting Started\n\n## Installation process\n\nInstall from source\n\n```bash\n# Using invoke\ninvoke install\n#from project root directory\n./install\n#or \npython3 -m pip install -r requirements.txt\npython3 -m pip install . --user\n```\n\n## Software dependencies\n\nThis is a Python package available as MIT License and is depending on following packages:\n \n* fire https://github.com/google/python-fire/releases\n* pinject https://github.com/google/pinject/releases\n* PyYAML\n* prompt_toolkit\n* pyfiglet\n* blessings\n* tk\n* appJar\n* jsonschema\n\n## Latest releases\n\n- V-0.2.2 - First released version. \n\n## API references\n\n# Build and Test\n\n## Build\n\n```bash\n# Using invoke\ninvoke build\n```\n\n## Test\n\n```bash\n# Using invoke\ninvoke test\ninvoke coverage\n# Using pytest\npy.test\npytest --cov=src/lcli/ .\n```\n\n# Use cases\n\n[<img src=\"https://img.youtube.com/vi/L9orYXE1nlU/hqdefault.jpg\" width=\"50%\">](https://youtu.be/L9orYXE1nlU)\n\n# Usage\n\n\n## Configuration\n\n# Author\n\n[George Babarus](https://github.com/georgebabarus)\n\n# Contribute\n\nFeel free to contribute to this project and make developer life essayer:\n- by submitting new ideas as a github issue [here](https://github.com/georgebabarus/lcli/issues/new)\n- by making pull request with specific bug fixes\n- for new features or architectural change please contact [George Babarus](https://github.com/georgebabarus) to avoid double work on any way.\n\n# Useful links\n\n* https://mypy.readthedocs.io/en/latest/generics.html#generics\n* https://code-maven.com/interactive-shell-with-cmd-in-python\n* https://www.journaldev.com/16140/python-system-command-os-subprocess-call\n* https://stackoverflow.com/questions/3262569/validating-a-yaml-document-in-python\n* https://github.com/oclif/oclif#-cli-types\n* https://medium.com/the-z/getting-started-with-oclif-by-creating-a-todo-cli-app-b3a2649adbcf\n* https://opensource.com/article/17/5/4-practical-python-libraries\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Flex docker is a utility wrapper around docker and docker-compose commands providing defaults values for projects",
"version": "0.2.2",
"project_urls": {
"Homepage": "https://github.com/a42ss/flex-docker",
"Repository": "https://github.com/a42ss/flex-docker"
},
"split_keywords": [
"docker-compose",
"docker",
"flex-cli",
"flex-docker",
"flex-docker-compose"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3ace9efaeed8dc4ec28654ab1a6d33bd0b8fd41f7b08a49f500d92b784f1b950",
"md5": "a3186a4595f449b3d73b788425371efc",
"sha256": "88bb3f6ac1a3460beff3f9dffdedab53dae5b9fc8f31ca1858b3e2cb2520c7c6"
},
"downloads": -1,
"filename": "flex_docker-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a3186a4595f449b3d73b788425371efc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 6172,
"upload_time": "2023-12-23T20:16:55",
"upload_time_iso_8601": "2023-12-23T20:16:55.246469Z",
"url": "https://files.pythonhosted.org/packages/3a/ce/9efaeed8dc4ec28654ab1a6d33bd0b8fd41f7b08a49f500d92b784f1b950/flex_docker-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "893ce86fdbbde16d7273ba98643e6ddb03bdf86d4c54e916ee5d02186cbafb3d",
"md5": "d7ed08f6e4c089685cb50a3787502fa7",
"sha256": "2a4306fb826b9792af4065e24883e666a79917afd99e7437807c6289a09ca8b0"
},
"downloads": -1,
"filename": "flex_docker-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "d7ed08f6e4c089685cb50a3787502fa7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 4987,
"upload_time": "2023-12-23T20:16:57",
"upload_time_iso_8601": "2023-12-23T20:16:57.234990Z",
"url": "https://files.pythonhosted.org/packages/89/3c/e86fdbbde16d7273ba98643e6ddb03bdf86d4c54e916ee5d02186cbafb3d/flex_docker-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-23 20:16:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "a42ss",
"github_project": "flex-docker",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "flex-docker"
}