Added more Print/Warning Messages &

Improved Code Flow
master
Pavan Mandava 6 years ago
parent c3f404b9b5
commit d7208088d4

@ -6,7 +6,7 @@ import db.constants as const
def add_book_to_db(book_code, book_dict):
# print('Adding Book Code :: ', book_code, ' Dict :: ', book_dict)
conn = mysql.get_new_mysql_connection('db_config.ini')
conn = mysql.get_new_mysql_connection(const.DB_CONFIG_FILE)
if conn is None:
return False

@ -1,3 +1,5 @@
DB_CONFIG_FILE = 'db_config.ini'
BOOK_INSERT_QUERY = "INSERT INTO dim_book (code, added_at) " \
"VALUES (%(code)s, %(added_at)s)"

@ -1,11 +1,13 @@
import mysql.connector
from mysql.connector import errorcode
import db.read_config as config
import utils.constants as const
import os
def get_new_mysql_connection(config_file_path):
def get_new_mysql_connection(config_file_name):
config_file_path = os.path.dirname(os.path.dirname(__file__))+'/'+config_file_name
db_config = config.read_db_config(config_file_path, 'mysql')
connection = None
@ -14,15 +16,16 @@ def get_new_mysql_connection(config_file_path):
connection = mysql.connector.connect(**db_config)
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print('Invalid Database User and Password')
print(const.WARNING, 'Invalid Database User and Password', const.END)
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print('Database doesn\'t exist ')
print(const.WARNING, 'Database doesn\'t exist ', const.END)
else:
print(err)
if connection is not None:
if connection.is_connected():
connection.autocommit = False
print(const.GREEN, 'MySQL Connection Successful => Connection ID :: ', connection.connection_id, const.END)
else:
connection = None

@ -25,4 +25,9 @@ def read_db_config(filename, section):
except KeyError:
print('Please set the Environment Variable ', db['password'])
try:
db['host'] = os.environ[db['host']]
except KeyError:
print('Please set the Environment Variable ', db['host'])
return db

@ -1,9 +0,0 @@
import db.mysql_connection as connection
conn = connection.get_new_mysql_connection('../db_config.ini')
print(conn.charset)
print('isConnected :: ', conn.is_connected())
conn.close()

@ -0,0 +1,10 @@
import db.mysql_connection as connection
import db.constants as const
conn = connection.get_new_mysql_connection(const.DB_CONFIG_FILE)
print('MySQL Server version :: ', conn.get_server_info())
print('isConnected :: ', conn.is_connected())
conn.close()

@ -1,5 +1,5 @@
[mysql]
host = 127.0.0.1
host = MYSQL_HOST
port = 3306
database = bitext-aligner
user = root

@ -1,9 +1,13 @@
import json
import xml_parser.read_xml as read_xml
import db.add_book as adb
import xml_parser.validate as validate
import utils.json_utils as json_utils
import utils.constants as const
import utils.env_utils as env
def validate_all_xml_files():
validate.validate_all_xml_files()
def save_validated_files_to_db():
@ -13,20 +17,19 @@ def save_validated_files_to_db():
books_list = books_json[book_code]
for book in books_list:
if not book['is_validated']:
print('Book : ', book['xml_file'], ' is not validated against XSD')
print(const.WARNING, 'Book : ', book['xml_file'], ' is not validated against XSD', const.END)
continue
if not book['is_saved_to_db']:
print('Saving Book : ', book['xml_file'], ' in the DB')
print(const.BLUE, 'Adding Book : ', book['xml_file'], ' to the DB', const.END)
book_dict = read_xml.parse_xml_file(book['xml_file_path'])
result = adb.add_book_to_db(book_code, book_dict)
book['is_saved_to_db'] = result
print(const.BLUE, 'Result :: ', result, const.END, '\n')
json_data['books'] = books_json
json_utils.write_json_file(const.JSON_PATH, json_data)
def validate_all_xml_files():
validate.validate_all_xml_files()
if env.check_env_variables():
validate_all_xml_files()
save_validated_files_to_db()

@ -1,3 +1,15 @@
JSON_PATH = 'json/books.json'
XSD_PATH = 'xml_files/book.xsd'
TRANSLATE_ENV_VAR = 'GOOGLE_APPLICATION_CREDENTIALS'
MYSQL_PASS_ENV_VAR = 'MYSQL_PASSWORD'
MYSQL_HOST_ENV_VAR = 'MYSQL_HOST'
WARNING = '\033[91m'
END = '\033[0m'
BLUE = '\033[94m'
GREEN = '\033[92m'

@ -0,0 +1,15 @@
import os
import utils.constants as const
def check_env_variables():
if const.TRANSLATE_ENV_VAR not in os.environ:
print(const.WARNING, 'Please set the ', const.TRANSLATE_ENV_VAR, ' Environment Variable to continue....', const.END)
return False
if const.MYSQL_PASS_ENV_VAR not in os.environ:
print(const.WARNING, 'Please set the ', const.MYSQL_PASS_ENV_VAR, ' Environment Variable to continue....', const.END)
return False
if const.MYSQL_HOST_ENV_VAR not in os.environ:
print(const.WARNING, 'Please set the ', const.MYSQL_HOST_ENV_VAR, ' Environment Variable to continue....', const.END)
return False
return True

@ -5,13 +5,11 @@ import xmlschema
from pathlib import Path
import xml_parser.validate as validate
file_path = create_xml.create_xml_file(get_book_content(), get_book_metadata())
# file_path = create_xml.create_xml_file(get_book_content(), get_book_metadata())
print(file_path)
# print(file_path)
validate.validate_all_xml_files()
# book_dict = read_xml.parse_xml_file('/Users/pavanmandava/PythonWorkspace/bitext-aligner/xml_files/abcdef_en.xml')

@ -26,7 +26,7 @@ def validate_all_xml_files():
books_list = books_json[book_code]
for book in books_list:
if book['is_validated']:
print('Book : ', book['xml_file'], ' is valid')
print(const.BLUE, 'Book : ', book['xml_file'], ' is valid', const.END)
continue
else:
if 'xml_file_path' in book:

Loading…
Cancel
Save