All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- (#167) Adds workflow-level
options to the ProcessDefinition object in a new
workflow_options
field. They are combined with each task's options, giving precedence to the task options on conflict. - (#167) Adds a
workflow_options
property to theTask
class that returns theworkflow_options
dictionary from theProcessDefinition
object. - (#167) Adds a
task_options
property to theTask
class that returns the task options from thetasks
dictionary in theProcessDefinition
object.
- (#166) Bare
ProcessDefinition
objects are deprecated in favor of arrays ofProcessDefinition
objects.
- (#147) Moved
Task.validate
from class method to instance method, availing implementers of other instance convenience methods (i.e.self.parameters
).
0.5.1 - 2024-05-23
- download_item_assets and download_items_assets methods now accept a parameter
file_name
for configuring the filename to save the STAC Item as. If unset, it defaults toitem.json
and if set toNone
the filename is inferred from the ID.
0.5.0 - 2024-05-08
- Support for Python 3.8 has been removed.
- CLI flags
--skip-upload
and--skip-validation
deprecated in favor of--upload/--no-upload
and--validate/no-validate
- Task constructor arguments
skip_upload
andskip_validation
deprecated in favor ofupload
andvalidate
- Several CLI arguments were missing
help
descriptions
- Replaced the use of fsspec with stac-asset for downloading Item Assets
--local
flag no longer turns off validation- The
processing:software
field is no longer added to Items by default. This is because the intention of the STAC Processing Extension is to add metadata about the processing of the data, whereas stactask is frequently used only for processing metadata. Users wishing to retain this field can call the methodTask.add_software_version_to_item(item)
on the resulting item to add it. - Task logging now identifies the task instance that is logging, e.g.,
INFO:my-task-name:[my-collection/workflow-my-workflow/task-1] Task did a thing.
- Collection assignment now assigns the first matching collection expression, rather than the last.
- Property
collection_mapping
toTask
class to retrieve the collection mappings from upload_options - Utils method
find_collection
to allow the retrieval of the collection name for an Item dict - Task method
upload_local_item_assets_to_s3(item)
to upload all local assets to S3 - Added support for using stdin and stdout as input and output for task, e.g.,
cat in.json | src/mytask/mytask.py run --local | tee out.json
v0.4.2 - 2024-03-08
- (#92) Task.upload_item_assets_to_s3 and asset_io.upload_item_assets_to_s3 support explicitly specifying the boto3utils3.s3 object.
v0.4.1 - 2024-03-06
- (#90) Block asset_io
module from reaching out to upstream stac APIs (especially on NASA Wednesdays
transform_hrefs=False
)
v0.4.0 - 2024-02-14
- (#86) Guard cleanup of workdir to ensure task was actually created.
- (#72) Given that
_get_file
is part of theAsyncFileSystem
spec, this adds the synchronousget_file
as a way to retrieve files if_get_file
is not found. - (#77) Added option
keep_original_filenames
to download routines to support legacy applications dependent on filename specifics.
v0.3.0 - 2023-12-20
- handler now explicitly calls performs workdir cleanup
- workdir cleanup is correctly defensive and logs errors
v0.2.0 - 2023-11-16
-
Ensure
workdir
is an absolute path (#54). -
When a
workdir
is set for aTask
theworkdir
will no longer be removed by default (#51). That is, thesave_workdir
argument toTask
constructor now defaults toNone
, and if left asNone
the default behavior is now conditional on whether or not aworkdir
is specified.- If
workdir
isNone
, a temp directory will be created andsave_workdir
will default toFalse
(remove working directory). - If a
workdir
is specified, thensave_workdir
will default toTrue
(keep working directory).
In either case, an explicit
True
orFalse
value forsave_workdir
will take precedence. - If
v0.1.1 - 2023-07-12
v0.1.0 - 2022-10-31
Initial release.