semvec/pypi-packages huggingface dataset:
jemma-code 0.1.1
Get coding help, right in your terminal
Requires Python: >=3.6
Keywords: code, code assistant, gemini, api

# Jemma: Your Command-Line Coding Assistant



[![Python](https://img.shields.io/badge/python-3.6%2B-blue.svg)](https://www.python.org/)

[![Google Gemini](https://img.shields.io/badge/Google%20Gemini-API-brightgreen)](https://cloud.google.com/vertex-ai/docs/generative-ai/models/gemini)

[![Colorama](https://img.shields.io/badge/colorama-terminal%20colors-brightgreen)](https://pypi.org/project/colorama/)



![Jemma](jemma.jpeg)



## Overview



Jemma is a free and open-source command-line tool that brings the power of Google's Gemini API to your terminal.  Get instant coding assistance, codebase explanations, and more, all without leaving your workflow.



## Features



*   **Interactive Code Sessions:**  Ask Jemma coding questions and receive real-time suggestions.

*   **Codebase Explanation:**  Understand complex projects quickly with Jemma's detailed codebase analysis.

*   **Command Watching:**  Let Jemma monitor the output of your commands and provide insights.

*   **Code Editing:**  Automatically apply fixes and features to your code with Jemma's edit capabilities.



## Installation



```bash

pip install .

```



## Configuration



Before using Jemma, you need to configure your Google Gemini API key. You have two options:



1.  **Using the `jemma-init` command:**

   ```bash

   jemma-init

   ```

   This will prompt you to enter your API key, which will be stored in `~/.jemma/config`.



2.  **Setting the `GEMINI_API_KEY` environment variable:**

   ```bash

   export GEMINI_API_KEY="YOUR_API_KEY"

   ```



You can further configure Jemma using the `jemma-configure` command to select your preferred model and adjust settings like temperature and max output tokens.



```bash

jemma-configure

```



## Usage



Jemma provides several commands to help you with your coding tasks:



*   **Interactive Code Session:**

   ```bash

   jemma --chat

   ```

   Starts an interactive session where you can ask coding questions.



*   **Codebase Explanation:**

   ```bash

   jemma --explain

   ```

   Provides a detailed explanation of your codebase.



*   **Command Watching:**

   ```bash

   jemma --watch "pytest"

   ```

   Watches the output of the `pytest` command and provides analysis.



*   **Code Editing:**

   ```bash

   jemma --edit "Fix the bug in the login function"

   ```

   Asks Jemma to help you fix bugs or add features to your code.



## Roadmap



- [x] Fix configuration and improve the use of the configuration file

- [x] Fix edit with line enumeration

- [x] Add support for multiple models (Gemini Pro, etc.)

- [x] Implement configuration via command-line arguments

- [ ] Create command for starting new projects

- [ ] Improve error handling and logging

- [ ] Add unit tests

- [ ] MIT license
maia-hdl 0.6.2
Maia SDR FPGA Amaranth HDL code
Requires Python: >=3.9

# maia-hdl

maia-hdl is the Maia SDR FPGA Amaranth HDL code. See
[maia-sdr.org](https://maia-sdr.org/) for a general introduction to the project,
and also the [maia-sdr/maia-sdr](https://github.com/maia-sdr/maia-sdr) Github
repository.

The maia-hdl Python package can be used as a library of HDL modules in
third-party HDL designs.

## Installation

It is not necessary to install maia-hdl in order to generate the Vivado IP cores
or projects, or to run the tests and simulations. These can be run from a
checkout of the source code as indicated below.

When using maia-hdl as a library in third-party packages, it can be installed
with
```
pip install maia-hdl
```
or with any other method for managing Python packages.

## Building the Vivado IP cores and projects

The build system for the Vivado IP cores and projects is based on Makefiles. The
IP cores can be built by running `make` from the `ip` directory. A specific IP
core can be built by running `make` from its subdirectory inside the `ip`
directory.

The Vivado projects can be built by running `make` from the `projects`
directory. A specific project cna be built by running `make` from its
subdirectory inside the `projects` directory. This will create the Vivado
project and block diagram, run synthesis and place and route, and finally
generate the bitstream.

The IP core generation requires [yosys](https://github.com/YosysHQ/yosys), which
is used to generate Verilog code. Yosys is already included as part of the
[maia-sdr-devel Docker image](https://github.com/maia-sdr/maia-sdr-docker).

## Testing

Pure Amaranth tests can be run with
```
python3 -m unittest
```

Mixed Amaranth/Verilog tests use [cocotb](https://www.cocotb.org/) and a Verilog
simulator such as [Icarus Verilog](http://iverilog.icarus.com/). Verilog code is
generated from the Amaranth code, so the simulation involves only Verilog code
and the Python code running from cocotb. The test execution of cocotb is based
on Makefiles. Tests can be run by running `make` from the `test_cocotb`
directory. It is possible to check which tests failed with
```
grep --include=results.xml -r -e failure .
```

Running the mixed Amaranth/Verilog tests also requires yosys to be installed.

## License

Licensed under MIT license ([LICENSE-MIT](LICENSE-MIT) or
http://opensource.org/licenses/MIT).

## Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, shall be licensed as above, without any
additional terms or conditions.