We're thrilled to announce a major milestone: prefect
is now 100% type complete! ๐ Every public interface in the library now includes comprehensive type annotations, bringing significant improvements to the developer experience. This means you'll enjoy:
- Enhanced autocompletion in your IDE, helping you write code faster and with fewer errors
- Robust static analysis through tools like
mypy
andpyright
, catching potential issues before runtime - Clear, unambiguous type signatures that serve as living documentation for the entire codebase
This achievement represents our commitment to building a more maintainable, reliable, and developer-friendly Python library.
Enhancements โโ
- Allow servers to start with no background services by @cicdw in #16693
- Expose more SALAlchemy settings by @cicdw in #16742
- Create model for SQLAlchemy connection arguments by @cicdw in #16762
- Update SLA logic to use declarative endpoint by @dylanbhughes in #16755
- Add
prefect server services
CLI commands by @zzstoatzz in #16706 - Add provisioner for Coiled push work pools by @ntabris in #16736
Bug Fixes ๐
- Fix
SendgridEmail
code example by @jakekaplan in #16677 - Fix connection string handling when individual components are provided via settings by @desertaxle in #16680
- Handles the instrumentation case where a future is only used to
wait_for
by @chrisguidry in #16709 - Fix bug where a server can't be stopped and restarted without waiting several seconds by @desertaxle in #15729
- Fixes to Prefect Basic Auth by @cicdw in #16735
- Switch
drain_all
call to be called from new thread instead of global loop thread by @jeanluciano in #16739 - Ensures that
QueueService
instances are unique within types by @chrisguidry in #16751
Integrations & Dependencies ๐ค
Development & Tidiness ๐งน
- Remove DB interface from
_on_start
by @cicdw in #16687 - Improve typing in
prefect.server.events
by @desertaxle in #16692 - Improve type completeness of
prefect.server.services
by @desertaxle in #16701 - Delete old create integrations cards script by @desertaxle in #16704
- Improve typing in
prefect.results
by @desertaxle in #16714 - Improve typing in server events - part deux by @desertaxle in #16715
- Improve typing of
prefect.settings
by @desertaxle in #16719 - Task engine typing by @zzstoatzz in #16731
- Raise type completeness on
prefect.inputs
to 100% by @desertaxle in #16740 - Raise type completeness to 95% by @desertaxle in #16723
- Raise type completeness of
prefect.server
to 100% by @desertaxle in #16729 - Raise type completeness to 99.8% by @desertaxle in #16734
- Add type completeness pre-commit hook by @desertaxle in #16744
- Add type hints to
CoiledPushProvisioner
by @desertaxle in #16745 - Deprecate custom
JsonPatch
implementation by @desertaxle in #16743
Documentation ๐
- Improve the intro to the quickstart tutorial by @daniel-prefect in #16664
- Update Intros in Docs by @aaazzam in #16674
- Update index.mdx by @aaazzam in #16675
- Remove the promise that the quickstart only takes five minutes to complete by @daniel-prefect in #16669
- Update prefect-yaml.mdx by @adrianoresende in #16688
- Docs quickstart feedback by @kevingrismore in #16683
- Fix silly typo by @cicdw in #16703
- Move quickstart to immediately before the 'schedule a flow' tutorial in the docs by @daniel-prefect in #16705
- Add state transition table to 'Manage states' doc and link from the debug tutorial by @daniel-prefect in #16668
- Add an ML pipeline tutorial by @daniel-prefect in #16632
- Use Python 3.9 syntax and don't test 3rd-party dependencies by @daniel-prefect in #16730
- Add in documentation for Service Level Agreements by @sam-phinizy in #16663
- Use the flow from the quickstart as the basis for the deployment in the scheduling tutorial by @daniel-prefect in #16721
- Add correct probe config to
gcloud
example command by @cicdw in #16738 - Docs: publish static outbound IP address for managed execution by @parkedwards in #16741
- Update settings docs with basic auth by @cicdw in #16753
New Contributors
- @adrianoresende made their first contribution in #16688
- @ntabris made their first contribution in #16736
Full Changelog: 3.1.12...3.1.13