Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
lib-py-b2b / fedex.py
Size: Mime:
from enum import Enum, IntEnum


class FedexServiceType(Enum):
    # EUROPE_FIRST_INTERNATIONAL_PRIORITY
    # FEDEX_1_DAY_FREIGHT
    # FEDEX_2_DAY
    # FEDEX_2_DAY_AM
    # FEDEX_2_DAY_FREIGHT
    # FEDEX_3_DAY_FREIGHT
    # FEDEX_DISTANCE_DEFERRED
    # FEDEX_EXPRESS_SAVER
    # FEDEX_FIRST_FREIGHT
    # FEDEX_FREIGHT_ECONOMY
    # FEDEX_FREIGHT_PRIORITY
    FEDEX_GROUND = 92
    # FEDEX_NEXT_DAY_AFTERNOON
    # FEDEX_NEXT_DAY_EARLY_MORNING
    # FEDEX_NEXT_DAY_END_OF_DAY
    # FEDEX_NEXT_DAY_FREIGHT
    # FEDEX_NEXT_DAY_MID_MORNING
    # FIRST_OVERNIGHT
    GROUND_HOME_DELIVERY = 90
    # INTERNATIONAL_ECONOMY
    # INTERNATIONAL_ECONOMY_FREIGHT
    # INTERNATIONAL_FIRST
    # INTERNATIONAL_PRIORITY
    # INTERNATIONAL_PRIORITY_EXPRESS
    # INTERNATIONAL_PRIORITY_FREIGHT
    PRIORITY_OVERNIGHT = 1
    # SAME_DAY
    # SAME_DAY_CITY
    # SMART_POST
    STANDARD_OVERNIGHT = 5
    UNKNOWN = -1

    @classmethod
    def for_(cls, name: str):
        try:
            return cls[name]
        except ValueError:
            return cls.UNKNOWN


class FedexTrackingIdType:
    @staticmethod
    def for_(service_type: FedexServiceType):
        if service_type == FedexServiceType.GROUND_HOME_DELIVERY:
            return "GROUND"
        elif service_type == FedexServiceType.FEDEX_GROUND:
            return "GROUND"
        else:
            return "FEDEX"


class FedexWeightType(Enum):
    KG = 1
    LB = 2
    LBS = 2
    READ_SCALE = 3


class FedexDropOffType(Enum):
    REGULAR_PICKUP = 'REGULAR_PICKUP'
    REQUEST_COURIER = 'REQUEST_COURIER'
    DROP_BOX = 'DROP_BOX'
    BUSINESS_SERVICE_CENTER = 'BUSINESS_SERVICE_CENTER'
    STATION = 'STATION'


class FedexPackaging(Enum):
    FEDEX_BOX = 'FEDEX_BOX'
    FEDEX_PAK = 'FEDEX_PAK'
    FEDEX_TUBE = 'FEDEX_TUBE'
    YOUR_PACKAGING = 'YOUR_PACKAGING'
    FEDEX_ENVELOPE = 'FEDEX_ENVELOPE'


class FedexPhysicalPackaging(Enum):
    BAG = 'BAG'
    BARREL = 'BARREL'
    BASKET = 'BASKET'
    BOX = 'BOX'
    BUCKET = 'BUCKET'
    BUNDLE = 'BUNDLE'
    CARTON = 'CARTON'
    CASE = 'CASE'
    CONTAINER = 'CONTAINER'
    CRATE = 'CRATE'
    CYLINDER = 'CYLINDER'
    DRUM = 'DRUM'
    ENVELOPE = 'ENVELOPE'
    HAMPER = 'HAMPER'
    OTHER = 'OTHER'
    PAIL = 'PAIL'
    PALLET = 'PALLET'
    PIECE = 'PIECE'
    REEL = 'REEL'
    ROLL = 'ROLL'
    SKID = 'SKID'
    TANK = 'TANK'
    TUBE = 'TUBE'


class FedexPaymentType(Enum):
    RECIPIENT = 'RECIPIENT'
    SENDER = 'SENDER'
    THIRD_PARTY = 'THIRD_PARTY'


class FedexLabelType(Enum):
    LABEL_DATA_ONLY = 'LABEL_DATA_ONLY'
    COMMON2D = 'COMMON2D'


class FedexLabelImageType(Enum):
    DPL = 'DPL'
    EPL2 = 'EPL2'
    PDF = 'PDF'
    PNG = 'PNG'
    ZPLII = 'ZPLII'


class FedexCustomerReferenceType(Enum):
    CUSTOMER_REFERENCE = 'CUSTOMER_REFERENCE'
    DEPARTMENT_NUMBER = 'DEPARTMENT_NUMBER'
    INTRACOUNTRY_REGULATORY_REFERENCE = 'INTRACOUNTRY_REGULATORY_REFERENCE'
    INVOICE_NUMBER = 'INVOICE_NUMBER'
    P_O_NUMBER = 'P_O_NUMBER'
    RMA_ASSOCIATION = 'RMA_ASSOCIATION'
    SHIPMENT_INTEGRITY = 'SHIPMENT_INTEGRITY'


class FedexLabelStockType(Enum):
    PAPER_4X6 = 'PAPER_4X6'
    PAPER_4X6_75 = 'PAPER_4X6.75'
    PAPER_4X8 = 'PAPER_4X8'
    PAPER_4X9 = 'PAPER_4X9'
    PAPER_7X4_75 = 'PAPER_7X4.75'
    PAPER_8_5X11_BOTTOM_HALF_LABEL = 'PAPER_8.5X11_BOTTOM_HALF_LABEL'
    PAPER_8_5X11_TOP_HALF_LABEL = 'PAPER_8.5X11_TOP_HALF_LABEL'
    PAPER_LETTER = 'PAPER_LETTER'
    STOCK_4X6 = 'STOCK_4X6'
    STOCK_4X6_75 = 'STOCK_4X6.75'
    STOCK_4X6_75_LEADING_DOC_TAB = 'STOCK_4X6.75_LEADING_DOC_TAB'
    STOCK_4X6_75_TRAILING_DOC_TAB = 'STOCK_4X6.75_TRAILING_DOC_TAB'
    STOCK_4X8 = 'STOCK_4X8'
    STOCK_4X9 = 'STOCK_4X9'
    STOCK_4X9_LEADING_DOC_TAB = 'STOCK_4X9_LEADING_DOC_TAB'
    STOCK_4X9_TRAILING_DOC_TAB = 'STOCK_4X9_TRAILING_DOC_TAB'


class FedexSpecialServiceType(Enum):
    ALCOHOL = 'ALCOHOL'
    APPOINTMENT_DELIVERY = 'APPOINTMENT_DELIVERY'
    BATTERY = 'BATTERY'
    COD = 'COD'
    DANGEROUS_GOODS = 'DANGEROUS_GOODS'
    DRY_ICE = 'DRY_ICE'
    NON_STANDARD_CONTAINER = 'NON_STANDARD_CONTAINER'
    PRIORITY_ALERT = 'PRIORITY_ALERT'
    SIGNATURE_OPTION = 'SIGNATURE_OPTION'


class FedexLabelPrintOrientation(Enum):
    BOTTOM_EDGE_OF_TEXT_FIRST = 'BOTTOM_EDGE_OF_TEXT_FIRST'
    TOP_EDGE_OF_TEXT_FIRST = 'TOP_EDGE_OF_TEXT_FIRST'


class FedexSignatureOptionType(Enum):
    ADULT = 'ADULT'
    DIRECT = 'DIRECT'
    INDIRECT = 'INDIRECT'
    NO_SIGNATURE_REQUIRED = 'NO_SIGNATURE_REQUIRED'
    SERVICE_DEFAULT = 'SERVICE_DEFAULT'


class FedexTransitTime(IntEnum):
    ONE_DAY = 1
    TWO_DAYS = 2
    THREE_DAYS = 3
    FOUR_DAYS = 4
    FIVE_DAYS = 5
    SIX_DAYS = 6
    SEVEN_DAYS = 7
    EIGHT_DAYS = 8
    NINE_DAYS = 9
    TEN_DAYS = 10
    ELEVEN_DAYS = 11
    TWELVE_DAYS = 12
    THIRTEEN_DAYS = 13
    FOURTEEN_DAYS = 14
    FIFTEEN_DAYS = 15
    SIXTEEN_DAYS = 16
    SEVENTEEN_DAYS = 17
    EIGHTEEN_DAYS = 18
    NINETEEN_DAYS = 19
    TWENTY_DAYS = 20
    UNKNOWN = -1

    @classmethod
    def for_(cls, name: str):
        try:
            return cls[name]
        except ValueError:
            return cls.UNKNOWN