From 91774452bfab727eaa1f75079c79cb8aec52c095 Mon Sep 17 00:00:00 2001 From: bitranox Date: Thu, 16 Jul 2020 01:09:31 +0200 Subject: [PATCH 1/5] refractor --- CHANGES.rst | 6 +++- README.rst | 6 +++- rst_include.ipynb | 62 +++++++++++++++++++++++++++++++++++ rst_include/__init__conf__.py | 4 +-- setup.py | 2 +- 5 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 rst_include.ipynb diff --git a/CHANGES.rst b/CHANGES.rst index c8b069a..fd7c2a6 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,13 +5,17 @@ Changelog - new MINOR version for added functionality in a backwards compatible manner - new PATCH version for backwards compatible bug fixes +2.0.3 +----- +2020-xx-xx: development + + 2.0.2 ----- 2020-07-16: Patch release - fix cli test - enable traceback option on cli errors - 2.0.1 ----- 2020-07-05 : patch release diff --git a/README.rst b/README.rst index 26c20ce..7c0aa30 100644 --- a/README.rst +++ b/README.rst @@ -489,13 +489,17 @@ Changelog - new MINOR version for added functionality in a backwards compatible manner - new PATCH version for backwards compatible bug fixes +2.0.3 +----- +2020-xx-xx: development + + 2.0.2 ----- 2020-07-16: Patch release - fix cli test - enable traceback option on cli errors - 2.0.1 ----- 2020-07-05 : patch release diff --git a/rst_include.ipynb b/rst_include.ipynb new file mode 100644 index 0000000..9dd81b4 --- /dev/null +++ b/rst_include.ipynb @@ -0,0 +1,62 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "# update pip and setuptools\n", + "import sys\n", + "!{sys.executable} -m pip install --upgrade pip\n", + "!{sys.executable} -m pip install --upgrade setuptools\n", + "\n", + "# install rst_include from pypi\n", + "!{sys.executable} -m pip install --upgrade rst_include\n", + "\n", + "# install rst_include from github\n", + "!{sys.executable} -m pip install --upgrade git+https://github.com/bitranox/rst_include.git" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "metadata": { + "trusted": true, + "pycharm": { + "name": "#%%\n" + } + }, + "cell_type": "code", + "source": [ + "import rst_include" + ], + "execution_count": null, + "outputs": [] + } + ], + "metadata": { + "language_info": { + "name": "python", + "version": "3.7.6", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3", + "language": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/rst_include/__init__conf__.py b/rst_include/__init__conf__.py index 9727fdd..5719a04 100644 --- a/rst_include/__init__conf__.py +++ b/rst_include/__init__conf__.py @@ -1,6 +1,6 @@ name = 'rst_include' title = 'commandline tool to resolve RST File includes' -version = '2.0.2' +version = '2.0.3' url = 'https://github.com/bitranox/rst_include' author = 'Robert Nowotny' author_email = 'bitranox@gmail.com' @@ -14,7 +14,7 @@ def print_info() -> None: commandline tool to resolve RST File includes - Version : 2.0.2 + Version : 2.0.3 Url : https://github.com/bitranox/rst_include Author : Robert Nowotny Email : bitranox@gmail.com""") diff --git a/setup.py b/setup.py index effdc2c..8e73959 100644 --- a/setup.py +++ b/setup.py @@ -83,7 +83,7 @@ def get_line_data(line: str) -> str: setup_kwargs: Dict[str, Any] = dict() setup_kwargs['name'] = 'rst_include' -setup_kwargs['version'] = '2.0.2' +setup_kwargs['version'] = '2.0.3' setup_kwargs['url'] = 'https://github.com/bitranox/rst_include' setup_kwargs['packages'] = find_packages() setup_kwargs['package_data'] = {'rst_include': ['py.typed', '*.pyi', '__init__.pyi']} From a045d5d3082aea6d6536375c7a3ccfe9e1278db9 Mon Sep 17 00:00:00 2001 From: bitranox Date: Thu, 16 Jul 2020 13:53:49 +0200 Subject: [PATCH 2/5] refractor --- CHANGES.rst | 5 +++-- README.rst | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index fd7c2a6..f8899e6 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -7,8 +7,9 @@ Changelog 2.0.3 ----- -2020-xx-xx: development - +2020-07-16: feature release + - fix cli test + - enable traceback option on cli errors 2.0.2 ----- diff --git a/README.rst b/README.rst index 7c0aa30..ad52455 100644 --- a/README.rst +++ b/README.rst @@ -491,8 +491,9 @@ Changelog 2.0.3 ----- -2020-xx-xx: development - +2020-07-16: feature release + - fix cli test + - enable traceback option on cli errors 2.0.2 ----- From 79499a3dbce8f2e71cf06fedf6b48c031246ecd9 Mon Sep 17 00:00:00 2001 From: bitranox Date: Thu, 16 Jul 2020 14:10:14 +0200 Subject: [PATCH 3/5] refractor --- README.rst | 3 +-- requirements.txt | 3 +-- rst_include/libs/lib_assemble_block.py | 2 +- rst_include/libs/lib_block.py | 2 +- rst_include/libs/lib_check_files.py | 2 +- rst_include/libs/lib_classes.py | 5 ++++- rst_include/libs/lib_get_include_options.py | 3 +-- rst_include/libs/lib_include_file.py | 2 +- rst_include/libs/lib_main.py | 5 ++++- rst_include/libs/lib_source_line.py | 6 +++++- rst_include/libs/lib_test.py | 3 +++ rst_include/libs/lib_test_compare_results.py | 3 ++- 12 files changed, 25 insertions(+), 14 deletions(-) diff --git a/README.rst b/README.rst index ad52455..47f06c7 100644 --- a/README.rst +++ b/README.rst @@ -459,10 +459,9 @@ following modules will be automatically installed : ## Project Requirements click - pathlib3x @ git+https://github.com/bitranox/pathlib3x.git lib_list @ git+https://github.com/bitranox/lib_list.git lib_log_utils @ git+https://github.com/bitranox/lib_log_utils.git - lib_path @ git+https://github.com/bitranox/lib_path.git + pathlib3x @ git+https://github.com/bitranox/pathlib3x.git Acknowledgements ---------------- diff --git a/requirements.txt b/requirements.txt index b24a3b8..951d03f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,5 @@ ## Project Requirements click -pathlib3x @ git+https://github.com/bitranox/pathlib3x.git lib_list @ git+https://github.com/bitranox/lib_list.git lib_log_utils @ git+https://github.com/bitranox/lib_log_utils.git -lib_path @ git+https://github.com/bitranox/lib_path.git +pathlib3x @ git+https://github.com/bitranox/pathlib3x.git diff --git a/rst_include/libs/lib_assemble_block.py b/rst_include/libs/lib_assemble_block.py index 068f6a6..d6e7b92 100644 --- a/rst_include/libs/lib_assemble_block.py +++ b/rst_include/libs/lib_assemble_block.py @@ -1,9 +1,9 @@ # STDLIB -import pathlib3x as pathlib from typing import List, IO, Union # OWN import lib_list # type: ignore +import pathlib3x as pathlib try: diff --git a/rst_include/libs/lib_block.py b/rst_include/libs/lib_block.py index 1a7765f..111bcf5 100644 --- a/rst_include/libs/lib_block.py +++ b/rst_include/libs/lib_block.py @@ -1,9 +1,9 @@ # STDLIB -import pathlib3x as pathlib from typing import List # OWN import lib_list # type: ignore +import pathlib3x as pathlib try: # for pytest diff --git a/rst_include/libs/lib_check_files.py b/rst_include/libs/lib_check_files.py index 4d81e7e..bb50f1d 100644 --- a/rst_include/libs/lib_check_files.py +++ b/rst_include/libs/lib_check_files.py @@ -1,10 +1,10 @@ # STDLIB from io import TextIOWrapper -import pathlib3x as pathlib from typing import List, IO, Tuple, Union # OWN import lib_log_utils # type: ignore +import pathlib3x as pathlib # PROJECT try: diff --git a/rst_include/libs/lib_classes.py b/rst_include/libs/lib_classes.py index d0e6f1c..34fb7d2 100644 --- a/rst_include/libs/lib_classes.py +++ b/rst_include/libs/lib_classes.py @@ -1,6 +1,9 @@ -import pathlib3x as pathlib +# STDLIB from typing import List, IO, Union +# OWN +import pathlib3x as pathlib + class RstFile(object): def __init__(self, diff --git a/rst_include/libs/lib_get_include_options.py b/rst_include/libs/lib_get_include_options.py index 5f6d27a..4783d59 100644 --- a/rst_include/libs/lib_get_include_options.py +++ b/rst_include/libs/lib_get_include_options.py @@ -1,10 +1,9 @@ # STDLIB -import pathlib3x as pathlib from typing import List, Tuple, Union # OWN import lib_log_utils # type: ignore -import lib_path # type: ignore +import pathlib3x as pathlib try: # for pytest diff --git a/rst_include/libs/lib_include_file.py b/rst_include/libs/lib_include_file.py index c805430..2d99fed 100644 --- a/rst_include/libs/lib_include_file.py +++ b/rst_include/libs/lib_include_file.py @@ -1,12 +1,12 @@ # STDLIB from collections import OrderedDict -import pathlib3x as pathlib from typing import List, Union, IO # OWN import lib_list # type: ignore import lib_log_utils # type: ignore +import pathlib3x as pathlib try: # for pytest diff --git a/rst_include/libs/lib_main.py b/rst_include/libs/lib_main.py index d7588d4..8505bcb 100644 --- a/rst_include/libs/lib_main.py +++ b/rst_include/libs/lib_main.py @@ -1,7 +1,10 @@ # STDLIB -import pathlib3x as pathlib from typing import IO, Union +# OWN +import pathlib3x as pathlib + +# PROJ try: from . import lib_classes from . import lib_assemble_block diff --git a/rst_include/libs/lib_source_line.py b/rst_include/libs/lib_source_line.py index 27b8c7c..1cdfd62 100644 --- a/rst_include/libs/lib_source_line.py +++ b/rst_include/libs/lib_source_line.py @@ -1,6 +1,10 @@ -import pathlib3x as pathlib +# STDLIB from typing import List, Union, IO +# OWN +import pathlib3x as pathlib + +# PROJ try: # for pytest from . import lib_classes diff --git a/rst_include/libs/lib_test.py b/rst_include/libs/lib_test.py index 81e4b03..1544eb6 100644 --- a/rst_include/libs/lib_test.py +++ b/rst_include/libs/lib_test.py @@ -1,6 +1,9 @@ # STDLIB + +# OWN import pathlib3x as pathlib +# PROJ try: # for pytest from . import lib_assemble_block diff --git a/rst_include/libs/lib_test_compare_results.py b/rst_include/libs/lib_test_compare_results.py index f9bb04f..3af1099 100644 --- a/rst_include/libs/lib_test_compare_results.py +++ b/rst_include/libs/lib_test_compare_results.py @@ -1,9 +1,10 @@ # STDLIB -import pathlib3x as pathlib from typing import List, Tuple # OWN import lib_log_utils # type: ignore +import pathlib3x as pathlib + # PROJECT try: From 1acafaee94c4c4faeb70819531de55b6b7365524 Mon Sep 17 00:00:00 2001 From: bitranox Date: Thu, 16 Jul 2020 14:31:56 +0200 Subject: [PATCH 4/5] refractor --- rst_include/libs/lib_assemble_block.py | 2 +- rst_include/libs/lib_block.py | 2 +- rst_include/libs/lib_block_options.py | 4 +- rst_include/libs/lib_check_files.py | 2 +- rst_include/libs/lib_get_include_options.py | 2 +- rst_include/libs/lib_include_file.py | 4 +- rst_include/libs/lib_str.py | 2 +- rst_include/libs/lib_test_compare_results.py | 2 +- rst_include/rst_include.py | 2 +- tests/local_testscripts/testing_tools.py | 139 +++++++++++++++++++ tests/test_cli.py | 6 +- 11 files changed, 154 insertions(+), 13 deletions(-) create mode 100644 tests/local_testscripts/testing_tools.py diff --git a/rst_include/libs/lib_assemble_block.py b/rst_include/libs/lib_assemble_block.py index d6e7b92..af4c4fe 100644 --- a/rst_include/libs/lib_assemble_block.py +++ b/rst_include/libs/lib_assemble_block.py @@ -2,7 +2,7 @@ from typing import List, IO, Union # OWN -import lib_list # type: ignore +import lib_list import pathlib3x as pathlib diff --git a/rst_include/libs/lib_block.py b/rst_include/libs/lib_block.py index 111bcf5..b1b784f 100644 --- a/rst_include/libs/lib_block.py +++ b/rst_include/libs/lib_block.py @@ -2,7 +2,7 @@ from typing import List # OWN -import lib_list # type: ignore +import lib_list import pathlib3x as pathlib try: diff --git a/rst_include/libs/lib_block_options.py b/rst_include/libs/lib_block_options.py index 51e1f58..97a58c3 100644 --- a/rst_include/libs/lib_block_options.py +++ b/rst_include/libs/lib_block_options.py @@ -1,5 +1,7 @@ -import lib_log_utils # type: ignore +# OWN +import lib_log_utils +# PROJ try: # for pytest from . import lib_classes diff --git a/rst_include/libs/lib_check_files.py b/rst_include/libs/lib_check_files.py index bb50f1d..7a3d826 100644 --- a/rst_include/libs/lib_check_files.py +++ b/rst_include/libs/lib_check_files.py @@ -3,7 +3,7 @@ from typing import List, IO, Tuple, Union # OWN -import lib_log_utils # type: ignore +import lib_log_utils import pathlib3x as pathlib # PROJECT diff --git a/rst_include/libs/lib_get_include_options.py b/rst_include/libs/lib_get_include_options.py index 4783d59..f8e5c33 100644 --- a/rst_include/libs/lib_get_include_options.py +++ b/rst_include/libs/lib_get_include_options.py @@ -2,7 +2,7 @@ from typing import List, Tuple, Union # OWN -import lib_log_utils # type: ignore +import lib_log_utils import pathlib3x as pathlib try: diff --git a/rst_include/libs/lib_include_file.py b/rst_include/libs/lib_include_file.py index 2d99fed..6519146 100644 --- a/rst_include/libs/lib_include_file.py +++ b/rst_include/libs/lib_include_file.py @@ -4,8 +4,8 @@ # OWN -import lib_list # type: ignore -import lib_log_utils # type: ignore +import lib_list +import lib_log_utils import pathlib3x as pathlib try: diff --git a/rst_include/libs/lib_str.py b/rst_include/libs/lib_str.py index 52d8e02..3aae2ef 100644 --- a/rst_include/libs/lib_str.py +++ b/rst_include/libs/lib_str.py @@ -1,5 +1,5 @@ # OWN -import lib_list # type: ignore +import lib_list def strip_multiline_string(str_multiline: str) -> str: diff --git a/rst_include/libs/lib_test_compare_results.py b/rst_include/libs/lib_test_compare_results.py index 3af1099..0bb6024 100644 --- a/rst_include/libs/lib_test_compare_results.py +++ b/rst_include/libs/lib_test_compare_results.py @@ -2,7 +2,7 @@ from typing import List, Tuple # OWN -import lib_log_utils # type: ignore +import lib_log_utils import pathlib3x as pathlib diff --git a/rst_include/rst_include.py b/rst_include/rst_include.py index 7d5b269..ac1e8a9 100644 --- a/rst_include/rst_include.py +++ b/rst_include/rst_include.py @@ -6,7 +6,7 @@ from typing import Tuple, Union, IO # OWN -import lib_log_utils # type: ignore +import lib_log_utils # PROJECT try: diff --git a/tests/local_testscripts/testing_tools.py b/tests/local_testscripts/testing_tools.py new file mode 100644 index 0000000..d52171f --- /dev/null +++ b/tests/local_testscripts/testing_tools.py @@ -0,0 +1,139 @@ +# stdlib +import logging +import os +import pathlib + +# EXT +import click + +# CONSTANTS +CLICK_CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help']) +logger = logging.getLogger() +logger.level = logging.INFO + + +def append_subdirs_to_mypy_paths(root_directory: str) -> str: + """ + Appends all immediate sudirs of the root_directory to the MYPYPATH , separated by column ':' TODO: Windows ? + in order to be able to use that in a shellscript (because the ENV of the subshell gets lost) + we also return it as a string. This is already in preparation to remove the testloop shellscript + with a python script. + + >>> # Setup + >>> save_mypy_path = get_env_data(env_variable='MYPYPATH') + + >>> # Test + >>> append_subdirs_to_mypy_paths(str(pathlib.Path(__file__).parent.parent.resolve())) + '...' + >>> assert str(pathlib.Path(__file__).parent.resolve()) in get_env_data(env_variable='MYPYPATH') + >>> append_subdirs_to_mypy_paths('non_existing') + '' + + >>> # Teardown + >>> set_env_data(env_variable='MYPYPATH', env_str=save_mypy_path) + + """ + path_root_directory = pathlib.Path(root_directory).resolve() + if not path_root_directory.is_dir(): + logger.warning('add mypy paths : the given root directory "{}" does not exist'.format(path_root_directory)) + return '' + l_subdirs = [str(path_root_directory / _dir) for _dir in next(os.walk(path_root_directory))[1]] + str_current_mypy_paths = get_env_data(env_variable='MYPYPATH') + if str_current_mypy_paths: + l_subdirs.insert(0, str_current_mypy_paths) + str_new_mypy_paths = ':'.join(l_subdirs) + set_env_data(env_variable='MYPYPATH', env_str=str_new_mypy_paths) + return str_new_mypy_paths + + +def append_directory_to_env_path_variable(env_variable: str, directory: str) -> str: + """ + Appends a directory to the env_variable, separated by column ':' TODO: Windows ? + in order to be able to use that in a shellscript (because the ENV of the subshell gets lost) + we also return it as a string. This is already in preparation to remove the testloop shellscript + with a python script. + + >>> # Setup + >>> save_mypy_path = get_env_data(env_variable='MYPYPATH') + + >>> # Test + >>> append_directory_to_env_path_variable(env_variable='MYPYPATH', directory=str(pathlib.Path(__file__).parent.parent.resolve())) + '...tests' + >>> assert str(pathlib.Path(__file__).parent.parent.resolve()) in get_env_data(env_variable='MYPYPATH') + >>> append_directory_to_env_path_variable(env_variable='MYPYPATH', directory='non_existing') + '' + + >>> # Teardown + >>> set_env_data(env_variable='MYPYPATH', env_str=save_mypy_path) + + """ + path_directory = pathlib.Path(directory).resolve() + if not path_directory.is_dir(): + logger.warning('can not add to env "{}" : the given directory "{}" does not exist'.format(env_variable, directory)) + return '' + l_subdirs = [str(path_directory)] + str_current_paths = get_env_data(env_variable=env_variable) + if str_current_paths: + l_subdirs.insert(0, str_current_paths) + str_new_mypy_paths = ':'.join(l_subdirs) + set_env_data(env_variable=env_variable, env_str=str_new_mypy_paths) + return str_new_mypy_paths + + +def get_env_data(env_variable: str) -> str: + """ + >>> # Setup + >>> save_mypy_path = get_env_data('MYPYPATH') + + >>> # Test + >>> set_env_data('MYPYPATH', 'some_test') + >>> assert get_env_data('MYPYPATH') == 'some_test' + + >>> # Teardown + >>> set_env_data('MYPYPATH', save_mypy_path) + + """ + if env_variable in os.environ: + env_data = os.environ[env_variable] + else: + env_data = '' + return env_data + + +def set_env_data(env_variable: str, env_str: str) -> None: + os.environ[env_variable] = env_str + + +@click.group(context_settings=CLICK_CONTEXT_SETTINGS) +def cli_main() -> None: # pragma: no cover + """ testing tools """ + pass # pragma: no cover + + +@cli_main.command('append_immediate_subdirs_to_mypy_path', context_settings=CLICK_CONTEXT_SETTINGS) +@click.argument('root_directory', type=click.Path(exists=False, file_okay=False, dir_okay=True)) +def cli_append_immediate_subdirs_to_mypy_path(root_directory: str) -> None: # pragma: no cover + """ adds all immediate subdirs to MYPYPATH, and returns the result as string """ + response = append_subdirs_to_mypy_paths(root_directory) # pragma: no cover + print(response) + + +@cli_main.command('append_directory_to_mypy_path', context_settings=CLICK_CONTEXT_SETTINGS) +@click.argument('directory', type=click.Path(exists=False, file_okay=False, dir_okay=True)) +def cli_append_directory_to_mypy_path(directory: str) -> None: # pragma: no cover + """ adds directory to MYPYPATH, and returns the result as string """ + response = append_directory_to_env_path_variable(env_variable='MYPYPATH', directory=directory) # pragma: no cover + print(response) + + +@cli_main.command('append_directory_to_python_path', context_settings=CLICK_CONTEXT_SETTINGS) +@click.argument('directory', type=click.Path(exists=False, file_okay=False, dir_okay=True)) +def cli_append_directory_to_python_path(directory: str) -> None: # pragma: no cover + """ adds directory to PYTHONPATH, and returns the result as string """ + response = append_directory_to_env_path_variable(env_variable='PYTHONPATH', directory=directory) # pragma: no cover + print(response) + + +# entry point if main +if __name__ == '__main__': + cli_main() diff --git a/tests/test_cli.py b/tests/test_cli.py index 8c9765f..d411402 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -11,16 +11,16 @@ path_cli_command = pathlib.Path(__file__).resolve().parent.parent / package_dir / cli_filename -def call_cli_command(commandline_args: str = '', log: bool = True) -> bool: +def call_cli_command(commandline_args: str = '') -> bool: command = ' '.join([sys.executable, str(path_cli_command), commandline_args]) try: subprocess.run(command, shell=True, check=True) - except subprocess.CalledProcessError as exc: + except subprocess.CalledProcessError: return False return True -def test_cli_commands(): +def test_cli_commands() -> None: # due to a bug in python 3.8.1 with setup.py test on travis we need to cancel the click tests there ! if sys.version_info < (3, 8, 1) or sys.version_info >= (3, 8, 2): assert not call_cli_command('--unknown_option') From 3de9c8297e0c5a25f55e63c56fad9f0ddcfbf313 Mon Sep 17 00:00:00 2001 From: bitranox Date: Thu, 16 Jul 2020 17:58:22 +0200 Subject: [PATCH 5/5] refractor --- travis_secrets/secrets/CC_TEST_REPORTER_ID.secret.txt | 1 + travis_secrets/secrets/pypi_password.secret.txt | 1 + 2 files changed, 2 insertions(+) create mode 100644 travis_secrets/secrets/CC_TEST_REPORTER_ID.secret.txt create mode 100644 travis_secrets/secrets/pypi_password.secret.txt diff --git a/travis_secrets/secrets/CC_TEST_REPORTER_ID.secret.txt b/travis_secrets/secrets/CC_TEST_REPORTER_ID.secret.txt new file mode 100644 index 0000000..39deb50 --- /dev/null +++ b/travis_secrets/secrets/CC_TEST_REPORTER_ID.secret.txt @@ -0,0 +1 @@ +"Qe9oava9KsQAqDpYwKl3s51ZZTj6j1aZw+vrSJYz8GXanGGGVfoe1FLDjm9TyQTMDkiQd4HF0zKAbUGfgR3DKpfg17BgWZn9r8qt4WE4GclO0h3cXnqp7F3DmZqIBDyZfOgXalng51/g02G78rCeugA7jZ+pPFEzkPkmuhWrsalnsVKUpxxmsaBWCP8jftUTXbnuu7xB6RZPmd8Vz9eYbEwujES1cAo/Yz79crJfBIw3jYkU8GYGEVt9QojBTZXieD6WN6wexRzLRChzn32SDfhT6NQVKOqjNBItRXqJd8luwLbon6k63lyvA5VNNgA70Roa4SpsDwxmqeGLone2Y5WXXKcZgIxQcMVzxJMDYGNEtGX5rGuwOU1Fn6JM1LBC9AW79y1dusyAJJHumPa0f5FknIiUvIdJ5sz/emS/tuoSKtf12vSeXvQskZ2m/Fe5HWSym+qeOuNHqvmOcN+s2aiNFMTQWWxuhyN5o96AeDvn6eF8fpbQqTD1nSwzlZ13BZzB8FtokCU1ASxhqL9e0H6fXOWg8MjXFzgYYW5R6nx31CGOCSWUPWxX5Y2NfdJi9PCMZLOPMbWw0jOO6P3Fw2TuCxQGuAfSWuxMrWHFfrQpfG3eoaYYluzUKA9z2rAy7O9l7tu9dSSfl6IEmLi/dLnBKEIerNKNQpN1xWd8lAQ=" diff --git a/travis_secrets/secrets/pypi_password.secret.txt b/travis_secrets/secrets/pypi_password.secret.txt new file mode 100644 index 0000000..d117b38 --- /dev/null +++ b/travis_secrets/secrets/pypi_password.secret.txt @@ -0,0 +1 @@ +"jNc+2qZfnAIzMh4rUshJCDzjADSSZr+AsX3xA5W5tnLVBBHGu0aKsmify/biKWKe67n+hvJyXWWnchtEEulvZR66TQ0VLDSXTVO5JDx2nTakff5nPRkveayxDFE/H6Xz5wdg8o3G1NcKHQWSDojaQWPRTb3KivQ3Xr4aydEX/i3PqEgSGHg2tT/DbGmFbA9e0EILH28aPx4v9CnvkvpH1R7Qzy3BzaIFVVcj5kKHV9iPzDxvGDRfHha6EQSS2ScWUnyT4fWSHi7aIcpKL4lYSBxHVOHOSIuBbFRIvwP2J1zrS1tQL7VP21V5x7XsI8kIzTZ4DP7UR5+gXOELJ66CpHOR3Kvf6DLw6sc5AV1bpr63g/pqXPk9lQOWa2pK12sX4Zk8JwNr649t930wC0vCIPYQ1sXdx2K+4YRmflMi5RDC0NRM1e+obYOsaKtwzbNsBKJ0ngjcHXYsLt0Wessqeq+SwU4+l/pIFBQup3Waaa2lTT3Y7dShNyNfQebAq2VSCa0vY/UqiTNk+ucf2xlR6thIlj1aiOXSyxeiPsD3GP0wkb1BGpEGS54UULf91RA0zXz2pYxVnw1x4ptlW3nTPqHEmOB55sGtxb/ek4jRDtcqlIw2SojjWfWk56VazEEE6gsHN+xX2ooXi+zsWn4+5xXqyBkzzZseJJCb3qBXAVI="