open new branch restructure_and_doc
inquiry: create a dummy class to wrap the VPD numbers.

Create a dummy class, VPD, with one element for each supported
VPD value.
This is kind of an enum, but more portable since proper enums did not come
until python 3.4.

This changes the use slightly since you need to write
INQUIRY.VPD.SUPPORTED_VPD_PAGES instead of just
INQUIRY.SUPPORTED_VPD_PAGES.

The extra .VPD. is good for readability since it improves the information:
This is part of the INQUIRY command,
this is a VPD page constant
the actual page is SupportedVPDPages.
I.e. it hightlights that this is a VPD page constant.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
scsi: create a class to hold all opcode values

Create the class SCSI.OPCODE to hold constants for all opcode values.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
scsi-command: add a function to create a blank cdb based on the opcode

The size of the opcode is known by the opcode number, so we
can create a helper function that will create a blank cdb byte array of the
correct size based on the opcode.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
adding some meta data to the setup script
added docstring to SCSIDevice class
added Docstrings to Inquiry class
added Docstrings to SCSI class and fixing typo
added Docstrings to SCSICommand class
Merge remote-tracking branch 'origin/master' into restructure_and_doc
refactor some attributes and exposed them as properties
fixed some code so its more pep8 conform
fixed some code so its more pep8 conform and added some properties
fixed some imports
removed build_cdb from SCSICommand
moved OPCODE and SCSI_STATUS values to scsi_command
fixed some method calls after rename so they are more pep8 conform
adding a enum class

this might go to a other subpackage later on but for now it
introduces a way to create a "fake" enum. You can pass

a dict or simply keyword aruments:

>>bar = Enum({'a': 1, 'b': 2})
>>bar.a
1
>>bar.b
2
>>bar =Enum(a=1,b=2)
>>bar.a
1
>>bar.b
2
added a Meta class for exeptions

for now its pretty simple but and more of an example how to
assign special exceptions to a class.

from scsi_exceptiom import SCSICommandExceptionMeta as META

class SomeSCSICommand(object):
   __metaclass__ = META
Merge branch 'restructure_and_doc'