Hello community,
here is the log from the commit of package python-python-dotenv for
openSUSE:Factory checked in at 2020-12-12 20:28:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python-dotenv (Old)
and /work/SRC/openSUSE:Factory/.python-python-dotenv.new.2328 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python-dotenv"
Sat Dec 12 20:28:58 2020 rev:9 rq:853582 version:0.15.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-python-dotenv/python-python-dotenv.changes
2020-08-05 20:30:07.883121547 +0200
+++
/work/SRC/openSUSE:Factory/.python-python-dotenv.new.2328/python-python-dotenv.changes
2020-12-12 20:31:16.233783567 +0100
@@ -1,0 +2,17 @@
+Mon Dec 7 00:42:19 UTC 2020 - Benjamin Greiner <[email protected]>
+
+- Skip testing with optional jupyter_ipython. Jupyter is only
+ available for Python >= 3.7
+ gh#openSUSE/python-rpm-macros#66
+
+-------------------------------------------------------------------
+Wed Dec 2 17:16:41 UTC 2020 - Michael Ströder <[email protected]>
+
+- Update to 0.15.0
+ * Add --export option to set to make it prepend the binding with export
(#270 by @jadutter).
+ * Make set command create the .env file in the current directory if no .env
file was found (#270 by @jadutter).
+ * Fix potentially empty expanded value for duplicate key (#260 by @bbc2).
+ * Fix import error on Python 3.5.0 and 3.5.1 (#267 by @gongqingkui).
+ * Fix parsing of unquoted values containing several adjacent space or tab
characters (#277 by @bbc2, review by @x-yuri).
+
+-------------------------------------------------------------------
Old:
----
python-dotenv-0.14.0.tar.gz
New:
----
python-dotenv-0.15.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-python-dotenv.spec ++++++
--- /var/tmp/diff_new_pack.FH4Pde/_old 2020-12-12 20:31:16.865784226 +0100
+++ /var/tmp/diff_new_pack.FH4Pde/_new 2020-12-12 20:31:16.869784230 +0100
@@ -18,14 +18,13 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-python-dotenv
-Version: 0.14.0
+Version: 0.15.0
Release: 0
Summary: Python library for .env support
License: BSD-3-Clause
URL: https://github.com/theskumar/python-dotenv
Source:
https://github.com/theskumar/python-dotenv/archive/v%{version}.tar.gz#/python-dotenv-%{version}.tar.gz
BuildRequires: %{python_module click >= 5.0}
-BuildRequires: %{python_module jupyter_ipython}
BuildRequires: %{python_module mock}
BuildRequires: %{python_module pytest >= 3.0.5}
BuildRequires: %{python_module setuptools}
@@ -65,7 +64,8 @@
export PATH=%{buildroot}%{_bindir}:$PATH
%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitelib}
cp %{buildroot}%{_bindir}/dotenv-%{$python_bin_suffix}
%{buildroot}%{_bindir}/dotenv
-$python -m pytest -v
+# ipython is optional and only available for python >= 3.7 in Tumbleweed
+$python -m pytest -v -k "not ipython"
}
mv %{buildroot}%{_bindir}/dotenv.orig %{buildroot}%{_bindir}/dotenv
++++++ python-dotenv-0.14.0.tar.gz -> python-dotenv-0.15.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/.travis.yml
new/python-dotenv-0.15.0/.travis.yml
--- old/python-dotenv-0.14.0/.travis.yml 2020-07-03 11:17:51.000000000
+0200
+++ new/python-dotenv-0.15.0/.travis.yml 2020-10-28 17:59:29.000000000
+0100
@@ -19,6 +19,8 @@
env: TOXENV=py37
- python: "3.8"
env: TOXENV=py38
+ - python: "3.9-dev"
+ env: TOXENV=py39
- python: "pypy"
env: TOXENV=pypy
- python: "pypy3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/CHANGELOG.md
new/python-dotenv-0.15.0/CHANGELOG.md
--- old/python-dotenv-0.14.0/CHANGELOG.md 2020-07-03 11:17:51.000000000
+0200
+++ new/python-dotenv-0.15.0/CHANGELOG.md 2020-10-28 17:59:29.000000000
+0100
@@ -7,7 +7,26 @@
## [Unreleased]
-*No unreleased change at this time.*
+_There are no unreleased changes at this time._
+
+## [0.15.0] - 2020-10-28
+
+### Added
+
+- Add `--export` option to `set` to make it prepend the binding with `export`
(#270 by
+ [@jadutter]).
+
+### Changed
+
+- Make `set` command create the `.env` file in the current directory if no
`.env` file was
+ found (#270 by [@jadutter]).
+
+### Fixed
+
+- Fix potentially empty expanded value for duplicate key (#260 by [@bbc2]).
+- Fix import error on Python 3.5.0 and 3.5.1 (#267 by [@gongqingkui]).
+- Fix parsing of unquoted values containing several adjacent space or tab
characters
+ (#277 by [@bbc2], review by [@x-yuri]).
## [0.14.0] - 2020-07-03
@@ -204,16 +223,20 @@
[@ekohl]: https://github.com/ekohl
[@elbehery95]: https://github.com/elbehery95
[@gergelyk]: https://github.com/gergelyk
+[@gongqingkui]: https://github.com/gongqingkui
[@greyli]: https://github.com/greyli
+[@jadutter]: https://github.com/jadutter
[@qnighy]: https://github.com/qnighy
[@snobu]: https://github.com/snobu
[@techalchemy]: https://github.com/techalchemy
[@theskumar]: https://github.com/theskumar
[@ulyssessouza]: https://github.com/ulyssessouza
[@venthur]: https://github.com/venthur
+[@x-yuri]: https://github.com/x-yuri
[@yannham]: https://github.com/yannham
-[Unreleased]: https://github.com/theskumar/python-dotenv/compare/v0.14.0...HEAD
+[Unreleased]: https://github.com/theskumar/python-dotenv/compare/v0.15.0...HEAD
+[0.15.0]: https://github.com/theskumar/python-dotenv/compare/v0.14.0...v0.15.0
[0.14.0]: https://github.com/theskumar/python-dotenv/compare/v0.13.0...v0.14.0
[0.13.0]: https://github.com/theskumar/python-dotenv/compare/v0.12.0...v0.13.0
[0.12.0]: https://github.com/theskumar/python-dotenv/compare/v0.11.0...v0.12.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/README.md
new/python-dotenv-0.15.0/README.md
--- old/python-dotenv-0.14.0/README.md 2020-07-03 11:17:51.000000000 +0200
+++ new/python-dotenv-0.15.0/README.md 2020-10-28 17:59:29.000000000 +0100
@@ -6,7 +6,7 @@
__ | |____ | |\ | \ /
(__)|_______||__| \__| \__/
```
-python-dotenv | [](https://travis-ci.org/theskumar/python-dotenv)
[](https://coveralls.io/r/theskumar/python-dotenv?branch=master)
[](http://badge.fury.io/py/python-dotenv)
[](https://saythanks.io/to/theskumar)
+python-dotenv | [](https://travis-ci.com/theskumar/python-dotenv)
[](https://coveralls.io/r/theskumar/python-dotenv?branch=master)
[](http://badge.fury.io/py/python-dotenv)
[](https://saythanks.io/to/theskumar)
===============================================================================
Reads the key-value pair from `.env` file and adds them to environment
@@ -43,12 +43,12 @@
The value of a variable is the first of the values defined in the following
list:
-- Value of that variable in the environment.
- Value of that variable in the `.env` file.
+- Value of that variable in the environment.
- Default value, if provided.
- Empty string.
-Ensure that variables are surrounded with `{}` like `${HOME}` as bare
+Ensure that variables are surrounded with `{}` like `${HOME}` as bare
variables such as `$HOME` are not expanded.
```shell
@@ -186,16 +186,23 @@
Options:
-f, --file PATH Location of the .env file, defaults to .env
file in current working directory.
+
-q, --quote [always|never|auto]
Whether to quote or not the variable values.
Default mode is always. This does not affect
parsing.
+
+ -e, --export BOOLEAN
+ Whether to write the dot file as an
+ executable bash script.
+
+ --version Show the version and exit.
--help Show this message and exit.
Commands:
- get Retrive the value for the given key.
+ get Retrieve the value for the given key.
list Display all the stored key/value.
- run Run command with environment variables from .env file present
+ run Run command with environment variables present.
set Store the given key/value.
unset Removes the given key.
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/setup.cfg
new/python-dotenv-0.15.0/setup.cfg
--- old/python-dotenv-0.14.0/setup.cfg 2020-07-03 11:17:51.000000000 +0200
+++ new/python-dotenv-0.15.0/setup.cfg 2020-10-28 17:59:29.000000000 +0100
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 0.14.0
+current_version = 0.15.0
commit = True
tag = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/setup.py
new/python-dotenv-0.15.0/setup.py
--- old/python-dotenv-0.14.0/setup.py 2020-07-03 11:17:51.000000000 +0200
+++ new/python-dotenv-0.15.0/setup.py 2020-10-28 17:59:29.000000000 +0100
@@ -53,6 +53,7 @@
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
+ 'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: Implementation :: PyPy',
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/src/dotenv/cli.py
new/python-dotenv-0.15.0/src/dotenv/cli.py
--- old/python-dotenv-0.14.0/src/dotenv/cli.py 2020-07-03 11:17:51.000000000
+0200
+++ new/python-dotenv-0.15.0/src/dotenv/cli.py 2020-10-28 17:59:29.000000000
+0100
@@ -19,19 +19,23 @@
@click.group()
@click.option('-f', '--file', default=os.path.join(os.getcwd(), '.env'),
- type=click.Path(exists=True),
+ type=click.Path(file_okay=True),
help="Location of the .env file, defaults to .env file in
current working directory.")
@click.option('-q', '--quote', default='always',
type=click.Choice(['always', 'never', 'auto']),
help="Whether to quote or not the variable values. Default mode
is always. This does not affect parsing.")
[email protected]('-e', '--export', default=False,
+ type=click.BOOL,
+ help="Whether to write the dot file as an executable bash
script.")
@click.version_option(version=__version__)
@click.pass_context
-def cli(ctx, file, quote):
- # type: (click.Context, Any, Any) -> None
+def cli(ctx, file, quote, export):
+ # type: (click.Context, Any, Any, Any) -> None
'''This script is used to set, get or unset values from a .env file.'''
ctx.obj = {}
- ctx.obj['FILE'] = file
ctx.obj['QUOTE'] = quote
+ ctx.obj['EXPORT'] = export
+ ctx.obj['FILE'] = file
@cli.command()
@@ -40,6 +44,11 @@
# type: (click.Context) -> None
'''Display all the stored key/value.'''
file = ctx.obj['FILE']
+ if not os.path.isfile(file):
+ raise click.BadParameter(
+ 'Path "%s" does not exist.' % (file),
+ ctx=ctx
+ )
dotenv_as_dict = dotenv_values(file)
for k, v in dotenv_as_dict.items():
click.echo('%s=%s' % (k, v))
@@ -54,7 +63,8 @@
'''Store the given key/value.'''
file = ctx.obj['FILE']
quote = ctx.obj['QUOTE']
- success, key, value = set_key(file, key, value, quote)
+ export = ctx.obj['EXPORT']
+ success, key, value = set_key(file, key, value, quote, export)
if success:
click.echo('%s=%s' % (key, value))
else:
@@ -68,6 +78,11 @@
# type: (click.Context, Any) -> None
'''Retrieve the value for the given key.'''
file = ctx.obj['FILE']
+ if not os.path.isfile(file):
+ raise click.BadParameter(
+ 'Path "%s" does not exist.' % (file),
+ ctx=ctx
+ )
stored_value = get_key(file, key)
if stored_value:
click.echo('%s=%s' % (key, stored_value))
@@ -97,6 +112,11 @@
# type: (click.Context, List[str]) -> None
"""Run command with environment variables present."""
file = ctx.obj['FILE']
+ if not os.path.isfile(file):
+ raise click.BadParameter(
+ 'Invalid value for \'-f\' "%s" does not exist.' % (file),
+ ctx=ctx
+ )
dotenv_as_dict = {to_env(k): to_env(v) for (k, v) in
dotenv_values(file).items() if v is not None}
if not commandline:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/src/dotenv/main.py
new/python-dotenv-0.15.0/src/dotenv/main.py
--- old/python-dotenv-0.14.0/src/dotenv/main.py 2020-07-03 11:17:51.000000000
+0200
+++ new/python-dotenv-0.15.0/src/dotenv/main.py 2020-10-28 17:59:29.000000000
+0100
@@ -18,7 +18,7 @@
if IS_TYPE_CHECKING:
from typing import (
- Dict, Iterator, Match, Optional, Pattern, Union, Text, IO, Tuple
+ Dict, Iterable, Iterator, Match, Optional, Pattern, Union, Text, IO,
Tuple
)
if sys.version_info >= (3, 6):
_PathLike = os.PathLike
@@ -83,9 +83,13 @@
if self._dict:
return self._dict
- values = OrderedDict(self.parse())
- self._dict = resolve_nested_variables(values) if self.interpolate else
values
- return self._dict
+ if self.interpolate:
+ values = resolve_nested_variables(self.parse())
+ else:
+ values = OrderedDict(self.parse())
+
+ self._dict = values
+ return values
def parse(self):
# type: () -> Iterator[Tuple[Text, Optional[Text]]]
@@ -136,6 +140,9 @@
def rewrite(path):
# type: (_PathLike) -> Iterator[Tuple[IO[Text], IO[Text]]]
try:
+ if not os.path.isfile(path):
+ with io.open(path, "w+") as source:
+ source.write("")
with tempfile.NamedTemporaryFile(mode="w+", delete=False) as dest:
with io.open(path) as source:
yield (source, dest) # type: ignore
@@ -147,8 +154,8 @@
shutil.move(dest.name, path)
-def set_key(dotenv_path, key_to_set, value_to_set, quote_mode="always"):
- # type: (_PathLike, Text, Text, Text) -> Tuple[Optional[bool], Text, Text]
+def set_key(dotenv_path, key_to_set, value_to_set, quote_mode="always",
export=False):
+ # type: (_PathLike, Text, Text, Text, bool) -> Tuple[Optional[bool], Text,
Text]
"""
Adds or Updates a key/value to the given .env
@@ -156,9 +163,6 @@
an orphan .env somewhere in the filesystem
"""
value_to_set = value_to_set.strip("'").strip('"')
- if not os.path.exists(dotenv_path):
- logger.warning("Can't write to %s - it doesn't exist.", dotenv_path)
- return None, key_to_set, value_to_set
if " " in value_to_set:
quote_mode = "always"
@@ -167,7 +171,10 @@
value_out = '"{}"'.format(value_to_set.replace('"', '\\"'))
else:
value_out = value_to_set
- line_out = "{}={}\n".format(key_to_set, value_out)
+ if export:
+ line_out = 'export {}={}\n'.format(key_to_set, value_out)
+ else:
+ line_out = "{}={}\n".format(key_to_set, value_out)
with rewrite(dotenv_path) as (source, dest):
replaced = False
@@ -211,7 +218,7 @@
def resolve_nested_variables(values):
- # type: (Dict[Text, Optional[Text]]) -> Dict[Text, Optional[Text]]
+ # type: (Iterable[Tuple[Text, Optional[Text]]]) -> Dict[Text,
Optional[Text]]
def _replacement(name, default):
# type: (Text, Optional[Text]) -> Text
default = default if default is not None else ""
@@ -229,7 +236,7 @@
new_values = {}
- for k, v in values.items():
+ for (k, v) in values:
new_values[k] = __posix_variable.sub(_re_sub_callback, v) if v is not
None else None
return new_values
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/src/dotenv/parser.py
new/python-dotenv-0.15.0/src/dotenv/parser.py
--- old/python-dotenv-0.14.0/src/dotenv/parser.py 2020-07-03
11:17:51.000000000 +0200
+++ new/python-dotenv-0.15.0/src/dotenv/parser.py 2020-10-28
17:59:29.000000000 +0100
@@ -24,7 +24,7 @@
_equal_sign = make_regex(r"(=[^\S\r\n]*)")
_single_quoted_value = make_regex(r"'((?:\\'|[^'])*)'")
_double_quoted_value = make_regex(r'"((?:\\"|[^"])*)"')
-_unquoted_value_part = make_regex(r"([^ \r\n]*)")
+_unquoted_value = make_regex(r"([^\r\n]*)")
_comment = make_regex(r"(?:[^\S\r\n]*#[^\r\n]*)?")
_end_of_line = make_regex(r"[^\S\r\n]*(?:\r\n|\n|\r|$)")
_rest_of_line = make_regex(r"[^\r\n]*(?:\r|\n|\r\n)?")
@@ -55,7 +55,7 @@
("error", bool),
],
)
-except ImportError:
+except (ImportError, AttributeError):
from collections import namedtuple
Original = namedtuple( # type: ignore
"Original",
@@ -167,14 +167,8 @@
def parse_unquoted_value(reader):
# type: (Reader) -> Text
- value = u""
- while True:
- (part,) = reader.read_regex(_unquoted_value_part)
- value += part
- after = reader.peek(2)
- if len(after) < 2 or after[0] in u"\r\n" or after[1] in u" #\r\n":
- return value
- value += reader.read(2)
+ (part,) = reader.read_regex(_unquoted_value)
+ return re.sub(r"\s+#.*", "", part).rstrip()
def parse_value(reader):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/src/dotenv/version.py
new/python-dotenv-0.15.0/src/dotenv/version.py
--- old/python-dotenv-0.14.0/src/dotenv/version.py 2020-07-03
11:17:51.000000000 +0200
+++ new/python-dotenv-0.15.0/src/dotenv/version.py 2020-10-28
17:59:29.000000000 +0100
@@ -1 +1 @@
-__version__ = "0.14.0"
+__version__ = "0.15.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/tests/test_cli.py
new/python-dotenv-0.15.0/tests/test_cli.py
--- old/python-dotenv-0.14.0/tests/test_cli.py 2020-07-03 11:17:51.000000000
+0200
+++ new/python-dotenv-0.15.0/tests/test_cli.py 2020-10-28 17:59:29.000000000
+0100
@@ -20,7 +20,7 @@
result = cli.invoke(dotenv_cli, ['--file', 'nx_file', 'list'])
assert result.exit_code == 2, result.output
- assert "Invalid value for '-f'" in result.output
+ assert "does not exist" in result.output
def test_list_no_file(cli):
@@ -48,7 +48,7 @@
result = cli.invoke(dotenv_cli, ['--file', 'nx_file', 'get', 'a'])
assert result.exit_code == 2
- assert "Invalid value for '-f'" in result.output
+ assert "does not exist" in result.output
def test_unset_existing_value(cli, dotenv_file):
@@ -77,10 +77,27 @@
("auto", "HELLO", "HELLO WORLD", 'HELLO="HELLO WORLD"\n'),
)
)
-def test_set_options(cli, dotenv_file, quote_mode, variable, value, expected):
+def test_set_quote_options(cli, dotenv_file, quote_mode, variable, value,
expected):
result = cli.invoke(
dotenv_cli,
- ["--file", dotenv_file, "--quote", quote_mode, "set", variable, value]
+ ["--file", dotenv_file, "--export", "false", "--quote", quote_mode,
"set", variable, value]
+ )
+
+ assert (result.exit_code, result.output) == (0, "{}={}\n".format(variable,
value))
+ assert open(dotenv_file, "r").read() == expected
+
+
[email protected](
+ "dotenv_file,export_mode,variable,value,expected",
+ (
+ (".nx_file", "true", "HELLO", "WORLD", "export HELLO=\"WORLD\"\n"),
+ (".nx_file", "false", "HELLO", "WORLD", "HELLO=\"WORLD\"\n"),
+ )
+)
+def test_set_export(cli, dotenv_file, export_mode, variable, value, expected):
+ result = cli.invoke(
+ dotenv_cli,
+ ["--file", dotenv_file, "--quote", "always", "--export", export_mode,
"set", variable, value]
)
assert (result.exit_code, result.output) == (0, "{}={}\n".format(variable,
value))
@@ -97,7 +114,7 @@
result = cli.invoke(dotenv_cli, ["--file", "nx_file", "set"])
assert result.exit_code == 2
- assert "Invalid value for '-f'" in result.output
+ assert "Missing argument" in result.output
def test_get_default_path(tmp_path):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/tests/test_main.py
new/python-dotenv-0.15.0/tests/test_main.py
--- old/python-dotenv-0.14.0/tests/test_main.py 2020-07-03 11:17:51.000000000
+0200
+++ new/python-dotenv-0.15.0/tests/test_main.py 2020-10-28 17:59:29.000000000
+0100
@@ -18,15 +18,11 @@
nx_file = str(tmp_path / "nx")
logger = logging.getLogger("dotenv.main")
- with mock.patch.object(logger, "warning") as mock_warning:
+ with mock.patch.object(logger, "warning"):
result = dotenv.set_key(nx_file, "foo", "bar")
- assert result == (None, "foo", "bar")
- assert not os.path.exists(nx_file)
- mock_warning.assert_called_once_with(
- "Can't write to %s - it doesn't exist.",
- nx_file,
- )
+ assert result == (True, "foo", "bar")
+ assert os.path.exists(nx_file)
@pytest.mark.parametrize(
@@ -337,6 +333,8 @@
# Re-defined and used in file
({"b": "c"}, "b=d\na=${b}", True, {"a": "d", "b": "d"}),
+ ({}, "a=b\na=c\nd=${a}", True, {"a": "c", "d": "c"}),
+ ({}, "a=b\nc=${a}\nd=e\nc=${d}", True, {"a": "b", "c": "e", "d": "e"}),
],
)
def test_dotenv_values_stream(env, string, interpolate, expected):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/tests/test_parser.py
new/python-dotenv-0.15.0/tests/test_parser.py
--- old/python-dotenv-0.14.0/tests/test_parser.py 2020-07-03
11:17:51.000000000 +0200
+++ new/python-dotenv-0.15.0/tests/test_parser.py 2020-10-28
17:59:29.000000000 +0100
@@ -19,20 +19,40 @@
(u"# a=b", [Binding(key=None, value=None, original=Original(string=u"#
a=b", line=1), error=False)]),
(u"a=b#c", [Binding(key=u"a", value=u"b#c",
original=Original(string=u"a=b#c", line=1), error=False)]),
(
- u'a=b # comment',
- [Binding(key=u"a", value=u"b", original=Original(string=u"a=b #
comment", line=1), error=False)],
+ u'a=b #c',
+ [Binding(key=u"a", value=u"b", original=Original(string=u"a=b #c",
line=1), error=False)],
),
(
- u"a=b space ",
- [Binding(key=u"a", value=u"b space", original=Original(string=u"a=b
space ", line=1), error=False)],
+ u'a=b\t#c',
+ [Binding(key=u"a", value=u"b", original=Original(string=u"a=b\t#c",
line=1), error=False)],
),
(
- u"a='b space '",
- [Binding(key=u"a", value=u"b space ", original=Original(string=u"a='b
space '", line=1), error=False)],
+ u"a=b c",
+ [Binding(key=u"a", value=u"b c", original=Original(string=u"a=b c",
line=1), error=False)],
),
(
- u'a="b space "',
- [Binding(key=u"a", value=u"b space ", original=Original(string=u'a="b
space "', line=1), error=False)],
+ u"a=b\tc",
+ [Binding(key=u"a", value=u"b\tc", original=Original(string=u"a=b\tc",
line=1), error=False)],
+ ),
+ (
+ u"a=b c",
+ [Binding(key=u"a", value=u"b c", original=Original(string=u"a=b c",
line=1), error=False)],
+ ),
+ (
+ u"a=b\u00a0 c",
+ [Binding(key=u"a", value=u"b\u00a0 c",
original=Original(string=u"a=b\u00a0 c", line=1), error=False)],
+ ),
+ (
+ u"a=b c ",
+ [Binding(key=u"a", value=u"b c", original=Original(string=u"a=b c ",
line=1), error=False)],
+ ),
+ (
+ u"a='b c '",
+ [Binding(key=u"a", value=u"b c ", original=Original(string=u"a='b c
'", line=1), error=False)],
+ ),
+ (
+ u'a="b c "',
+ [Binding(key=u"a", value=u"b c ", original=Original(string=u'a="b c
"', line=1), error=False)],
),
(
u"export export_a=1",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-dotenv-0.14.0/tox.ini
new/python-dotenv-0.15.0/tox.ini
--- old/python-dotenv-0.14.0/tox.ini 2020-07-03 11:17:51.000000000 +0200
+++ new/python-dotenv-0.15.0/tox.ini 2020-10-28 17:59:29.000000000 +0100
@@ -1,5 +1,5 @@
[tox]
-envlist =
lint,py{27,34,35,36,37,38,34-no-typing},pypy,pypy3,manifest,coverage-report
+envlist =
lint,py{27,34,35,36,37,38,39,34-no-typing},pypy,pypy3,manifest,coverage-report
[testenv]
deps =
@@ -10,7 +10,7 @@
click
py{27,py}: ipython<6.0.0
py34{,-no-typing}: ipython<7.0.0
- py{35,36,37,38,py3}: ipython
+ py{35,36,37,38,39,py3}: ipython
commands = coverage run --parallel -m pytest {posargs}
[testenv:py34-no-typing]
@@ -25,6 +25,7 @@
mypy
commands =
flake8 src tests
+ mypy --python-version=3.9 src tests
mypy --python-version=3.8 src tests
mypy --python-version=3.7 src tests
mypy --python-version=3.6 src tests
_______________________________________________
openSUSE Commits mailing list -- [email protected]
To unsubscribe, email [email protected]
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives:
https://lists.opensuse.org/archives/list/[email protected]