mirror of
https://github.com/andrewkdinh/fund-indicators.git
synced 2024-11-21 15:04:19 -08:00
6366453f63
Changed from years to months Added function to scrape Yahoo Finance for indicator data Moved generic functions to Functions.py Added function to scrape websites for stocks Attempted to alleviate problem of async function
137 lines
3.4 KiB
Python
137 lines
3.4 KiB
Python
# Python file for general functions
|
|
|
|
def getNearest(items, pivot):
|
|
return min(items, key=lambda x: abs(x - pivot))
|
|
|
|
|
|
def stringToDate(date):
|
|
from datetime import datetime
|
|
|
|
#datetime_object = datetime.strptime('Jun 1 2005 1:33PM', '%b %d %Y %I:%M%p')
|
|
datetime_object = datetime.strptime(date, '%Y-%m-%d').date()
|
|
return(datetime_object)
|
|
|
|
|
|
def removeExtraDatesAndCloseValues(list1, list2):
|
|
# Returns the two lists but with the extra dates and corresponding close values removed
|
|
# list = [[dates], [close values]]
|
|
|
|
newList1 = [[], []]
|
|
newList2 = [[], []]
|
|
|
|
for i in range(0, len(list1[0]), 1):
|
|
for j in range(0, len(list2[0]), 1):
|
|
if list1[0][i] == list2[0][j]:
|
|
newList1[0].append(list1[0][i])
|
|
newList2[0].append(list1[0][i])
|
|
newList1[1].append(list1[1][i])
|
|
newList2[1].append(list2[1][j])
|
|
break
|
|
|
|
returnList = []
|
|
returnList.append(newList1)
|
|
returnList.append(newList2)
|
|
return returnList
|
|
|
|
|
|
def stringIsInt(s):
|
|
try:
|
|
int(s)
|
|
return True
|
|
except ValueError:
|
|
return False
|
|
|
|
|
|
def strintIsFloat(s):
|
|
try:
|
|
float(s)
|
|
return True
|
|
except ValueError:
|
|
return False
|
|
|
|
|
|
def fromCache(r):
|
|
import requests_cache
|
|
if r.from_cache == True:
|
|
print('(Response taken from cache)')
|
|
return
|
|
|
|
|
|
def getJoke():
|
|
import requests
|
|
import requests_cache
|
|
with requests_cache.disabled():
|
|
'''
|
|
f = requests.get('https://official-joke-api.appspot.com/jokes/random').json()
|
|
print('')
|
|
print(f['setup'])
|
|
print(f['punchline'], end='\n\n')
|
|
'''
|
|
headers = {'Accept': 'application/json',
|
|
'User-Agent': 'fund-indicators (https://github.com/andrewkdinh/fund-indicators)'}
|
|
f = requests.get('https://icanhazdadjoke.com/', headers=headers).json()
|
|
print('')
|
|
print(f['joke'])
|
|
|
|
|
|
def hasNumbers(inputString):
|
|
return any(char.isdigit() for char in inputString)
|
|
|
|
|
|
def checkPackages(listOfPackages):
|
|
import importlib.util
|
|
import sys
|
|
|
|
packagesInstalled = True
|
|
packages = listOfPackages
|
|
for i in range(0, len(packages), 1):
|
|
package_name = packages[i]
|
|
spec = importlib.util.find_spec(package_name)
|
|
if spec is None:
|
|
print(
|
|
package_name +
|
|
" is not installed\nPlease enter 'pip install -r requirements.txt' to install all required packages")
|
|
packagesInstalled = False
|
|
return packagesInstalled
|
|
|
|
|
|
def checkPythonVersion():
|
|
import platform
|
|
#print('Checking Python version')
|
|
i = platform.python_version()
|
|
r = i.split('.')
|
|
k = float(''.join((r[0], '.', r[1])))
|
|
if k < 3.3:
|
|
print('Your Python version is', i,
|
|
'\nIt needs to be greater than version 3.3')
|
|
return False
|
|
else:
|
|
print('Your Python version of', i, 'is good')
|
|
return True
|
|
|
|
|
|
def isConnected():
|
|
import socket # To check internet connection
|
|
try:
|
|
# connect to the host -- tells us if the host is actually reachable
|
|
socket.create_connection(("www.andrewkdinh.com", 80))
|
|
print('Internet connection is good')
|
|
return True
|
|
except OSError:
|
|
# pass
|
|
print("No internet connection!")
|
|
return False
|
|
|
|
|
|
def fileExists(file):
|
|
import os.path
|
|
return os.path.exists(file)
|
|
|
|
|
|
def main():
|
|
exit()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|