semvec/pypi-packages huggingface dataset:
pcan-gatewaybus 0.0.2
pcan gatewaybus backend for "python-can"

# PCAN Gateway Plugin Packages


Target Device :
 [PCAN-Ethernet Gateway](https://www.peak-system.com/PCAN-Ethernet-Gateway-FD-DR.538.0.html?&L=1) 

<br>

## PCAN-Ethernet Gateway Configuration

in [user manual](https://www.peak-system.com/produktcd/Pdf/English/PCAN-Ethernet-Gateway-FD-DR_UserMan_eng.pdf), custom gateway protocol is presented.

in Route Configuration Page, add Routing IP Addresses both side(CAN->Ethernet, Ethernet->CAN)


<br>

## Install Plugin Package

```shell

# install from PyPI
$ pip3 install pcan-gatewaybus

or 

# local installation
$ git clone https://github.com/ys-oh/python-can-gatewaybus
$ cd python-can-gatewaybus
$ pip3 install . 

```



## Usage 


```python
import can

bus = can.Bus(bustype='gateway', channel='<local ip>:<local port>,<remote ip>:<remote port>')

...

```

or

```python
import can
can.rc['interface'] = 'gateway'
can.rc['channel'] = '<local ip>:<local port>,<remote ip>:<remote port>'

bus = can.Bus()

...

```

in 'channel' argument represent Route Addres in PCAN-Ethernet Gateway Routing Configurations.

<br>

<b>local address (ip:port)</b> 
- receive address from PCAN-Ethernet Gateway
- e.g. 192.168.1.1:4000

<br>

<b>remote address (ip:port)</b>
- transmit address to PCAN-Ethernet Gateway
- e.g. 192.168.1.10:3999 

<br><br>

if you config routing in Device (device ip : 192.168.1.1)

    Transmit Channel (CAN->Ethernet) : TCP, 192.168.1.1:3999
    Recieve Channle (Ethernet->CAN) : TCP, :4000


your channel is

    ...
    can.rc['channel'] = '192.168.1.1:3999,192.168.1.1:4000'
    ...


---
pyandex-disk 1.0.0a0
Python HTTP API wrapper for Yandex Disk.
Requires Python: >=3.5

# What is this?
This is `pyandex-disk`, a Python HTTP API wrapper for Yandex Disk.

## Starting up

1. Get your access token [here](https://yandex.ru/dev/disk/poligon/)

2. Install the module

    `pip install pyandex-disk`

3. Enjoy `pyandex-disk`, it has all the docs!

## Example usage:
```

    from pyandex_disk.client import DiskClient

    disk = DiskClient("my_token")

    # get info about my disk
    info = disk.get_disk_info()

    # get meta info about file/directory in my app directory/trash
    meta_info = disk.get_meta_info(
        path="path/to/my/file.jpg",
        preview_size="100x100",
    )

    # get audio files list in my disk
    files_info = disk.get_files_list(
        limit=50,
        media_type="audio",
    )

    # get last uploaded files list
    last_uploaded = disk.get_last_uploaded(
        limit=10,
        media_type="video",
    )

    # set meta data to file in your app directory
    setted_result = disk.set_meta_to_resource(
        "my/file/to/extra/meta/data.txt,
        data={"Custom Header": "custom value"},
    )

    # upload file to yandex disk
    with open("/path/to/my/file.txt", "rb") as f:
        disk.upload_file(
            f,
            path="app:/directory/file.txt",
            overwrite=True
        )

    # upload file to disk by url
    disk.upload_file_from_url(
        "http://example.com/sitemap.xml",
        path="app:/sitemap_example.xml",
    )

    # download file content from yandex.disk
    content = disk.download_file(
        "app:/sitemap_example.xml",
        stream=False,
    )

    # copy resource in disk
    disk.copy_resource(
        from_path="app:/sitemap_example.xml",
        to_path="app:/sitemap_example_copy.xml",
    )

    # move resource in your disk
    disk.move_resource(
        from_path="app:/sitemap_example_copy.xml",
        to_path="app:/sitemap_example_movied_copy.xml",
    )

    # delete resource
    disk.delete_resource(
        "app:/sitemap_example_movied_copy.xml",
        permanently=False, # to trash
    )

    # create folder in your disk
    disk.create_folder(
        "app:/new_folder",
    )

    # publish
    disk.publish_resource("app:/new_folder")

    # unpublish
    disk.unpublish_resource("app:/new_folder")

    # fully empty trash
    disk.empty_trash()
    # or remove file from trash
    disk.empty_trash("app:/sitemap_example_movied_copy.xml")

    # restore resource from trash
    disk.restore_from_trash("app:/sitemap_example_movied_copy.xml")

    # upload dir to disk
    disk.upload_directory("/path/to/source", "app:/path/to/disk", overwrite=True)
```

## Can I contribute to this project?
Of course, we welcome all contributions to this library. Just ensure you write an awesome code!


# License
Read the [LICENSE](LICENSE.md) file.
imgtag 1.1.6
Simple XMP Image Tag & Metadata Editing Library
Requires Python: >=3.6

# ImgTag
### Simple XMP Image Tag & Metadata Editing Module

It is recomended to install using Conda to create a virtual python environment, as it makes it easy to install and manage different packages. Use the following commands to set up an environment:
```
conda env create -f environment.yml
conda activate imgtag
```

<br/>

If you choose to install manually, you must install `exempi` for your OS.

For Debian:
```
sudo apt-get install -y exempi
```
For a Conda environment:
```
conda install -c conda-forge exempi
```

Once `exempi` is installed, install `imgtag` with:
```
python3 -m pip install -y imgtag
```

<br/>

To use `imgtag`:
```python
from imgtag import ImgTag

# Open image for tag editing
test = ImgTag(
           filename="test.jpg",   # The image file
           force_case="lower",    # Converts the case of all tags
                                  # Can be `None`, `"lower"`, `"upper"`
                                  # Default: None
           strip=True,            # Strips whitespace from the ends of all tags
                                  # Default: True
           no_duplicates=True,    # Removes all duplicate tags (case sensitive)
                                  # Default: True
           use_warnings=True      # Toggles warnings
                                  # Default: True
           memory_limit_ratio=0.8 # The maximum percent of free memory to use
                                  # Default: 0.8
       )

# Print existing tags
print("Current tags:")
for tag in test.get_tags():
    print("  Tag:", tag)

# Add tags
test.add_tags(["sleepy", "happy"])

# Remove tags
test.remove_tags(["cute"])

# Set tags, removing all existing tags
test.set_tags(["dog", "good boy"])

# Save changes and close file
test.close()

# Re-open for tag editing
test.open()

# Remove all tags
test.clear_tags()

# Delete the ImgTag object, automatically saving and closing the file
del(test)
```