semvec/pypi-packages huggingface dataset:
geo-nx 0.2.0
Geo-NX : Geospatial Network Analysis
Requires Python: <4,>=3.11
Keywords: network, geographic, geospatial, open data

# Geo-NX : Geospatial Network Analysis <img src="https://github.com/loco-labs/geo_nx/blob/main/docs/geo_nx.png" alt="geo_nx" style="float:right;width:100px;height:90px;">

Geo-NX is a [Python package](https://github.com/loco-labs/geo_nx) for the creation, manipulation, and study of geospatial networks.

Geo-NX extends NetworkX operations to allow operations on geometric types.

*The Geo-NX package was created as part of the [Qualicharge](https://github.com/MTES-MCT/qualicharge) project*

## Description

Geo-NX combines the capabilities of NetworkX, GeoPandas and shapely :

- NetworkX is the core of Geo-NX,
- GeoPandas is the support for vectorized processing,
- Geo-NX uses shapely for geometry analysis and manipulation  

Documentation is available at https://loco-labs.github.io/geo_nx/

## Data structures

`geo_nx.GeoGraph` is a subclass of `networkx.Graph` with additional data:

- 'crs': coordinate reference system,
- 'geometry': geospatial representation of nodes and edges.

A `geo_nx.GeoGraph` has two representations:

- a `networkx.Graph` representation where 'crs' is a graph attribute and 'geometry' 
is a node and edge attribute (shapely object),
- a `geopandas.GeoDataFrame` representation for the nodes and for the edges where columns are id (node or edge) and attributes.

## Example

Simple distance from Paris to Marseille

```python
In [1]: import geo_nx as gnx
        
        paris = Point(2.3514, 48.8575)
        lyon = Point(4.8357, 45.7640)
        marseille = Point(5.3691, 43.3026)
        bordeaux = Point(-0.56667, 44.833328)

In [2]: simplemap = gpd.GeoDataFrame({
            'geometry': [
                LineString([paris, lyon]), 
                LineString([lyon, marseille]), 
                LineString([paris, bordeaux]), 
                LineString([bordeaux, marseille])
            ]}, crs=4326).to_crs(2154)

In [3]: gr_simplemap = gnx.from_geopandas_edgelist(simplemap)

In [4]: gr_simplemap.to_geopandas_nodelist()
Out[4]:
                             geometry    node_id
    0  POINT (652411.148 6862135.813)          0
    1  POINT (842666.659 6519924.367)          1
    2  POINT (892313.068 6247711.351)          3
    3  POINT (418208.312 6421272.355)          2

In [5]: # 0: paris, 1: lyon, 2: bordeaux, 3: marseille
        # weight is a calculated attribute (length of a geometry)
        nx.shortest_path(gr_simplemap, source=0, target=3, weight='weight')
Out[5]: [0, 1, 3]

In [6]: nx.shortest_path_length(gr_simplemap, source=0, target=3, weight='weight')
Out[6]: 668246.1446978811
```

## Install

Install the latest released version of Geo-NX:

```shell
pip install geo_nx
```

## Bugs

Please report any bugs that you find [here](https://github.com/loco-labs/geo_nx/issues). 
Or, even better, fork the repository on GitHub and create a pull request (PR).
worldtimebuddy 0.1.3
A command-line tool to display current time for different timezones

# worldtimebuddy
Get current time for all possible timezone using CLI (exclusively for developers)

Version - 0.1.3

[![Publish worldtimebuddy](https://github.com/dubesar/worldtimebuddy/actions/workflows/publish-package.yml/badge.svg)](https://github.com/dubesar/worldtimebuddy/actions/workflows/publish-package.yml)

```
Usage: worldtimebuddy [OPTIONS]

  Display current time for all timezones, major timezones, or a specific
  timezone.

Options:
  --format TEXT         DateTime format string
  --major               Show only major timezones
  -tz, --timezone TEXT  Show time for a specific timezone
  --list                List all available timezones
  --delta TEXT          Add or subtract time from a particular timezone
  --help                Show this message and exit.
```

### Installation (PyPI):

`pip3 install worldtimebuddy`

### Installation (Development):
1. Clone the repository locally
``` bash
git clone https://github.com/dubesar/worldtimebuddy.git
cd worldtimebuddy
```
2. Run the following code to install dependencies and worldtimebuddy
``` bash
pip install -r requirements.txt
python3 setup.py build
python3 setup.py install
```


### Usage:


1. Get all the timezones
```
> worldtimebuddy

Africa/Abidjan                 2024-10-06 13:49:11
Africa/Accra                   2024-10-06 13:49:11
....
```

2. Get all timezone in particular format
```
> worldtimebuddy --format '%A, %B %d, %Y %I:%M %p %Z'

Africa/Abidjan                 Sunday, October 06, 2024 01:49 PM GMT
Africa/Accra                   Sunday, October 06, 2024 01:49 PM GMT
Africa/Addis_Ababa             Sunday, October 06, 2024 04:49 PM EAT
...
```

3. Get major timezones

Currenlty only IST/PST/PDT/UTC by default. But user can set major timezones in their environment with name `MAJOR_TIMEZONES`, this tool will pick up those as the major
versions.
eg.
```
> export MAJOR_TIMEZONES=["UTC","Asia/Kolkata"]
> worldtimebuddy --major

UTC                            2024-10-06 13:50:26
PDT                            2024-10-06 06:50:26
Asia/Kolkata                   2024-10-06 19:20:26
```

4. Listing all timezones
```
> worldtimebuddy --list

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
...
```

5. Getting a particular timezone
```
> worldtimebuddy --timezone UTC
UTC                            2024-10-06 19:33:35

> worldtimebuddy --timezone JST
Asia/Tokyo                     2024-10-07 04:33:35
...
```

6. Getting a difference of time from a particular timezone <br> (supported time formats: +/- min, hr, day) 
```
> worldtimebuddy --timezone UTC --delta +2hr
UTC                            2024-10-06 20:43:35
...
```
ohmyoled 2.2.8
64x32 Oled Matrix Display
Requires Python: <=3.10.15

# ohmyoled

# Prerequistes:

Download the binary and support files
Go to releases and download the most recent tag
```
wget https://github.com/TheFinalJoke/ohmyoled/releases/download/$tag/ohmyoled-$tag.tar.gz
```
Uncompress the File
```
tar -zxvf ohmyoled-$tag.tar.gz
```
Run the Install Script
```
#!/bin/bash
cd ohmyoled-$tag
chmod 755 install.sh
sudo ./install.sh
```

# Run The Script 

```
sudo systemctl enable --now ohmyoled.service
```

# Configuration 
This is the Basic of Linux Configuration Files located /etc/ohmyoled/ohmyoled.conf

Run Different Modules Set the Modules Run Attribute to True

*Note: Most needs to have API Tokens assoicated to The Module 
* You will also need to Reload The service after any changes

```
[weather]
Run=True
```

You Can also change different Configurations like weather 
You can add different zipcode/city 

# To Help Write Our and use tests
```
pip install -e .[dev]
```

# Development
Open vscode and make sure you have docker on your raspberry pi
Then connect to remote raspberry pi or run vscode on raspberry pi
Choose to reopen in container and you will have the environment to develop

# Soon To come: Docker Container
# Known Problems

// If your pi is not booting, you will have to change the kernel bootloader. With Raspbain OS the bootloader is borked with HAT Software
https://learn.adafruit.com/adafruit-1-3-color-tft-bonnet-for-raspberry-pi/kernel-module-troubleshooting