-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #47 from nasa/HARMONY-1862
HARMONY-1862: Update pystac library dependency
- Loading branch information
Showing
13 changed files
with
76 additions
and
71 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -132,3 +132,6 @@ config.json | |
|
||
# Snyk / Deepcode AI | ||
.dccache | ||
|
||
# VS Code | ||
.vscode/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,16 @@ | ||
autopep8 ~= 1.5 | ||
debugpy ~= 1.2 | ||
Faker ~= 8.1.3 | ||
flake8 ~= 5.0.4 | ||
flake8 >= 6.1.0 | ||
ipython ~= 8.10.0 | ||
jedi ~= 0.17.2 | ||
packaging ~= 24.1 | ||
parameterized ~= 0.7 | ||
pycodestyle ~= 2.9.1 | ||
pytest ~= 7.2.0 | ||
pytest-cov ~=2.11 | ||
pytest-mock ~=3.5 | ||
python-language-server ~= 0.35 | ||
responses ~=0.22.0 | ||
pycodestyle >= 2.9.1 | ||
safety ~= 3.2.7 | ||
setuptools == 70.0.0 | ||
setuptools == 70.0.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,54 +1,57 @@ | ||
from urllib.parse import urlparse | ||
import boto3 | ||
from pystac import STAC_IO | ||
from pystac.stac_io import StacIO, DefaultStacIO | ||
from harmony import util | ||
from harmony import aws | ||
from os import environ | ||
|
||
""" | ||
Read and write to s3 when STAC links start with s3://. | ||
https://pystac.readthedocs.io/en/0.5/concepts.html#using-stac-io | ||
https://pystac.readthedocs.io/en/latest/concepts.html#using-stac-io | ||
""" | ||
|
||
|
||
def read(uri): | ||
""" | ||
Reads STAC files from s3 | ||
(or via the default method if the protocol is not s3). | ||
Parameters | ||
---------- | ||
uri: The STAC file uri. | ||
Returns | ||
------- | ||
The file contents | ||
""" | ||
config = util.config(validate=environ.get('ENV') != 'test') | ||
service_params = aws.aws_parameters( | ||
config.use_localstack, config.localstack_host, config.aws_default_region) | ||
parsed = urlparse(uri) | ||
if parsed.scheme == 's3': | ||
bucket = parsed.netloc | ||
key = parsed.path[1:] | ||
s3 = boto3.resource('s3', **service_params) | ||
obj = s3.Object(bucket, key) | ||
return obj.get()['Body'].read().decode('utf-8') | ||
else: | ||
return STAC_IO.default_read_text_method(uri) | ||
|
||
|
||
def write(uri, txt): | ||
""" | ||
Writes a STAC file to the given uri. | ||
Parameters | ||
---------- | ||
uri: The STAC file uri. | ||
txt: The STAC contents. | ||
""" | ||
parsed = urlparse(uri) | ||
if parsed.scheme == 's3': | ||
aws.write_s3(uri, txt) | ||
else: | ||
STAC_IO.default_write_text_method(uri, txt) | ||
defaultStacIO = DefaultStacIO() | ||
|
||
|
||
class S3StacIO(StacIO): | ||
|
||
def read_text(self, uri): | ||
""" | ||
Reads STAC files from s3 | ||
(or via the default method if the protocol is not s3). | ||
Parameters | ||
---------- | ||
uri: The STAC file uri. | ||
Returns | ||
------- | ||
The file contents | ||
""" | ||
config = util.config(validate=environ.get('ENV') != 'test') | ||
service_params = aws.aws_parameters( | ||
config.use_localstack, config.localstack_host, config.aws_default_region) | ||
parsed = urlparse(uri) | ||
if parsed.scheme == 's3': | ||
bucket = parsed.netloc | ||
key = parsed.path[1:] | ||
s3 = boto3.resource('s3', **service_params) | ||
obj = s3.Object(bucket, key) | ||
return obj.get()['Body'].read().decode('utf-8') | ||
else: | ||
return defaultStacIO.read_text(uri) | ||
|
||
def write_text(self, uri, txt): | ||
""" | ||
Writes a STAC file to the given uri. | ||
Parameters | ||
---------- | ||
uri: The STAC file uri. | ||
txt: The STAC contents. | ||
""" | ||
parsed = urlparse(uri) | ||
if parsed.scheme == 's3': | ||
aws.write_s3(uri, txt) | ||
else: | ||
defaultStacIO.write_text(uri, txt) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
boto3 ~= 1.14 | ||
deprecation ~= 2.1.0 | ||
pynacl ~= 1.4 | ||
pystac ~= 0.5.3 | ||
pystac >= 1.0.0 | ||
python-json-logger ~= 2.0.1 | ||
requests ~= 2.24 | ||
urllib3 ~= 1.26.9 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters