
# Files needed in this package

**`NOTES.txt`**
This file.

**`PwrUSBImp.h`**
Exact copy of `Mac/powerusb_commandline_mac/normal/source\ code/PwrUSBImp.h`
Retrieved 2014-10-30.  
Last modified 2012-06-01.
Checksum:  `MD5 (PwrUSBImp.h) = 1ee288817fb8c8a69eb2204b192809b0`
Note that for copyright reasons this file should *not* be distributed with the package, but can be (at least as of 2014-10-30) retrieved from [pwrusb's website](http://www.pwrusb.com/downloads.html) in the [Mac software package](http://www.pwrusb.com/downloads/Mac.zip).
Makefile will attempt to download and install this file automatically.


**`PwrUsbCmd.cpp`**
Exact copy of `Mac/powerusb_commandline_mac/normal/source\ code/PwrUsbCmd.cpp`
Retrieved 2014-10-30.  
Last modified 2012-06-01.
Checksum:  `MD5 (PwrUsbCmd.cpp) = a1e44a69d16d24d934fc20077fe2e69c`
Note that for copyright reasons this file should *not* be distributed with the package, but can be (at least as of 2014-10-30) retrieved from [pwrusb's website](http://www.pwrusb.com/downloads.html) in the [Mac software package](http://www.pwrusb.com/downloads/Mac.zip).
Makefile will attempt to download and install this file automatically.


**`libpowerusb.dylib`**
Exact copy of `Mac/powerusb_commandline_mac/normal/source\ code/libpowerusb.dylib`
Retrieved 2014-10-30.  
Last modified 2012-06-01.
Checksum:  `MD5 (libpowerusb.dylib) = 20701d6c6893101e057fde59ab019788`
Note that for copyright reasons this file should *not* be distributed with the package, but can be (at least as of 2014-10-30) retrieved from [pwrusb's website](http://www.pwrusb.com/downloads.html) in the [Mac software package](http://www.pwrusb.com/downloads/Mac.zip).
Makefile will attempt to download and install this file automatically.


**`PwrUsbCmd_interface.cpp`**
The purpose of this file is to provide a few functions for SWIG wrapping to Python while leaving the `PwrUSBCmd.cpp` file unchanged.


**`PwrUsbCmd_interface.i`**
The purpose of this file is to provide a few functions for SWIG wrapping to Python while leaving the `PwrUSBCmd.cpp` file unchanged.


**`Makefile`**


**`CHANGES.txt`**


**`LICENSE.txt`**


**`README.md`**


**`TODO.txt`**


**`setup.py`**


**`setup.cfg`**

----

# Set up test environment

set up fresh:

    conda create -n pwrusb-dev python=3.5 anaconda ipython
    source activate pwrusb-dev
    pip install pypandoc

# testing

install:

    python setup.py install --record installed_files.txt

uninstall:
    
    cat installed_files.txt | xargs rm -rf 

## test sequence

Simple/dirty test sequence:  (TODO: turn this into an actual test routine)

    import pwrusb
    import time
    import numpy as np
    for i in np.arange(10):
        s = r(), r(), r()
        pwrusb.set_all_outlet_states(s)
        s1 = pwrusb.get_all_outlet_states()
        print(s,s1)
        if s[0] is not s1[0] or s[1] is not s1[1] or s[2] is not s1[2]:
            print('\toops! examine above line')
        time.sleep(1)

----

# Checklist for release to github & pypi

- update version number in __about__.py (see notes in that file for version numbering convention)
- Update CHANGES.txt
- be sure to add all changes in git
- be sure got COMMIT all changes in git
- check `git status` to make sure nothing still dangling
- Then:

    source activate pwrusb-dev
    cd /Users/hroe/Dropbox/py/pwrusb
    rm -rf dist/*  # you probably want to do this to clean up
    rm -rf build   # you may want to do this to clean up?
    python setup.py sdist
    versionnumber=`./get_current_pwrusb_version_number.sh`
    git tag -a $versionnumber -m "Tagged for version "$versionnumber
    git push origin $versionnumber
    git push origin master
    python setup.py sdist
    #     python setup.py bdist_wheel  # this line not currently working, why? maybe because distutils vs setuptools?
    twine upload -r pypi dist/*
