20230721 Finished auto deploy

master
joseph 2 years ago
parent 9e7c4c973b
commit 645fb069fd
  1. 1
      Dockerfile
  2. 2
      assets_tw.json
  3. 21
      config.py
  4. 23
      data_init_tw_v0.py
  5. 22
      data_init_us_v0.py
  6. 36
      data_input.py
  7. 4
      docker-compose.yml
  8. 2
      main.py
  9. 1
      requirements.txt

@ -5,5 +5,4 @@ RUN apt-get update
RUN apt install nano
RUN pip install --upgrade pip
RUN pip3 install -r requirements.txt
EXPOSE 8000

File diff suppressed because one or more lines are too long

@ -3,30 +3,11 @@ import time
from datetime import datetime, date, timedelta
# PARAMETERS
CONFIGS = {
# "ENV": "development",
# "DEBUG": True,
# "SQLALCHEMY_DATABASE_URI" : os.getenv('DATABASE_URL'),
"SECRET_KEY": os.urandom(30), # Set the secret key for session authentication
"PERMANENT_SESSION_LIFETIME": timedelta(minutes=60)
}
# SQL_CONFIG = dict(
# database= os.getenv("PGDATABASE"),
# user=os.getenv("PGUSER"),
# host=os.getenv("PGHOST"),
# port=os.getenv("PGPORT"),
# password=os.getenv("PGPASSWORD")
# )
# CACHE_CONFIG = {
# 'CACHE_TYPE': 'redis',
# 'CACHE_REDIS_USER': os.getenv("REDISUSER"),
# 'CACHE_REDIS_HOST': os.getenv("REDISHOST"),
# 'CACHE_REDIS_PORT': os.getenv("REDISPORT"),
# 'CACHE_REDIS_PASSWORD': os.getenv("REDISPASSWORD"),
# 'CACHE_KEY_PREFIX': 'railway_redis_'
# }
SQL_CONFIG = dict(
database="profolio_platform",
database="portfolio_platform",
user="postgres",
host="db",
port="5432",

@ -0,0 +1,23 @@
import pandas as pd
import json
import yfinance as yf
import numpy as np
import psycopg2
from psycopg2.extras import execute_values
from tqdm import tqdm
with open('assets_tw.json') as f:
data_tw = json.load(f)
#SQL setting
SQL_CONFIG = dict(database="portfolio_platform", user='postgres', password='password', host='db',port ='5432')
# TW Stocks
conn = psycopg2.connect(**SQL_CONFIG)
for ticker in tqdm(data_tw):
df = yf.download(ticker, start="2020-1-1", progress=False)
value =[(ticker, df.index[i], df['Close'][i]) for i in range(len(df))]
with conn:
with conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) as curs:
sql = "insert into stock_price_tw (ticker, date, price) values %s"
execute_values(curs, sql, value)

@ -0,0 +1,22 @@
import pandas as pd
import json
import yfinance as yf
import numpy as np
import psycopg2
from psycopg2.extras import execute_values
from tqdm import tqdm
with open('assets_us.json') as f:
data_tw = json.load(f)
#SQL setting
SQL_CONFIG = dict(database="portfolio_platform", user='postgres', password='password', host='db',port ='5432')
# TW Stocks
conn = psycopg2.connect(**SQL_CONFIG)
for ticker in tqdm(data_tw):
df = yf.download(ticker, start="2020-1-1", progress=False)
value =[(ticker, df.index[i], df['Close'][i]) for i in range(len(df))]
with conn:
with conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) as curs:
sql = "insert into stock_price (ticker, date, price) values %s"
execute_values(curs, sql, value)

@ -1,36 +0,0 @@
import psycopg2
import yfinance as yf
import numpy as np
from psycopg2.extensions import register_adapter, AsIs
psycopg2.extensions.register_adapter(np.int64, psycopg2._psycopg.AsIs)
ticker = 'SPY'
start = '2011-8-1'
end = '2021-9-1'
stock_data = yf.download(ticker, start=start, end=end )
stock_data.index = np.datetime_as_string(stock_data.index, unit='D')
print(stock_data.index)
stock_data['Ticker'] = ticker
stock_data = stock_data.rename(columns={"Adj Close": "Adj_Close"})
column = ["Open" , "High" , "Low" , "Close" , "Volume"]
stock_data = stock_data.drop(column, axis=1)
records = stock_data.to_records(index=True)
print(records)
conn = psycopg2.connect(
database="profolio_platform", user='postgres', password='password', host='db',port ='5432'
)
conn.autocommit = True
cur = conn.cursor()
# print(stock_data["Date"])
# print(stock_data["Adj_Close"])
# print(stock_data["Ticker"])
# print(type(stock_data["Date"]))
# print(type(stock_data["Adj_Close"]))
# print(type(stock_data["Ticker"]))
query = """INSERT INTO stock_price (date,price,ticker)
VALUES (%s, %s, %s)"""
cur = conn.cursor()
cur.executemany(query, records)
conn.close()
print("Data Insert Successfully")

@ -5,7 +5,7 @@ services:
context: ./sql_script/
image: postgres:15.3-alpine
environment:
POSTGRES_DB: porfolio_platform
POSTGRES_DB: portfolio_platform
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
PGDATA: /var/lib/postgresql/data
@ -41,7 +41,7 @@ services:
flask:
build: ./
container_name: flask
command: python main.py runserver 0.0.0.0:8000
command: bash -c "python data_init_tw_v0.py && python data_init_us_v0.py && python main.py runserver 0.0.0.0:8000"
depends_on:
- db
- pgadmin

@ -534,4 +534,4 @@ def page_not_found(e):
if __name__ == "__main__":
app.run(host='127.0.0.1', port=8000)
app.run(host='0.0.0.0', port=8000)

@ -14,3 +14,4 @@ scipy==1.10.0
SQLAlchemy==2.0.4
gevent==22.10.2
yfinance==0.2.22
tqdm==4.62.3

Loading…
Cancel
Save