Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
6a9927b
update sample for AddressValidation V4, added new wsdls
radzhome Nov 30, 2015
faabb0e
update wsdls
radzhome Nov 30, 2015
baa8d83
Updated README.rst to reflect the quasi-maintained state
gtaylor Nov 30, 2015
6a79863
update example for new wsdl v17
radzhome Nov 30, 2015
fa27c54
refactored for v17 ship service, added local and lang client params
radzhome Nov 30, 2015
5de6801
removed unused wsdls
radzhome Dec 1, 2015
0d3ea84
added new features
radzhome Dec 1, 2015
351d24d
fixed example to work with latest wsdl
radzhome Dec 1, 2015
88f8c1d
added print request response
radzhome Dec 1, 2015
830ad6a
updated to work with latest wsdl
radzhome Dec 1, 2015
f90cece
fix typo
radzhome Dec 1, 2015
1b6145d
fix typo
radzhome Dec 1, 2015
87e9284
updated wsdl to v 10
radzhome Dec 1, 2015
1309374
cleanup
radzhome Dec 1, 2015
121f351
cleanup, refactor
radzhome Dec 1, 2015
6d760db
add doc
radzhome Dec 1, 2015
5f70193
added comment
radzhome Dec 1, 2015
ba53fcf
added comments
radzhome Dec 1, 2015
9184899
removed unused wsdls
radzhome Dec 1, 2015
7ae1dba
added transaction id
radzhome Dec 1, 2015
26cdd1e
added transaction id, comment
radzhome Dec 1, 2015
ecf17e9
Revert "removed unused wsdls"
radzhome Dec 1, 2015
12cde1f
added comments, transaction id
radzhome Dec 1, 2015
6a9f3dc
removed unused wsdls
radzhome Dec 1, 2015
567c43e
use parent maaster
radzhome Dec 9, 2015
f1abf32
added nex release changes
radzhome Dec 1, 2015
d01e4a7
added quickstart, fedex doc links
radzhome Dec 1, 2015
f36300c
remove old and unused wsdls
radzhome Dec 1, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions CHANGES.rst
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
Change Log
==========

TODO: next release
------------------

* Bump ShipService WSDL to v17 for create and delete shipment. (radlws)
* Bump AddressValidation WSDL to v4. (radlws)
* Bump RateService WSDL to v18. (radlws)
* Bump TrackService WSDL to v10. (radlws)
* General improvements to base class. (radlws)
* Refactoring and updates to examples. (radlws)
* Added test classes. (radlws)
* Remove old and unused WSDLs. (radlws)

1.1.1
-----

Expand Down
Empty file modified LICENSE.txt
100644 → 100755
Empty file.
Empty file modified MANIFEST.in
100644 → 100755
Empty file.
22 changes: 21 additions & 1 deletion README.rst
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Python FedEx SOAP API Module
:Author: Greg Taylor
:License: BSD
:Status: Stable
:Maintained: Quasi-maintained, looking for new maintainer

What is it?
-----------
Expand All @@ -19,6 +20,12 @@ The easiest way is via pip or easy_install::

pip install fedex

Quick Start
-----------

Edit the example_config.py file in examples with your fedex credentials
and run any of the provided examples.

Documentation
-------------

Expand All @@ -31,7 +38,20 @@ Support
-------

Head over to https://github.com/gtaylor/python-fedex/issues
and submit an issue if you have any problems or questions.
and submit an issue if you have any problems or questions. Due to this
package's quasi-maintained state, most problems are going to require
investigation or a submitted pull request by someone other than
Greg Taylor.
<<<<<<< HEAD
=======


Fedex Support and Documentation
-------------------------------

Fedex Support Email: websupport@fedex.com
Developer Portal: http://www.fedex.com/us/developer/
>>>>>>> added quickstart, fedex doc links

Legal Mumbo Jumbo
-----------------
Expand Down
Empty file modified doc_source/epydoc.config
100644 → 100755
Empty file.
Empty file modified docs/api-objects.txt
100644 → 100755
Empty file.
Empty file modified docs/class-tree.html
100644 → 100755
Empty file.
Empty file modified docs/crarr.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/epydoc.css
100644 → 100755
Empty file.
Empty file modified docs/epydoc.js
100644 → 100755
Empty file.
Empty file modified docs/fedex-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex-pysrc.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.base_service-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.base_service-pysrc.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.base_service.FedexBaseService-class.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.base_service.FedexBaseServiceException-class.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.base_service.FedexError-class.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.base_service.FedexFailure-class.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.base_service.SchemaValidationError-class.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.config-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.config-pysrc.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.config.FedexConfig-class.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.printers-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.printers-pysrc.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.printers.unix-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.printers.unix-pysrc.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.printers.unix.DirectDevicePrinter-class.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.services-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.services-pysrc.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.services.address_validation_service-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.services.address_validation_service-pysrc.html
100644 → 100755
Empty file.
Empty file.
Empty file modified docs/fedex.services.package_movement-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.services.package_movement-pysrc.html
100644 → 100755
Empty file.
Empty file.
Empty file.
Empty file.
Empty file modified docs/fedex.services.rate_service-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.services.rate_service-pysrc.html
100644 → 100755
Empty file.
Empty file.
Empty file modified docs/fedex.services.ship_service-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.services.ship_service-pysrc.html
100644 → 100755
Empty file.
Empty file.
Empty file.
Empty file modified docs/fedex.services.track_service-module.html
100644 → 100755
Empty file.
Empty file modified docs/fedex.services.track_service-pysrc.html
100644 → 100755
Empty file.
Empty file.
Empty file modified docs/fedex.services.track_service.FedexTrackRequest-class.html
100644 → 100755
Empty file.
Empty file modified docs/frames.html
100644 → 100755
Empty file.
Empty file modified docs/help.html
100644 → 100755
Empty file.
Empty file modified docs/identifier-index.html
100644 → 100755
Empty file.
Empty file modified docs/index.html
100644 → 100755
Empty file.
Empty file modified docs/module-tree.html
100644 → 100755
Empty file.
Empty file modified docs/redirect.html
100644 → 100755
Empty file.
Empty file modified docs/toc-everything.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex.base_service-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex.config-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex.printers-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex.printers.unix-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex.services-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex.services.address_validation_service-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex.services.package_movement-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex.services.rate_service-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex.services.ship_service-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc-fedex.services.track_service-module.html
100644 → 100755
Empty file.
Empty file modified docs/toc.html
100644 → 100755
Empty file.
Empty file modified docs/uml_class_diagram_for_fedex_ba.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_ba_2.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_ba_3.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_ba_4.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_ba_5.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_co.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_pr.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_se.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_se_2.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_se_3.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_se_4.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_se_5.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_se_6.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_se_7.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_se_8.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/uml_class_diagram_for_fedex_se_9.gif
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified examples/README.txt
100644 → 100755
Empty file.
101 changes: 71 additions & 30 deletions examples/address_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,51 +7,92 @@ class can handle up to 100 addresses for validation.
from example_config import CONFIG_OBJ
from fedex.services.address_validation_service import FedexAddressValidationRequest

# NOTE: TO USE ADDRESS VALIDATION SERVICES, YOU NEED TO REQUEST FEDEX TO ENABLE THIS SERVICE FOR YOUR ACCOUNT.
# BY DEFAULT, THE SERVICE IS DISABLED AND YOU WILL RECEIVE AUTHENTICATION FAILED, 1000 RESPONSE.

# Set this to the INFO level to see the response from Fedex printed in stdout.
logging.basicConfig(level=logging.INFO)

# This is the object that will be handling our tracking request.
# We're using the FedexConfig object from example_config.py in this dir.
connection = FedexAddressValidationRequest(CONFIG_OBJ)

# The AddressValidationOptions are created with default values of None, which
# will cause WSDL validation errors. To make things work, each option needs to
# be explicitly set or deleted.

## Set the flags we want to True (or a value).
connection.AddressValidationOptions.CheckResidentialStatus = True
connection.AddressValidationOptions.VerifyAddresses = True
connection.AddressValidationOptions.RecognizeAlternateCityNames = True
connection.AddressValidationOptions.MaximumNumberOfMatches = 3

## Delete the flags we don't want.
del connection.AddressValidationOptions.ConvertToUpperCase
del connection.AddressValidationOptions.ReturnParsedElements

## *Accuracy fields can be TIGHT, EXACT, MEDIUM, or LOOSE. Or deleted.
connection.AddressValidationOptions.StreetAccuracy = 'LOOSE'
del connection.AddressValidationOptions.DirectionalAccuracy
del connection.AddressValidationOptions.CompanyNameAccuracy

## Create some addresses to validate
address1 = connection.create_wsdl_object_of_type('AddressToValidate')
address1.CompanyName = 'International Paper'
customer_transaction_id = "*** AddressValidation Request v4 using Python ***" # Optional transaction_id
# Optional locale & language client data
client_language_code = 'EN'
client_locale_code = 'US'
avs_request = FedexAddressValidationRequest(CONFIG_OBJ, customer_transaction_id=customer_transaction_id,
client_locale_code=client_locale_code,
client_language_code=client_language_code)

# Create some addresses to validate
address1 = avs_request.create_wsdl_object_of_type('AddressToValidate')
address1.ClientReferenceId = "Your ID for the Recipient"
address1.Address.StreetLines = ['155 Old Greenville Hwy', 'Suite 103']
address1.Address.City = 'Clemson'
address1.Address.StateOrProvinceCode = 'SC'
address1.Address.PostalCode = 29631
address1.Address.CountryCode = 'US'
address1.Address.Residential = False
connection.add_address(address1)

address2 = connection.create_wsdl_object_of_type('AddressToValidate')
address1.Contact.PersonName = 'Recipient Name'
address1.Contact.CompanyName = 'Company Name'
address1.Contact.PhoneNumber = '999-123-5343'
address1.Contact.EMailAddress = 'example_recipient@email.com'
avs_request.add_address(address1)

address2 = avs_request.create_wsdl_object_of_type('AddressToValidate')
address2.Address.StreetLines = ['320 S Cedros', '#200']
address2.Address.City = 'Solana Beach'
address2.Address.StateOrProvinceCode = 'CA'
address2.Address.PostalCode = 92075
address2.Address.CountryCode = 'US'
connection.add_address(address2)
avs_request.add_address(address2)


# If you'd like to see some documentation on the ship service WSDL, un-comment
# this line. (Spammy).
#print avs_request.client

# Un-comment this to see your complete, ready-to-send request as it stands
# before it is actually sent. This is useful for seeing what values you can
# change.
#print avs_request.AddressesToValidate
#print avs_request.ClientDetail
#print avs_request.TransactionDetail

# Fires off the request, sets the 'response' attribute on the object.
avs_request.send_request()

# good to un-comment to see the variables returned by the Fedex reply.
print avs_request.response
#print avs_request.client.last_received()

# See the request printed out.
#print avs_request.client.last_sent()

# Overall end result of the query
for i in range(len(avs_request.response.AddressResults)):

print "Details for Address", i + 1
print "The validated street is:", avs_request.response.AddressResults[i].EffectiveAddress.StreetLines
print "The validated city is:", avs_request.response.AddressResults[i].EffectiveAddress.City
print "The validated state code is:", avs_request.response.AddressResults[i].EffectiveAddress.StateOrProvinceCode
print "The validated postal code is:", avs_request.response.AddressResults[i].EffectiveAddress.PostalCode
print "The validated country code is:", avs_request.response.AddressResults[i].EffectiveAddress.CountryCode

# Can be used to determine the address classification to figure out if Residential fee should apply.
# MIXED, RESIDENTIAL, UNKNOWN, BUSINESS
print "The validated address is residential:", avs_request.response.AddressResults[i].Classification != 'BUSINESS'

## Send the request and print the response
connection.send_request()
print connection.response
# Getting the optional attributes if available
for j in range(len(avs_request.response.AddressResults[i].Attributes)):
cur_attribute = avs_request.response.AddressResults[i].Attributes[j]
if cur_attribute.Name == "CountrySupported":
print "Supported Country:", cur_attribute.Value == 'true'
if cur_attribute.Name == "SuiteRequiredButMissing":
print "Missing Suite:", cur_attribute.Value == 'true'
if cur_attribute.Name == "CountrySupported":
print "Invalid Suite:", cur_attribute.Value == 'true'
if cur_attribute.Name == "MultipleMatches":
print "Multiple Matches:", cur_attribute.Value == 'true'
if cur_attribute.Name == "POBox":
print "Is POBox:", cur_attribute.Value == 'true'
57 changes: 40 additions & 17 deletions examples/create_freight_shipment.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,18 @@
from example_config import CONFIG_OBJ
from fedex.services.ship_service import FedexProcessShipmentRequest

# What kind of file do you want this example to generate?
# Valid choices for this example are PDF, PNG
GENERATE_IMAGE_TYPE = 'PDF'


# Set this to the INFO level to see the response from Fedex printed in stdout.
#logging.basicConfig(filename="suds.log", level=logging.DEBUG)
logging.basicConfig(level=logging.INFO)

# NOTE: A VALID 'freight_account_number' REQUIRED IN YOUR 'CONFIB_OBJ' FOR THIS SERVICE TO WORK.
# OTHERWISE YOU WILL GET FEDEX FREIGHT OR ASSOCIATED ADDRESS IS REQUIRED, ERROR 3619.

# This is the object that will be handling our tracking request.
# We're using the FedexConfig object from example_config.py in this dir.
shipment = FedexProcessShipmentRequest(CONFIG_OBJ)
Expand Down Expand Up @@ -52,18 +61,21 @@
# This is needed to ensure an accurate rate quote with the response.
shipment.RequestedShipment.Recipient.Address.Residential = False
shipment.RequestedShipment.FreightShipmentDetail.TotalHandlingUnits = 1
shipment.RequestedShipment.ShippingChargesPayment.Payor.ResponsibleParty.AccountNumber = CONFIG_OBJ.freight_account_number

shipment.RequestedShipment.FreightShipmentDetail.FedExFreightBillingContactAndAddress.Contact.PersonName = 'Sender Name'
shipment.RequestedShipment.FreightShipmentDetail.FedExFreightBillingContactAndAddress.Contact.CompanyName = 'Some Company'
shipment.RequestedShipment.FreightShipmentDetail.FedExFreightBillingContactAndAddress.Contact.PhoneNumber = '9012638716'

shipment.RequestedShipment.FreightShipmentDetail.FedExFreightBillingContactAndAddress.Address.StreetLines = ['2000 Freight LTL Testing']
shipment.RequestedShipment.FreightShipmentDetail.FedExFreightBillingContactAndAddress.Address.City = 'Harrison'
shipment.RequestedShipment.FreightShipmentDetail.FedExFreightBillingContactAndAddress.Address.StateOrProvinceCode = 'AR'
shipment.RequestedShipment.FreightShipmentDetail.FedExFreightBillingContactAndAddress.Address.PostalCode = '72601'
shipment.RequestedShipment.FreightShipmentDetail.FedExFreightBillingContactAndAddress.Address.CountryCode = 'US'
shipment.RequestedShipment.FreightShipmentDetail.FedExFreightBillingContactAndAddress.Address.Residential = False
shipment.RequestedShipment.ShippingChargesPayment.Payor.ResponsibleParty.AccountNumber = \
CONFIG_OBJ.freight_account_number

billing_contact_address = shipment.RequestedShipment.FreightShipmentDetail.FedExFreightBillingContactAndAddress

billing_contact_address.Contact.PersonName = 'Sender Name'
billing_contact_address.Contact.CompanyName = 'Some Company'
billing_contact_address.Contact.PhoneNumber = '9012638716'

billing_contact_address.Address.StreetLines = ['2000 Freight LTL Testing']
billing_contact_address.Address.City = 'Harrison'
billing_contact_address.Address.StateOrProvinceCode = 'AR'
billing_contact_address.Address.PostalCode = '72601'
billing_contact_address.Address.CountryCode = 'US'
billing_contact_address.Address.Residential = False
spec = shipment.create_wsdl_object_of_type('ShippingDocumentSpecification')

spec.ShippingDocumentTypes = [spec.CertificateOfOrigin]
Expand Down Expand Up @@ -93,6 +105,11 @@
shipment.RequestedShipment.LabelSpecification.LabelPrintingOrientation = 'BOTTOM_EDGE_OF_TEXT_FIRST'
shipment.RequestedShipment.EdtRequestType = 'NONE'

# Delete the flags we don't want.
# Can be SHIPPING_LABEL_FIRST, SHIPPING_LABEL_LAST or delete
if hasattr(shipment.RequestedShipment.LabelSpecification, 'LabelOrder'):
del shipment.RequestedShipment.LabelSpecification.LabelOrder # Delete, not using.

package1_weight = shipment.create_wsdl_object_of_type('Weight')
package1_weight.Value = 500.0
package1_weight.Units = "LB"
Expand Down Expand Up @@ -131,13 +148,17 @@
# attributes through the response attribute on the request object. This is
# good to un-comment to see the variables returned by the Fedex reply.
print shipment.response
#print shipment.client.last_received()
# Here is the overall end result of the query.
# print "HighestSeverity:", shipment.response.HighestSeverity
# # Getting the tracking number from the new shipment.
# print "Tracking #:", shipment.response.CompletedShipmentDetail.CompletedPackageDetails[0].TrackingIds[0].TrackingNumber
# # Net shipping costs.
# print "Net Shipping Cost (US$):", shipment.response.CompletedShipmentDetail.CompletedPackageDetails[0].PackageRating.PackageRateDetails[0].NetCharge.Amount

# See the request printed out.
#print shipment.client.last_sent()

# # Get the label image in ASCII format from the reply. Note the list indices
# we're using. You'll need to adjust or iterate through these if your shipment
# has multiple packages.
Expand All @@ -148,12 +169,14 @@
label_binary_data = binascii.a2b_base64(ascii_label_data)

"""
This is an example of how to dump a label to a PNG file.
This is an example of how to dump a label to a local file.
"""
# This will be the file we write the label out to.
pdf_file = open('example_shipment_label.pdf', 'wb')
pdf_file.write(label_binary_data)
pdf_file.close()
out_path = 'example_freight_shipment_label.%s' % GENERATE_IMAGE_TYPE.lower()
print "Writing to file", out_path
out_file = open(out_path, 'wb')
out_file.write(label_binary_data)
out_file.close()

"""
This is an example of how to print the label to a serial printer. This will not
Expand All @@ -175,4 +198,4 @@
#label_printer = serial.Serial(0)
#print "SELECTED SERIAL PORT: "+ label_printer.portstr
#label_printer.write(label_binary_data)
#label_printer.close()
#label_printer.close()
Loading