Skip to content

Commit

Permalink
Use tomllib on Python 3.11
Browse files Browse the repository at this point in the history
  • Loading branch information
hauntsaninja committed Sep 4, 2022
1 parent 317bef3 commit c6b52f8
Showing 1 changed file with 15 additions and 11 deletions.
26 changes: 15 additions & 11 deletions pydantic/mypy.py
@@ -1,3 +1,4 @@
import sys
from configparser import ConfigParser
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Type as TypingType, Union

Expand Down Expand Up @@ -820,18 +821,21 @@ def parse_toml(config_file: str) -> Optional[Dict[str, Any]]:
return None

read_mode = 'rb'
try:
import tomli as toml_
except ImportError:
# older versions of mypy have toml as a dependency, not tomli
read_mode = 'r'
if sys.version_info >= (3, 11):
import tomllib as toml_
else:
try:
import toml as toml_ # type: ignore[no-redef]
except ImportError: # pragma: no cover
import warnings

warnings.warn('No TOML parser installed, cannot read configuration from `pyproject.toml`.')
return None
import tomli as toml_
except ImportError:
# older versions of mypy have toml as a dependency, not tomli
read_mode = 'r'
try:
import toml as toml_ # type: ignore[no-redef]
except ImportError: # pragma: no cover
import warnings

warnings.warn('No TOML parser installed, cannot read configuration from `pyproject.toml`.')
return None

with open(config_file, read_mode) as rf:
return toml_.load(rf) # type: ignore[arg-type]

0 comments on commit c6b52f8

Please sign in to comment.