# Path: git_trac/trac_error.py
# class TracInternalError(TracError):
#     def __init__(self, fault):
#         self._fault = fault
#         self.faultCode = fault.faultCode
# 
#     def __str__(self):
#         return str(self._fault)
# 
# class TracAuthenticationError(TracError):
#     def __init__(self):
#         TracError.__init__(self, 'Authentication with trac server failed.')
# 
# class TracConnectionError(TracError):
#     def __init__(self, msg=None):
#         if msg is None:
#             TracError.__init__(self, 'Connection to trac server failed.')
#         else:
#             TracError.__init__(self, msg)
# 
# Path: git_trac/cached_property.py
# class cached_property(object):
# 
#     def __init__(self, method, name=None):
#         self.method = method
#         self.name = name or method.__name__
#         self.__doc__ = method.__doc__
# 
#     def __get__(self, instance, cls):
#         if instance is None:
#             return self
#         result = self.method(instance)
#         setattr(instance, self.name, result)
#         return result


import urllib.request
import urllib.parse
from xmlrpc.client import SafeTransport, Fault
from .trac_error import \
    TracInternalError, TracAuthenticationError, TracConnectionError
from .cached_property import cached_property
#  as published by the Free Software Foundation; either version 2 of
#  the License, or (at your option) any later version.
#*****************************************************************************





class DigestTransport(SafeTransport):
    """
    Handles an HTTP transaction to an XML-RPC server.

    EXAMPLES::

        sage: from sage.dev.digest_transport import DigestTransport
        sage: DigestTransport()
        <sage.dev.digest_transport.DigestTransport object at ...>
    """
    def __init__(self):
        """
        Initialization.

        EXAMPLES::

            sage: from sage.dev.digest_transport import DigestTransport
            sage: type(DigestTransport())
            <class 'sage.dev.digest_transport.DigestTransport'>
        """
        super().__init__()


# Path: git_trac/trac_error.py
# class TracInternalError(TracError):
#     def __init__(self, fault):
#         self._fault = fault
#         self.faultCode = fault.faultCode
# 
#     def __str__(self):
#         return str(self._fault)
# 
# class TracAuthenticationError(TracError):
#     def __init__(self):
#         TracError.__init__(self, 'Authentication with trac server failed.')
# 
# class TracConnectionError(TracError):
#     def __init__(self, msg=None):
#         if msg is None:
#             TracError.__init__(self, 'Connection to trac server failed.')
#         else:
#             TracError.__init__(self, msg)
# 
# Path: git_trac/cached_property.py
# class cached_property(object):
# 
#     def __init__(self, method, name=None):
#         self.method = method
#         self.name = name or method.__name__
#         self.__doc__ = method.__doc__
# 
#     def __get__(self, instance, cls):
#         if instance is None:
#             return self
#         result = self.method(instance)
#         setattr(instance, self.name, result)
#         return result


# Path: git_trac/digest_transport.py
import urllib.request
import urllib.parse
from xmlrpc.client import SafeTransport, Fault
from .trac_error import \
    TracInternalError, TracAuthenticationError, TracConnectionError
from .cached_property import cached_property

#  as published by the Free Software Foundation; either version 2 of
#  the License, or (at your option) any later version.
#*****************************************************************************





class DigestTransport(SafeTransport):
    """
    Handles an HTTP transaction to an XML-RPC server.

    EXAMPLES::

        sage: from sage.dev.digest_transport import DigestTransport
        sage: DigestTransport()
        <sage.dev.digest_transport.DigestTransport object at ...>
    """
    def __init__(self):
        """
        Initialization.

        EXAMPLES::

            sage: from sage.dev.digest_transport import DigestTransport
            sage: type(DigestTransport())
            <class 'sage.dev.digest_transport.DigestTransport'>
        """
        super().__init__()


    @cached_property