semvec/pypi-packages huggingface dataset:
osnap-lib 0.1.0
OSNAP library for implementing OSNAP Agents
Requires Python: >=3.6

# OSNAP Library

OSNAP (Open Standard Network Agent Protocol) Library is a Python package for implementing OSNAP Agents in a standardized way, making it easier to create, manage and communicate between agents in a network.

This library provides an easy-to-use framework for creating OSNAP Agents, handling requests and responses, and managing agent tasks.

## Installation

To install the OSNAP Library, simply run:

```
pip install osnap-lib
```

## Usage

Here's a quick guide to get started with the OSNAP Library:

1. Import the required classes and functions:

```python
from osnap_lib import OSNAPAgent, OSNAPRequest, OSNAPResponse, OSNAPAgentTool, OSNAPAgentTask
```

2. Create a custom agent class by extending the `OSNAPAgent` class and implementing the necessary methods:

```python
class CustomAgent(OSNAPAgent):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    # Implement custom agent methods here
```

3. Initialize your agent:

```python
agent = CustomAgent(name="Custom Agent", description="An example custom agent", scope="public", info_endpoint="http://localhost:8080/info", registry_url="http://osnap-registry.example.com")
```

4. Create OSNAP tools by extending the `OSNAPAgentTool` class and implementing the necessary methods:

```python
class CustomTool(OSNAPAgentTool):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    # Implement custom tool methods here
```

5. Add tools to your agent:

```python
tool = CustomTool(name="Custom Tool", description="An example custom tool")
agent.add_tool(tool)
```

6. Send a request to another agent:

```python
request = OSNAPRequest(request_type="info", priority="low", request_metadata={"key": "value"})
response = agent.send_request_to_agent(target_agent_id="agent_id", request=request)
```

7. Register, update tools, and unregister your agent with the registry:

```python
agent.register()
agent.update_tools_on_registry()
agent.unregister()
```

For more detailed information on each class and method, please refer to the source code and comments.

## Contributing

Feel free to contribute to this project by submitting issues, pull requests or helping with documentation.

## License

This project is licensed under the MIT License.
geotoolkit 0.2.1
Peforming calculations with geographic points

# geotoolkit
A lightweight python library for working with geographic coordinates. This library can be used in things such as drone navigation, speed measurement, and more.

## Examples
Measuring distance between two points:
```
p1 = (33.93369079118477, -118.41900963926824)
p2 = (33.937366248549935, -118.38276824755901)
distance = distance(p1, p2)
print(distance) # 2.0952233910697995, in miles
```

Checking if a point lies within (inside of) a polygon:
```
raw_json:str = "[[34.04709656460684, -118.51420813970792], [34.0173210880725, -118.00731306657742], [33.92068010802825, -117.92185949106074], [33.695565897860064, -118.00828413031054], [33.693142098170746, -118.38020139809352]]" # load a polygon from a JSON array of arrays
polygon:list[tuple[float, float]] = load_polygon(raw_json)
point1:tuple[float, float] = (33.924709007544834, -118.22191807002923)
point2:tuple[float, float] = (33.88682983206357, -118.72492888526082)
print(inside_polygon(point1, polygon)) # True (it is within the polygon)
print(inside_polygon(point2, polygon)) # False (it is outside of the polygon)
```

Measuring speed:
```
mph = speed_mph((33.92533554514059, -118.32099118005947), (33.92532143656184, -118.31715080400728), 9.8)
print(mph) # 80.96760998067498 MPH
```
proovl-sms 0.1.8
A Python library for sending SMS messages using Proovl API

<h1 align="center">proovl-sms</h1>

<p>
  <strong>A Python library for sending SMS messages using Proovl API</strong>
</p>


<h2>Installation</h2>

Install using pip:

`pip install proovl-sms`


<h2>Parameters</h2>
<p>The following parameters are required to send an SMS message:</p>

<ul>
  <li><code>user</code>: Your Proovl API user ID. You can obtain this from your <a href="https://www.proovl.com">Proovl account</a>.</li>
  <li><code>token</code>: Your Proovl API authentication token. You can obtain this from your Proovl account.</li>
  <li><code>from_num</code>: The sender's name or phone number. This must be registered with Proovl. Leave this blank if you want to use the default sender name.</li>
</ul>


<h2>Usage:</h2>


```python
from proovl_sms import Proovl

# Initialize Proovl with your Proovl user, token, and from number
proovl = Proovl(user='your_proovl_user', token='your_proovl_token', from_num='your_from_number')

# Send a single SMS message
response = proovl.send_sms(destination='destination_number', message='Hello, world!')
print(response)
```

<h2>Bulk SMS:</h2>

```python
from proovl_sms import Proovl

# Initialize Proovl with your Proovl user, token, and from numbers
proovl = Proovl(user='your_proovl_user', token='your_proovl_token', from_num='your_from_number')

# Send a bulk SMS message
results = proovl.send_bulk_sms(destinations='destination1;destination2;destination3;destination4;destination5', message='Hello, world!')
for result in results:
    print(result['number'], result['response'])
```

<h2>Credits</h2>
<p>The proovl-sms package was developed by Tomas. You can obtain your own Proovl account and API credentials from <a href="https://www.proovl.com">proovl.com</a>.</p>
aiohttp-ip-rotator 1.0
Change the IP address with each http request using the AWS API Gateway.

# aiohttp-ip-rotator
An asynchronous alternative to the requests-ip-rotator  (https://github.com/Ge0rg3/requests-ip-rotator) library based on aiohttp, completely copying its functionality

## Example
```python3
from asyncio import get_event_loop
from aiohttp_ip_rotator import RotatingClientSession


async def main():
    session = RotatingClientSession("https://api.ipify.org", "aws access key id", "aws access key secret")
    await session.start()
    for i in range(5):
        response = await session.get("https://api.ipify.org")
        print(f"Your ip: {await response.text()}")
    await session.close()


if __name__ == "__main__":
    get_event_loop().run_until_complete(main())
```
## Example 2
```python3
from asyncio import get_event_loop
from aiohttp_ip_rotator import RotatingClientSession


async def main():
    async with RotatingClientSession(
        "https://api.ipify.org",
        "aws access key id",
        "aws access key secret"
    ) as session:
        for i in range(5):
            response = await session.get("https://api.ipify.org")
            print(f"Your ip: {await response.text()}")


if __name__ == "__main__":
    get_event_loop().run_until_complete(main())
```
space-invaders 0.3.2
A cool spaceship shooter rouge like game inspired by Hyperspace Invaders


# Space Invaders  
  
## ABOUT THE GAME  
  
 - The game consists of phases, you have to survive each phase to  
   complete the level You dont necessarily have to kill all enemies, its  
   enough to dodge them, tho you wont get as much point  
 - There are pickups spawned at random intervals, these pickups make  
   sure to pick them up as they help a lot  
 - Sometimes these pickups are weapons which are way stronger than the  
   default one  
 - You also have lives indicated by helmets on the top left corner   
 - If you die you start from the very beginning  
 - There are 6 levels in total  
   
### CONTROLS  
  
 - Use W, A, S, D to move your ship  
 - Use SPACE to shoot Press  
 - LEFT-SHIFT to change between weapons  
 - SPACE / W / S to fast-forward the credits  
  
## HOW TO INSTALL  
### Administrator Level Installation  
*use this command in the terminal to install the game:*  
  

     pip install space-invaders   

  
### User Level Installation  
*use this command in the terminal to install the game:*  
  

     python -m pip install space-invaders --user  

  
## HOW TO START THE GAME   
  
*Do this after installing the game*  
  
### Admin Level  
*use this command in your terminal:*  
  
     space-invaders  

### User Level  
*First lets check where the game was installed with this command:*  

     python -m pip show space-invaders  

You should see that the Location tells you where the game was installed,   

> Location: Path/To/The/Installation/Folder  


*Finally lets run the game by typing this into the terminal, without the < and > symbol:*  

     python <Path/To/The/Installation/Folder>/space_invaders/run_game.py  


## Unittesting

Information about the unittests is in the <b>space_invaders/tests/INFO.md</b> file.
Read that if you are interested in testing the project.

## USED SOURCES  
  
### SOUNDS  
- main-theme-song:   https://freesound.org/people/zagi2/sounds/340452/  
- default-gun-sound:   https://freesound.org/people/flyingsaucerinvasion/sounds/615809/  
- minigun-sound:   https://freesound.org/people/Halgrimm/sounds/156895/  
- rocket-sound:   https://freesound.org/people/inferno/sounds/18380/  
- defeat-sound:   https://freesound.org/people/landlucky/sounds/277403/  
- win-sound:   https://freesound.org/people/jivatma07/sounds/122255/  
- hit-positive-sound:   https://freesound.org/people/ArtemBasov/sounds/427409/  
- hit-negative-sound:   https://freesound.org/people/strangehorizon/sounds/648200/  
- explosion-sound:   https://freesound.org/people/JakeGwizdak/sounds/565481/  
- pick-up-sound:   https://freesound.org/people/Jocabundus/sounds/678384/  
- credits-music:   https://freesound.org/people/samueloak89/sounds/353775/  
<br>_(2023.04.28)_  
  
### FONTS  
- alien-invader-font:   https://www.dafont.com/alien-invader.font  
- agency-fb-font:  Builtin Windows Font  
<br>_(2023.04.28)_  
  
### COPYRIGHT  
#### All the assets not mentioned above were made by me, and belong to me.
limbus-components 0.1.4
Components to be used with limbus.

# Limbus-Components: Set of basic components for Limbus

[![CI](https://github.com/kornia/limbus-components/actions/workflows/ci.yml/badge.svg)](https://github.com/kornia/limbus-components/actions/workflows/ci.yml)

This package is part of [Limbus](https://github.com/kornia/limbus) and contains a bunch of useful components.

## Installation

This package can be automatically installed by Limbus. If you want to install it manually, you can do it with:

```bash
git clone https://github.com/kornia/limbus-components
cd limbus-components
pip install -e .
```

For development purposes, you can install it with:

```bash
pip install -e .[dev]  # also installs limbus
```

### Dev Requirements

To add new components that must be done in the folder `limbus_components_dev` and then in order to release the changes you must run the the `release` script.

All the `__init__.py` files inside the folder `limbus_components_dev` must have the imports following the next patterns:

```python
    from . import <component_module>  # to import modules
    from .<component_module> import <component_class0>, <component_class1>, ...  # to import components
    # IMPORTANT NOTE: imports with () are not allowed
```

if they are not following these patterns, the `release` script will fail. Check examples in the folder `limbus_components_dev`.

Steps to run the `release` script:
- If you changed an existing module, first of all you need to remove the module in `limbus_components` folder.
- Run the `release` script: `python scripts/release.py`
- Check that the changes in the `limbus_components` folder are the expected ones.
- commit the changes and push them to the repo.