Skip to content

Releases: hopeit-git/hopeit.engine

hopeit.engine 0.25.4

19 Oct 13:11
9fd2cbc
Compare
Choose a tag to compare

Release Notes

Version 0.25.4


  • Engine:

    • Removed typing_inspect dependency in favor of typing built-in module
  • Plugins:

    • DataFrames:
      • Experimental: DataBlocks API, to allow manipulating and saving multiple datasets at once

hopeit.engine 0.25.3

11 Oct 14:55
dc1c830
Compare
Choose a tag to compare

Version 0.25.3


  • Engine:

    • Web:
      • Allow to specify cors_routes_prefix to allow cors_origin to be applied
        to custom routes names

hopeit.engine 0.25.2

05 Oct 08:59
f987cb2
Compare
Choose a tag to compare

Version 0.25.2


  • Plugins:

    • DataFrames:
      • Support for bool fields
      • Dataframes.to_dataobjects: option to convert null values (nan, NaT, etc) to None

hopeit.engine 0.25.1

16 Sep 06:09
4841107
Compare
Choose a tag to compare

Version 0.25.1


  • Engine

    • API: Support for type | None syntax, as well as Optional[type] annotation for optional query args
  • Plugins:

    • DataFrames, feature to allow schema evolution:
      • Allowing optional and default values in @dataframe objects
      • Saving json schema for serialized Datasets
      • Handling load errors with DatasetLoadException
      • Allowing load dataset with deprecated fields (removed fields)
      • Allowing load dataset with new fields in schema using a default value

hopeit.engine 0.25.0

07 Aug 18:16
398852e
Compare
Choose a tag to compare

Version 0.25.0


  • Engine:

    • This release adopts pydantic as a the library for dataclasses and schema validation

    • StreamManager: add support for username and password in StreamsConfig

    • Fix: support for empty values in environment variables used in config files

    BREAKING CHANGES

    • Dropped support for Python 3.8

    • Python dataclasses.dataclass is no longer supported in @dataobjects annotated classes.
      Pydantic @dataclasses (and in the future BaseModel should be used).

    • The recommended way is to import from dataobjects module:

      from hopeit.dataobjects import dataclass, dataobject, field
      

      where dataclass and field are aliases of pydantic.dataclasses.dataclass and pydantic.Field

    • In most of the cases replacing the import clause in applications should suffice,
      but could be features of dataclasses (like i.e. metadata) that should be replaced by its
      equivalent in pydantic.

    • API validation: now payload validation is not done in api module and is deferred and done by pydantic when the
      payload is being parsed. Response in case of validation error will return BadRequest (400) but with
      different error message than in previous versions.

  • Plugins:

    • Dataframes

      • Made it compatible with pydantic dataclasses
      • Removed @dataframeobject annotation in favor of Dataset[T] generic type
      • Introduced .DataObject companion type for @dataframe conversion to DataObject
      • Fixed type coercion for string fields
      • Datetime fields are converted to UTC when dataframe object is initialized
    • redis-streams: update StreamsConfig usage to support new username and password fields

    • redis-storage: add support for username and password in the connect method

  • Development (internal)

    • Simplified and accelerated linting using ruff. Dropping pylint and flake
    • Reformatted code files
    • Moved linting and test logic to Makefile

hopeit.engine 0.25.0b9

20 Jul 15:59
74637e0
Compare
Choose a tag to compare
Pre-release

Version 0.25.0


  • Engine:

    • This release adopts pydantic as a the library for dataclasses and schema validation

    • StreamManager: add support for username and password in StreamsConfig

    • Fix: support for empty values in environment variables used in config files

    BREAKING CHANGES

    • Dropped support for Python 3.8

    • Python dataclasses.dataclass is no longer supported in @dataobjects annotated classes.
      Pydantic @dataclasses (and in the future BaseModel should be used).

    • The recommended way is to import from dataobjects module:

      from hopeit.dataobjects import dataclass, dataobject, field
      

      where dataclass and field are aliases of pydantic.dataclasses.dataclass and pydantic.Field

    • In most of the cases replacing the import clause in applications should suffice,
      but could be features of dataclasses (like i.e. metadata) that should be replaced by its
      equivalent in pydantic.

    • API validation: now payload validation is not done in api module and is deferred and done by pydantic when the
      payload is being parsed. Response in case of validation error will return BadRequest (400) but with
      different error message than in previous versions.

  • Plugins:

    • Dataframes

      • Made it compatible with pydantic dataclasses
      • Removed @dataframeobject annotation in favor of Dataset[T] generic type
      • Introduced .DataObject companion type for @dataframe conversion to DataObject
      • Fixed type coercion for string fields
      • Datetime fields are converted to UTC when dataframe object is initialized
    • redis-streams: update StreamsConfig usage to support new username and password fields

    • redis-storage: add support for username and password in the connect method

  • Development (internal)

    • Simplified and accelerated linting using ruff. Dropping pylint and flake
    • Reformatted code files
    • Moved linting and test logic to Makefile

hopeit.engine 0.25.0b7

17 Jul 16:51
2fa7d4e
Compare
Choose a tag to compare
Pre-release

Version 0.25.0


  • Engine:

    • This release adopts pydantic as a the library for dataclasses and schema validation

    • StreamManager: add support for username and password in StreamsConfig

    • Fix: support for empty values in environment variables used in config files

    BREAKING CHANGES

    • Python dataclasses.dataclass is no longer supported in @dataobjects annotated classes.
      Pydantic @dataclasses (and in the future BaseModel should be used).

    • The recommended way is to import from dataobjects module:

      from hopeit.dataobjects import dataclass, dataobject, field
      

      where dataclass and field are aliases of pydantic.dataclasses.dataclass and pydantic.Field

    • In most of the cases replacing the import clause in applications should suffice,
      but could be features of dataclasses (like i.e. metadata) that should be replaced by its
      equivalent in pydantic.

    • API validation: now payload validation not done in api module and is deferred and done by pydantic when the
      payload is being parsed. Response in case of validation error will return BadRequest (400) but with
      different error message than in previous versions.

  • Plugins:

    • Dataframes

      • Made it compatible with pydantic dataclasses
      • Removed @dataframeobject annotation in favor of Dataset[T] generic type
      • Introduced .DataObject companion type for @dataframe conversion to DataObject
      • Fixed type coercion for string fields
      • Datetime fields are converted to UTC when dataframe object is initialized
    • redis-streams: update StreamsConfig usage to support new username and password fields

    • redis-storage: add support for username and password in the connect method

hopeit.engine 0.25.0b6

10 Jul 16:04
93a0c5b
Compare
Choose a tag to compare
Pre-release

Version 0.25.0


  • Engine:

    • This release adopts pydantic as a the library for dataclasses and schema validation

    • StreamManager: add support for username and password in StreamsConfig

    • Fix: support for empty values in environment variables used in config files

    BREAKING CHANGES

    • Python dataclasses.dataclass is no longer supported in @dataobjects annotated classes.
      Pydantic @dataclasses (and in the future BaseModel should be used).

    • The recommended way is to import from dataobjects module:

      from hopeit.dataobjects import dataclass, dataobject, field
      

      where dataclass and field are aliases of pydantic.dataclasses.dataclass and pydantic.Field

    • In most of the cases replacing the import clause in applications should suffice,
      but could be features of dataclasses (like i.e. metadata) that should be replaced by its
      equivalent in pydantic.

  • Plugins:

    • Dataframes

      • Made it compatible with pydantic dataclasses
      • Removed @dataframeobject annotation in favor of Dataset[T] generic type
      • Introduced .DataObject companion type for @dataframe conversion to DataObject
      • Fixed type coercion for string fields
    • redis-streams: update StreamsConfig usage to support new username and password fields

    • redis-storage: add support for username and password in the connect method

hopeit.engine 0.25.0b5

03 Jul 19:47
f2cf0c2
Compare
Choose a tag to compare
Pre-release

Version 0.25.0


  • Engine:

    • This release adopts pydantic as a the library for dataclasses and schema validation

    • StreamManager: add support for username and password in StreamsConfig

    • Fix: support for empty values in environment variables used in config files

    BREAKING CHANGES

    • Python dataclasses.dataclass is no longer supported in @dataobjects annotated classes.
      Pydantic @dataclasses (and in the future BaseModel should be used).

    • The recommended way is to import from dataobjects module:

      from hopeit.dataobjects import dataclass, dataobject, field
      

      where dataclass and field are aliases of pydantic.dataclasses.dataclass and pydantic.Field

    • In most of the cases replacing the import clause in applications should suffice,
      but could be features of dataclasses (like i.e. metadata) that should be replaced by its
      equivalent in pydantic.

  • Plugins:

    • Dataframes

      • Made it compatible with pydantic dataclasses
      • Removed @dataframeobject annotation in favor of Dataset[T] generic type
      • Introduced .DataObject companion type for @dataframe conversion to DataObject
    • redis-streams: update StreamsConfig usage to support new username and password fields

    • redis-storage: add support for username and password in the connect method

hopeit.engine 0.25.0b4

01 Jul 21:44
eee6033
Compare
Choose a tag to compare
Pre-release

Version 0.25.0


  • Engine:

    • This release adopts pydantic as a the library for dataclasses and schema validation

    • StreamManager: add support for username and password in StreamsConfig

    BREAKING CHANGES

    • Python dataclasses.dataclass is no longer supported in @dataobjects annotated classes.
      Pydantic @dataclasses (and in the future BaseModel should be used).

    • The recommended way is to import from dataobjects module:

      from hopeit.dataobjects import dataclass, dataobject, field
      

      where dataclass and field are aliases of pydantic.dataclasses.dataclass and pydantic.Field

    • In most of the cases replacing the import clause in applications should suffice,
      but could be features of dataclasses that should be replaced by its
      equivalent in pydantic.

    • For cases where you store data in the field property metadata, you can access it as follows:

      from hopeit.dataobjects import dataclass, dataobject, field
      
      @dataobject
      @dataclass
      class User:
          name: str = field(metadata={"key": "value"})
      
      metadata = User.name.json_schema_extra["metadata"]
      
      
  • Plugins:

    • Dataframes

      • Made it compatible with pydantic dataclasses
      • Removed @dataframeobject annotation in favor of Dataset[T] generic type
      • Introduced .DataObject companion type for @dataframe conversion to DataObject
    • redis-streams: update StreamsConfig usage to support new username and password fields

    • redis-storage: add support for username and password in the connect method