Metadata-Version: 2.1
Name: byu-auvsi-imaging-client
Version: 0.1.3
Summary: Imaging Client GUI for manual classification
Home-page: https://github.com/BYU-AUVSI/imaging
Author: BYU AUVSI Team
Author-email: tylerm15@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
Requires-Dist: requests (==2.20.1)
Requires-Dist: pillow (==5.3.0)
Requires-Dist: opencv-python (==3.4.2.*)
Requires-Dist: ttkthemes (==2.2.0)
Requires-Dist: imutils (==0.5.2)

# Client Graphical User Interface

This client GUI is used for manual imaging target classification through the BYU AUVSI
imaging server.

## Setup

### End-user

If you just want to use the client to classify images, and don't plan on doing
any development with it, here's how you can set it up.

Ubuntu:

```bash
sudo apt install python3-pip python3-tk
pip3 install byu-auvsi-imaging-client
```

And to run you can simply enter:

```bash
./.local/bin/img_gui
```

You may also consider adding `~/.local/bin/` to your PATH:

```bash
export PATH="$HOME/.local/bin:$PATH"
```

### Development

To develop and contribute to this gui, clone the imaging repository.

This gui was built with tkinter in python3 and relies on a few packages

```bash
sudo apt install python3-tk python3-tk
./setup/dev_setup.sh
```

## Use

For development you should run the gui in its local directory:

```bash
cd ...../src/imaging/client
python gui.py
```

If installed via pip, simply run it as a script:

```bash
./~/.local/bin/img_gui
```

## Sub Functions

This gui is built with with a tkinter tab framework. Each tab is initialized at startup which creates each container label and widget on each tab. Only one tab runs at a time.

`lib/client_rest.py` contains all functions that interact with the server  
`lib/tabX.py` contains the functions for tab X  
`lib/tab_tools.py` contains helper functions used by multiple tabs

## Releasing on Pypi

Travis takes care of most of the heavy lifting when you want to release a new version
of the gui onto pip/Pypi. In order to release a new version, you need to do two things:

1. Update the `VERSION` variable in client/setup.py to whatever the new version is going to be called. If you dont do this, the new code will NOT be uploaded onto Pypi!

2. Create a release tag on github. (Goto Releases->Create a new Release). Once a commit
is tagged as a release, Travis will kick off and build deploy the current code to PyPi and thus to pip.

## Future Updates

The header of each file contains possible future improvements


