mirror of
https://github.com/LukeHagar/pypistats.dev.git
synced 2025-12-08 20:57:49 +00:00
fix for lambda event context on scheduled tasks
This commit is contained in:
@@ -69,9 +69,10 @@ def get_google_credentials():
|
|||||||
return credentials
|
return credentials
|
||||||
|
|
||||||
|
|
||||||
def get_daily_download_stats(env="dev", date="None"):
|
def get_daily_download_stats(event, context):
|
||||||
"""Get daily download stats for pypi packages from BigQuery."""
|
"""Get daily download stats for pypi packages from BigQuery."""
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
env = event["env"]
|
||||||
if os.environ.get("ENV", None) is None:
|
if os.environ.get("ENV", None) is None:
|
||||||
load_env_vars(env)
|
load_env_vars(env)
|
||||||
job_config = bigquery.QueryJobConfig()
|
job_config = bigquery.QueryJobConfig()
|
||||||
@@ -80,7 +81,8 @@ def get_daily_download_stats(env="dev", date="None"):
|
|||||||
project=os.environ["GOOGLE_PROJECT_ID"],
|
project=os.environ["GOOGLE_PROJECT_ID"],
|
||||||
credentials=credentials
|
credentials=credentials
|
||||||
)
|
)
|
||||||
if date == "None":
|
date = event.get("date", None)
|
||||||
|
if date is None:
|
||||||
date = str(datetime.date.today() - datetime.timedelta(days=1))
|
date = str(datetime.date.today() - datetime.timedelta(days=1))
|
||||||
|
|
||||||
# # Prepare a reference to the new dataset
|
# # Prepare a reference to the new dataset
|
||||||
@@ -155,7 +157,6 @@ def get_daily_download_stats(env="dev", date="None"):
|
|||||||
|
|
||||||
def update_db(df, env="dev"):
|
def update_db(df, env="dev"):
|
||||||
"""Update the db with new data by table."""
|
"""Update the db with new data by table."""
|
||||||
if os.environ.get("ENV", None) is None:
|
|
||||||
load_env_vars(env)
|
load_env_vars(env)
|
||||||
connection, cursor = get_connection_cursor(env)
|
connection, cursor = get_connection_cursor(env)
|
||||||
|
|
||||||
@@ -204,16 +205,19 @@ def update_table(connection, cursor, table, df, date):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def update_all_package_stats(env="dev", date="None"):
|
def update_all_package_stats(event, context):
|
||||||
"""Update stats for __all__ packages."""
|
"""Update stats for __all__ packages."""
|
||||||
print("__all__")
|
print("__all__")
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
|
||||||
if date == "None":
|
date = event.get("date", None)
|
||||||
|
if date is None:
|
||||||
date = str(datetime.date.today() - datetime.timedelta(days=1))
|
date = str(datetime.date.today() - datetime.timedelta(days=1))
|
||||||
|
|
||||||
|
env = event["env"]
|
||||||
if os.environ.get("ENV", None) is None:
|
if os.environ.get("ENV", None) is None:
|
||||||
load_env_vars(env)
|
load_env_vars(env)
|
||||||
|
|
||||||
connection, cursor = get_connection_cursor(env)
|
connection, cursor = get_connection_cursor(env)
|
||||||
|
|
||||||
success = {}
|
success = {}
|
||||||
@@ -245,16 +249,19 @@ def update_all_package_stats(env="dev", date="None"):
|
|||||||
return success
|
return success
|
||||||
|
|
||||||
|
|
||||||
def update_recent_stats(env="dev", date="None"):
|
def update_recent_stats(event, context):
|
||||||
"""Update daily, weekly, monthly stats for all packages."""
|
"""Update daily, weekly, monthly stats for all packages."""
|
||||||
print("recent")
|
print("recent")
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
|
||||||
if date == "None":
|
date = event.get("date", None)
|
||||||
|
if date is None:
|
||||||
date = str(datetime.date.today() - datetime.timedelta(days=1))
|
date = str(datetime.date.today() - datetime.timedelta(days=1))
|
||||||
|
|
||||||
|
env = event["env"]
|
||||||
if os.environ.get("ENV", None) is None:
|
if os.environ.get("ENV", None) is None:
|
||||||
load_env_vars(env)
|
load_env_vars(env)
|
||||||
|
|
||||||
connection, cursor = get_connection_cursor(env)
|
connection, cursor = get_connection_cursor(env)
|
||||||
|
|
||||||
downloads_table = "overall"
|
downloads_table = "overall"
|
||||||
@@ -315,16 +322,20 @@ def get_connection_cursor(env):
|
|||||||
return connection, cursor
|
return connection, cursor
|
||||||
|
|
||||||
|
|
||||||
def purge_old_data(env="dev", age=MAX_RECORD_AGE, date="None"):
|
def purge_old_data(event, context):
|
||||||
"""Purge old data records."""
|
"""Purge old data records."""
|
||||||
print("Purge")
|
print("Purge")
|
||||||
|
age = MAX_RECORD_AGE
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
|
||||||
if date == "None":
|
date = event.get("date", None)
|
||||||
|
if date is None:
|
||||||
date = str(datetime.date.today() - datetime.timedelta(days=1))
|
date = str(datetime.date.today() - datetime.timedelta(days=1))
|
||||||
|
|
||||||
|
env = event["env"]
|
||||||
if os.environ.get("ENV", None) is None:
|
if os.environ.get("ENV", None) is None:
|
||||||
load_env_vars(env)
|
load_env_vars(env)
|
||||||
|
|
||||||
connection, cursor = get_connection_cursor(env)
|
connection, cursor = get_connection_cursor(env)
|
||||||
|
|
||||||
date = datetime.datetime.strptime(date, '%Y-%m-%d')
|
date = datetime.datetime.strptime(date, '%Y-%m-%d')
|
||||||
@@ -439,9 +450,14 @@ def get_query(date):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
date = "2018-04-16"
|
date = "2018-04-17"
|
||||||
env = "prod"
|
env = "prod"
|
||||||
|
event = {
|
||||||
|
"date": date,
|
||||||
|
"env": env,
|
||||||
|
}
|
||||||
|
context = None
|
||||||
print(date, env)
|
print(date, env)
|
||||||
print(get_daily_download_stats(env, date))
|
print(get_daily_download_stats(event, context))
|
||||||
print(update_all_package_stats(env, date))
|
print(update_all_package_stats(event, context))
|
||||||
print(update_recent_stats(env, date))
|
print(update_recent_stats(event, context))
|
||||||
|
|||||||
@@ -11,22 +11,22 @@
|
|||||||
"events": [
|
"events": [
|
||||||
{
|
{
|
||||||
"function": "pypistats.tasks.pypi.get_daily_download_stats",
|
"function": "pypistats.tasks.pypi.get_daily_download_stats",
|
||||||
"kwargs": {"env": "dev", "date": "None"},
|
"kwargs": {"env": "dev"},
|
||||||
"expression": "cron(0 1 * * ? *)"
|
"expression": "cron(0 1 * * ? *)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "pypistats.tasks.pypi.update_all_package_stats",
|
"function": "pypistats.tasks.pypi.update_all_package_stats",
|
||||||
"kwargs": {"env": "dev", "date": "None"},
|
"kwargs": {"env": "dev"},
|
||||||
"expression": "cron(10 1 * * ? *)"
|
"expression": "cron(10 1 * * ? *)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "pypistats.tasks.pypi.update_recent_stats",
|
"function": "pypistats.tasks.pypi.update_recent_stats",
|
||||||
"kwargs": {"env": "dev", "date": "None"},
|
"kwargs": {"env": "dev"},
|
||||||
"expression": "cron(15 1 * * ? *)"
|
"expression": "cron(15 1 * * ? *)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "pypistats.tasks.pypi.purge_old_data",
|
"function": "pypistats.tasks.pypi.purge_old_data",
|
||||||
"kwargs": {"env": "dev", "date": "None"},
|
"kwargs": {"env": "dev"},
|
||||||
"expression": "cron(20 1 * * ? *)"
|
"expression": "cron(20 1 * * ? *)"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -69,22 +69,22 @@
|
|||||||
"events": [
|
"events": [
|
||||||
{
|
{
|
||||||
"function": "pypistats.tasks.pypi.get_daily_download_stats",
|
"function": "pypistats.tasks.pypi.get_daily_download_stats",
|
||||||
"kwargs": {"env": "prod", "date": "None"},
|
"kwargs": {"env": "prod"},
|
||||||
"expression": "cron(0 1 * * ? *)"
|
"expression": "cron(0 1 * * ? *)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "pypistats.tasks.pypi.update_all_package_stats",
|
"function": "pypistats.tasks.pypi.update_all_package_stats",
|
||||||
"kwargs": {"env": "prod", "date": "None"},
|
"kwargs": {"env": "prod"},
|
||||||
"expression": "cron(10 1 * * ? *)"
|
"expression": "cron(10 1 * * ? *)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "pypistats.tasks.pypi.update_recent_stats",
|
"function": "pypistats.tasks.pypi.update_recent_stats",
|
||||||
"kwargs": {"env": "prod", "date": "None"},
|
"kwargs": {"env": "prod"},
|
||||||
"expression": "cron(15 1 * * ? *)"
|
"expression": "cron(15 1 * * ? *)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"function": "pypistats.tasks.pypi.purge_old_data",
|
"function": "pypistats.tasks.pypi.purge_old_data",
|
||||||
"kwargs": {"env": "prod", "date": "None"},
|
"kwargs": {"env": "prod"},
|
||||||
"expression": "cron(20 1 * * ? *)"
|
"expression": "cron(20 1 * * ? *)"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user