diff --git a/.codeclimate.yml b/.codeclimate.yml
index c72883f..d49ad87 100644
--- a/.codeclimate.yml
+++ b/.codeclimate.yml
@@ -14,6 +14,6 @@ plugins:
     enabled: true
     config:
       tests_patterns:
-        - PA193_mnemonic_Slytherin/test_*
+        - pa193mnemonicslytherin/test_*
       # Possible values are: info, minor, major (default), critical, blocker
       minimum_severity: major
diff --git a/.travis.yml b/.travis.yml
index 394f517..f51dfc4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,5 +8,5 @@ install:
 script:
   - python setup.py test
 after_success:
-  - coverage run --source=PA193_mnemonic_Slytherin setup.py test
+  - coverage run --source=pa193mnemonicslytherin setup.py test
   - coveralls
diff --git a/README.md b/README.md
index 9ee1793..7ba42ca 100644
--- a/README.md
+++ b/README.md
@@ -13,15 +13,25 @@
 [@lsolodkova](https://github.com/lsolodkova),
 [@mvondracek](https://github.com/mvondracek).
 
-## Install
+## Install & Uninstall
+
+Install the package from its root folder, where `setup.py` is.
+
+~~~sh
+pip install .
+~~~
 
 ~~~sh
-python setup.py install
+pip uninstall pa193mnemonicslytherin
 ~~~
 
+## Usage
+
+Please see built-in help by calling `mnemoniccli --help`.
+
 ## Development
 
 For development purposes, install the package and CLI tool using
-`pip install -e` in the root package folder. Please see
+`pip install -e .` in the root package folder. Please see
 development guidelines in [CONTRIBUTING.md](/CONTRIBUTING.md).
 
diff --git a/PA193_mnemonic_Slytherin/__init__.py b/pa193mnemonicslytherin/__init__.py
similarity index 100%
rename from PA193_mnemonic_Slytherin/__init__.py
rename to pa193mnemonicslytherin/__init__.py
diff --git a/PA193_mnemonic_Slytherin/english.txt b/pa193mnemonicslytherin/english.lst
similarity index 100%
rename from PA193_mnemonic_Slytherin/english.txt
rename to pa193mnemonicslytherin/english.lst
diff --git a/PA193_mnemonic_Slytherin/mnemonic.py b/pa193mnemonicslytherin/mnemonic.py
similarity index 87%
rename from PA193_mnemonic_Slytherin/mnemonic.py
rename to pa193mnemonicslytherin/mnemonic.py
index f86cc61..ec52b18 100644
--- a/PA193_mnemonic_Slytherin/mnemonic.py
+++ b/pa193mnemonicslytherin/mnemonic.py
@@ -11,19 +11,21 @@ Team Slytherin: @sobuch, @lsolodkova, @mvondracek.
 """
 import hmac
 import logging
-import os
+from contextlib import closing
 from copy import deepcopy
 from hashlib import sha256, sha512
-from typing import Dict, List, Tuple
+from typing import Dict, List, Tuple, BinaryIO
 from typing import Optional
 from unicodedata import normalize
 
+import pkg_resources
+
 __author__ = 'Team Slytherin: @sobuch, @lsolodkova, @mvondracek.'
 
 logger = logging.getLogger(__name__)
 
 
-ENGLISH_DICTIONARY_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'english.txt')
+ENGLISH_DICTIONARY_NAME = 'english.lst'
 PBKDF2_ROUNDS = 2048
 SEED_LEN = 64
 MAX_SEED_PASSWORD_LENGTH = 256
@@ -60,27 +62,41 @@ class _DictionaryAccess:
     """Abstract class for classes requiring dictionary access
     """
 
-    def __init__(self, file_path: str = ENGLISH_DICTIONARY_PATH):
+    def __init__(self, dictionary_name: str = ENGLISH_DICTIONARY_NAME):
         """Load the dictionary.
         Currently uses 1 default dictionary with English words.
         # TODO Should we support multiple dictionaries for various languages?
-        :raises FileNotFoundError: on missing file
+        :raises FileNotFoundError: If dictionary file with given `dictionary_name` could not be found.
+        :raises PermissionError: If dictionary could not be retrieved due to denied permission.  # TODO test this
         :raises ValueError: on invalid dictionary
+        :raises UnicodeError: If dictionary contains invalid unicode sequences.  # TODO test this
         :rtype: Tuple[List[str], Dict[str, int]]
         :return: List and dictionary of words
         """
-        if not isinstance(file_path, str):
-            raise TypeError('argument `file_path` should be str, not {}'.format(
-                type(file_path).__name__))
+        if not isinstance(dictionary_name, str):
+            raise TypeError('argument `dictionary_name` should be str, not {}'.format(
+                type(dictionary_name).__name__))
 
         self._dict_list = []
         self._dict_dict = {}
-        with open(file_path, 'r') as f:
+
+        # > Normally, you should try to use resource_string or resource_stream,
+        # > unless you are interfacing with code you don't control (especially
+        # > C code) that absolutely must have a filename. The reason is that if
+        # > you ask for a filename, and your package is packed into a zipfile,
+        # > then the resource must be extracted to a temporary directory, which
+        # > is a more costly operation than just returning a string or
+        # > file-like object.
+        # > http://peak.telecommunity.com/DevCenter/PythonEggs#accessing-package-resources
+        # > from https://setuptools.readthedocs.io/en/latest/setuptools.html#accessing-data-files-at-runtime
+        dictionary = pkg_resources.resource_stream(__package__, dictionary_name)  # type: BinaryIO
+        with closing(dictionary) as f:
             for i in range(2048):
                 try:
-                    line = next(f).strip()
+                    line_bytes = next(f)  # raises StopIteration, caught below
                 except StopIteration:
                     raise ValueError('Cannot instantiate dictionary')
+                line = line_bytes.decode().strip()  # `line_bytes.decode()` can raise UnicodeError, propagated
                 if len(line) > 16 or len(line.split()) != 1:
                     raise ValueError('Cannot instantiate dictionary')
                 self._dict_list.append(line)
diff --git a/PA193_mnemonic_Slytherin/mnemoniccli.py b/pa193mnemonicslytherin/mnemoniccli.py
similarity index 96%
rename from PA193_mnemonic_Slytherin/mnemoniccli.py
rename to pa193mnemonicslytherin/mnemoniccli.py
index db5916a..1f8d27e 100644
--- a/PA193_mnemonic_Slytherin/mnemoniccli.py
+++ b/pa193mnemonicslytherin/mnemoniccli.py
@@ -20,9 +20,9 @@ from enum import Enum, unique
 from pprint import saferepr
 from typing import Sequence
 
-from PA193_mnemonic_Slytherin import Entropy, Mnemonic, Seed
-from PA193_mnemonic_Slytherin import generate, recover, verify
-from PA193_mnemonic_Slytherin.mnemonic import MAX_SEED_PASSWORD_LENGTH
+from pa193mnemonicslytherin import Entropy, Mnemonic, Seed
+from pa193mnemonicslytherin import generate, recover, verify
+from pa193mnemonicslytherin.mnemonic import MAX_SEED_PASSWORD_LENGTH
 
 __version__ = '0.1.0'
 __author__ = 'Team Slytherin: @sobuch, @lsolodkova, @mvondracek.'
@@ -196,16 +196,16 @@ class Config(object):
         # basic input file path check
         if parsed_args.verify:
             if not parsed_args.mnemonic:
-                parser.error('argument mnemonic is required with action `{}`'.format(parsed_args.entropy, action_name))
+                parser.error('argument mnemonic is required with action `{}`'.format(action_name))
             if not parsed_args.seed:
-                parser.error('argument seed is required with action `{}`'.format(parsed_args.entropy, action_name))
+                parser.error('argument seed is required with action `{}`'.format(action_name))
         else:  # generate or recover
             if not parsed_args.entropy:
-                parser.error('argument entropy is required with action `{}`'.format(parsed_args.entropy, action_name))
+                parser.error('argument entropy is required with action `{}`'.format(action_name))
             if not parsed_args.mnemonic:
-                parser.error('argument mnemonic is required with action `{}`'.format(parsed_args.entropy, action_name))
+                parser.error('argument mnemonic is required with action `{}`'.format(action_name))
             if not parsed_args.seed:
-                parser.error('argument seed is required with action `{}`'.format(parsed_args.entropy, action_name))
+                parser.error('argument seed is required with action `{}`'.format(action_name))
 
         config = cls(
             # name to value conversion as noted in `self.init_parser`
diff --git a/setup.py b/setup.py
index 08e83fb..bbbaf29 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@ def readme():
 
 
 setup(
-    name='PA193_mnemonic_Slytherin',
+    name='pa193mnemonicslytherin',
     version='0.1.0',
     description='BIP39 Mnemonic Phrase Generator and Verifier',
     long_description=readme(),
@@ -34,7 +34,10 @@ setup(
     author=__author__,
 
     python_requires='>=3.5, <4',
-    packages=['PA193_mnemonic_Slytherin'],
+    packages=['pa193mnemonicslytherin'],
+    package_data={
+        'pa193mnemonicslytherin': ['*.lst'],
+    },
     tests_require=[
         'nose',
         'coverage',
@@ -42,7 +45,7 @@ setup(
     test_suite='nose.collector',
     entry_points={
         'console_scripts': [
-            'mnemoniccli = PA193_mnemonic_Slytherin.mnemoniccli:cli_entry_point',
+            'mnemoniccli = pa193mnemonicslytherin.mnemoniccli:cli_entry_point',
         ]
     },
     include_package_data=True,

dictionary not included in installed package?
Please find out whether you can reproduce the issue by following steps:
1) install using 'python setup.py install' 
2) create valid entropy file test 'echo -n "00112233445566778899aabbccddeeff" > test'
3) call generate with correct parameters 'mnemoniccli -g -e test -m testmnemonic -s testseed'

After completing above steps, I get error "[Errno 2] No such file or directory: 'C:\\Users\\samue\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\pa193_mnemonic_slytherin-0.1.0-py3.7.egg\\PA193_mnemonic_Slytherin\\english.txt'
" on windows and "[Errno 2] No such file or directory: '/usr/local/lib/python3.6/dist-packages/PA193_mnemonic_Slytherin-0.1.0-py3.6.egg/PA193_mnemonic_Slytherin/english.txt'" on linux
diff --git a/PA193_mnemonic_Slytherin/test_mnemonic.py b/pa193mnemonicslytherin/test_mnemonic.py
similarity index 87%
rename from PA193_mnemonic_Slytherin/test_mnemonic.py
rename to pa193mnemonicslytherin/test_mnemonic.py
index dc456d1..1db358e 100644
--- a/PA193_mnemonic_Slytherin/test_mnemonic.py
+++ b/pa193mnemonicslytherin/test_mnemonic.py
@@ -9,13 +9,17 @@ Team Slytherin: @sobuch, @lsolodkova, @mvondracek.
 
 2019
 """
-import os
+import io
 from binascii import unhexlify
-from tempfile import TemporaryDirectory
+from contextlib import closing
+from typing import BinaryIO, List, Any
 from unittest import TestCase
+from unittest.mock import patch
 
-from PA193_mnemonic_Slytherin.mnemonic import Entropy, Mnemonic, Seed, _DictionaryAccess, ENGLISH_DICTIONARY_PATH
-from PA193_mnemonic_Slytherin.mnemonic import generate, recover, verify
+import pkg_resources
+
+from pa193mnemonicslytherin.mnemonic import Entropy, Mnemonic, Seed, _DictionaryAccess, ENGLISH_DICTIONARY_NAME
+from pa193mnemonicslytherin.mnemonic import generate, recover, verify
 
 # Test vectors by Trezor. Organized as entropy, mnemonic, seed, xprv
 # https://github.com/trezor/python-mnemonic/blob/master/vectors.json
@@ -178,27 +182,42 @@ VALID_SEED_HEX_TREZOR = TREZOR_TEST_VECTORS['english'][0][2]
 VALID_PASSWORD_TREZOR = TREZOR_PASSWORD
 
 
-def extract_checksum(mnemonic_phrase: str, dictionary_file_path: str = ENGLISH_DICTIONARY_PATH) -> int:
+def extract_checksum(mnemonic_phrase: str, dictionary_name: str = ENGLISH_DICTIONARY_NAME) -> int:
     """Extract checksum based on words from the mnemonic phrase and given dictionary.
+    :raises FileNotFoundError: If dictionary file with given `dictionary_name` could not be found.
+    :raises PermissionError: If dictionary could not be retrieved due to denied permission.  # TODO test this
     :raises ValueError: Cannot instantiate dictionary  # TODO more descriptive message 1)
     :raises ValueError: Cannot instantiate dictionary  # TODO more descriptive message 2)
     :raises TypeError: `mnemonic_phrase` is not instance of `str`.
     :raises ValueError: `mnemonic_phrase` has invalid number of words, expected one of (12, 15, 18, 21, 24).
     :raises ValueError: `mnemonic_phrase` contains word which is not in current dictionary.
+    :raises UnicodeError: If dictionary contains invalid unicode sequences.  # TODO test this
     """
-    if not isinstance(dictionary_file_path, str):
-        raise TypeError('argument `dictionary_file_path` should be str, not {}'.format(
-            type(dictionary_file_path).__name__))
+    if not isinstance(dictionary_name, str):
+        raise TypeError('argument `dictionary_name` should be str, not {}'.format(
+            type(dictionary_name).__name__))
 
     # region TODO copied from _DictionaryAccess.__init__
     _dict_list = []
     _dict_dict = {}
-    with open(dictionary_file_path, 'r') as f:
+
+    # > Normally, you should try to use resource_string or resource_stream,
+    # > unless you are interfacing with code you don't control (especially
+    # > C code) that absolutely must have a filename. The reason is that if
+    # > you ask for a filename, and your package is packed into a zipfile,
+    # > then the resource must be extracted to a temporary directory, which
+    # > is a more costly operation than just returning a string or
+    # > file-like object.
+    # > http://peak.telecommunity.com/DevCenter/PythonEggs#accessing-package-resources
+    # > from https://setuptools.readthedocs.io/en/latest/setuptools.html#accessing-data-files-at-runtime
+    dictionary = pkg_resources.resource_stream(__name__, dictionary_name)  # type: BinaryIO
+    with closing(dictionary) as f:
         for i in range(2048):
             try:
-                line = next(f).strip()
+                line_bytes = next(f)  # raises StopIteration, caught below
             except StopIteration:
                 raise ValueError('Cannot instantiate dictionary')
+            line = line_bytes.decode().strip()  # `line_bytes.decode()` can raise UnicodeError, propagated
             if len(line) > 16 or len(line.split()) != 1:
                 raise ValueError('Cannot instantiate dictionary')  # TODO more descriptive message 1)
             _dict_list.append(line)
@@ -275,46 +294,35 @@ class TestInternalTestHelpers(TestCase):
                                             r'current dictionary'):
                     extract_checksum(test_input)
 
-    def test_extract_checksum_invalid_dictionary_file_path(self):
-        for test_input in [
-            None,
-            123,
-            b'\xff',
-            [None]
-        ]:
-            with self.assertRaisesRegex(TypeError, 'argument `dictionary_file_path` should be str'):
+    def test_extract_checksum_invalid_dictionary_name(self):
+        for test_input in Test_DictionaryAccess.INVALID_DICTIONARY_NAMES:
+            with self.assertRaisesRegex(TypeError, 'argument `dictionary_name` should be str'):
                 # noinspection PyTypeChecker
                 extract_checksum(VALID_MNEMONIC_PHRASE_TREZOR, test_input)  # type: ignore
 
+    def test_extract_checksum_invalid_dictionary_name_unsupported(self):
+        with self.assertRaises(FileNotFoundError):
+            extract_checksum(VALID_MNEMONIC_PHRASE_TREZOR, 'this_is_not_a_name_of_any_supported_dictionary')
+
     def test_extract_checksum_invalid_dictionary_lines(self):
-        with TemporaryDirectory() as tmpdir:
-            for lines in [0, 1, 2, 2046, 2047, 2049, 2050, 2051]:
-                with open(os.path.join(tmpdir, '__dictionary_lines__.txt'), 'w') as f:
-                    for i in range(lines):
-                        f.write('word\n')
+        for lines in Test_DictionaryAccess.INVALID_DICTIONARY_LINE_COUNTS:
+            dictionary_mock = io.BytesIO(b'word\n' * lines)
+            with patch.object(pkg_resources, 'resource_stream', return_value=dictionary_mock):
                 with self.assertRaisesRegex(ValueError, 'Cannot instantiate dictionary'):
-                    extract_checksum(VALID_MNEMONIC_PHRASE_TREZOR, dictionary_file_path=f.name)
+                    extract_checksum(VALID_MNEMONIC_PHRASE_TREZOR)
 
     def test_extract_checksum_invalid_dictionary_words_on_line(self):
-        with TemporaryDirectory() as tmpdir:
-            with open(os.path.join(tmpdir, '__dictionary_words_on_line__.txt'), 'w') as f:
-                for i in range(2047):
-                    # 2047 because we will write last line `multiple words on single line` separately
-                    f.write('word_{}\n'.format(i))
-                f.write('multiple words on single line\n')
+        dictionary_mock = io.BytesIO(b'word\n' * 2047 + b'multiple words on single line\n')
+        with patch.object(pkg_resources, 'resource_stream', return_value=dictionary_mock):
             with self.assertRaisesRegex(ValueError, 'Cannot instantiate dictionary'):
-                extract_checksum(VALID_MNEMONIC_PHRASE_TREZOR, dictionary_file_path=f.name)
+                extract_checksum(VALID_MNEMONIC_PHRASE_TREZOR)
 
     def test_extract_checksum_invalid_dictionary_long_word(self):
-        with TemporaryDirectory() as tmpdir:
-            for word_lengths in [17, 18, 19]:
-                with open(os.path.join(tmpdir, '__dictionary_long_word__.txt'), 'w') as f:
-                    for i in range(2047):
-                        # 2047 because we will write last line `multiple words on single line` separately
-                        f.write('word_{}\n'.format(i))
-                    f.write('a' * word_lengths + '\n')
+        for word_length in [17, 18, 19]:
+            dictionary_mock = io.BytesIO(b'word\n' * 2047 + b'a' * word_length + b'\n')
+            with patch.object(pkg_resources, 'resource_stream', return_value=dictionary_mock):
                 with self.assertRaisesRegex(ValueError, 'Cannot instantiate dictionary'):
-                    extract_checksum(VALID_MNEMONIC_PHRASE_TREZOR, dictionary_file_path=f.name)
+                    extract_checksum(VALID_MNEMONIC_PHRASE_TREZOR)
 
 
 class TestPublicFunctions(TestCase):
@@ -602,43 +610,44 @@ class TestEntropy(TestCase):
 
 # noinspection PyPep8Naming
 class Test_DictionaryAccess(TestCase):
-    def test___init___invalid_file_path(self):
-        for test_input in [
-            None,
-            123,
-            b'\xff',
-            [None]
-        ]:
-            with self.assertRaisesRegex(TypeError, 'argument `file_path` should be str'):
+    INVALID_DICTIONARY_NAMES = [
+        None,
+        123,
+        b'\xff',
+        [None]
+    ]  # type: List[Any]
+    VALID_DICTIONARY_LINE_COUNT = 2048
+    INVALID_DICTIONARY_LINE_COUNTS = [0, 1, 2, 2046, 2047, 2049, 2050, 2051]  # type: List[int]
+    INVALID_DICTIONARY_WORD_LENGTHS = [17, 18, 19]  # type: List[int]
+
+    def test___init___invalid_dictionary_name(self):
+        for test_input in self.INVALID_DICTIONARY_NAMES:
+            with self.assertRaisesRegex(TypeError, 'argument `dictionary_name` should be str'):
                 # noinspection PyTypeChecker
                 _DictionaryAccess(test_input)  # type: ignore
 
+    def test___init___invalid_dictionary_name_unsupported(self):
+        with self.assertRaises(FileNotFoundError):
+            _DictionaryAccess('this_is_not_a_name_of_any_supported_dictionary')
+
     def test___init___invalid_dictionary_lines(self):
-        with TemporaryDirectory() as tmpdir:
-            for lines in [0, 1, 2, 2046, 2047, 2049, 2050, 2051]:
-                with open(os.path.join(tmpdir, '__dictionary_lines__.txt'), 'w') as f:
-                    for i in range(lines):
-                        f.write('word\n')
+        for lines in self.INVALID_DICTIONARY_LINE_COUNTS:
+            dictionary_mock = io.BytesIO(b'word\n' * lines)
+            with patch.object(pkg_resources, 'resource_stream', return_value=dictionary_mock):
                 with self.assertRaisesRegex(ValueError, 'Cannot instantiate dictionary'):
-                    _DictionaryAccess(f.name)
+                    _DictionaryAccess()
 
     def test___init___invalid_dictionary_words_on_line(self):
-        with TemporaryDirectory() as tmpdir:
-            with open(os.path.join(tmpdir, '__dictionary_words_on_line__.txt'), 'w') as f:
-                for i in range(2047):
-                    # 2047 because we will write last line `multiple words on single line` separately
-                    f.write('word_{}\n'.format(i))
-                f.write('multiple words on single line\n')
+        dictionary_mock = io.BytesIO(
+            b'word\n' * (self.VALID_DICTIONARY_LINE_COUNT - 1) + b'multiple words on single line\n')
+        with patch.object(pkg_resources, 'resource_stream', return_value=dictionary_mock):
             with self.assertRaisesRegex(ValueError, 'Cannot instantiate dictionary'):
-                _DictionaryAccess(f.name)
+                _DictionaryAccess()
 
     def test___init___invalid_dictionary_long_word(self):
-        with TemporaryDirectory() as tmpdir:
-            for word_lengths in [17, 18, 19]:
-                with open(os.path.join(tmpdir, '__dictionary_long_word__.txt'), 'w') as f:
-                    for i in range(2047):
-                        # 2047 because we will write last line `multiple words on single line` separately
-                        f.write('word_{}\n'.format(i))
-                    f.write('a' * word_lengths + '\n')
+        for word_length in self.INVALID_DICTIONARY_WORD_LENGTHS:
+            dictionary_mock = io.BytesIO(
+                b'word\n' * (self.VALID_DICTIONARY_LINE_COUNT - 1) + b'a' * word_length + b'\n')
+            with patch.object(pkg_resources, 'resource_stream', return_value=dictionary_mock):
                 with self.assertRaisesRegex(ValueError, 'Cannot instantiate dictionary'):
-                    _DictionaryAccess(f.name)
+                    _DictionaryAccess()
diff --git a/PA193_mnemonic_Slytherin/test_mnemoniccli.py b/pa193mnemonicslytherin/test_mnemoniccli.py
similarity index 98%
rename from PA193_mnemonic_Slytherin/test_mnemoniccli.py
rename to pa193mnemonicslytherin/test_mnemoniccli.py
index 4c16fb7..d950669 100644
--- a/PA193_mnemonic_Slytherin/test_mnemoniccli.py
+++ b/pa193mnemonicslytherin/test_mnemoniccli.py
@@ -18,9 +18,9 @@ from io import StringIO
 from tempfile import TemporaryDirectory
 from typing import Optional, List, Tuple, Union
 
-from PA193_mnemonic_Slytherin.mnemonic import MAX_SEED_PASSWORD_LENGTH, SEED_LEN
-from PA193_mnemonic_Slytherin.mnemoniccli import ExitCode, cli_entry_point, Config
-from PA193_mnemonic_Slytherin.test_mnemonic import TREZOR_TEST_VECTORS, TREZOR_PASSWORD, \
+from pa193mnemonicslytherin.mnemonic import MAX_SEED_PASSWORD_LENGTH, SEED_LEN
+from pa193mnemonicslytherin.mnemoniccli import ExitCode, cli_entry_point, Config
+from pa193mnemonicslytherin.test_mnemonic import TREZOR_TEST_VECTORS, TREZOR_PASSWORD, \
     VALID_SEED_HEX_TREZOR, VALID_MNEMONIC_PHRASE_TREZOR
 
 

pip install -e .[dev]
parse_log_pytest
pytest
pytest pytest-cov
apt-get update apt-get install -y gcc
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///croot/attrs_1668696182826/work
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
importlib-metadata @ file:///tmp/build/80754af9/importlib-metadata_1648562407465/work
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
-e git+https://github.com/mvondracek/PA193_mnemonic_Slytherin.git@420f3a5a8be8bf8a263c4053660993655bb2a9e2#egg=PA193_mnemonic_Slytherin
packaging @ file:///croot/packaging_1671697413597/work
pluggy @ file:///tmp/build/80754af9/pluggy_1648042572264/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pytest==7.1.2
pytest-cov==4.1.0
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
typing_extensions @ file:///croot/typing_extensions_1669924550328/work
zipp @ file:///croot/zipp_1672387121353/work

name: PA193_mnemonic_Slytherin
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.1.0=py37h06a4308_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - flit-core=3.6.0=pyhd3eb1b0_0
  - importlib-metadata=4.11.3=py37h06a4308_0
  - importlib_metadata=4.11.3=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=22.0=py37h06a4308_0
  - pip=22.3.1=py37h06a4308_0
  - pluggy=1.0.0=py37h06a4308_1
  - py=1.11.0=pyhd3eb1b0_0
  - pytest=7.1.2=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py37h06a4308_0
  - typing_extensions=4.4.0=py37h06a4308_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.11.0=py37h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==7.2.7
      - pytest-cov==4.1.0
prefix: /opt/conda/envs/PA193_mnemonic_Slytherin

pa193mnemonicslytherin/test_mnemonic.py::TestInternalTestHelpers::test_extract_checksum pa193mnemonicslytherin/test_mnemonic.py::TestInternalTestHelpers::test_extract_checksum_invalid_dictionary_lines pa193mnemonicslytherin/test_mnemonic.py::TestInternalTestHelpers::test_extract_checksum_invalid_dictionary_long_word pa193mnemonicslytherin/test_mnemonic.py::TestInternalTestHelpers::test_extract_checksum_invalid_dictionary_name pa193mnemonicslytherin/test_mnemonic.py::TestInternalTestHelpers::test_extract_checksum_invalid_dictionary_name_unsupported pa193mnemonicslytherin/test_mnemonic.py::TestInternalTestHelpers::test_extract_checksum_invalid_dictionary_words_on_line pa193mnemonicslytherin/test_mnemonic.py::TestInternalTestHelpers::test_extract_checksum_invalid_mnemonic pa193mnemonicslytherin/test_mnemonic.py::TestPublicFunctions::test_generate pa193mnemonicslytherin/test_mnemonic.py::TestPublicFunctions::test_generate_invalid_arguments pa193mnemonicslytherin/test_mnemonic.py::TestPublicFunctions::test_generate_invalid_password_too_long pa193mnemonicslytherin/test_mnemonic.py::TestPublicFunctions::test_recover pa193mnemonicslytherin/test_mnemonic.py::TestPublicFunctions::test_recover_invalid_arguments pa193mnemonicslytherin/test_mnemonic.py::TestPublicFunctions::test_recover_invalid_password_too_long pa193mnemonicslytherin/test_mnemonic.py::TestPublicFunctions::test_verify pa193mnemonicslytherin/test_mnemonic.py::TestPublicFunctions::test_verify_invalid_arguments pa193mnemonicslytherin/test_mnemonic.py::TestPublicFunctions::test_verify_invalid_password_too_long pa193mnemonicslytherin/test_mnemonic.py::TestMnemonic::test___init__ pa193mnemonicslytherin/test_mnemonic.py::TestMnemonic::test___init___invalid_argument pa193mnemonicslytherin/test_mnemonic.py::TestMnemonic::test___init___too_long_str pa193mnemonicslytherin/test_mnemonic.py::TestMnemonic::test_to_entropy pa193mnemonicslytherin/test_mnemonic.py::TestMnemonic::test_to_entropy_deep_copy pa193mnemonicslytherin/test_mnemonic.py::TestMnemonic::test_to_seed pa193mnemonicslytherin/test_mnemonic.py::TestMnemonic::test_to_seed_invalid_password pa193mnemonicslytherin/test_mnemonic.py::TestMnemonic::test_to_seed_invalid_password_too_long pa193mnemonicslytherin/test_mnemonic.py::TestSeed::test___eq__ pa193mnemonicslytherin/test_mnemonic.py::TestSeed::test___init__ pa193mnemonicslytherin/test_mnemonic.py::TestSeed::test___init___invalid_argument pa193mnemonicslytherin/test_mnemonic.py::TestSeed::test__ne__ pa193mnemonicslytherin/test_mnemonic.py::TestEntropy::test___init__ pa193mnemonicslytherin/test_mnemonic.py::TestEntropy::test___init___invalid_argument pa193mnemonicslytherin/test_mnemonic.py::TestEntropy::test_checksum pa193mnemonicslytherin/test_mnemonic.py::TestEntropy::test_to_mnemonic pa193mnemonicslytherin/test_mnemonic.py::TestEntropy::test_to_mnemonic_deep_copy pa193mnemonicslytherin/test_mnemonic.py::Test_DictionaryAccess::test___init___invalid_dictionary_lines pa193mnemonicslytherin/test_mnemonic.py::Test_DictionaryAccess::test___init___invalid_dictionary_long_word pa193mnemonicslytherin/test_mnemonic.py::Test_DictionaryAccess::test___init___invalid_dictionary_name pa193mnemonicslytherin/test_mnemonic.py::Test_DictionaryAccess::test___init___invalid_dictionary_name_unsupported pa193mnemonicslytherin/test_mnemonic.py::Test_DictionaryAccess::test___init___invalid_dictionary_words_on_line pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_arguments_EX_NOINPUT pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_arguments_error pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_arguments_ok_terminated pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_generate pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_generate_invalid_entropy pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_recover pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_recover_invalid_mnemonic pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_verify pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_verify_invalid_mnemonic pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_verify_invalid_seed pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_verify_missing_mnemonic_file pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_verify_missing_seed_file pa193mnemonicslytherin/test_mnemoniccli.py::TestMain::test_verify_seeds_do_not_match
setup.py PA193_mnemonic_Slytherin/mnemoniccli.py PA193_mnemonic_Slytherin/__init__.py .travis.yml README.md PA193_mnemonic_Slytherin/english.txt .codeclimate.yml PA193_mnemonic_Slytherin/mnemonic.py
pa193mnemonicslytherin/english.lst pa193mnemonicslytherin/mnemoniccli.py setup.py pa193mnemonicslytherin/__init__.py .travis.yml README.md pa193mnemonicslytherin/mnemonic.py .codeclimate.yml