-
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
323 additions
and
203 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
import functools | ||
import os | ||
import tomllib | ||
import typing | ||
from pathlib import Path | ||
|
||
from dotenv import load_dotenv | ||
|
||
TomlTable = dict[str, typing.Any] | ||
|
||
|
||
def _apply_defaults_to_siblings(configuration: TomlTable) -> TomlTable: | ||
defaults = configuration["defaults"] | ||
return { | ||
subtable: (defaults | overrides) if isinstance(overrides, dict) else overrides | ||
for subtable, overrides in configuration.items() | ||
if subtable != "defaults" | ||
} | ||
|
||
|
||
@functools.cache | ||
def load_database_configuration(file: Path = Path(__file__).parent / "config.toml") -> TomlTable: | ||
configuration = tomllib.loads(file.read_text()) | ||
|
||
database_configuration = _apply_defaults_to_siblings( | ||
configuration["databases"], | ||
) | ||
load_dotenv() | ||
database_configuration["openml"]["username"] = os.environ.get( | ||
"OPENML_DATABASES_OPENML_USERNAME", | ||
"root", | ||
) | ||
database_configuration["openml"]["password"] = os.environ.get( | ||
"OPENML_DATABASES_OPENML_PASSWORD", | ||
"ok", | ||
) | ||
database_configuration["expdb"]["username"] = os.environ.get( | ||
"OPENML_DATABASES_EXPDB_USERNAME", | ||
"root", | ||
) | ||
database_configuration["expdb"]["password"] = os.environ.get( | ||
"OPENML_DATABASES_EXPDB_PASSWORD", | ||
"ok", | ||
) | ||
return database_configuration |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
[databases.defaults] | ||
host="127.0.0.1" | ||
port="3306" | ||
# SQLAlchemy `dialect` and `driver`: https://docs.sqlalchemy.org/en/20/dialects/index.html | ||
drivername="mysql" | ||
|
||
[databases.expdb] | ||
database="openml_expdb" | ||
|
||
[databases.openml] | ||
database="openml" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,22 @@ | ||
""" Translation from https://github.com/openml/OpenML/blob/c19c9b99568c0fabb001e639ff6724b9a754bbc9/openml_OS/models/api/v1/Api_data.php#L707""" | ||
from typing import Any | ||
|
||
from config import load_database_configuration | ||
from sqlalchemy import create_engine, text | ||
from sqlalchemy.engine import URL | ||
|
||
from database.meta import get_column_names | ||
|
||
_database_configuration = load_database_configuration() | ||
expdb_url = URL.create(**_database_configuration["expdb"]) | ||
expdb = create_engine( | ||
"mysql://root:[email protected]:3306/openml_expdb", | ||
expdb_url, | ||
echo=True, | ||
pool_recycle=3600, | ||
) | ||
openml_url = URL.create(**_database_configuration["openml"]) | ||
openml = create_engine( | ||
"mysql://root:[email protected]:3306/openml", | ||
openml_url, | ||
echo=True, | ||
pool_recycle=3600, | ||
) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.