cirro.models.s3_path

 1from urllib.parse import urlparse
 2
 3
 4class S3Path:
 5    def __init__(self, url):
 6        self._parsed = urlparse(url, allow_fragments=False)
 7
 8    @property
 9    def bucket(self):
10        return self._parsed.netloc
11
12    @property
13    def key(self):
14        return self._parsed.path.lstrip('/')
15
16    @property
17    def valid(self):
18        return self._parsed.scheme == 's3'
19
20    @property
21    def base(self):
22        return f's3://{self.bucket}'
23
24    def __str__(self):
25        return self._parsed.geturl()
class S3Path:
 5class S3Path:
 6    def __init__(self, url):
 7        self._parsed = urlparse(url, allow_fragments=False)
 8
 9    @property
10    def bucket(self):
11        return self._parsed.netloc
12
13    @property
14    def key(self):
15        return self._parsed.path.lstrip('/')
16
17    @property
18    def valid(self):
19        return self._parsed.scheme == 's3'
20
21    @property
22    def base(self):
23        return f's3://{self.bucket}'
24
25    def __str__(self):
26        return self._parsed.geturl()
S3Path(url)
6    def __init__(self, url):
7        self._parsed = urlparse(url, allow_fragments=False)
bucket
 9    @property
10    def bucket(self):
11        return self._parsed.netloc
key
13    @property
14    def key(self):
15        return self._parsed.path.lstrip('/')
valid
17    @property
18    def valid(self):
19        return self._parsed.scheme == 's3'
base
21    @property
22    def base(self):
23        return f's3://{self.bucket}'