Edward at Evo
07/06/2023, 2:25 PMJeff Hale
07/06/2023, 2:33 PMhttpx.get("<https://httpstat.us/Random/200,500>", verify=False)
Jeff Hale
07/06/2023, 2:40 PMJeff Hale
07/06/2023, 2:42 PMShrutika
07/06/2023, 2:42 PMprefect server start --port 8084
Devin
07/06/2023, 2:52 PMimport httpx
from prefect import flow, task, get_run_logger
from prefect.tasks import task_input_hash
@task(retries=4, retry_delay_seconds=1)
def try_again():
log = get_run_logger()
result = httpx.get("<https://httpstat.us/Random/200,500>", verify=False)
if result.status_code >= 400:
<http://log.info|log.info>("Failed")
raise Exception()
<http://log.info|log.info>(result.text)
@task(retries=4, retry_delay_seconds=0.1)
def fetch_cat_fact():
log = get_run_logger()
cat_fact = httpx.get("<https://f3-vyx5c2hfpq-ue.a.run.app/>")
if cat_fact.status_code >= 400:
raise Exception()
<http://log.info|log.info>(cat_fact.text)
@task(retries=4, retry_delay_seconds=0.1, cache_key_fn=task_input_hash)
def fetch_weather(lat: float, lon: float):
base_url = "<https://api.open-meteo.com/v1/forecast/>"
weather = httpx.get(
base_url,
params=dict(latitude=lat, longitude=lon, hourly="temperature_2m"),
)
most_recent_temp = float(weather.json()["hourly"]["temperature_2m"][0])
return most_recent_temp
@flow
def fetch():
log = get_run_logger()
fetch_cat_fact()
weather = fetch_weather(39.7589,84.1916)
<http://log.info|log.info>(str(weather))
try_again()
if __name__ == "__main__":
fetch()
Gautam Peri
07/06/2023, 3:08 PMJeff Hale
07/06/2023, 3:21 PMdainslie
07/06/2023, 3:33 PMEmil Christensen
07/06/2023, 3:34 PMfrom prefect import flow, get_run_logger
from prefect.context import get_run_context
@flow(retries=3)
def main():
get_run_logger().warning(f"This is run {get_run_context().flow_run.run_count}")
raise ValueError()
if __name__ == "__main__":
main()
Ali Mir
07/06/2023, 3:37 PMfrom prefect.blocks.system import EMAILStoEMAIL
). When do we want to import blocks and when it's not necessary?
• Can an automation step do multiple things? for example, trigger a block which is responsible for emailing and another one that is responsible for sending a slack message, or do they have to be 2 different automations?Edward at Evo
07/06/2023, 3:41 PMEmil Christensen
07/06/2023, 3:42 PMJeff Hale
07/06/2023, 3:51 PMJeff Hale
07/06/2023, 4:00 PMDevin
07/06/2023, 5:05 PMEmil Christensen
07/06/2023, 5:20 PMDima Anoshin
07/06/2023, 5:21 PMJeff Hale
07/06/2023, 5:22 PMEdward at Evo
07/06/2023, 5:25 PMJeff Hale
07/06/2023, 5:26 PMGautam Peri
07/06/2023, 5:40 PMAlyssa Harris
07/06/2023, 5:40 PMFlow could not be retrieved from deployment.
Traceback (most recent call last):
File "<frozen importlib._bootstrap_external>", line 879, in exec_module
File "<frozen importlib._bootstrap_external>", line 1016, in get_code
File "<frozen importlib._bootstrap_external>", line 1073, in get_data
FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/53/65gf_nkd2l14whfqq9lcrvnr0000gn/T/tmpcdtvon3cprefect/pacc-2023/flows.py'
Emil Christensen
07/06/2023, 5:52 PMElla
07/06/2023, 5:54 PMJeff Hale
07/06/2023, 5:56 PMJeff Hale
07/06/2023, 6:01 PMJeff Hale
07/06/2023, 6:25 PMTheo Platt
07/06/2023, 6:37 PMEmil Christensen
07/06/2023, 6:38 PM