Skip to content

Commit e974ec3

Browse files
committed
Add no_implicit_reexport to mypy and fix errors
Reasoning: https://justincaustin.com/blog/mypy-tips-and-tricks#no-implicit-re-export
1 parent ddba69d commit e974ec3

File tree

20 files changed

+36
-26
lines changed

20 files changed

+36
-26
lines changed

mypy.ini

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ warn_unreachable = True
1818

1919
check_untyped_defs = True
2020

21+
# Disallow importing c from a.b if it imports c itself (unless specified in __all__)
22+
no_implicit_reexport = True
23+
2124
exclude = ^(engine|examples|docs|test)
2225

2326
[pydantic-mypy]

splitgraph/cloud/__init__.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,12 @@
6666
START_EXPORT,
6767
START_LOAD,
6868
)
69-
from splitgraph.config import CONFIG, create_config_dict, get_singleton
69+
from splitgraph.config import CONFIG
7070
from splitgraph.config.config import (
71+
create_config_dict,
7172
get_all_in_subsection,
7273
get_from_subsection,
74+
get_singleton,
7375
set_in_subsection,
7476
)
7577
from splitgraph.config.export import overwrite_config

splitgraph/cloud/project/dbt.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def generate_dbt_project(repositories: List[str], basedir: Path) -> None:
2929
f.write(DBT_PROJECT_TEMPLATE)
3030

3131
# Generate models/staging/sources.yml
32-
yml = ruamel.yaml.YAML()
32+
yml = ruamel.yaml.main.YAML()
3333
sources_yml = yml.load(SOURCES_YML_TEMPLATE)
3434
sources_yml["sources"][0]["name"] = get_source_name(repositories[0])
3535
sources_yml["sources"][0]["schema"] = repositories[0]

splitgraph/cloud/project/generation.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@
99

1010
import ruamel.yaml
1111
from pydantic import BaseModel, Field
12-
from ruamel.yaml import CommentedMap as CM
13-
from ruamel.yaml import CommentedSeq as CS
12+
from ruamel.yaml.comments import CommentedMap as CM
13+
from ruamel.yaml.comments import CommentedSeq as CS
1414

15-
from splitgraph.cloud import GQLAPIClient, Plugin
15+
from splitgraph.cloud import GQLAPIClient
16+
from splitgraph.cloud.models import Plugin
1617
from splitgraph.cloud.project.dbt import (
1718
generate_dbt_plugin_params,
1819
generate_dbt_project,
@@ -120,7 +121,7 @@ def stub_plugin(plugin: Plugin, namespace: str, repository: str, is_live: bool =
120121
"""
121122
Generate a splitgraph.yml file based on a plugin's JSONSchemas.
122123
"""
123-
yml = ruamel.yaml.YAML()
124+
yml = ruamel.yaml.main.YAML()
124125
repositories_yaml = (
125126
SPLITGRAPH_YML_TEMPLATE.replace("CREDENTIAL_NAME", plugin.plugin_name)
126127
.replace("NAMESPACE", namespace)
@@ -179,7 +180,7 @@ def generate_project(
179180
decoded_seed = ProjectSeed.decode(seed)
180181
credentials, repositories, repository_info = generate_splitgraph_yml(all_plugins, decoded_seed)
181182

182-
yml = ruamel.yaml.YAML()
183+
yml = ruamel.yaml.main.YAML()
183184
with open(os.path.join(basedir, "splitgraph.credentials.yml"), "w") as f:
184185
yml.dump(credentials, f)
185186

splitgraph/commandline/__init__.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ def _do_version_check():
9090
from packaging.version import Version
9191

9292
from splitgraph.cloud import RESTAPIClient
93-
from splitgraph.config import CONFIG, get_singleton
93+
from splitgraph.config import CONFIG
94+
from splitgraph.config.config import get_singleton
9495

9596
api_client = RESTAPIClient(get_singleton(CONFIG, "SG_UPDATE_REMOTE"))
9697
latest = api_client.get_latest_version()

splitgraph/commandline/cloud.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1177,7 +1177,7 @@ def stub_c(remote, plugin_name, repository, output_file):
11771177
if not plugin:
11781178
raise click.UsageError("Plugin %s not found on remote %s" % (plugin_name, remote))
11791179

1180-
yml = ruamel.yaml.YAML()
1180+
yml = ruamel.yaml.main.YAML()
11811181
output = stub_plugin(plugin, repository.namespace, repository.repository)
11821182
yml.dump(output, output_file)
11831183

splitgraph/commandline/engine.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
from tqdm import tqdm
1010

1111
from splitgraph.__version__ import __version__
12-
from splitgraph.config import CONFIG, SG_CMD_ASCII, get_singleton
12+
from splitgraph.config import CONFIG, SG_CMD_ASCII
13+
from splitgraph.config.config import get_singleton
1314
from splitgraph.config.management import patch_and_save_config
1415
from splitgraph.exceptions import DockerUnavailableError, EngineSetupError
1516
from splitgraph.utils.docker import copy_to_container, get_docker_client

splitgraph/config/export.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
"""Routines for exporting the config back into text."""
22
from typing import Dict, cast
33

4-
from splitgraph.config import get_singleton
5-
from splitgraph.config.config import get_all_in_section
4+
from splitgraph.config.config import get_all_in_section, get_singleton
65
from splitgraph.config.keys import DEFAULTS, KEYS, SENSITIVE_KEY_SUFFIXES, ConfigDict
76

87

splitgraph/core/engine.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
from psycopg2.sql import SQL, Identifier
88

9-
from splitgraph.config import CONFIG, SPLITGRAPH_API_SCHEMA, get_singleton
9+
from splitgraph.config import CONFIG, SPLITGRAPH_API_SCHEMA
10+
from splitgraph.config.config import get_singleton
1011
from splitgraph.engine import ResultShape
1112
from splitgraph.exceptions import RepositoryNotFoundError
1213

splitgraph/core/fdw_checkout.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from typing import TYPE_CHECKING, Callable, Optional
66

77
import splitgraph.config
8-
from splitgraph.config import get_singleton
8+
from splitgraph.config.config import get_singleton
99
from splitgraph.core.object_manager import ObjectManager
1010
from splitgraph.core.output import pretty_size
1111
from splitgraph.core.repository import Repository

splitgraph/core/image.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
FDW_CLASS,
2424
SPLITGRAPH_API_SCHEMA,
2525
SPLITGRAPH_META_SCHEMA,
26-
get_singleton,
2726
)
27+
from splitgraph.config.config import get_singleton
2828
from splitgraph.engine import ResultShape
2929
from splitgraph.exceptions import SplitGraphError, TableNotFoundError
3030

splitgraph/core/object_manager.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121

2222
from psycopg2.sql import SQL, Identifier
2323

24-
from splitgraph.config import CONFIG, SPLITGRAPH_META_SCHEMA, get_singleton
24+
from splitgraph.config import CONFIG, SPLITGRAPH_META_SCHEMA
25+
from splitgraph.config.config import get_singleton
2526
from splitgraph.core.fragment_manager import FragmentManager
2627
from splitgraph.core.types import Quals
2728
from splitgraph.engine import ResultShape

splitgraph/core/repository.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
FDW_CLASS,
3030
SPLITGRAPH_API_SCHEMA,
3131
SPLITGRAPH_META_SCHEMA,
32-
get_singleton,
3332
)
33+
from splitgraph.config.config import get_singleton
3434
from splitgraph.core.fragment_manager import ExtraIndexInfo
3535
from splitgraph.core.image import Image
3636
from splitgraph.core.image_manager import ImageManager

splitgraph/engine/config.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from contextlib import contextmanager
22
from typing import TYPE_CHECKING, Dict, Iterator, Optional, Union, cast
33

4-
from splitgraph.config import CONFIG, get_singleton
5-
from splitgraph.config.config import get_all_in_section
4+
from splitgraph.config import CONFIG
5+
from splitgraph.config.config import get_all_in_section, get_singleton
66
from splitgraph.config.keys import ConfigDict
77

88
if TYPE_CHECKING:

splitgraph/hooks/data_source/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
from importlib import import_module
66
from typing import Any, Dict, List, Optional, Type, cast
77

8-
from ...config import CONFIG, get_singleton
9-
from ...config.config import get_all_in_section
8+
from ...config import CONFIG
9+
from ...config.config import get_all_in_section, get_singleton
1010
from ...config.keys import DEFAULTS
1111
from ...exceptions import DataSourceError
1212
from .base import DataSource

splitgraph/hooks/s3.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
from tqdm import tqdm
99

10-
from splitgraph.config import CONFIG, SG_CMD_ASCII, get_singleton
10+
from splitgraph.config import CONFIG, SG_CMD_ASCII
11+
from splitgraph.config.config import get_singleton
1112
from splitgraph.engine import ResultShape
1213
from splitgraph.engine.config import get_engine
1314
from splitgraph.engine.postgres.psycopg import PsycopgEngine

splitgraph/ingestion/csv/fdw.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from urllib3 import HTTPResponse
1212

1313
import splitgraph.config
14-
from splitgraph.config import get_singleton
14+
from splitgraph.config.config import get_singleton
1515
from splitgraph.exceptions import get_exception_name
1616
from splitgraph.ingestion.common import generate_column_names
1717
from splitgraph.ingestion.csv.common import (

splitgraph/ingestion/dbt/utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from typing import TYPE_CHECKING, Any, Dict, List, Optional, cast
99

1010
from docker.types import LogConfig
11-
from ruamel.yaml import YAMLError
11+
from ruamel.yaml.error import YAMLError
1212

1313
from splitgraph.ingestion.airbyte.docker_utils import (
1414
detect_network_mode,

splitgraph/ingestion/socrata/fdw.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from typing import Any, Dict, Optional
66

77
import splitgraph.config
8-
from splitgraph.config import get_singleton
8+
from splitgraph.config.config import get_singleton
99
from splitgraph.ingestion.socrata.querying import (
1010
cols_to_socrata,
1111
estimate_socrata_rows_width,

splitgraph/utils/yaml.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Any
22

3-
from ruamel.yaml import YAML
3+
from ruamel.yaml.main import YAML
44

55

66
def safe_load(stream) -> Any:

0 commit comments

Comments
 (0)