Name | slim-cli JSON |
Version |
0.0.7
JSON |
| download |
home_page | None |
Summary | Automation of the application of software lifecycle best practices to your GitHub repositories |
upload_time | 2025-03-19 03:56:56 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.7 |
license | Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
Copyright (c) 2022 California Institute of Technology ("Caltech").
U.S. Government sponsorship acknowledged.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided
that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and
the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
and the following disclaimer in the documentation and/or other materials provided with the
distribution.
* Neither the name of Caltech nor its operating division, the Jet Propulsion Laboratory, nor the
names of its contributors may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. |
keywords |
ammos
automation
development
nasa
practice
slim
software
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<hr>
<div align="center">
<h1 align="center">SLIM CLI Tool</h1>
</div>
<pre align="center">Automate the application of best practices to your git repositories</pre>
<!-- Header block for project -->
[](https://nasa-ammos.github.io/slim/)
<!-- ☝️ Add badges via: https://shields.io e.g.  ☝️ -->
<img width="1242" alt="slim-cli-screen" src="https://github.com/user-attachments/assets/5a38e016-04ea-4e4d-b2b8-5e443367c899">
SLIM CLI is a command-line tool designed to infuse SLIM best practices seamlessly with your development workflow. It fetches and applies structured SLIM best practices directly into your Git repositories. The tool leverages artificial intelligence capabilities to customize and tailor the application of SLIM best practices based on your repository's specifics.
[Website](https://nasa-ammos.github.io/slim/) | [Docs/Wiki](https://nasa-ammos.github.io/slim/docs) | [Discussion Board](https://nasa-ammos.github.io/slim/forum) | [Issue Tracker](https://github.com/NASA-AMMOS/slim-cli/issues)
## Features
- Command-line interface for applying SLIM best practices into Git development workflows.
- Fetches the latest SLIM best practices dynamically from SLIM's registry.
- Allows customization of best practices using advanced AI models before applying them to repositories.
- Deploys, or git adds, commits, and pushes changes to your repository's remote.
## Contents
- [Features](#features)
- [Contents](#contents)
- [Quick Start](#quick-start)
- [Requirements](#requirements)
- [Setup Instructions](#setup-instructions)
- [Run Instructions](#run-instructions)
- [Generate Docusaurus documentation](#generate-docusaurus-documentation)
- [Basic Usage](#basic-usage)
- [AI-Enhanced Documentation](#ai-enhanced-documentation)
- [Generated Content](#generated-content)
- [Integration with Docusaurus](#integration-with-docusaurus)
- [Unit Test Generation](#unit-test-generation)
- [Features](#features-1)
- [Usage](#usage)
- [Options](#options)
- [Naming Conventions](#naming-conventions)
- [Generated Test Structure](#generated-test-structure)
- [Running the CLI Locally](#running-the-cli-locally)
- [Basic Usage](#basic-usage-1)
- [Examples](#examples)
- [Changelog](#changelog)
- [Frequently Asked Questions (FAQ)](#frequently-asked-questions-faq)
- [Contributing](#contributing)
- [Local Development](#local-development)
- [Running Tests](#running-tests)
- [Publishing a New Version](#publishing-a-new-version)
- [License](#license)
- [Support](#support)
## Quick Start
This guide provides a quick way to get started with our project. Please see our [docs](https://nasa-ammos.github.io/slim/docs) for a more comprehensive overview.
### Requirements
* Python 3.7+
* Git
* `.env` file to properly configure the environment for Azure and OpenAI APIs
```bash
# .env for Azure
AZURE_TENANT_ID=<Your-Azure-Tenant-ID>
AZURE_CLIENT_ID=<Your-Azure-Client-ID>
AZURE_CLIENT_SECRET=<Your-Azure-Client-Secret>
API_ENDPOINT=<Your-Azure-OpenAI-API-Endpoint>
API_VERSION=<Azure-OpenAI-API-Version>
APIM_SUBSCRIPTION_KEY=<Your-Azure-Subscription-Key>
```
```bash
# .env for OpenAI
OPENAI_API_KEY=<Your-OpenAI-API-Key>
```
* **Steps to use `ollama/llama3.3` as the local AI model:**
1. **Download and Install `ollama`:**
Visit the [official Ollama website](https://ollama.com/) to download and install `ollama` for your operating system. Follow the installation instructions provided.
2. **Start the `ollama` Service:**
Launch the `ollama` service to enable local model hosting. Run the following command in your terminal:
```bash
ollama serve
```
3. **Run and Test the Model:**
Verify the `ollama/llama3.3` model is working correctly by running the following command. Note that the first run may take some time to download the model:
```bash
ollama run llama3.3
```
### Setup Instructions
As the SLIM CLI is written in Python, you'll need Python 3.7 or later. Usually, you'll want to create a virtual environment in order to isolate the dependencies of SLIM from other Python-using applications. Install into that environment using `pip`:
pip install slim-cli
This installs the latest SLIM CLI and its dependencies from the [Python Package Index](https://pypi.org/). The new console script `slim` is now ready for use. Confirm by running either:
slim --version
slim --help
To upgrade:
pip install --upgrade slim-cli
Or select a specific version, such as `X.Y.Z`:
pip install slim-cli==X.Y.Z
### Run Instructions
This section provides detailed commands to interact with the SLIM CLI. Each command includes various options that you can specify to tailor the tool's behavior to your needs.
**NOTE:**
To specify a logging level for the app, choose between `DEBUG`, `INFO` (default), `WARNING`, `ERROR`, `CRITICAL`:
```slim --logging DEBUG```
1. **List all available best practices**
- This command lists all best practices fetched from the SLIM registry.
```bash
slim list
```
2. **Apply best practices to repositories**
- This command applies specified best practices to one or more repositories. It supports applying multiple practices simultaneously across multiple repositories, with AI customization options available.
- `--best-practice-ids`: List of best practice IDs to apply.
- `--repo-urls`: List of repository URLs to apply the best practices to; not used if `--repo-dir` is specified.
- `--repo-dir`: Local directory path of the repository where the best practices will be applied.
- `--clone-to-dir`: Path where the repository should be cloned if not present locally. Compatible with `--repo-urls`.
- `--use-ai`: Enables AI features to customize the application of best practices based on the project’s specific needs. Specify the model provider and model name as an argument (e.g., `azure/gpt-4o`).
```bash
slim apply --best-practice-ids SLIM-123 SLIM-456 --repo-urls https://github.com/your-username/your-repo1 https://github.com/your-username/your-repo2
```
- To apply a best practice using AI customization:
```bash
# Apply a specific best practice using AI customization
slim apply --best-practice-ids SLIM-123 --repo-urls https://github.com/your_org/your_repo.git --use-ai <model provider>/<model name>
```
Example usage:
```bash
# Apply and deploy a best practice using Azure's GPT-4o model
slim apply --best-practice-ids SLIM-3.1 --repo-urls https://github.com/riverma/terraformly/ --use-ai azure/gpt-4o
```
```bash
# Apply and deploy a best practice using Ollama's LLaMA 3.1 model
slim apply --best-practice-ids SLIM-3.1 --repo-urls https://github.com/riverma/terraformly/ --use-ai ollama/llama3.3
```
3. **Deploy a best practice**
- After applying best practices, you may want to deploy (commit and push) them to a remote repository.
- `--best-practice-ids`: List of best practice IDs that have been applied and are ready for deployment.
- `--repo-dir`: The local directory of the repository where changes will be committed and pushed.
- `--remote-name`: Specifies the remote name in the git configuration to which the changes will be pushed.
- `--commit-message`: A message describing the changes for the commit.
```bash
slim deploy --best-practice-ids SLIM-123 SLIM-456 --repo-dir /path/to/repo --remote-name origin --commit-message "Apply SLIM best practices"
```
4. **Apply and deploy a best practice**
- Combines the application and deployment of a best practice into one step.
- `--best-practice-ids`: List of best practice IDs to apply and then deploy.
- `--repo-urls`: List of repository URLs for cloning if not already cloned; not used if `--repo-dir` is specified.
- `--repo-dir`: Specifies the directory of the repository where the best practice will be applied and changes committed.
- `--remote-name`: Specifies the remote to which the changes will be pushed. Format should be a GitHub-like URL base. For example `https://github.com/my_github_user`
- `--commit-message`: A message describing the changes for the commit.
- `--use-ai`: If specified, enables AI customization of the best practice before applying. False by default.
```bash
slim apply-deploy --best-practice-ids SLIM-123 --repo-urls https://github.com/your-username/your-repo1 https://github.com/your-username/your-repo2 --remote-name origin --commit-message "Integrated SLIM best practice with AI customization"
```
Example output:
```
AI features disabled
Applied best practice SLIM-123 and committed to branch slim-123
Pushed changes to remote origin on branch slim-123
```
Each command can be modified with additional flags as needed for more specific tasks or environments.
### Generate Docusaurus documentation
The SLIM CLI includes a website generator that can automatically create [Docusaurus](https://docusaurus.io/) documentation from your repository content. This feature can analyze your codebase and generate comprehensive documentation including API references and installation guides.
#### Basic Usage
Generate documentation for your repository using:
```bash
python -m jpl.slim.cli generate-docs \
--repo-dir /path/to/your/repo \
--output-dir /path/to/output
```
#### AI-Enhanced Documentation
You can enable AI enhancement of the documentation using supported language models:
```bash
python -m jpl.slim.cli generate-docs \
--repo-dir /path/to/your/repo \
--output-dir /path/to/output \
--use-ai ollama/llama3.3
```
Example usage:
```bash
python -m jpl.slim.cli generate-docs --repo-dir ./hysds --output-dir ./hysds/outputs --use-ai ollama/llama3.3
```
#### Generated Content
The documentation generator creates the following sections:
- **Overview**: Project description, features, and key concepts (from README)
- **Installation**: Setup instructions and prerequisites
- **API Reference**: Auto-generated API documentation from source code
- **Guides**: User guides and tutorials
- **Contributing**: Contributing guidelines
- **Changelog**: Version history and recent changes
- **Deployment**: Deployment instructions and configurations
- **Architecture**: System architecture and design documentation
- **Testing**: Testing documentation and examples
- **Security**: Security considerations and guidelines
#### Integration with Docusaurus
After generating the documentation, follow these steps to view it:
1. Install Docusaurus if you haven't already:
```bash
npx create-docusaurus@latest my-docs classic
```
2. Copy the generated files to your Docusaurus docs directory:
```bash
cp /path/to/output/*.md my-docs/docs/
cp /path/to/output/*.js my-docs/
cp -r /path/to/output/static/* my-docs/static/
```
3. Start the Docusaurus development server:
```bash
cd my-docs
npm start
```
### Unit Test Generation
The slim CLI includes an AI-powered test generation feature that can automatically create unit tests for your codebase. This tool analyzes your source code and generates appropriate test files using testing frameworks for each supported language.
#### Features
- **Multi-Language Support**: Generates tests for Python, JavaScript, TypeScript, Java, C++, and C#
- **Framework-Specific**: Uses appropriate testing frameworks for each language:
- Python: pytest
- JavaScript/TypeScript: Jest
- Java: JUnit
- C++: Google Test
- C#: NUnit
- **Comprehensive Testing**: Generates tests for normal operations, edge cases, and error scenarios
- **Dependency Mocking**: Includes appropriate mocking setup for external dependencies
#### Usage
Generate tests for an entire repository:
```bash
python -m jpl.slim.cli generate-tests --repo-dir ./my-project --output-dir ./my-project/tests
```
#### Options
- `--repo-dir` (Required): Path to your repository directory
- `--output-dir` (Optional): Custom output directory for generated tests
- `--model` (Optional): AI model to use (default: "azure/gpt-4o")
- `--verbose`, `-v` (Optional): Enable detailed logging
#### Naming Conventions
Generated test files follow language-specific conventions:
| Language | Test File Format | Example |
|----------|-----------------|----------|
| Python | `test_*.py` | `test_utils.py` |
| JavaScript | `*.test.js` | `utils.test.js` |
| TypeScript | `*.spec.ts` | `utils.spec.ts` |
| Java | `Test*.java` | `TestUtils.java` |
| C++ | `*_test.cpp` | `utils_test.cpp` |
| C# | `*Tests.cs` | `UtilsTests.cs` |
#### Generated Test Structure
Tests are generated with:
- Appropriate imports and framework setup
- Test class/suite organization
- Setup and teardown methods when needed
- Comprehensive test cases covering:
- Normal operation
- Edge cases
- Error handling
- External dependency mocking
### Running the CLI Locally
The CLI can be run using Python's module syntax.
#### Basic Usage
```bash
python -m jpl.slim.cli [options]
```
#### Examples
1. Apply deployment best practices:
```bash
python -m jpl.slim.cli apply-deploy \
--best-practice-ids SLIM-3.1 \
--repo-urls https://github.com/yunks128/maap-py \
--use-ai azure/gpt-4o
```
## Changelog
See our [CHANGELOG.md](CHANGELOG.md) for a history of our changes.
See our [releases page](https://github.com/NASA-AMMOS/slim-cli/releases) for our key versioned releases.
## Frequently Asked Questions (FAQ)
Questions about our project? Please see our: [FAQ](https://nasa-ammos.github.io/slim/faq)
## Contributing
Interested in contributing to our project? Please see our: [CONTRIBUTING.md](CONTRIBUTING.md)
For guidance on how to interact with our team, please see our code of conduct located at: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
For guidance on our governance approach, including decision-making process and our various roles, please see our governance model at: [GOVERNANCE.md](GOVERNANCE.md)
### Local Development
For local development of SLIM CLI, clone the GitHub repository, create a virtual environment, and then install the package in editable mode into it:
```bash
git clone --quiet https://github.com/NASA-AMMOS/slim-cli.git
cd slim-cli
python3 -m venv .venv
source .venv/bin/activate
pip install --editable .
```
The `slim` console-script is now ready in editable mode; changes you make to the source files under `src` are immediately reflected when run.
### Running Tests
We use `pytest` for testing. The test files are located within the `tests` subdirectory. To run the tests, ensure you are in the root directory of the project (where the `pyproject.toml` or `setup.py` is located) and have `pytest` installed. You can install `pytest` via pip:
```bash
pip install pytest
```
To execute all tests, simply run:
```bash
pytest
```
If you want to run a specific test file, you can specify the path to the test file:
```bash
pytest tests/jpl/slim/test_cli.py
```
This will run all the tests in the specified file. You can also use `pytest` options like `-v` for verbose output or `-s` to see print statements in the output:
```bash
pytest -v -s
```
### Publishing a New Version
To publish a new version of SLIM CLI to the Python Package Index, typically you'll update the `VERSION.txt` file; then do:
```bash
pip install build wheel twine
python3 -m build .
twine upload dist/*
```
(Note: this can and should eventually be automated with GitHub Actions.)
## License
See our: [LICENSE](LICENSE)
## Support
Key points of contact are: [@riverma](https://github.com/riverma) and [@yunks128](https://github.com/yunks128)
Raw data
{
"_id": null,
"home_page": null,
"name": "slim-cli",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "ammos, automation, development, nasa, practice, slim, software",
"author": null,
"author_email": "Rishi Verma <Rishi.Verma@jpl.nasa.gov>, Kyongsik Yun <kyongsik.yun@jpl.nasa.gov>, Sean Kelly <kelly@seankelly.biz>",
"download_url": "https://files.pythonhosted.org/packages/9a/58/d7e967e35782d30b05de5e4a0e5fb75163949009e0e549672d13ab5fa7ec/slim_cli-0.0.7.tar.gz",
"platform": null,
"description": "\n<hr>\n\n<div align=\"center\">\n\n<h1 align=\"center\">SLIM CLI Tool</h1>\n\n</div>\n\n<pre align=\"center\">Automate the application of best practices to your git repositories</pre>\n\n<!-- Header block for project -->\n[](https://nasa-ammos.github.io/slim/)\n<!-- \u261d\ufe0f Add badges via: https://shields.io e.g.  \u261d\ufe0f -->\n\n<img width=\"1242\" alt=\"slim-cli-screen\" src=\"https://github.com/user-attachments/assets/5a38e016-04ea-4e4d-b2b8-5e443367c899\">\n\nSLIM CLI is a command-line tool designed to infuse SLIM best practices seamlessly with your development workflow. It fetches and applies structured SLIM best practices directly into your Git repositories. The tool leverages artificial intelligence capabilities to customize and tailor the application of SLIM best practices based on your repository's specifics.\n\n[Website](https://nasa-ammos.github.io/slim/) | [Docs/Wiki](https://nasa-ammos.github.io/slim/docs) | [Discussion Board](https://nasa-ammos.github.io/slim/forum) | [Issue Tracker](https://github.com/NASA-AMMOS/slim-cli/issues)\n\n## Features\n\n- Command-line interface for applying SLIM best practices into Git development workflows.\n- Fetches the latest SLIM best practices dynamically from SLIM's registry.\n- Allows customization of best practices using advanced AI models before applying them to repositories.\n- Deploys, or git adds, commits, and pushes changes to your repository's remote.\n \n## Contents\n\n- [Features](#features)\n- [Contents](#contents)\n- [Quick Start](#quick-start)\n - [Requirements](#requirements)\n - [Setup Instructions](#setup-instructions)\n - [Run Instructions](#run-instructions)\n - [Generate Docusaurus documentation](#generate-docusaurus-documentation)\n - [Basic Usage](#basic-usage)\n - [AI-Enhanced Documentation](#ai-enhanced-documentation)\n - [Generated Content](#generated-content)\n - [Integration with Docusaurus](#integration-with-docusaurus)\n - [Unit Test Generation](#unit-test-generation)\n - [Features](#features-1)\n - [Usage](#usage)\n - [Options](#options)\n - [Naming Conventions](#naming-conventions)\n - [Generated Test Structure](#generated-test-structure)\n - [Running the CLI Locally](#running-the-cli-locally)\n - [Basic Usage](#basic-usage-1)\n - [Examples](#examples)\n- [Changelog](#changelog)\n- [Frequently Asked Questions (FAQ)](#frequently-asked-questions-faq)\n- [Contributing](#contributing)\n - [Local Development](#local-development)\n - [Running Tests](#running-tests)\n - [Publishing a New Version](#publishing-a-new-version)\n- [License](#license)\n- [Support](#support)\n\n## Quick Start\n\nThis guide provides a quick way to get started with our project. Please see our [docs](https://nasa-ammos.github.io/slim/docs) for a more comprehensive overview.\n\n### Requirements\n\n* Python 3.7+\n* Git\n* `.env` file to properly configure the environment for Azure and OpenAI APIs\n ```bash\n # .env for Azure\n AZURE_TENANT_ID=<Your-Azure-Tenant-ID>\n AZURE_CLIENT_ID=<Your-Azure-Client-ID>\n AZURE_CLIENT_SECRET=<Your-Azure-Client-Secret>\n API_ENDPOINT=<Your-Azure-OpenAI-API-Endpoint>\n API_VERSION=<Azure-OpenAI-API-Version>\n APIM_SUBSCRIPTION_KEY=<Your-Azure-Subscription-Key>\n ```\n ```bash\n # .env for OpenAI\n OPENAI_API_KEY=<Your-OpenAI-API-Key>\n ```\n* **Steps to use `ollama/llama3.3` as the local AI model:**\n 1. **Download and Install `ollama`:** \n Visit the [official Ollama website](https://ollama.com/) to download and install `ollama` for your operating system. Follow the installation instructions provided.\n\n 2. **Start the `ollama` Service:** \n Launch the `ollama` service to enable local model hosting. Run the following command in your terminal:\n ```bash\n ollama serve\n ```\n 3. **Run and Test the Model:** \n Verify the `ollama/llama3.3` model is working correctly by running the following command. Note that the first run may take some time to download the model:\n ```bash\n ollama run llama3.3\n ```\n \n### Setup Instructions\n\nAs the SLIM CLI is written in Python, you'll need Python 3.7 or later. Usually, you'll want to create a virtual environment in order to isolate the dependencies of SLIM from other Python-using applications. Install into that environment using `pip`:\n\n pip install slim-cli\n\nThis installs the latest SLIM CLI and its dependencies from the [Python Package Index](https://pypi.org/). The new console script `slim` is now ready for use. Confirm by running either:\n\n slim --version\n slim --help\n\nTo upgrade:\n\n pip install --upgrade slim-cli\n\nOr select a specific version, such as `X.Y.Z`:\n\n pip install slim-cli==X.Y.Z\n\n### Run Instructions\n\nThis section provides detailed commands to interact with the SLIM CLI. Each command includes various options that you can specify to tailor the tool's behavior to your needs.\n\n**NOTE:**\nTo specify a logging level for the app, choose between `DEBUG`, `INFO` (default), `WARNING`, `ERROR`, `CRITICAL`: \n```slim --logging DEBUG```\n\n1. **List all available best practices**\n - This command lists all best practices fetched from the SLIM registry.\n ```bash\n slim list\n ```\n\n2. **Apply best practices to repositories**\n - This command applies specified best practices to one or more repositories. It supports applying multiple practices simultaneously across multiple repositories, with AI customization options available.\n - `--best-practice-ids`: List of best practice IDs to apply.\n - `--repo-urls`: List of repository URLs to apply the best practices to; not used if `--repo-dir` is specified.\n - `--repo-dir`: Local directory path of the repository where the best practices will be applied.\n - `--clone-to-dir`: Path where the repository should be cloned if not present locally. Compatible with `--repo-urls`.\n - `--use-ai`: Enables AI features to customize the application of best practices based on the project\u2019s specific needs. Specify the model provider and model name as an argument (e.g., `azure/gpt-4o`).\n ```bash\n slim apply --best-practice-ids SLIM-123 SLIM-456 --repo-urls https://github.com/your-username/your-repo1 https://github.com/your-username/your-repo2 \n ```\n - To apply a best practice using AI customization:\n ```bash\n # Apply a specific best practice using AI customization\n slim apply --best-practice-ids SLIM-123 --repo-urls https://github.com/your_org/your_repo.git --use-ai <model provider>/<model name>\n ```\n Example usage: \n ```bash\n # Apply and deploy a best practice using Azure's GPT-4o model\n slim apply --best-practice-ids SLIM-3.1 --repo-urls https://github.com/riverma/terraformly/ --use-ai azure/gpt-4o\n ```\n ```bash\n # Apply and deploy a best practice using Ollama's LLaMA 3.1 model\n slim apply --best-practice-ids SLIM-3.1 --repo-urls https://github.com/riverma/terraformly/ --use-ai ollama/llama3.3\n ```\n \n3. **Deploy a best practice**\n - After applying best practices, you may want to deploy (commit and push) them to a remote repository.\n - `--best-practice-ids`: List of best practice IDs that have been applied and are ready for deployment.\n - `--repo-dir`: The local directory of the repository where changes will be committed and pushed.\n - `--remote-name`: Specifies the remote name in the git configuration to which the changes will be pushed.\n - `--commit-message`: A message describing the changes for the commit.\n ```bash\n slim deploy --best-practice-ids SLIM-123 SLIM-456 --repo-dir /path/to/repo --remote-name origin --commit-message \"Apply SLIM best practices\"\n ```\n\n4. **Apply and deploy a best practice**\n - Combines the application and deployment of a best practice into one step.\n - `--best-practice-ids`: List of best practice IDs to apply and then deploy.\n - `--repo-urls`: List of repository URLs for cloning if not already cloned; not used if `--repo-dir` is specified.\n - `--repo-dir`: Specifies the directory of the repository where the best practice will be applied and changes committed.\n - `--remote-name`: Specifies the remote to which the changes will be pushed. Format should be a GitHub-like URL base. For example `https://github.com/my_github_user`\n - `--commit-message`: A message describing the changes for the commit.\n - `--use-ai`: If specified, enables AI customization of the best practice before applying. False by default.\n ```bash\n slim apply-deploy --best-practice-ids SLIM-123 --repo-urls https://github.com/your-username/your-repo1 https://github.com/your-username/your-repo2 --remote-name origin --commit-message \"Integrated SLIM best practice with AI customization\"\n ```\n Example output:\n ```\n AI features disabled\n Applied best practice SLIM-123 and committed to branch slim-123\n Pushed changes to remote origin on branch slim-123\n ```\n\nEach command can be modified with additional flags as needed for more specific tasks or environments.\n\n\n### Generate Docusaurus documentation\n\nThe SLIM CLI includes a website generator that can automatically create [Docusaurus](https://docusaurus.io/) documentation from your repository content. This feature can analyze your codebase and generate comprehensive documentation including API references and installation guides.\n\n#### Basic Usage\n\nGenerate documentation for your repository using:\n\n```bash\npython -m jpl.slim.cli generate-docs \\\n --repo-dir /path/to/your/repo \\\n --output-dir /path/to/output\n```\n\n#### AI-Enhanced Documentation\n\nYou can enable AI enhancement of the documentation using supported language models:\n\n```bash\npython -m jpl.slim.cli generate-docs \\\n --repo-dir /path/to/your/repo \\\n --output-dir /path/to/output \\\n --use-ai ollama/llama3.3\n```\n\nExample usage:\n```bash\npython -m jpl.slim.cli generate-docs --repo-dir ./hysds --output-dir ./hysds/outputs --use-ai ollama/llama3.3\n```\n\n#### Generated Content\n\nThe documentation generator creates the following sections:\n\n- **Overview**: Project description, features, and key concepts (from README)\n- **Installation**: Setup instructions and prerequisites\n- **API Reference**: Auto-generated API documentation from source code\n- **Guides**: User guides and tutorials\n- **Contributing**: Contributing guidelines\n- **Changelog**: Version history and recent changes\n- **Deployment**: Deployment instructions and configurations\n- **Architecture**: System architecture and design documentation\n- **Testing**: Testing documentation and examples\n- **Security**: Security considerations and guidelines\n\n#### Integration with Docusaurus\n\nAfter generating the documentation, follow these steps to view it:\n\n1. Install Docusaurus if you haven't already:\n```bash\nnpx create-docusaurus@latest my-docs classic\n```\n\n2. Copy the generated files to your Docusaurus docs directory:\n```bash\ncp /path/to/output/*.md my-docs/docs/\ncp /path/to/output/*.js my-docs/\ncp -r /path/to/output/static/* my-docs/static/\n```\n\n3. Start the Docusaurus development server:\n```bash\ncd my-docs\nnpm start\n```\n\n\n### Unit Test Generation\n\nThe slim CLI includes an AI-powered test generation feature that can automatically create unit tests for your codebase. This tool analyzes your source code and generates appropriate test files using testing frameworks for each supported language.\n\n#### Features\n\n- **Multi-Language Support**: Generates tests for Python, JavaScript, TypeScript, Java, C++, and C#\n- **Framework-Specific**: Uses appropriate testing frameworks for each language:\n - Python: pytest\n - JavaScript/TypeScript: Jest\n - Java: JUnit\n - C++: Google Test\n - C#: NUnit\n- **Comprehensive Testing**: Generates tests for normal operations, edge cases, and error scenarios\n- **Dependency Mocking**: Includes appropriate mocking setup for external dependencies\n\n#### Usage\nGenerate tests for an entire repository:\n\n```bash\npython -m jpl.slim.cli generate-tests --repo-dir ./my-project --output-dir ./my-project/tests\n```\n\n#### Options\n\n- `--repo-dir` (Required): Path to your repository directory\n- `--output-dir` (Optional): Custom output directory for generated tests\n- `--model` (Optional): AI model to use (default: \"azure/gpt-4o\")\n- `--verbose`, `-v` (Optional): Enable detailed logging\n\n\n\n#### Naming Conventions\n\nGenerated test files follow language-specific conventions:\n\n| Language | Test File Format | Example |\n|----------|-----------------|----------|\n| Python | `test_*.py` | `test_utils.py` |\n| JavaScript | `*.test.js` | `utils.test.js` |\n| TypeScript | `*.spec.ts` | `utils.spec.ts` |\n| Java | `Test*.java` | `TestUtils.java` |\n| C++ | `*_test.cpp` | `utils_test.cpp` |\n| C# | `*Tests.cs` | `UtilsTests.cs` |\n\n#### Generated Test Structure\n\nTests are generated with:\n- Appropriate imports and framework setup\n- Test class/suite organization\n- Setup and teardown methods when needed\n- Comprehensive test cases covering:\n - Normal operation\n - Edge cases\n - Error handling\n - External dependency mocking\n\n\n\n\n\n\n### Running the CLI Locally\n\nThe CLI can be run using Python's module syntax.\n\n#### Basic Usage\n```bash\npython -m jpl.slim.cli [options]\n```\n\n#### Examples\n\n1. Apply deployment best practices:\n```bash\npython -m jpl.slim.cli apply-deploy \\\n --best-practice-ids SLIM-3.1 \\\n --repo-urls https://github.com/yunks128/maap-py \\\n --use-ai azure/gpt-4o\n```\n\n\n## Changelog\n\nSee our [CHANGELOG.md](CHANGELOG.md) for a history of our changes.\n\nSee our [releases page](https://github.com/NASA-AMMOS/slim-cli/releases) for our key versioned releases.\n\n## Frequently Asked Questions (FAQ)\n\nQuestions about our project? Please see our: [FAQ](https://nasa-ammos.github.io/slim/faq)\n\n## Contributing\n\nInterested in contributing to our project? Please see our: [CONTRIBUTING.md](CONTRIBUTING.md)\n\nFor guidance on how to interact with our team, please see our code of conduct located at: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)\n\nFor guidance on our governance approach, including decision-making process and our various roles, please see our governance model at: [GOVERNANCE.md](GOVERNANCE.md)\n\n### Local Development\n\nFor local development of SLIM CLI, clone the GitHub repository, create a virtual environment, and then install the package in editable mode into it:\n```bash\ngit clone --quiet https://github.com/NASA-AMMOS/slim-cli.git\ncd slim-cli\npython3 -m venv .venv\nsource .venv/bin/activate\npip install --editable .\n```\n\nThe `slim` console-script is now ready in editable mode; changes you make to the source files under `src` are immediately reflected when run.\n\n### Running Tests\n\nWe use `pytest` for testing. The test files are located within the `tests` subdirectory. To run the tests, ensure you are in the root directory of the project (where the `pyproject.toml` or `setup.py` is located) and have `pytest` installed. You can install `pytest` via pip:\n\n```bash\npip install pytest\n```\n\nTo execute all tests, simply run:\n\n```bash\npytest\n```\n\nIf you want to run a specific test file, you can specify the path to the test file:\n\n```bash\npytest tests/jpl/slim/test_cli.py\n```\n\nThis will run all the tests in the specified file. You can also use `pytest` options like `-v` for verbose output or `-s` to see print statements in the output:\n\n```bash\npytest -v -s\n```\n\n### Publishing a New Version\n\nTo publish a new version of SLIM CLI to the Python Package Index, typically you'll update the `VERSION.txt` file; then do:\n```bash\npip install build wheel twine\npython3 -m build .\ntwine upload dist/*\n```\n\n(Note: this can and should eventually be automated with GitHub Actions.)\n\n## License\n\nSee our: [LICENSE](LICENSE)\n\n## Support\n\nKey points of contact are: [@riverma](https://github.com/riverma) and [@yunks128](https://github.com/yunks128)\n",
"bugtrack_url": null,
"license": "Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n \n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n \n 1. Definitions.\n \n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n \n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n \n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n \n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n \n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n \n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n \n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n \n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n \n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n \n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n \n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n \n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n \n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n \n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n \n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n \n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n \n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n \n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n \n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n \n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n \n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n \n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n \n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n \n END OF TERMS AND CONDITIONS\n \n Copyright (c) 2022 California Institute of Technology (\"Caltech\").\n U.S. Government sponsorship acknowledged.\n \n All rights reserved.\n \n Redistribution and use in source and binary forms, with or without modification, are permitted provided\n that the following conditions are met:\n * Redistributions of source code must retain the above copyright notice, this list of conditions and\n the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice, this list of conditions\n and the following disclaimer in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Caltech nor its operating division, the Jet Propulsion Laboratory, nor the\n names of its contributors may be used to endorse or promote products derived from this software\n without specific prior written permission.\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\n OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\n OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.",
"summary": "Automation of the application of software lifecycle best practices to your GitHub repositories",
"version": "0.0.7",
"project_urls": {
"Homepage": "https://github.com/SLIM/slim-cli",
"Issues": "https://github.com/SLIM/slim-cli/issues"
},
"split_keywords": [
"ammos",
" automation",
" development",
" nasa",
" practice",
" slim",
" software"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "52ea5401caaed7da61fb7c435d9c67ce53d90ede5339f1e73b0a04c5622e53ff",
"md5": "043a53a7621db699f3ef401bb946fb0c",
"sha256": "0f2b85085b076341bfa1ecc845204d0a6666f071bb396d94232dc106dc6a1caa"
},
"downloads": -1,
"filename": "slim_cli-0.0.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "043a53a7621db699f3ef401bb946fb0c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 38767,
"upload_time": "2025-03-19T03:56:54",
"upload_time_iso_8601": "2025-03-19T03:56:54.969891Z",
"url": "https://files.pythonhosted.org/packages/52/ea/5401caaed7da61fb7c435d9c67ce53d90ede5339f1e73b0a04c5622e53ff/slim_cli-0.0.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9a58d7e967e35782d30b05de5e4a0e5fb75163949009e0e549672d13ab5fa7ec",
"md5": "b47096c26653716d388138619d32a687",
"sha256": "4f94e7954514751a1d2909577af14f5de2f0107f655760e7973f902d8cd73276"
},
"downloads": -1,
"filename": "slim_cli-0.0.7.tar.gz",
"has_sig": false,
"md5_digest": "b47096c26653716d388138619d32a687",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 58012,
"upload_time": "2025-03-19T03:56:56",
"upload_time_iso_8601": "2025-03-19T03:56:56.224197Z",
"url": "https://files.pythonhosted.org/packages/9a/58/d7e967e35782d30b05de5e4a0e5fb75163949009e0e549672d13ab5fa7ec/slim_cli-0.0.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-03-19 03:56:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "SLIM",
"github_project": "slim-cli",
"github_not_found": true,
"lcname": "slim-cli"
}