Metadata-Version: 2.1
Name: pywol
Version: 0.5.0
Summary: A Wake-on-LAN tool written in Python.
Home-page: https://github.com/erberlin/pywol
Author: Erik R Berlin
Author-email: erberlin.dev@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: Click

# Pywol
>A Wake-on-LAN tool written in Python.

[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)
![PyPI](https://img.shields.io/pypi/v/pywol.svg)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pywol.svg)
![PyPI - Wheel](https://img.shields.io/pypi/wheel/pywol.svg)
![CircleCI (all branches)](https://img.shields.io/circleci/project/github/erberlin/pywol.svg)

Pywol allows for starting up [WoL](https://en.wikipedia.org/wiki/Wake-on-LAN)-enabled systems over a network<sup>[1](#f1)</sup>, and can either be used as a CLI tool or imported for use in other Python code.

## Installation

```sh
$ pip install pywol
```

## Usage examples
As a CLI tool:
```sh
$ pywol 1A2B3C4D5E6F --v
Sent magic packet for '1A2B3C4D5E6F' to 255.255.255.255:9.
$
$ pywol 1A:2B:3C:4D:5E:6F --v --ip 192.168.1.5/24
Sent magic packet for '1A:2B:3C:4D:5E:6F' to 192.168.1.255:9.
$
$pywol --help
Usage: pywol [OPTIONS] MAC_ADDRESS

  CLI for the Pywol package.

  Prefer to specify the IPv4 broadcast address of the target host's
  subnet over the default '255.255.255.255'.

  To automatically resolve the broadcast address of a subnet,
  specify the target host's IPv4 address along with its netmask. E.g.
  '192.168.1.5/24' or '192.168.1.5/255.255.255.0' --> '192.168.1.255'

Options:
  --ip_address, --ip TEXT  IPv4 broadcast address or host address with
                            netmask.  [default: 255.255.255.255]
  --port, --p INTEGER      Target port.  [default: 9]
  --verbose, --v
  --help                   Show this message and exit.
```
Imported for use in other code:
```python
from pywol import wake

wake("1A2B3C4D5E6F", ip_address="192.168.1.255")
wake("1A-2B-3C-4D-5E-6F", ip_address="192.168.1.5/24")
```

## Development setup
Clone repo:
```sh
$ git clone https://github.com/erberlin/pywol.git
$ cd pywol
```
Create and activate virtual environment on OS X & Linux:
```sh
$ python3 -m venv venv
$ source venv/bin/activate
```
Create and activate virtual environment on Windows:
```sh
> python -m venv venv
> venv\Scripts\activate
```
Install development requirements:
```sh
$ pip install -r dev_requirements.txt
```
Run test suite:
```sh
$ pytest -v
```

## Why create another WoL tool?
I needed one and this was an opportunity to learn some stuff.

## TODO
* Documentation
* Support for multiple target hosts
* Support for loading input from file

## Meta

Erik R Berlin â€“ erberlin.dev@gmail.com

Distributed under the MIT license. See ``LICENSE`` for more information.

[https://github.com/erberlin/pywol](https://github.com/erberlin/pywol)

___
<b id="f1">1</b>. Provided that any routers between the client and target hosts are configured to forward broadcast packets.

