Commit a49f3034 authored by arjun.b's avatar arjun.b

updated after review.

parents
# Default ignored files
/shelf/
/workspace.xml
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="N801" />
</list>
</option>
</inspection_tool>
</profile>
</component>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/pymongo.iml" filepath="$PROJECT_DIR$/.idea/pymongo.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.9" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
# database connection
from scripts.constants.connect import db_connect
from scripts.core.handlers.crud_ops import insert, select, delete_one, update_one, update_field, edit_field
from scripts.logging.logging import logger
try:
db = db_connect()
ch = True
while ch:
choice = int(input("enter your choice\n1.insert\n2.read\n3.delete"
"\n4.update\n5.update with new field score\n6.update score field"))
if choice == 1:
insert(db)
print("data inserted")
elif choice == 2:
select(db)
elif choice == 3:
delete_one(db)
print("data deleted")
elif choice == 4:
update_one(db)
print("data updated")
elif choice == 5:
update_field(db)
elif choice == 6:
edit_field(db)
print("field value updated")
except Exception as e:
logger.error(f"an error occurred-> {e}")
print(e)
[mongo]
uri_path=mongodb://localhost:27017
[logging]
file_name=scripts\external\logging_log
\ No newline at end of file
import configparser
try:
config = configparser.ConfigParser()
config.read("conf/application.conf")
# mongo uri
uri = config.get("mongo", "uri_path")
# logging file path
file_name = config.get("logging", "file_name")
except configparser.NoOptionError:
print("could not find conf file")
import pymongo
from scripts.config.application_config import uri
def db_connect():
try:
# create mongo client
client = pymongo.MongoClient(uri)
# create database
database = client["Students"]
# create student collection
student = database["student"]
return student
except Exception as e:
print("Error:", str(e))
from scripts.logging.logging import logger
def insert(student):
try:
rn = int(input("enter the roll number"))
f_name = input("enter first name")
l_name = input("enter last name")
age = int(input("enter your age"))
dept = input("enter your department")
student.insert_many([{"RollNo": rn, "f_name": f_name, "l_name": l_name, "Age": age, "Department": dept}])
except Exception as e:
logger.error(f'could not insert document -> {e}')
print(str(e))
# delete one document
def delete_one(student):
try:
data = int(input("enter the id of the document"))
student.delete_one({"RollNo": data})
except Exception as e:
print(str(e))
# delete document using id
def delete_many(student):
try:
data = input("enter the name")
student.delete_many({"f_name": data})
except Exception as e:
logger.error(f"could not delete the document -> {e}")
print(str(e))
# select every document
def select(student):
try:
print(list(student.find({}, {"_id": 0})))
except Exception as e:
logger.error(f"could retrieve document -> {e}")
print(str(e))
# update document
def update_one(student):
try:
user_id = int(input("enter user roll no."))
db_field = input("enter the field you want to update")
field_data = input("enter the data")
update_doc = {"$set": {db_field: field_data}}
student.update_many({"RollNo": user_id}, update_doc)
except Exception as e:
logger.error(e)
print(str(e))
# update collection with new field score
def update_field(student):
try:
rn = int(input("enter the roll number"))
cricket = int(input("enter the score of cricket"))
football = int(input("enter the score of football"))
volleyball = int(input("enter the score of volleyball"))
student.update({"RollNo": rn},
{"$set":
{"score":
{"cricket": cricket, "football": football, "volleyball": volleyball
}
}
}
)
print("new filed score added to student")
except Exception as e:
logger.error(f"could not update the filed due to -> {e}")
print(str(e))
# update the fields in score
def edit_field(student):
try:
rn = int(input("enter the roll number"))
doc = student.find_one({"RollNo": rn})
field = input("enter the field you want to update")
value = int(input("enter the score"))
doc['sports'][field] = value
student.save(doc)
except Exception as e:
logger.error(f"could not edit the filed due to-> {e}")
print(str(e))
2023-02-07 10:23:29 - ERROR - [MainThread:<module>():29] - an error occurred-> select() missing 1 required positional argument: 'student'
import logging
import os
from logging.handlers import RotatingFileHandler
from scripts.config.application_config import file_name
def get_logger():
"""
Creates a rotating log
"""
__logger__ = logging.getLogger('')
__logger__.setLevel("ERROR")
log_formatter = '%(asctime)s - %(levelname)-6s - [%(threadName)5s:%(funcName)5s():%(lineno)s] - %(message)s'
time_format = "%Y-%m-%d %H:%M:%S"
formatter = logging.Formatter(log_formatter, time_format)
log_file = os.path.join(f"{file_name}_ERROR.log")
temp_handler = RotatingFileHandler(log_file,
maxBytes=100000000,
backupCount=5)
temp_handler.setFormatter(formatter)
__logger__.addHandler(temp_handler)
return __logger__
logger = get_logger()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment