Skip to content

Commit 1c0c075

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent e7f8d38 commit 1c0c075

File tree

3 files changed

+33
-20
lines changed

3 files changed

+33
-20
lines changed

jupyter_scheduler/executors.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,24 +30,30 @@ class ExecutionManager(ABC):
3030
_model = None
3131
_db_session = None
3232

33-
def __init__(self, job_id: str, root_dir: str, db_url: str, staging_paths: Dict[str, str], database_manager_class):
33+
def __init__(
34+
self,
35+
job_id: str,
36+
root_dir: str,
37+
db_url: str,
38+
staging_paths: Dict[str, str],
39+
database_manager_class,
40+
):
3441
self.job_id = job_id
3542
self.staging_paths = staging_paths
3643
self.root_dir = root_dir
3744
self.db_url = db_url
38-
45+
3946
self.database_manager = self._create_database_manager(database_manager_class)
4047

41-
4248
def _create_database_manager(self, database_manager_class):
4349
try:
44-
module_name, class_name = database_manager_class.rsplit('.', 1)
50+
module_name, class_name = database_manager_class.rsplit(".", 1)
4551
module = importlib.import_module(module_name)
4652
DatabaseManagerClass = getattr(module, class_name)
4753
return DatabaseManagerClass()
4854
except (ValueError, ImportError, AttributeError) as e:
4955
raise ValueError(f"Invalid database_manager_class '{database_manager_class}': {e}")
50-
56+
5157
@property
5258
def model(self):
5359
if self._model is None:

jupyter_scheduler/managers.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,37 @@
11
from abc import ABC, abstractmethod
22
from sqlite3 import OperationalError
3+
34
from sqlalchemy import create_engine
45
from sqlalchemy.orm import sessionmaker
56

6-
from jupyter_scheduler.orm import Base as DefaultBase, update_db_schema
7+
from jupyter_scheduler.orm import Base as DefaultBase
8+
from jupyter_scheduler.orm import update_db_schema
79

810

911
class DatabaseManager(ABC):
1012
"""Base class for database managers.
11-
13+
1214
Database managers handle database operations for jupyter-scheduler.
1315
Subclasses can implement custom storage backends (K8s, Redis, etc.)
1416
while maintaining compatibility with the scheduler's session interface.
1517
"""
16-
18+
1719
@abstractmethod
1820
def create_session(self, db_url: str):
1921
"""Create a database session.
20-
22+
2123
Args:
2224
db_url: Database URL (e.g., "k8s://namespace", "redis://localhost")
23-
25+
2426
Returns:
2527
Session object compatible with SQLAlchemy session interface
2628
"""
2729
pass
28-
29-
@abstractmethod
30+
31+
@abstractmethod
3032
def create_tables(self, db_url: str, drop_tables: bool = False, Base=None):
3133
"""Create database tables/schema.
32-
34+
3335
Args:
3436
db_url: Database URL
3537
drop_tables: Whether to drop existing tables first
@@ -40,25 +42,25 @@ def create_tables(self, db_url: str, drop_tables: bool = False, Base=None):
4042

4143
class SQLAlchemyDatabaseManager(DatabaseManager):
4244
"""Default database manager using SQLAlchemy."""
43-
45+
4446
def create_session(self, db_url: str):
4547
"""Create SQLAlchemy session factory."""
4648
engine = create_engine(db_url, echo=False)
4749
Session = sessionmaker(bind=engine)
4850
return Session
49-
51+
5052
def create_tables(self, db_url: str, drop_tables: bool = False, Base=None):
5153
"""Create database tables using SQLAlchemy."""
5254
if Base is None:
5355
Base = DefaultBase
54-
56+
5557
engine = create_engine(db_url)
5658
update_db_schema(engine, Base)
57-
59+
5860
try:
5961
if drop_tables:
6062
Base.metadata.drop_all(engine)
6163
except OperationalError:
6264
pass
6365
finally:
64-
Base.metadata.create_all(engine)
66+
Base.metadata.create_all(engine)

jupyter_scheduler/tests/test_orm.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@
1515
@pytest.fixture
1616
def database_manager():
1717
from jupyter_scheduler.managers import SQLAlchemyDatabaseManager
18+
1819
return SQLAlchemyDatabaseManager()
1920

2021

2122
@pytest.fixture
22-
def initial_db(jp_scheduler_db_url, database_manager) -> tuple[Type[DeclarativeMeta], sessionmaker, str]:
23+
def initial_db(
24+
jp_scheduler_db_url, database_manager
25+
) -> tuple[Type[DeclarativeMeta], sessionmaker, str]:
2326
TestBase = declarative_base()
2427

2528
class MockInitialJob(TestBase):
@@ -58,7 +61,9 @@ class MockUpdatedJob(TestBase):
5861
return MockUpdatedJob
5962

6063

61-
def test_create_tables_with_new_column(jp_scheduler_db_url, initial_db, updated_job_model, database_manager):
64+
def test_create_tables_with_new_column(
65+
jp_scheduler_db_url, initial_db, updated_job_model, database_manager
66+
):
6267
TestBase, Session, initial_job_id = initial_db
6368

6469
session = Session()

0 commit comments

Comments
 (0)