Skip to content

Conversation

@cortadocodes
Copy link
Member

@cortadocodes cortadocodes commented May 25, 2021

Contents

New Features

  • Make Datafiles and Datasets labelable
  • Use new version of tags in all Taggables
  • Replace string tags in a TagSet with key-value pairs in a TagDict
  • Add new Taggable mixin for providing the new tags interface
  • Add FilterDict, allowing filtering of key-value pairs by their values
  • Allow nested attribute/dictionary filtering in the filter containers FilterSet, FilterList and FilterDict
  • Allow any number of filters to be specified when filtering in filter containers
  • Allow ignoring of filterables missing the filtered-for attribute in a filter container instead of raising an error
  • Add filter container one method?
  • Allow ordering by nested attributes in all FilterContainers
  • Allow gs:// paths to be used in Datafile, Dataset, and Manifest
  • Allow gs:// paths to be used in storage client
  • Add datetime filters
  • Add in-range filters to str, datetime, and Number filters

Breaking changes

  • Use new format for manifests' datasets in twine.json files
  • Convert old Taggable mixin to Labelable mixin
  • Convert old Tag class to Label class
  • Convert TagSet to LabelSet
  • Use key-value pairs for filter names and values when filtering Filterables
  • Stop logging in Serialisable
  • Always exclude logger field in Serialisable
  • Simplify tag name pattern to ^[a-z0-9][a-z0-9_]*(?<!_)$
  • Simplify label pattern to ^[a-z0-9][a-z0-9-]*(?<!-)$
  • Store tags as key-value pairs in GCS custom metadata
  • Unbase TagDict and LabelSet from filter containers
  • JSON-encode cloud storage custom metadata again
  • Store tags in tags field of cloud metadata again
  • Close Namespace fixed octue metadata in GCS  #165: prefix GCS custom metadata fields with "octue__"

Minor improvements

  • Remove filters field from manifest strand in twines
  • Allow tags to be added via kwargs in Taggable.add_tags
  • Remove unused _FILTERSET_ATTRIBUTE class variables
  • Base Label on str
  • Support non-English characters in case-insensitive filtering
  • Add octue-sdk-python version to datafile metadata
  • Base filter containers on new FilterContainer abstract class
  • Move filter and order methods into FilterContainer
  • Use OctueJSONDecoder in Serialisable and GoogleCloudStorageClient
  • Add de/serialisation of datetime objects to de/encoders
  • Clarify name of some GoogleCloudStorageClient methods
  • Add set and UserString encoding to OctueJSONEncoder
  • Use OctueJSONDecoder
  • Add set and datetime decoding to OctueJSONDecoder
  • Remove unnecessary methods from LabelSet
  • Rename add_labels method and add add method to LabelSet
  • Automatically generate complementary (not) filters from other filters
  • Remove a line of duplicated code in Datafile

Fixes

  • Handle timestamps from cloud with/without timezone information
  • Fix OctueJSONDecoder
  • Make it harder to add invalid labels to LabelSet

Dependencies

  • Use new version of twined that distinguishes tags from labels

Testing

  • Use latest GCS emulator
  • Only run deployment test if RUN_DEPLOYMENT_TESTS envvar is True

Quality Checklist

  • New features are fully tested (No matter how much Coverage Karma you have)
  • [v0.2 onward] New features are included in the documentation

…ud-objects

Feature: Allow gs:// paths to be used in resources
@cortadocodes cortadocodes marked this pull request as ready for review June 2, 2021 21:20
@cortadocodes cortadocodes requested a review from thclark June 2, 2021 21:22
@codecov-commenter
Copy link

Codecov Report

Merging #168 (93a9744) into main (c622807) will increase coverage by 0.91%.
The diff coverage is 99.36%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #168      +/-   ##
==========================================
+ Coverage   95.00%   95.92%   +0.91%     
==========================================
  Files          55       58       +3     
  Lines        1622     1693      +71     
==========================================
+ Hits         1541     1624      +83     
+ Misses         81       69      -12     
Impacted Files Coverage Δ
octue/utils/decoders.py 92.85% <92.30%> (+92.85%) ⬆️
octue/cloud/storage/client.py 96.66% <97.67%> (-0.64%) ⬇️
octue/exceptions.py 100.00% <100.00%> (ø)
octue/mixins/__init__.py 100.00% <100.00%> (ø)
octue/mixins/filterable.py 100.00% <100.00%> (ø)
octue/mixins/labelable.py 100.00% <100.00%> (ø)
octue/mixins/serialisable.py 100.00% <100.00%> (ø)
octue/mixins/taggable.py 100.00% <100.00%> (ø)
octue/resources/analysis.py 81.63% <100.00%> (ø)
octue/resources/datafile.py 99.05% <100.00%> (+0.02%) ⬆️
... and 12 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 07f6e1b...93a9744. Read the comment docs.

@cortadocodes cortadocodes merged commit 67b8939 into main Jun 2, 2021
@cortadocodes cortadocodes deleted the release/0.1.19 branch June 2, 2021 21:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Namespace fixed octue metadata in GCS

4 participants