From 67334d001f4286764bc4eca7193aedaafe7d8e4e Mon Sep 17 00:00:00 2001 From: Dan Ryan Date: Tue, 6 Nov 2018 20:19:45 -0500 Subject: [PATCH] Fix toml fallback Signed-off-by: Dan Ryan --- pipenv/project.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/pipenv/project.py b/pipenv/project.py index d9ba5f6d..da6d8560 100644 --- a/pipenv/project.py +++ b/pipenv/project.py @@ -579,7 +579,6 @@ class Project(object): def _parse_pipfile(self, contents): # If any outline tables are present... - toml_encoder = toml.TomlPreserveInlineDictEncoder() if ("[packages." in contents) or ("[dev-packages." in contents): data = tomlkit.parse(contents) # Convert all outline tables to inline tables. @@ -592,20 +591,16 @@ class Project(object): table.update(_data) data[section][package] = table # We lose comments here, but it's for the best.) - try: - return data - - except RuntimeError: - return toml.loads(tomlkit.dumps(data, encoder=toml_encoder)) + return data else: - # Fallback to toml parser, for large files. try: - return tomlkit.loads(contents) + return tomlkit.parse(contents) + # Fallback to toml parser, for large files. except Exception: - toml_encoder.get_empty_table() - return toml.loads(contents, encoder=toml_encoder) + toml_decoder = toml.decoder.TomlDecoder() + return toml.loads(contents, encoder=toml_decoder) def _read_pyproject(self): pyproject = self.path_to("pyproject.toml")