Skip to content

Commit

Permalink
Minor refactor.
Browse files Browse the repository at this point in the history
  • Loading branch information
toddbirchard committed Aug 31, 2023
1 parent 1bd8156 commit e685a1d
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 9 deletions.
3 changes: 3 additions & 0 deletions sqlalchemy_tutorial/.flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[flake8]
select = E9,F63,F7,F82
exclude = .git,.github,__pycache__,.pytest_cache,.venv,logs,creds
1 change: 1 addition & 0 deletions sqlalchemy_tutorial/part1_connections/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""Demonstrate how to execute raw SQL queries using SQLAlchemy."""
from database import engine

from .queries import fetch_job_listings, update_job_listing
Expand Down
8 changes: 5 additions & 3 deletions sqlalchemy_tutorial/part1_connections/queries.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Execute raw SQL queries against an SQLAlchemy engine."""
from typing import List, Optional
import json

from sqlalchemy import text
from sqlalchemy.engine.base import Engine
Expand All @@ -17,17 +18,18 @@ def fetch_job_listings(engine: Engine) -> Optional[List[dict]]:
:return: Optional[List[dict]]
"""
try:
LOGGER.info("Fetching job listings...")
with engine.begin() as conn:
result = conn.execute(
text(
"SELECT job_id, agency, business_title, \
salary_range_from, salary_range_to \
FROM nyc_jobs ORDER BY RAND() LIMIT 10;"
FROM nyc_jobs ORDER BY RAND() LIMIT 5;"
),
)
results = result.fetchall()
results_dict = [row._asdict() for row in results]
LOGGER.info(f"Selected {result.rowcount} rows.")
LOGGER.info(f"Selected {result.rowcount} rows: {json.dumps(results_dict, indent=2)}")
return results_dict
except SQLAlchemyError as e:
LOGGER.error(f"SQLAlchemyError while fetching records: {e}")
Expand All @@ -52,7 +54,7 @@ def update_job_listing(engine: Engine) -> Optional[List[dict]]:
WHERE job_id = 229837;"
)
)
LOGGER.info(f"Updated {result.rowcount} row: {result}")
LOGGER.success(f"Updated {result.rowcount} row: {result}")
return result
except SQLAlchemyError as e:
LOGGER.error(f"SQLAlchemyError while updating records: {e}")
Expand Down
12 changes: 6 additions & 6 deletions sqlalchemy_tutorial/part2_orm/orm.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ def orm_create_user(session: Session, user: User) -> User:
LOGGER.success(f"Created new user: {user}")
return user
except IntegrityError as e:
LOGGER.error(e.orig)
raise e.orig
LOGGER.error(f"IntegrityError when creating user: {e}")
except SQLAlchemyError as e:
LOGGER.error(f"SQLAlchemyError when creating user: {e}")
except Exception as e:
LOGGER.error(f"Unexpected error when creating user: {e}")
raise e


def orm_delete_user(session: Session, user: User):
Expand All @@ -42,8 +42,8 @@ def orm_delete_user(session: Session, user: User):
session.commit() # Commit the change
LOGGER.success(f"Deleted user: {user}")
except IntegrityError as e:
LOGGER.error(e.orig)
raise e.orig
LOGGER.error(f"IntegrityError when deleting user: {e}")
except SQLAlchemyError as e:
LOGGER.error(f"SQLAlchemyError when deleting user: {e}")
except Exception as e:
LOGGER.error(f"Unexpected error when deleting user: {e}")
raise e

0 comments on commit e685a1d

Please sign in to comment.