mirror of
https://github.com/hydrosquall/tiingo-python.git
synced 2025-12-17 11:54:19 +01:00
61 lines
1.6 KiB
Python
Executable File
61 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
from __future__ import print_function
|
|
import glob
|
|
import re
|
|
import argparse
|
|
|
|
fixtures_directory = 'tests/fixtures/'
|
|
|
|
# restclient api header configuration
|
|
zero_api_regex = r'(\[Token )0{40}(\])'
|
|
real_api_regex = r'(\[Token ).{40}(\])'
|
|
zero_token_string = '[Token ' + 40 * '0' + ']'
|
|
|
|
|
|
def has_api_key(file_name):
|
|
"""
|
|
Detect whether the file contains an api key in the Token object that is not 40*'0'.
|
|
See issue #86.
|
|
:param file: path-to-file to check
|
|
:return: boolean
|
|
"""
|
|
f = open(file_name, 'r')
|
|
text = f.read()
|
|
if re.search(real_api_regex, text) is not None and \
|
|
re.search(zero_api_regex, text) is None:
|
|
return True
|
|
return False
|
|
|
|
|
|
def remove_api_key(file_name):
|
|
"""
|
|
Change the api key in the Token object to 40*'0'. See issue #86.
|
|
:param file: path-to-file to change
|
|
"""
|
|
with open(file_name, 'r') as fp:
|
|
text = fp.read()
|
|
text = re.sub(real_api_regex, zero_token_string, text)
|
|
with open(file_name, 'w') as fp:
|
|
fp.write(text)
|
|
return
|
|
|
|
|
|
def main(path):
|
|
if path[-1] != '/':
|
|
raise ValueError('Final character in path must be /.')
|
|
n_files_changed = 0
|
|
for filename in glob.glob(path+'*.yaml'):
|
|
if has_api_key(filename):
|
|
remove_api_key(filename)
|
|
n_files_changed += 1
|
|
print("Changed {} files.".format(n_files_changed))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("path", help="path to test fixtures",
|
|
nargs='?', default=fixtures_directory)
|
|
args = parser.parse_args()
|
|
main(args.path)
|