Hey all. We have a lot of exciting stuff coming. W...
# announcements
Hey all. We have a lot of exciting stuff coming. We’d like to encourage as many folks as possible to develop off of master. It’s actually quite stable. I always demo off master (🤞🤞🤞) and it goes just fine. To that end we’ve added a channel called #fresh-on-master to announce new features, new abstractions, and API changes as they land. We’d love to get feedback on them before we release them. For example we are in the midst of landing some changes to our config system. I think it’s a big improvement in the API. I hope you all agree! Changes: In the config system,
has been renamed to `Shape`;
to `Array`;
to `Noneable`; and
. The motivation here is to clearly delineate config use cases versus cases where you are using types as the inputs and outputs of solids as well as python typing types (for mypy and friends). We believe this will be clearer to users in addition to simplifying our own implementation and internal abstractions. Our recommended fix is not to used Shape and Array, but instead to use our new condensed config specification API. This allow one to use bare dictionaries instead of
, lists with one member instead of
, bare types instead of
with a single argument, and python primitive types (
etc) instead of the dagster equivalents. These result in dramatically less verbose config specs in most cases. So instead of
Copy code
from dagster import Shape, Field, Int, Array, String
     # ... code
     config=Shape({ # Dict prior to change
        'some_int' : Field(Int),
        'some_list: Field(Array[String]) # List prior to change
one can instead write:
Copy code
config={'some_int': int, 'some_list': [str]}
No imports and much simpler, cleaner syntax.
👍 2