semvec/pypi-packages huggingface dataset:
astrix 0.1.7
Your All-in-One Python Project Analyzer
Requires Python: <4.0,>=3.10

# Astrix

<img alt="Astrix Logo" src="https://drive.google.com/thumbnail?id=1mKsoththfyIWg5l1gjKO0rRsGNrFpzeS" height="300" style="display: block;
    margin: 0 auto;"/>

[![PyPI version](https://badge.fury.io/py/astrix.svg)](https://badge.fury.io/py/astrix)
![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)
[![Downloads](https://static.pepy.tech/badge/astrix)](https://pepy.tech/project/astrix)

**Astrix: Your All-in-One Python Project Analyzer**

Astrix is a comprehensive tool designed to analyze and optimize Python projects by checking dependencies, code quality metrics, documentation, and much more.

---

## Features

Astrix comes with a set of powerful commands to help you analyze, manage, and optimize your Python projects.

- **analyze**: Analyze functions in a given Python file for various metrics like cyclomatic complexity.
  
  ```bash
  astrix analyze <filepath>

- **callgraph**: Generate a call graph of the specified Python file to visualize function dependencies.
  
  ```bash
  astrix callgraph <filepath>

- **class-info**: Analyze the specified Python file and generate a class hierarchy diagram.
  
  ```bash
  astrix class-info <filepath>

- **maintainability**: Analyze the maintainability index and Halstead metrics for the given Python file.
  
  ```bash
  astrix maintainability <filepath>

- **deps**: Analyze the specified Python file and return a list of dependencies, and return various information such as dependency name, its description, its documentation link and the github url
  
  ```bash
  astrix deps <filepath>

- **install**: Create a virtual environment for the current project and install dependencies from a specified file (e.g., requirements.txt), if the file is not provided, it simply creates a virtual environment.
  
  ```bash
  astrix install <filepath>
  
- **delete**: Delete the virtual environment associated with the current project.
  
  ```bash
  astrix delete <venv-name>

---

## Installation

You can install Astrix using:

```bash
pip install astrix
tahutils 0.1.11
Python utilities for Tahu & Sparkplug B.
Requires Python: <4.0,>=3.10

# TahUtils

A small wrapper package for using [Tahu for Sparkplug B](https://github.com/eclipse/tahu) in Python. Comes with an unmodified (barring import structure) Tahu included, hence the use of the Eclipse license.

## Examples

See the `examples` directory in the project repository.

## Current Support

- Generating Sparkplug B topics
- Generating birth, death, and data payloads for nodes and devices
- Managing aliases
- Using enums for metric names
- Using dataclasses to manage metric names and metric states
- Parsing sparkplug b messages

## Changes to the `tahu` library

### Updating compiled Protobuf files

Assuming no major refactoring to the tahu library, updating the included tahu consists of the following steps:

1. Download the latest release from the repository: https://github.com/eclipse/tahu/tags
2. Extract the source code.
3. Regenerate the `sparkplug_b_pb2.py` file per the instructions in `tahu-<version>/python/core/README.md`. Use `tahu-<version>/python/core` as your working directory when executing the command, and you'll need the protobuf compiler.
4. Copy the contents of the `tahu-<version>/python/core` directory to the `tahutils/tahu` directory.
5. Overwrite the `tahutils/tahu/__init__.py` file with the appropriate imports, typically:

	```python
	from . import sparkplug_b_pb2
	from . import array_packer
	from . import sparkplug_b
	```

6. Modify the imports in `tahutils/tahu/sparkplug_b.py` to include the `tahu` package name:

	```python
	import tahutils.tahu.sparkplug_b_pb2 as sparkplug_b_pb2
	import time
	from tahutils.tahu.sparkplug_b_pb2 import Payload
	from tahutils.tahu.array_packer import *
	```

### Fixing metric timestamps

As of this version, there is a bug in the `tahu` library relating to metric timestamps. See [this pull request](https://github.com/eclipse/tahu/pull/398) for more details.

This is patched by updating `sparkplug_b.py`.

```python
def addMetric(container, name, alias, type, value, timestamp=None):
    if timestamp is None:
        timestamp = int(round(time.time() * 1000))
	...

def addNullMetric(container, name, alias, type, timestamp=None):
    if timestamp is None:
        timestamp = int(round(time.time() * 1000))
    metric = container.metrics.add()
    if name is not None:
        metric.name = name
    if alias is not None:
        metric.alias = alias
    metric.timestamp = timestamp
    metric.is_null = True
	...
```
graphs-lbenjell 0.0.1
A small example package
Requires Python: >=3.7

This is for my Dijkstra's Algorithm Assignment!

This includes the implementation of Dijkstra's Algorithm.

To use:

Clone the repository

   1.  git clone https://github.com/Ninjaamina/graphs_lbenjell.git
   2.  cd graphs_lbenjell

Create and activate a virtual enviroment
    1. python3 -m venv .venv
    2. source .venv/bin/activate 

Install the package

pip3 install .