miniogre


Nameminiogre JSON
Version 0.7.0 PyPI version JSON
download
home_pagehttps://github.com/ogre-run/miniogre
Summaryminiogre: from source code to reproducible environment, in seconds.
upload_time2024-05-15 05:54:40
maintainerNone
docs_urlNone
authorWilder Lopes
requires_python<4.0,>=3.10
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # miniogre

**miniogre** automates the management of software dependencies with AI, to ensure your Python code runs on any computer. It is a command-line application that analyzes a Python codebase to automatically generate a Dockerfile, requirements.txt file, and SBOM files, expediting the process of packaging any Python application. Additionally, it is able to update the README (documentation) file to comply with what really happens in the source code.

![miniogre_gif_33](https://github.com/ogre-run/miniogre/assets/6482944/0850dbb5-6634-4f08-80a9-6fd8e3ca8e03)

## Why miniogre

Developers waste hours per week managing software dependencies. This is particularly true in AI development where many Python packages lack proper documentation and have outdated configuration files. **Miniogre empowers developers** to automatically identify, update, and install the necessary software dependencies to get code to work. Unlike other tools that need manual setup, **miniogre uses AI to quickly handle Python dependencies setup**, cutting down "dependency hunting" from hours a week to just minutes.

## How it Works

Upon running the application, it carries out the following steps:

- The project directory is scrutinized to identify the primary code language.
- The README file is located and read.
- The source code is crawled to obtain a preliminary list of requirements.
- A large language model (LLM) provider (choices are `openai`, `mistral`, `groq`, `octoai`) is used to refine the list of requirements and generate the final content for the `requirements.txt` file.
- The `requirements.txt`, `Dockerfile`, and `sbom.json` files are created.
- A Docker image of the application is built.
- An ogre container is spun up.

Two main commands can be run, with the `miniogre/main.py` file serving as the entry point.

- **run**: Executes a series of actions, including configuring directories and files (bashrc, Dockerfile), generating requirements, building a Docker image, and spinning up a container.
- **readme**: Constructs a new `README.md` file that mirrors the operations observed within the source code.

For more in-depth execution details, refer to `miniogre/main.py`,`miniogre/actions.py`, and `miniogre/config.py`.

## Requirements

To use miniogre effectively, ensure the following are installed:

- Python 3: Miniogre is developed in Python. If it's not already installed, [get Python here](https://www.python.org/downloads/).
- Docker: Docker is a platform used to eliminate "works on my machine" problems when collaborating on code with co-workers. If it's not already installed, [get Docker here](https://docs.docker.com/get-docker/).
- pip or pipx: These are python package installers used to install miniogre. If they are not already installed, [get pipx here](https://pipxproject.github.io/pipx/installation/) or [pip here](https://pip.pypa.io/en/stable/installing/).
- An API token of at least one of the following LLM inference providers:
    - `openai`: type `export OPENAI_API_KEY=<YOUR_TOKEN>` on the terminal;
    - `mistral`: type `export MISTRAL_API_KEY=<YOUR_TOKEN>` on the terminal;
    - `groq`: type `export GROQ_SECRET_ACCESS_KEY=<YOUR_TOKEN>` on the terminal;
    - `octoai`: type `export OCTOAI_TOKEN=<YOUR_TOKEN>` on the terminal.

OpenAI token in the environment: 

## Installation
Miniogre can be installed either by using `pip` or `pipx`:
- `pip install miniogre`
- `pipx install miniogre`

You can also build the wheel from the source and then install it on your system. We provide a handy script `install.sh` to accomplish that.

## Usage 

After installation, go inside the project folder and run:

`miniogre run`

This will analyze the project, generate `ogre_dir/Dockerfile`, `ogre_dir/requirements.txt`, and `ogre_dir/sbom.json` and build a Docker image.

There are other commands:

- `readme`: Analyzes the source code to generate a new `README.md` file that is compatible with what actually happens in the source code.  

## Contributing
Contributions to improve this resource are more than welcome. For inquiries, contact the maintainers at [contact@ogre.run](contact@ogre.run).


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ogre-run/miniogre",
    "name": "miniogre",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Wilder Lopes",
    "author_email": "wilder@ogre.run",
    "download_url": "https://files.pythonhosted.org/packages/21/69/cddd61c5810564265e7da2002ace497e036ad295e7d947cd1d894d6c3a48/miniogre-0.7.0.tar.gz",
    "platform": null,
    "description": "# miniogre\n\n**miniogre** automates the management of software dependencies with AI, to ensure your Python code runs on any computer. It is a command-line application that analyzes a Python codebase to automatically generate a Dockerfile, requirements.txt file, and SBOM files, expediting the process of packaging any Python application. Additionally, it is able to update the README (documentation) file to comply with what really happens in the source code.\n\n![miniogre_gif_33](https://github.com/ogre-run/miniogre/assets/6482944/0850dbb5-6634-4f08-80a9-6fd8e3ca8e03)\n\n## Why miniogre\n\nDevelopers waste hours per week managing software dependencies. This is particularly true in AI development where many Python packages lack proper documentation and have outdated configuration files. **Miniogre empowers developers** to automatically identify, update, and install the necessary software dependencies to get code to work. Unlike other tools that need manual setup, **miniogre uses AI to quickly handle Python dependencies setup**, cutting down \"dependency hunting\" from hours a week to just minutes.\n\n## How it Works\n\nUpon running the application, it carries out the following steps:\n\n- The project directory is scrutinized to identify the primary code language.\n- The README file is located and read.\n- The source code is crawled to obtain a preliminary list of requirements.\n- A large language model (LLM) provider (choices are `openai`, `mistral`, `groq`, `octoai`) is used to refine the list of requirements and generate the final content for the `requirements.txt` file.\n- The `requirements.txt`, `Dockerfile`, and `sbom.json` files are created.\n- A Docker image of the application is built.\n- An ogre container is spun up.\n\nTwo main commands can be run, with the `miniogre/main.py` file serving as the entry point.\n\n- **run**: Executes a series of actions, including configuring directories and files (bashrc, Dockerfile), generating requirements, building a Docker image, and spinning up a container.\n- **readme**: Constructs a new `README.md` file that mirrors the operations observed within the source code.\n\nFor more in-depth execution details, refer to `miniogre/main.py`,`miniogre/actions.py`, and `miniogre/config.py`.\n\n## Requirements\n\nTo use miniogre effectively, ensure the following are installed:\n\n- Python 3: Miniogre is developed in Python. If it's not already installed, [get Python here](https://www.python.org/downloads/).\n- Docker: Docker is a platform used to eliminate \"works on my machine\" problems when collaborating on code with co-workers. If it's not already installed, [get Docker here](https://docs.docker.com/get-docker/).\n- pip or pipx: These are python package installers used to install miniogre. If they are not already installed, [get pipx here](https://pipxproject.github.io/pipx/installation/) or [pip here](https://pip.pypa.io/en/stable/installing/).\n- An API token of at least one of the following LLM inference providers:\n    - `openai`: type `export OPENAI_API_KEY=<YOUR_TOKEN>` on the terminal;\n    - `mistral`: type `export MISTRAL_API_KEY=<YOUR_TOKEN>` on the terminal;\n    - `groq`: type `export GROQ_SECRET_ACCESS_KEY=<YOUR_TOKEN>` on the terminal;\n    - `octoai`: type `export OCTOAI_TOKEN=<YOUR_TOKEN>` on the terminal.\n\nOpenAI token in the environment: \n\n## Installation\nMiniogre can be installed either by using `pip` or `pipx`:\n- `pip install miniogre`\n- `pipx install miniogre`\n\nYou can also build the wheel from the source and then install it on your system. We provide a handy script `install.sh` to accomplish that.\n\n## Usage \n\nAfter installation, go inside the project folder and run:\n\n`miniogre run`\n\nThis will analyze the project, generate `ogre_dir/Dockerfile`, `ogre_dir/requirements.txt`, and `ogre_dir/sbom.json` and build a Docker image.\n\nThere are other commands:\n\n- `readme`: Analyzes the source code to generate a new `README.md` file that is compatible with what actually happens in the source code.  \n\n## Contributing\nContributions to improve this resource are more than welcome. For inquiries, contact the maintainers at [contact@ogre.run](contact@ogre.run).\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "miniogre: from source code to reproducible environment, in seconds.",
    "version": "0.7.0",
    "project_urls": {
        "Homepage": "https://github.com/ogre-run/miniogre"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "03717d7170d18bb40dea9fb9cb1156a7d2c4f08ccc9b70bfdd6932d44d0c2602",
                "md5": "1e95eacaa3a0f69b13792399fd414823",
                "sha256": "51b95cfb0a7be45c8450c1e86ab0c8f51df8ba9ce0fc9626cd93a50fed950c26"
            },
            "downloads": -1,
            "filename": "miniogre-0.7.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1e95eacaa3a0f69b13792399fd414823",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 794638,
            "upload_time": "2024-05-15T05:54:38",
            "upload_time_iso_8601": "2024-05-15T05:54:38.196174Z",
            "url": "https://files.pythonhosted.org/packages/03/71/7d7170d18bb40dea9fb9cb1156a7d2c4f08ccc9b70bfdd6932d44d0c2602/miniogre-0.7.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2169cddd61c5810564265e7da2002ace497e036ad295e7d947cd1d894d6c3a48",
                "md5": "ab837ef59dc9de641230369d8ef5e9fa",
                "sha256": "416069a9a7cc6d551a16f3d672f2fb88ac6f2a836fb3e7a3af9de9c35601b1d7"
            },
            "downloads": -1,
            "filename": "miniogre-0.7.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ab837ef59dc9de641230369d8ef5e9fa",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 794245,
            "upload_time": "2024-05-15T05:54:40",
            "upload_time_iso_8601": "2024-05-15T05:54:40.070614Z",
            "url": "https://files.pythonhosted.org/packages/21/69/cddd61c5810564265e7da2002ace497e036ad295e7d947cd1d894d6c3a48/miniogre-0.7.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-15 05:54:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ogre-run",
    "github_project": "miniogre",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "miniogre"
}
        
Elapsed time: 0.26817s