Hey all. We have a lot of exciting stuff coming. W...
# announcements
s
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,
Dict
has been renamed to `Shape`;
List
to `Array`;
Optional
to `Noneable`; and
PermissiveDict
to
Permissive
. 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
Shape
, lists with one member instead of
Array
, bare types instead of
Field
with a single argument, and python primitive types (
int
,
bool
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