You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
swarms/examples/deployment_solutions/cron_job_examples/figma_stock_example.py

80 lines
2.4 KiB

"""
Example script demonstrating how to fetch Figma (FIG) stock data using Yahoo Finance.
"""
from cron_job_examples.cron_job_example import (
get_figma_stock_data,
get_figma_stock_data_simple,
)
from loguru import logger
import json
def main():
"""
Main function to demonstrate Figma stock data fetching.
"""
logger.info("Starting Figma stock data demonstration")
try:
# Example 1: Get comprehensive data as dictionary
logger.info("Fetching comprehensive Figma stock data...")
figma_data = get_figma_stock_data()
# Print the data in a structured format
print("\n" + "=" * 50)
print("COMPREHENSIVE FIGMA STOCK DATA")
print("=" * 50)
print(json.dumps(figma_data, indent=2, default=str))
# Example 2: Get simple formatted data
logger.info("Fetching simple formatted Figma stock data...")
simple_data = get_figma_stock_data_simple()
print("\n" + "=" * 50)
print("SIMPLE FORMATTED FIGMA STOCK DATA")
print("=" * 50)
print(simple_data)
# Example 3: Access specific data points
logger.info("Accessing specific data points...")
current_price = figma_data["current_market_data"][
"current_price"
]
market_cap = figma_data["current_market_data"]["market_cap"]
pe_ratio = figma_data["financial_metrics"]["pe_ratio"]
print("\nKey Metrics:")
print(f"Current Price: ${current_price}")
print(f"Market Cap: ${market_cap:,}")
print(f"P/E Ratio: {pe_ratio}")
# Example 4: Check if stock is performing well
price_change = figma_data["current_market_data"][
"price_change"
]
if isinstance(price_change, (int, float)):
if price_change > 0:
print(
f"\n📈 Figma stock is up ${price_change:.2f} today!"
)
elif price_change < 0:
print(
f"\n📉 Figma stock is down ${abs(price_change):.2f} today."
)
else:
print("\n➡️ Figma stock is unchanged today.")
logger.info(
"Figma stock data demonstration completed successfully!"
)
except Exception as e:
logger.error(f"Error in main function: {e}")
print(f"Error: {e}")
if __name__ == "__main__":
main()