# Path: roulier/api.py
# class MyValidator(Validator):
# class BaseApi(object):
# class ApiParcel(BaseApi):
# class ApiPackingSlip(BaseApi):
#     def _normalize_coerce_zpl(self, value):
#     def _normalize_coerce_accents(self, value):
#     def __init__(self, config_object):
#     def _validator(self):
#     def _auth(self):
#     def api_schema(self):
#         def wrap_schema(schema):
#     def api_values(self):
#     def errors(self, data):
#     def validate(self, data):
#     def normalize(self, data):
#     def _address(self):
#     def _from_address(self):
#     def _to_address(self):
#     def _parcel(self):
#     def _parcels(self):
#     def _service(self):
#     def _schemas(self):
#     def _packing_slip_number(self):
#     def _parcels_numbers(self):
#     def _schemas(self):


from roulier.api import Api
"""Implementation of Geodis Api."""


class GeodisApiRestWs(Api):
    def _schemas(self):
        return {
            "service": self._service(),
            "auth": self._auth(),
        }

    def normalize(self, data):
        externalApi = super(GeodisApiRestWs, self)
        internalApi = self._interal_api()
        step1 = externalApi.normalize(data)
        step2 = internalApi.normalize(step1)
        return step2

    def api_values(self):
        """Return a dict containing expected keys.

        It's a normalized version of the schema.
        only internal api
        """
        return self._validator().normalized({}, self.api_schema())

    def _interal_api(self):
        pass



# Path: roulier/api.py
# class MyValidator(Validator):
# class BaseApi(object):
# class ApiParcel(BaseApi):
# class ApiPackingSlip(BaseApi):
#     def _normalize_coerce_zpl(self, value):
#     def _normalize_coerce_accents(self, value):
#     def __init__(self, config_object):
#     def _validator(self):
#     def _auth(self):
#     def api_schema(self):
#         def wrap_schema(schema):
#     def api_values(self):
#     def errors(self, data):
#     def validate(self, data):
#     def normalize(self, data):
#     def _address(self):
#     def _from_address(self):
#     def _to_address(self):
#     def _parcel(self):
#     def _parcels(self):
#     def _service(self):
#     def _schemas(self):
#     def _packing_slip_number(self):
#     def _parcels_numbers(self):
#     def _schemas(self):


# Path: roulier/carriers/geodis/geodis_api_rest_ws.py
from roulier.api import Api

"""Implementation of Geodis Api."""


class GeodisApiRestWs(Api):
    def _schemas(self):
        return {
            "service": self._service(),
            "auth": self._auth(),
        }

    def normalize(self, data):
        externalApi = super(GeodisApiRestWs, self)
        internalApi = self._interal_api()
        step1 = externalApi.normalize(data)
        step2 = internalApi.normalize(step1)
        return step2

    def api_values(self):
        """Return a dict containing expected keys.

        It's a normalized version of the schema.
        only internal api
        """
        return self._validator().normalized({}, self.api_schema())

    def _interal_api(self):
        pass



class GeodisMappingIn(Api):