Skip to content

Commit

Permalink
Add central definition
Browse files Browse the repository at this point in the history
  • Loading branch information
jan-janssen committed Mar 25, 2024
1 parent 497086b commit a9382b1
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 18 deletions.
11 changes: 11 additions & 0 deletions pyiron_base/database/sqlcolumnlength.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
DEFAULT_STR_LENGTH = 255
PROJECT_PATH_STR_LENGTH = DEFAULT_STR_LENGTH
PROJECT_STR_LENGTH = DEFAULT_STR_LENGTH
JOB_STR_LENGTH = DEFAULT_STR_LENGTH
SUBJOB_STR_LENGTH = DEFAULT_STR_LENGTH
CHEMICALFORMULA_STR_LENGTH = 50
STATUS_STR_LENGTH = 20
HAMILTON_STR_LENGTH = 20
HAMVERSION_STR_LENGTH = 50
USERNAME_STR_LENGTH = 20
COMPUTER_STR_LENGTH = 100
32 changes: 22 additions & 10 deletions pyiron_base/database/tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,18 @@
String,
Table,
)
from pyiron_base.database.sqlcolumnlength import (
PROJECT_PATH_STR_LENGTH,
PROJECT_STR_LENGTH,
JOB_STR_LENGTH,
SUBJOB_STR_LENGTH,
CHEMICALFORMULA_STR_LENGTH,
STATUS_STR_LENGTH,
HAMILTON_STR_LENGTH,
HAMVERSION_STR_LENGTH,
USERNAME_STR_LENGTH,
COMPUTER_STR_LENGTH,
)

__author__ = "Murat Han Celik, Liam Huber"
__copyright__ = (
Expand All @@ -34,16 +46,16 @@ def get_historical_table(table_name, metadata, extend_existing=True):
Column("id", Integer, primary_key=True, autoincrement=True),
Column("parentid", Integer),
Column("masterid", Integer),
Column("projectpath", String(255)),
Column("project", String(255)),
Column("job", String(255)),
Column("subjob", String(255)),
Column("chemicalformula", String(50)),
Column("status", String(20)),
Column("hamilton", String(20)),
Column("hamversion", String(50)),
Column("username", String(20)),
Column("computer", String(100)),
Column("projectpath", String(PROJECT_PATH_STR_LENGTH)),
Column("project", String(PROJECT_STR_LENGTH)),
Column("job", String(JOB_STR_LENGTH)),
Column("subjob", String(SUBJOB_STR_LENGTH)),
Column("chemicalformula", String(CHEMICALFORMULA_STR_LENGTH)),
Column("status", String(STATUS_STR_LENGTH)),
Column("hamilton", String(HAMILTON_STR_LENGTH)),
Column("hamversion", String(HAMVERSION_STR_LENGTH)),
Column("username", String(USERNAME_STR_LENGTH)),
Column("computer", String(COMPUTER_STR_LENGTH)),
Column("timestart", DateTime),
Column("timestop", DateTime),
Column("totalcputime", Float),
Expand Down
6 changes: 3 additions & 3 deletions pyiron_base/jobs/job/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from typing import Optional, Union
from pyiron_base.utils.instance import static_isinstance
from pyiron_base.utils.safetar import safe_extract
from pyiron_base.database.sqlcolumnlength import JOB_STR_LENGTH

__author__ = "Jan Janssen"
__copyright__ = (
Expand Down Expand Up @@ -208,10 +209,9 @@ def _is_valid_job_name(job_name):
raise ValueError(
f'Invalid name for a pyiron object, must be letters, digits (not as first character) and "_" only, not {job_name}'
)
if len(job_name) > 50:
if len(job_name) > JOB_STR_LENGTH:
raise ValueError(
"Invalid name for a PyIron object: must be less then or "
"equal to 50 characters"
f"Invalid name for a PyIron object: must be less then or equal to {JOB_STR_LENGTH} characters"
)


Expand Down
22 changes: 17 additions & 5 deletions pyiron_base/state/update.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@
"""

from pyiron_base.state import state
from pyiron_base.database.sqlcolumnlength import (
PROJECT_PATH_STR_LENGTH,
PROJECT_STR_LENGTH,
JOB_STR_LENGTH,
SUBJOB_STR_LENGTH,
CHEMICALFORMULA_STR_LENGTH,
STATUS_STR_LENGTH,
HAMILTON_STR_LENGTH,
HAMVERSION_STR_LENGTH,
USERNAME_STR_LENGTH,
COMPUTER_STR_LENGTH,
)

__author__ = "Joerg Neugebauer, Jan Janssen"
__copyright__ = (
Expand All @@ -31,24 +43,24 @@ def database():
try:
if "projectPath".lower() not in db.get_table_headings(db.table_name):
print("add missing column: " + "projectPath")
db.add_column(col_name="projectPath", col_type="varchar(255)")
db.add_column(col_name="projectPath", col_type="varchar(" + PROJECT_PATH_STR_LENGTH + ")")
if "subJob".lower() not in db.get_table_headings(db.table_name):
print("add missing column: " + "subJob")
db.add_column(col_name="subJob", col_type="varchar(255)")
db.add_column(col_name="subJob", col_type="varchar(" + SUBJOB_STR_LENGTH + ")")
else:
print("change data type of subJob")
db.change_column_type(col_name="subJob", col_type="varchar(255)")
db.change_column_type(col_name="subJob", col_type="varchar(" + SUBJOB_STR_LENGTH + ")")
if "masterID".lower() not in db.get_table_headings(db.table_name):
print("add missing column: " + "masterid")
db.add_column(col_name="masterid", col_type="bigint")

if "hamversion" in db.get_table_headings(db.table_name):
print("change data type hamversion")
db.change_column_type(col_name="hamversion", col_type="varchar(50)")
db.change_column_type(col_name="hamversion", col_type="varchar(" + HAMVERSION_STR_LENGTH + ")")

if "job" in db.get_table_headings(db.table_name):
print("change data type job")
db.change_column_type(col_name="job", col_type="varchar(50)")
db.change_column_type(col_name="job", col_type="varchar(" + JOB_STR_LENGTH + ")")
print(db.table_name, " - database successful updated")
except ValueError:
print(db.table_name, " - database failed")
Expand Down

0 comments on commit a9382b1

Please sign in to comment.