Skip to content

Commit 257b497

Browse files
committed
moved workspace and its tests to gymlib
1 parent 7c05fa6 commit 257b497

28 files changed

+59
-59
lines changed

benchmark/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import click
2+
from gymlib.workspace import DBGymWorkspace
23

34
from benchmark.job.cli import job_group
45
from benchmark.tpch.cli import tpch_group
5-
from util.workspace import DBGymWorkspace
66

77

88
@click.group(name="benchmark")

benchmark/job/cli.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
from typing import Optional
33

44
import click
5-
from gymlib import (
5+
from gymlib.shell import subprocess_run
6+
from gymlib.symlinks_paths import (
67
get_tables_dirname,
78
get_workload_dirname,
89
get_workload_suffix,
910
name_to_linkname,
1011
)
11-
from gymlib.shell import subprocess_run
12+
from gymlib.workspace import DBGymWorkspace, fully_resolve_path
1213

1314
from benchmark.constants import DEFAULT_SCALE_FACTOR
14-
from util.workspace import DBGymWorkspace, fully_resolve_path
1515

1616
JOB_TABLES_URL = "https://event.cwi.nl/da/job/imdb.tgz"
1717
JOB_QUERIES_URL = "https://event.cwi.nl/da/job/job.tgz"

benchmark/job/load_info.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from pathlib import Path
22
from typing import Optional
33

4-
from gymlib import get_tables_symlink_path
4+
from gymlib.symlinks_paths import get_tables_symlink_path
5+
from gymlib.workspace import DBGymWorkspace, fully_resolve_path
56

67
from benchmark.constants import DEFAULT_SCALE_FACTOR
78
from dbms.load_info_base_class import LoadInfoBaseClass
8-
from util.workspace import DBGymWorkspace, fully_resolve_path
99

1010
JOB_SCHEMA_FNAME = "job_schema.sql"
1111

benchmark/tests/integtest_benchmark.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22
import unittest
33
from pathlib import Path
44

5-
from gymlib import (
5+
from gymlib.symlinks_paths import (
66
get_tables_symlink_path,
77
get_workload_suffix,
88
get_workload_symlink_path,
99
)
10+
from gymlib.workspace import (
11+
DBGymWorkspace,
12+
fully_resolve_path,
13+
get_workspace_path_from_config,
14+
)
1015

1116
# It's ok to import private functions from the benchmark module because this is an integration test.
1217
from benchmark.constants import DEFAULT_SCALE_FACTOR
1318
from benchmark.job.cli import _job_tables, _job_workload
1419
from benchmark.tpch.cli import _tpch_tables, _tpch_workload
1520
from benchmark.tpch.constants import DEFAULT_TPCH_SEED
16-
from util.workspace import (
17-
DBGymWorkspace,
18-
fully_resolve_path,
19-
get_workspace_path_from_config,
20-
)
2121

2222

2323
class BenchmarkTests(unittest.TestCase):

benchmark/tpch/cli.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import logging
22

33
import click
4-
from gymlib import (
4+
from gymlib.shell import subprocess_run
5+
from gymlib.symlinks_paths import (
56
get_scale_factor_string,
67
get_tables_dirname,
78
get_tables_symlink_path,
@@ -10,11 +11,10 @@
1011
linkname_to_name,
1112
name_to_linkname,
1213
)
13-
from gymlib.shell import subprocess_run
14+
from gymlib.workspace import DBGymWorkspace, fully_resolve_path, is_fully_resolved
1415

1516
from benchmark.constants import DEFAULT_SCALE_FACTOR
1617
from benchmark.tpch.constants import DEFAULT_TPCH_SEED, NUM_TPCH_QUERIES
17-
from util.workspace import DBGymWorkspace, fully_resolve_path, is_fully_resolved
1818

1919
TPCH_KIT_DIRNAME = "tpch-kit"
2020

benchmark/tpch/load_info.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from pathlib import Path
22
from typing import Optional
33

4-
from gymlib import get_tables_symlink_path
4+
from gymlib.symlinks_paths import get_tables_symlink_path
5+
from gymlib.workspace import DBGymWorkspace, fully_resolve_path
56

67
from dbms.load_info_base_class import LoadInfoBaseClass
7-
from util.workspace import DBGymWorkspace, fully_resolve_path
88

99
TPCH_SCHEMA_FNAME = "tpch_schema.sql"
1010
TPCH_CONSTRAINTS_FNAME = "tpch_constraints.sql"

dbms/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import click
2+
from gymlib.workspace import DBGymWorkspace
23

34
from dbms.postgres.cli import postgres_group
4-
from util.workspace import DBGymWorkspace
55

66

77
@click.group(name="dbms")

dbms/postgres/cli.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,27 @@
1313
import psutil
1414
import psycopg
1515
import sqlalchemy
16-
from gymlib import (
16+
from gymlib.shell import subprocess_run
17+
from gymlib.symlinks_paths import (
1718
get_dbdata_tgz_symlink_path,
1819
get_pgbin_symlink_path,
1920
get_repo_symlink_path,
2021
linkname_to_name,
2122
)
22-
from gymlib.shell import subprocess_run
23-
from sqlalchemy import create_engine, text
24-
25-
from benchmark.constants import DEFAULT_SCALE_FACTOR
26-
from benchmark.job.load_info import JobLoadInfo
27-
from benchmark.tpch.load_info import TpchLoadInfo
28-
from dbms.load_info_base_class import LoadInfoBaseClass
29-
from util.workspace import (
23+
from gymlib.workspace import (
3024
WORKSPACE_PATH_PLACEHOLDER,
3125
DBGymWorkspace,
3226
fully_resolve_path,
3327
get_tmp_path_from_workspace_path,
3428
is_fully_resolved,
3529
is_ssd,
3630
)
31+
from sqlalchemy import create_engine, text
32+
33+
from benchmark.constants import DEFAULT_SCALE_FACTOR
34+
from benchmark.job.load_info import JobLoadInfo
35+
from benchmark.tpch.load_info import TpchLoadInfo
36+
from dbms.load_info_base_class import LoadInfoBaseClass
3737

3838
DBGYM_POSTGRES_USER = "dbgym_user"
3939
DBGYM_POSTGRES_PASS = "dbgym_pass"

dbms/tests/integtest_dbms.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
import unittest
44
from pathlib import Path
55

6-
from gymlib import get_dbdata_tgz_symlink_path, get_repo_symlink_path
7-
8-
from benchmark.tpch.cli import _tpch_tables
9-
from dbms.postgres.cli import _postgres_build, _postgres_dbdata
10-
from util.workspace import (
6+
from gymlib.symlinks_paths import get_dbdata_tgz_symlink_path, get_repo_symlink_path
7+
from gymlib.workspace import (
118
DBGymWorkspace,
129
fully_resolve_path,
1310
get_workspace_path_from_config,
1411
)
1512

13+
from benchmark.tpch.cli import _tpch_tables
14+
from dbms.postgres.cli import _postgres_build, _postgres_dbdata
15+
1616

1717
class DBMSTests(unittest.TestCase):
1818
DBGYM_CONFIG_PATH = Path("dbms/tests/dbms_integtest_dbgym_config.yaml")

env/pg_conn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import psutil
2020
import psycopg
2121
import yaml
22+
from gymlib.workspace import DBGymWorkspace, parent_path_of_path
2223
from plumbum import local
2324
from psycopg.errors import ProgramLimitExceeded, QueryCanceled
2425

@@ -27,7 +28,6 @@
2728
SHARED_PRELOAD_LIBRARIES,
2829
get_kv_connstr,
2930
)
30-
from util.workspace import DBGymWorkspace, parent_path_of_path
3131

3232
CONNECT_TIMEOUT = 300
3333

env/replay.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
from collections import defaultdict
22
from pathlib import Path
33

4+
from gymlib.workspace import DBGymWorkspace
5+
46
from env.pg_conn import PostgresConn
57
from env.tuning_artifacts import TuningArtifactsReader
68
from env.workload import Workload
79
from util.pg import DEFAULT_POSTGRES_PORT
8-
from util.workspace import DBGymWorkspace
910

1011

1112
def replay(

env/tests/gymlib_integtest_util.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@
44
from typing import Optional
55

66
# TODO: remove symlinks_paths from the import
7-
from gymlib import (
7+
from gymlib.symlinks_paths import (
88
get_dbdata_tgz_symlink_path,
99
get_pgbin_symlink_path,
1010
get_workload_suffix,
1111
get_workload_symlink_path,
1212
)
13-
14-
from benchmark.tpch.constants import DEFAULT_TPCH_SEED
15-
from env.tuning_artifacts import TuningMetadata
16-
from util.workspace import (
13+
from gymlib.workspace import (
1714
DBGymWorkspace,
1815
fully_resolve_path,
1916
get_tmp_path_from_workspace_path,
2017
get_workspace_path_from_config,
2118
)
2219

20+
from benchmark.tpch.constants import DEFAULT_TPCH_SEED
21+
from env.tuning_artifacts import TuningMetadata
22+
2323

2424
class GymlibIntegtestManager:
2525
"""

env/tests/integtest_pg_conn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import unittest
33

44
import psycopg
5+
from gymlib.workspace import DBGymWorkspace
56

67
from env.pg_conn import PostgresConn
78
from env.tests.gymlib_integtest_util import GymlibIntegtestManager
@@ -10,7 +11,6 @@
1011
get_is_postgres_running,
1112
get_running_postgres_ports,
1213
)
13-
from util.workspace import DBGymWorkspace
1414

1515

1616
class PostgresConnTests(unittest.TestCase):

env/tests/integtest_replay.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import unittest
22

3+
from gymlib.workspace import DBGymWorkspace
4+
35
from benchmark.tpch.constants import DEFAULT_TPCH_SEED
46
from env.replay import replay
57
from env.tests.gymlib_integtest_util import GymlibIntegtestManager
@@ -10,7 +12,6 @@
1012
SysKnobsDelta,
1113
TuningArtifactsWriter,
1214
)
13-
from util.workspace import DBGymWorkspace
1415

1516

1617
class ReplayTests(unittest.TestCase):

env/tests/integtest_tuning_artifacts.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import unittest
22

3+
from gymlib.workspace import DBGymWorkspace
4+
35
from env.tests.gymlib_integtest_util import GymlibIntegtestManager
46
from env.tuning_artifacts import (
57
DBMSConfigDelta,
@@ -9,7 +11,6 @@
911
TuningArtifactsReader,
1012
TuningArtifactsWriter,
1113
)
12-
from util.workspace import DBGymWorkspace
1314

1415

1516
class PostgresConnTests(unittest.TestCase):

env/tests/integtest_workload.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import unittest
22

3+
from gymlib.workspace import DBGymWorkspace
4+
35
from benchmark.tpch.constants import DEFAULT_TPCH_SEED, NUM_TPCH_QUERIES
46
from env.tests.gymlib_integtest_util import GymlibIntegtestManager
57
from env.workload import Workload
6-
from util.workspace import DBGymWorkspace
78

89

910
class WorkloadTests(unittest.TestCase):

env/tuning_artifacts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from pathlib import Path
44
from typing import Any, NewType
55

6-
from util.workspace import DBGymWorkspace, is_fully_resolved
6+
from gymlib.workspace import DBGymWorkspace, is_fully_resolved
77

88
# PostgresConn doesn't use these types because PostgresConn is used internally by tuning agents
99
# while these types are only used in the interface between the orchestrator and the tuning agents.

env/workload.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from pathlib import Path
22

3-
from util.workspace import DBGymWorkspace, is_fully_resolved
3+
from gymlib.workspace import DBGymWorkspace, is_fully_resolved
44

55

66
class Workload:

gymlib_package/__init__.py

Whitespace-only changes.

gymlib_package/gymlib/__init__.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1 @@
1-
# Everything at the "core" of gymlib will be imported directly (e.g. `from .[module] import *`).
2-
# Everything not as important will be only be imported as a module (e.g. `from . import [module]`).
3-
from . import shell
4-
from .magic import *
5-
from .symlinks_paths import *
1+
from . import magic, shell, symlinks_paths, workspace

gymlib_package/gymlib/tests/__init__.py

Whitespace-only changes.

util/tests/unittest_filesystem_unittest_util.py renamed to gymlib_package/gymlib/tests/unittest_filesystem_unittest_util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import unittest
44
from pathlib import Path
55

6-
from util.tests.filesystem_unittest_util import (
6+
from gymlib.tests.filesystem_unittest_util import (
77
FilesystemStructure,
88
create_structure,
99
verify_structure,

util/tests/unittest_workspace.py renamed to gymlib_package/gymlib/tests/unittest_workspace.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
from pathlib import Path
77
from typing import Optional
88

9-
from util.tests.filesystem_unittest_util import (
9+
from gymlib.tests.filesystem_unittest_util import (
1010
FilesystemStructure,
1111
create_structure,
1212
make_workspace_structure,
1313
verify_structure,
1414
)
15-
from util.workspace import DBGymWorkspace
15+
from gymlib.workspace import DBGymWorkspace
1616

1717

1818
class WorkspaceTests(unittest.TestCase):

util/workspace.py renamed to gymlib_package/gymlib/workspace.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from typing import IO, Any, Optional
1313

1414
import yaml
15-
from gymlib import is_linkname, name_to_linkname
15+
from gymlib.symlinks_paths import is_linkname, name_to_linkname
1616

1717
WORKSPACE_PATH_PLACEHOLDER = Path("[workspace]")
1818

manage/cli.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
from pathlib import Path
66

77
import click
8-
9-
from util.workspace import (
8+
from gymlib.workspace import (
109
DBGymWorkspace,
1110
get_runs_path_from_workspace_path,
1211
get_symlinks_path_from_workspace_path,

manage/tests/unittest_clean.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
import unittest
44
from pathlib import Path
55

6-
from manage.cli import MockDBGymWorkspace, clean_workspace
7-
from util.tests.filesystem_unittest_util import (
6+
from gymlib.tests.filesystem_unittest_util import (
87
FilesystemStructure,
98
create_structure,
109
make_workspace_structure,
1110
verify_structure,
1211
)
1312

13+
from manage.cli import MockDBGymWorkspace, clean_workspace
14+
1415
# This is here instead of on `if __name__ == "__main__"` because we often run individual tests, which
1516
# does not go through the `if __name__ == "__main__"` codepath.
1617
# Make it DEBUG to see logs from verify_structure(). Make it CRITICAL to not see any logs.

task.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import click
2+
from gymlib.workspace import make_standard_dbgym_workspace
23

34
from benchmark.cli import benchmark_group
45
from dbms.cli import dbms_group
56
from manage.cli import manage_group
6-
from util.workspace import make_standard_dbgym_workspace
77

88
# TODO(phw2): Save commit, git diff, and run command.
99
# TODO(phw2): Remove write permissions on old run_*/ dirs to enforce that they are immutable.

0 commit comments

Comments
 (0)