/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/transport/__init__.py

  • Committer: Jelmer Vernooij
  • Date: 2017-06-10 12:50:32 UTC
  • mfrom: (6679 work)
  • mto: This revision was merged to the branch mainline in revision 6690.
  • Revision ID: jelmer@jelmer.uk-20170610125032-xb5rd5fjskjallos
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
 
46
46
from ..sixish import (
47
47
    BytesIO,
 
48
    PY3,
48
49
    string_types,
49
50
    )
50
51
from ..trace import (
127
128
                             register_netloc=False):
128
129
    transport_list_registry.register_transport(prefix, help)
129
130
    if register_netloc:
130
 
        if not prefix.endswith(b'://'):
 
131
        if not prefix.endswith('://'):
131
132
            raise ValueError(prefix)
132
133
        register_urlparse_netloc_protocol(prefix[:-3])
133
134
 
879
880
        :param mode: Create the file with the given mode.
880
881
        :return: None
881
882
        """
882
 
        if not isinstance(raw_bytes, str):
 
883
        if not isinstance(raw_bytes, bytes):
883
884
            raise TypeError(
884
885
                'raw_bytes must be a plain string, not %s' % type(raw_bytes))
885
886
        return self.put_file(relpath, BytesIO(raw_bytes), mode=mode)
902
903
                        create it, and then try again.
903
904
        :param dir_mode: Possible access permissions for new directories.
904
905
        """
905
 
        if not isinstance(raw_bytes, str):
 
906
        if not isinstance(raw_bytes, bytes):
906
907
            raise TypeError(
907
908
                'raw_bytes must be a plain string, not %s' % type(raw_bytes))
908
909
        self.put_file_non_atomic(relpath, BytesIO(raw_bytes), mode=mode,
991
992
        """
992
993
        raise NotImplementedError(self.append_file)
993
994
 
994
 
    def append_bytes(self, relpath, bytes, mode=None):
 
995
    def append_bytes(self, relpath, data, mode=None):
995
996
        """Append bytes to a file at relpath.
996
997
 
997
998
        The file is created if it does not already exist.
998
999
 
999
 
        :type f: str
1000
 
        :param f: a string of the bytes to append.
 
1000
        :param relpath: The relative path to the file.
 
1001
        :param data: a string of the bytes to append.
1001
1002
        :param mode: Unix mode for newly created files.  This is not used for
1002
1003
            existing files.
1003
1004
 
1004
1005
        :returns: the length of relpath before the content was written to it.
1005
1006
        """
1006
 
        if not isinstance(bytes, str):
 
1007
        if not isinstance(data, bytes):
1007
1008
            raise TypeError(
1008
 
                'bytes must be a plain string, not %s' % type(bytes))
1009
 
        return self.append_file(relpath, BytesIO(bytes), mode=mode)
 
1009
                'bytes must be a plain string, not %s' % type(data))
 
1010
        return self.append_file(relpath, BytesIO(data), mode=mode)
1010
1011
 
1011
1012
    def append_multi(self, files, pb=None):
1012
1013
        """Append the text in each file-like or string object to
1593
1594
            raise errors.InvalidURL(path=location,
1594
1595
                extra='URLs must be properly escaped')
1595
1596
        location = urlutils.local_path_to_url(location)
 
1597
    if PY3:
 
1598
        location = location.decode('ascii')
1596
1599
 
1597
1600
    if location.startswith("file:") and not location.startswith("file://"):
1598
1601
        return urlutils.join(urlutils.local_path_to_url("."), location[5:])
1733
1736
 
1734
1737
 
1735
1738
# None is the default transport, for things with no url scheme
1736
 
register_transport_proto(b'file://',
 
1739
register_transport_proto('file://',
1737
1740
            help="Access using the standard filesystem (default)")
1738
 
register_lazy_transport(b'file://', 'breezy.transport.local', 'LocalTransport')
 
1741
register_lazy_transport('file://', 'breezy.transport.local', 'LocalTransport')
1739
1742
 
1740
 
register_transport_proto(b'sftp://',
 
1743
register_transport_proto('sftp://',
1741
1744
            help="Access using SFTP (most SSH servers provide SFTP).",
1742
1745
            register_netloc=True)
1743
 
register_lazy_transport(b'sftp://', 'breezy.transport.sftp', 'SFTPTransport')
 
1746
register_lazy_transport('sftp://', 'breezy.transport.sftp', 'SFTPTransport')
1744
1747
# Decorated http transport
1745
 
register_transport_proto(b'http+urllib://',
 
1748
register_transport_proto('http+urllib://',
1746
1749
#                help="Read-only access of branches exported on the web."
1747
1750
                         register_netloc=True)
1748
 
register_lazy_transport(b'http+urllib://', 'breezy.transport.http._urllib',
 
1751
register_lazy_transport('http+urllib://', 'breezy.transport.http._urllib',
1749
1752
                        'HttpTransport_urllib')
1750
 
register_transport_proto(b'https+urllib://',
 
1753
register_transport_proto('https+urllib://',
1751
1754
#                help="Read-only access of branches exported on the web using SSL."
1752
1755
                         register_netloc=True)
1753
 
register_lazy_transport(b'https+urllib://', 'breezy.transport.http._urllib',
 
1756
register_lazy_transport('https+urllib://', 'breezy.transport.http._urllib',
1754
1757
                        'HttpTransport_urllib')
1755
1758
# Default http transports (last declared wins (if it can be imported))
1756
 
register_transport_proto(b'http://',
 
1759
register_transport_proto('http://',
1757
1760
                 help="Read-only access of branches exported on the web.")
1758
 
register_transport_proto(b'https://',
 
1761
register_transport_proto('https://',
1759
1762
            help="Read-only access of branches exported on the web using SSL.")
1760
1763
# The default http implementation is urllib
1761
 
register_lazy_transport(b'http://', 'breezy.transport.http._urllib',
 
1764
register_lazy_transport('http://', 'breezy.transport.http._urllib',
1762
1765
                        'HttpTransport_urllib')
1763
 
register_lazy_transport(b'https://', 'breezy.transport.http._urllib',
 
1766
register_lazy_transport('https://', 'breezy.transport.http._urllib',
1764
1767
                        'HttpTransport_urllib')
1765
1768
 
1766
 
register_transport_proto(b'ftp://', help="Access using passive FTP.")
1767
 
register_lazy_transport(b'ftp://', 'breezy.transport.ftp', 'FtpTransport')
1768
 
register_transport_proto(b'aftp://', help="Access using active FTP.")
1769
 
register_lazy_transport(b'aftp://', 'breezy.transport.ftp', 'FtpTransport')
1770
 
register_transport_proto(b'gio+', help="Access using any GIO supported protocols.")
1771
 
register_lazy_transport(b'gio+', 'breezy.transport.gio_transport', 'GioTransport')
 
1769
register_transport_proto('ftp://', help="Access using passive FTP.")
 
1770
register_lazy_transport('ftp://', 'breezy.transport.ftp', 'FtpTransport')
 
1771
register_transport_proto('aftp://', help="Access using active FTP.")
 
1772
register_lazy_transport('aftp://', 'breezy.transport.ftp', 'FtpTransport')
 
1773
register_transport_proto('gio+', help="Access using any GIO supported protocols.")
 
1774
register_lazy_transport('gio+', 'breezy.transport.gio_transport', 'GioTransport')
1772
1775
 
1773
1776
 
1774
1777
# Default to trying GSSAPI authentication (if the kerberos module is
1775
1778
# available)
1776
 
register_transport_proto(b'ftp+gssapi://', register_netloc=True)
1777
 
register_transport_proto(b'aftp+gssapi://', register_netloc=True)
1778
 
register_transport_proto(b'ftp+nogssapi://', register_netloc=True)
1779
 
register_transport_proto(b'aftp+nogssapi://', register_netloc=True)
1780
 
register_lazy_transport(b'ftp+gssapi://', 'breezy.transport.ftp._gssapi',
1781
 
                        'GSSAPIFtpTransport')
1782
 
register_lazy_transport(b'aftp+gssapi://', 'breezy.transport.ftp._gssapi',
1783
 
                        'GSSAPIFtpTransport')
1784
 
register_lazy_transport(b'ftp://', 'breezy.transport.ftp._gssapi',
1785
 
                        'GSSAPIFtpTransport')
1786
 
register_lazy_transport(b'aftp://', 'breezy.transport.ftp._gssapi',
1787
 
                        'GSSAPIFtpTransport')
1788
 
register_lazy_transport(b'ftp+nogssapi://', 'breezy.transport.ftp',
 
1779
register_transport_proto('ftp+gssapi://', register_netloc=True)
 
1780
register_transport_proto('aftp+gssapi://', register_netloc=True)
 
1781
register_transport_proto('ftp+nogssapi://', register_netloc=True)
 
1782
register_transport_proto('aftp+nogssapi://', register_netloc=True)
 
1783
register_lazy_transport('ftp+gssapi://', 'breezy.transport.ftp._gssapi',
 
1784
                        'GSSAPIFtpTransport')
 
1785
register_lazy_transport('aftp+gssapi://', 'breezy.transport.ftp._gssapi',
 
1786
                        'GSSAPIFtpTransport')
 
1787
register_lazy_transport('ftp://', 'breezy.transport.ftp._gssapi',
 
1788
                        'GSSAPIFtpTransport')
 
1789
register_lazy_transport('aftp://', 'breezy.transport.ftp._gssapi',
 
1790
                        'GSSAPIFtpTransport')
 
1791
register_lazy_transport('ftp+nogssapi://', 'breezy.transport.ftp',
1789
1792
                        'FtpTransport')
1790
 
register_lazy_transport(b'aftp+nogssapi://', 'breezy.transport.ftp',
 
1793
register_lazy_transport('aftp+nogssapi://', 'breezy.transport.ftp',
1791
1794
                        'FtpTransport')
1792
1795
 
1793
 
register_transport_proto(b'memory://')
1794
 
register_lazy_transport(b'memory://', 'breezy.transport.memory',
 
1796
register_transport_proto('memory://')
 
1797
register_lazy_transport('memory://', 'breezy.transport.memory',
1795
1798
                        'MemoryTransport')
1796
1799
 
1797
 
register_transport_proto(b'readonly+',
 
1800
register_transport_proto('readonly+',
1798
1801
#              help="This modifier converts any transport to be readonly."
1799
1802
            )
1800
 
register_lazy_transport(b'readonly+', 'breezy.transport.readonly',
 
1803
register_lazy_transport('readonly+', 'breezy.transport.readonly',
1801
1804
                        'ReadonlyTransportDecorator')
1802
1805
 
1803
 
register_transport_proto(b'fakenfs+')
1804
 
register_lazy_transport(b'fakenfs+', 'breezy.transport.fakenfs',
 
1806
register_transport_proto('fakenfs+')
 
1807
register_lazy_transport('fakenfs+', 'breezy.transport.fakenfs',
1805
1808
                        'FakeNFSTransportDecorator')
1806
1809
 
1807
 
register_transport_proto(b'log+')
1808
 
register_lazy_transport(b'log+', 'breezy.transport.log', 'TransportLogDecorator')
 
1810
register_transport_proto('log+')
 
1811
register_lazy_transport('log+', 'breezy.transport.log', 'TransportLogDecorator')
1809
1812
 
1810
 
register_transport_proto(b'trace+')
1811
 
register_lazy_transport(b'trace+', 'breezy.transport.trace',
 
1813
register_transport_proto('trace+')
 
1814
register_lazy_transport('trace+', 'breezy.transport.trace',
1812
1815
                        'TransportTraceDecorator')
1813
1816
 
1814
 
register_transport_proto(b'unlistable+')
1815
 
register_lazy_transport(b'unlistable+', 'breezy.transport.unlistable',
 
1817
register_transport_proto('unlistable+')
 
1818
register_lazy_transport('unlistable+', 'breezy.transport.unlistable',
1816
1819
                        'UnlistableTransportDecorator')
1817
1820
 
1818
 
register_transport_proto(b'brokenrename+')
1819
 
register_lazy_transport(b'brokenrename+', 'breezy.transport.brokenrename',
 
1821
register_transport_proto('brokenrename+')
 
1822
register_lazy_transport('brokenrename+', 'breezy.transport.brokenrename',
1820
1823
                        'BrokenRenameTransportDecorator')
1821
1824
 
1822
 
register_transport_proto(b'vfat+')
1823
 
register_lazy_transport(b'vfat+',
 
1825
register_transport_proto('vfat+')
 
1826
register_lazy_transport('vfat+',
1824
1827
                        'breezy.transport.fakevfat',
1825
1828
                        'FakeVFATTransportDecorator')
1826
1829
 
1827
 
register_transport_proto(b'nosmart+')
1828
 
register_lazy_transport(b'nosmart+', 'breezy.transport.nosmart',
 
1830
register_transport_proto('nosmart+')
 
1831
register_lazy_transport('nosmart+', 'breezy.transport.nosmart',
1829
1832
                        'NoSmartTransportDecorator')
1830
1833
 
1831
 
register_transport_proto(b'bzr://',
 
1834
register_transport_proto('bzr://',
1832
1835
            help="Fast access using the Bazaar smart server.",
1833
1836
                         register_netloc=True)
1834
1837
 
1835
 
register_lazy_transport(b'bzr://', 'breezy.transport.remote',
 
1838
register_lazy_transport('bzr://', 'breezy.transport.remote',
1836
1839
                        'RemoteTCPTransport')
1837
 
register_transport_proto(b'bzr-v2://', register_netloc=True)
 
1840
register_transport_proto('bzr-v2://', register_netloc=True)
1838
1841
 
1839
 
register_lazy_transport(b'bzr-v2://', 'breezy.transport.remote',
 
1842
register_lazy_transport('bzr-v2://', 'breezy.transport.remote',
1840
1843
                        'RemoteTCPTransportV2Only')
1841
 
register_transport_proto(b'bzr+http://',
 
1844
register_transport_proto('bzr+http://',
1842
1845
#                help="Fast access using the Bazaar smart server over HTTP."
1843
1846
                         register_netloc=True)
1844
 
register_lazy_transport(b'bzr+http://', 'breezy.transport.remote',
 
1847
register_lazy_transport('bzr+http://', 'breezy.transport.remote',
1845
1848
                        'RemoteHTTPTransport')
1846
 
register_transport_proto(b'bzr+https://',
 
1849
register_transport_proto('bzr+https://',
1847
1850
#                help="Fast access using the Bazaar smart server over HTTPS."
1848
1851
                         register_netloc=True)
1849
 
register_lazy_transport(b'bzr+https://',
 
1852
register_lazy_transport('bzr+https://',
1850
1853
                        'breezy.transport.remote',
1851
1854
                        'RemoteHTTPTransport')
1852
 
register_transport_proto(b'bzr+ssh://',
 
1855
register_transport_proto('bzr+ssh://',
1853
1856
            help="Fast access using the Bazaar smart server over SSH.",
1854
1857
            register_netloc=True)
1855
 
register_lazy_transport(b'bzr+ssh://', 'breezy.transport.remote',
 
1858
register_lazy_transport('bzr+ssh://', 'breezy.transport.remote',
1856
1859
                        'RemoteSSHTransport')
1857
1860
 
1858
 
register_transport_proto(b'ssh:')
1859
 
register_lazy_transport(b'ssh:', 'breezy.transport.remote',
 
1861
register_transport_proto('ssh:')
 
1862
register_lazy_transport('ssh:', 'breezy.transport.remote',
1860
1863
                        'HintingSSHTransport')
1861
1864
 
1862
1865